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 reused in future systems. Burge, Carroll, McCall, and Mistrk describe in detail the capture and use of design rationale in software engineering to improve the quality of software. Their book is the firs t 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 for those new to the field and a uniquely valuable reference for experienced rationale researchers. The book covers the use of rationale for decision making throughout the software lifecycle, starting from the first decisions in a project and continuing through requirements definition, design, implementation, testing, maintenance, redesign and reuse.
Cited By
- Farshidi S, Jansen S and Deldar M (2021). A decision model for programming language ecosystem selection, Information and Software Technology, 139:C, Online publication date: 1-Nov-2021.
- Safwan K and Servant F Decomposing the rationale of code commits: the software developer’s perspective Proceedings of the 2019 27th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering, (397-408)
- Kurtanović Z and Maalej W (2018). On user rationale in software engineering, Requirements Engineering, 23:3, (357-379), Online publication date: 1-Sep-2018.
- Alkadhi R, Laţa T, Guzman E and Bruegge B Rationale in development chat messages Proceedings of the 14th International Conference on Mining Software Repositories, (436-446)
- Kumar S, Wallace C and Young M Mentoring trajectories in an evolving agile workplace Proceedings of the 38th International Conference on Software Engineering Companion, (142-151)
- Schubanz M Design rationale capture in software architecture Proceedings of the 19th international doctoral symposium on Components and architecture, (31-36)
- Briand L, Falessi D, Nejati S, Sabetzadeh M and Yue T (2014). Traceability and SysML design slices to support safety inspections, ACM Transactions on Software Engineering and Methodology, 23:1, (1-43), Online publication date: 1-Feb-2014.
- Gruhn V and Book M Tamed Agility in Developing Mobile Business Systems Proceedings of the 10th International Conference on Mobile Web Information Systems - Volume 8093, (1-8)
- Falessi D, Briand L, Cantone G, Capilla R and Kruchten P (2013). The value of design rationale information, ACM Transactions on Software Engineering and Methodology, 22:3, (1-32), Online publication date: 1-Jul-2013.
- Book M, Grapenthin S and Gruhn V Seeing the forest and the trees Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering, (1-4)
- Guzzi A Documenting and sharing knowledge about code Proceedings of the 34th International Conference on Software Engineering, (1535-1538)
- Guzzi A and Begel A Facilitating communication between engineers with CARES Proceedings of the 34th International Conference on Software Engineering, (1367-1370)
- Rogers B, Gung J, Qiao Y and Burge J Exploring techniques for rationale extraction from existing documents Proceedings of the 34th International Conference on Software Engineering, (1313-1316)
- Burge J, Gannod G and Connor H Using rationale to drive product line architecture configuration Proceedings of the 6th International Workshop on SHAring and Reusing Architectural Knowledge, (29-36)
- Faily S and Fléchais I The secret lives of assumptions Proceedings of the Third international conference on Human-centred software engineering, (111-118)
- Nowak M, Pautasso C and Zimmermann O Architectural decision modeling with reuse Proceedings of the 2010 ICSE Workshop on Sharing and Reusing Architectural Knowledge, (13-20)
- Wang W and Burge J Using rationale to support pattern-based architectural design Proceedings of the 2010 ICSE Workshop on Sharing and Reusing Architectural Knowledge, (1-8)
- Huggins J and Wallace C Abstract state machines and the inquiry process Fields of logic and computation, (405-413)
- Daughtry J, Burge J, Carroll J and Potts C (2009). Creativity and rationale in software design, ACM SIGSOFT Software Engineering Notes, 34:1, (27-29), Online publication date: 31-Jan-2009.
Index Terms
- Rationale-Based Software Engineering
Recommendations
Software Engineering Using RATionale
Many decisions have to be made when developing a software system and a successful outcome depends on how well thought out these decisions were. One way that the decisions made, and alternatives considered, can be captured is in the rationale for the ...