2. Es la primera etapa técnica del
proceso de Ingeniería del
Software, consiste en producir un la arquitectura nos identifica
modelo o representación técnica los elementos mas importantes
del software que se va a de un sistema así como sus
Diseño de la relaciones. Es decir nos da una
desarrollar
arquitectura de visión global del sistema
software
•El diseño de datos nos facilita la
representación de los
Como
componentes de datos de la
se
arquitectura.
Por que es inicia?
•El diseño arquitectónico se
importante centra en la representación de la
estructura de los componentes
del software, sus propiedades e
interacciones. El diseño arquitectónico
comienza con el diseño de datos
•Facilitan la comunicación entre y después procede a la
todas las partes interesadas en el derivación de una o mas
desarrollo de un sistema basado en representaciones de la
computadora. estructura arquitectónica del
•Destaca decisiones tempranas de sistema.
diseño que tendrán un profundo Estilos Arquitectónicos
impacto en todo el trabajo de •Arquitecturas centradas de 3 variables
ingeniería del software. datos. principales
•Constituye un modelo •Arquitecturas de flujo de datos.
relativamente pequeño e •Arquitecturas de llamada y
intelectualmente comprensible de retorno.
cómo está estructurado el sistema •Arquitecturas orientadas a •Tiempo.
y de cómo trabajan juntos sus objetos. •satisfacción del cliente
componentes •Arquitecturas estratificadas •costo de los desarrollos.
3. Estilos Arquitectónicos
Sistemas de flujo de datos:
Un estilo arquitectónico define una
familia de sistemas de
• Tubos y Filtros
software en términos de su organización •Procesamiento por lotes
estructural. Un
estilo arquitectónico representa los
Sistemas basados en Programa principal y
componentes y las subrutinas
relaciones entre ellos con las
restricciones de su aplicación
llamada y retorno:
y las asociaciones y reglas de diseño para • Orientados a objetos
su construcción.
Shaw y Garlan (Shaw y Garlan, 1996)
•Organizados en capas
precisan además, Sistemas de componentes Comunicación
que un estilo arquitectónico define un
vocabulario de
entre procesos
componentes y tipos de conectores. independientes
•Cliente/servidor
•Basados en eventos
4. Sistema de flujo de datos
•El sistema se percibe como
una sucesión de
Es un sistema grafico
transformaciones que sufre
lógico del plan de trabajo
una serie de datos de que se ejecutara para la
entrada a través del solución de un
sistema. determinado problema.
•Los datos ingresan al Esta arquitectura se aplica A través de él, se
sistema y fluyen a través de cuando los datos de planifica la solución del
las componentes una a una entrada son problema independiente
transformados a través de del lenguaje de
hasta que se asignan a un
una serie de componentes computación a usar. De
destino final: salida o esta manera se separa
almacenamiento. computacionales o
manipulativos en los datos loas instrucción es un
•Son típicos casos de de salida. lenguaje determinado
arquitecturas que con todas las reglas.
promueven la reusabilidad
y la modificabilidad.
•Existen dos subestilos:
•secuencial por lotes
•tubos y filtros
5. Arquitectura de Tubos y Filtros
•Enfatiza la
•Filtros y Tuberías (Pipes & Filters) transformación
Descripción incremental de los datos
•Cada componente tiene un conjunto de entradas y un conjunto de a través de las sucesivas
salidas. componentes.
•Un componente lee entradas y las transforma en salidas •Cada componente (filtro)
Restricciones: es un traductor que
•Los filtros deben ser independientes. •procesa los datos
No deben compartir estado con otros filtros. de entrada
•Los filtros realizan la labor independientemente del flujo de entrada. •usa poca
Especializaciones del estilo información de
•Pipelines contexto
•Bounded pipes •no retiene
•Typed pipes información de
estado
Traducir al inglés Escribir inglés
Leer
Traducir al chino Escribir chino
6. Ventajas
• Permite entender el sistema global en términos de la combinación de
componentes
• Soporta de buena manera la reutilización.
Los filtros son independientes de sus vecinos
• Facilidad de Mantenimiento y mejora
• Facilidad de diagnóstico (rendimiento, deadlocks)
• Soportan la ejecución concurrente
Desventajas
• No aconsejable para cuando se necesita interactividad
• Problemas de rendimiento ya que los datos
• se transmiten en forma completa entre
• filtros
7. Procesamiento por lotes
•Los pasos de procesamiento o
componentes son programas
independientes y se supone que
cada paso se ejecuta
completamente antes de seguir al
siguiente.
•Los pasos son programas
independientes, y corren en una
secuencia predefinida.
•Aplicaciones típicas:
Procesamiento de datos clásica
Desarrollo de programas
8. Como funciona el sistema de flujo
de datos
Se representa por arcos
dirigidos, en donde la
flecha indica la
dirección de los datos
Debe tener un nombre o
rotulo que los
identifique
9. Sistemas basados en llamado y
retorno
•Este estilo arquitectónico permite
al diseñador del software
(arquitecto del sistema) construir
una estructura de programa
relativamente fácil de modificar y
ajustar a escala.
•Existen dos sub-estilos dentro de
esta categoría:
–arquitecturas de programa
principal.
–arquitecturas de llamada de Persigue obtener cualidades de Escalabilidad y
procedimiento remoto. modificabilidad.
Este estilo a dominado en grandes sistemas de
software
Tiene tres variaciones:
•Capas
•O.O
•Programa principal y subrutinas
10. Capas
• Organización Jerárquica
• Cada capa provee servicios a sus capas vecinas
• Los conectores son definidos por los protocolos que determinan como
interactúan las capas
• Restricciones topológicas incluyen limitación de interacciones a capas
adyacentes
• Cada capa sucesiva es construida basada en su antecesor
• Ej: Modelo OSI, Sistema X-Windows , etc
Aplicabilidad Invariantes/ Restricciones
Componentes
Mecanismos de
interacción entre
Aplicación componentes
11. Organización de capas
Nivel n: aplicaciones de usuario
Retorno
Llamados
Nivel n: aplicaciones de usuario
Nivel n: aplicaciones de usuario
12. Sistema de componentes
independientes
Consiste de un número de objetos o
procesos independientes que se
comunican a través de mensajes.
•La modificabilidad se logra por el
desacoplamiento en varias porciones
de procesamiento.
•Solo se envían mensajes entre los
objetos, sin tener control directamente.
13. Sistema basados en eventos
• Los componentes interactúan por medio
de invocaciones explícitas de
procedimientos o funciones
• Los componentes exponen datos que son
compartidos con su entorno
• Los componentes pueden registrarse a una
clase de datos de interés
• Existe un manejador de mensajes que
coordina la comunicación entre
componentes, invocando al componente
cuando un mensaje que llega es para ese
determinado componente.
• Existen algunas técnicas de integración
alternativas,
• Componentes:
objetos y procesos
• Conexiones: Encadenamiento de
eventos-procedimientos
14. Cliente/ servidor
Modelo de Sistemas Distribuido, el Conjunto de servidores “stand-
cual muestra como los datos y alone”, los cuales proporcionan
procesamiento están distribuidos servicios específicos como
entre un rango de componentes. impresión, manejo de datos, etc.
Redes que permiten que los clientes Conjunto de clientes que llaman a
acceden a los servidores estos servicios.
Ventajas
Desventajas
La Distribución de datos es directa.
El modelo no comparte datos con los diferentes
Permite el uso efectivo de sistemas de
subsistemas empleados en la organización.
red.
El intercambio de datos puede ser ineficiente.
Puede requerir hardware barato.
Administración redundante en cada servidor.
Es fácil añadir nuevos servidores o
No existen registros centrales de nombres y
actualizar los existentes.
servicios -esto hace difícil encontrar los
servidores y servicios disponibles.
15. Notación para
Estilos Peer-
arquitectura
to-Peer
software
“UML” es 3 cosas:
Esta familia, también llamada de – Meta-modelo de sistemas de software
componentes independientes, enfatiza la • clases, subsistemas, componentes,
modificabilidad por medio de la nodos
separación de las diversas partes que
– Notación para describir cosas usando
intervienen en la computación. Consiste
por lo general en procesos independientes orientación a
o entidades que se comunican a través de objetos
mensajes. Cada entidad puede enviar – Mecanismo extensible para describir
mensajes a otras entidades, pero no cosas usando
controlarlas directamente. Los mensajes orientación a objetos
pueden ser enviados a componentes • Históricamente:
nominados o propalados mediante 1. Descripción de software ( pre-UML)
broadcast.
2. Ampliación a describir modelos de
análisis (UML pre-
OMG)
3. Generalización como mecanismo