Es la Estructura o estructuras de sistemas,
lo que comprende a los componentes del
software, sus propiedades externas
visibles y las relaciones entre ellos.
Durante la Gestión del Sistema:
Documento sobre el poder discutir,
Aumentar la precisión en la
estimación del coste y tiempo,
Ayuda a gestionar la Complejidad.
Durante el Desarrollo: Es una excelente visita
general del sistema, Proporciona la relación de
puntos de diseños a tratar, Facilita el desarrollo
simultáneo de componentes, Permite detectar
errores de diseños en fases tempranas.
Diseño
Estructura; Descripción de
subsistemas como
composición de componentes.
Comportamiento: Descripción de
la comunicación entre
componentes.
Protocolos de Comunicación, sincronización, y
acceso a datos, Distribución física, Tecnología de
comunicación, Tecnología de desarrollo de
sistemas, Aspectos de seguridad.
¿Que diseño Incluye?: Suele incluir varias
vistas, Una vista representa un aspecto
parcial de una arquitectura software.
¿Cuándo se diseña la
arquitectura?: Diseño
Detallado, Diseño
Arquitectónico, Analizar el
problema
¿Que Aspectos se tiene en
cuenta para el diseño? Contexto
Aspectos del Negocio: Amortizar
la infraestructura, Mantener
bajos costes de instalación,
Utilizar personal disponible.
Aspectos de la estructura
organizacional: Promoción de los
intereses creados, ej. Mantener una
BD existente, Mantener el método
estándar de hacer negocio.
Tendencias actuales: Desplegar la aplicación
en la nube, Interfaz para aplicaciones móviles
etc.
Tecnología Disponible: Sist. Centralizados vs
Distribuidos, Desarrollo desde 0 vs
existentes, Lenguajes de Programación,
Plataformas Core, Herramientas.
¿Qué se tiene en
cuenta para el
diseño? Arquitecto
Arquitecto de Software
Líder Técnico, arquitecto jefe, arquitecto de aplicaciones,
arquitecto de infraestructura, arquitecto de datos. Tiene
conocimientos tecnológicos y habilidades de programación,
Habilidades de diseño, consciente de políticas
organizacionales, buen comunicador, Toma de decisiones,
es un negociador.
¿Cómo se modela?
Mediante
Lenguajes de Programación (ADLs): Lenguajes
textuales formales ideados para describir una
arquitectura de software en términos de
componentes y conectores.
Diagramas UML:
Descripción de aspectos estructurales
(estáticos): Diagrama de componentes,
diagrama de despliegue, etc.
Descripción de comportamiento (dinámico): Diagrama
de actividad, diagrama de secuencia etc.
Diagramas de Alto Nivel: Describen la arquitectura
con una alto nivel de abstracción. Suele ser el primer
paso antes de un diseño más detallado (ej. Diagrama
de Componentes)