Академический Документы
Профессиональный Документы
Культура Документы
Estilos Arquitectnicos
Diseo de Software
Diseo de Software
En Ingeniera de Software tampoco es posible construir un sistema sin tener sus planos
- Los planos describen la arquitectura del software
Diseo de Software
Las relaciones son las conexiones entre componentes Las propiedades visibles son aquellos supuestos que se hacen sobre un elemento:
- Servicios que presta - Rendimiento - Tolerancia a fallas, etc.
Diseo de Software
Otras definiciones
- Un conjunto de elementos arquitecturales que tienen una forma particular Estos elementos se dividen en tres clases:
- elementos de procesamiento, - elementos de datos y - elementos de conexin
(Perry y Wolf, 1992) - Una coleccin de componentes computacionales en conjunto con una descripcin de las interacciones entre estos componentes, es decir, de los conectores (Garlan y Shaw, 1993)
Diseo de Software
Diseo arquitectnico Es el proceso de diseo inicial para identificar los subsistemas y establecer un marco de trabajo para el control y comunicacin de los subsistemas Su producto es la arquitectura software
Diseo de Software
Arquitectura de Software La arquitectura de un sistema de software define la(s) estructura(s) del sistema en trminos de:
- Componentes y - Conexiones entre estos componentes
Diseo de Software
Arquitectura de Software
Una arquitectura de software es una abstraccin de un sistema
- Establece como est compuesto el sistema y como sus componentes interactan - Suprime los detalles de sus elementos - Ejemplo: Arquitectura de una aplicacin web basada en componentes distribuidos
Presentation Layer Business Logic Layer Business Process Components Data Layer
Databases
10
Diseo de Software
Arquitectura de Software
La arquitectura de software es una nueva metfora del diseo de software que abarca metodologas de anlisis y de diseo
Anlisis Diseo
El concepto de arquitectura de software demanda la inclusin de las actividades de anlisis y diseo dentro de un marco de trabajo ms grande y ms coherente La integracin de metodologas y modelos es uno de los aspectos que distinguen las arquitecturas de software de una tcnica particular de anlisis y diseo
11
Diseo de Software
Arquitectura de Software
Un aspecto central del diseo de la arquitectura de una aplicacin es su descripcin El estndar IEEE 1471-2000 establece un modelo conceptual para la descripcin de arquitecturas de software La descripcin arquitectnica de una aplicacin se usa para:
- Hacer explicita la arquitectura del sistema en una etapa inicial, es decir se realiza un proceso de anlisis desde el inicio - Expresar la arquitectura de la aplicacin y su evolucin - Facilitar la comunicacin de esta arquitectura entre los interesados - Evaluar la arquitectura y compararla con otras - Facilitar la planificacin y ejecucin del desarrollo de la aplicacin - Una arquitectura se puede reutilizar si los requisitos son similares
12
Diseo de Software
Arquitectura de Software
El marco conceptual IEEE 1471-2000 para la descripcin de arquitecturas de software
Misin 1..* +cumple Ambie nte +habita_en +influye +tien e_una Aplicacin +tiene 1..* 1..* Intere sado (stakeholder) 1..* 1..* +tiene +es_importante_para Asunto 1..* +cu bre 1..* +participa_en +establece_mtodos_para 1..* 1..* 1..* Modelo +orien tado_a 1..* 1 +cumple_con Vista +consiste_de 1..* +identifica De s cripcin arquitectnica +selecciona Arquitectura +es_descrita_por 1 +prove e_una Justificacin
1..*
Punto de Vista
13
Diseo de Software
14
Diseo de Software
Mdulo
- Es un componente de un sistema que suministra uno o ms servicios a otros mdulos y utiliza los servicios suministrados por otros mdulos - Por lo general, no son un sistema independiente - Esta compuesto de componentes simples
15
Diseo de Software
Arquitectura de Software
Una arquitectura de software puede ser modelada y descrita desde diferentes puntos de vista Cada punto de vista captura uno o ms aspectos (asuntos) de la arquitectura - Esta representacin se denomina vista
Vista funcional Vista estructural
16
Diseo de Software
Arquitectura de Software
Una vista es una descripcin parcial del sistema relacionada con un conjunto de aspectos o asuntos que se observan desde cierto punto de vista Una vista contiene, al menos, tres elementos:
- Propsito Son los aspectos de la vista que se pretenden representar - Alcance Establece los lmites de lo que est en la vista y lo que est fuera de ella - Elementos Son los elementos arquitectnicos que componen la vista y sus interrelaciones
17
Diseo de Software
Vista Estructural:
muestra los componentes estructurales (paquetes y clases) del sistema
Vista Estructural
(Diagramas de clase y de objetos)
Vista de Implementacin
(Diagramas de componentes)
Vista de la Implementacin
Describe los componentes implementables del sistema
Vista de Despliegue
(Diagramas de despliegue)
18
Diseo de Software
Estilos arquitectnicos
Cmo disean los ingenieros civiles un puente?
- Una vez establecidos los requisitos de la obra,
Determinan cul es el estilo arquitectnico que mejor satisface esos requisitos Puente colgante, de vigas voladas, de pilotes, etc. Luego usan el estilo seleccionado para disear la estructura del puente
19
Diseo de Software
Estilos arquitectnicos
Los ingenieros de software, tambin, emplean estilos arquitectnicos Un estilo arquitectnico se define como:
- Un patrn o modelo arquitectnico que es comn a una familia de arquitecturas de sistemas de software - El estilo establece un vocabulario comn de componentes y conectores - El estilo satisface un conjunto de requisitos que es comn a la familia de sistemas que l representa
20
Diseo de Software
Diseo arquitectnico
La primera fase del diseo es la descomposicin del sistema en subsistemas que interactan Estos se describen utilizando diagramas de bloques donde cada bloque representa un subsistema Se especifica este modelo utilizando estilos arquitectnicos para compartir datos, distribuir subsistemas y comunicarse
Sistema de Visin Controlador de brazo Controlador de Asidero
21
Diseo de Software
Componentes independientes
Procesos comunicantes Sistemas cliente-servidor Sistemas guiados por eventos
Llamada y retorno
Programa principal y subrutinas Orientado a Objetos Capas
Mquinas virtuales
Intrpretes Sistemas basados en reglas
Basado en Niveles
Tres niveles N-niveles
22
Diseo de Software
Tuberas y Filtros
Principales estilos:
- Secuencial por lotes (batch) - Tuberas y Filtros (Pipe and filter)
23
Diseo de Software
Tuberas y Filtros
24
25
Diseo de Software
Estilos arquitectnicos basados en el flujo de datos Este estilo arquitectnico se debe usar cuando:
Se puede especificar la secuencia de un nmero conocido de pasos No se requiere esperar la respuesta asincrnica de cada paso Se busca que todos los componentes situados corriente abajo sean capaces de inspeccionar y actuar sobre los datos que vienen de corriente arriba (pero no viceversa)
25
Diseo de Software
26
Diseo de Software
27
Diseo de Software
28
Diseo de Software
29
Diseo de Software
Componente 1
Componente 2
Componente 3
Componente 4
Manejador de eventos
30
Diseo de Software
31
Diseo de Software
Restricciones
- Quien anuncia el evento no conoce a qu componentes afecta ste - No se pueden hacer asunciones (supuestos) acerca del orden de procesamiento
32
Diseo de Software
Diseo de Software
Estilos arquitectnicos componentes independientes Desventajas del estilo guiado por eventos
- Prdida de control en el comportamiento del sistema - Problemas en el intercambio de datos - Es difcil asegurar la correccin global del sistema - Proceso sin garantas Alguien registrado? Orden de ejecucin?
34
Diseo de Software
Cliente
Navegador Web
Internet Intranet
URL
Archivo en HTML XML
Servidor Web
Objeto Web
35
Diseo de Software
Cliente
Navegador Web
Internet Intranet
URL
Archivo en HTML XML
Servidor Web
Objeto Web
36
Diseo de Software
37
Diseo de Software
Cliente i
38
Diseo de Software
Cliente i
39
Diseo de Software
Diseo de Software
Las actividades de seguridad y control deben estar centralizadas Es difcil distribuir el depsito en varias mquinas
Analizador
Generador
de informes1
41
Diseo de Software
42
Diseo de Software
43
Diseo de Software
Diseo de Software
45
Diseo de Software
Subrutina 1
Subrutina 2
Subrutina n
Subrutina 2.1
Subrutina 2.2
46
Diseo de Software
Diagrama de colaboracin
:ObjetoTipo3
47
Diseo de Software
Diseo de Software
49
Diseo de Software
50
Diseo de Software
51
Diseo de Software
(Wikipedia, 2007)
52
Diseo de Software
Databases
- Capa de datos
Consta de un servidor de bases de datos que administra las bases de datos y proporciona los datos que requiere la capa de lgica del negocio
53
Diseo de Software
NIVEL DELIBERATIVO
rdenes de ejecucin
Eventos
NIVEL AUTOMTICO
Sensores
Actuadores
54
Diseo de Software
Actividades prcticas
Objetivo de la actividad:
- Seleccionar uno o ms estilos arquitectnicos que sean el o los ms apropiados para la aplicacin que su grupo disear
Duracin:
- 30 minutos
Pasos a seguir:
- Analicen los requisitos funcionales y no-funcionales de su aplicacin Utilice el Documento de Requisitos o los modelos funcional, estructural y dinmico elaborados en la IR (Requisitos de Software) - Identifiquen aquellos estilos que ustedes consideren que podran ser aplicados - Seleccionen uno o ms de estos estilos y justifiquen su decisin Fundamentos del Diseo de Software - Arquitecturas de Software
56