-
CHAPTER FOUR: Requirements Engineering.
-
Functional and non-functional requirements
-
Functional requirements
- * For a system describe what the system should.
* Depend on the type of software being developed
*Written in natural language in elicitation.
-
Non-functional requirements
-
Classification
- Product requirements:
Specify or constrain the runtime behavior of the software
- Usability requirements
- Efficiency requirements
- Dependability requirements
- Security requirementes
- Organizational requirements:
Are broad system requirements derived from policies and procedures in the customer's and developer's organization
- Environmental requirements
- Operational requirements
- Developments requirements
- External requirements:
This broad heading covers all requirements process.
- Regulatory requirements
- Ethical requirements
- Legislative requirements
-
Requirements engineering processes
- Elicitation and analysis:
Discovering requirements by interacting with stakeholders.
- Specification:
Converting these requirements into a standard form.
- Validation:
Checking that the requirements actually define the system that customer wants.
-
The activities are organized as an iterative process around a spiral
-
SPIRAL MODEL
- Accommodates approaches to development where the requirements are developed to different level of delail.
- The number of iterations around the spiral, can vary so that the spiral can be exited after some or all of the user requirements have been elicited.
- Agile developments can be used instead of prototyping so that the requirements and the system implementation are developed together.
-
Requirements elicitation
- Requirements elicitation techniques
- Stories and scenarios
-
Requirements specification
- Natural language specification
- Structured specification
- Use cases
- The software requirements document
- Requirements validation
-
Requirements change
- Requirements management planning
- Requirements change management
-
Requirements
- Are a descriptions of the services that a system should provide and the constraints on its operation.
-
Requirements Engineering
- Are the process of finding out, analyzing, documenting, and checking the needs of customers for a system.
- Are requirements that are not directly concerned with the specific services delivered by the system to its users.
- New requirements have to be established and changes made to the system. This delays system delivery and increases COSTS.
- Are statements of services the system should provide. The functional requirements may also explicitly state what the system should not do.