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,

agrupamiento,
anotaciones)
Relaciones





dinámicos,
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 clases- Ejemplo
Diagrama de clase
Clases
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 clases
Visibilidad
UML permite diferentes formas de acceso a
miembros de una clase:



+ Público
# Protegido
- Privado
Diagrama de clases
Relaciones
Las relaciones más importantes entre clases son:
Dependencia
 Generalización
 Asociación

Diagrama de clases
Asociaciones
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 clases
Asociaciones
Multiplicidad
0..1
nombre
Trabaja-para
*
empleador
rol
empleado
Diagrama de clases
Asociaciones
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
Cero 0..1
Cero o más
Uno o más
Subrango
Navegabilidad
1
0..1
0..*
1..*
m..n
Diagrama de clases
Agregació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 clases
Asociaciones
Diagrama de clases
Interfaz
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 clases
Interfaces
Diagrama de clases
Clases 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.
Diagrama de clases
Clases Abstractas
Diagrama de clases
Clases parametrizadas
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)
Descargar

Arquitectura de software dirigida por modelos