Requirements Engineering
From System Goals to UML Models to Software Specifications
Häftad, Engelska, 2009
Av Axel van Lamsweerde, Axel (University Catholique de Louvain) van Lamsweerde, Axel Van Lamsweerde, Axel van Lamsweerde
999 kr
Beställningsvara. Skickas inom 7-10 vardagar
Fri frakt för medlemmar vid köp för minst 249 kr.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.Online 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.
Produktinformation
- Utgivningsdatum2009-01-09
- Mått189 x 233 x 39 mm
- Vikt1 291 g
- FormatHäftad
- SpråkEngelska
- Antal sidor720
- FörlagJohn Wiley & Sons Inc
- ISBN9780470012703
Tillhör följande kategorier
Axel van Lamsweerde 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".
- Foreword xviiPreface xxiPart I Fundamentals of Requirements Engineering 11 Setting the Scene 31.1 What is requirements engineering? 31.1.1 The problem world and the machine solution 41.1.2 Introducing our running case studies 61.1.3 The WHY, WHAT and WHO dimensions of requirements engineering 121.1.4 Types of statements involved in requirements engineering 171.1.5 Categories of requirements 231.1.6 The requirements lifecycle: Processes, actors and products 301.1.7 Target qualities and defects to avoid 351.1.8 Types of software projects 401.1.9 Requirements in the software lifecycle 421.1.10 The relationship of requirements engineering to other disciplines 451.2 Why engineer requirements? 471.2.1 Facts, data and citations about the requirements problem 471.2.2 The role and stakes of requirements engineering 511.3 Obstacles to good requirements engineering practice 521.4 Agile development processes and requirements engineering 53Summary 55Notes and Further Reading 56Exercises 582 Domain Understanding and Requirements Elicitation 612.1 Identifying stakeholders and interacting with them 622.2 Artefact-driven elicitation techniques 642.2.1 Background study 642.2.2 Data collection 652.2.3 Questionnaires 652.2.4 Repertory grids and card sorts for concept-driven acquisition 662.2.5 Storyboards and scenarios for problem world exploration 672.2.6 Mock-ups and prototypes for early feedback 702.2.7 Knowledge reuse 722.3 Stakeholder-driven elicitation techniques 762.3.1 Interviews 772.3.2 Observation and ethnographic studies 792.3.3 Group sessions 802.4 Conclusion 81Summary 82Notes and Further Reading 84Exercises 853 Requirements Evaluation 873.1 Inconsistency management 883.1.1 Types of inconsistency 883.1.2 Handling inconsistencies 893.1.3 Managing conflicts: A systematic process 903.2 Risk analysis 933.2.1 Types of risk 943.2.2 Risk management 953.2.3 Risk documentation 1013.2.4 Integrating risk management in the requirements lifecycle 1023.3 Evaluating alternative options for decision making 1053.4 Requirements prioritization 1083.5 Conclusion 112Summary 113Notes and Further Reading 114Exercises 1164 Requirements Specification and Documentation 1194.1 Free documentation in unrestricted natural language 1204.2 Disciplined documentation in structured natural language 1214.2.1 Local rules on writing statements 1214.2.2 Global rules on organizing the requirements document 1244.3 Use of diagrammatic notations 1274.3.1 System scope: context, problem and frame diagrams 1274.3.2 Conceptual structures: entity–relationship diagrams 1304.3.3 Activities and data: SADT diagrams 1334.3.4 Information flows: dataflow diagrams 1344.3.5 System operations: use case diagrams 1364.3.6 Interaction scenarios: event trace diagrams 1364.3.7 System behaviours: state machine diagrams 1384.3.8 Stimuli and responses: R-net diagrams 1424.3.9 Integrating multiple system views and multiview specification in UML 1424.3.10 Diagrammatic notations: Strengths and limitations 1444.4 Formal specification 1454.4.1 Logic as a basis for formalizing statements 1464.4.2 History-based specification 1514.4.3 State-based specification 1554.4.4 Event-based specification 1634.4.5 Algebraic specification 1674.4.6 Other specification paradigms 1724.4.7 Formal specification: strengths and limitations 1734.5 Conclusion 174Summary 176Notes and Further Reading 179Exercises 1835 Requirements Quality Assurance 1875.1 Requirements inspections and reviews 1885.1.1 The requirements inspection process 1885.1.2 Inspection guidelines 1905.1.3 Requirements inspection checklists 1915.1.4 Conclusion 1955.2 Queries on a requirements database 1965.3 Requirements validation by specification animation 1985.3.1 Extracting an executable model from the specification 1995.3.2 Simulating the model 1995.3.3 Visualizing the simulation 2005.3.4 Conclusion 2005.4 Requirements verification through formal checks 2025.4.1 Language checks 2025.4.2 Dedicated consistency and completeness checks 2035.4.3 Model checking 2055.4.4 Theorem proving 2085.5 Conclusion 211Summary 213Notes and Further Reading 214Exercises 2176 Requirements Evolution 2196.1 The time–space dimensions of evolution: Revisions and variants 2206.2 Change anticipation 2236.3 Traceability management for evolution support 2256.3.1 Traceability links 2266.3.2 The traceability management process, its benefits and cost 2336.3.3 Traceability management techniques 2376.3.4 Determining an adequate cost–benefit trade-off for traceability management 2446.4 Change control 2466.4.1 Change initiation 2476.4.2 Change evaluation and prioritization 2486.4.3 Change consolidation 2496.5 Runtime monitoring of requirements and assumptions for dynamic change 2496.6 Conclusion 251Summary 252Notes and Further Reading 254Exercises 2567 Goal Orientation in Requirements Engineering 2597.1 What are goals? 2607.2 The granularity of goals and their relationship to requirements and assumptions 2617.3 Goal types and categories 2657.3.1 Types of goal: behavioural goals vs soft goals 2657.3.2 Goal categories: Functional vs non-functional goals 2697.4 The central role of goals in the requirements engineering process 2727.5 Where are goals coming from? 2757.6 The relationship of goals to other requirements-related products and processes 2767.6.1 Goals and scenarios 2767.6.2 Intentional and operational specifications 2777.6.3 Goals and use cases 2777.6.4 Goals and model-checked properties 2777.6.5 Goal orientation and agent orientation 2787.6.6 Goal orientation and object orientation 2787.6.7 Goal orientation and top-down analysis 279Summary 279Notes and Further Reading 280Exercises 283Part II Building System Models for Requirements Engineering 2878 Modelling System Objectives with Goal Diagrams 2938.1 Goal features as model annotations 2948.2 Goal refinement 2978.3 Representing conflicts among goals 3018.4 Connecting the goal model with other system views 3028.5 Modelling alternative options 3038.5.1 Alternative goal refinements 3048.5.2 Alternative responsibility assignments 3058.6 Goal diagrams as AND/OR graphs 3078.7 Documenting goal refinements and assignments with annotations 3088.8 Building goal models: Heuristic rules and reusable patterns 3098.8.1 Eliciting preliminary goals 3098.8.2 Identifying goals along refinement branches 3118.8.3 Delimiting the scope of the goal model 3168.8.4 Avoiding common pitfalls 3178.8.5 Reusing refinement patterns 3198.8.6 Reusing refinement trees associated with goal categories 326Summary 328Notes and Further Reading 329Exercises 3319 Anticipating What Could Go Wrong: Risk Analysis on Goal Models 3359.1 Goal obstruction by obstacles 3369.1.1 What are obstacles? 3369.1.2 Completeness of a set of obstacles 3379.1.3 Obstacle categories 3389.2 Modelling obstacles 3399.2.1 Obstacle diagrams 3399.2.2 Conditions on obstacle refinement 3419.2.3 Bottom-up propagation of obstructions in goal AND-refinements 3429.2.4 Annotating obstacle diagrams 3439.3 Obstacle analysis for a more robust goal model 3449.3.1 Identifying obstacles 3449.3.2 Evaluating obstacles 3499.3.3 Resolving obstacles in a modified goal model 349Summary 353Notes and Further Reading 355Exercises 35610 Modelling Conceptual Objects with Class Diagrams 35910.1 Representing domain concepts by conceptual objects 36010.1.1 What are conceptual objects? 36010.1.2 Object instantiation: classes and current instances 36110.1.3 Types of conceptual object 36210.1.4 Object models as UML class diagrams 36310.1.5 Object features as model annotations 36410.2 Entities 36610.3 Associations 36610.4 Attributes 37110.5 Built-in associations for structuring object models 37310.5.1 Object specialization 37310.5.2 Object aggregation 37610.6 More on class diagrams 37710.6.1 Derived attributes and associations 37710.6.2 OR-associations 37810.6.3 Ordered associations 37910.6.4 Associations of associations 37910.7 Heuristic rules for building object models 38010.7.1 Deriving pertinent and complete class diagrams from goal diagrams 38010.7.2 Object or attribute? 38410.7.3 Entity, association, agent or event? 38410.7.4 Attribute of a linked object or of the linking association? 38510.7.5 Aggregation or association? 38610.7.6 Specializing and generalizing concepts 38610.7.7 Avoiding common pitfalls 387Summary 389Notes and Further Reading 391Exercises 39211 Modelling System Agents and Responsibilities 39511.1 What are agents? 39611.2 Characterizing system agents 39711.2.1 Basic features 39711.2.2 Agent capabilities 39711.2.3 Agent responsibilities and goal realizability 39911.2.4 Agents as operation performers 40111.2.5 Agent wishes and beliefs 40211.2.6 Agent dependencies 40311.3 Representing agent models 40511.3.1 Agent diagrams and instance declarations 40511.3.2 Context diagrams 40611.3.3 Dependency diagrams 40711.4 Refinement of abstract agents 40811.5 Building agent models 41111.5.1 Heuristics for building agent diagrams from goal models 41111.5.2 Generating context diagrams from goal models 413Summary 415Notes and Further Reading 417Exercises 41812 Modelling System Operations 42112.1 What are operations? 42212.2 Characterizing system operations 42512.2.1 Basic features 42512.2.2 Operation signature 42512.2.3 Domain pre- and post-conditions 42612.2.4 Operation performer 42712.3 Goal operationalization 42712.3.1 Required pre-, post- and trigger conditions for goal satisfaction 42712.3.2 Agent commitments 43012.3.3 Goal operationalization and satisfaction arguments 43212.4 Goals, agents, objects and operations: The semantic picture 43412.5 Representing operation models 43512.5.1 Operationalization diagrams 43512.5.2 UML use case diagrams 43512.6 Building operation models 43712.6.1 Heuristics for building operationalization diagrams 43712.6.2 Generating use case diagrams from operationalization diagrams 442Summary 442Notes and Further Reading 444Exercises 44513 Modelling System Behaviours 44913.1 Modelling instance behaviours 45013.1.1 Scenarios as UML sequence diagrams 45013.1.2 Scenario refinement: Episodes and agent decomposition 45213.2 Modelling class behaviours 45413.2.1 State machines as UML state diagrams 45513.2.2 State machine refinement: Sequential and concurrent sub-states 45913.3 Building behaviour models 46313.3.1 Elaborating relevant scenarios for good coverage 46513.3.2 Decorating scenarios with state conditions 46713.3.3 From scenarios to state machines 46913.3.4 From scenarios to goals 47313.3.5 From operationalized goals to state machines 475Summary 477Notes and Further Reading 480Exercises 48114 Integrating Multiple System Views 48514.1 A meta-model for view integration 48514.1.1 Overall structure of the meta-model 48714.1.2 The goal meta-model 48814.1.3 The object meta-model 48914.1.4 The agent meta-model 49014.1.5 The operation meta-model 49114.1.6 The behaviour meta-model 49214.2 Inter-view consistency rules 49314.3 Grouping related view fragments into packages 496Summary 498Notes and Further Reading 498Exercises 49915 A Goal-Oriented Model-Building Method in Action 50115.1 Modelling the system-as-is 50315.1.1 Step 1: Build a preliminary goal model illustrated by scenarios 50315.1.2 Step 2: Derive a preliminary object model 50615.2 Modelling the system-to-be 50715.2.1 Step 3: Update the goal model with new goals illustrated by scenarios 50715.2.2 Step 4: Derive the updated object model 51015.2.3 Step 5: Analyse obstacles, threats and conflicts 51215.2.4 Step 6: Analyse responsibilities and build the agent model 51515.2.5 Step 7: Make choices among alternative options 51715.2.6 Step 8: Operationalize goals in the operation model 51815.2.7 Step 9: Build and analyse the behaviour model 52115.3 Handling model variants for product lines 524Summary 528Notes and Further Reading 529Exercises 529Part III Reasoning About System Models 53516 Semi-Formal Reasoning for Model Analysis and Exploitation 53716.1 Query-based analysis of the model database 53816.1.1 Checking the structural consistency and completeness of the model 53816.1.2 Generation of other views for dedicated analyses 54016.1.3 Traceability management 54016.1.4 Analogical model reuse 54116.2 Semi-formal analysis of goal-oriented models 54416.2.1 Conflict analysis 54416.2.2 Heuristic identification of obstacles 54916.2.3 Threat analysis: From goal models to anti-goal models 55116.3 Reasoning about alternative options 55716.3.1 Qualitative reasoning about alternatives 55716.3.2 Quantitative reasoning about alternatives 56016.4 Model-driven generation of the requirements document 56216.5 Beyond RE: From goal-oriented requirements to software architecture 56616.5.1 Deriving a software data architecture from the object model 56716.5.2 Deriving an abstract dataflow architecture from the agent and operation models 56816.5.3 Selecting an architectural style from architectural requirements 57016.5.4 Architectural refinement from quality requirements 571Summary 574Notes and Further Reading 576Exercises 57817 Formal Specification of System Models 58317.1 A real-time temporal logic for specifying model annotations 58417.1.1 State assertions 58417.1.2 Temporal assertions 58517.1.3 Real-time temporal constructs 58617.2 Specifying goals in the goal model 58817.3 Specifying descriptive properties in the object model 59217.4 Specifying operationalizations in the operation model 59417.5 Back to the system’s semantic picture 596Summary 598Notes and Further Reading 599Exercises 59918 Formal Reasoning for Specification Construction and Analysis 60318.1 Checking goal refinements 60418.1.1 Using a theorem prover 60418.1.2 Formal refinement patterns 60418.1.3 Using bounded SAT solvers 60818.2 Deriving goal operationalizations 60918.2.1 Using bounded SAT solvers 61018.2.2 Formal operationalization patterns 61018.3 Generating obstacles for risk analysis 61318.3.1 Regressing obstructions through domain properties 61418.3.2 Using formal obstruction patterns 61718.4 Generating anti-goals for security analysis 61818.4.1 Specifying security goals 61818.4.2 Identifying security goals and initial anti-goals 62018.4.3 Refining anti-goals 62118.5 Formal conflict analysis 62218.5.1 Deriving boundary conditions for conflict 62318.5.2 Formal resolution of divergences 62518.6 Synthesizing behaviour models for animation and model checking 62718.6.1 Goal-driven model synthesis 62818.6.2 Scenario-driven model synthesis 628Summary 635Notes and Further Reading 636Exercises 637Bibliography 641Index 669