Los requisitos arquitectónicamente significativos son aquellos requisitos que tienen un efecto mensurable en la arquitectura de un sistema informático . [1] Esto puede incluir tanto requisitos de software como de hardware. Son un subconjunto de requisitos , el subconjunto que afecta la arquitectura de un sistema de maneras mensurables e identificables.
Los requisitos arquitectónicamente significativos fueron reconocidos recientemente, a partir de 2016, como un concepto importante. Cuando se habla de arquitectura, a menudo se utilizan 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 afectar su arquitectura. [1] [3] Esta investigación sugiere que, cuando se habla de arquitectura de software, vale la pena distinguir qué requisitos de software son arquitectónicamente significativos, así como si son funcionales. [3]
Los requisitos arquitectónicamente significativos se pueden caracterizar a partir de los siguientes aspectos. [1]
Los requisitos arquitectónicamente significativos suelen ser difíciles de definir y articular, tienden a expresarse de manera vaga, tienden a descuidarse inicialmente, tienden a estar ocultos dentro de otros requisitos y son subjetivos, variables y situacionales. Otros requisitos también podrían mostrar estas características descriptivas. Sin embargo, la importancia de los requisitos arquitectónicamente significativos hizo que estas manifestaciones fueran únicas y desafiantes.
Es probable que un requisito que tenga un efecto amplio, apunte a puntos de equilibrio, sea estricto (restrictivo, limitante, no negociable), rompa suposiciones o sea difícil de lograr sea arquitectónicamente significativo.
Los indicadores de importancia arquitectónica que se han reportado en la literatura incluyen:
OpenUP [4] y Peter Eeles [5] analizan criterios adicionales de importancia arquitectónica en varios artículos y presentaciones. En la Conferencia Europea sobre Arquitectura de Software de 2020 se analizaron siete criterios de importancia arquitectónica: valor/riesgo empresarial, preocupación de las partes interesadas, nivel de calidad, dependencias externas, transversalidad, novedad y fuente de problemas en proyectos anteriores. Estos criterios se describen en una "Prueba de importancia arquitectónica".
Cuando un requisito especifica los atributos de calidad de un sistema de software , se refiere a sus características principales, le impone restricciones o define el entorno en el que se ejecutará, es probable que sea arquitectónicamente significativo.
Consulte la discusión sobre diseño versus arquitectura en arquitectura de software para obtener criterios adicionales de importancia arquitectónica.
Al igual que todos los requisitos no funcionales y los requisitos de atributos de calidad [6] , los requisitos arquitectónicamente significativos deben especificarse de manera SMART . Los escenarios de atributos de calidad [2] son una forma de lograr los criterios S (específicos) y M (medidos) en SMART. El Instituto de Ingeniería de Software recomienda talleres de atributos de calidad para este esfuerzo. [7] Se ha sugerido mantener el análisis y el diseño de la arquitectura livianos y flexibles; los árboles de atributos de calidad para ciertos géneros de aplicaciones y dominios tecnológicos pueden respaldar dichos enfoques. [8]
Es importante comunicar los requisitos arquitectónicamente significativos obtenidos, y cualquier otro artefacto arquitectónico, en una notación y un lenguaje que sean comprensibles para el público objetivo (en particular, las partes interesadas comerciales ). [9]
Los requisitos arquitectónicamente significativos se utilizan en el diseño de software para impulsar y justificar 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 de sistemas y procesos y aumenta el riesgo de hallazgos de auditoría. [10] En la literatura se encuentran consejos ejemplares sobre cómo abordar los atributos de calidad del sistema (incluidos los requisitos arquitectónicamente significativos). [11] [12]