Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Arquitectura de
Software
Introducción a la Arquitectura de
Software
El buen juicio es usualmente el resultado de la experiencia.
Y la experiencia es frecuentemente el resultado del mal juicio. Pero
para aprender de la experiencia de otros, requiere de aquellos que
tienen la experiencia para compartir el conocimiento con los que los
siguen.
Barry Lepatner.
¿Qué es la Arquitectura de Software?
• Estructuras Modulares:
• ¿Cuál es la responsabilidad funcional principal asignada a cada módulo?
• ¿Qué otro elemento de software es permitido de utilizar por el módulo?
• ¿Qué otro software realmente se utiliza o depende del módulo?
• Qué módulos están enlazados por generalización o especialización?
• Estructuras Componentes-Conectores
• ¿Cuáles son los componentes más importantes y extensos y cómo interactúan en tiempo de ejecución?
• ¿Cuál es el ratio de intercambio de datos más extenso?
• ¿Qué partes del sistema están replicadas?
• ¿Cómo fluye la información en el sistema?
• ¿Qué partes del sistema podría correr en paralelo?
• ¿La estructura del Sistema cambia en tiempo de ejecución?
• Estructuras de Asignación
• ¿Qué procesador ejecuta cada parte del software?
• ¿En qué estructura de directorios se almacenan las fuentes en cada una de las etapas?
• ¿Cuál es la asignación de cada elemento de software a los equipos de desarrollo?
Estructuras Modulares
• Estructura de Descomposición
• Las unidades son módulos relacionados con otros mediante el conector «es-
submódulo-de», mostrando estas relaciones de forma recursiva hasta que se
presenten unidades lo suficientemente fáciles de comprender.
• Estructura de Usos
• Las unidades pueden ser módulos o incluso clases, estas se relacionan mediante
una unión de USO, forma especializada de dependencia.
• Estructura de Capas
• Los módulos son llamados capas, tratados como «máquinas virtuales» que
proveen un conjunto cohesivo de servicios.
• Estructura de Clases
• O de Generalización, las estructuras son llamadas clases, prima la relación de
herencia o instancia de.
• Modelo de Datos
• Describe la estructura de información estática en términos de entidades y
relaciones.
Estructuras de Componente-Conector
• Estructura de Servicio
• Las unidades son los servicios que interoperan entre ellos mediante
mecanismos de coordinación como puede ser SOA.
• Estructura Concurrente
• Este componente-conector, permite al Arquitecto poder identificar
oportunidades para hacer uso del paralelismo.
• Las unidades vienen a ser los componentes y los conectores vendrían a ser
los mecanismos de comunicación.
• La estructura concurrente es utilizada en la fase inicial del proceso de diseño
para identificar los requerimientos a gestionar y la problemática con la
ejecución concurrente.
Estructuras de Asignación
• Estructura de Despliegue
• Muestra cómo el software es asociado al hardware que lo procesará, así
como a las estructuras de comunicación.
• La relación vendría a tomarse como «asignado a».
• Estructura de Implementación
• Esta estructura muestra cómo los elementos de software son mapeados en
una estructura de ficheros en los procesos de desarrollo, integración y
configuración.
• Estructura de Asignación de Trabajo
• Esta estructura se encarga de la asignación de responsabilidades para la
implementación e integración de los módulos a los equipos que se harán
cargo.
Patrones de Arquitectura
Patrón de
Arquitectura
Arquitectura de Software
Cómo se comunican.
Atributos de calidad
Patrones de Arquitectura
Patrón de Arquitectura
Patrón de Diseño
• Alto Nivel, Alcance
• Alcance de bajo
universal.
nivel.
• Cómo se organizan y
• Cómo son
ensamblan los
CONSTRUIDOS los
componentes.
componentes.
Patrón Estratificado
• Sistemas empresariales
mayores.
• Integra diferentes
componentes Heterogéneos