420 likes | 705 Views
Arquitectura de software dirigida por modelos (Model-Driven Architecture). Liliana Favre UNCPBA 2006. UML (Unified Modeling Language). UML . UML es un lenguaje para Visualizar Especificar Construir Documentar artefactos de sistemas intensivos de software.
E N D
Arquitectura de software dirigida por modelos(Model-Driven Architecture) Liliana Favre UNCPBA 2006
UML (Unified Modeling Language)
UML UML es un lenguaje para • Visualizar • Especificar • Construir • Documentar artefactos de sistemas intensivos de software
Lenguajes de modelado, modelos y diagramas • Un lenguaje de modelado permite expresar los distintos modelos que se producen en el proceso de desarrollo. • Un modelo es una representación abstracta de una especificación, un diseño o un sistema desde un punto de vista particular. • Un diagrama es una representación de (parte de) un modelo de diseño • Un modelo se representa por uno o más diagramas
Lenguaje de Modelado UML 2.0 • Elementos primitivos de modelado (estáticos, dinámicos, agrupamiento, anotaciones) • Relaciones • Dependencia • Asociación • Generalización • Realización • Diagramas UML (13 diagramas) • Diagramas estáticos • Diagramas de comportamiento
RELACIONES Dependencia Una relación semántica entre dos elementos, tal que un cambio en una de ellos (el independiente) puede afectar al otro (el dependiente). A B “B depende de A”
RELACIONES Asociación Es una relación estructural que describe un conjunto de links, siendo un link una conexión entre objetos 0..1 * empleador empleado
RELACIONES Generalización Una relación de generalización/especialización en la que el elemento especializado (descendiente) se construye sobre la especificación del elemento generalizado (ancestro)
RELACIONES Realización Es una relación semántica en la que un clasificador, tal como una interfaz o un caso de uso, especifica un “contrato” que otro clasificador, tal como una clase o una colaboración, garantiza llevar a cabo.
DIAGRAMAS UML Diagramas estáticos • Diagrama de clases • Diagrama de objetos • Diagrama de componentes • Diagrama de estructura compuesta • Diagrama de paquetes • Diagrama de despliegue
Diagrama de clases Muestra un conjunto de clases, interfaces, colaboraciones y sus relaciones
Diagrama de objetos Muestra una instantánea de un conjunto de objetos y sus relaciones
Diagrama de componentes Muestra la organización y dependencias entre un conjunto de componentes, la vista de implementación de un sistema. Están relacionados a diagramas de clases en donde un componente se corresponde con una o más clases,interfaces o colaboraciones.
Diagrama de estructura compuesta(Composite Structural Diagram) Muestra la estructura interna (incluyendo partes y conectores) de un clasificador o una colaboración estructurada.
Diagrama de paquetes Muestra la descomposición del modelo en unidades de organización y sus dependencias.
Diagrama de despliegue Muestra los enlaces de comunicación física entre elementos de hardware y las relaciones entre máquinas físicas y procesos: qué se ejecuta y dónde
Diagramas UML Diagramas de comportamiento • Diagramas de casos de uso • Diagrama de secuencia • Diagrama de colaboración • Diagrama de estados • Diagrama de actividades • Diagrama cronológico • Diagrama general de interacciones
Diagrama de casos de uso Muestra un conjunto de casos de uso y actores y sus relaciones
Diagrama de secuencia Es un diagrama de interacción que muestra los objetos y actores que participan en una colaboración poniendo el énfasis en el ordenamiento en el tiempo de los mensajes
Diagrama de colaboración Un diagrama de interacción que pone el énfasis en la organización estructural de los objetos o roles que envían y reciben mensajes.
Diagrama de estados Muestra un autómata que consiste de estados, transiciones, eventos y actividades
Diagrama de actividades Muestra la estructura de un proceso u otro cálculo como el flujo de control y datos paso a paso en el cálculo.
Diagrama cronológico(Timing Diagram) Es un diagrama de interacción que muestra tiempos a lo largo de diferentes objetos o roles, y no secuencias relativas de mensajes
Diagrama de interacciones general(Interaction Overview Diagram) Es un híbrido de diagramas de actividad y de secuencia.
Diagramas estáticos UML Diagrama de clases
Diagrama de clases Es el diagrama más común en modelos orientados a objetos. Elementos de un diagrama de clases • Clases • Interfaz, clases abstractas, clases parametrizadas • Relaciones de dependencia, generalización y asociación • Colaboraciones • Notas y constraints
Diagrama de claseClases Una clase es una descripción de un conjunto de objetos que comparten los mismos atributos, operaciones, relaciones y semántica. nombre atributos operaciones
Diagrama de clases Responsabilidades Una responsabilidad es un contrato o una obligación de una clase. Shipment Responsabilities --maintain the information regarding products shipped against an order --track the status and location of the shipped products
Diagrama de clasesVisibilidad UML permite diferentes formas de acceso a miembros de una clase: • + Público • # Protegido • - Privado
Diagrama de clasesRelaciones Las relaciones más importantes entre clases son: • Dependencia • Generalización • Asociación
Diagrama de clasesAsociaciones Una asociación es una relación estructural que especifica que objetos de una clase están conectados a objetos de otra Tipos de asociaciones • Unaria • Binaria • N-aria
Diagrama de clasesAsociaciones Multiplicidad nombre 0..1 Trabaja-para * empleador empleado rol
Diagrama de clasesAsociaciones Nombre Rol Cuando una clase participa en una asociación, tiene un rol específico que juega en tal relación. Multiplicidad Puede ser un rango de valores o un valor explícito: • Exactamente 1 1 • Cero 0..1 0..1 • Cero o más 0..* • Uno o más 1..* • Subrango m..n Navegabilidad
Diagrama de clasesAgregación- Composición Relaciones “es-parte-de”, una clase representa al “todo” y otra a las “partes”. Agregación Diamante blanco Composición Diamante negro En una composición hay relación entre los ciclos de vida del “todo” y sus “partes”. La multiplicidad en el extremo del “todo” en una composición debe ser 1 ó 0..1 • una “parte” no puede pertencer a más de un “todo”
Diagrama de clasesInterfaz Una interfaz es una colección de operaciones que son usadas para especificar un servicio de una clase • No especifican estructura ( no tiene atributos) • No tiene asociadas implementaciones con ninguna de las operaciones No necesita especificar todas las operaciones • Una clase podría incluir varias interfaces diferentes
Diagrama de clasesClases Abstractas Pueden tener implementaciones definidas para algunas de sus operaciones ( al menos una no está definida) Una clase abstracta en la que ninguna de las operaciones tiene implementación y no tiene atributos es lo mismo que una interfaz.
Las gráficas fueron extraídas de los siguientes textos: Booch, G., Rumbaugh, J., Jacobson, I. The Unified Modeling Language. User Guide. Addison Wesley. (2005) Stevens, P. Pooley R. Utilización de UML en Ingeniería del software con objetos y componentes (2002)