The value of design rationale information

A complete and detailed (full) Design Rationale Documentation (DRD) could support many software development activities, such as an impact analysis or a major redesign. However, this is typically too onerous for systematic industrial use as it is not cost effective to write, maintain, or read. The key idea investigated in this article is that DRD should be developed only to the extent required to support activities particularly difficult to execute or in need of significant improvement in a particular context. The aim of this article is to empirically investigate the customization of the DRD by documenting only the information items that will probably be required for executing an activity. This customization strategy relies on the hypothesis that the value of a specific DRD information item depends on its category (e.g., assumptions, related requirements, etc.) and on the activity it is meant to support. We investigate this hypothesis through two controlled experiments involving a total of 75 master students as experimental subjects. Results show that the value of a DRD information item significantly depends on its category and, within a given category, on the activity it supports. Furthermore, on average among activities, documenting only the information items that have been required at least half of the time (i.e., the information that will probably be required in the future) leads to a customized DRD containing about half the information items of a full documentation. We expect that such a significant reduction in DRD information should mitigate the effects of some inhibitors that currently prevent practitioners from documenting design decision rationale.

[1]  D. Boehm-Davis,et al.  Mental representations of programs for student and professional programmers , 1987 .

[2]  Markus Helfert,et al.  Software and Data Technologies , 2008 .

[3]  Natalia Juristo Juzgado,et al.  Basics of Software Engineering Experimentation , 2010, Springer US.

[4]  Forrest Shull,et al.  Building Knowledge through Families of Experiments , 1999, IEEE Trans. Software Eng..

[5]  Lionel C. Briand,et al.  A Realistic Empirical Evaluation of the Costs and Benefits of UML in Software Maintenance , 2008, IEEE Transactions on Software Engineering.

[6]  John M. Favaro,et al.  Value based software reuse investment , 1998, Ann. Softw. Eng..

[7]  Frank Leymann,et al.  Reusable Architectural Decision Models for Enterprise Application Development , 2007, QoSA.

[8]  Jan Bosch,et al.  Documenting after the fact: Recovering architectural design decisions , 2008, J. Syst. Softw..

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

[10]  Barry Boehm,et al.  Foundations of Empirical Software Engineering , 2005 .

[11]  Philippe Kruchten,et al.  The Decision View's Role in Software Architecture Practice , 2009, IEEE Software.

[12]  Claes Wohlin,et al.  Experimentation in Software Engineering , 2012, Springer Berlin Heidelberg.

[13]  Larix Lee,et al.  Capturing Software Architectural Design Decisions , 2007, 2007 Canadian Conference on Electrical and Computer Engineering.

[14]  Barry Boehm,et al.  Software economics: a roadmap , 2000, ICSE '00.

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

[16]  Giovanni Cantone,et al.  Evaluating Checklist-Based and Use-Case-Driven Reading Techniques as Applied to Software Analysis and Design UML Artifacts , 2003, ESERNET.

[17]  Michael Timberlake The Comparative Method: Moving Beyond Qualitative and Quantitative Strategies.By Charles C. Ragin. University of California Press. 185 pp. $27.50 , 1989 .

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

[19]  Scott W. Ambler,et al.  Agile modeling: effective practices for extreme programming and the unified process , 2002 .

[20]  Giovanni Cantone,et al.  Peaceful Coexistence: Agile Developer Perspectives on Software Architecture , 2010, IEEE Software.

[21]  Jan Bosch,et al.  Software Architecture: The Next Step , 2004, EWSA.

[22]  Stefan Biffl,et al.  Value-Based Requirements Traceability: Lessons Learned , 2007, 15th IEEE International Requirements Engineering Conference (RE 2007).

