did-you-know? rent-now

Amazon no longer offers textbook rentals. We do!

did-you-know? rent-now

Amazon no longer offers textbook rentals. We do!

We're the #1 textbook rental company. Let us show you why.

9783540775829

Rationale-based Software Engineering

by ; ; ;
  • ISBN13:

    9783540775829

  • ISBN10:

    354077582X

  • Format: Hardcover
  • Copyright: 2008-07-04
  • Publisher: Springer-Verlag New York Inc

Note: Supplemental materials are not guaranteed with Rental or Used book purchases.

Purchase Benefits

  • Free Shipping Icon Free Shipping On Orders Over $35!
    Your order must be $35 or more to qualify for free economy shipping. Bulk sales, PO's, Marketplace items, eBooks and apparel do not qualify for this offer.
  • eCampus.com Logo Get Rewarded for Ordering Your Textbooks! Enroll Now
List Price: $129.99 Save up to $96.58
  • Buy Used
    $97.49
    Add to Cart Free Shipping Icon Free Shipping

    USUALLY SHIPS IN 2-4 BUSINESS DAYS

Supplemental Materials

What is included with this book?

Summary

Many decisions are required throughout the software development process. These decisions, and to some extent the decision-making process itself, can best be documented as the rationale for the system, which will reveal not only what was done during development but the reasons behind the choices made and alternatives considered and rejected. This information becomes increasingly critical as software development becomes more distributed and encompasses the corporate knowledge both used and refined during the development process. The capture of rationale helps to ensure that decisions are well thought out and justified and the use of rationale can help avoid the mistakes of the past during both the development of the current system and when software products (architecture and design, as well as code) are rused in future systems.

Author Biography

Janet E. Burge is an Assistant Professor at Miami University Computer Science and Systems Analysis Department. Her major research interests are in Software Engineering and Artificial Intelligence. Her primary research area is in Design Rationale, with a focus on Design Rationale for Software Maintenance. She received her PhD in Computer Science from WPI in 2005, her M.S in Computer Science from WPI in 1999, and her B.S. in Computer Science from Michigan Technological University in 1984.John M. Carroll is the Edward M. Frymoyer Chair Professor of Information Sciences and Technology at the Pennsylvania State University. His research interests include methods and theory in human-computer interaction, particularly as applied to networking tools for collaborative learning and problem solving, and the design of interactive information systems. He serves on several editorial boards for journals, handbooks, and series and is Editor-in-Chief of the ACM Transactions on Computer-Human Interactions. He received the Rigo Award and the CHI Lifetime Achievement Award from ACM, the Silver Core Award from IFIP, and the Alfred N. Goldsmith Award from IEEE. He is a fellow of the ACM, IEEE, and HFES.Raymond McCall is an Associate Professor in the Department of Planning and Design at the University of Colorado, Denver. His major areas of research are in design rationale methods and systems. Since 1992, most of his research has concentrated on the use of rationale to support the design of artifacts for human exploration of space. For much of this time he collaborated with NASA contractors and with employees of the Johnson Space Center in Houston. He has nearly 30 years of experience in design rationale usage in architectural design, planning, policy making and software design. He created the first hypertext systems for support of design rationale in the 1970s and 1980s and was the first to integrate support for rationale capture and delivery into 3D computer-aided design systems. Ivan Mistr+¡­k is an independent consultant for software-intensive systems engineering. He has 40 years experience in both software and systems engineering as an information systems developer, R&D leader, research analyst, and ICT management consultant. He is the author or co-author of more than 80 articles and papers in international journals, conferences, books and workshops and was an editor of the Special Issue on "Relating Software Requirements and Architectures" published in 2005.

Table of Contents

