diseno de la arquitectura
TRANSCRIPT
![Page 1: Diseno de la arquitectura](https://reader035.vdocumento.com/reader035/viewer/2022081821/5575155ad8b42a2a528b4d7b/html5/thumbnails/1.jpg)
Introducción al diseño
Arquitectónico
Autor:Fátima ChamProfesor:
Héctor Molina
![Page 2: Diseno de la arquitectura](https://reader035.vdocumento.com/reader035/viewer/2022081821/5575155ad8b42a2a528b4d7b/html5/thumbnails/2.jpg)
Es la primera etapa técnica del proceso de Ingeniería del
Software, consiste en producir un modelo o representación técnica
del software que se va a desarrollar
la arquitectura nos identifica los elementos mas importantes
de un sistema así como sus relaciones. Es decir nos da una
visión global del sistema
•El diseño de datos nos facilita la representación de los
componentes de datos de la arquitectura.
• El diseño arquitectónico se centra en la representación de la estructura de los componentes del software, sus propiedades e
interacciones.
Como se
inicia?
El diseño arquitectónico comienza con el diseño de datos
y después procede a la derivación de una o mas representaciones de la
estructura arquitectónica del sistema.
Estilos Arquitectónicos• Arquitecturas centradas de
datos.•Arquitecturas de flujo de datos.• Arquitecturas de llamada y
retorno. • Arquitecturas orientadas a
objetos.• Arquitecturas estratificadas
3 variables principales
• Tiempo.• satisfacción del cliente • costo de los desarrollos.
• Facilitan la comunicación entre todas las partes interesadas en el
desarrollo de un sistema basado en computadora.
• Destaca decisiones tempranas de diseño que tendrán un profundo
impacto en todo el trabajo de ingeniería del software.
• Constituye un modelo relativamente pequeño e
intelectualmente comprensible de cómo está estructurado el sistema
y de cómo trabajan juntos sus componentes
Por que es importante
Diseño de la arquitectura de
software
![Page 3: Diseno de la arquitectura](https://reader035.vdocumento.com/reader035/viewer/2022081821/5575155ad8b42a2a528b4d7b/html5/thumbnails/3.jpg)
Estilos Arquitectónicos
Un estilo arquitectónico define una familia de sistemas de
software en términos de su organización estructural. Un
estilo arquitectónico representa los componentes y las
relaciones entre ellos con las restricciones de su aplicación
y las asociaciones y reglas de diseño para su construcción.
Shaw y Garlan (Shaw y Garlan, 1996) precisan además,
que un estilo arquitectónico define un vocabulario de
componentes y tipos de conectores.
Sistemas de flujo de datos: • Tubos y Filtros•Procesamiento por lotesSistemas basados en Programa principal y subrutinasllamada y retorno:• Orientados a objetos•Organizados en capasSistemas de componentes Comunicación entre procesosindependientes •Cliente/servidor•Basados en eventos
![Page 4: Diseno de la arquitectura](https://reader035.vdocumento.com/reader035/viewer/2022081821/5575155ad8b42a2a528b4d7b/html5/thumbnails/4.jpg)
Sistema de flujo de datos
Esta arquitectura se aplica cuando los datos de
entrada son transformados a través de una serie de componentes
computacionales o manipulativos en los
datos de salida.
Es un sistema grafico lógico del plan de
trabajo que se ejecutara para la solución de un
determinado problema. A través de él, se
planifica la solución del problema independiente
del lenguaje de computación a usar. De esta manera se separa loas instrucción es un lenguaje determinado con todas las reglas.
•El sistema se percibe como una sucesión de
transformaciones que sufre una serie de datos de entrada a través del
sistema.• Los datos ingresan al
sistema y fluyen a través de las componentes una a una hasta que se asignan a un
destino final: salida o almacenamiento.
• Son típicos casos de arquitecturas que
promueven la reusabilidad y la modificabilidad.
• Existen dos subestilos:• secuencial por lotes• tubos y filtros
![Page 5: Diseno de la arquitectura](https://reader035.vdocumento.com/reader035/viewer/2022081821/5575155ad8b42a2a528b4d7b/html5/thumbnails/5.jpg)
Arquitectura de Tubos y Filtros
Leer
Traducir al inglés Escribir inglés
Traducir al chino Escribir chino
•Filtros y Tuberías (Pipes & Filters) Descripción •Cada componente tiene un conjunto de entradas y un conjunto de salidas. •Un componente lee entradas y las transforma en salidas Restricciones: •Los filtros deben ser independientes.
No deben compartir estado con otros filtros. •Los filtros realizan la labor independientemente del flujo de entrada.
Especializaciones del estilo •Pipelines •Bounded pipes •Typed pipes
•Enfatiza la transformación incremental de los datos a través de las sucesivas componentes.•Cada componente (filtro) es un traductor que • procesa los datos de
entrada • usa poca
información de contexto
• no retiene información de estado
![Page 6: Diseno de la arquitectura](https://reader035.vdocumento.com/reader035/viewer/2022081821/5575155ad8b42a2a528b4d7b/html5/thumbnails/6.jpg)
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
![Page 7: Diseno de la arquitectura](https://reader035.vdocumento.com/reader035/viewer/2022081821/5575155ad8b42a2a528b4d7b/html5/thumbnails/7.jpg)
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ásicaDesarrollo de programas
![Page 8: Diseno de la arquitectura](https://reader035.vdocumento.com/reader035/viewer/2022081821/5575155ad8b42a2a528b4d7b/html5/thumbnails/8.jpg)
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
![Page 9: Diseno de la arquitectura](https://reader035.vdocumento.com/reader035/viewer/2022081821/5575155ad8b42a2a528b4d7b/html5/thumbnails/9.jpg)
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 procedimiento remoto.
Persigue obtener cualidades de Escalabilidad y modificabilidad.
Este estilo a dominado en grandes sistemas de softwareTiene tres variaciones:•Capas•O.O•Programa principal y subrutinas
![Page 10: Diseno de la arquitectura](https://reader035.vdocumento.com/reader035/viewer/2022081821/5575155ad8b42a2a528b4d7b/html5/thumbnails/10.jpg)
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
Mecanismos de interacción entre
componentes
ComponentesInvariantes/ Restricciones
Aplicación
![Page 11: Diseno de la arquitectura](https://reader035.vdocumento.com/reader035/viewer/2022081821/5575155ad8b42a2a528b4d7b/html5/thumbnails/11.jpg)
Organización de capasNivel n: aplicaciones de usuario
Nivel n: aplicaciones de usuario
Nivel n: aplicaciones de usuario
Llam
ados
Reto
rno
![Page 12: Diseno de la arquitectura](https://reader035.vdocumento.com/reader035/viewer/2022081821/5575155ad8b42a2a528b4d7b/html5/thumbnails/12.jpg)
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.
![Page 13: Diseno de la arquitectura](https://reader035.vdocumento.com/reader035/viewer/2022081821/5575155ad8b42a2a528b4d7b/html5/thumbnails/13.jpg)
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
![Page 14: Diseno de la arquitectura](https://reader035.vdocumento.com/reader035/viewer/2022081821/5575155ad8b42a2a528b4d7b/html5/thumbnails/14.jpg)
Cliente/ servidor
Conjunto de clientes que llaman a estos servicios.
Redes que permiten que los clientes acceden a los servidores
Conjunto de servidores “stand-alone”, los cuales proporcionan servicios específicos como impresión, manejo de datos, etc.
Modelo de Sistemas Distribuido, el cual muestra como los datos y procesamiento están distribuidos entre un rango de componentes.
VentajasLa Distribución de datos es directa.Permite el uso efectivo de sistemas de red.Puede requerir hardware barato. Es fácil añadir nuevos servidores o actualizar los existentes.
DesventajasEl modelo no comparte datos con los diferentes subsistemas empleados en la organización. El intercambio de datos puede ser ineficiente.Administración redundante en cada servidor.No existen registros centrales de nombres y servicios -esto hace difícil encontrar los servidores y servicios disponibles.
![Page 15: Diseno de la arquitectura](https://reader035.vdocumento.com/reader035/viewer/2022081821/5575155ad8b42a2a528b4d7b/html5/thumbnails/15.jpg)
Estilos Peer-to-
Peer
Esta familia, también llamada de componentes independientes, enfatiza lamodificabilidad por medio de la separación de las diversas partes que intervienen en la computación. Consiste por lo general en procesos independientes o entidades que se comunican a través de mensajes. Cada entidad puede enviar mensajes a otras entidades, pero no controlarlas directamente. Los mensajes pueden ser enviados a componentes nominados o propalados mediante broadcast.
Notación para arquitectura
software “UML” es 3 cosas:– Meta-modelo de sistemas de software• clases, subsistemas, componentes, nodos– Notación para describir cosas usando orientación aobjetos– Mecanismo extensible para describir cosas usandoorientación a objetos• Históricamente:1. Descripción de software ( pre-UML)2. Ampliación a describir modelos de análisis (UML pre-OMG)3. Generalización como mecanismo