Requirements Engineering
Dozentin: Dr. Koziolek
Work in progress.
Fundamentals
Introduction
Why?
- Lower costs
- error cost
- rework cost
- Manage risks
- meet stakeholder’s desires and needs
- reliably estimate deadlines and costs
- Rule: more RE = less risk (RE effort is inversely proportional to allowed risk)
- Question to ask: How much RE do we need to do until the risk is acceptable?
- ❗ Keep in mind: economic effects are indirect
- RE as such creates costs only
When building such a system…
- How do we determine the requirements?
- How can we analyse and document these requirements?
- How do we make sure that we’ve got the right requirements?
- How do we manage and evolve the requirements?
- Boehm’s First Law
- Errors are more frequent during requirements and design activities and are the more expensive the later they are removed.
- Requirement
-
-
A need perceived by a stakeholder.
-
A capability or property that a system shall have.
-
A documented representation of a need, capability or property.
-
- Requirements Specification
- A systematically represented collection of requirements, typically for a system or component, that satisfies given criteria.
- Lastenheft
- Customer/stakeholder requirements specification
- Pflichtenheft
- System/software requirements specification
- Requirements Engineering
- A systematic and disciplined approach to the specification and management of requirements with the following goals:
(1) Knowing the relevant requirements, achieving a consensus among the stakeholders about these requirements, documenting them according to given standards, and managing them systematically. [classic]
(2) Understanding and documenting the stakeholders’ desires and needs. [customer-oriented]
(3) Specifying and managing requirements to minimize the risk of delivering a system that does not meet the stakeholders’ desires and needs. [risk-oriented]
approach | definition | metaphor | goal | problems |
---|---|---|---|---|
classic | The application of a systematic, disciplined, quantifiable approach to the specification and management of requirements; that is the application of engineering to requirements. | upfront engineering | complete, unambiguous requirements prior to design | big and heavy process |
customer-oriented | understanding and documenting the customers’ desires and needs. | customer satisfaction | understand the customer | Why not just code what the customer desires and needs? Who is "the customer"? |
risk-oriented | Specifying and managing requirements to *minimize the risk* of delivering a system that does not meet the stakeholders’ desires and needs. | balancing effort and value | mitigate risk |
Principles of RE
- Stakeholders
- Systems, machines, and context
- Intertwining of Goals, Requirements, and Design
- Value-Orientation
- Validation
- Evolution
- Innovation
Stakeholders
- Stakeholder
- A person or organization that has a (direct or indirect) influence on a system’s requirements.
Indirect influence also includes situations where a person or organization is impacted by the system.
Ex. Skilift: Betreiber, Skifahrer, Aktionäre …
Differing viewpoints and needs =>
- Discover conflicts and inconsistencies
- Find consensus
- Negotiating
- Moderating
- Determine when variability is needed to accommodate different user groups
Systems, machines, and context
Reqs specify a system that is embedded in a domain context and may be part of another system. => multi-level reqs
- Context
-
-
In general: The network of thoughts and meanings needed for understanding phenomena or utterances.
-
Especially in RE: The part of a system’s environment being relevant for understanding the system and its requirements.
-
- System boundary
- The boundary between a system and its surrounding context.
Must to be determined by RE.
- Context boundary
- Boundary between the context of a system and those parts of the application domain that are irrelevant for the system and its requirements.
- Context models
-
- Model system and context (as actors – admins, users, other systems…)
- Model actor-system and actor-actor interactions
- Determine level of specification
- Do not model system (black box)
- Model system and context (as actors – admins, users, other systems…)
Mapping world phenomena to machine phenomena
High-level real world reqs have to be mapped to more low-level system reqs (that assume domain properties).
- The requirements problem (Jackson)
- Given a machine satisfying the specification and assuming that the domain properties hold, the requirements in the world must be satisfied: .
Intertwining of goals, requirements, and design
Waterfall does not work well. Requirements and design can’t be seperated.
Hierarchical intertwinement
- High-level design decision inform reqs
- Typical layers: business -> system -> software
“What” vs. “How”
- Context-dependent => useless distinction
- Instead, distinguish operationally
- Statement owned by stakeholder (change requires approval from stakeholder)?
- => It’s a req
- Statement owned by supplier (supplier may change freely)?
- => It’s a design decision
- Statement owned by stakeholder (change requires approval from stakeholder)?
Technical feasibility and innovation
Software architecture frames, constrains, and inspires reqs.
- SA frames:
- Context and boundaries for reqs
- Insights into difficulty, risk, cost of implementation
- SA constrains:
- Technical limitations (obvious)
- Project limitations
- too high a cost, risk, time
- SA inspires:
- Technology creates opportunities (e.g. RFID chips)
Validation [position wat]
- Stakeholder may not know what they want at the start
- Get stakeholder feedback on some design decisions
- => Agile
Value-Orientation
- Customer pay for systems, not reqs
- Good RE creates value (indirectly)
- value = benefit of reducing development risk - cost of specifying req
- weigh stakeholder importance against impact of req
- RE effort shall be inversly proportional to allowed risk
Other risk factors
- Innovative system (distinctiveness)
- Low shared understanding (between devs and stakeholders)
- No reference systems
- Long feedback-cycle
- Bad customer-supplier relationship
- Certification required
Validation
Every req needs to be validated
Evolution
Keeping reqs stable <–> permitting reqs to change
- Very short(1-6 weeks) dev cycles
- Explicit req management
Innovation
- Don’t just automate – strive for making stakeholders happy
- Innovative reqs are the key
Classifiying requirements
TODO fix shitty table formatting
Application <-- Order | What is the underlying concern? Was this requirement stated primarily because we need to specify ... | Kind of req |
---|---|---|
... some of the system’s behaviour, data, input, or reaction to input stimuli –regardless of the way this is done? | functional requirement | |
... a quality that the system or a component shall have? | quality requirement | |
... any other restriction about what the system shall do, how it shall do it, or any prescribed solution or solution element? | constraint |
Representation
Form | Definition | Validation levels | Example |
---|---|---|---|
Operational | Specification of operations or data | Review, test, or formal verification | The turnstile control software shall count the number of ‘unlock for a single turn’ commands that it issues to the controlled turnstile. |
Quantitative | Specification of measurable properties | Measurement (at least on an ordinal scale) | During the operating hours of the chair lift, the system must be available for 99.99% of the time. |
Qualitative | Specification of goals | No direct verification. Either by subjective stakeholder judgement of deployed system, by prototype, or indirectly by goal refinement or derived metrics | The system shall be highly available. |
Declarative | Description of a required feature | Review | The system must comply with the privacy law of the country where the resort is located. |
Example:
- “Any unauthorized access to the customer data shall be prevented”
- Qualitatively, non-functional
- “The database shall grant access to the customer data only to those users that have been authorized by their user name and password”
- operationally, non-functional
Satisfaction
Hard vs soft reqs
Kind
- Function, Data, Behaviour
- Quality
- Constraint ### Role
- Prescriptive
- Normative
- Assumptive
Shared understanding
[NEXT: 2016-05-10-1.mp4]
RE Practices
Documenting requirements
Requirements engineering processes
Requirements elicitation
Specifying with natural language
Model-based requirements specification
Formal specifications languages
Validating requirements
Innovative requirements
Requirements management
Enablers and Stumble Blocks
Requirements tools
RE under time pressure
Research Topics
Architecture-driven RE
Conclusions
Protokollfragen
-
oberflächliche Fragen
- 3 Definitionen von RE
- 7 Prinzipien des RE aufzählen und kurz beschreiben
- Was heißt Maschine bei “Systems, machines, and context”, Probleme?
- A: …, Jacksons Problem, Lücke zwischen Maschine und realer Welt
- Def Shared Understanding
- Was heißt Maschine bei “Systems, machines, and context”, Probleme?
- UML Diagramme für dynamisches Verhalten nennen und an Beispiel erklären + skizzieren
- A: State Charts, modellieren externe Events; Sequenzdiagramme, modellieren Nachrichten/Interaktionen
- Zustandsdiagramm “Aufzug” zeichnen
- Klassifizierungen von Anforderungen + Unterpunkte
- Facettierte Klassifikation
- Unterschied Qualitätsmerkmal - Funktionale Anforderung
- Qualitätseigenschaften
- Prozesse des RE, welchen Dimensionen?
- 3 Modellierungsperspektiven
- Was kann man alles modellieren?
- Was für Diagramme pro Perspektive?
- Aktivitätsdiagramm zu “Geld vom Bankautomaten abheben”
- Was heißen einzelne Elemente?
- Warum Aktivitätsdiagramm bei Funktionsperspektive und Statecharts bei Verhaltensperspektive? [“Preisfrage”]
- Formale Sprache: “Geld abheben” modellieren in Z
- OCL erklären + Beispiel
- A: Drückt Invarianten, Semantik aus
- Schlussfolgerungen zu den 3 Papers