Poder Expresivo de UML 2.0 para especificar arquitecturas de Software Cristian Wilckens Prof. Guía:...

22
UML 2.0 para especificar arquitecturas de Software Cristian Wilckens Prof. Guía: Cecilia Bastarrica

Transcript of Poder Expresivo de UML 2.0 para especificar arquitecturas de Software Cristian Wilckens Prof. Guía:...

Page 1: Poder Expresivo de UML 2.0 para especificar arquitecturas de Software Cristian Wilckens Prof. Guía: Cecilia Bastarrica.

Poder Expresivo de UML 2.0 para

especificar arquitecturas de

Software

Cristian WilckensProf. Guía: Cecilia Bastarrica

Page 2: Poder Expresivo de UML 2.0 para especificar arquitecturas de Software Cristian Wilckens Prof. Guía: Cecilia Bastarrica.

UML Lenguaje de modelado visual que se usa

para especificar, visualizar, construir y documentar un sistema de software

Familia de diagramas que permiten especificar la estructura y el comportamiento del sistema a construir

Page 3: Poder Expresivo de UML 2.0 para especificar arquitecturas de Software Cristian Wilckens Prof. Guía: Cecilia Bastarrica.

¿Qué es una Arquitectura de SW? Descripción de los elementos de un

sistema, sus interacciones, patrones que guían su composición y las restricciones a esos patrones.

Conjunto de decisiones respecto de la organización de un sistema de software

Page 4: Poder Expresivo de UML 2.0 para especificar arquitecturas de Software Cristian Wilckens Prof. Guía: Cecilia Bastarrica.

¿Qué es un ADL? Notaciones para especificar formalmente

una Arquitectura de Software Modelan componentes, conectores y sus

configuraciones. Sintáxis simple, entendible y gráfica Semántica entendible

Page 5: Poder Expresivo de UML 2.0 para especificar arquitecturas de Software Cristian Wilckens Prof. Guía: Cecilia Bastarrica.

Características de un ADL Componentes

Entidades computacionales Puertos (relación entre componentes y

ambiente) Características

Interfaces, tipos, semántica, restricciones, evolución y propiedades no-funcionales

Page 6: Poder Expresivo de UML 2.0 para especificar arquitecturas de Software Cristian Wilckens Prof. Guía: Cecilia Bastarrica.

Características de un ADL (cont) Conectores

Interacción entre componentes Define el protocolo de interacción Poseen interfaces que definen roles para

comportamiento de los participantes Características

Interfaces, tipos, semántica, restricciones, evolución y propiedades no-funcionales

Page 7: Poder Expresivo de UML 2.0 para especificar arquitecturas de Software Cristian Wilckens Prof. Guía: Cecilia Bastarrica.

Características de un ADL (cont) Configuraciones (Topología)

Colección de instancias de componentes que interactúan mediante instancias de conectores

Grafo de componentes y conectores que describen la arquitectura

Características Calida de descripción de configuración Calidad de descripción del sistema Propiedades de descripción del sistema

Page 8: Poder Expresivo de UML 2.0 para especificar arquitecturas de Software Cristian Wilckens Prof. Guía: Cecilia Bastarrica.

UML 2.0 Componentes Interfaces Puertos Clasificadores estructurados Conectores

Page 9: Poder Expresivo de UML 2.0 para especificar arquitecturas de Software Cristian Wilckens Prof. Guía: Cecilia Bastarrica.

UML 2.0 Componentes

Vista externa

Vista interna

Page 10: Poder Expresivo de UML 2.0 para especificar arquitecturas de Software Cristian Wilckens Prof. Guía: Cecilia Bastarrica.

Interfaces Provistas Requeridas

Page 11: Poder Expresivo de UML 2.0 para especificar arquitecturas de Software Cristian Wilckens Prof. Guía: Cecilia Bastarrica.

Puertos Asociado a interfaces Asociados a descripciones de comportamiento

Page 12: Poder Expresivo de UML 2.0 para especificar arquitecturas de Software Cristian Wilckens Prof. Guía: Cecilia Bastarrica.

UML 2.0 Clasificadores estructurados

Representar estructura interna

Page 13: Poder Expresivo de UML 2.0 para especificar arquitecturas de Software Cristian Wilckens Prof. Guía: Cecilia Bastarrica.

Conectores Enlace para comunicar dos o más instancias Enlace entre puertos o interfaces No se pueden asociar a descripciones de

comportamiento o atributos 2 tipos

Delegación Montaje

Page 14: Poder Expresivo de UML 2.0 para especificar arquitecturas de Software Cristian Wilckens Prof. Guía: Cecilia Bastarrica.
Page 15: Poder Expresivo de UML 2.0 para especificar arquitecturas de Software Cristian Wilckens Prof. Guía: Cecilia Bastarrica.

Resultados ComponentesCaracterística Implementación en UML 2.0 Interfaz Interfaces requeridas y provistas. Puntos interacción puertos. Tipos Sistema de tipos. Semántica Diagramas de estructuras y estados. Restricciones Número de puertos de una componente. Atributos y

descripciones de comportamiento (protocol state machines) de interfaces.

Evolución Mediante clasificadores estructurados y subtipos Propiedades no funcionales

No

Page 16: Poder Expresivo de UML 2.0 para especificar arquitecturas de Software Cristian Wilckens Prof. Guía: Cecilia Bastarrica.

