REQE Introduction
From Suhrid.net Wiki
Jump to navigationJump to searchIntro
What is a requirement
- "A condition or capability that must be met or possessed by a system or system component satisfy a contract, standard, specification, or other formally imposed document. The set of all requirements forms the basis for subsequent development of the system or system component"
- Requirements can be : things a system must do, qualities a system must have, constraints that a system must satisfy.
What is requirements engineering
- Requirements engineering is the branch of software engineering concerned with the real-world goals for, functions of, and constraints on software systems. It is also concerned with the relationship of these factors to precise specifications of software behaviour, and to their evolution over time and across software families.
- Preciseness is the key to validation and verification.
- Requirements is the "What" and the design is the "How"
- Requirements must separate out the requirements from the design decisions.
- RE goes beyond general Systems Analysis and focuses on the software.
- Makes sure that needs and goals of a business are satisfied by precise product specification.
- A lot of RE is concerned with system requirements and deriving software requirements from it.
Layering Abstraction
- For large systems, difficult to specify the what from the how.
- The how of one layer forms the what of the next layer.
- For e.g. the user needs a student record system. The system needs a relational database. The relational database needs a Storage Area Network and so on.
- As we go deeper in the layers of abstraction, it becomes harder to trace back to the original requirements.