Rationale-Based Software Engineering (eBook)

eBook Download: PDF
2008 | 2008
XXXV, 316 Seiten
Springer Berlin (Verlag)
978-3-540-77583-6 (ISBN)

Lese- und Medienproben

Rationale-Based Software Engineering - Janet E. Burge, John M. Carroll, Raymond McCall, Ivan Mistrík
Systemvoraussetzungen
96,29 inkl. MwSt
  • Download sofort lieferbar
  • Zahlungsarten anzeigen

The authors describe in detail the capture and use of design rationale in software engineering to improve the quality of software. Their book is the first comprehensive and unified treatment of rationale usage in software engineering. It provides a consistent conceptual framework and a unified terminology for comparing, contrasting and combining the myriad approaches to rationale in software engineering. It is both an excellent introductory text and a uniquely valuable reference.



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.

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.

Foreword 5
Foreword 7
Preface 15
Book Overview 16
Part 1: Introduction 16
Part 2: Uses of Rationale 17
Part 3: Rationale and Software Engineering 18
Part 4: Frameworks for Using Rationale in Software Engineering 19
Acknowledgements 20
Author Biographies 21
Contents 25
Part 1 Introduction 34
1 What is Rationale and Why Does It Matter? 35
1.1 Introduction 35
1.1.1 The Scope and Value of Rationale in Software Engineering 35
1.1.2 Objectives of This Chapter 37
1.2 A Rough Sketch of Research on Rationale 37
1.2.1 Argumentative Approaches to Rationale 37
1.2.2 Rationale Methods That Go Beyond Argumentation 44
1.3 Why Rationale Matters 45
1.3.1 The Usefulness of Rationale for Artifact Creation 45
1.3.2 The Usefulness of Rationale for Software Engineering 48
1.4 Summary and Conclusions 54
2 What Makes Software Different 57
2.1 Introduction 57
2.1.1 Rationale for Software Artifacts versus Rationale for Physical Artifacts 57
2.1.2 Objectives of This Chapter 58
2.2 The Roles of the Computer 58
2.2.1 Comparison of the Roles of the Computer in the Lifecycles of Physical and Software Artifacts 59
2.2.2 The Significance for Rationale Management in Software Engineering 60
2.3 Iteration in Development 64
2.3.1 The Role of Iteration in Different Types of Development 64
2.3.2 Implications of Iteration for Rationale Management in Software Engineering 65
2.4 Summary and Conclusion 67
3 Rationale and Software Engineering 69
3.1 Introduction 69
3.1.1 Software Engineering 69
3.1.2 Software Engineering Rationale 70
3.1.3 Objectives of This Chapter 70
3.2 Rationale and the Software Process 70
3.2.1 Software Process Definition and Implementation 70
3.2.2 Rationale and SE Process Decision-Making 71
3.3 Rationale and Project Management 73
3.4 Rationale and Software Development 75
3.4.1 Why Capture Software Engineering Rationale? 75
3.4.2 What are the Uses of Software Engineering Rationale? 76
3.4.3 When can Software Engineering Rationale be Used in Software Development? 77
3.4.4 How Can We Support Software Engineering Rationale Use in Software Development? 79
3.5 Summary and Conclusions 79
4 Learning from Rationale Research in Other Domains 81
4.1 Introduction 81
4.1.1 Research on Rationale in other Domains 81
4.1.2 Objectives of This Chapter 82
4.2 Domain-Oriented Design Environments Using PHI 82
4.2.1 PHIDIAS and JANUS 82
4.2.2 Discussion 85
4.3 Automating the Capture of Design Rationale with CAD 87
4.3.1 The Rationale Capture Problem 87
4.3.2 Solution Approach: Automating the Capture of Rationale 88
4.3.3 Implementation: The Rationale Construction Framework 89
4.3.4 Discussion 90
4.4 Parameter Dependency Networks as Design Rationale 91
4.4.1 The DRIVE System and Parameter Dependency Networks 91
4.4.2 Discussion 92
4.5 Case-Based Reasoning as Design Rationale 93
4.5.1. From Automated Case-Based Reasoning to Case-Based Design Aids 93
4.5.2 Discussion 96
4.6 Summary and Conclusions 98
5 Decision-Making in Software Engineering 99
5.1 Introduction 99
5.1.1 General 99
5.1.1 Objectives of this Chapter 99
5.2 Decision-Making Problems 100
5.2.1 Where Decisions Go Wrong 100
5.2.2 Poor Decisions in Software 101
5.3 Naturalistic Decision-Making 103
5.3.1 Background 103
5.3.2 The Recognition-Primed Decision Model 104
5.4 Rationale as a Resource for Decision-Making 105
5.4.1 Classical Decision-Making 106
5.4.2 Naturalistic Decision-making 107
5.5 Summary and Conclusions 108
Part 2 Uses for Rationale 109
6 Presentation of Rationale 111
6.1 Introduction 111
6.1.1 General 111
6.1.2 Objectives of This Chapter 111
6.2 Codifying Rationale Semiformally 112
6.2.1 The rationale for rationale notations 112
6.2.2 Hypermedia Presentations of Rationale 113
6.2.3 Using Semiformal Rationales 114
6.3 Codifying Rationale Informally 115
6.4 Directions 117
6.4.1 Reusable Rationale Databases 118
6.4.2 Multi-Scale Presentations of Rationale 119
6.4.3 Integrated Presentation 119
6.5 Summary and Conclusions 121
7 Evaluation 123
7.1 Introduction 123
7.1.1 Argumentation-Based Rationale 123
7.1.2 Scenario-Based Rationale 125
7.1.3 Objectives of This Chapter 125
7.2 Evaluating the Rationale 126
7.2.1 Completeness 126
7.2.2 Correctness 127
7.3 Evaluating the Decisions 128
7.3.1 Comparing Alternatives 128
7.3.2 Combining Inputs from Multiple Developers 129
7.3.3 Handling Uncertainty 130
7.4 Scenario-Based Evaluation 132
7.5 Summary and Conclusions 133
8 Support for Collaboration 135
8.1 Introduction 135
8.1.1 General 135
8.1.2 Objectives of This Chapter 135
8.2 Software Development as Collaborative Work 136
8.2.1 Collaboration Is Inescapable 136
8.2.2 Collaboration Entrains Challenges 137
8.3 Collaboration Supports Rationale 138
8.3.1 Collaboration Externalizes Rationales 139
8.3.2 Software Development Communities of Practice 140
8.4 Rationale Supports Collaboration 142
8.4.1 Awareness 142
8.4.2 Coordination 143
8.5 Summary and Conclusions 144
9 Change Analysis 145
9.1 Introduction 145
9.1.1 Issues with Change in Software Development 145
9.1.2 Objectives of This Chapter 147
9.2 Types of Software Changes 147
9.2.1 Functional Requirement Change 148
9.2.2 Nonfunctional Requirement Change 149
9.2.3 Changing Assumptions 150
9.2.4 Structural Changes 151
9.2.5 Defect Correction 151
9.3 Change Impact Assessment 152
9.4 Consistency Management 153
9.5 Summary and Conclusions 154
Part 3 Rationale and Software Engineering 155
10 Rationale and the Software Lifecycle 157
10.1 Introduction 157
10.1.1 Software Engineering Process 157
10.1.2 Objectives of This Chapter 158
10.2 Development Activities and Rationale 158
10.2.1 Project Planning and Management 158
10.2.2 Requirements 159
10.2.3 Design 159
10.2.4 Implementation 160
10.2.5 Verification and Validation 160
10.2.6 Maintenance 161
10.2.7 Retirement 161
10.3 Software Lifecycle Models 161
10.3.1 Sequential Models 161
10.3.2 Iterative Models 163
10.3.3 Other Models 165
10.4. Software Process Improvement 168
10.4.1 CMM 168
10.4.2 Personal Software Process 169
10.5. Summary and Conclusions 170
11 Rationale and Requirements Engineering 171
11.1 Introduction 171
11.1.1 Requirements Engineering 171
11.1.2 Objectives of This Chapter 172
11.2 Obtaining Requirements 172
11.2.1 Requirements Elicitation 172
11.2.2 Achieving Consensus 174
11.2.3 Requirements Inconsistency 175
11.2.4 Requirements Prioritization 176
11.3 Requirements Traceability 176
11.4 Rationale and Nonfunctional Requirements 178
11.4.1 Nonfunctional Requirement Categorization 178
11.4.2 The NFR Framework 179
11.4.3 SEURAT Argument Ontology and NFR Prioritization 180
11.4.4 NFRs and Conflict Representation and Detection 180
11.5 Goal-Based Requirements Engineering 181
11.5.1 Goal-Based Requirements Analysis 181
11.5.2 Goal-Oriented Requirements Engineering 182
11.5.3 Relationship to Rationale 183
11.6 Adapting to Changing Requirements 184
11.7 Summary and Conclusions 185
12 Rationale and Software Design 187
12.1 Introduction 187
12.1.1 The Nature and Importance of Software Design Rationale 188
12.1.2 Objectives of This Chapter 188
12.2 Relating Rationale Approaches to Software Design Processes 189
12.2.1 Decision-centric and Usage-centric Rationale Approaches 189
12.2.2 Prescriptive and Descriptive Roles of Rationale Approaches 191
12.2.3 Rationale for Design Space Analysis and Deeper Reflection 196
12.3 Specific Approaches that Integrate Rationale into Software Design 199
12.3.1 Rationale and Software Architecture 199
12.3.2 Strategies for Fitting Rationale into Architectural Design Processes 204
12.4 Summary and Conclusions 205
13 Rationale and Software Verification, Validation, and Testing 207
13.1 Introduction 207
13.1.1 Verification, Validation, and Testing 207
13.1.2 Software Testing Issues 208
13.1.3 Objectives of This Chapter 209
13.2 Types of Software VV& T
13.2.1 Inspection 209
13.2.2 Unit Testing 210
13.2.3 Integration Testing 211
13.2.4 System Testing 211
13.3 Rationale Support for Software VV& T
13.3.1 Rationale and Testability 212
13.3.2 Rationale and Test Case Prioritization 213
13.3.3 Rationale, Testing, and Component Selection 214
13.4 Software Testing Rationale 215
13.4.1 Testing Rationale 215
13.4.2 Uses for Testing Rationale 216
13.5 Summary and Conclusions 216
14 Rationale and Software Maintenance 219
14.1 Introduction 219
14.1.1 Software Maintenance and Evolution 219
14.1.2 Objectives of This Chapter 220
14.2. Types of Software Maintenance 220
14.3 Improving Maintainability 222
14.3.1 Designing for Maintenance 222
14.3.2 System Reengineering 223
14.4 Software Maintenance Support 225
14.4.1 Maintenance Prediction 225
14.4.2 Impact Assessment 225
14.4.3 Program Comprehension 226
14.4.4 Maintenance Recovery 228
14.4.5 Maintenance Rationale 229
14.5 Summary and Conclusions 230
15 Rationale and Software Reuse 231
15.1 Introduction 231
15.1.1 Software Reuse 231
15.1.2 Objectives of This Chapter 232
15.2 Reuse: Concepts and Categories 232
15.2.1 Types of Reuse 232
15.2.2 Types of Rationale for Reuse 234
15.2.3 Reusable Rationale 235
15.3 Applying Rationale 235
15.3.1 Rationale and Patterns 235
15.3.2 Rationale and Component-Based Software Engineering 237
15.3.3 Rationale and Software Product Lines 238
15.3.4 Rationale and COTS-Based Software Engineering 240
15.4. Summary and Conclusions 241
Part 4 Frameworks for Rationale-Based Software Engineering 243
16 A Conceptual Framework 245
16.1 Introduction 245
16.1.1 What a Conceptual Framework Should Do 245
16.1.2 Objectives of This Chapter 246
16.2 General Goals of Rationale Usage in Software Engineering 246
16.3 Rationale: Types of Approaches, Specific Approaches, and Methods 247
16.4 Decision-centric Rationale in Software Engineering 248
16.4.1 Decision-Making in Rationale Approaches 248
16.4.2 Question Answering in Software Engineering 250
16.4.3 Using Decision-centric Rationale in the Full Spectrum of SER 255
16.5 Usage-centric Rationale in Software Engineering 259
16.6 Rationale and Iterative Software Development 260
16.6.1 A Rationale-Based Account of Iterative Development 261
16.6.2 Principles for Rationale Approaches to Support Iterative Development 262
16.6.3 Supporting Iterative Development by Combining Decision- centric and Usage- centric Rationale 266
16.7 Challenges to Rationale Usage 267
16.7.1 Solving the Capture Problem 267
16.7.2 Solving the Delivery Problem 270
16.8 Summary and Conclusions 271
17 An Architectural Framework 273
17.1 Introduction 273
17.1.1 An Integrative Architecture for Rationale-Based Software Engineering 273
17.1.2 Objectives of This Chapter 274
17.2 The Need for an Integrative Approach to Rationale Management 275
17.2.1 Representing and Integrating All Types of Software Engineering Rationale 275
17.2.2 Alleviating the Capture and Delivery Problems 275
17.3 Framework of an Integrative Architecture for Rationale Management in Software Engineering 280
17.3.1 An Overview of the Framework 280
17.3.2 Workings of the Rational Management System 281
17.3.3 Integration with External Systems 283
17.4 Summary and Conclusions 286
18 Rationale-Based Software Engineering: Summary and Prospect 287
18.1 Introduction 287
18.1.1. Rationale as an Aid to Software Engineering 287
18.1.2 Objectives of This Chapter 288
18.2 Summary of the Book 288
18.3 The Challenges of Future Software Development 290
18.3.1 Managing Change 290
18.3.2 Managing the Increasing Scale, Complexity, and Longevity of Software Projects 290
18.4 The Promise of Rationale-Based Software Engineering 291
18.4.1 Rationale and the Management of Change 292
18.4.2 Using Rationale to Manage the Increasing Scale, Complexity, and Longevity of Software Projects 293
18.5 Challenges for Rationale-Based Software Engineering 293
18.5.1 Addressing the Capture Problem 294
18.5.2 Addressing the Delivery Problem 297
18.6. Summary and Conclusions 298
Bibliography 301
Glossary 327
Index 343

