Software Requirements and Requirements Engineering Process – Requirements are the descriptions of the services provided by a system and its operational constraints
What is requirements engineering?
- The process of establishing the services that the customer requires from a system and the constraints under which it operates and is developed.
- It is the process of discovering, analyzing, documenting and validating the requirements of the system
- Each software development process goes through the phase of requirements engineering
Types of Requirements
User requirements : Should describe requirements so that they are understandable by those who do not have detailed technical knowledge. Written mainly for customers (end users)
System requirements : A structured document setting out detailed descriptions of the system services and constraints. Written as a contract between client and contractor
Software design specification : An abstract description of the software design that can serve as a basis for a more detailed design. Bridges the gap between requirements and design. Written for developers
Statements of services the system should provide, how the system should react to particular inputs, and how the system should behave in particular situations
Constraints on the services or functions offered by the system such as timing constraints, constraints on the development process, standards.
Should describe functional and non-functional requirements in such a way that they are understandable by system users who don’t have detailed technical knowledge.
User requirements are defined using natural language, tables and diagrams as these can be understood by all users.
- More detailed specifications of system functions, services and constraints than user requirements.
- They are intended to be a basis for designing the system.
- They may be incorporated into the system contract.
- System requirements may be defined or illustrated using system models.
- Describe functionality or system services
- These services depend on
- the type of software being developed
- the expected users of the software
- Functional user requirements may be high level statements of what the system should do, but functional system requirements should describe the system services in detail.
Functional Requirement Examples
- The user shall be able to add or delete problems to/from the problem collection.
- The user shall be able to preview an examination on the monitor.
- A student shall be able to take an examination on-line.
- The system will automatically grade an examination upon completion by the student.
- Define system properties and constraints
- response time
- storage requirements
- process requirements (e.g., must use a particular CASE system, programming language, or development method)
- Non-functional requirements may be more critical than functional requirements. If one is not met, the system may be useless.
Product requirements : Requirements which specify that the delivered product must behave in a particular way e.g. execution speed, reliability, etc.
Organizational requirements : Requirements which are a consequence of organizational policies and procedures e.g. process standards used, implementation requirements, etc.
External requirements : Requirements which arise from factors which are external to the system and its development process e.g. interoperability requirements, legislative requirements, etc.
Requirements Engineering processes
The processes used for RE vary widely depending on the application domain, the people involved and the organization developing the requirements
However, there are a number of generic activities common to all processes
- Feasibility study
- Requirements elicitation and analysis
- Requirements specification and system modeling.
- Requirements validation
- Requirements management
Requirements Elicitation (discovery) and analysis
Involves technical staff working with customers, the services that the system should provide and the
system’s operational constraints
May involve end users, managers, engineers These are called stakeholder
The process of gathering information about the proposed and existing systems and eliciting the user and system requirements from this information.
Sources of information include documentation, system stakeholders and the specifications of similar systems.
Stakeholders represent different ways of looking at a problem
Viewpoints are a way of structuring the requirements to represent the perspectives of different stakeholders.
This multi perspective analysis is important as there is no single correct way to analyze system requirements.
|Read More Topics|
|Specialized process model|
|Agility and cost change in software|
|Prescriptive process model|
|The Point-to-Point Protocol (PPP)|
|ALOHA in Computer Network|