Escolar Documentos
Profissional Documentos
Cultura Documentos
ndice
Introduccin Arquitectura del software Estilos y patrones arquitectnicos Artefactos reutilizables Principios de diseo Resumen Bibliografa
14/02/2013
ndice
Introduccin Arquitectura del software Estilos y patrones arquitectnicos Artefactos reutilizables Principios de diseo Resumen Bibliografa
Introduccin
Ejemplo de otro dominio
diseo de la arquitectura del El software es el equivalente del plano de una casa. ste ilustra la distribucin general de las habitaciones, su tamao, forma y relaciones entre ellas, as como las puertas y ventanas que permiten el movimiento entre los cuartos R. S. Pressman
14/02/2013
Introduccin
Ejemplo de otro dominio
Diseo de la arquitectura
Implementacin de la arquitectura
ndice
Introduccin Arquitectura del software Estilos y patrones arquitectnicos Artefactos reutilizables Principios de diseo Resumen Bibliografa
14/02/2013
Software architecture is the set of design decisions which, if made incorrectly, may cause your project to be cancelled.
E. Woods
14/02/2013
14/02/2013
El documento de diseo arquitectnico suele incluir varias vistas. Una vista representa un aspecto parcial de una arquitectura software. Cada participante en el desarrollo estar interesado en una o varias vistas.
Analizar el problema
Diseo arquitectura
Diseo detallado
Producto
Cliente
Empleado ListaEmpleados
14/02/2013
Requisitos Contexto
14/02/2013
14/02/2013
Los arquitectos desarrollan su modo de pensar a partir de experiencias anteriores. Experiencias anteriores buenas darn lugar a replicar esos diseos. Las experiencias anteriores malas se evitarn en el nuevo diseo.
14/02/2013
Diagramas UML
formales ideados para describir una arquitectura software en trminos de componentes y conectores.
10
14/02/2013
cmp
TransactionLogger
IdentityVerifier
component Logger
11
14/02/2013
12
14/02/2013
ndice
Introduccin Arquitectura del software Estilos y patrones arquitectnicos Artefactos reutilizables Principios de diseo Resumen Bibliografa
13
14/02/2013
Fuente de Conocimiento
El centro de la arquitectura es una pizarra y otros componentes tienen acceso a ella para actualizar, agregar, eliminar o consultar sus datos.
Fuente de conocimiento
Fuente de conocimiento
Facilita la integracin pues los componentes son independientes. Se puede pasar datos entre componentes a travs del almacn de datos.
Fuente de conocimiento
14
14/02/2013
Capa Capa
Se definen distintas capas en la aplicacin de manera que slo se comunican entre si las capas adyacentes. Favorece el bajo acoplamiento.
15
14/02/2013
Las arquitecturas orientadas a servicios (SOA) son un estilo arquitectnico basado fundamentalmente en el uso de servicios web.
BPEL
WSDL
WSCoordination
Web Services
WS-Reliable Messaging
WSTransaction WS-Security
WS-Policy
16
14/02/2013
ndice
Introduccin Arquitectura del software Estilos y patrones arquitectnicos Artefactos reutilizables Principios de diseo Resumen Bibliografa
Artefactos reutilizables
17
14/02/2013
Artefactos reutilizables
Componentes
Un componente es una unidad modular con interfaces bien definidas, que es reemplazable dentro del contexto (OMG). Los componentes definen su comportamiento en trminos de interfaces proporcionadas y requeridas. Un componente debe poder ser reemplazable por otro que cumpla con las interfaces declaradas. Las caractersticas fundamentales que debe cumplir son: Ser reutilizable. Ser intercambiable. Poseer interfaces definidas. Ser altamente cohesivos.
Artefactos reutilizables
Servicios Web
Un servicio web ofrece una interfaz de programacin (no de usuario) de una determinada funcionalidad (servicio) accesible a travs de Internet y basada en estndares W3C. Permiten intercambiar informacin entre aplicaciones software desarrolladas en lenguajes de programacin diferentes y ejecutadas sobre distintas plataformas. Son la base para la integracin Web. Ventajas: Facilita la interoperabilidad entre sistemas diversos. Uso de protocolos abiertos. Inconvenientes: Rendimiento.
18
14/02/2013
Artefactos reutilizables
Libreras
Una librera proporciona cdigo reutilizable que puede ser
empleado por los desarrolladores de aplicaciones. Ejemplo: Librera de funciones matemticas Math.lib
Las libreras pueden incorporarse al programa en tiempo de compilacin (ej. lib,jar) o en tiempo de ejecucin (ej. DLLs). El desarrollo de libreras puede ser una buena idea para facilitar el uso de nuestras aplicaciones por parte de terceros. Ej. Amazon SDK para Java.
Artefactos reutilizables
Frameworks
Un framework es un conjunto de clases parcialmente funcional (no es una aplicacin) para un dominio de aplicacin. Les falta aquello que es propio de la aplicacin. Los frameworks suele implementar distintos patrones y estilos arquitectnicos.
19
14/02/2013
Artefactos reutilizables
Libreras vs. frameworks
Librera Framework
ndice
Introduccin Arquitectura del software Estilos y patrones arquitectnicos Artefactos reutilizables Principios de diseo Resumen Bibliografa
20
14/02/2013
Principios de diseo
Principios de diseo
Principios de diseo
Cliente
Capa de presentacin
Capa de lgica
21
14/02/2013
Principios de diseo
Para el diseo de la arquitectura se recomienda comenzar con un alto grado de abstraccin y refinar sucesivamente hasta llegar al nivel de componente.
Principios de diseo
Descomposicin. Dividir los problemas en problemas ms pequeos. (Divide y vencers)
22
14/02/2013
Principios de diseo
Cohesin. Es un indicador cualitativo del grado en el que un mdulo se centra en hacer una sola cosa. La cohesin de un diseo debera ser alta.
Un elemento es altamente cohesivo si todos sus elementos trabajan juntos para proporcionar algn comportamiento bien delimitado Grady Booch
Principios de diseo
Acoplamiento. Es un indicador cualitativo del grado en el que un mdulo est conectado con otros y el mundo exterior. El acoplamiento debe ser bajo.
23
14/02/2013
Principios de diseo
Variaciones protegidas. Intentar ocultar/proteger de los cambios al resto del sistema. Objetivo: Lograr que los cambios involucren la menor cantidad de cdigo posible y estn lo ms acotados posible.
ndice
Introduccin Arquitectura del software Estilos y patrones arquitectnicos Artefactos reutilizables Principios de diseo Resumen Bibliografa
24
14/02/2013
Resumen
Qu hemos aprendido?
La arquitectura software
Define la estructura y el comportamiento del software. Puede tener mltiples vistas. Es el primer paso en la fase de diseo. Es un actividad continua. Se disea a partir de los requisitos, el contexto y la experiencia del arquitecto. Se modela mediante ADLs, diagramas UML y/o diagramas de bloque.
Artefactos reutilizables: componentes, libreras, frameworks Estilos vs. patrones arquitectnicos. Estilos arquitectnicos: centrado en datos, tuberas y filtros, capas, arquitecturas orientadas a servicios.
ndice
Introduccin Arquitectura del software Estilos y patrones arquitectnicos Artefactos reutilizables Principios de diseo Resumen Bibliografa
25
14/02/2013
Bibliografa
Pressman R. Software Engineering: A Practitioners Approach. McGraw-Hill. 2009 (7th edition)
The Process of Software Architecting, Peter Eeles y Peter Cripps. Addison-Wesley, 2009
Beautiful Architecture: Leading Thinkers Reveal the Hidden Beauty in Software Design, Diomidis Spinellis, Georgios Gousios. O'Reilly Media, Inc., 2009
Bibliografa
Buschmann F. et al .Pattern-Oriented Software Architecture. John Wiley & Sons. 1996
Alonso G. et al. Web Services Concepts, Architectures and Applications. Springer. 2004
26
14/02/2013
27