Marcos de Arquitectura de Software
C4ISR Architecture Framework es el marco de referencia arquitectónico promovido por el Departamento de Defensa de Estados Unidos (DoD). Algunos de los otros marcos listados en esta sección se inspiran en él, como es el caso de TOGAF. En la versión 2 de C4I, completada en diciembre de 1997, la definición de arquitectura reconocida es exactamente la misma que después se promulgaría como canónica en IEEE 1471. Las vistas arquitectónicas homologadas son la Operacional (que identifica relaciones y necesidades de información), la de Sistemas (que vincula capacidades y características a requerimientos operacionales) y la Técnica (que prescribe estándares y convenciones).
El marco de referencia arquitectónico de The Open Group (TOGAF) reconoce cuatro componentes principales, uno de los cuales es un framework de alto nivel que a su vez define cuatro vistas: Arquitectura de Negocios, Arquitectura de Datos/Información, Arquitectura de Aplicación y Arquitectura Tecnológica. The Open Group propone un modelo de descripción arquitectónica, Architecture Description Method (ADM) que se supone independiente de las técnicas de modelado, aunque en la versión 7 se propone Metis como herramienta.
En 1995 Philippe Kruchten propuso su célebre modelo “4+1”, vinculado al Rational Unified Process (RUP), que define cuatro vistas diferentes de la arquitectura de software:
- La vista lógica, que comprende las abstracciones fundamentales del sistema a partir del dominio de problemas.
- La vista de proceso: el conjunto de procesos de ejecución independiente a partir de las abstracciones anteriores.
- La vista física: un mapeado del software sobre el hardware.
- La vista de desarrollo: la organización estática de módulos en el entorno de desarrollo.
El quinto elemento considera todos los anteriores en el contexto de casos de uso [Kru95]. Lo que académicamente se define como AS concierne a las dos primeras vistas. El modelo 4+1 se percibe hoy como un intento se reformular una arquitectura estructural y descriptiva en términos de objeto y de UML. Con todo, las cuatro vistas de Kruchten forman parte del repertorio estándar de los practicantes de la disciplina.
Procesos y Metodologías
En los diferentes marcos, las vistas estáticas se corresponden con las perspectivas particulares de los diferentes participantes (stakeholders), mientras que las vistas dinámicas tienen que ver con etapas del proceso, ciclo de vida o metodología, caracterizadas como requerimiento, análisis, diseño (o construcción, o modelado), implementación, integración (prueba de conformidad, testing, evaluación).
La terminología, lo mismo que la articulación temporal del proceso o el ciclo, depende de cada marco.
Abstracción
El concepto de abstracción (que a veces se usa en el sentido del proceso de abstraer, otra para designar una entidad abstracta) ha sufrido también diversas formulaciones sintácticas, con un núcleo de significados común.
La abstracción consiste en extraer las propiedades esenciales, o identificar los aspectos importantes, o examinar selectivamente ciertos aspectos de un problema, posponiendo o ignorando los detalles menos sustanciales, distractivos o irrelevantes.
La idea de abstracción forma parte de lo que acaso sea la pieza conceptual más importante de la AS, el concepto de estilo; un estilo se identifica a grandes rasgos o, como se dice habitualmente, en un estilo “menos es más”.
Escenarios
Esta es una noción arquitectónica importante y se encuentra en la base de muchos de los métodos de diseño y desarrollo basados en arquitectura, como ALMA, SAAM y ATAM.
Los escenarios han sido básicamente técnicas que se implementan en la elicitación de los requerimientos, particularmente en relación a los operadores de sistemas. Típicamente, la técnica comienza instrumentando sesiones de brainstorming. También se han utilizado escenarios como método para comparar alternativas de diseño. Los escenarios describen una utilización anticipada o deseada del sistema, y típicamente se expresan en una frase; Kazman, Abowd, Bass y Clements proponen también llamarlos viñetas [KAB+96].
Campos de la Arquitectura de Software
Áreas de investigación más promisorias, enumeran las siguientes:
- Lenguajes de descripción de arquitecturas
- Fundamentos formales de la AS (bases matemáticas, caracterizaciones formales de propiedades extra-funcionales tales como mantenibilidad, teorías de la interconexión, etcétera)
- Técnicas de análisis arquitectónicas
- Métodos de desarrollo basados en arquitectura
- Recuperación y reutilización de arquitectura
- Codificación y guía arquitectónica
- Herramientas y ambientes de diseño arquitectónico.
- Estudios de casos