UML El Lenguaje de Modelado Unificado
Maestría en Ingeniería de Software
Agenda
•
Model Driven Architecture (MDA)
•
Unified Model Language (UML)
•
Object Constraint Language (OCL)
Patrones
•
Conclusiones
•
Contenido
Unified Modeling Language (UML) •
Introducción a UML •
•
•
•
Definición Origen evolución !lo"ues de construcción
Diagra#as UML •
•
•
Diagra#as estructurales estructurales Diagra#as de co#$orta#iento Diagra#as de interacción
Contenido
Unified Modeling Language (UML) •
Diagra#as de clases •
•
•
Meta#odelado •
•
•
•
Clases %elaciones &erar"u'a de #odelos MO Meta#odelo UML
Perfiles UML •
•
•
Definición A$licación Perfiles en MDA
Introducción a UML
l dise*o #odelado de siste#as ocu$an un i#$ortante lugar entre los ingenieros de soft+are,
Para la descri$ción de un #odelo- es necesario tener un lenguaje con una sinta.is se#/ntica $recisa,
UML permite fácilmente especificar, construir, visualizar y documentar artefactos de sistemas de software
Introducción a UML Ojetivos de UML •
Unificar lenguajes y técnicas OO existentes
•
Incorporar buenas prácticas de la industria
•
Fácil de aprender y rico visualente
•
!ue sea de prop"sito general
Introducción a UML Origen y evoluci!n #rady $ooc% &i 'ubaug%
Ivar &acobson
UML $lo%ues de construcci!n Elementos (estructurales(estructurales- de co#$orta#ientoco#$orta#iento- de agru$a#iento anotacionales)
"elaciones (de$endenciaasociación- generali0ación- reali0ación agregación)
#iagramas (casos de uso- de clasede co#$orta#iento- de estado- de actividad- de interaccion- de i#$le#entación- de co#$onentes- de des$liegue)
UML #iagramas UML 1,2 define 34 ti$os de diagra#as5 Diagra#as structurales5 structurales5 •
•
•
•
•
•
diagra#a de clasesdiagra#a de objetosdiagra#a de co#$onentesdiagra#a de estructura estructura co#$uestadiagra#a de $a"uetesdiagra#a de des$liegue
Diagra#as de co#$orta#iento5 co#$orta#iento5 •
•
•
diagra#a de casos casos de usodiagra#a de actividades diagra#a de #/"uina #/"uina de estados
Diagra#as de interacción5 •
•
•
•
diagra#a de colaboracióndiagra#a de secuenciadiagra#a de tie#$odiagra#a general de interacciones interacciones
Diagra#as structurales #iagrama de clases
#iagrama de ojetos
Diagra#as structurales #iagrama de componentes
#iag& estructura compuesta
Diagra#as structurales #iagrama de pa%uetes
#iag& de despliegue
te r m in a l
s e r v id o r
u n id a d " ' (#
c o n s o l a
(iagraas de )oportaiento #iagrama de casos casos de uso uso
#iag& de actividades
6 o l ic i ta r
$ r o d u c to
P ro c e s a r $ e d id o
) . t r a e r
a r t' c u l o s
) n v ia r P e d id o
% e c i b ir $ e d i d o
( a c t u r a r a l c l ie n t e
P a g a r fa c t u r a
C e r ra r $ e d id o
(iagraas de )oportaiento #iagrama ma%uina de estados
Diagra#as de Interacción #iagrama de colaoraci!n
#iagrama de secuencia
c5Cliente
$5Pro.OD!C
88create99() 57ransaccion
c 5 C lie n te
establecerAcciones(aestablecerAcciones(a- d- o)
3 5 8 8 c re a te 9 9 1 5 e s t a b le c e r A c c i o n e s ( a -d - o ) 4 5 8 8 d e s tro 9 9
establece:alores(d- 4,<)
establece:alores(a- ;CO;) =.ito()
57 r a n s a c c io n destro()
$ 5P ro . O D ! C 1 , 3 5 e s ta b le c e r : a l o r e s ( d - 4 , < ) 1 ,1 5 e s t a b le c e r : a lo r e s ( a -;C O ; )
(iagraas de Interacci"n #iagrama de tiempo
#iagrama grl& de interacciones
Unified Modeling Language (UML) •
Introducción a UML
•
Diagra#as UML
•
#iagramas de clases
•
Meta#odelado
•
Perfiles UML
•
Perfiles en MDA
Diagra#as de clases
)lases
no#bre atributos #=todos
'elaciones
no#bre rol #ulti$licidad navegabilidad
Diagra#as de clases lases )lase abstracta
Interface
)lase paraetri*ada
Diagra#as de clases "elaciones Tipo de relación
'elaci"n bidireccional +sociaci"n -unid irecc./ irecc./ +gregaci"n #enerali*aci"n (ependencia de las +,Is
Representación
Unified Modeling Language (UML) •
Introducción a UML
•
Diagra#as UML
•
Diagra#as de clases
•
Metamodelado
•
Perfiles UML
•
Perfiles en MDA
Meta#odelado
Metaodelado MO*
MOF es un etaodelo 0ue se define a sí iso 1enguaje estándar de la OM# para definir la l a estructura de etaodelos (efinir estándar para apeo entre etaodelos 2o solo el etaodelo UM1 puede ser definido con MOF
Metaodelado (efinici"n de un etaodelo para '($MS
Meta#odelo UML
Meta#odelo UML
>
,osibilidades para definir un lenguaje3
)rear un etaodelo con MOF
)rear un perfil un perfil UM1
Perfiles UML +erar%ua de metamodelos UML Perfiles e.tendien M1
Perfiles UML UML no es lo suficientemente e-presivo para representar conceptos especficos de dominios particulares& .or esta raz!n, UML incluye un mecanismo para e-tender y adaptar UML a diferentes dominios y plataformas/ el 0.erfil UML0
&ava and &! UML Profile
7esting UML Profile
%eal 7i#e UML Profile
Inclue tres #ecanis#os de e.tensión
stereoti$os
.tienden el vocabulario UML
:alores eti"uetados
s$ecifican $ro$iedades
%estricciones
Lenguaje ?atural OL (Oject onstraint Language)
Perfiles UML 1entajas •
Definir nuevo vocabulario $ara $ara un do#inio do#inio o $latafor#a $latafor#a es$ecifica,
•
Dar sinta.is $ara constructores "ue no tienen notación,
•
Definir notación $articular $ara $ara ele#entos ele#entos a e.istentes, e.istentes,
•
Agregar se#/ntica a ele#entos con se#/ntica i#$recisa, i#$recisa,
•
Agregar nueva se#/ntica,
•
Agregar infor#ación infor#ación en #odelos $ara su transfor#ación,
Perfiles UML
Perfiles UML Elementos
Inclue tres #ecanis#os de e.tensión
stereoti$os
:alores eti"uetados
%estricciones
Perfiles UML Estereotipos
Per#iten a*adir se#/ntica a un ele#ento @ti$os es$eciales de ele#entos del #is#o ti$o
!asados en cual"uier ti$o de ele#ento (clases- nodos- co#$onentes$a"uetes- relaciones- asociaciones- generali0aciones- de$endencias)
6e $ueden utili0ar en las #is#as situaciones "ue el ele#ento original
44etaclass55 2obre Metaclase
44stereotype55 2obre 6stereotipo
Perfiles UML Estereotipos (efinici"n
Uso
Perfiles UML Estereotipos Estándar Nombre 44auxiliary55 44call55 44create55 44derive55 44destroy55 44docuent55 44entity55 44executable55 44file55 44focus55 44fraewor755 44instantiate55 44library55 44etaclass55 44odel1ibrary55
Apliacado a )lass Usage $e%avioralFeature +bstraction $e%avioralFeature +rtifact )oponent +ritifact +rtifact )lass ,ac7age Usage +rtifact )lass ,ac7age
Nombre 44reali*ation55 44refine55 44responsability55 44script55 44send55 44service55 44source55 44specification55 44subsyste55 44trace55 44type55 44utility55 44process55 44ipleent55 44ipleentation)lass55
Apliacado a )lassifier +bstraction Usage +rtifact Usage )oponent +rtifact )lassifier )oponent +bstraction )lass )lass )oponent )oponent )lass
Perfiles UML Estereotipos Nombre 44auxiliary55 44call55 44create55 44derive55 44destroy55 44docuent55 44entity55 44executable55 44file55 44focus55 44fraewor755 44instantiate55 44library55 44etaclass55 44odel1ibrary55
Apliacado a )lass Usage $e%avioralFeature +bstraction $e%avioralFeature +rtifact )oponent +ritifact +rtifact )lass ,ac7age Usage +rtifact )lass ,ac7age
Nombre 44reali*ation55 44refine55 44responsability55 44script55 44send55 44service55 44source55 44specification55 44subsyste55 44trace55 44type55 44utility55 44process55 44ipleent55 44ipleentation)lass55
Apliacado a )lassifier +bstraction Usage +rtifact Usage )oponent +rtifact )lassifier )oponent +bstraction )lass )lass )oponent )oponent )lass
Perfiles UML Estereotipos 44interface55 especifica una colecci"n de operaci"nes 44type55 especifica estructura y coportaiento sin considerar ipleentaci"n 44enueration55 especifica valores discretos
UM1 )lass (iagra Syntax89 Syntax89
Perfiles UML 1alores eti%uetados
Al igual "ue las clases- los estereoti$os estereoti$os $ueden tener $ro$iedades $ro$iedades Cuando un estereoti$o es a$licado a un ele#ento de #odelo- los valores "ue $ueden to#ar los estereoti$os son #arcados co#o valores eti"uetados,
44stereotype55 2obre 6stereotipo
2obre:alor6ti0uetado 2obre:alor6ti0uetado
Perfiles UML "estricciones
%estricciones se#/nticas asociadas al $erfil
Lenguaje natural OCL
Definición de Perfiles UML 2otaci!n gráfica (elementos estructurales)
Definición de Perfiles UML
(efinici"n
Uso
Definición de Perfiles UML Ejemplo
,IM
Definición de Perfiles UML #ependencias
Definición de Perfiles
Definición de Perfiles UML
Construcción de Perfiles UML
(1) Definir el metamodelo del dominio de aplicación a modelar con un Perfil. Si no existiese, entonces definiríamos dicho metamodelo utilizando los mecanismos del propio UM (clases, relaciones de herencia, asociaciones, etc.). (!) Definir el perfil usando un pa"uete #profile$. %ncluir un estereotipo por cada uno de los elementos del metamodelo "ue deseamos incluir en el Perfil. &stos estereotipos tendr'n el mismo nomre "ue los elementos del metamodelo. () Definir cu'les son los elementos del metamodelo de UM "ue estamos extendiendo sore los "ue es posile aplicar un estereotipo (clases, sus asociaciones, sus atriutos, las operaciones, las transiciones, los pa"uetes, etc.) (*) +sociar metaclases con estereotipos. -uente idia -uentes / +ntonio 0allecillo en Una %ntroducción a los Perfiles
Construcción de Perfiles UML
(3) Definir como 4alores eti"uetados de los elementos del Perfil los atriutos "ue aparezcan en el metamodelo. %ncluir la definición de sus tipos, / sus posiles 4alores iniciales. (5) Definir las restricciones "ue forman parte del Perfil, a partir de las restricciones del dominio. Por e6emplo, las multiplicidades de las asociaciones "ue aparecen en el metamodelo del dominio, o las propias re7las de ne7ocio de la aplicación deen traducirse en la definición las correspondientes restricciones.
-uente idia -uentes / +ntonio 0allecillo en Una %ntroducción a los Perfiles UM2
Definición de Perfiles .erfiles UML pulicados por OM3 •
•
•
•
•
•
•
•
•
•
•
•
UM1 ,rofile for )O'$+ UM1 ,rofile ,rofile for )O'$+; )oponent )oponent Model -))M/ -))M/ UM1 ,rofile for for (ata (istribution UM1 ,rofile ,rofile for 6nterprise 6nterprise +pplication Integration Integration -6+I/ UM1 ,rofile ,rofile for 6nterprise 6nterprise (istributed Object Object )oputing -6(O)/ -6(O)/ UM1 ,rofile ,rofile for Modeling and +nalysis of 'eal Sc%edulability> ,erforance ,erforance and =ie UM1 ,rofile for Software 'adio UM1 ,rofile ,rofile for Syste on a )%ip -So)/ UM1 ,rofile for :oice UM1 =esting ,rofile
Definición de Perfiles
Otros Perfiles UML
nter$rise &ava !eans (b &ava Co##unit Process)
6oft+are 6ervices
Bno+ledge!ased 6ste#s (Universit of orE)
Data Modeling (b agiledata,org)
ra#e+orE Architectures (UML)
%e"uire#ent ngineering +ith BAO6
or#al Methods in ! (UML!)
#bedded 6ste# Design
(b I!M- su$$orted b %ational 6oft+are Architect UML CA6 tool)
Unified Modeling Language (UML) •
Introducción a UML
•
Diagra#as UML
•
Diagra#as de clases
•
Meta#odelado
•
Perfiles UML
•
.erfiles en M#'
Perfiles UML en MDA
,erfiles UM1
!:=
Perfiles UML en MDA
,IM
Modelo UM1
Modelo UM1
6&$
SO+,
)"digo
)"digo
6&$
?S(1
.......
,SM
.......
@Fuente3 Ma7oto Oya en AM(+ and Siste (esignB
A$licación de Perfiles Perfiles UML Ejemplo
,IM
@Fuente3 Ma7oto Oya en AM(+ and Syste (esignBC
A$licación de Perfiles Perfiles UML ,SM
@Fuente3 Ma7oto Oya en AM(+ and Syste (esignBC
A$licación de Perfiles Perfiles UML
,SM
,IM
@Fuente3 Ma7oto Oya en AM(+ and Syste (esignBC
Perfiles UML Ferra#ientas MDA
6xisten %erraientas M(+ 0ue conteplan la definici"n de ,erfiles
Sin ebargo> no existe portabilidad entre perfiles definidos con distinas %erraientas