poder expresivo de uml 2.0 para especificar arquitecturas de software cristian wilckens prof. guía:...
TRANSCRIPT
Poder Expresivo de UML 2.0 para
especificar arquitecturas de
Software
Cristian WilckensProf. 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
¿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
¿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
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
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
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
UML 2.0 Componentes Interfaces Puertos Clasificadores estructurados Conectores
UML 2.0 Componentes
Vista externa
Vista interna
Interfaces Provistas Requeridas
Puertos Asociado a interfaces Asociados a descripciones de comportamiento
UML 2.0 Clasificadores estructurados
Representar estructura interna
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
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
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.
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)
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
Preguntas?
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.
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.
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.