Abstract
The architectural rationale is the set of reasons behind the decisions made when designing the architecture of a software system. Normally, this rationale remains in the minds of designers and others involved in the design. Therefore, the reasoning behind the decisions that underpin the architecture model may be lost if not properly documented, causing maintainability problems in the software. In practice, the rationale is not documented or is documented in the middle of the architectural descriptions, which makes it difficult to understand and support subsequent decisions, within the development and maintenance of software, which is more critical in the agile approach to development. To address this problem, this paper proposes a documentation approach that combines rationale modeling with a focus on decisions made in projects that use agile methods, to specify a language that provides the basis for the construction of a tool that we have called DRML (Decisions and Rationale Modeling Language). The language is evaluated to document the rationale in the framework of the Unique Indigenous Information System (SUIIN, for its acronym in Spanish) project, in the context of a public entity that within its processes has a work team made up of systems engineers focused on software development. This evaluation has established that the approach provides sufficient expressiveness to document the decisions and their rationale, however, it has limitations to scale the modeling for a large number of decisions and their relationships.
References
Aldrich, J.; Chambers, C.; y Notkin, D. (2002). ArchJava: connecting software architecture to implementation. Proceedings of the 24th International Conference on Software Engineering. ICSE 2002, 187–197. https://doi.org/10.1109/ICSE.2002.1007967
Bass, Len; Clements, Paul; Kazman, Rick (2003). Software architectuSoftware architecture in practicere in practice. Boston, EE.UU: Addison-Wesley.
Bucaioni, Alessio; Cicchetti, Antonio; Ciccozzi, Federico; Mubeen, Saad; Sjodin, Mikael (2017). A Metamodel for the Rubus Component Model: Extensions for Timing and Model Transformation from EAST-ADL. IEEE Access, 5, 9005–9020. https://doi.org/10.1109/ACCESS.2016.2641218
Bunge, Mario (2002). La investigación científica: su estrategia y su filosofía. México: Siglo XXI Editores.
Che, Meiru (2014). Managing Architectural Design Decision Documentation and Evolution Committee (tesis doctoral). University of Texas at Austin, Austin, Texas.
Cleland-Huang, Jane; Mirakhorli, Mehdi; Czauderna, Adam; Wieloch, Mateusz (Mayo de 2013). Decision-Centric Traceability of architectural concerns. In: 2013 7th International Workshop on Traceability in Emerging Forms of Software Engineering, (TEFSE). San Francisco, California, EE. UU. https://doi.org/10.1109/TEFSE.2013.6620147
Dasanayake, Sandun; Markkula, Jouni; Aaramaa, Sanja; Oivo, Markku (2016). An Empirical Study on Collaborative Architecture Decision Making in Software Teams. In: European Conference on Software Architecture. Tekinerdogan B.; Zdun U.; Babar A. (eds) Software Architecture (pp. 238-246). Springer, Cham: Lecture Notes in Computer Science. https://doi.org/10.1007/978-3-319-48992-6_18
Dermeval, Diego; Castro, Jaelson; Silva, Carla; Pimentel, Joao; Bittencourt, Ibert; Brito, Patrick; Elias, Endhe; Tenorio, Thyago; Pedro, Alan (March de 2013). On the use of metamodeling for relating requirements and architectural design decisions. In: SAC '13: Proceedings of the 28th Annual ACM Symposium on Applied Computing (pp. 1278–1283). Coimbra, Portugal. https://doi.org/10.1145/2480362.2480601
Dorado, Santiago; Hurtado, Julio (2019). Documenting architectural rationale using source code annotations: An exploratory study. EPiC SeriesinComputing, 64, 204-214.
Gilson, Fabian; Englebert, Vincent (September de 2011). Rationale, decisions and alternatives traceability for architecture design. In: ECSA 11: Proceedings of the 5th European Conference on Software Architecture: Companion (pp. 1-9). New York, EEUU. https://doi.org/10.1145/2031759.2031764
Hadar, Irit; Sherman, Sofia; Hadar, Ethan; Harrison, Jhon (May 2013). Less is more: Architecture documentation for agile development. 2013 6th International Workshop on Cooperative and Human Aspects of Software Engineering, CHASE 2013 - Proceedings (pp. 121–124). San Francisco, CA, USA. https://doi.org/10.1109/CHASE.2013.6614746
Harrison, Neil; Avgeriou, Paris (2010). How do architecture patterns and tactics interact? A model and annotation. Journal of Systems and Software, 83(10), 1735–1758. https://doi.org/10.1016/j.jss.2010.04.067
Harrison, Neil; Gubler, Erich; Skinner, Danielle (March de 2016). Architectural Decision-Making in Open-Source Systems-Preliminary Observations. 2016 1st International Workshop on Decision Making in Software ARCHitecture - Proceedings, (pp. 16–21). Venice, Italy https://doi.org/https://doi.org/10.1109/MARCH.2016.7
Hernández, Flor; Hurtado, Julio (2016). Difficulties and challenges in the incorporation of architectural practices. Sistemas y Telemática, 14(38), 74–86. https://doi.org/10.18046/syt.v14i38.2290
Hesse, Tom-Michael; Kuehlwein, Arthur; Paech, Barbara; Roehm, Tobias; Bruegge, Bernd (2015). Documenting Implementation Decisions with Code Annotations. SEKE, 152-157. https://doi.org/10.18293/SEKE2015-084
Jansen, Anton; Avgeriou, Paris; van Der Ven, Jan (2009). Enriching software architecture documentation. Journal of Systems and Software, 82(8), 1232–1248. https://doi.org/10.1016/j.jss.2009.04.052
Jansen, A.; Bosch, J. (November 2005). Software architecture as a set of architectural design decisions. 5th Working IEEE/IFIP Conference on Software Architecture, WICSA 2005 – Proceedings (pp. 109–120). Pittsburgh, Pennsylvania. https://doi.org/10.1109/WICSA.2005.61
Kellari, Demetrios; Crawley, Edward; Cameron, Bruce (2018). Architectural decisions in commercial aircraft from the DC-3 to the 787. Journal of Aircraft, 55(2), 792–804. https://doi.org/https://doi.org/10.2514/1.C034130
Kruchten, Philippe; Capilla, Rafael; Dueñas, Juan (2009). The decision view’s role in software architecture practice. IEEE Software, 26(2), 36–42. https://doi.org/10.1109/MS.2009.52
Kruchten, Philippe; Obbink, H.; Stafford, J. (2006, March). The past, present, and future for software architecture. IEEE Software, 23(2), 22-30. https://doi.org/10.1109/MS.2006.59
Lopes, Socrates; Aquino, Plinio (2017). Architectural Design Group Decision-Making in Agile Projects. 2017 IEEE International Conference on Software Architecture Workshops (ICSAW), (pp. 201-2015). Gothenburg, Sweden. https://ieeexplore.ieee.org/abstract/document/7958489/
Malavolta, Ivano; Muccini, Henry; Rekha, Smrithi (2014). Enhancing Architecture Design Decisions Evolution with Group Decision Making Principles. In: Majzik I., Vieira M. (eds). Software Engineering for Resilient Systems. SERENE 2014. Lecture Notes in Computer Science (pp. 9–23). Budapest, Hungary: Springer. https://doi.org/10.1007/978-3-319-12241-0_2
Manteuffel, Christian; Tofan, Dan; Koziolek, Heiko; Goldschmidt, Thomas; Avgeriou, Paris (2014). Industrial implementation of a documentation framework for architectural decisions. 2014 IEEE/IFIP Conference on Software Architecture – Proceedings. (pp. 225–234), Sydney, NSW. https://doi.org/https://doi.org/10.1109/WICSA.2014.32
Montenegro, Carlos; Gaona, Paulo; Cueva, Juan; San Juan, Oscar (2011). Aplicación de ingeniería dirigida por modelos (MDA), para la construcción de una herramienta de modelado de dominio específico (DSM) y la creación de módulos en sistemas de gestión de aprendizaje (LMS) independientes de la plataforma. Dyna, 78 (169), 43–52. https://www.redalyc.org/pdf/496/49622390005.pdf
Plataniotis, Georgios; Ma, Qin; Proper, Erik; de Kinderen, Sybren (2015). Traceability and modeling of requirements in enterprise architecture from a design rationale perspective. 2015 IEEE 9th International Conference on Research Challenges in Information Science (RCIS) (pp. 518–519). Athens, Greece. https://doi.org/10.1109/RCIS.2015.7128916
Reynoso, Carlos (2004). Introducción a la Arquitectura de Software. http://cic.puj.edu.co/wiki/lib/exe/fetch.php?media=materias:introarq.pdf
Roeller, Ronny; Lago, Patricia; van Vliet, Hans (2006). Recovering architectural assumptions. Journal of Systems and Software, 79(4), 552–573. https://doi.org/10.1016/j.jss.2005.10.017
Roldán, Maria; Gonnet, Silvio; Leone, Horacio (2016). Operation-based approach for documenting software architecture knowledge. Expert Systems, 33(4), 313–348. https://doi.org/10.1111/exsy.12152
Runeson, Per; Höst, Martin (2009). Guidelines for conducting and reporting case study research in software engineering. Empirical Software Engineering, 14(2), 131–164. https://doi.org/10.1007/s10664-008-9102-8
Sauro, Jeff; Lewis, James (2016). Standardized usability questionnaires. In Quantifying the User Experience (pp. 185–248). EE.UU: Elsevier. https://doi.org/10.1016/b978-0-12-802308-2.00008-4
Singer, J. (1998). Practices of software maintenance. Proceedings. International Conference on Software Maintenance (Cat. No. 98CB36272), 139–145. https://doi.org/10.1109/ICSM.1998.738502
Tang, Antony; Babar, MMuhammad; Gorton, Ian; Han, Jun (2006). A survey of architecture design rationale. Journal of Systems and Software, 79(12), 1792–1804. https://doi.org/10.1016/j.jss.2006.04.029
van Der Ven, Jan; Bosch, Jan (2016). Busting Software Architecture Beliefs: A Survey on Success Factors in Architecture Decision Making. 2016 42th Euromicro Conference on Software Engineering and Advanced Applications (SEAA), (pp. 42–49). Limassol, Cyprus https://doi.org/10.1109/SEAA.2016.35
Van Der Ven, Jan; Jansen, Anton; Nijhuis, Jos; Bosch, Jan (2006). Design decisions: The bridge between rationale and architecture. In Dutoit A.H., McCall R., Mistrík I., Paech B. (eds). Rationale Management in Software Engineering (pp. 329–348). Berlin, Heidelberg, Springer. https://doi.org/https://doi.org/10.1007/978-3-540-30998-7_16
van Vliet, Hans; Tang, Antony (2016). Decision making in software architecture. Journal of Systems and Software, 117, 638–644. https://doi.org/10.1016/j.jss.2016.01.017
Zimmermann, Olaf (2012). Architectural decision identification in architectural patterns. WICSA/ECSA '12: Proceedings of the WICSA/ECSA 2012 Companion Volume (pp. 96–103). New York, EE.UU: Association for Computing Machinery. https://doi.org/10.1145/2361999.2362021

This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
Copyright (c) 2020 Servicio Nacional de Aprendizaje SENA















