-
the process of establishing the services
-
that the customer requires from a system
- and the constraints under which it operates and is developed
-
that the customer requires from a system
presented as the first phase of the Software Development Lifecycle
-
e.g. Rational Unifed Process, assume that requirements engineering continues through a system's lifetime
-
requirements inception/elicitation
-
requirements analysis
-
system modeling
-
requirements specification
-
requirements validation
- requirements management
-
requirements validation
-
requirements specification
-
system modeling
-
requirements analysis
-
requirements inception/elicitation
requirements engineering management handbook by FAA
Type of requirements
- User requirement
- System requirements (specifications)
-
Functional requirements
- describe functionality or system services
-
depend on the type of software
-
expected users
- and the type of system where the software is used
-
expected users
functional user reqs may be high-level statements of what a system should do functional system reqs should describe the system services in detail
-
Domain requirements
-
can be new functional requirements/constraints
- on existing requirements or define specific computations
-
if domain requirements are not satisfied
- system may be unworkable!
- understandability: requirements expreseed in language and idioms of the app domain
- implicitness: unconscious comprehension user interactions so ignore explicit instructions
-
can be new functional requirements/constraints
-
Non-functional requirements
-
defines system properties and constraints
- e.g. properties: reliability, resp time, storage reqs, etc. constraints: I/O device, capability, system representations, etc.
- process requirements may also be specified mandating a particular IDE, prog lang or development method
-
may be more critical than functional
-
e.g. safety critical, security critical, real-time non functional requirements may affect the overall architecture of a system or individual components single non-functional may generate a number of related functional requirements
-
product requirements
- specific to the delivered product
-
organizational requirements
- consequence of organizational policies and procedures
-
external requirements
- arises from factors which are external to the system and its dev process
-
product requirements
-
-
defines system properties and constraints
Requirements criticisms
-
problems arise when requirements are not precisely stated
- ambiguous requirements may be interpreted in different ways by devs and users
-
in principle, requirements should be both complete and consistent
- complete: should include descriptions of all facilities required (functional & non-functional)
- consistent: should be conflicts or contradictions in the descriptions of the system facilities
Metrics for specifying nonfunctional requirements
-
speed
-
size
-
ease of use
-
reliability
-
robustness
-
portability
software requirements
agile and XP
IEEE Standards – Defines how to organize requirements – Ensures clarity, consistency, and completeness – Supports communication between stakeholders – Mostly used in large-scale/system engineering projects
architecture description languages
Architecture Description Interchange Language (ACME)
ways of writing system requirments specifications
- natural language
- structured natural language
- design description languages
- graphical notations
- mathematical/scientific specifications
requirements engineering processes
Generic activities
- requirements elicitation
- requirements analysis
- requirements validation
- requirements management
RE is an iterative activity in which these processes are interleaved
problems of requirements analysis
- stakeholders do not know what they really want
- stakeholders express requirements in their own terms
- different stakeholders may have conflicting requirements
- organizational and political factors may influence the system requirements
-
the requirements change during the analysis process
- new stakeholders may emerge and the business environment may change