Resultados ConectoresCaracterística Implementación en UML 2.0 Interfaz Parcialmente, ligado al tipo de interfaz de las componentes. Tipos Dados por el tipo de conector Semántica No explícitamente, conectores de montaje o delegación. Restricciones Tipo de conector. Evolución No permite evolución. Propiedades no funcionales

No permite especificar propiedades no funcionales.

Page 17: Poder Expresivo de UML 2.0 para especificar arquitecturas de Software Cristian Wilckens Prof. Guía: Cecilia Bastarrica.

Resultados ConfiguracionesCaracterística Implementación en UML 2.0 Comprensibilidad Información estructural. Sintaxis entendible Composición jerárquica

Clasificadores estructurados. Vistas internas y externas se puede obtener mayor encapsulamiento.

Refinamiento y seguimiento

El refinamiento se puede lograr utilizando las diferentes vistas provistas por UML.

Heterogeneidad Permite desarrollo (generación de código) en C++ y Java. Escalabilidad Permite mediante uso de composición y refinamiento. Evolucionabilidad Refinamiento de componentes. Dinamismo Diagramas de secuencias Restricciones Conectores asociados a puertos o interfaces, no pueden

asociarse a descripciones de comportamiento o atributos. Propiedades no funcionales

No, salvo uso de anotaciones (sin validez en el modelo)

Page 18: Poder Expresivo de UML 2.0 para especificar arquitecturas de Software Cristian Wilckens Prof. Guía: Cecilia Bastarrica.

Conclusiones UML 2.0 mejor que sus antecesores UML 2.0 cumple con casi todas las

características para ser un ADL Se comporta mejor que la mayoría de los

ADLs conocidos La especificación de una Arquitectura se

puede hacer mediante la conexión de los diferentes niveles de especificación de UML

Page 19: Poder Expresivo de UML 2.0 para especificar arquitecturas de Software Cristian Wilckens Prof. Guía: Cecilia Bastarrica.

Preguntas?

Page 20: Poder Expresivo de UML 2.0 para especificar arquitecturas de Software Cristian Wilckens Prof. Guía: Cecilia Bastarrica.

Resultados ComponentesCaracterística Implementación en UML 2.0 Interfaz Están especificadas por los clasificadores de Interfaz

(provistas y requeridas), y los puntos de interacción están dados por los puertos.

Tipos Las componentes pueden manejar distintos tipos. Se pueden instanciar elementos de los distintos tipos para especificar una arquitectura.

Semántica Se puede especificar mediante el comportamiento que tendrá ante diversos eventos. Esto se especifica mediante diagramas de estructuras y estados.

Restricciones Se puede restringuir el número de puertos de una componente. Las interfaces pueden incluir atributos y descripciones de comportamiento (protocol state machines).

Evolución La incorporación de clasificadores estructurados permite refinar las características y tipos de las componentes.

Propiedades no funcionales

UML no posee un mecanismo para modelar propiedades no funcionales.

Page 21: Poder Expresivo de UML 2.0 para especificar arquitecturas de Software Cristian Wilckens Prof. Guía: Cecilia Bastarrica.

ConectoresCaracterística Implementación en UML 2.0 Interfaz No se puede definir interfaz explícitamente, está ligado al

tipo de interfaz de las componentes. Si se utiliza asociaciones o clases se puede especificar la interfaz de un conector.

Tipos Dados explícitamente por el tipo de conector (no se puede especificar). Para que un conector tenga un tipo distintivo es necesario utilizar clases para modelarlos.

Semántica Está dada por los conectores de montaje o delegación. La semántica está dada por el despacho de las señales entre los puertos.

Restricciones Restricciones dadas por el tipo de conector. Un conector de delegación tiene que ser utilizado entre el mismo tipo de puertos o interfaces. Un conector de montaje puede ser definido sólo entre interfaces requeridas y provistas compatibles.

Evolución No permite evolución. Propiedades no funcionales

No permite especificar propiedades no funcionales.

Page 22: Poder Expresivo de UML 2.0 para especificar arquitecturas de Software Cristian Wilckens Prof. Guía: Cecilia Bastarrica.

ConfiguracionesCaracterística Implementación en UML 2.0 Comprensibilidad La sintáxis de UML 2.0 es entendible para modelar

información estructural. Permite componer componentes y conectores para formar configuraciones más sofisticadas en forma sencilla.

Composición jerárquica

Mediante los clasificadores estructurados se puede representar la estructura interna de un clasificador. Utilizando las vistas internas y externas se puede obtener mayor encapsulamiento.

Refinamiento y seguimiento

El refinamiento se puede lograr utilizando las diferentes vistas provistas por UML.

Heterogeneidad Permite desarrollo (generación de código) en C++ y Java. Escalabilidad UML 2.0 permite escalabilidad, ya que al permitir

encapsulamiento y composición jerárquica podemos añadir nuevos elementos a una arquitectura a través de las interfaces.

Evolucionabilidad Tiene relación con permitir el refinamiento de componentes y agregar nuevas componentes. Además permite especificar familias de aplicaciones al separar los tipos de componentes de las instancias de ellas.

Dinamismo Hasta UML 1.5 diagramas de secuencias permiten interacciones de instancias de componentes o clases. (Trabajo futuro)

Restricciones Conectores asociados a puertos o interfaces, no pueden asociarse a descripciones de comportamiento o atributos.

Propiedades no funcionales

Se pueden utilizar las anotaciones, pero no se verifican en el modelo.