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

Axel Van Lamsweerde

ISBN: 9788126545896

712 pages

Exclusively distributed by CBS Publishers & Distributors 

INR 1095


The book presents both the current state of the art in requirements engineering and a systematic method for engineering high-quality requirements, broken down into four parts.  The first part introduces fundamental concepts and principles including the aim and scope of requirements engineering, the products and processes involved, requirements qualities to aim at and flaws to avoid, and the critical role of requirements engineering in system and software engineering. The second part of the book is devoted to system modeling in the specific context of engineering requirements. It presents a multi-view modeling framework that integrates complementary techniques for modeling the system-as-is and the system-to-be. The third part of the book reviews goal-based reasoning techniques to support the various steps of the KAOS method. The fourth part of the book goes beyond requirements engineering to discuss the mapping from goal-oriented requirements to software specifications and to software architecture.



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.