Cómo definir la Arquitectura Software de un Sistema

Existen varias formas de definir/estudiar la Arquitectura Software de un Sistema.

Mi preferida es el estudio de la Arquitectura Software a partir de Vistas: cada una de estas Vistas da una visión del sistema, y en conjunto lo definen de forma completa, coherente y complementaria:

Las vistas que compondrían el modelo de arquitectura son las siguientes:

Vista Cometido
Vista de Casos de uso Contiene una selección de los Casos de Uso del Sistema relevantes para la arquitectura y que contengan funcionalidad básica del sistema. Se trata de un subconjunto del citado modelo.

Este subconjunto permite al arquitecto abstraer los detalles funcionales no importantes, y centrarse en los que afectan de forma directa a la arquitectura.

Descripción de Capas del Sistema Contiene el nombre, definición y contenido de cada capa y las interacciones entre capas.
Vista Estructural La función de esta vista es descubrir la descomposición general de la estructura del sistema en componentes (paquetes y subsistemas) y capas y, al mismo tiempo sus interdependencias.

Describe los componentes más importantes, su organización en paquetes y subsistemas y la organización de los paquetes y subsistemas en las capas definidas para el sistema.

Se describen los componentes por cada capa del sistema.

Vista de Procesos Definición de los procesos detectados y descripción de los mismos.
Vista de Despliegue Describe la configuración de la red(es) física(s) sobre la que el software será ejecutado en el entorno de implantación.

Se describen los nodos físicos (ordenadores, CPUs) y las conexiones entre ellos (bus, LAN, punto-a-punto).

Se describen los nodos y conexiones necesarias para el entorno de desarrollo.

Se describen los nodos y conexiones necesarias para el entorno de pruebas.

Vista de Datos Describe el sistema desde la perspectiva del almacenamiento de los datos de forma persistente. Se definen aspectos como: formas de almacenamiento, distribución de los datos, etc.
Vista de Implementación Descompone el sistema en módulos o subsistemas de alto nivel.

También describe, a alto nivel la definición de requisitos y secuencia de instrucciones para la instalación de los componentes de soporte construidos.

Deja un comentario