Software Requirements and Requirements Engineering Process

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

Functional requirements

Statements of services the system should provide, how the system should react to particular inputs, and how the system should behave in particular situations

Non-functional requirements

Constraints on the services or functions offered by the system such as timing constraints, constraints on the development process, standards.

User requirements

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.

System requirements

  • 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.

Functional Requirements

  • 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.

Non-functional Requirements

  • Define system properties and constraints
  • Examples:
    • 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.

Non-functional classifications

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

About the author

Santhakumar Raja

Hi, This blog is dedicated to students to stay update in the education industry. Motivates students to become better readers and writers.

View all posts

Leave a Reply