1.1
Why perform requirements engineering?
How the requirements of a system are handled is a significant cause for project failures and/or time and budget overruns.
1.1.1 Requirements engineering as a cause of errors
1.1.1 Costs of errors during requirements engineering
requirements engineering
The later in the development project a defect in the requirements is corrected, the higher are the costs associated with fixing it.
1.1.1 Symptoms and causes of deficient requirements engineering
The most common reason for deficient requirements is the misconception of the stakeholders that much is self-evident and does not need to be stated explicitly. This results in problems in communication among the involved parties that arise from differences in experience and knowledge.
1.1.1 The significance of good requirements engineering
Complete requirements free from defects are the basis for successful system development.
1.1.2 Definition 1-1 : Requirement
(1) A condition or capability needed by a user to solve a problem or achieve an objective. (2) 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. (3) A documented representation of a condition or capability as in (1) or (2).
1.1.2 Definition 1-2: Stakeholder
Definition 1-2: Stakeholder A stakeholder of a system is a person or an organization that has an (direct or indirect) influence on the requirements of the system
1.1.2 Stakholders
ex of stakeholders: a hacker, management, stakholders of competing systems, users, admins, legal entities, institutions
1.1.2 Goal of requirements engineering
1.1.2 Definition 1-3: Requirements Engineering
(1) Requirements engineering is a systematic and disciplined approach to the specification and management of requirements with the following goals:
(1. 1) Knowing the relevant requirements, achieving a consensus among the stakeholders about these requirements, documenting them according to given standards, and managing them systematically
(1. 2) Understanding and documenting the stakeholders’ desires and needs, they specifying and managing requirements to minimize the risk of delivering a system that does not meet the stakeholders’ desires and needs
1.1.2 Four core activities of requirements engineering
1.1.2 Constraints
project constraints influence requirements engineering
have a large impact on the choice of suitable techniques
(1.1.3 Embedding Requirements Engineering into Process Models )
Requirements engineering as a self-contained phase
Waterfall model / V-Model
goal = elicit all requirements prior to the actual development
In these process models, requirements engineering is understood to be a finite, time-restricted initial phase of system development.
1.1.3 Requirements engineering as a continuous, collateral process
Lightweight process models (e.g., eXtreme Programming)
In these process models, requirements engineering is treated as a continuous, comprehensive process that comprises and integrates all phases of system development.
( 1.2 Fundamentals of Communication Theory )
–> Language as a medium for requirement communication
Ideal communication conditions = similar the cultural and educational background, same area of expertise, similar experiences etc
Ideal communication conditions most often do not exist between stakeholders.
It is therefore sensible to agree upon a common language and how this common language is to be used
1.2 Type of communication medium
1.2 Language comfort
In addition to the problems arising from differing domain vocabularies and different communication media, it can often be observed that :
1.2 Implicit background knowledge
communication = simplifying in nature
problem since this causes requirements to be interpretable in different ways ( no no fore requirements!! )
1.2 communication definition
language based expression of knowledge
( 1.3 Characteristics of a Requirements Engineer )
Central role
requirements engineer =
1.3 Seven necessary capabilities of a requirements engineer
( 1.4 Requirement Types )
1. Functional requirements = define functionality sub catgs: - functional requirements - behavioral requirements - data requirements 2. Quality requirements = about the - performance, -availability, -dependability, - scalability, or - portability of a system. 3. Constraint = cannot be influenced by team members ( not implemented but adhered, they limit solution space )
1.4 Definition 1-4: Functional Requirement
requirement concerning a result of behavior that shall be provided by a function of the system.
1.4 Definition 1-5: Quality Requirement
requirement that pertains to a quality concern that is not covered by functional requirements.