Professional Documents
Culture Documents
Diseo de Software
Diseo de Software
civiles no pueden construir un puente sin planos describen la arquitectura de la obra - Cuales son los componentes del puente - Cmo ellos se conectan - Qu justifica la estructura utilizada
Los planos
La arquitectura define:
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
Las relaciones son las conexiones entre componentes Las propiedades visibles son aquellos supuestos que se
05/02/2013
Diseo de Software
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
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
(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 de Software
Arquitectura de Software
Arquitectura de Software
Una arquitectura de software es una abstraccin de un
La arquitectura de un sistema de software define la(s) estructura(s) del sistema en trminos de:
- Componentes y - Conexiones entre estos componentes
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
Arquitectura
Databases
10
05/02/2013
Diseo de Software
Diseo de Software
Arquitectura de Software
La arquitectura de software es una nueva metfora del diseo
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
aspectos que distinguen las arquitecturas de software de una tcnica particular de anlisis y diseo
11
12
Diseo de Software
Diseo de Software
Arquitectura de Software
El marco conceptual IEEE 1471-2000 para la descripcin de
Arquitectura de Software
arquitecturas de software
Misin 1..* +cumple +habita_en Ambie nte +influye Aplicacin +tiene 1..* Intere sado (stakeholder) 1..* +tiene +es_importante_para Asunto 1..* +cu bre +orien tado_a Punto de 1..* Vista 1 +cumple_con Vista 1..* +participa_en +establece_mtodos_para 1..* 1..* Modelo 1..* +consiste_de 1..* 1..* 1..* +identifica +tien e_una Arquite ctura +es_descrita_por 1 De s cri pcin arquitectnica +prove e_una Justificacin
+selecciona
1..*
13
14
05/02/2013
Diseo de Software
Diseo de Software
Arquitectura de Software
Una arquitectura de software puede ser modelada y descrita
Subsistema
- Es un sistema por si mismo, sus operaciones no dependen de servicios suministrados por otros subsistemas. Tiene interfaces bien definidas que las utiliza para comunicarse con otros subsistemas - Un subsistema esta compuesto de Mdulos
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
16
Diseo de Software
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
muestra la funcionalidad del sistema muestra los componentes estructurales (paquetes y clases) del sistema Describe los aspectos dinmicos del sistema Describe los componentes implementables del sistema Indica las relaciones entre los componentes del sistema y el hardware donde ellos se instalarn Vista Estructural
(Diagramas de clase y de objetos)
Vista Estructural:
Vista de Implementacin
(Diagramas de componentes)
Vista de Uso
(Casos de uso)
Vista de la Implementacin
Vista de Comportamiento
(Diagramas de interaccin, de estado, de actividades)
Vista de Despliegue
(Diagramas de despliegue )
17
18
05/02/2013
Diseo de Software
Diseo de Software
Estilos arquitectnicos
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
19
20
Diseo de Software
Diseo de Software
Diseo arquitectnico
La primera fase del diseo es la descomposicin del sistema
del depsito)
Bases de datos Pizarrones
independientes
Procesos comunicantes Sistemas cliente-servidor Sistemas guiados por eventos
Llamada y retorno Programa principal y subrutinas Orientado a Objetos Capas Basado en Niveles Tres niveles N-niveles
21
22
05/02/2013
Diseo de Software
Diseo de Software
Valida
Ordena
Imprime
listado
Tuberas y Filtros
Tuberas y Filtros
23
24
Diseo de Software
25
Diseo de Software
Ventajas
- Son simples de entender e implementar - Es posible implementar procesos complejos - Es fcil de envolver (wrap) en una transaccin atmica - Los filtros se pueden empaquetar y hacerlos paralelos y distribuidos
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
26
05/02/2013
Diseo de Software
Diseo de Software
Desventajas
- Pueden resultar demasiado simplistas para servicios que podran ramificar la ejecucin de la lgica del negocio de formas complicadas. - Agregar un paso suplementario afecta el rendimiento de cada ejecucin de la tubera - No es apto para manejar situaciones interactivas, sobre todo cuando se requieren actualizaciones incrementales de la representacin en pantalla - La independencia de los filtros implica que es muy posible la duplicacin de funciones de preparacin que son efectuadas por otros filtros (correccin de un objeto de fecha)
desacoplar
Principales estilos: - Procesos comunicantes Constan de un conjunto de procesos independientes que se comunican
entre s y que pueden ejecutarse en paralelo
- Sistemas guiados por eventos Estilo de difusin (broadcast) Estilo guiado por interrupciones - Sistemas cliente-servidor (Sistemas de control)
27
28
Diseo de Software
Diseo de Software
- Estn basados en la invocacin implcita, sin llamada directa - En lugar de invocaciones de procedimientos explcitas o directas: un componente anuncia uno o ms eventos y otros componentes registran el inters en un evento asociando un procedimiento a dicho evento - La ocurrencia de un evento causa la invocacin implcita de procedimientos en otros mdulos - til en broadcasting
Componente 1
Componente 2
Componente 3
Componente 4
Manejador de eventos
29
30
05/02/2013
Diseo de Software
Diseo de Software
cuando:
- Se desea manejar independientemente y de forma aislada diversas implementaciones de una funcin especfica - Las respuestas de una implementacin no afectan la forma en que trabajan otras implementaciones - Todas las implementaciones son de escritura solamente o de dispararse y olvidar Restricciones - Quien anuncia el evento no conoce a qu componentes afecta ste - No se pueden hacer asunciones (supuestos) acerca del orden de procesamiento
31
32
Diseo de Software
Diseo de Software
34
05/02/2013
Diseo de Software
Diseo de Software
Estilo cliente-servidor
- Es un modelo de sistemas distribuidos que muestra como los datos y el procesamiento se distribuye a lo largo de varios procesadores - Sus principales componentes son: Un conjunto de servidores independientes que ofrecen servicios a otros subsistema (servidores de impresoras, de archivos, etc.) Un conjunto de clientes que llaman a los servicios Una red que permite a los clientes acceder a los servicios
Cliente
Navegador Web
URL
Internet Intranet
URL
Archivo en HTML XML
Servidor Web
Cliente
Navegador Web
Objeto Web
Internet Intranet
Servidor Web
Objeto Web
35
36
Diseo de Software
Diseo de Software
Ventajas
- Es una arquitectura distribuida - Es fcil agregar un nuevo servicio - Se puede modificar un servicio sin afectar al sistema
Conocido tambin como el modelo de depsito En este modelo los subsistema comparten datos a fin de trabajar de forma conjunta En este estilo arquitectnico hay dos componentes principales: una estructura de datos que representa el estado actual del sistema y una coleccin de componentes independientes que operan sobre ella
Cliente i
37
38
05/02/2013
Diseo de Software
Diseo de Software
- Los datos comunes o de estado se mantienen en una base de datos (BD) - La BD es compartida por un conjunto de subsistemas (clientes) - Los subsistemas determinan cuando acceder a la BD - La BD debe satisfacer las necesidades de datos de cada uno de los subsistemas controlar el acceso concurrente de los subsistemas
39
40
Diseo de Software
Diseo de Software
datos no necesitan saber como son utilizados esos datos por otros subsistemas
Las actividades de seguridad y
en varias mquinas
41
42
10
05/02/2013
Diseo de Software
Diseo de Software
recientes de inteligencia artificial distribuida, cooperativa, en robtica, en modelos multi-agentes, en programacin evolutiva, en gramticas complejas
Se puede usar en aplicaciones
de optimizacin y bsqueda en programacin gentica y evolutiva que de otro modo no encontrara un estilo en el cual encuadrarse
cooperacin resulta una solucin adecuada, sta aparece en la pizarra como paso final
43
44
Diseo de Software
Diseo de Software
escala
Se caracterizan por definir un modelo de activacin que
Subrutina 2
Subrutina n
Subrutina 2.1
Subrutina 2.2
45
46
11
05/02/2013
Diseo de Software
Diseo de Software
mquinas abstractas
Organizacin jerrquica donde
cada capa proporciona servicios a la capa inmediatamente superior y se sirve de las prestaciones que le ofrece la capa inmediatamente inferior
Las capas suelen ser entidades
Diagrama de colaboracin
:ObjetoTipo3
48
Diseo de Software
Diseo de Software
El ejemplo ms caracterstico es el modelo OSI con los siete niveles (nivel fsico, datos, red, transporte, sesin, presentacin y aplicacin) incremental del sistema
modificable
49
50
12
05/02/2013
Diseo de Software
Diseo de Software
(Wikipedia, 2007)
51
52
Diseo de Software
Diseo de Software
NIVEL DELIBERATIVO
Databases
rdenes de ejecucin
XML Data Stores
Eventos
- 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
NIVEL AUTOMTICO
Sensores
Actuadores
53
54
13
05/02/2013
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
14