Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Agenda
Introducción histórica
¿Qué es la arquitectura de software?
Arquitectura y sus efectos en los
Stakeholders
Estructuras arquitectónicas
y Vista lógica
y Vista de código
y Vista de desarrollo
y Vista de coincidencia
y Vista física
Escenarios
Agenda (Cont.)
Lenguajes de descripción arquitectónica
(ADLs)
Arquitectura como decisiones
prematuras de diseño
Estilos arquitectónicos
Arquitecturas para líneas de producción
Diseño y análisis de la arquitectura
Diseño basado en arquitectura
Agenda (Cont.)
Análisis basado en arquitectura
Analizando los Impactos en el negocio
de las decisiones arquitectónicas
Ingeniería en reversa de la arquitectura
El futuro
Introducción histórica
Se comenzó a usar desde 1990 debido
al tamaño y complejidad de los sistemas
que comenzaron a surgir.
Razones:
y Comunicación entre stakeholders
y Decisiones de diseño
y Abstracción transferible de un sistema
¿Qué es la arquitectura de
software
La arquitectura de software de un
programa o sistema de computación es
la(s) estructura(s) del sistema que
comprende los componentes del software,
las propiedades visibles de esos
componentes y las relaciones entre ellos.
Arquitectura y sus efectos en los
Stakeholders
La arquitectura afecta a todos los
relacionados con el proyecto, afecta a los
clientes, al gerentes, al equipo de
desarrollo, al equipo de pruebas, etc. Cada
stakeholder se preocupa por partes
especificas del sistema, y esto se ve
reflejado en la arquitectura del sistema. La
arquitectura provee un lenguaje mediante
el cual los stakeholders comprenden el
sistema y se comunican para tomar
decisiones importantes.
Estructuras arquitectónicas
Existen diferentes tipos de vistas que
permiten ver la arquitectura de un
sistema más en detalle
y Vista lógica
y Vista de código
y Vista de desarrollo
y Vista de coincidencia
y Vista física
Vista lógica
Abstracción de las funciones el sistema
y sus relaciones.
Vista de código
Esta vista es la que ve el
programador, los elementos que
tiene este tipo de vista son
clases, objetos, métodos y
funciones y su composición para
formar subsistemas, capas y
módulos
Vista de código (Cont.)
Vista de desarrollo
La vista de desarrollo la usan los
desarrolladores, pero es diferente
a la vista de código, esta es una
vista de la estructura del código
fuente, como un repositorio el
cual varios usuarios
(programadores y de
mantenimiento) crean, modifican
y administran
Vista de desarrollo (Cont.)
Vista de coincidencia
Esta vista permite deducir los procesos
e hilos que se van a crear y como se
van a comunicar y a compartir recursos.
Vista física
La vista física describe los
recursos de HW del sistema.
En sistemas pequeños es
trivial la vista física puesto
que un solo computador es el
que se encarga de manejar
todos los procesos
Vista física (Cont.)
Escenarios
Escenarios (Cont.)
Los escenarios se usan para:
y Entender y validar la arquitectura.
y Establecer cierta comunicación
entre la arquitectura y aquellos que
no tuvieron mucho que ver con su
creación.
y Unir las diferentes vistas.
y Entender los límites de la
arquitectura.
Lenguajes de descripción
arquitectónica (ADLs)
Debido a la gran importancia de la
descripción arquitectónica, y a su
uso como medio de comunicación
entre los diferentes stakeholders, se
han tratado de desarrollar diferentes
lenguajes para soportar esta
descripción, algunos han tenido
éxito, y otros han fracasado.
Decisiones tempranas de diseño
El diseño de la arquitectura describe
la forma en que el sistema está
compuesto. Esto hace que se creen
una serie de restricciones a la
implementación como la forma de
comunicación, y como se van a
asignar los recursos.
Estilos arquitectónicos
Describen una clase de arquitecturas,
o piezas significantes de una
arquitectura.
Es un paquete coherente de
decisiones de diseño.
Propone un método de
transformar un conjunto de
requerimientos del cliente en una
arquitectura para un sistema o
para una línea de producción, a
través de descomposiciones y
refinamientos.
Diseño basado en arquitectura
(Cont.)
Lista de
requerimientos.
Descomponer
diseño
arquitectónico.
Se satisfacen los
atributos de calidad
asociando estilos
arquitectónicos con
los requerimientos.
Diseño basado en arquitectura
(Cont.)