+353-1-416-8900REST OF WORLD
+44-20-3973-8888REST OF WORLD
1-917-300-0470EAST COAST U.S
1-800-526-8630U.S. (TOLL FREE)


Requirements Engineering. From System Goals to UML Models to Software Specifications

  • ID: 2242188
  • Book
  • 712 Pages
  • John Wiley and Sons Ltd
1 of 3
This book provides a systematic and practical approach to the engineering of high–quality requirements. It covers the entire requirements lifecycle and integrates state–of–the–art techniques for requirements elicitation, evaluation, specification, analysis, and evolution. Modeling plays a central role. A method is presented for building and analyzing a multi–view model of the target system, where each step is supported by heuristic rules, tactics, modeling patterns, and bad smells to avoid.

Highlights include:

- A comprehensive introduction to the fundamentals of requirements engineering, including techniques for: requirements elicitation and reuse, risk analysis, conflict management, and requirements prioritization; requirements specification, inspection, validation, and verification; traceability management and change control.
- An in–depth treatment of system modelling for requirements engineering, including constructive techniques for modeling system goals, conceptual objects, responsibilities among system agents, operations, scenarios and intended behaviors, and countermeasures to anticipated hazards and threats.
- A variety of techniques for model–based evaluation of alternative options, model refinement checking, model animation, property verification, inductive model synthesis, and analysis of conflicts, hazards, and security threats.
- Use of standard UML notations wherever applicable. Most techniques are based on a solid formal framework, kept hidden throughout the major part of the book for wider accessibility.
- Numerous examples from running case studies in a variety of domains, including security– and safety–critical ones. Rich set of problems and exercises at the end of each chapter together with bibliographical notes for further study.

The book is primarily written for undergraduates and masters students in software or system engineering to acquire a solid background in requirements engineering and system modelling. It is also intended for practitioners in need of systematic guidance for elaborating and analyzing requirements. The last part on model–based reasoning is more targeted to graduate students. A companion website with additional instructor resources and tool support can be found at <a href="[external URL] lamsweerde
Note: Product cover images may vary from those shown
2 of 3


Part I: Fundamentals of Requirements Engineering.

1. Setting the Scene.

1.1 What is requirements engineering?

1.2 Why engineer requirements?

1.3 Obstacles to good requirements engineering practice.

1.4 Agile development processes and requirements engineering.


Notes and Further Reading.


2. Domain Analysis and Requirements Elicitation.

2.1 Identifying stakeholders and interacting with them.

2.2 Artefact–driven elicitation techniques.

2.3 Stakeholder–driven elicitation techniques.

2.4 Conclusion.


Notes and Further Reading.


3. Requirements Evaluation.

3.1 Inconsistency management.

3.2 Risk analysis.

3.3 Evaluating alternative options for decision making.

3.4 Requirements prioritization.

3.5 Conclusion.


Notes and Further Reading.


4. Requirements Specification and Documentation.

4.1 Free documentation in unrestricted natural language.

4.2 Disciplined documentation in structured natural language.

4.3 Use of diagrammatic notations.

4.4 Formal specification.

4.5 Conclusion.


Notes and Further Reading.


5. Requirements Quality Assurance.

5.1 Requirements inspections and reviews.

5.2 Queries on a requirement database.

5.3 Requirements validation by specification animation.

5.4 Requirements verification through formal checks.

5.5 Conclusion.


Notes and Further Reading.


6. Requirements Evolution.

6.1 The time–space dimensions of evolution: Revisions and variants.

6.2 Change anticipation.

6.3 Traceability management for evolution support.

6.4 Change control.

6.5 Runtime monitoring of requirements and assumptions for dynamic change.

6.6 Conclusion.


Notes and Further Reading.


7. Goal–Orientation in Requirements Engineering.

7.1 What are goals?

7.2 The granularity of goals and their relationship to requirements and assumptions.

7.3 Goal types and categories.

7.4 The central role of goals in the requirements engineering process.

7.5 Where are goals coming from?

7.6 The relationship of goals to other requirements–related products and processes.


Notes and Further Reading.


Part II: Building System Models for Requirements Engineering.

8. Moddeling System Objectives with Goal Diagrams.

8.1 Goal features as model annotations.

8.2 Goal refinement.

8.3 Representing conflicts among goals.

8.4 Connecting the goal model with other system views.

8.5 Modelling alternative options.

8.6 Goal diagrams as AND/OR graphs.

8.7 Documenting goal refinements and assignments with annotations.

8.8 Building goal models: Heuristic rules and reusable patterns.


Notes and Further Reading.


9. Anticipating What Could Go Wrong: Risk Analysis on Goal Models.

9.1 Goal obstruction by obstacles.

9.2 Modelling obstacles.

9.3 Obstacle analysis for a more robust goal model.


Notes and Further Reading.


10. Moddeling Conceptual Objects with Class Diagrams.

10.1 Representing domain concepts by conceptual objects.

10.2 Entities.

10.3 Associations.

10.4 Attributes.

10.5 Built–in associations for structuring object models.

10.6 More on class diagrams.

10.7 Heuristic rules for building object models.


Notes and Further Reading.


11. Moddeling System Agents and Responsibilities.

11.1 What are agents?

11.2 Characterizing system agents.

11.3 Representing agent models.

11.4 Refinement of abstract agents.

11.5 Building agent models.


Notes and Further Reading.


12. Moddeling System Operations.

12.1 What are operations?

12.2 Characterizing system operations.

12.3 Goal operationalization.

12.4 Goals, agents, objects and operations: The Sematic picture.

12.5 Representing operation models.

12.6 Building operation models.


Notes and Further Reading.


13. Moddeling System Behaviors.

13.1 Modelling instance behaviours.

13.2 Modelling class behaviours.

13.3 Building behaviour models.


Notes and Further Reading.


14. Integrating Multiple System Views.

14.1 A meta–model for view integration.

14.2 Inter–view consistency rules.

14.3 Grouping related view fragments into packages.


Notes and Further Reading.


15. A Goal–Oriented Model Building Method in Action.

15.1 Modelling the system–as–is.

15.2 Modelling the system–to–be.

15.3 Handling model variants for product lines.


Notes and Further Reading.


Part III: Reasoning About System Models.

16. Semi–Formal Reasoning for Model Analysis and Exploitation.

16.1 Query–based analysis of the model database.

16.2 Semi–formal analysis of goal–oriented models.

16.3 Reasoning about alternative options.

16.4 Model–driven generation of the requirements document.

16.5 Beyond RE: From goal–oriented requirements to software architecture.


Notes and Further Reading.


17. Formal Specification of System Models.

17.1 A real–time temporal logic for specifying model annotations.

17.2 Specifying goals in the goal model.

17.3 Specifying descriptive properties in the object model.

17.4 Specifying operationalizations in the operation model.

17.5 Back to the system s semantic picture.


Notes and Further reading.


18. Formal Reasoning for Specification Construction and Analysis.

18.1 Checking goal refinements.

18.2 Deriving goal operationalizations.

18.3 Generating obstacles for risk analysis.

18.4 Generating anti–goals for security analysis.

18.5 Formal conflict analysis.

18.6 Synthesizing behaviour models for animation and model checking.


Notes and Further Reading.





Requirements Document Generated from a Goal–Oriented Model.


Note: Product cover images may vary from those shown
3 of 3


4 of 3
Axel van Lamsweerde
Note: Product cover images may vary from those shown