Design rationale: Researching under uncertainty

Abstract Rationale research in software development is a challenging area because although there is no shortage of advocates for its value, there is also no shortage of reasons for why rationale is unlikely to be captured in practice. Despite more than 30 years of research there still remains much uncertainty: how useful are the potential benefits and how insurmountable are the barriers? Will the value of the rationale (design and otherwise) justify the cost of collecting it? Although there have been numerous rationale research projects, many, if not most, received little or no empirical evaluation. There also have not been many studies examining what the needs are of the practitioners who would be supported by the rationale. This article discusses the “doom and gloom” predictions of rationale's failure, provides a survey of evaluations of rationale systems, and discusses what we hope is a brighter outlook for rationale research in the future. There are development standards and synergistic research areas that may help with rationale research and its acceptance in the software community with which we should be working. This article also presents the results of a pilot survey of software developers who were asked how they would envision using rationale and what they believe the most important barriers are. Although some results were as expected, there were also some surprises. Research on technology transfer indicates that, among other things, to transition successfully from research into practice we need to understand the need that is being met and demonstrate the value of our approach. Until we have determined how our work is needed by the people we are trying to help we will remain researching under uncertainty.

[1]  Paul Clements,et al.  Capturing and Using Rationale for a Software Architecture , 2006 .

[2]  Toshiharu Taura,et al.  A Study on Engineering History Base , 1996 .

[3]  Adam Farquhar,et al.  The Road Ahead for Knowledge Management: An AI Perspective , 2000, AI Mag..

[4]  Vasant Dhar,et al.  Representing and maintaining process knowledge for large-scale systems development , 1994, IEEE Expert.

[5]  Tom Rodden,et al.  Group support for the recording and sharing of maintenance rationale , 1993, Softw. Eng. J..

[6]  Barry W. Boehm,et al.  An Initial Theory of Value-Based Software Engineering , 2006, Value-Based Software Engineering.

[7]  Jane Huffman Hayes,et al.  Houston, we have a success story: technology transfer at the NASA IV&V facility , 2006, TT '06.

[8]  Deborah Richards,et al.  Capturing and Reusing Rationale Associated with Requirements Engineering Process Improvement: A Case Study , 2006 .

[9]  James Bowen,et al.  Design Rationale Management in Concurrent Engineering , 1992 .

[10]  Kurt Schneider Rationale as a By-Product , 2006 .

[11]  Thomas P. Moran,et al.  Questions, Options, and Criteria: Elements of Design Space Analysis , 1991, Hum. Comput. Interact..

[12]  Daniel Brissaud,et al.  Design process rationale capture and support by abstraction of criteria , 2003 .

[13]  Antony Tang,et al.  A rationale-based architecture model for design traceability and reasoning , 2007, J. Syst. Softw..

[14]  Bill Curtis From MCC to CMM: technology transfers bright and dim , 2000, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.

[15]  Michael E. Atwood,et al.  Effective Design Rationale: Understanding the Barriers , 2006 .

[16]  William C. Regli,et al.  Capturing communication and context in the software project lifecycle , 2003 .

[17]  Ethan V. Munson,et al.  A version-aware tool for design rationale , 2006, WebMedia '06.

[18]  Feniosky Peña-Mora,et al.  Design rationale for computer-supported conflict mitigation , 1995 .

[19]  Raymond McCall,et al.  Rationale-Based Software Engineering , 2008 .

[20]  Hakan Erdogmus,et al.  Valuation of Software Initiatives Under Uncertainty: Concepts, Issues, and Techniques , 2006, Value-Based Software Engineering.

[21]  Jos Nijhuis,et al.  Design Decisions: The Bridge between Rationale and Architecture , 2006 .

[22]  B. D. Britt,et al.  Reconstructive derivational analogy: A machine learning approach to automating redesign , 1996, Artificial Intelligence for Engineering Design, Analysis and Manufacturing.

[23]  Barry Boehm,et al.  The WinWin Approach: Using a Requirements Negotiation Tool for Rationale Capture and Use , 2006 .

[24]  Laurent Karsenty,et al.  An empirical evaluation of design rationale documents , 1996, CHI.

[25]  John M. Carroll,et al.  Making use: scenarios and scenario-based design , 2000, DIS '00.