[23]  Rafael Capilla,et al.  Modeling and Documenting the Evolution of Architectural Design Decisions , 2007, Second Workshop on Sharing and Reusing Architectural Knowledge - Architecture, Rationale, and Design Intent (SHARK/ADI'07: ICSE Workshops 2007).

[24]  Philippe Kruchten,et al.  Building Up and Reasoning About Architectural Knowledge , 2006, QoSA.

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

[26]  Claes Wohlin,et al.  Using Students as Subjects—A Comparative Study of Students and Professionals in Lead-Time Impact Assessment , 2000, Empirical Software Engineering.

[27]  Elliot Soloway,et al.  Empirical Studies of Programmers: Second Workshop , 1991 .

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

[29]  Remco C. de Boer,et al.  In search of `architectural knowledge' , 2008, SHARK '08.

[30]  Stefan Biffl,et al.  A case study on value-based requirements tracing , 2005, ESEC/FSE-13.

[31]  Paul Clements,et al.  The Structured Intuitive Model for Product Line Economics (SIMPLE) , 2005 .

[32]  Claes Wohlin,et al.  Experimentation in software engineering: an introduction , 2000 .

[33]  Arthur I. Karshmer,et al.  Living assistance systems: an ambient intelligence approach , 2006, ICSE.

[34]  Philippe Kruchten,et al.  Wishes and Boundaries for a Software Architecture Knowledge Community , 2008, Seventh Working IEEE/IFIP Conference on Software Architecture (WICSA 2008).

[35]  Jens Knodel,et al.  A practical guide to product line scoping , 2006, 10th International Software Product Line Conference (SPLC'06).

[36]  Briony J. Oates,et al.  Widening the scope of evidence gathering in software engineering , 2003, Eleventh Annual International Workshop on Software Technology and Engineering Practice.

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

[38]  Jeffrey C. Carver,et al.  The role of replications in Empirical Software Engineering , 2008, Empirical Software Engineering.

[39]  Rafael Capilla,et al.  Effort Estimation in Capturing Architectural Knowledge , 2008, 2008 23rd IEEE/ACM International Conference on Automated Software Engineering.

[40]  Victor R. Basili,et al.  Support for comprehensive reuse , 1991, Softw. Eng. J..

[41]  Claes Wohlin,et al.  Using students as subjects - an empirical evaluation , 2008, ESEM '08.

[42]  Dirk Muthig,et al.  A practical guide to product line scoping , 2006 .

[43]  Stefan Biffl,et al.  Determining the cost-quality trade-off for automated software traceability , 2005, ASE.

[44]  Jane Cleland-Huang Requirements Traceability - When and How does it Deliver more than it Costs? , 2006, 14th IEEE International Requirements Engineering Conference (RE'06).

[45]  Gerardo Canfora,et al.  Empirical Principles and an Industrial Case Study in Retrieving Equivalent Requirements via Natural Language Processing Techniques , 2013, IEEE Transactions on Software Engineering.

[46]  Philippe Kruchten The Rational Unified Process - An Introduction, 3rd Edition , 2004, Addison Wesley object technology series.

[47]  Muhammad Ali Babar,et al.  Applying empirical software engineering to software architecture: challenges and lessons learned , 2010, Empirical Software Engineering.

[48]  Ian Gorton,et al.  Essential software architecture , 2006 .

[49]  Tore Dybå,et al.  Conducting realistic experiments in software engineering , 2002, Proceedings International Symposium on Empirical Software Engineering.

[50]  Rick Kazman,et al.  Decision-making techniques for software architecture design: A comparative survey , 2011, CSUR.

[51]  Giovanni Cantone,et al.  Exploring feasibility of software defects orthogonal classification , 2006, ICSOFT.

[52]  Dietmar Pfahl,et al.  Reporting Experiments in Software Engineering , 2008, Guide to Advanced Empirical Software Engineering.

[53]  Jan Bosch,et al.  Software Architecture as a Set of Architectural Design Decisions , 2005, 5th Working IEEE/IFIP Conference on Software Architecture (WICSA'05).

[54]  Giovanni Denaro,et al.  ACM Transactions on Software Engineering and Methodology : Volume 22, Nomor 4, 2013 , 2014 .

[55]  Michael L. Begeman,et al.  gIBIS: a hypertext tool for exploratory policy discussion , 1988, CSCW '88.

[56]  Forrest Shull,et al.  Victor R. Basili's contributions to software quality , 2006, IEEE Software.

[57]  Jane Cleland-Huang Just Enough Requirements Traceability , 2006, COMPSAC.

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

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

[60]  Philippe Kruchten,et al.  The Rational Unified Process: An Introduction , 1998 .

[61]  Paris Avgeriou,et al.  Using Architectural Decisions , 2006 .

[62]  Barry W. Boehm,et al.  Software Engineering Economics , 1993, IEEE Transactions on Software Engineering.

[63]  Steve Riddle,et al.  Tailoring Traceability Information to Business Needs , 2006 .

[64]  Martin Fowler,et al.  The new methodology , 2001, Wuhan University Journal of Natural Sciences.

[65]  José A. Moinhos Cordeiro,et al.  Software and Data Technologies , 2011, Communications in Computer and Information Science.

[66]  Antony Tang,et al.  Software designers, are you biased? , 2011, SHARK '11.

[67]  Giovanni Cantone,et al.  A Comparison of Structured Analysis and Object Oriented Analysis - An Experimental Study , 2007, ICSOFT.

[68]  Magne Jørgensen,et al.  Conducting experiments on software evolution , 2001, IWPSE '01.

[69]  David W. Hosmer,et al.  Applied Logistic Regression , 1991 .

[70]  Jeff Tyree,et al.  Architecture decisions: demystifying architecture , 2005, IEEE Software.

[71]  Magne Jørgensen,et al.  The Role of Deliberate Artificial Design Elements in Software Engineering Experiments , 2008, IEEE Transactions on Software Engineering.

[72]  Jintae Lee,et al.  Design Rationale Systems: Understanding the Issues , 1997, IEEE Expert.

[73]  M. Greenacre Correspondence analysis in practice , 1993 .