Note: Supplemental materials are not guaranteed with Rental or Used book purchases.
Purchase Benefits
What is included with this book?
Introduction | p. 1 |
What is Rationale and Why Does It Matter? | p. 3 |
Introduction | p. 3 |
The Scope and Value of Rationale in Software Engineering | p. 3 |
Objectives of This Chapter | p. 5 |
A Rough Sketch of Research on Rationale | p. 5 |
Argumentative Approaches to Rationale | p. 5 |
Rationale Methods That Go Beyond Argumentation | p. 12 |
Why Rationale Matters | p. 13 |
The Usefulness of Rationale for Artifact Creation | p. 13 |
The Usefulness of Rationale for Software Engineering | p. 16 |
Summary and Conclusions | p. 22 |
What Makes Software Different | p. 25 |
Introduction | p. 25 |
Rationale for Software Artifacts versus Rationale for Physical ARtifacts | p. 25 |
Objectives of This Chapter | p. 26 |
The Roles of the Computer | p. 26 |
Comparison of the Roles of the Computer in the Lifecycles of Physical and Software Artifacts | p. 27 |
The Significance for Rationale Management in Software Engineering | p. 28 |
Iteration in Development | p. 32 |
The Role of Iteration in Different Types of Development | p. 32 |
Implications of Iteration for Rationale Management in Software Engineering | p. 33 |
Summary and Conclusion | p. 35 |
Rationale and Software Engineering | p. 37 |
Introduction | p. 37 |
Software Engineering | p. 37 |
Software Engineering Rationale | p. 38 |
Objectives of This Chapter | p. 38 |
Rationale and the Software Process | p. 38 |
Software Process Definition and Implementation | p. 38 |
Rationale and SE Process Decision-Making | p. 39 |
Rationale and Project Management | p. 41 |
Rationale and Software Development | p. 43 |
Why Capture Software Engineering Rationale? | p. 43 |
What are the Uses of Software Engineering Rationale? | p. 44 |
When can Software Engineering Rationale be Used in Software Development? | p. 45 |
How Can We Support Software Engineering Rationale Use in Software Development? | p. 47 |
Summary and Conclusions | p. 47 |
Learning from Rationale Research in Other Domains | p. 49 |
Introduction | p. 49 |
Research on Rationale in other Domains | p. 49 |
Objectives of This Chapter | p. 50 |
Domain-Oriented Design Environments Using PHI | p. 50 |
PHIDIAS and JANUS | p. 50 |
Discussion | p. 53 |
Automating the Capture of Design Rationale with CAD | p. 55 |
The Rationale Capture Problem | p. 55 |
Solution Approach: Automating the Capture of Rationale | p. 56 |
Implementation: The Rationale Construction Framework | p. 57 |
Discussion | p. 58 |
Parameter Dependency Networks as Design Rationale | p. 59 |
The DRIVE System and Parameter Dependency Networks | p. 59 |
Discussion | p. 60 |
Case-Based Reasoning as Design Rationale | p. 61 |
From Automated Case-Based Reasoning to Case-Based Design Aids | p. 61 |
Discussion | p. 64 |
Summary and Conclusions | p. 66 |
Decision-Making in Software Engineering | p. 67 |
Introduction | p. 67 |
General | p. 67 |
Objectives of this Chapter | p. 67 |
Decision-Making Problems | p. 68 |
Where Decisions Go Wrong | p. 68 |
Poor Decisions in Software | p. 69 |
Naturalistic Decision-Making | p. 71 |
Background | p. 71 |
The Recognition-Primed Decision Model | p. 72 |
Rationale as a Resource for Decision-Making | p. 73 |
Classical Decision-Making | p. 74 |
Naturalistic Decision-making | p. 75 |
Summary and Conclusions | p. 76 |
Uses for Rationale | p. 77 |
Presentation of Rationale | p. 79 |
Introduction | p. 79 |
General | p. 79 |
Objectives of This Chapter | p. 79 |
Codifying Rationale Semiformally | p. 80 |
The rationale for rationale notations | p. 80 |
Hypermedia Presentations of Rationale | p. 81 |
Using Semiformal Rationales | p. 82 |
Codifying Rationale Informally | p. 83 |
Directions | p. 85 |
Reusable Rationale Databases | p. 86 |
Multi-Scale Presentations of Rationale | p. 87 |
Integrated Presentation | p. 87 |
Summary and Conclusions | p. 89 |
Evaluation | p. 91 |
Introduction | p. 91 |
Argumentation-Based Rationale | p. 91 |
Scenario-Based Rationale | p. 93 |
Objectives of This Chapter | p. 93 |
Evaluating the Rationale | p. 94 |
Completeness | p. 94 |
Correctness | p. 95 |
Evaluating the Decisions | p. 96 |
Comparing Alternatives | p. 96 |
Combining Inputs from Multiple Developers | p. 97 |
Handling Uncertainty | p. 98 |
Scenario-Based Evaluation | p. 100 |
Summary and Conclusions | p. 101 |
Support for Collaboration | p. 103 |
Introduction | p. 103 |
General | p. 103 |
Objectives of This Chapter | p. 103 |
Software Development as Collaborative Work | p. 104 |
Collaboration Is Inescapable | p. 104 |
Collaboration Entrains Challenges | p. 105 |
Collaboration Supports Rationale | p. 106 |
Collaboration Externalizes Rationales | p. 107 |
Software Development Communities of Practice | p. 108 |
Rationale Supports Collaboration | p. 110 |
Awareness | p. 110 |
Coordination | p. 111 |
Summary and Conclusions | p. 112 |
Change Analysis | p. 113 |
Introduction | p. 113 |
Issues with Change in Software Development | p. 113 |
Objectives of This Chapter | p. 115 |
Types of Software Changes | p. 115 |
Functional Requirement Change | p. 116 |
Nonfunctional Requirement Change | p. 117 |
Changing Assumptions | p. 118 |
Structural Changes | p. 119 |
Defect Correction | p. 119 |
Change Impact Assessment | p. 120 |
Consistency Management | p. 121 |
Summary and Conclusions | p. 122 |
Rationale and Software Engineering | p. 123 |
Rationale and the Software Lifecycle | p. 125 |
Introduction | p. 125 |
Software Engineering Process | p. 125 |
Objectives of This Chapter | p. 126 |
Development Activities and Rationale | p. 126 |
Project Planning and Management | p. 126 |
Requirements | p. 127 |
Design | p. 127 |
Implementation | p. 128 |
Verification and Validation | p. 128 |
Maintenance | p. 129 |
Retirement | p. 129 |
Software Lifecycle Models | p. 129 |
Sequential Models | p. 129 |
Iterative Models | p. 131 |
Other Models | p. 133 |
Software Process Improvement | p. 136 |
CMM | p. 136 |
Personal Software Process | p. 137 |
Summary and Conclusions | p. 138 |
Rationale and Requirements Engineering | p. 139 |
Introduction | p. 139 |
Requirements Engineering | p. 139 |
Objectives of This Chapter | p. 140 |
Obtaining Requirements | p. 140 |
Requirements Elicitation | p. 140 |
Achieving Consensus | p. 142 |
Requirements Inconsistency | p. 143 |
Requirements Prioritization | p. 144 |
Requirements Traceability | p. 144 |
Rationale and Nonfunctional Requirements | p. 146 |
Nonfunctional Requirement Categorization | p. 146 |
The NFR Framework | p. 147 |
SEURAT Argument Ontology and NFR Prioritization | p. 148 |
NFRs and Conflict Representation and Detection | p. 148 |
Goal-Based Requirements Engineering | p. 149 |
Goal-Based Requirements Analysis | p. 149 |
Goal-Oriented Requirements Engineering | p. 150 |
Relationship to Rationale | p. 151 |
Adapting to Changing Requirements | p. 152 |
Summary and Conclusions | p. 153 |
Rationale and Software Design | p. 155 |
Introduction | p. 155 |
The Nature and Importance of Software Design Rationale | p. 156 |
Objectives of This Chapter | p. 156 |
Relating Rationale Approaches to Software Design Processes | p. 157 |
Decision-centric and Usage-centric Rationale Approaches | p. 157 |
Prescriptive and Descriptive Roles of Rationale Approaches | p. 159 |
Rationale for Design Space Analysis and Deeper Reflection | p. 164 |
Specific Approaches that Integrate Rationale into Software Design | p. 167 |
Rationale and Software Architecture | p. 167 |
Strategies for Fitting Rationale into Architectural Design Processes | p. 172 |
Summary and Conclusions | p. 173 |
Rationale and Software Verification, Validation, and Testing | p. 175 |
Introduction | p. 175 |
Verification, Validation, and Testing | p. 175 |
Software Testing Issues | p. 176 |
Objectives of This Chapter | p. 177 |
Types of Software VV&T | p. 177 |
Inspection | p. 177 |
Unit Testing | p. 178 |
Integration Testing | p. 179 |
System Testing | p. 179 |
Rationale Support for Software VV&T | p. 180 |
Rationale and Testability | p. 180 |
Rationale and Test Case Prioritization | p. 181 |
Rationale, Testing, and Component Selection | p. 182 |
Software Testing Rationale | p. 183 |
Testing Rationale | p. 183 |
Uses for Testing Rationale | p. 184 |
Summary and Conclusions | p. 184 |
Rationale and Software Maintenance | p. 187 |
Introduction | p. 187 |
Software Maintenance and Evolution | p. 187 |
Objectives of This Chapter | p. 188 |
Types of Software Maintenance | p. 188 |
Improving Maintainability | p. 190 |
Designing for Maintenance | p. 190 |
System Reengineering | p. 191 |
Software Maintenance Support | p. 193 |
Maintenance Prediction | p. 193 |
Impact Assessment | p. 193 |
Program Comprehension | p. 194 |
Maintenance Recovery | p. 196 |
Maintenance Rationale | p. 197 |
Summary and Conclusions | p. 198 |
Rationale and Software Reuse | p. 199 |
Introduction | p. 199 |
Software Reuse | p. 199 |
Objectives of This Chapter | p. 200 |
Reuse: Concepts and Categories | p. 200 |
Types of Reuse | p. 200 |
Types of Rationale for Reuse | p. 202 |
Reusable Rationale | p. 203 |
Applying Rationale | p. 203 |
Rationale and Patterns | p. 203 |
Rationale and Component-Based Software Engineering | p. 205 |
Rationale and Software Product Lines | p. 206 |
Rationale and COTS-Based Software Engineering | p. 208 |
Summary and Conclusions | p. 209 |
Frameworks for Rationale-Based Software Engineering | p. 211 |
A Conceptual Framework | p. 213 |
Introduction | p. 213 |
What a Conceptual Framework Should Do | p. 213 |
Objectives of This Chapter | p. 214 |
General Goals of Rationale Usage in Software Engineering | p. 214 |
Rationale: Types of Approaches, Specific Approaches, and Methods | p. 215 |
Decision-centric Rationale in Software Engineering | p. 216 |
Decision-Making in Rationale Approaches | p. 216 |
Question Answering in Software Engineering | p. 218 |
Using Decision-centric Rationale in the Full Spectrum of SER | p. 223 |
Usage-centric Rationale in Software Engineering | p. 227 |
Rationale and Iterative Software Development | p. 228 |
A Rationale-Based Account of Iterative Development | p. 229 |
Principles for Rationale Approaches to Support Iterative Development | p. 230 |
Supporting Iterative Development by Combining Decision-centric and Usage-centric Rationale | p. 234 |
Challenges to Rationale Usage | p. 235 |
Solving the Capture Problem | p. 235 |
Solving the Delivery Problem | p. 238 |
Summary and Conclusions | p. 239 |
An Architectural Framework | p. 241 |
Introduction | p. 241 |
An Integrative Architecture for Rationale-Based Software Engineering | p. 241 |
Objectives of This Chapter | p. 242 |
The Need for an Integrative Approach to Rationale Management | p. 243 |
Representing and Integrating All Types of Software Engineering Rationale | p. 243 |
Alleviating the Capture and Delivery Problems | p. 243 |
Framework of an Integrative Architecture for Rationale Management in Software Engineering | p. 248 |
An Overview of the Framework | p. 248 |
Workings of the Rational Management System | p. 249 |
Integration with External Systems | p. 251 |
Summary and Conclusions | p. 254 |
Rationale-Based Software Engineering: Summary and Prospect | p. 255 |
Introduction | p. 255 |
Rationale as an Aid to Software Engineering | p. 255 |
Objectives of This Chapter | p. 256 |
Summary of the Book | p. 256 |
The Challenges of Future Software Development | p. 258 |
Managing Change | p. 258 |
Managing the Increasing Scale, Complexity, and Longevity of Software Projects | p. 258 |
The Promise of Rationale-Based Software Engineering | p. 259 |
Rationale and the Management of Change | p. 260 |
Using Rationale to Manage the Increasing Scale, Complexity, and Longevity of Software Projects | p. 261 |
Challenges for Rationale-Based Software Engineering | p. 261 |
Addressing the Capture Problem | p. 262 |
Addressing the Delivery Problem | p. 265 |
Summary and Conclusions | p. 266 |
Bibliography | p. 269 |
Glossary | p. 295 |
Index | p. 311 |
Table of Contents provided by Ingram. All Rights Reserved. |
The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.
The Used, Rental and eBook copies of this book are not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.