: Janet E. Burge, John M. Carroll, Raymond McCall, Ivan Mistrík
: Rationale-Based Software Engineering
: Springer-Verlag
: 9783540775836
: 1
: CHF 85.50
:
: Informatik
: English
: 316
: Wasserzeichen/DRM
: PC/MAC/eReader/Tablet
: PDF

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.

Foreword5
Foreword7
Preface15
Book Overview16
Part 1: Introduction16
Part 2: Uses of Rationale17
Part 3: Rationale and Software Engineering18
Part 4: Frameworks for Using Rationale in Software Engineering19
Acknowledgements20
Author Biographies21
Contents25
Part 1 Introduction34
1 What is Rationale and Why Does It Matter?35
1.1 Introduction35
1.1.1 The Scope and Value of Rationale in Software Engineering35
1.1.2 Objectives of This Chapter37
1.2 A Rough Sketch of Research on Rationale37
1.2.1 Argumentative Approaches to Rationale37
1.2.2 Rationale Methods That Go Beyond Argumentation44
1.3 Why Rationale Matters45
1.3.1 The Usefulness of Rationale for Artifact Creation45
1.3.2 The Usefulness of Rationale for Software Engineering48
1.4 Summary and Conclusions54
2 What Makes Software Different57
2.1 Introduction57
2.1.1 Rationale for Software Artifacts versus Rationale for Physical Artifacts57
2.1.2 Objectives of This Chapter58
2.2 The Roles of the Computer58
2.2.1 Comparison of the Roles of the Computer in the Lifecycles of Physical and Software Artifacts59
2.2.2 The Significance for Rationale Management in Software Engineering60
2.3 Iteration in Development64
2.3.1 The Role of Iteration in Different Types of Development64
2.3.2 Implications of Iteration for Rationale Management in Software Engineering65
2.4 Summary and Conclusion67
3 Rationale and Software Engineering69
3.1 Introduction69
3.1.1 Software Engineering69
3.1.2 Software Engineering Rationale70
3.1.3 Objectives of This Chapter70
3.2 Rationale and the Software Process70
3.2.1 Software Process Definition and Implementation70
3.2.2 Rationale and SE Process Decision-Making71
3.3 Rationale and Project Management73
3.4 Rationale and Software Development75
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 Conclusions79
4 Learning from Rationale Research in Other Domains81
4.1 Introduction81
4.1.1 Research on Rationale in other Domains81
4.1.2 Objectives of This Chapter82
4.2 Domain-Oriented Design Environments Using PHI82
4.2.1 PHIDIAS and JANUS82
4.2.2 Discussion85
4.3 Automating the Capture of Design Rationale with CAD87
4.3.1 The Rationale Capture Problem87
4.3.2 Solution Approach: Automating the Capture of Rationale88
4.3.3 Implementation: The Rationale Construction Framework89
4.3.4 Discussion90
4.4 Parameter Dependency Networks as Design Rationale91
4.4.1 The DRIVE System and Parameter Dependency Networks91
4.4.2 Discussion92
4.5 Case-Based Reasoning as Design Rationale93
4.5.1. From Automated Case-Based Reasoning to Case-Based Design Aids93
4.5.2 Discussion96
4.6 Summary and Conclusions98
5 Decision-Making in Software Engineering99
5.1 Introduction99
5.1.1 General99
5.1.1 Objectives of this Chapter99
5.2 Decision-Making Problems100
5.2.1 Where Decisions Go Wrong100
5.2.2 Poor Decisions in Software101
5.3 Naturalistic Decision-Making103
5.3.1 Background103
5.3.2 The Recognition-Primed Decision Model104
5.4 Rationale as a Resource for Decision-Making105
5.4.1 Classical Decision-Making106
5.4.2 Naturalistic Decision-making