MBIT - Lecture 1 Introduction To Requirements Engineering
MBIT - Lecture 1 Introduction To Requirements Engineering
Contents
The statement of needs by a user that triggers the development of a program or system - Jones 1994
Requirements are ... A specification of what should be implemented. They are descriptions of how the system should behave, or of a system property or attribute. They may be a constraint on the development process of the system. - Sommerville 1997
Characteristics of Requirements
1.
2. 3.
Clarity
Precision Completeness
4.
5. 6.
Verifiability
Realistic Traceability
Unambiguous Same meaning for all stakeholders Appropriate representation for different stakeholders
Completeness
No conflicts or contradictions
Computationally Practically Mention success scenarios as well as failure scenarios Test cases covering all logical flows
Verifiability
Traceability
Forward tracing
Backward tracing
Types of Requirements
1.
Functional requirements
User requirements
Business requirements System requirements Product requirements Organizational requirements
2.
Non-functional requirements
External requirements
3.
Functional Requirements
Services that system should provide Detailed system requirements Details of the functionality or services
User requirements
Business requirements System requirements
Non-Functional Requirements
Constraints on the system or services Constraints on development process or standards Constraints from users or external sources
Product requirements
Portability
Usability Design and architecture
Maintainability
Non-Functional Requirements
Organizational requirements
Processes followed in the organization Delivery Implementation Standards Interoperability Ethical Legislative Safety Privacy
External requirements
Some non-functional requirements are derived from goals and vision behind building the system System Goal Users should be able to learn and adapt to new system within no time Usability, User friendliness System Goal To provide 24/7 service to our customers to maintain their accounts Stability, Sustainability, Maintainability Distinction between functional and non-functional is not always very clear Non-functional requirements should be written in quantitative manner For some goals, quantitative measure is not possible i.e. maintainability
Robustness
Portability
Conflicts in different non-functional requirements are common in complex systems Space vs efficiency Spacecraft system
Minimize weight: use less independent chips Minimize power consumption: use low power chips
Domain requirements
Derived from the domain of the system May be functional, non-functional, or constraints Understandability
Lack of readability
Use standard format Use of diagrams / tables as much as possible Use language in a consistent way
Boehm (1981) correcting the error after development costs 68 times more than correcting it before Other studies shows it can be as high as 200 times Identifying and defining requirements in proper way is the key to reduce errors Prevention vs Removal of errors
Assignment # 1
1.
2.
3.
4.