Non functional requirements in software specify the quality standards of a software [1]. The quality standards for Skillted are stated below and would be considered while developing the solution.
1. Performance Requirements
The need for quality software to be fast and responsive cannot be overemphasized. The user should not have any disconcerting feeling while using the application due to slow response times when a request is made. Skillted should be fast and responsive.
1.1 Processing time – Interactions with the server which require processing, such as login and requesting thumbnails of images, should take less that three seconds.
1.2 Response time – Over reasonably common internet connection speeds, the server should respond to client requests in less that one second.
1.3 Querying time – Querying the database should take less that one second.
2. Capacity and scalability
Sufficient amount of resources must be made available to the system, and the system must make use of these resources as required.
2.1 Storage – The system must store data effectively and the time remaining until all available storage is filled up must be estimated and the system administrator must be notified.
2.2 Growth requirement – As the system gets used more often, by more people, the storage provided should be sufficient to prevent lag.
2.3 Throughput – The system should be capable of handling 1000 queries per minute concurrently, with the capability to increase with larger demand
3. Availability
Availability is the proportion of time that the system is online and available for use.
3.1 Hours of operation – The system should be available 24/7 with all service level agreements adhered to. Maintenance should be done during off-peak periods and back ups should be provided.
3.2 Locations of operation – The geographic location of the server should not impede the availability of the system, hence the connection requirements and firewall restrictions should not impede the server from performing as expected.
4. Maintainability
Maintainability describes how well the system can be managed and refactored
4.1 Architectural standards – De-facto architectural patterns and design patterns must be used in the construction of the system architecture.
4.2 Coding standards – The code should be written professionally with proper indentations and comments. Functions should be built modularly to enable abstraction of different parts of the system.
5. Recovery
Recovery is the ability to respond to disastrous events such as data loss using backups.
5.1 Backups – Online and Offline backups should be created with online backups being more frequent (e.g every 24 hours)
5.2 Backup time – The backup process should occur within a short period of time and should be carried out during off-peak hours to avoid disruption of the application.
5.3 Recovery time – The maximum recovery time for the system should be an hour.
6. Security and privacy
As sensitive information is being contained within the database, security and privacy is paramount to stakeholders of the system.
6.1 Authentication – Users must be authenticated before they can make use of the system.
6.2 Withholding of sensitive information – Passwords must not be stored as plain-text. They must be encrypted and salted before being stored in the database.
6.3 Privacy – Users can block certain users from accessing their profiles.
6.4 Encryption – The system should make use of encryption to ensure that data is stored and transmitted securely. For example, passwords should be stored as SHA1 hashes. For secure communications, https protocol must be used for all requests.
7. Mobility
The system must be suitable for different devices and platforms.
7.1 Mobile devices – The mobile application for Skillted should be operational on a wide spectrum of devices and operating conditions, such as performance, screen sizes and internet connection speed.
7.2 Browser compatibility – The web application for Skillted should be compatible with all major modern browsers (Chrome, Safari, Firefox, IE9)7.2. 7.3 Input devices – The input devices on the host device should be used effectively. For example, the location sensors on the device should tell the location of the device, hence the location of the user.
References
1. http://eyefodder.com/2011/06/quality-software-non-functional-requirements.html
2. http://blog.soton.ac.uk/orion/category/design/
Please comment with your real name using good manners.