Quiz 11: Requirements
Non-functional requirement specifies how the system should behave. These are good attributes that are considered for a system. Non-functional requirements describe the system works, while functional requirements describe what the system should do. Non-functional requirements cover all the requirements which are not covered by the functional requirement such as security, reliability, performance, maintenance, scalability and usability. They specify criteria according to which system should operate. Some typical non- functional requirements which are essential and that can be handled without having detailed knowledge about software product are: Thus, if software requirements are not mentioned then above mentioned non-functional requirements should be considered by default while development. These non-functional requirements will help in: Usability-It will prioritize the important functions of the system. Reliability-It makes system monitoring easy. Performance-It tells the system response time.
Non-functional requirement specifies how the system should behave. These are good attributes that are considered for a system. Non-functional requirements describe the system works, while functional requirements describe what the system should do. Non-functional requirements cover all the requirements which are not covered by the functional requirement such as security, reliability, performance, maintenance, scalability and usability. They specify criteria according to which system should operate. Some typical non-functional requirements that can be handled when detailed knowledge about software product is given are as follows: Thus, non-functional requirements selection should support all the software requirements of the system. Non-functional requirements for software can also help to solve many issues such as: • Who will operate the process? • What is the validation for the users? • When can user operate the process? • How many users can operate the process at the same time?
The process to gather the software requirements from client, analysing the requirements and making document of them is known as requirement engineering. Requirements Elicitation is the process to find the requirements for an intended software system required by the user. Any type of requirements may arise in the requirement elicitation phase for the software system. Software requirements should be categorized in two types: • Functional requirements • Non-functional requirements Non-functional requirements define attributes or a good software system and not the working or behaviour of the system. Functional Requirements are related to functional aspect of software. Software requirements specification such as using open source software is a functional requirement as they define functions and functionality of the software system. A complete software functional requirement should have following features:- • A software requirement specification describes how a product will work from the users view. Less care is should be given to implementation. • A software specification should describe the internal implementation of the software such as data structures, relational database models, programming languages etc. In Software Development if the requirements changes in the initial stage then the changes can be affordable and the cost to implement the changes will also be less. But if the requirement change is done in late stage then the cost to fix the changes will be is very high. To avoid frequent changes than it should be studied that how requirements can change. This can be done by communication with the management and end user and accordingly test plans can be made in advance. Changes should be accepted in the initial phase which can help to adopt changes in the later stages and avoid the re-doing of works again. Incremental or iterative development life cycles can help in coping with change. Thus, the requirement given by user that the open-source software should be used is a functional requirement as the working and the functionality of the software depends upon the type of software used and it should be informed in the early stage of the development.