Los requisitos arquitectónicamente significativos son aquellos que tienen un efecto medible en la arquitectura de un sistema informático . [ 1 ] Esto puede incluir tanto requisitos de software como de hardware. Son un subconjunto de requisitos que afectan la arquitectura del sistema de maneras medibles e identificables.
Relación con los requisitos no funcionales y los atributos de calidad.
Los requisitos arquitectónicamente significativos fueron reconocidos como un concepto importante solo recientemente, en 2016. Al hablar de arquitectura, se suelen utilizar los términos requisitos no funcionales o atributos de calidad . [ 2 ] Sin embargo, estudios empíricos recientes muestran que, para un sistema de software , no todos los requisitos no funcionales afectan su arquitectura , y los requisitos funcionales también pueden afectarla. [ 1 ] [ 3 ] Esta investigación sugiere que, al hablar de arquitectura de software, vale la pena distinguir qué requisitos de software son arquitectónicamente significativos y si son funcionales. [ 3 ]
Características
Los requisitos arquitectónicamente significativos pueden caracterizarse por los siguientes aspectos. [ 1 ]
Características descriptivas
Los requisitos arquitectónicamente significativos suelen ser difíciles de definir y articular, tienden a expresarse de forma vaga, a ser inicialmente ignorados, a estar ocultos entre otros requisitos y son subjetivos, variables y situacionales. Otros requisitos también podrían presentar estas características descriptivas. Sin embargo, la importancia de los requisitos arquitectónicamente significativos hizo que estas manifestaciones fueran únicas y complejas.
Indicadores
Un requisito con un amplio impacto se centra en puntos de compromiso, es estricto (restringe, limita, no es negociable), rompe con los supuestos o es difícil de lograr, y es probable que tenga una importancia arquitectónica significativa.
Entre los indicadores de importancia arquitectónica que se han reportado en la literatura se incluyen:
- Este requisito está asociado a un alto valor comercial y/o a un riesgo técnico.
- Este requisito preocupa a una parte interesada particularmente influyente.
- Este requisito tiene un carácter novedoso, ya que ninguna de las responsabilidades de los componentes existentes en la arquitectura lo contempla.
- El requisito presenta características de QoS/SLA que difieren de las que ya satisface la arquitectura en evolución.
- Este requisito provocó sobrecostes o insatisfacción del cliente en un proyecto anterior con un contexto similar.
OpenUP [ 4 ] y Peter Eeles [ 5 ] analizan criterios adicionales para la relevancia arquitectónica en varios artículos y presentaciones. En la Conferencia Europea sobre Arquitectura de Software de 2020 se abordaron siete criterios para la relevancia arquitectónica: valor/riesgo para el negocio, interés de las partes interesadas, nivel de calidad, dependencias externas, transversalidad, novedad y origen de problemas en proyectos anteriores.
Heurísticas
Cuando un requisito especifica los atributos de calidad de un sistema de software , hace referencia a sus características principales, le impone restricciones o define el entorno en el que se ejecutará, es probable que tenga una importancia arquitectónica significativa.
Consulte la sección sobre diseño frente a arquitectura en el apartado de arquitectura de software para obtener criterios adicionales de importancia arquitectónica.
Sonsacamiento
Al igual que todos los requisitos no funcionales y los atributos de calidad, [ 6 ] los requisitos arquitectónicamente significativos deben especificarse SMART . Los escenarios de atributos de calidad [ 2 ] son una forma de lograr los criterios S (específicos) y M (medidos) en SMART. El Software Engineering Institute recomienda los Talleres de Atributos de Calidad para este fin. [ 7 ] Se ha sugerido que el análisis y el diseño de la arquitectura se mantengan ligeros y flexibles; los árboles de atributos de calidad para géneros de aplicaciones y dominios tecnológicos específicos pueden respaldar tales enfoques. [ 8 ]
Es esencial comunicar los requisitos arquitectónicamente significativos obtenidos y cualquier otro artefacto arquitectónico en una notación y un lenguaje comprensibles para el público objetivo (en particular, las partes interesadas del negocio). [ 9 ]
Impacto
Los requisitos arquitectónicamente significativos se utilizan en el diseño de software para guiar y justificar las decisiones arquitectónicas ; si no se satisfacen adecuadamente, contribuyen a la acumulación de deuda técnica . Por ejemplo, el incumplimiento de los requisitos de seguridad y cumplimiento complica las auditorías de aseguramiento del sistema y del proceso, e incrementa el riesgo de hallazgos de auditoría. [ 10 ] En la literatura se encuentra disponible asesoramiento ejemplar sobre cómo abordar los atributos de calidad del sistema (incluidos los requisitos arquitectónicamente significativos). [ 11 ] [ 12 ]
Véase también
Referencias
- 123Chen, Lianping; Ali Babar, Muhammad; Nuseibeh, Bashar (2013). "Characterizing Architecturally Significant Requirements". IEEE Software. 30 (2): 38–45. Bibcode:2013ISoft..30b..38C. doi:10.1109/MS.2012.174. hdl:10344/3061. S2CID 17399565.
- 12Bass, Len; Clements, Paul (2003). Software Architecture in Practice. Addison Wesley. ISBN 978-0321154958.
- 12Eckhardt, Jonas; Vogelsang, Andreas; Fernández, Daniel (2016). Are "Non-functional" Requirements really Non-functional? - An Investigation of Non-functional Requirements in Practice(PDF). The 38th International Conference on Software Engineering. Association for Computing Machinery.
- ↑"Concept: Architecturally Significant Requirements". Archived from the original on October 17, 2016. Retrieved August 19, 2016.
- ↑"Peter Eeles on ResearchGate".
- ↑"Quality Attributes"(PDF). sei.cmu.edu. Archived from the original(PDF) on October 16, 2012.
- ↑"The SEI Quality Attribute Workshop". February 8, 2018.
- ↑Keeling, Michael (2015). "Lightweight and Flexible: Emerging Trends in Software Architecture from the SATURN Conferences". IEEE Software. 32 (3): 7–11. Bibcode:2015ISoft..32c...7K. doi:10.1109/MS.2015.65.
- ↑Schulenklopper, Jochem (2016). "Why They Just Don't Get It: Communicating about Architecture with Business Stakeholders". IEEE Software. 33 (3): 13–19. Bibcode:2016ISoft..33c..13S. doi:10.1109/MS.2016.67. S2CID 1309474.
- ↑K. Julisch et al., Compliance by design - Bridging the chasm between auditors and IT architectsArchived 2017-09-21 at the Wayback Machine Computers & Security 30(6-7): 410-426 (2011)
- ↑"Implementing System-Quality Attributes".
- ↑A. Rotem-Gal-Oz, SOA Patterns, Manning, 2012.
- Arquitectura de software