[26]  M. Lindvall,et al.  Knowledge management in software engineering , 2002, IEEE Software.

[27]  Giovanni Cantone,et al.  Documenting design decision rationale to improve individual and team design decision making: an experimental evaluation , 2006, ISESE '06.

[28]  Barbara Paech,et al.  Using Patterns for Sharing Requirements Engineering Process Rationales , 2006 .

[29]  Jonathan Grudin,et al.  Evaluating Opportunities for Design Capture , 1996 .

[30]  Linden J. Ball,et al.  The Evaluation of Desperado - A Computerised Tool to Aid Design Reuse , 2000, BCS HCI.

[32]  Mark Klein An Exception Handling Approach to Enhancing Consistency, Completeness, and Correctness in Collaborative Requirements Capture , 1997 .

[33]  Thomas R. Gruber,et al.  KSL 90-33 Revised May 1990 Model-based Explanation of Design Rationale , 1990 .

[34]  Barry W. Boehm,et al.  Value-based software engineering: reinventing , 2003, SOEN.

[35]  Patrick Henry Winston,et al.  Artificial intelligence at MIT: expanding frontiers , 1991 .

[36]  Anders Wall,et al.  Technology transfer: why some succeed and some don't , 2006, TT '06.

[37]  Ernest A. Edmonds,et al.  On facilitating knowledge transfer in software design , 1999, Knowl. Based Syst..

[38]  Muhammad Ali Babar,et al.  A survey of architecture design rationale , 2006, J. Syst. Softw..

[39]  Pericles Loucopoulos,et al.  A generic model for reflective design , 2000, TSEM.

[40]  David C. Brown,et al.  Rationale-Based Support for Software Maintenance , 2006 .

[42]  Andrew Dillon,et al.  Design rationale: Concepts, techniques, and use , 1997 .

[43]  John Millar Carroll HCI Models, Theories, and Frameworks: Toward a Multidisciplinary Science , 2003 .

[44]  Mark Klein,et al.  Quantifying the costs and benefits of architectural decisions , 2001, Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001.

[45]  Vasant Dhar,et al.  Supporting Systems Development by Capturing Deliberations During Requirements Engineering , 1992, IEEE Trans. Software Eng..

[46]  Feniosky Peña-Mora,et al.  Augmenting design patterns with design rationale , 1997, Artificial Intelligence for Engineering Design, Analysis and Manufacturing.

[47]  Mark Klein,et al.  DRCS: An Integrated System for Capture of Designs and Their Rationale , 1992 .

[48]  Kenji Takahashi,et al.  Inquiry-based requirements analysis , 1994, IEEE Software.

[49]  Nick Hammond,et al.  Argumentation-based design rationale: what use at what cost? , 1994, Int. J. Hum. Comput. Stud..

[50]  Gail C. Murphy,et al.  Design pattern rationale graphs: linking design to source , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[51]  K. Suzanne Barber,et al.  Reference Architecture Representation Environment (RARE) A Tool to Support Object-Oriented Software Architecture Derivation and Evaluation , 2000 .

[52]  Dimitris Papadias,et al.  Computer supported argumentation and collaborative decision making: the HERMES system , 2001, Inf. Syst..

[53]  Barry W. Boehm,et al.  Value-Based Software Engineering: Overview and Agenda , 2006, Value-Based Software Engineering.

[54]  Frank Maurer,et al.  Integrating software process models and design rationales , 1996, Proceedings of the 11th Knowledge-Based Software Engineering Conference.

[55]  David C. Brown,et al.  AN INTEGRATED APPROACH FOR SOFTWARE DESIGN CHECKING USING DESIGN RATIONALE , 2004 .

[56]  John M. Carroll,et al.  Making Use: Scenario-Based Design of Human-Computer Interactions , 2000 .