Introductionp. 1
What is Rationale and Why Does It Matter?p. 3
Introductionp. 3
The Scope and Value of Rationale in Software Engineeringp. 3
Objectives of This Chapterp. 5
A Rough Sketch of Research on Rationalep. 5
Argumentative Approaches to Rationalep. 5
Rationale Methods That Go Beyond Argumentationp. 12
Why Rationale Mattersp. 13
The Usefulness of Rationale for Artifact Creationp. 13
The Usefulness of Rationale for Software Engineeringp. 16
Summary and Conclusionsp. 22
What Makes Software Differentp. 25
Introductionp. 25
Rationale for Software Artifacts versus Rationale for Physical ARtifactsp. 25
Objectives of This Chapterp. 26
The Roles of the Computerp. 26
Comparison of the Roles of the Computer in the Lifecycles of Physical and Software Artifactsp. 27
The Significance for Rationale Management in Software Engineeringp. 28
Iteration in Developmentp. 32
The Role of Iteration in Different Types of Developmentp. 32
Implications of Iteration for Rationale Management in Software Engineeringp. 33
Summary and Conclusionp. 35
Rationale and Software Engineeringp. 37
Introductionp. 37
Software Engineeringp. 37
Software Engineering Rationalep. 38
Objectives of This Chapterp. 38
Rationale and the Software Processp. 38
Software Process Definition and Implementationp. 38
Rationale and SE Process Decision-Makingp. 39
Rationale and Project Managementp. 41
Rationale and Software Developmentp. 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 Conclusionsp. 47
Learning from Rationale Research in Other Domainsp. 49
Introductionp. 49
Research on Rationale in other Domainsp. 49
Objectives of This Chapterp. 50
Domain-Oriented Design Environments Using PHIp. 50
PHIDIAS and JANUSp. 50
Discussionp. 53
Automating the Capture of Design Rationale with CADp. 55
The Rationale Capture Problemp. 55
Solution Approach: Automating the Capture of Rationalep. 56
Implementation: The Rationale Construction Frameworkp. 57
Discussionp. 58
Parameter Dependency Networks as Design Rationalep. 59
The DRIVE System and Parameter Dependency Networksp. 59
Discussionp. 60
Case-Based Reasoning as Design Rationalep. 61
From Automated Case-Based Reasoning to Case-Based Design Aidsp. 61
Discussionp. 64
Summary and Conclusionsp. 66
Decision-Making in Software Engineeringp. 67
Introductionp. 67
Generalp. 67
Objectives of this Chapterp. 67
Decision-Making Problemsp. 68
Where Decisions Go Wrongp. 68
Poor Decisions in Softwarep. 69
Naturalistic Decision-Makingp. 71
Backgroundp. 71
The Recognition-Primed Decision Modelp. 72
Rationale as a Resource for Decision-Makingp. 73
Classical Decision-Makingp. 74
Naturalistic Decision-makingp. 75
Summary and Conclusionsp. 76
Uses for Rationalep. 77
Presentation of Rationalep. 79
Introductionp. 79
Generalp. 79
Objectives of This Chapterp. 79
Codifying Rationale Semiformallyp. 80
The rationale for rationale notationsp. 80
Hypermedia Presentations of Rationalep. 81
Using Semiformal Rationalesp. 82
Codifying Rationale Informallyp. 83
Directionsp. 85
Reusable Rationale Databasesp. 86
Multi-Scale Presentations of Rationalep. 87
Integrated Presentationp. 87
Summary and Conclusionsp. 89
Evaluationp. 91
Introductionp. 91
Argumentation-Based Rationalep. 91
Scenario-Based Rationalep. 93
Objectives of This Chapterp. 93
Evaluating the Rationalep. 94
Completenessp. 94
Correctnessp. 95
Evaluating the Decisionsp. 96
Comparing Alternativesp. 96
Combining Inputs from Multiple Developersp. 97
Handling Uncertaintyp. 98
Scenario-Based Evaluationp. 100
Summary and Conclusionsp. 101
Support for Collaborationp. 103
Introductionp. 103
Generalp. 103
Objectives of This Chapterp. 103
Software Development as Collaborative Workp. 104
Collaboration Is Inescapablep. 104
Collaboration Entrains Challengesp. 105
Collaboration Supports Rationalep. 106
Collaboration Externalizes Rationalesp. 107
Software Development Communities of Practicep. 108
Rationale Supports Collaborationp. 110
Awarenessp. 110
Coordinationp. 111
Summary and Conclusionsp. 112
Change Analysisp. 113
Introductionp. 113
Issues with Change in Software Developmentp. 113
Objectives of This Chapterp. 115
Types of Software Changesp. 115
Functional Requirement Changep. 116
Nonfunctional Requirement Changep. 117
Changing Assumptionsp. 118
Structural Changesp. 119
Defect Correctionp. 119
Change Impact Assessmentp. 120
Consistency Managementp. 121
Summary and Conclusionsp. 122
Rationale and Software Engineeringp. 123
Rationale and the Software Lifecyclep. 125
Introductionp. 125
Software Engineering Processp. 125
Objectives of This Chapterp. 126
Development Activities and Rationalep. 126
Project Planning and Managementp. 126
Requirementsp. 127
Designp. 127
Implementationp. 128
Verification and Validationp. 128
Maintenancep. 129
Retirementp. 129
Software Lifecycle Modelsp. 129
Sequential Modelsp. 129
Iterative Modelsp. 131
Other Modelsp. 133
Software Process Improvementp. 136
CMMp. 136
Personal Software Processp. 137
Summary and Conclusionsp. 138
Rationale and Requirements Engineeringp. 139
Introductionp. 139
Requirements Engineeringp. 139
Objectives of This Chapterp. 140
Obtaining Requirementsp. 140
Requirements Elicitationp. 140
Achieving Consensusp. 142
Requirements Inconsistencyp. 143
Requirements Prioritizationp. 144
Requirements Traceabilityp. 144
Rationale and Nonfunctional Requirementsp. 146
Nonfunctional Requirement Categorizationp. 146
The NFR Frameworkp. 147
SEURAT Argument Ontology and NFR Prioritizationp. 148
NFRs and Conflict Representation and Detectionp. 148
Goal-Based Requirements Engineeringp. 149
Goal-Based Requirements Analysisp. 149
Goal-Oriented Requirements Engineeringp. 150
Relationship to Rationalep. 151
Adapting to Changing Requirementsp. 152
Summary and Conclusionsp. 153
Rationale and Software Designp. 155
Introductionp. 155
The Nature and Importance of Software Design Rationalep. 156
Objectives of This Chapterp. 156
Relating Rationale Approaches to Software Design Processesp. 157
Decision-centric and Usage-centric Rationale Approachesp. 157
Prescriptive and Descriptive Roles of Rationale Approachesp. 159
Rationale for Design Space Analysis and Deeper Reflectionp. 164
Specific Approaches that Integrate Rationale into Software Designp. 167
Rationale and Software Architecturep. 167
Strategies for Fitting Rationale into Architectural Design Processesp. 172
Summary and Conclusionsp. 173
Rationale and Software Verification, Validation, and Testingp. 175
Introductionp. 175
Verification, Validation, and Testingp. 175
Software Testing Issuesp. 176
Objectives of This Chapterp. 177
Types of Software VV&Tp. 177
Inspectionp. 177
Unit Testingp. 178
Integration Testingp. 179
System Testingp. 179
Rationale Support for Software VV&Tp. 180
Rationale and Testabilityp. 180
Rationale and Test Case Prioritizationp. 181
Rationale, Testing, and Component Selectionp. 182
Software Testing Rationalep. 183
Testing Rationalep. 183
Uses for Testing Rationalep. 184
Summary and Conclusionsp. 184
Rationale and Software Maintenancep. 187
Introductionp. 187
Software Maintenance and Evolutionp. 187
Objectives of This Chapterp. 188
Types of Software Maintenancep. 188
Improving Maintainabilityp. 190
Designing for Maintenancep. 190
System Reengineeringp. 191
Software Maintenance Supportp. 193
Maintenance Predictionp. 193
Impact Assessmentp. 193
Program Comprehensionp. 194
Maintenance Recoveryp. 196
Maintenance Rationalep. 197
Summary and Conclusionsp. 198
Rationale and Software Reusep. 199
Introductionp. 199
Software Reusep. 199
Objectives of This Chapterp. 200
Reuse: Concepts and Categoriesp. 200
Types of Reusep. 200
Types of Rationale for Reusep. 202
Reusable Rationalep. 203
Applying Rationalep. 203
Rationale and Patternsp. 203
Rationale and Component-Based Software Engineeringp. 205
Rationale and Software Product Linesp. 206
Rationale and COTS-Based Software Engineeringp. 208
Summary and Conclusionsp. 209
Frameworks for Rationale-Based Software Engineeringp. 211
A Conceptual Frameworkp. 213
Introductionp. 213
What a Conceptual Framework Should Dop. 213
Objectives of This Chapterp. 214
General Goals of Rationale Usage in Software Engineeringp. 214
Rationale: Types of Approaches, Specific Approaches, and Methodsp. 215
Decision-centric Rationale in Software Engineeringp. 216
Decision-Making in Rationale Approachesp. 216
Question Answering in Software Engineeringp. 218
Using Decision-centric Rationale in the Full Spectrum of SERp. 223
Usage-centric Rationale in Software Engineeringp. 227
Rationale and Iterative Software Developmentp. 228
A Rationale-Based Account of Iterative Developmentp. 229
Principles for Rationale Approaches to Support Iterative Developmentp. 230
Supporting Iterative Development by Combining Decision-centric and Usage-centric Rationalep. 234
Challenges to Rationale Usagep. 235
Solving the Capture Problemp. 235
Solving the Delivery Problemp. 238
Summary and Conclusionsp. 239
An Architectural Frameworkp. 241
Introductionp. 241
An Integrative Architecture for Rationale-Based Software Engineeringp. 241
Objectives of This Chapterp. 242
The Need for an Integrative Approach to Rationale Managementp. 243
Representing and Integrating All Types of Software Engineering Rationalep. 243
Alleviating the Capture and Delivery Problemsp. 243
Framework of an Integrative Architecture for Rationale Management in Software Engineeringp. 248
An Overview of the Frameworkp. 248
Workings of the Rational Management Systemp. 249
Integration with External Systemsp. 251
Summary and Conclusionsp. 254
Rationale-Based Software Engineering: Summary and Prospectp. 255
Introductionp. 255
Rationale as an Aid to Software Engineeringp. 255
Objectives of This Chapterp. 256
Summary of the Bookp. 256
The Challenges of Future Software Developmentp. 258
Managing Changep. 258
Managing the Increasing Scale, Complexity, and Longevity of Software Projectsp. 258
The Promise of Rationale-Based Software Engineeringp. 259
Rationale and the Management of Changep. 260
Using Rationale to Manage the Increasing Scale, Complexity, and Longevity of Software Projectsp. 261
Challenges for Rationale-Based Software Engineeringp. 261
Addressing the Capture Problemp. 262
Addressing the Delivery Problemp. 265
Summary and Conclusionsp. 266
Bibliographyp. 269
Glossaryp. 295
Indexp. 311
Table of Contents provided by Ingram. All Rights Reserved.

Supplemental Materials

What is included with this book?

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.

Rewards Program