3 - Modelado Estructural AvanzadoUML
July 19, 2022 | Author: Anonymous | Category: N/A
Short Description
Download 3 - Modelado Estructural AvanzadoUML...
Description
Curso de UML odelado "structural #van$ado
Facultad de Informática Departamento de Lenguajes y Sistemas Informáticos e Ingeniería de Software Universidad Ponticia de Salamanca en adrid
!
Resumen
odelado avan$ado de clases odelado avan$ado de relaciones Interfaces% tipos y roles Pa&uetes Instancias Diagramas de o'jetos
©Luis Joyanes, Salvador Sánchez, Héctor Castán Universidad onti!icia de Sala"anca en #adrid Departamento de Lenguajes y Sistemas Informáticos e Ingeniería del Software
Octubre 1999
2
Departamento de Lenguajes y Sistemas Informáticos e Ingeniería del Software
Modelado Avanzado de Clases
©Luis Joyanes, Salvador Sánchez, Héctor Castán Universidad onti!icia de Sala"anca en #adrid Departamento de Lenguajes y Sistemas Informáticos e Ingeniería del Software
Octubre 1999
3
Departamento de Lenguajes y Sistemas Informáticos e Ingeniería del Software
Introducción al modelado avanzado de clases
La clase es el 'lo&ue de construcci(n más importante pero no el )nico*
Un clasifcador clasifcador es es un mecanismo &ue descri'e características estructurales +atri'utos, y de comportamiento +operaciones,* +operacio nes,*
-ipos
nt nterfa erfa$ $ de Iclasicador.
-ip po de datos -i Se/al
0omponente 1odo 0aso de Uso
Su'sistema
Son clasicadores los elementos de modelado &ue pueden tener instancias* ©Luis Joyanes, Salvador Sánchez, Héctor Castán Universidad onti!icia de Sala"anca en #adrid Departamento de Lenguajes y Sistemas Informáticos e Ingeniería del Software
Octubre 1999
4
Departamento de Lenguajes y Sistemas Informáticos e Ingeniería del Software
Visibilidad
"specica si un elemento de un clasicador puede ser utili$ado por otros clasicadores*
2alores. public
(+)
protected(#) private(-)*
CuentaCorriente #numero #saldo -interés +consultarSaldo() +ingresar(cantidad: +ingresar(cantid ad: real)()
©Luis Joyanes, Salvador Sánchez, Héctor Castán Universidad onti!icia de Sala"anca en #adrid Departamento de Lenguajes y Sistemas Informáticos e Ingeniería del Software
Octubre 1999
5
Departamento de Lenguajes y Sistemas Informáticos e Ingeniería del Software
Alcance
"specica si una característica aparece en cada instancia o si 3ay una )nica ocurrencia para todas las instancias*
2alores. instancia.
sin adorno. clasificador. aparece su'rayada* Proceso #numero #prioridad -numProcesos
©Luis Joyanes, Salvador Sánchez, Héctor Castán Universidad onti!icia de Sala"anca en #adrid Departamento de Lenguajes y Sistemas Informáticos e Ingeniería del Software
Octubre 1999
6
Departamento de Lenguajes y Sistemas Informáticos e Ingeniería del Software
Jerarquía
0lase u operaci(n a'stracta.
0lase 3oja. {leaf} 'ajo el nom're de la clase* propiedad 0lase raí$.
nom're en cursiva*
propiedad {root} 'ajo el nom're de la clase*
4peraci(n 3oja.
no es polim(rca y no puede ser redenida* propiedad {leaf} junto al nom're de la operaci(n*
©Luis Joyanes, Salvador Sánchez, Héctor Castán Universidad onti!icia de Sala"anca en #adrid Departamento de Lenguajes y Sistemas Informáticos e Ingeniería del Software
Octubre 1999
7
Departamento de Lenguajes y Sistemas Informáticos e Ingeniería del Software
Multiplicidad
1)mero de instancias &ue puede tener una clase*
0onsiste en una especicaci(n del rango de cardinalidades permitidas* "n una clase se muestra en la es&uina superior derec3a* $
ControladorRed puertoConsola[!!": Puerto
©Luis Joyanes, Salvador Sánchez, Héctor Castán Universidad onti!icia de Sala"anca en #adrid Departamento de Lenguajes y Sistemas Informáticos e Ingeniería del Software
Octubre 1999
8
Departamento de Lenguajes y Sistemas Informáticos e Ingeniería del Software
Atributos
Sinta5is completa. [visibilidad] nombre [multiplicidad] [:tipo] [=valor_inicial] [{propiedades}]
Propiedades Propied ades predenidas de los atri'utos. can!eable.
Sin restricciones* 2 2alor alor por d defecto* efecto* add"nl. Para atri'utos con multiplicidad mayor &ue uno% permite a/adir valores adicionales% pero una ve$ creado un valor no puede modicarse ni eliminarse*
fro$en.
o'jeto*
fro$en se
"l valor del atri'uto no se puede modicar tras iniciali$ar el
c orresponde correspond e con const en 066*
©Luis Joyanes, Salvador Sánchez, Héctor Castán Universidad onti!icia de Sala"anca en #adrid Departamento de Lenguajes y Sistemas Informáticos e Ingeniería del Software
Octubre 1999
9
Departamento de Lenguajes y Sistemas Informáticos e Ingeniería del Software
Operaciones
Signatura. nom're de la operaci(n 6 parámetros 6 tipo retorno* 4peraci(n. especica un servicio &ue se puede re&uerir de cual&uier o'jeto de la clase* 7todo. implementaci(n de una operaci(n* "n una jerar&uía de 3erencia puede 3a'er varios m7todos para una misma operaci(n* Sinta5is de una operaci(n. [visibilidad] nombre [(lista par%metros)] [:tipo retorno] [{propiedades}] ©Luis Joyanes, Salvador Sánchez, Héctor Castán Universidad onti!icia de Sala"anca en #adrid Departamento de Lenguajes y Sistemas Informáticos e Ingeniería del Software
Octubre 1999
10
Departamento de Lenguajes y Sistemas Informáticos e Ingeniería del Software
Operaciones ( ll!
Sinta5is de los parámetros de una operaci(n. [direcci&n] nombre :tipo [=valor_por_defecto]
Dirección. Dirección . in: parámetro de entrada &ue no puede modicarse* parámetro de salida* inout: parámetro de entrada &ue puede modicarse* out:
Propiedades predenidas Propiedades predenidas para las operaciones.
is'uer. su ejecuci(n no cam'ia el estado del sistema*
seuential.
s(lo 3ay un 8ujo de control al mismo tiempo* !uarded. si 3ay más de un 8ujo de control% se secuencian las llamadas* concurrent. se garanti$a la e5istencia de m)ltiples 8ujos de control*
©Luis Joyanes, Salvador Sánchez, Héctor Castán Universidad onti!icia de Sala"anca en #adrid Departamento de Lenguajes y Sistemas Informáticos e Ingeniería del Software
Octubre 1999
11
Departamento de Lenguajes y Sistemas Informáticos e Ingeniería del Software
Clases plantilla (templates!
"lemento parametri$ado &ue no se puede utili$ar directamente. necesita ser instanciado* instan ciado* "specican contenedores &ue se pueden instanciar para elementos especícos* 9epresentaci(n UL. elemento tam: int Pila +pus%() +pop()
::'ind restricciones especícas* Estereotipo.. Estereotipo implementation.
el 3ijo 3ereda 3ereda la implementaci(n del padre pero no soporta sus interfaces ni los 3ace p)'licos% violando la semántica de sustituci(n +derivaci(n privada de 066,*
Restricciones estándar . complete.
no se permiten 3ijos adicionales a los ya especicados*
incomplete. se permiten disoint. los o'jetos del
3ijos adicionales* padre no pueden tener más de uno de los l os
3ijos como tipo* overlappin!. los o'jetos del padre pad re pueden tener más de uno de los 3ijos como tipo* ©Luis Joyanes, Salvador Sánchez, Héctor Castán Universidad onti!icia de Sala"anca en #adrid Departamento de Lenguajes y Sistemas Informáticos e Ingeniería del Software
Octubre 1999
19
Departamento de Lenguajes y Sistemas Informáticos e Ingeniería del Software
Asociación
#dornos 'ásicos. nom're% roles% multiplicidades y agregaci(n* 4tros adornos.
Navegación.. permite indicar la direcci(n de navegaci(n más eciente* Navegación Usuario
&irectorio
Visibilidad.. visi'ilidad de los e5tremos +por defecto es p)'lica,* Visibilidad Usuario
Cla'e +propietario
-cla'e
Califcación. permite especicar cualicadores* 0omo en 4Califcación. 4-** Especifcador de interaz . permite especicar el rol &ue se desempe/a* nombre,ol : nombrenterfa$
tra'ajador . I"mpleado
⇒
supervisor . I?estor
©Luis Joyanes, Salvador Sánchez, Héctor Castán Universidad onti!icia de Sala"anca en #adrid Departamento de Lenguajes y Sistemas Informáticos e Ingeniería del Software
Octubre 1999
20
Departamento de Lenguajes y Sistemas Informáticos e Ingeniería del Software
Asociación (ll!
Clases asociación: odelado de las propiedades de una asociación** asociación Usuario
&irectorio
Permiso
UL dene @ restricciones aplica'les a las asociaciones. implicit. no
es una relaci(n maniesta sino conceptual*
ordered. el conjunto de o'jetos del e5tremo sigue un orden*
can!eable. se
pueden a/adir% modicar y eliminar enlaces* add"nl. se pueden a/adir enlaces desde un o'jeto del e5tremo* e5tremo* fro$en. los enlaces una ve$ a/adidos no se pueden modicar modicar**
©Luis Joyanes, Salvador Sánchez, Héctor Castán Universidad onti!icia de Sala"anca en #adrid Departamento de Lenguajes y Sistemas Informáticos e Ingeniería del Software
Octubre 1999
21
Departamento de Lenguajes y Sistemas Informáticos e Ingeniería del Software
Realización
9elaci(n semántica entre clasicadores% en la &ue uno 9elaci(n especica un contrato y otro garanti$a &ue lo cumplirá*
"n la representaci(n% la punta de 8ec3a apunta al clasicador &ue especica el contrato*
A usos 3a'ituales.
ostrar la relaci(n entre un caso de uso y la cola'oraci(n &ue lo reali$a.
alidar contrasea Caso de Uso
alidaci*n Colaboración
©Luis Joyanes, Salvador Sánchez, Héctor Castán Universidad onti!icia de Sala"anca en #adrid Departamento de Lenguajes y Sistemas Informáticos e Ingeniería del Software
Octubre 1999
22
Departamento de Lenguajes y Sistemas Informáticos e Ingeniería del Software
Realización (ll!
ostrar la relaci(n entre una interfa$ y la clase o componente &ue proporciona sus servicios. ,,interace ChoiceBlock set&eault(c%oice: C%oice) set&eault(c%oice: getC%oice(): C%oice
RadioButtonrray set&eault(c%oice: C%oice) set&eault(c%oice: getC%oice(): C%oice
!op"p#enu set&eault(c%oice: set&eault(c%o ice: C%oice) getC%oice(): C%oice
©Luis Joyanes, Salvador Sánchez, Héctor Castán Universidad onti!icia de Sala"anca en #adrid Departamento de Lenguajes y Sistemas Informáticos e Ingeniería del Software
Octubre 1999
23
Departamento de Lenguajes y Sistemas Informáticos e Ingeniería del Software
Realización ( lll!
La reali$aci(n se puede mostrar de dos maneras.
Forma can(nica. estereotipo 6 línea dirigida discontínua Forma Forma For ma a'reviada. notaci(n en forma de Bca'e$a de allerC ,,interace ChoiceBlock set&eault(c%oice) getC%oice(): C%oice
!op"p#enu
C%oice.loc/ !op"p#enu set&eault(c%oice) getC%oice(): C%oice Forma canónica
Forma abreviada
©Luis Joyanes, Salvador Sánchez, Héctor Castán Universidad onti!icia de Sala"anca en #adrid Departamento de Lenguajes y Sistemas Informáticos e Ingeniería del Software
Octubre 1999
24
Departamento de Lenguajes y Sistemas Informáticos e Ingeniería del Software
&'cnicas comunes de modelado de redes de relaciones
#plicar los caso de uso y los escenarios para descu'rir las relaciones entre el conjunto de a'stracciones* 0omen$ar modelando las relaciones estructurales* Luego identicar posi'les generali$acionesespeciali$aciones usando la 3erencia m)ltiple con moderaci(n* Por )ltimo 'uscar dependencias como formas más sutiles de cone5i(n* Para todas las relaciones% comen$ar por su forma 'ásica para más adelante aplicar características avan$adas* 9esaltar los conjuntos interesantes de relaciones en diagramas aparte* ©Luis Joyanes, Salvador Sánchez, Héctor Castán Universidad onti!icia de Sala"anca en #adrid Departamento de Lenguajes y Sistemas Informáticos e Ingeniería del Software
Octubre 1999
25
Departamento de Lenguajes y Sistemas Informáticos e Ingeniería del Software
Interaces) &ipos Roles
©Luis Joyanes, Salvador Sánchez, Héctor Castán Universidad onti!icia de Sala"anca en #adrid Departamento de Lenguajes y Sistemas Informáticos e Ingeniería del Software
Octubre 1999
26
Departamento de Lenguajes y Sistemas Informáticos e Ingeniería del Software
Revisión de t'rminos conceptos
Interfa$. colecci(n de operaciones &ue especica un servicio de una clase o un componente* -ipo. estereotipo estereotipo de una clase &ue especica un dominio de o'jetos y las operaciones aplica'les al o'jeto* 9o 9ol. l. comportamiento de una entidad participante en un conte5to particular* 9epr 9epresentaci(n esentaci(n de las interfaces. ,,interace $mpleado o1tenerSueldo() o1tener.eneicios()
!ersona
0mpleado
©Luis Joyanes, Salvador Sánchez, Héctor Castán Universidad onti!icia de Sala"anca en #adrid Departamento de Lenguajes y Sistemas Informáticos e Ingeniería del Software
Octubre 1999
27
Departamento de Lenguajes y Sistemas Informáticos e Ingeniería del Software
Revisión de t'rminos conceptos ( ll!
Una interfa$ puede intervenir en relaciones de generali$aci(n% asociaci(n% dependencia y% o'viamente% de reali$aci(n* "specica un contrato para una clase o componente pero no su implementaci(n* UL permite ampliar la informaci(n &ue reci'e una interfa$.
asociando pre y postcondiciones a cada operaci(n e invariantes a la clase o componente +se puede usar 40L,* asociando una má&uina de estados a la interfa$ para especicar el orden de las operaciones* asociando cola'oraciones a la interfa$ &ue especi&uen su comportamiento esperado*
Una interfa$ representa un rol de una clase en una asociaci(n*
©Luis Joyanes, Salvador Sánchez, Héctor Castán Universidad onti!icia de Sala"anca en #adrid Departamento de Lenguajes y Sistemas Informáticos e Ingeniería del Software
Octubre 1999
28
Departamento de Lenguajes y Sistemas Informáticos e Ingeniería del Software
Modelado de las ronteras de un sistema
Las interfaces pueden utili$arse para modelar las fronteras de un sistema formado por componentes comprados% reutili$ados o nuevos* Para modelar las fronteras.
di'ujar una línea alrededor de componentes &ue tienden a acoplarse* renar la agrupaci(n agrupando juntos los &ue cam'ian juntos* identicar las operaciones &ue cru$an las fronteras* empa&uetar como interfaces los conjuntos de operaciones y se/ales anteriores% utili$ando criterios l(gicos de agrupamiento* para cada cola'oraci(n identicar
interfaces en &ue se 'asa +importa, interfaces &ue ofrece +e5porta,
documentar las interfaces con pre y postcondiciones% invariantes% etc*
©Luis Joyanes, Salvador Sánchez, Héctor Castán Universidad onti!icia de Sala"anca en #adrid Departamento de Lenguajes y Sistemas Informáticos e Ingeniería del Software
Octubre 1999
29
Departamento de Lenguajes y Sistemas Informáticos e Ingeniería del Software
Modelado de tipos din#micos
La mayoría de lenguajes s(lo soporta tipos estáticos% pero muc3os o'jetos +p*e* de negocio, cam'ian sus roles en un 8ujo de tra'ajo*
Para modelar un tipo dinámico.
especicar los tipos posi'les utili$ando una clase estereotipada* modelar todos los roles
utili$ando la generali$aci(n% o
asociando un tipo a cada rol de la clase*
representar cada instancia dinámica en un diagrama de interacci(n* ostrar el cam'io para cada o'jeto% di'ujándolo una ve$ para cada rol*
©Luis Joyanes, Salvador Sánchez, Héctor Castán Universidad onti!icia de Sala"anca en #adrid Departamento de Lenguajes y Sistemas Informáticos e Ingeniería del Software
Octubre 1999
30
Departamento de Lenguajes y Sistemas Informáticos e Ingeniería del Software
"*emplo de modelado de tipos
©Luis Joyanes, Salvador Sánchez, Héctor Castán Universidad onti!icia de Sala"anca en #adrid Departamento de Lenguajes y Sistemas Informáticos e Ingeniería del Software
Octubre 1999
31
Departamento de Lenguajes y Sistemas Informáticos e Ingeniería del Software
+aquetes
©Luis Joyanes, Salvador Sánchez, Héctor Castán Universidad onti!icia de Sala"anca en #adrid Departamento de Lenguajes y Sistemas Informáticos e Ingeniería del Software
Octubre 1999
32
Departamento de Lenguajes y Sistemas Informáticos e Ingeniería del Software
Conceptos avanzados sobre paquetes
Pa&uete. mecanismo de prop(sito general para organi$ar Pa&uete. elementos en grupos* Puede contener. clases% interfaces% componentes% nodos% cola'oraciones% casos de uso% diagramas y otros pa&uetes* Forma For ma un espacio e spacio de nom'res* "l pa&uete raí$ de un modelo es an(nimo* 2isi'ilidad de los elementos. 6 pu'lico Eprivado protegido
©Luis Joyanes, Salvador Sánchez, Héctor Castán Universidad onti!icia de Sala"anca en #adrid Departamento de Lenguajes y Sistemas Informáticos e Ingeniería del Software
Octubre 1999
33
Departamento de Lenguajes y Sistemas Informáticos e Ingeniería del Software
Conceptos avanzados sobre paquetes ( ll!
9elaciones. generali$aci(n y dependencia +acceso e 9elaciones. importaci(n,* "stereotipos estándar aplica'les a pa&uetes. facade.
un pa&uete s(lo es una vista de otro* frameor. pa&uete &ue consta principalmente de patrones* stub. pa&uete Ba'reviadoC* Sirve de pro5y de otro* subsstem. representa un su'sistema* sstem. representa el sistema completo*
facade y
stub ayudan a manejar modelos muy grandes. los facade ofrecen vistas simples de modelos complejos* los stub se usan cuando 3ay e&uipos diferentes tra'ajando so're el mismo pa&uete*
©Luis Joyanes, Salvador Sánchez, Héctor Castán Universidad onti!icia de Sala"anca en #adrid Departamento de Lenguajes y Sistemas Informáticos e Ingeniería del Software
Octubre 1999
34
Departamento de Lenguajes y Sistemas Informáticos e Ingeniería del Software
&'cnicas comunes de modelado
odelado de grupos de elementos.
'uscar grupos de elementos similares conceptual o semánticamente*
englo'ar cada grupo en un pa&uete* determinar en cada pa&uete las visi'ilidades de los elementos* esta'lecer las dependencias de importaci(n y acceso entre pa&uetes*
import.
permiso de acceso de un solo sentido s entido sin a/adir nom'res al
pa&uete cliente% lo &ue o'liga a usar nom'res de ruta* permiso de acceso de un solo sentido s entido en el &ue los nom'res del pa&uete proveedor se a/aden al espacio de nom'res del cliente*
access.
esta'lecer jerar&uías de generali$aci(n entre los pa&uetes si e5isten*
©Luis Joyanes, Salvador Sánchez, Héctor Castán Universidad onti!icia de Sala"anca en #adrid Departamento de Lenguajes y Sistemas Informáticos e Ingeniería del Software
Octubre 1999
35
Departamento de Lenguajes y Sistemas Informáticos e Ingeniería del Software
&'cnica 'cnicas s comunes de model modelado ado (ll!
odelado de vistas ar&uitect(nicas.
identicar el conjunto de vistas ar&uitect(nicas signicativas en el conte5to del pro'lema* Usualmente. vista dise/o 6 v* procesos 6 v* implementaci(n 6 v* despliegue 6 v*
casos uso
colocar cada elemento y diagrama en el pa&uete adecuado* agrupar si es necesario estos elementos en pa&uetes* esta'lecer la visi'ilidad entre vistas. normalmente a'ierta entre las vistas de másista alto nivel* de diseo ista de implementaci*n
ista de casos de uso ista de procesos
ista de despliegue
©Luis Joyanes, Salvador Sánchez, Héctor Castán Universidad onti!icia de Sala"anca en #adrid Departamento de Lenguajes y Sistemas Informáticos e Ingeniería del Software
Octubre 1999
36
Departamento de Lenguajes y Sistemas Informáticos e Ingeniería del Software
Instancias
©Luis Joyanes, Salvador Sánchez, Héctor Castán Universidad onti!icia de Sala"anca en #adrid Departamento de Lenguajes y Sistemas Informáticos e Ingeniería del Software
Octubre 1999
37
Departamento de Lenguajes y Sistemas Informáticos e Ingeniería del Software
Revisión de t'rminos conceptos
Instancia. manifestaci(n concreta de una a'stracci(n* 9epresentaci(n gráca. su'rayando su nom're* "stereotipos estándar aplica'les a las relaciones claseEo'jeto. instance"f.
el o'jeto es una instancia del clasicador destino*
instantiate.
la clase origen crea instancias de la clase destino*
"stereotipos estándar para instancias de mensajes y transiciones. become.
el destino es el mismo &ue el origen en un instante posterior posterior** cop. el destino es una copia igual del origen pero independiente* independiente*
9estricci(n estándar para o'jetos. transient.
la instancia se crea y se destruye durante la cola'oraci(n*
©Luis Joyanes, Salvador Sánchez, Héctor Castán Universidad onti!icia de Sala"anca en #adrid Departamento de Lenguajes y Sistemas Informáticos e Ingeniería del Software
Octubre 1999
38
Departamento de Lenguajes y Sistemas Informáticos e Ingeniería del Software
$ia,ramas de Ob*etos
©Luis Joyanes, Salvador Sánchez, Héctor Castán Universidad onti!icia de Sala"anca en #adrid Departamento de Lenguajes y Sistemas Informáticos e Ingeniería del Software
Octubre 1999
39
View more...
Comments