Erscheint lt. Verlag 13.4.2008
Zusatzinfo XXXV, 316 p.
Verlagsort Berlin
Sprache englisch
Themenwelt Mathematik / Informatik Informatik Software Entwicklung
Technik Elektrotechnik / Energietechnik
Wirtschaft Betriebswirtschaft / Management Wirtschaftsinformatik
Schlagworte Architecture • Design • design process • Design rationale • Development • empirical software engineering • Requirements Engineering • Software Design • Software engineering • Software Lifecycle • software maintenance • Software Reuse • Testing • Validation
ISBN-10 3-540-77583-8 / 3540775838
ISBN-13 978-3-540-77583-6 / 9783540775836
Haben Sie eine Frage zum Produkt?
PDFPDF (Wasserzeichen)
Größe: 4,8 MB

DRM: Digitales Wasserzeichen
Dieses eBook enthält ein digitales Wasser­zeichen und ist damit für Sie persona­lisiert. Bei einer missbräuch­lichen Weiter­gabe des eBooks an Dritte ist eine Rück­ver­folgung an die Quelle möglich.

Dateiformat: PDF (Portable Document Format)
Mit einem festen Seiten­layout eignet sich die PDF besonders für Fach­bücher mit Spalten, Tabellen und Abbild­ungen. Eine PDF kann auf fast allen Geräten ange­zeigt werden, ist aber für kleine Displays (Smart­phone, eReader) nur einge­schränkt geeignet.

Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen dafür einen PDF-Viewer - z.B. den Adobe Reader oder Adobe Digital Editions.
eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen dafür einen PDF-Viewer - z.B. die kostenlose Adobe Digital Editions-App.

Zusätzliches Feature: Online Lesen
Dieses eBook können Sie zusätzlich zum Download auch online im Webbrowser lesen.

Buying eBooks from abroad
For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.

Mehr entdecken
aus dem Bereich
Das umfassende Handbuch

von Jürgen Sieben

eBook Download (2023)
Rheinwerk Computing (Verlag)
62,93
Mini-Refactorings für besseres Software-Design

von Kent Beck

eBook Download (2024)
O'Reilly Verlag
12,99
Grundlagen, Menschen, Prozesse, Techniken

von Jochen Ludewig; Horst Lichter

eBook Download (2023)
dpunkt (Verlag)
49,90