Evaluation
The British Computer Society define evaluation as:
“An objective review of what has been achieved to establish whether it meets the required criteria. The evaluation might also look at the wider context, the user needs and whether there are any undesirable consequences introduced into the solution.”
Burdett, Arnold. BCS Glossary of Computing (Kindle Locations 999-1001). BCS Learning & Development Limited. Kindle Edition.
Criteria for Evaluation
There are various criteria that can be used to evaluate a system:
Fitness for purpose
Efficient use of coding constructs
Usability
Maintainability
Robustness
Fitness for Purpose
Fitness for purpose is establishing whether or not your software fulfills all user and functional requirements detailed in the specification.
Any omissions or issues should be described here.
For example:
Optional requirements
Any requirement that is met but there is perhaps a concern/issue or it is “just met”.
Example of an evaluation of a solution that is fit for purpose (SDD)
During the analysis stage of the development cycle, you identify the functional requirements when creating the requirements specification.
The functional requirements are the inputs, processes, and outputs that must be included in the design and implementation of any solution to a problem.
A solution is fit for purpose if (following design, implementation and testing) it meets all the functional requirements.
In the evaluation stage of the Advanced Higher project,you should discuss if your solution is fit for purpose
The following examples use functional requirements identified earlier. Both examples assume that a program, website, and database are designed, implemented, and tested.
Following comprehensive testing, the program is fit for purpose.
The solution:
reads data from an external stock file, splits the data and allocates it to a 2-D array
sorts the data in numerical order using the itemID
allows the user to display a stock item by selecting an itemID
searches the data in the 2-D array for the itemID selected and returns the result
displays formatted output, showing the itemID, price, and number in stock for the selected items
displays a message ‘sorry your item has not been found’ if the stock item is not found in the 2-D array
Example of an evaluation of a solution that is NOT fit for purpose
Following comprehensive testing, the database-driven website and its user interface are not fit for purpose.
Although the solution successfully implements all insertions, deletions, and edits of the back-end database table data, it does not:
provide confirmation of these actions
allow the customer to sort the results of a stock item search
The solution does successfully:
store the required information for each new customer (including an auto-generated customerID) when they register
allow a customer’s address, postcode, and email to be edited and deleted by an administrator
store the required information for each new stock item
allow stock item details to be edited and deleted by an administrator
display stock items (descriptions, categories and prices) following a customer search for stock items by either name or category
display all the orders for a month selected by an administrator
Robustness
A piece of software is robust if it can deal with exceptional or incorrect data or unusual situations.
Validating in a Software Development Context
In a software development context this should be primarily achieved through the use of validation of user inputs.
Validating in a Database Development Context
Entity Integrity and Referential Integrity
Constraints applied, or views used in order to only use appropriate data. This could also be implemented using triggers.
Presence checks could also be used where NULL values are not desirable.
The scope for SQL Injection attacks could be minimised.
Validating in a Web Development Context
When using HTML forms etc then suitable validation should apply to any inputs so that data is validated before being passed to forms.
Server side validation could also be applied before allowing data to be processed.
Types of Maintenance
When evaluating your software you would need to identify the possibility of any maintenance if there are types of maintenance:
These can be categorised into 3 main types:
Perfective
Happens in response to requests from the user to add new functionality or improve efficiency. Can you identify any maintenance required from your testing?
Corrective
Fixing errors in the software. Usually due to error reports from customers. Again should be identified by testing.
Adaptive
For example adapting older Windows 7 software to run on Windows 10. Or adapting your website to run on mobile devices/different Database servers.
Usability
As part of design and testing you would have conducted some usability testing. This is when an end user will use the product as intended. More about this here.