15
Introducción al diseño Arquitectónico Autor: Fátima Cham Profesor: Héctor Molina

Diseno de la arquitectura

Embed Size (px)

Citation preview

Page 1: Diseno de la arquitectura

Introducción al diseño

Arquitectónico

Autor:Fátima ChamProfesor:

Héctor Molina

Page 2: Diseno de la arquitectura

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

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

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

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

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

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

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

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

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

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

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

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

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

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