estilos arquitectonicos
Post on 07-Jul-2015
309 Views
Preview:
TRANSCRIPT
Arquitecturas software y familias de productosParte IV. Arquitecturas software y estilos arquitectnicosTema 4.1- Vistas y estilos arquitectnicosTema 4.2 Arquitecturas de componentes y conectores Tema 4.3 Arquitecturas multiagente Juan Manuel Serrano Mster Oficial en Sistemas Telemticos e Informticos Universidad Rey Juan Carlos 2007-2008
BibliografaC. Ghezzi et al. Software qualities and principles. Computer Science Handbook, 2nd ed. CRC Press, 2004 P. Clements et al. Documenting Software Architectures. Views and Beyond. Addison Wesley, 2003Parte I (Software Architecture Viewtypes and Styles)
L. Bass et al. Software architecture in Practice (2nd edition). Addison-Wesley, 2003Partes I y II
Tema 4.1 Vistas y estilos arquitectnicos
2
ContenidoConceptos bsicos Vistas modulares Vistas de componentes y conectores Vistas de asignacin
Tema 4.1 Vistas y estilos arquitectnicos
3
Conceptos bsicosPrincipiosabstraccin, etc. abstraccin, etc.
modularidad, ,separacin modularidad separacin de aspectos, generalidad, , de aspectos, generalidad
Proceso de desarrollo (mtodos, tcnicas, herramientas) Producto software Stakeholderscliente, usuario cliente, usuario final, ,desarrollador, final desarrollador,
Productos intermedios (artifacts)requisitos funcionales yyno-funcionales, , requisitos funcionales no-funcionales anlisis, arquitectura, ,diseo, casos de anlisis, arquitectura diseo, casos de pruebas, etc. pruebas, etc.
de pruebas, etc. de pruebas, etc.
gestor del gestor del proyecto, ,equipo proyecto equipo
Tema 4.1 Vistas y estilos arquitectnicos
4
Cualidades del softwareQuality attributes/ Software qualities/ non-functional requirements
Rendimiento evolvabilityUsabilidadverificabilidad
MantenibilidadTolerancia a fallos Interoperabilidad
reparability
Portabilidad EscalabilidadRobustez
CorreccinFiabilidad
Disponibilidad
Seguridad
Tema 4.1 Vistas y estilos arquitectnicos
5
Clasificacin de cualidades del softwareCualidades internasdesarrolladores, gestor del proyecto,
Cualidades externascliente, usuarios finales,
Portabilidadreparability evolvability
RendimientoDisponibilidadTolerancia a fallos
EscalabilidadInteroperabilidad
Fiabilidadverificabilidad
CorreccinUsabilidad
Seguridad
Mantenibilidad
Robustez
Tema 4.1 Vistas y estilos arquitectnicos
6
Cualidades externas (I)CorreccinEl sistema cumple con los requisitos funcionales especificados Medicin: experimentalmente (pruebas), analticamente (verificacin formal, inspecciones de cdigo, etc.)
Fiabilidad (reliability/ dependability)El usuario puede confiar en el buen funcionamiento del sistema Se trata de una propiedad no booleanaEstadsticamente: probabilidad de que el sistema funcione correctamente durante un intervalo temporal determinado
Subcomponentes: tolerancia a fallos, disponibilidad (availability), safeness
RobustezEl sistema funciona razonablemente bien, incluso ante situaciones no anticipadas en los requisitos funcionales
Tema 4.1 Vistas y estilos arquitectnicos
7
Cualidades externas (II)RendimientoEfectividad con la que el sistema realiza las funciones encomendadas, de acuerdo con los requisitos establecidos por el usuarioRelacionado con la escalabilidad
La eficiencia en el uso de recursos (computacionales y de almacenamiento) por parte del software contribuye al buen rendimientoPero la eficiencia es una cualidad interna
Medicin: monitorizacin, analticamente, simulacin
UsabilidadGrado en el que sistema es fcil de utilizar o amigable al usuario (user-friendly) No atae nicamente a los usuarios humanos (por ejemplo, interfaces con otros sistemas) Requisitos: interfaces consistentes y precedibles, ms correccin y rendimiento
SeguridadPrivacidad: garantiza que los servicios proporcionados por el sistema y la informacin almacenada son nicamente accesibles a los usuarios autorizados Integridad de datos: la consistencia y validez de la informacin almacenada no se ve comprometida
Tema 4.1 Vistas y estilos arquitectnicos
8
Cualidades internas (I)VerificabilidadFacilidad con la que es posible probar la correccin del software, y otras cualidades (rendimiento, etc.) Puede convertirse en una cualidad externa en caso de aplicaciones crticas
UnderstandabilityFacilidad con la que los desarrolladores pueden comprender el diseo y la implementacin del sistema Favorece la verificabilidad y la mantenibilidad
MantenibilidadFacilidad con la que el software puede ser modificado (modifiability, elaboration tolerance), bien para mejorar las propiedades del sistema (reparability) o para introducir nuevas funcionalidades (evolvability)
Tema 4.1 Vistas y estilos arquitectnicos
9
Cualidades internas (II)PortabilidadFacilidad con la que el sistema puede ser ejecutado en distintos entornos heterogneos Dependencias hardware y, especialmente, software (SSOO, BBDD, )
ReusabilidadGrado en el que elementos del sistema pueden ser utilizados para construir nuevos productos Distintos niveles de granularidad: componentes, libreras, estilo arquitectnico Favorecida por los principios de encapsulacin de la informacin, genericidad, especializacin,
InteroperabilidadEl sistema puede interactuar con otras aplicaciones, posiblemente en un entorno heterogneo, desarrolladas por organizaciones independientes Reusabilidad al nivel de aplicaciones Ejemplos: interfaces estndar de UNIX, DCOM/CORBA/Web Services, etc.
Tema 4.1 Vistas y estilos arquitectnicos
10
Arquitectura del softwareComo objeto de estudio, las arquitecturas software constituyen una subdisciplina de la ingeniera del software Arquitectura vs. otros artefactosArquitectura y requisitos no-funcionales: el rendimiento, la toleracia a fallos, seguridad, toleracia a cambios, escalabilidad, portabilidad, reusabilidad, posibilidad de un desarrollo incremental, etc., se encuentran condicionados por la arquitectura y/o puede ser evaluados arquitectnicamente Arquitectura vs. anlisis: el anlisis de un sistema abstrae cualquier tipo de referencia a elementos software (p. ej.: sockets, bases de datos, unidades de procesamiento, etc.) Arquitectura vs. diseo: ambas hacen referencia a la estructura del software; difieren en el nivel de detalle/agregacin
Por qu documentar la arquitectura?Vehculo de comunicacin, understandability, reusabilidad, etc.Tema 4.1 Vistas y estilos arquitectnicos 11
Arquitectura del software: vistas arquitectnicasArquitectura Software de un sistema:La estructura (o estructuras) del sistema, compuesta por elementos, las propiedades visibles de stos, y las relaciones que mantienen dentro de ella (Clements et al. 03; Bass et al. 03)
Vistas arquitectnicas:La arquitectura de un sistema consta de mltiples vistas, asociadas a diferentes dimensiones o perspectivas del sistema Ninguna vista particular constituye LA arquitectura del sistema Las vistas se encuentran dirigidas a usuarios particulares y asociadas a requisitos no-funcionales concretos
Tipos de vistas arquitectnicas:Rationals 4+1 approach (1995):Vistas lgicas, de procesos, de desarrollo, fsicas + vistas de casos de uso
Tema 4.1 Vistas y estilos arquitectnicos
12
Arquitectura del software: estilos arquitectnicosTipos de vistas arquitectnicas (cont.):Clements et al. (2003)Vistas modulares: aspectos estructurales Vistas de componentes & conectores (C&C): aspectos dinmicos Vistas de asignaciones (allocation view): relacin entre el software y los entornos de desarrollo y ejecucin
Estilos arquitectnicos:Patrones pertenecientes a un tipo de vista concreto, que definen una serie de restricciones a los tipos de elementos y relaciones de la vista arquitectnica Algunos estilos son universales, mientras que otros definen un tipo particular de software En cualquier caso, la arquitectura de un sistema est compuesta por vistas pertenecientes a mltiples estilos
Tema 4.1 Vistas y estilos arquitectnicos
13
Arquitectura del softwareTipos de vistas Vistas Modulares.. Estilo M 2
Vistas C&C.. Estilo C&C 2 Estilo C&C 1
Vistas de Asignacin.. Estilo A 2 Estilo A 1
Estilos
Estilo M 1
..
.. Vista C&C 2 Vista C&C 1
.. Vista A 2 Vista A 1
Arquitectura
Vista M 2 Vista M 1
Tema 4.1 Vistas y estilos arquitectnicos
14
ContenidoConceptos bsicos Vistas modulares Vistas de componentes y conectores Vistas de asignacin
Tema 4.1 Vistas y estilos arquitectnicos
15
ContenidoConceptos bsicos Vistas modulares Vistas de componentes y conectores Vistas de asignacin
Tema 4.1 Vistas y estilos arquitectnicos
16
CaractersticasPropsitoIdentifican las principales unidades de implementacin, junto con sus relaciones ms relevantes
ElementosMdulos: unidades de implementacin que proporcionan un conjunto de funcionalidades determinado (representadas por interfaces)Java packages, Java/C++ classes, Ada packages,
RelacionesIs-Part-Of: definen relaciones de inclusin entre los mdulos Depends-on: definen relaciones de dependencia entre mdulos (p. ej., un mdulo utiliza, o est autorizado a utilizar, otro mdulo) Is-A: definen relaciones de generalizacin
Tema 4.1 Vistas y estilos arquitectnicos
17
Estilos
Vistas Modulares
Decomposition Style
Uses Style
Generalization Style
Layered Style
Tema 4.1 Vistas y estilos arquitectnicos
18
Decomposition StyleElementosmdulos generales y, ms concretamente, subsistemas. Los subsistemas son mdulos agregados en otros de ms amplio alcance, que suelen poseer las siguientes caractersticas:Poseen una funcionalidad definida Pueden ser ejecutados independientemente Pueden ser desarrollados e instalados de forma incremental
Relacionesdescomposicin de mdulos; un tipo especial de la relacin genrica ispart-of, en la que:un mdulo slo puede formar parte de un agregado los bucles no estn permitidos
CaractersticasUnderstandability, modifiability, reusabilidad, trazabilidad de requisitos (correccin), planificacin y monitorizacin del avance, ...Tema 4.1 Vistas y estilos arquitectnicos 19
Decomposition StyleNotacin UMLMdulos y subsistemas
Relacin de descomposicin
Tema 4.1 Vistas y estilos arquitectnicos
20
Decomposition StyleJava packages
Tema 4.1 Vistas y estilos arquitectnicos
21
Uses StyleElementosmdulos generales
Relacionesuso de mdulos (uses); un tipo especial de la relacin genrica depends on, tal que:un mdulo A usa otro mdulo B, si el correcto funcionamiento de A depende de una correcta implementacin de B
CaractersticasLa relacin de uso no implica necesaria o suficientemente una llamada a las operaciones pblicas del paquete dependiente Existen otros tipos de relaciones de dependencia: por ejemplo, dependencias en tiempo de compilacin Este estilo permite evaluar la cohesin y acoplamiento entre mdulos, planificar incrementalmente el desarrollo, las pruebas e instalacin del sistema, futuras extensiones (evolvability), etc.Tema 4.1 Vistas y estilos arquitectnicos 22
Uses StyleNotacin UML
Tema 4.1 Vistas y estilos arquitectnicos
23
Layered StyleElementosCapas (layers):Una coleccin de mdulos que conjuntamente constituyen una mquina virtual: un interfaz abstracto de los servicios de ms bajo nivel proporcionados por otro software, hardware o mquina virtual.
Relacionesuso permitido (allowed to use)Establece una jerarqua de capas Los mdulos de una capa no pueden utilizar arbitrariamente los de una capa superior Reglas de uso: nicamente el nivel inmediatamente inferior; o cualquier nivel inferior, etc.
Caractersticasreusabilidad, portabilidad y tolerancia a cambios
Tema 4.1 Vistas y estilos arquitectnicos
24
Layered StyleNotacin UML
Tema 4.1 Vistas y estilos arquitectnicos
25
ContenidoConceptos bsicos Vistas modulares Vistas de componentes y conectores Vistas de asignacin
Tema 4.1 Vistas y estilos arquitectnicos
26
CaractersticasPropsitoDescribir el comportamiento y estructura del sistema en tiempo de ejecucin
ElementosComponentes: unidades de procesamiento y almacenamientoEjemplos: objetos, threads, procesos, bases de datos, etc. Propiedades: funcionalidad proporcionada, puertos (o interfaces), etc.
Conectores: mecanismos de interaccin entre componentesEjemplos: procedure calls, asynchronous messages, sockets, memoria compartida, RPC, pipes, sql-link, middlewares (ORB), event multicast, etc. Propiedades: roles, protocolos, cardinalidades de los componentes conectados, etc.
RelacionesAttachment: conexin entre un puerto de un componente, y un rol de un conector
CaractersticasRendimiento, disponibilidad, tolerancia a fallos, seguridad, etc.
Tema 4.1 Vistas y estilos arquitectnicos
27
Estilos
Vistas C&C
Pipe & Filter
Publish & Subscribe
Peer-to-Peer
Multiagent
..
Tema 4.1 Vistas y estilos arquitectnicos
28
EstilosMetamodelo para la representacin de estilos C&C:
Tema 4.1 Vistas y estilos arquitectnicos
29
Pipes & Filter StyleTipos de componentesFilters: transformadores de secuencias datosTipos de Puertos: input y output
Tipos de conectoresPipes: canales asncronos de datosTipos de Roles: source, sink Conservan el orden en el que se reciben los datos Pueden utilizar buffers para permitir un tipo de procesamiento asncrono, concurrente, etc. Abstraen la identidad de los filtros
AttachmentEl puerto de salida (entrada) de un filtro se conecta al rol de entrada (salida) de datos de un pipe
CaractersticasEstilo orientado a la transformacin de datos
Tema 4.1 Vistas y estilos arquitectnicos
30
Pipes & Filter StyleDefinicin del estilo en ACME (lenguaje de descripcin de arquitecturas ADL)Family PipeFilter = {Component Type Filter; Port Type OutputPort; Port Type InputPort; Role Type Source; Role Type Sink; Connector Type Pipe = { Role src : Source; Role snk : Sink; } }
Tema 4.1 Vistas y estilos arquitectnicos
31
Pipe & Filter StyleDefinicin del estilo en UML:
Tema 4.1 Vistas y estilos arquitectnicos
32
Pipe & Filter StyleVista Pipe&Filter para un sistema denominado SimpleSystem simple = {
ACME
Component Splitter: Filter = { Port si1: Input = ..; Port so1: Output = ..; Port so2: Output = ..; ... } Component Grep: Filter = { Port gi1: Input = ...; Port go1: Output = ...; } ... Connector p1: Pipe = ...; ... Attachments{ Splitter.so1 to p1.src; Grep.gi1 to p1.snk ... }Tema 4.1 Vistas y estilos arquitectnicos 33
Pipe & Filter StyleVista Pipe&Filter para un sistema denominado Simple UML
Tema 4.1 Vistas y estilos arquitectnicos
34
ContenidoConceptos bsicos Vistas modulares Vistas de componentes y conectores Vistas de asignacin
Tema 4.1 Vistas y estilos arquitectnicos
35
CaractersticasPropsitoDescribir las relaciones entre los elementos de las vistas modulares o de C&C y otros aspectos del entorno del sistema
ElementosElementos software: elementos de las vistas modulares y C&Cmdulos, componentes, conectores, .
Elementos del entorno: elementos del contexto de la aplicacin:Hardware, recursos humanos, ficheros, etc.
RelacionesAllocated-to: asignacin de un elemento software a un elemento del entorno
Tema 4.1 Vistas y estilos arquitectnicos
36
Estilos
Allocation Viewtype
Deployment Style
Implementation Style
Work Assignment Style
Tema 4.1 Vistas y estilos arquitectnicos
37
Deployment StyleElementos softwareElementos de los estilos C&CProcesos, threads, .
Elementos del entornoPlataformas de ejecucinUnidades hardware de procesamiento, discos, redes, etc.
Relacin Allocated-toAsigna una unidad fsica a un elemento software
Relaciones Migrates-toEn caso de que la asignacin sea dinmica, especifica la variabilidad de la asignacin
Caractersticasanlisis del rendimiento, fiabilidad, seguridad y costes del sistema
Tema 4.1 Vistas y estilos arquitectnicos
38
Deployment StyleNotacin UML: deployment diagrams
Tema 4.1 Vistas y estilos arquitectnicos
39
top related