Informador Técnico
ISSN: 2256-5035 (Electrónico)
ISSN: 0122-056X (Impreso)
Formato: Electrónico / Acceso Abierto
Frecuencia: Números Semestrales
Revisión por Pares: Doble Ciego
El rationale arquitectónico es el conjunto de razones detrás de las decisiones tomadas al diseñar la arquitectura de un sistema de software. Normalmente, dicho rationale se queda en las mentes de los diseñadores y demás involucrados en el diseño. Por lo tanto, el razonamiento detrás de las decisiones que sustentan el modelo de arquitectura puede perderse si no se documenta adecuadamente, causando problemas de mantenibilidad en el software. En la práctica, el rationale no se documenta o se documenta en medio de las descripciones arquitecturales, lo cual dificulta su comprensión y apoyo a las decisiones posteriores, dentro del desarrollo y mantenimiento de software, lo cual resulta más crítico en el enfoque ágil de desarrollo. Para abordar este problema, en este trabajo se propone un enfoque de documentación que combina el modelado del rationale, con foco en las decisiones que se toman en proyectos que utilizan métodos ágiles, con el fin de especificar un lenguaje que fundamente las bases para la construcción de una herramienta que hemos denominado Decisions and rationale modeling language (DRML). El lenguaje es evaluado para documentar el rationale en el marco del proyecto “Sistema Único de Información Indígena (SUIIN)”, en el contexto de una entidad pública que dentro sus procesos tienen un equipo de trabajo conformado por ingenieros de sistemas, enfocados en el desarrollo de software. Dicha evaluación ha permitido establecer que el enfoque brinda la suficiente expresividad para documentar las decisiones y su rationale, sin embargo, presenta limitaciones para escalar el modelado para un número grande de decisiones y sus relaciones.
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
Esta obra está bajo una licencia internacional Creative Commons Atribución-NoComercial-SinDerivadas 4.0.
Derechos de autor 2020 Servicio Nacional de Aprendizaje SENA