{"product_id":"requirements-engineering-isbn-9780470012703","title":"Requirements Engineering","description":"\u003cp\u003eThe 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 \u003ci\u003efirst part\u003c\/i\u003e 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.\u003c\/p\u003e \u003cp\u003eThe \u003ci\u003esecond part\u003c\/i\u003e 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 \u003ci\u003ethird part\u003c\/i\u003e of the book reviews goal-based reasoning techniques to support the various steps of the KAOS method. The \u003ci\u003efourth part\u003c\/i\u003e of the book goes beyond requirements engineering to discuss the mapping from goal-oriented requirements to software specifications and to software architecture.\u003c\/p\u003e \u003cp\u003eOnline software will accompany the book and will add value to both classroom and self-study by enabling students to build models and specifications involved in the book’s exercises and case studies, helping them to discover the latest RE technology solutions. Instructor resources such as slides, figures and handouts are available from an accompanying website.\u003c\/p\u003e \u003cp\u003eForeword xvii\u003c\/p\u003e \u003cp\u003ePreface xxi\u003c\/p\u003e \u003cp\u003e\u003cb\u003ePart I Fundamentals of Requirements Engineering 1\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003e1 Setting the Scene 3\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e1.1 What is requirements engineering? 3\u003c\/p\u003e \u003cp\u003e1.1.1 The problem world and the machine solution 4\u003c\/p\u003e \u003cp\u003e1.1.2 Introducing our running case studies 6\u003c\/p\u003e \u003cp\u003e1.1.3 The WHY, WHAT and WHO dimensions of requirements engineering 12\u003c\/p\u003e \u003cp\u003e1.1.4 Types of statements involved in requirements engineering 17\u003c\/p\u003e \u003cp\u003e1.1.5 Categories of requirements 23\u003c\/p\u003e \u003cp\u003e1.1.6 The requirements lifecycle: Processes, actors and products 30\u003c\/p\u003e \u003cp\u003e1.1.7 Target qualities and defects to avoid 35\u003c\/p\u003e \u003cp\u003e1.1.8 Types of software projects 40\u003c\/p\u003e \u003cp\u003e1.1.9 Requirements in the software lifecycle 42\u003c\/p\u003e \u003cp\u003e1.1.10 The relationship of requirements engineering to other disciplines 45\u003c\/p\u003e \u003cp\u003e1.2 Why engineer requirements? 47\u003c\/p\u003e \u003cp\u003e1.2.1 Facts, data and citations about the requirements problem 47\u003c\/p\u003e \u003cp\u003e1.2.2 The role and stakes of requirements engineering 51\u003c\/p\u003e \u003cp\u003e1.3 Obstacles to good requirements engineering practice 52\u003c\/p\u003e \u003cp\u003e1.4 Agile development processes and requirements engineering 53\u003c\/p\u003e \u003cp\u003eSummary 55\u003c\/p\u003e \u003cp\u003eNotes and Further Reading 56\u003c\/p\u003e \u003cp\u003eExercises 58\u003c\/p\u003e \u003cp\u003e\u003cb\u003e2 Domain Understanding and Requirements Elicitation 61\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e2.1 Identifying stakeholders and interacting with them 62\u003c\/p\u003e \u003cp\u003e2.2 Artefact-driven elicitation techniques 64\u003c\/p\u003e \u003cp\u003e2.2.1 Background study 64\u003c\/p\u003e \u003cp\u003e2.2.2 Data collection 65\u003c\/p\u003e \u003cp\u003e2.2.3 Questionnaires 65\u003c\/p\u003e \u003cp\u003e2.2.4 Repertory grids and card sorts for concept-driven acquisition 66\u003c\/p\u003e \u003cp\u003e2.2.5 Storyboards and scenarios for problem world exploration 67\u003c\/p\u003e \u003cp\u003e2.2.6 Mock-ups and prototypes for early feedback 70\u003c\/p\u003e \u003cp\u003e2.2.7 Knowledge reuse 72\u003c\/p\u003e \u003cp\u003e2.3 Stakeholder-driven elicitation techniques 76\u003c\/p\u003e \u003cp\u003e2.3.1 Interviews 77\u003c\/p\u003e \u003cp\u003e2.3.2 Observation and ethnographic studies 79\u003c\/p\u003e \u003cp\u003e2.3.3 Group sessions 80\u003c\/p\u003e \u003cp\u003e2.4 Conclusion 81\u003c\/p\u003e \u003cp\u003eSummary 82\u003c\/p\u003e \u003cp\u003eNotes and Further Reading 84\u003c\/p\u003e \u003cp\u003eExercises 85\u003c\/p\u003e \u003cp\u003e\u003cb\u003e3 Requirements Evaluation 87\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e3.1 Inconsistency management 88\u003c\/p\u003e \u003cp\u003e3.1.1 Types of inconsistency 88\u003c\/p\u003e \u003cp\u003e3.1.2 Handling inconsistencies 89\u003c\/p\u003e \u003cp\u003e3.1.3 Managing conflicts: A systematic process 90\u003c\/p\u003e \u003cp\u003e3.2 Risk analysis 93\u003c\/p\u003e \u003cp\u003e3.2.1 Types of risk 94\u003c\/p\u003e \u003cp\u003e3.2.2 Risk management 95\u003c\/p\u003e \u003cp\u003e3.2.3 Risk documentation 101\u003c\/p\u003e \u003cp\u003e3.2.4 Integrating risk management in the requirements lifecycle 102\u003c\/p\u003e \u003cp\u003e3.3 Evaluating alternative options for decision making 105\u003c\/p\u003e \u003cp\u003e3.4 Requirements prioritization 108\u003c\/p\u003e \u003cp\u003e3.5 Conclusion 112\u003c\/p\u003e \u003cp\u003eSummary 113\u003c\/p\u003e \u003cp\u003eNotes and Further Reading 114\u003c\/p\u003e \u003cp\u003eExercises 116\u003c\/p\u003e \u003cp\u003e\u003cb\u003e4 Requirements Specification and Documentation 119\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e4.1 Free documentation in unrestricted natural language 120\u003c\/p\u003e \u003cp\u003e4.2 Disciplined documentation in structured natural language 121\u003c\/p\u003e \u003cp\u003e4.2.1 Local rules on writing statements 121\u003c\/p\u003e \u003cp\u003e4.2.2 Global rules on organizing the requirements document 124\u003c\/p\u003e \u003cp\u003e4.3 Use of diagrammatic notations 127\u003c\/p\u003e \u003cp\u003e4.3.1 System scope: context, problem and frame diagrams 127\u003c\/p\u003e \u003cp\u003e4.3.2 Conceptual structures: entity–relationship diagrams 130\u003c\/p\u003e \u003cp\u003e4.3.3 Activities and data: SADT diagrams 133\u003c\/p\u003e \u003cp\u003e4.3.4 Information flows: dataflow diagrams 134\u003c\/p\u003e \u003cp\u003e4.3.5 System operations: use case diagrams 136\u003c\/p\u003e \u003cp\u003e4.3.6 Interaction scenarios: event trace diagrams 136\u003c\/p\u003e \u003cp\u003e4.3.7 System behaviours: state machine diagrams 138\u003c\/p\u003e \u003cp\u003e4.3.8 Stimuli and responses: R-net diagrams 142\u003c\/p\u003e \u003cp\u003e4.3.9 Integrating multiple system views and multiview specification in UML 142\u003c\/p\u003e \u003cp\u003e4.3.10 Diagrammatic notations: Strengths and limitations 144\u003c\/p\u003e \u003cp\u003e4.4 Formal specification 145\u003c\/p\u003e \u003cp\u003e4.4.1 Logic as a basis for formalizing statements 146\u003c\/p\u003e \u003cp\u003e4.4.2 History-based specification 151\u003c\/p\u003e \u003cp\u003e4.4.3 State-based specification 155\u003c\/p\u003e \u003cp\u003e4.4.4 Event-based specification 163\u003c\/p\u003e \u003cp\u003e4.4.5 Algebraic specification 167\u003c\/p\u003e \u003cp\u003e4.4.6 Other specification paradigms 172\u003c\/p\u003e \u003cp\u003e4.4.7 Formal specification: strengths and limitations 173\u003c\/p\u003e \u003cp\u003e4.5 Conclusion 174\u003c\/p\u003e \u003cp\u003eSummary 176\u003c\/p\u003e \u003cp\u003eNotes and Further Reading 179\u003c\/p\u003e \u003cp\u003eExercises 183\u003c\/p\u003e \u003cp\u003e\u003cb\u003e5 Requirements Quality Assurance 187\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e5.1 Requirements inspections and reviews 188\u003c\/p\u003e \u003cp\u003e5.1.1 The requirements inspection process 188\u003c\/p\u003e \u003cp\u003e5.1.2 Inspection guidelines 190\u003c\/p\u003e \u003cp\u003e5.1.3 Requirements inspection checklists 191\u003c\/p\u003e \u003cp\u003e5.1.4 Conclusion 195\u003c\/p\u003e \u003cp\u003e5.2 Queries on a requirements database 196\u003c\/p\u003e \u003cp\u003e5.3 Requirements validation by specification animation 198\u003c\/p\u003e \u003cp\u003e5.3.1 Extracting an executable model from the specification 199\u003c\/p\u003e \u003cp\u003e5.3.2 Simulating the model 199\u003c\/p\u003e \u003cp\u003e5.3.3 Visualizing the simulation 200\u003c\/p\u003e \u003cp\u003e5.3.4 Conclusion 200\u003c\/p\u003e \u003cp\u003e5.4 Requirements verification through formal checks 202\u003c\/p\u003e \u003cp\u003e5.4.1 Language checks 202\u003c\/p\u003e \u003cp\u003e5.4.2 Dedicated consistency and completeness checks 203\u003c\/p\u003e \u003cp\u003e5.4.3 Model checking 205\u003c\/p\u003e \u003cp\u003e5.4.4 Theorem proving 208\u003c\/p\u003e \u003cp\u003e5.5 Conclusion 211\u003c\/p\u003e \u003cp\u003eSummary 213\u003c\/p\u003e \u003cp\u003eNotes and Further Reading 214\u003c\/p\u003e \u003cp\u003eExercises 217\u003c\/p\u003e \u003cp\u003e\u003cb\u003e6 Requirements Evolution 219\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e6.1 The time–space dimensions of evolution: Revisions and variants 220\u003c\/p\u003e \u003cp\u003e6.2 Change anticipation 223\u003c\/p\u003e \u003cp\u003e6.3 Traceability management for evolution support 225\u003c\/p\u003e \u003cp\u003e6.3.1 Traceability links 226\u003c\/p\u003e \u003cp\u003e6.3.2 The traceability management process, its benefits and cost 233\u003c\/p\u003e \u003cp\u003e6.3.3 Traceability management techniques 237\u003c\/p\u003e \u003cp\u003e6.3.4 Determining an adequate cost–benefit trade-off for traceability management 244\u003c\/p\u003e \u003cp\u003e6.4 Change control 246\u003c\/p\u003e \u003cp\u003e6.4.1 Change initiation 247\u003c\/p\u003e \u003cp\u003e6.4.2 Change evaluation and prioritization 248\u003c\/p\u003e \u003cp\u003e6.4.3 Change consolidation 249\u003c\/p\u003e \u003cp\u003e6.5 Runtime monitoring of requirements and assumptions for dynamic change 249\u003c\/p\u003e \u003cp\u003e6.6 Conclusion 251\u003c\/p\u003e \u003cp\u003eSummary 252\u003c\/p\u003e \u003cp\u003eNotes and Further Reading 254\u003c\/p\u003e \u003cp\u003eExercises 256\u003c\/p\u003e \u003cp\u003e\u003cb\u003e7 Goal Orientation in Requirements Engineering 259\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e7.1 What are goals? 260\u003c\/p\u003e \u003cp\u003e7.2 The granularity of goals and their relationship to requirements and assumptions 261\u003c\/p\u003e \u003cp\u003e7.3 Goal types and categories 265\u003c\/p\u003e \u003cp\u003e7.3.1 Types of goal: behavioural goals vs soft goals 265\u003c\/p\u003e \u003cp\u003e7.3.2 Goal categories: Functional vs non-functional goals 269\u003c\/p\u003e \u003cp\u003e7.4 The central role of goals in the requirements engineering process 272\u003c\/p\u003e \u003cp\u003e7.5 Where are goals coming from? 275\u003c\/p\u003e \u003cp\u003e7.6 The relationship of goals to other requirements-related products and processes 276\u003c\/p\u003e \u003cp\u003e7.6.1 Goals and scenarios 276\u003c\/p\u003e \u003cp\u003e7.6.2 Intentional and operational specifications 277\u003c\/p\u003e \u003cp\u003e7.6.3 Goals and use cases 277\u003c\/p\u003e \u003cp\u003e7.6.4 Goals and model-checked properties 277\u003c\/p\u003e \u003cp\u003e7.6.5 Goal orientation and agent orientation 278\u003c\/p\u003e \u003cp\u003e7.6.6 Goal orientation and object orientation 278\u003c\/p\u003e \u003cp\u003e7.6.7 Goal orientation and top-down analysis 279\u003c\/p\u003e \u003cp\u003eSummary 279\u003c\/p\u003e \u003cp\u003eNotes and Further Reading 280\u003c\/p\u003e \u003cp\u003eExercises 283\u003c\/p\u003e \u003cp\u003e\u003cb\u003ePart II Building System Models for Requirements Engineering 287\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003e8 Modelling System Objectives with Goal Diagrams 293\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e8.1 Goal features as model annotations 294\u003c\/p\u003e \u003cp\u003e8.2 Goal refinement 297\u003c\/p\u003e \u003cp\u003e8.3 Representing conflicts among goals 301\u003c\/p\u003e \u003cp\u003e8.4 Connecting the goal model with other system views 302\u003c\/p\u003e \u003cp\u003e8.5 Modelling alternative options 303\u003c\/p\u003e \u003cp\u003e8.5.1 Alternative goal refinements 304\u003c\/p\u003e \u003cp\u003e8.5.2 Alternative responsibility assignments 305\u003c\/p\u003e \u003cp\u003e8.6 Goal diagrams as AND\/OR graphs 307\u003c\/p\u003e \u003cp\u003e8.7 Documenting goal refinements and assignments with annotations 308\u003c\/p\u003e \u003cp\u003e8.8 Building goal models: Heuristic rules and reusable patterns 309\u003c\/p\u003e \u003cp\u003e8.8.1 Eliciting preliminary goals 309\u003c\/p\u003e \u003cp\u003e8.8.2 Identifying goals along refinement branches 311\u003c\/p\u003e \u003cp\u003e8.8.3 Delimiting the scope of the goal model 316\u003c\/p\u003e \u003cp\u003e8.8.4 Avoiding common pitfalls 317\u003c\/p\u003e \u003cp\u003e8.8.5 Reusing refinement patterns 319\u003c\/p\u003e \u003cp\u003e8.8.6 Reusing refinement trees associated with goal categories 326\u003c\/p\u003e \u003cp\u003eSummary 328\u003c\/p\u003e \u003cp\u003eNotes and Further Reading 329\u003c\/p\u003e \u003cp\u003eExercises 331\u003c\/p\u003e \u003cp\u003e\u003cb\u003e9 Anticipating What Could Go Wrong: Risk Analysis on Goal Models 335\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e9.1 Goal obstruction by obstacles 336\u003c\/p\u003e \u003cp\u003e9.1.1 What are obstacles? 336\u003c\/p\u003e \u003cp\u003e9.1.2 Completeness of a set of obstacles 337\u003c\/p\u003e \u003cp\u003e9.1.3 Obstacle categories 338\u003c\/p\u003e \u003cp\u003e9.2 Modelling obstacles 339\u003c\/p\u003e \u003cp\u003e9.2.1 Obstacle diagrams 339\u003c\/p\u003e \u003cp\u003e9.2.2 Conditions on obstacle refinement 341\u003c\/p\u003e \u003cp\u003e9.2.3 Bottom-up propagation of obstructions in goal AND-refinements 342\u003c\/p\u003e \u003cp\u003e9.2.4 Annotating obstacle diagrams 343\u003c\/p\u003e \u003cp\u003e9.3 Obstacle analysis for a more robust goal model 344\u003c\/p\u003e \u003cp\u003e9.3.1 Identifying obstacles 344\u003c\/p\u003e \u003cp\u003e9.3.2 Evaluating obstacles 349\u003c\/p\u003e \u003cp\u003e9.3.3 Resolving obstacles in a modified goal model 349\u003c\/p\u003e \u003cp\u003eSummary 353\u003c\/p\u003e \u003cp\u003eNotes and Further Reading 355\u003c\/p\u003e \u003cp\u003eExercises 356\u003c\/p\u003e \u003cp\u003e\u003cb\u003e10 Modelling Conceptual Objects with Class Diagrams 359\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e10.1 Representing domain concepts by conceptual objects 360\u003c\/p\u003e \u003cp\u003e10.1.1 What are conceptual objects? 360\u003c\/p\u003e \u003cp\u003e10.1.2 Object instantiation: classes and current instances 361\u003c\/p\u003e \u003cp\u003e10.1.3 Types of conceptual object 362\u003c\/p\u003e \u003cp\u003e10.1.4 Object models as UML class diagrams 363\u003c\/p\u003e \u003cp\u003e10.1.5 Object features as model annotations 364\u003c\/p\u003e \u003cp\u003e10.2 Entities 366\u003c\/p\u003e \u003cp\u003e10.3 Associations 366\u003c\/p\u003e \u003cp\u003e10.4 Attributes 371\u003c\/p\u003e \u003cp\u003e10.5 Built-in associations for structuring object models 373\u003c\/p\u003e \u003cp\u003e10.5.1 Object specialization 373\u003c\/p\u003e \u003cp\u003e10.5.2 Object aggregation 376\u003c\/p\u003e \u003cp\u003e10.6 More on class diagrams 377\u003c\/p\u003e \u003cp\u003e10.6.1 Derived attributes and associations 377\u003c\/p\u003e \u003cp\u003e10.6.2 OR-associations 378\u003c\/p\u003e \u003cp\u003e10.6.3 Ordered associations 379\u003c\/p\u003e \u003cp\u003e10.6.4 Associations of associations 379\u003c\/p\u003e \u003cp\u003e10.7 Heuristic rules for building object models 380\u003c\/p\u003e \u003cp\u003e10.7.1 Deriving pertinent and complete class diagrams from goal diagrams 380\u003c\/p\u003e \u003cp\u003e10.7.2 Object or attribute? 384\u003c\/p\u003e \u003cp\u003e10.7.3 Entity, association, agent or event? 384\u003c\/p\u003e \u003cp\u003e10.7.4 Attribute of a linked object or of the linking association? 385\u003c\/p\u003e \u003cp\u003e10.7.5 Aggregation or association? 386\u003c\/p\u003e \u003cp\u003e10.7.6 Specializing and generalizing concepts 386\u003c\/p\u003e \u003cp\u003e10.7.7 Avoiding common pitfalls 387\u003c\/p\u003e \u003cp\u003eSummary 389\u003c\/p\u003e \u003cp\u003eNotes and Further Reading 391\u003c\/p\u003e \u003cp\u003eExercises 392\u003c\/p\u003e \u003cp\u003e\u003cb\u003e11 Modelling System Agents and Responsibilities 395\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e11.1 What are agents? 396\u003c\/p\u003e \u003cp\u003e11.2 Characterizing system agents 397\u003c\/p\u003e \u003cp\u003e11.2.1 Basic features 397\u003c\/p\u003e \u003cp\u003e11.2.2 Agent capabilities 397\u003c\/p\u003e \u003cp\u003e11.2.3 Agent responsibilities and goal realizability 399\u003c\/p\u003e \u003cp\u003e11.2.4 Agents as operation performers 401\u003c\/p\u003e \u003cp\u003e11.2.5 Agent wishes and beliefs 402\u003c\/p\u003e \u003cp\u003e11.2.6 Agent dependencies 403\u003c\/p\u003e \u003cp\u003e11.3 Representing agent models 405\u003c\/p\u003e \u003cp\u003e11.3.1 Agent diagrams and instance declarations 405\u003c\/p\u003e \u003cp\u003e11.3.2 Context diagrams 406\u003c\/p\u003e \u003cp\u003e11.3.3 Dependency diagrams 407\u003c\/p\u003e \u003cp\u003e11.4 Refinement of abstract agents 408\u003c\/p\u003e \u003cp\u003e11.5 Building agent models 411\u003c\/p\u003e \u003cp\u003e11.5.1 Heuristics for building agent diagrams from goal models 411\u003c\/p\u003e \u003cp\u003e11.5.2 Generating context diagrams from goal models 413\u003c\/p\u003e \u003cp\u003eSummary 415\u003c\/p\u003e \u003cp\u003eNotes and Further Reading 417\u003c\/p\u003e \u003cp\u003eExercises 418\u003c\/p\u003e \u003cp\u003e\u003cb\u003e12 Modelling System Operations 421\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e12.1 What are operations? 422\u003c\/p\u003e \u003cp\u003e12.2 Characterizing system operations 425\u003c\/p\u003e \u003cp\u003e12.2.1 Basic features 425\u003c\/p\u003e \u003cp\u003e12.2.2 Operation signature 425\u003c\/p\u003e \u003cp\u003e12.2.3 Domain pre- and post-conditions 426\u003c\/p\u003e \u003cp\u003e12.2.4 Operation performer 427\u003c\/p\u003e \u003cp\u003e12.3 Goal operationalization 427\u003c\/p\u003e \u003cp\u003e12.3.1 Required pre-, post- and trigger conditions for goal satisfaction 427\u003c\/p\u003e \u003cp\u003e12.3.2 Agent commitments 430\u003c\/p\u003e \u003cp\u003e12.3.3 Goal operationalization and satisfaction arguments 432\u003c\/p\u003e \u003cp\u003e12.4 Goals, agents, objects and operations: The semantic picture 434\u003c\/p\u003e \u003cp\u003e12.5 Representing operation models 435\u003c\/p\u003e \u003cp\u003e12.5.1 Operationalization diagrams 435\u003c\/p\u003e \u003cp\u003e12.5.2 UML use case diagrams 435\u003c\/p\u003e \u003cp\u003e12.6 Building operation models 437\u003c\/p\u003e \u003cp\u003e12.6.1 Heuristics for building operationalization diagrams 437\u003c\/p\u003e \u003cp\u003e12.6.2 Generating use case diagrams from operationalization diagrams 442\u003c\/p\u003e \u003cp\u003eSummary 442\u003c\/p\u003e \u003cp\u003eNotes and Further Reading 444\u003c\/p\u003e \u003cp\u003eExercises 445\u003c\/p\u003e \u003cp\u003e\u003cb\u003e13 Modelling System Behaviours 449\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e13.1 Modelling instance behaviours 450\u003c\/p\u003e \u003cp\u003e13.1.1 Scenarios as UML sequence diagrams 450\u003c\/p\u003e \u003cp\u003e13.1.2 Scenario refinement: Episodes and agent decomposition 452\u003c\/p\u003e \u003cp\u003e13.2 Modelling class behaviours 454\u003c\/p\u003e \u003cp\u003e13.2.1 State machines as UML state diagrams 455\u003c\/p\u003e \u003cp\u003e13.2.2 State machine refinement: Sequential and concurrent sub-states 459\u003c\/p\u003e \u003cp\u003e13.3 Building behaviour models 463\u003c\/p\u003e \u003cp\u003e13.3.1 Elaborating relevant scenarios for good coverage 465\u003c\/p\u003e \u003cp\u003e13.3.2 Decorating scenarios with state conditions 467\u003c\/p\u003e \u003cp\u003e13.3.3 From scenarios to state machines 469\u003c\/p\u003e \u003cp\u003e13.3.4 From scenarios to goals 473\u003c\/p\u003e \u003cp\u003e13.3.5 From operationalized goals to state machines 475\u003c\/p\u003e \u003cp\u003eSummary 477\u003c\/p\u003e \u003cp\u003eNotes and Further Reading 480\u003c\/p\u003e \u003cp\u003eExercises 481\u003c\/p\u003e \u003cp\u003e\u003cb\u003e14 Integrating Multiple System Views 485\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e14.1 A meta-model for view integration 485\u003c\/p\u003e \u003cp\u003e14.1.1 Overall structure of the meta-model 487\u003c\/p\u003e \u003cp\u003e14.1.2 The goal meta-model 488\u003c\/p\u003e \u003cp\u003e14.1.3 The object meta-model 489\u003c\/p\u003e \u003cp\u003e14.1.4 The agent meta-model 490\u003c\/p\u003e \u003cp\u003e14.1.5 The operation meta-model 491\u003c\/p\u003e \u003cp\u003e14.1.6 The behaviour meta-model 492\u003c\/p\u003e \u003cp\u003e14.2 Inter-view consistency rules 493\u003c\/p\u003e \u003cp\u003e14.3 Grouping related view fragments into packages 496\u003c\/p\u003e \u003cp\u003eSummary 498\u003c\/p\u003e \u003cp\u003eNotes and Further Reading 498\u003c\/p\u003e \u003cp\u003eExercises 499\u003c\/p\u003e \u003cp\u003e\u003cb\u003e15 A Goal-Oriented Model-Building Method in Action 501\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e15.1 Modelling the system-as-is 503\u003c\/p\u003e \u003cp\u003e15.1.1 Step 1: Build a preliminary goal model illustrated by scenarios 503\u003c\/p\u003e \u003cp\u003e15.1.2 Step 2: Derive a preliminary object model 506\u003c\/p\u003e \u003cp\u003e15.2 Modelling the system-to-be 507\u003c\/p\u003e \u003cp\u003e15.2.1 Step 3: Update the goal model with new goals illustrated by scenarios 507\u003c\/p\u003e \u003cp\u003e15.2.2 Step 4: Derive the updated object model 510\u003c\/p\u003e \u003cp\u003e15.2.3 Step 5: Analyse obstacles, threats and conflicts 512\u003c\/p\u003e \u003cp\u003e15.2.4 Step 6: Analyse responsibilities and build the agent model 515\u003c\/p\u003e \u003cp\u003e15.2.5 Step 7: Make choices among alternative options 517\u003c\/p\u003e \u003cp\u003e15.2.6 Step 8: Operationalize goals in the operation model 518\u003c\/p\u003e \u003cp\u003e15.2.7 Step 9: Build and analyse the behaviour model 521\u003c\/p\u003e \u003cp\u003e15.3 Handling model variants for product lines 524\u003c\/p\u003e \u003cp\u003eSummary 528\u003c\/p\u003e \u003cp\u003eNotes and Further Reading 529\u003c\/p\u003e \u003cp\u003eExercises 529\u003c\/p\u003e \u003cp\u003e\u003cb\u003ePart III Reasoning About System Models 535\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003e16 Semi-Formal Reasoning for Model Analysis and Exploitation 537\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e16.1 Query-based analysis of the model database 538\u003c\/p\u003e \u003cp\u003e16.1.1 Checking the structural consistency and completeness of the model 538\u003c\/p\u003e \u003cp\u003e16.1.2 Generation of other views for dedicated analyses 540\u003c\/p\u003e \u003cp\u003e16.1.3 Traceability management 540\u003c\/p\u003e \u003cp\u003e16.1.4 Analogical model reuse 541\u003c\/p\u003e \u003cp\u003e16.2 Semi-formal analysis of goal-oriented models 544\u003c\/p\u003e \u003cp\u003e16.2.1 Conflict analysis 544\u003c\/p\u003e \u003cp\u003e16.2.2 Heuristic identification of obstacles 549\u003c\/p\u003e \u003cp\u003e16.2.3 Threat analysis: From goal models to anti-goal models 551\u003c\/p\u003e \u003cp\u003e16.3 Reasoning about alternative options 557\u003c\/p\u003e \u003cp\u003e16.3.1 Qualitative reasoning about alternatives 557\u003c\/p\u003e \u003cp\u003e16.3.2 Quantitative reasoning about alternatives 560\u003c\/p\u003e \u003cp\u003e16.4 Model-driven generation of the requirements document 562\u003c\/p\u003e \u003cp\u003e16.5 Beyond RE: From goal-oriented requirements to software architecture 566\u003c\/p\u003e \u003cp\u003e16.5.1 Deriving a software data architecture from the object model 567\u003c\/p\u003e \u003cp\u003e16.5.2 Deriving an abstract dataflow architecture from the agent and operation models 568\u003c\/p\u003e \u003cp\u003e16.5.3 Selecting an architectural style from architectural requirements 570\u003c\/p\u003e \u003cp\u003e16.5.4 Architectural refinement from quality requirements 571\u003c\/p\u003e \u003cp\u003eSummary 574\u003c\/p\u003e \u003cp\u003eNotes and Further Reading 576\u003c\/p\u003e \u003cp\u003eExercises 578\u003c\/p\u003e \u003cp\u003e\u003cb\u003e17 Formal Specification of System Models 583\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e17.1 A real-time temporal logic for specifying model annotations 584\u003c\/p\u003e \u003cp\u003e17.1.1 State assertions 584\u003c\/p\u003e \u003cp\u003e17.1.2 Temporal assertions 585\u003c\/p\u003e \u003cp\u003e17.1.3 Real-time temporal constructs 586\u003c\/p\u003e \u003cp\u003e17.2 Specifying goals in the goal model 588\u003c\/p\u003e \u003cp\u003e17.3 Specifying descriptive properties in the object model 592\u003c\/p\u003e \u003cp\u003e17.4 Specifying operationalizations in the operation model 594\u003c\/p\u003e \u003cp\u003e17.5 Back to the system’s semantic picture 596\u003c\/p\u003e \u003cp\u003eSummary 598\u003c\/p\u003e \u003cp\u003eNotes and Further Reading 599\u003c\/p\u003e \u003cp\u003eExercises 599\u003c\/p\u003e \u003cp\u003e\u003cb\u003e18 Formal Reasoning for Specification Construction and Analysis 603\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e18.1 Checking goal refinements 604\u003c\/p\u003e \u003cp\u003e18.1.1 Using a theorem prover 604\u003c\/p\u003e \u003cp\u003e18.1.2 Formal refinement patterns 604\u003c\/p\u003e \u003cp\u003e18.1.3 Using bounded SAT solvers 608\u003c\/p\u003e \u003cp\u003e18.2 Deriving goal operationalizations 609\u003c\/p\u003e \u003cp\u003e18.2.1 Using bounded SAT solvers 610\u003c\/p\u003e \u003cp\u003e18.2.2 Formal operationalization patterns 610\u003c\/p\u003e \u003cp\u003e18.3 Generating obstacles for risk analysis 613\u003c\/p\u003e \u003cp\u003e18.3.1 Regressing obstructions through domain properties 614\u003c\/p\u003e \u003cp\u003e18.3.2 Using formal obstruction patterns 617\u003c\/p\u003e \u003cp\u003e18.4 Generating anti-goals for security analysis 618\u003c\/p\u003e \u003cp\u003e18.4.1 Specifying security goals 618\u003c\/p\u003e \u003cp\u003e18.4.2 Identifying security goals and initial anti-goals 620\u003c\/p\u003e \u003cp\u003e18.4.3 Refining anti-goals 621\u003c\/p\u003e \u003cp\u003e18.5 Formal conflict analysis 622\u003c\/p\u003e \u003cp\u003e18.5.1 Deriving boundary conditions for conflict 623\u003c\/p\u003e \u003cp\u003e18.5.2 Formal resolution of divergences 625\u003c\/p\u003e \u003cp\u003e18.6 Synthesizing behaviour models for animation and model checking 627\u003c\/p\u003e \u003cp\u003e18.6.1 Goal-driven model synthesis 628\u003c\/p\u003e \u003cp\u003e18.6.2 Scenario-driven model synthesis 628\u003c\/p\u003e \u003cp\u003eSummary 635\u003c\/p\u003e \u003cp\u003eNotes and Further Reading 636\u003c\/p\u003e \u003cp\u003eExercises 637\u003c\/p\u003e \u003cp\u003eBibliography 641\u003c\/p\u003e \u003cp\u003eIndex 669\u003c\/p\u003e \u003cb\u003eAxel van Lamsweerde\u003c\/b\u003e is Professor in the Department of Computing Science at the Université catholique de Louvain (UCL), Belgium. He recently received the ACM SIGSOFT Outstanding Research Award for \"deep and lasting contributions to the theory and practice of requirements engineering\". 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. \u003cp\u003eHighlights include:\u003c\/p\u003e \u003cul\u003e \u003cli\u003eA 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.\u003c\/li\u003e \u003cli\u003e  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.\u003c\/li\u003e \u003cli\u003eA 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.\u003c\/li\u003e \u003cli\u003eUse 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.\u003c\/li\u003e \u003cli\u003eNumerous 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.\u003c\/li\u003e \u003c\/ul\u003e \u003cp\u003eThe 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 \u003cb\u003ewww.wileyeurope.com\/college\/van lamsweerde\u003c\/b\u003e\u003c\/p\u003e","brand":"Wiley","offers":[{"title":"Default Title","offer_id":47989945991397,"sku":"NP9780470012703","price":57.0,"currency_code":"USD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1842\/7735\/files\/9780470012703.jpg?v=1761785992","url":"https:\/\/k12savings.com\/es\/products\/requirements-engineering-isbn-9780470012703","provider":"K12savings","version":"1.0","type":"link"}