Classification of Software Requirements in Software Engineering
Classification of Software Requirements in Software Engineering
Requirements
Classification of Software Requirements
• The software requirements are description of features and
functionalities of the target system.
• Requirements convey the expectations of users from the software
product.
• The requirements can be obvious or hidden, known or unknown,
expected or unexpected from client’s point of view.
Requirement is defined as follows:
• A condition or capability needed by a user to solve a problem or
achieve an objective
• A condition or capability that must be met or possessed by a system
or system component to satisfy a contract, standard, specification or
other formally imposed documents
• A documented representation of a condition or capability as in 1 and
2.
Types of software requirement
• Main types of software requirement can be of 3 types:
• Functional requirements
• Non-functional requirements
• Domain requirements
• Functional Requirements: These are the requirements that the end user
specifically demands as basic facilities that the system should offer.
• It can be a calculation, data manipulation, business process, user
interaction, or any other specific functionality which defines what function
a system is likely to perform.
• All these functionalities need to be necessarily incorporated into the
system as a part of the contract.
• These are represented or stated in the form of input to be given to the
system, the operation performed and the output expected.
• They are basically the requirements stated by the user which one can see
directly in the final product, unlike the non-functional requirements.
• For example, in a hospital management system, a doctor should be
able to retrieve the information of his patients.
• Each high-level functional requirement may involve several
interactions or dialogues between the system and the outside world.
• In order to accurately describe the functional requirements, all
scenarios must be enumerated.
• There are many ways of expressing functional requirements e.g.
formal specification language with proper syntax.
• Functional Requirements in Software Engineering are also called
Functional Specification.
• Non-functional requirements: These are basically the quality
constraints that the system must satisfy according to the project
contract.
• Nonfunctional requirements, not related to the system functionality,
rather define how the system should perform The priority or extent to
which these factors are implemented varies from one project to
other.
• They are also called non-behavioral requirements.
• They basically deal with issues like:
• Portability
• Security
• Maintainability
• Reliability
• Scalability
• Performance
• Reusability
• Flexibility
NFR’s are classified into following types: