-
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.
*Describe funcionality or system services.
-
Requirements
- Requirements imprecision
- Requirements completeness and consistency
-
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
- Implentation
- Goalds and requirements
- Metrics
-
Dominian 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
- There are two fundamental approaches to requirements elicitation:
- 1. Interviewing, where you talk to people about what they do.
- 2. Observation or ethnograpy, where you watch people doing their job to see what artifacts they use.
-
Stories and scenarios
-
A scenario may include:
- A description of what the system and users expect when the scenario starts.
- A description of the normal flow of events in the scenario.
- A description of what can go wrong and how resulting problems can be handled.
- Information about other activities that might be going on at same time.
- A description of the system state state when the scenario ends.
-
Requirements specification
- Natural language specification:
It is a expressive, intuitive, and universal. It is also potentially vague and abigous, and its interpretation depents on the background of the reader/
-
Structured specification:
Is a way of writting system requirements where requirements are written in a standar way rather than as free-form text. Included:
- 1. A description of the function or entity being specified.
- 2. A description of its inputs and the origin of these inputs.
- 3. A description of its outputs and the destination of these outputs.
- 4. Information about the information needed for the computation or other entities.
- 5. A description of the action to be taken.
- 6. A description of the side affects (if any) of the operation.
- Use cases:
Are a way of describing interactions between users and a system using a graphical model and structured text. Are documented using a high-level use case diagram.
- The software requirements document (SRS):
Is an official statement of what the system developers should implements. The requirements document is likely to be long and detailed.
-
SRS
- Scope
- Purpose
- People
- Budget
- Investigation
-
Requirements validation
-
Validity chacks
- These chack that the requirements reflect the real needs of system users.
-
Consistency chacks
- Requirements in the document should not conflict.
-
Completeness chacks
- The requirements document should include requirements that define all functions and the constraints intended by the user.
-
Realism checks
- These checks should also take account of the budget and schedule for the system developtent.
-
Verifiability
- To reduce the potencial for discute between customer and contractor, system requirements should always be written so that they are verificable.
-
Requirements change
-
Requirements management planning
- 1. Requirements identification:
Each requirement must be uniquely identified so that ir can be cross-referenced.
- 2. A change managements process:
This is the set od activities that assess the impact and cost of change.
- 3. Traceability policies:
These policies define the relationships between each requirement and between the requirements and the system desing that should be recorded.
- 4. Tool support:
Requirements managements involves the processiong of large amounts of information about the requirements.
-
Requirements change management
- 1. Problem analysis and change specification:
The process stats with an identified requirements problem or, sometimes, with a specific change proposal.
- 2. Change analysis and costing:
The effect of the proposed change is assessed using traceability information and general knowledge of the system requirements.
- 3. Change implementation:
The requirements document and, where necessary, the system desing and implementation, are modified.
-
Requirements
- Are a descriptions of the services that a system should provide and the constraints on its operation.
- New requirements have to be established and changes made to the system. This delays system delivery and increases COSTS.
- What is Elicitation?
- Are the description of the system services and constraints that are generated during the requirements process
-
Requirements Engineering
- Are the process of finding out, analyzing, documenting, and checking the needs of customers for a system.
-
Sistematic process. What other thing?
- Because embole diferent activities.
- -Elicitation
-Especification
-Validation
-
Types of requirements
- User requirements: High abstract requirements.
- System requirements: More precise detailed of what the system should
- The difference is the ambiguos.
-
Stackeholders
- Direct: Impact directly.
- Indirect: Need to know what is going on with the system or project.
- Floating Topic
- Are requirements that are not directly concerned with the specific services delivered by the system to its users.
- Are statements of services the system should provide. The functional requirements may also explicitly state what the system should not do.