Software Requirement
Software requirement documents the capabilities that software must possess to meet the goals and objectives of its user.
The IEEE Standard defines a requirement as:
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 document.
A documented representation of a condition or capability as in 1 or 2.
Types of Requirements
Functional Requirements
These are the requirements that the software must implement to meet the needs of its intended user. They define the system behavior under specific conditions. It is important for
functional requirements to be clearly written to be understood by software developers as well as stakeholders.
Few Types of functional requirements:
- Interface requirements
- Business requirements
- Security requirements
- Regulatory requirements
Non Functional Requirements (NFR)
These requirements tell how the system should perform. They are also know as quality attributes requirements. They are used as a criteria to to judge the operation of a system.
They serve as constrains or restrictions on the design of a system. Proper definition and implementation of Non Fictional Requirements is critical for the success of any software project.
Types of Non Functions Requirements:
- Scalability
- Reliability
- Regulatory
- Maintainability
- Serviceability
- Utility
- Security
- Manageability
- Data integrity
- Capacity
- Regulatory
- Availability
- Usability
- Interoperability
- Environmental
Functional vs Non Functional Requirements
Functional Requirements | Non Functional Requirements |
---|---|
It specifies what the sytem must or must not do. | Specifies how the system should do it. |
Users specifies these requirements. | These are specified by technical people usually software architect. |
They define system or its components. | They define the quality attribute of a system. |
It is mandatory to meet this requirements. | It is not mandatory to meets this requirements. |
They can be documented and understood through use cases. | They are documented as quality attribute scenarios. |