Arquitectura de software Arquitectura de software dirigida por modelosdirigida por modelos(Model-Driven Architecture)(Model-Driven Architecture)
Liliana FavreLiliana FavreUNCPBAUNCPBA
20062006
UMLUML
(Unified Modeling (Unified Modeling Language)Language)
UML UML
UML es un lenguaje paraUML es un lenguaje para
VisualizarVisualizar EspecificarEspecificar Construir Construir DocumentarDocumentar
artefactos de sistemas intensivos de softwareartefactos de sistemas intensivos de software
Lenguajes de modelado, Lenguajes de modelado, modelos y diagramas modelos y diagramas
Un Un lenguaje de modeladolenguaje de modelado permite expresar los permite expresar los distintos modelos que se producen en el proceso de distintos modelos que se producen en el proceso de desarrollo. desarrollo.
Un Un modelomodelo es una representación abstracta de una es una representación abstracta de una especificación, un diseño o un sistema desde un punto especificación, un diseño o un sistema desde un punto de vista particular.de vista particular.
Un Un diagramadiagrama es una representación de (parte de) un es una representación de (parte de) un modelo de diseñomodelo de diseño
Un modelo se representa por uno o más Un modelo se representa por uno o más diagramasdiagramas
Lenguaje de Modelado Lenguaje de Modelado UML 2.0UML 2.0
Elementos primitivos de modelado Elementos primitivos de modelado (estáticos, dinámicos, agrupamiento, anotaciones)(estáticos, dinámicos, agrupamiento, anotaciones)
RelacionesRelaciones DependenciaDependencia AsociaciónAsociación GeneralizaciónGeneralización RealizaciónRealización
Diagramas UML (13 diagramas)Diagramas UML (13 diagramas) Diagramas estáticosDiagramas estáticos Diagramas de comportamientoDiagramas de comportamiento
RELACIONESRELACIONES
DependenciaDependencia
Una relación semántica entre dos elementos, tal queUna relación semántica entre dos elementos, tal que
un cambio en una de ellos (el independiente) puedeun cambio en una de ellos (el independiente) puede
afectar al otro (el dependiente). afectar al otro (el dependiente).
A BA B
““B depende de A”B depende de A”
RELACIONESRELACIONES
AsociaciónAsociación
Es una relación estructural que describe unEs una relación estructural que describe un
conjunto de links, siendo un link una conexiónconjunto de links, siendo un link una conexión
entre objetosentre objetos
0..1 *0..1 *
empleador empleadoempleador empleado
RELACIONESRELACIONES
GeneralizaciónGeneralizació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)
RELACIONESRELACIONES
RealizaciónRealización
Es una relación semántica en la que unEs una relación semántica en la que un
clasificador, tal como una interfaz o un caso declasificador, tal como una interfaz o un caso de
uso, especifica un “contrato” que otrouso, especifica un “contrato” que otro
clasificador, tal como una clase o unaclasificador, tal como una clase o una
colaboración, garantiza llevar a cabo.colaboración, garantiza llevar a cabo.
DIAGRAMAS UMLDIAGRAMAS UML
Diagramas estáticosDiagramas estáticos Diagrama de clases
Diagrama de objetos
Diagrama de componentes
Diagrama de estructura compuesta
Diagrama de paquetes
Diagrama de despliegue
Diagrama de clasesDiagrama de clases
Muestra un Muestra un conjunto de conjunto de
clases, interfaces, clases, interfaces,
colaboraciones y colaboraciones y
sus relaciones sus relaciones
Diagrama de objetosDiagrama de objetos
Muestra una Muestra una instantánea instantánea
de un conjunto de de un conjunto de
objetos y sus objetos y sus relacionesrelaciones
Diagrama de componentesDiagrama de componentes
Muestra la organización yMuestra la organización y
dependencias entre undependencias entre un
conjunto de componentes, laconjunto de componentes, la
vista de implementación devista de implementación de
un sistema. un sistema.
Están relacionados a diagramasEstán relacionados a diagramas
de clases en donde unde clases en donde un
componente se correspondecomponente se corresponde
con una o más clases,interfacescon una o más clases,interfaces
o colaboraciones.o colaboraciones.
Diagrama de estructura compuestaDiagrama de estructura compuesta(Composite Structural Diagram)(Composite Structural Diagram)
Muestra la estructuraMuestra la estructura
interna (incluyendointerna (incluyendo
partes y conectores) departes y conectores) de
un clasificador o unaun clasificador o una
colaboración estructuradacolaboración estructurada. .
Diagrama de paquetesDiagrama de paquetes
Muestra laMuestra la
descomposición deldescomposición del
modelo en unidades modelo en unidades dede
organización y susorganización y sus
dependencias.dependencias.
Diagrama de despliegueDiagrama de despliegue
Muestra los enlaces deMuestra los enlaces de
comunicación físicacomunicación física
entre elementos deentre elementos de
hardware y las hardware y las relacionesrelaciones
entre máquinas físicas entre máquinas físicas yy
procesos: qué se procesos: qué se ejecutaejecuta
y dóndey dónde
Diagramas UMLDiagramas UML
Diagramas de comportamientoDiagramas 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 usoDiagrama de casos de uso
Muestra un conjunto de casos de uso y Muestra un conjunto de casos de uso y actores y susactores y sus
relacionesrelaciones
Diagrama de secuenciaDiagrama de secuencia
Es un Es un diagrama dediagrama de
interaccióninteracción que muestra que muestra loslos
objetos y actores queobjetos y actores que
participan en unaparticipan en una
colaboración poniendo colaboración poniendo elel
énfasis en el énfasis en el ordenamientoordenamiento
en el tiempo de losen el tiempo de los
mensajes mensajes
Diagrama de colaboraciónDiagrama de colaboración
Un diagrama de Un diagrama de interaccióninteracción
que pone el énfasis que pone el énfasis en laen la
organización organización estructural deestructural de
los objetos o roles los objetos o roles queque
envían y reciben envían y reciben mensajes.mensajes.
Diagrama de estadosDiagrama de estados
Muestra un Muestra un autómataautómata
que consiste de que consiste de estados,estados,
transiciones, eventos transiciones, eventos yy
actividadesactividades
Diagrama de actividadesDiagrama de actividades
Muestra la Muestra la estructura deestructura de
un proceso u otro un proceso u otro cálculocálculo
como el flujo de como el flujo de controlcontrol
y datos paso a paso y datos paso a paso en elen el
cálculo.cálculo.
Diagrama cronológicoDiagrama cronológico(Timing Diagram)(Timing Diagram)
Es un diagrama deEs un diagrama de
interacción que interacción que muestramuestra
tiempos a lo largo detiempos a lo largo de
diferentes objetos odiferentes objetos o
roles, y no roles, y no secuenciassecuencias
relativas de relativas de mensajesmensajes
Diagrama de interacciones generalDiagrama de interacciones general(Interaction Overview Diagram)(Interaction Overview Diagram)
Es un híbrido de Es un híbrido de
diagramas de diagramas de actividadactividad
y de secuencia.y de secuencia.
Diagramas estáticos UMLDiagramas estáticos UML
Diagrama de clasesDiagrama de clases
Diagrama de clasesDiagrama de clases
Es el diagrama más común en modelos orientados aEs el diagrama más común en modelos orientados a
objetos.objetos.
Elementos de un diagrama de clasesElementos de un diagrama de clases ClasesClases
Interfaz, clases abstractas, clases parametrizadasInterfaz, clases abstractas, clases parametrizadas Relaciones de dependencia, generalización y Relaciones de dependencia, generalización y
asociaciónasociación ColaboracionesColaboraciones Notas y constraintsNotas y constraints
Diagrama de clases- Diagrama de clases- EjemploEjemplo
Diagrama de claseDiagrama de claseClasesClases
Una clase es una descripción de un conjunto deUna clase es una descripción de un conjunto de
objetos que comparten los mismos atributos,objetos que comparten los mismos atributos,
operaciones, relaciones y semántica.operaciones, relaciones y semántica.
nombrenombre
atributosatributos
operacionesoperaciones
Diagrama de clases Diagrama de clases ResponsabilidadesResponsabilidades
Una responsabilidad es un contrato o unaUna responsabilidad es un contrato o una
obligación de una clase.obligación de una clase. ShipmentShipment
ResponsabilitiesResponsabilities --maintain the information--maintain the information
regarding products shipped regarding products shipped
against an order against an order
--track the status and location of--track the status and location of
the shipped productsthe shipped products
Diagrama de clasesDiagrama de clasesVisibilidadVisibilidad
UML permite diferentes formas de acceso aUML permite diferentes formas de acceso a
miembros de una clase:miembros de una clase:
+ Público+ Público # Protegido# Protegido - Privado- Privado
Diagrama de clasesDiagrama de clasesRelacionesRelaciones
Las relaciones más importantes entre clases son:Las relaciones más importantes entre clases son:
Dependencia Dependencia GeneralizaciónGeneralización
AsociaciónAsociación
Diagrama de clasesDiagrama de clasesAsociacionesAsociaciones
Una Una asociaciónasociación es una relación estructural que es una relación estructural que
especifica que objetos de una clase estánespecifica que objetos de una clase están
conectados a objetos de otraconectados a objetos de otra
Tipos de asociacionesTipos de asociaciones UnariaUnaria BinariaBinaria N-ariaN-aria
Diagrama de clasesDiagrama de clasesAsociacionesAsociaciones
Multiplicidad Multiplicidad nombrenombre
0..1 Trabaja-para *0..1 Trabaja-para * empleador empleadoempleador empleado rol rol
Diagrama de clasesDiagrama de clasesAsociacionesAsociaciones
NombreNombreRolRolCuando una clase participa en una asociación,Cuando una clase participa en una asociación,tiene un rol específico que juega en tal relación.tiene un rol específico que juega en tal relación.MultiplicidadMultiplicidadPuede ser un rango de valores o un valor explícito:Puede ser un rango de valores o un valor explícito:
Exactamente 1Exactamente 1 11 Cero 0..1 Cero 0..1 0..10..1 Cero o másCero o más 0..*0..* Uno o más Uno o más 1..*1..* Subrango Subrango m..nm..n
NavegabilidadNavegabilidad
Diagrama de clasesDiagrama de clasesAgregación- ComposiciónAgregación- Composición
Relaciones “es-parte-de”, una clase representa al “todo”Relaciones “es-parte-de”, una clase representa al “todo”y otra a las “partes”.y otra a las “partes”.Agregación Diamante blancoAgregación Diamante blancoComposición Diamante negroComposición Diamante negroEn una composición hay relación entre los ciclos deEn una composición hay relación entre los ciclos devida del “todo” y sus “partes”. La multiplicidad en elvida del “todo” y sus “partes”. La multiplicidad en elextremo del “todo” en una composición debe ser 1 óextremo del “todo” en una composición debe ser 1 ó0..10..1
una “parte” no puede pertencer a más de un una “parte” no puede pertencer a más de un “todo”“todo”
Diagrama de clasesDiagrama de clasesAsociacionesAsociaciones
Diagrama de clasesDiagrama de clasesInterfazInterfaz
Una interfaz es una colección de operaciones queUna interfaz es una colección de operaciones que
son usadas para especificar un servicio de unason usadas para especificar un servicio de una
claseclase No especifican estructura ( no tiene atributos)No especifican estructura ( no tiene atributos) No tiene asociadas implementaciones con ninguna de No tiene asociadas implementaciones con ninguna de
las operacioneslas operaciones
No necesita especificar todas las operacionesNo necesita especificar todas las operaciones Una clase podría incluir varias interfaces diferentes Una clase podría incluir varias interfaces diferentes
Diagrama de clasesDiagrama de clasesInterfacesInterfaces
Diagrama de clasesDiagrama de clasesClases AbstractasClases Abstractas
Pueden tener implementaciones definidas paraPueden tener implementaciones definidas para
algunas de sus operaciones ( al menos una noalgunas de sus operaciones ( al menos una no
está definida)está definida)
Una clase abstracta en la que ninguna de lasUna clase abstracta en la que ninguna de las
operaciones tiene implementación y no tieneoperaciones tiene implementación y no tiene
atributos es lo mismo que una interfaz.atributos es lo mismo que una interfaz.
Diagrama de clasesDiagrama de clasesClases AbstractasClases Abstractas
Diagrama de clasesDiagrama de clasesClases parametrizadasClases parametrizadas
Las gráficas fueron extraídas de Las gráficas fueron extraídas de los siguienteslos siguientes
textos:textos:
Booch, G., Rumbaugh, J., Jacobson, I. The Unified Modeling Booch, G., Rumbaugh, J., Jacobson, I. The Unified Modeling Language. User Guide. Addison Wesley. (2005)Language. User Guide. Addison Wesley. (2005)
Stevens, P. Pooley R. Utilización de UML en Ingeniería del Stevens, P. Pooley R. Utilización de UML en Ingeniería del software con objetos y componentes (2002)software con objetos y componentes (2002)