[57]  Jeffrey D. Smith,et al.  An evaluation of inquiry-based requirements analysis for an Internet service , 1995, Proceedings of 1995 IEEE International Symposium on Requirements Engineering (RE'95).

[58]  Paul W. H. Chung,et al.  An integrated approach to representing and accessing design rationale , 1998 .

[59]  Ana Cristina Bicharra Active design documents: a new approach for supporting documentation in preliminary routine design , 1992 .

[60]  Jay Liebowitz A Look at NASA Goddard Space Flight Center's Knowledge Management Initiatives , 2002, IEEE Softw..

[61]  Maarten Sierhuis,et al.  Hypermedia Support for Argumentation-Based Rationale , 2006 .

[62]  Linden J. Ball,et al.  Representing design rationale to support innovative design reuse: a minimalist approach , 2001 .

[63]  Raymond McCall,et al.  Making Argumentation Serve Design , 1996, Hum. Comput. Interact..

[64]  Karen L. Myers,et al.  Automated Capture of Rationale for the Detailed Design Process , 1999, AAAI/IAAI.

[65]  E. Jeffrey Conklin,et al.  A process-oriented approach to design rationale , 1991 .

[66]  Adriana Pereira de Medeiros,et al.  Kuaba Ontology: Design Rationale Representation and Reuse in Model-Based Designs , 2005, ER.

[67]  Rob H. Bracewell,et al.  DRed and Design Folders: A Way of Capturing, Storing and Passing On Knowledge Generated During Design Projects , 2004, DAC 2004.

[68]  Eric Barboni,et al.  From DREAM to Reality: Specificities of Interactive Systems Development With Respect To Rationale Management , 2006 .

[69]  Frank M. Shipman,et al.  Integrating different perspectives on design rationale: Supporting the emergence of design rationale from design communication , 1997, Artificial Intelligence for Engineering Design, Analysis and Manufacturing.

[70]  Cmmi Product Team CMMI for Development, Version 1.2 , 2010 .

[71]  Mary Beth Rosson,et al.  Deliberated Evolution: Stalking the View Matcher in Design Space , 1991, Hum. Comput. Interact..

[72]  Steven R. Haynes,et al.  Three Studies of Design Rationale as Explanation , 2006 .

[73]  Roelf J. Wieringa,et al.  Reusable Rationale Blocks: Improving Quality and Efficiency of Design Choices , 2006 .

[74]  Kuntz Werner,et al.  Issues as Elements of Information Systems , 1970 .

[75]  Gregory D. Abowd,et al.  Automating the Capture of Design Knowledge: A Preliminary Study , 1999 .

[76]  Maarten Sierhuis,et al.  Hypermedia support for argumentation-based rationale: 15 years on from gIBIS and QOC , 2005 .

[77]  William E. Riddle,et al.  Software technology maturation , 1985, ICSE '85.

[78]  Mary Beth Rosson,et al.  Design Rationale as Theory , 2003 .

[79]  David C. Brown,et al.  Using Design History Systems for Technology Transfer , 1991, MIT-JSME Workshop.

[80]  Barry W. Boehm,et al.  Theory-W Software Project Management: Principles and Examples , 1989, IEEE Trans. Software Eng..

[81]  Jesus M. de la Garza,et al.  Using Parameter Dependency Network to Represent Design Rationale , 1997 .

[82]  Gregory D. Abowd,et al.  Automated Capture and Retrieval of Architectural Rationale , 1998 .

[83]  Barry W. Boehm,et al.  Applying WinWin to quality requirements: a case study , 2001, Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001.

[84]  Raymond McCall,et al.  Rationale Management in Software Engineering , 2006 .

[85]  Mary Beth Rosson,et al.  Getting around the task-artifact cycle: how to make claims and design by scenario , 1992, TOIS.

[86]  Björn Regnell,et al.  Is a Design Rationale Vital when Predicting Change Impact? A Controlled Experiment on Software Architecture Evolution , 2000, PROFES.

[87]  Tetsuo Tomiyama,et al.  Knowledge Intensive CAD , 1996, IFIP Advances in Information and Communication Technology.

[88]  Ann Blandford,et al.  An investigation into the application of Claims Analysis to evaluate usability of a digital library interface , 2002 .

[89]  Rudolf Vetschera,et al.  Preference-Based Decision Support in Software Engineering , 2006, Value-Based Software Engineering.

[90]  Muhammad Ali Babar,et al.  A Framework for Supporting Architecture Knowledge and Rationale Management , 2006 .

[91]  Barbara Paech,et al.  Using Rationale for Software Engineering Education , 2005, 18th Conference on Software Engineering Education & Training (CSEET'05).

[92]  Mark Klein,et al.  Capturing geometry rationale for collaborative design , 1997, Proceedings of IEEE 6th Workshop on Enabling Technologies: Infrastructure for Collaborative Enterprises.