You are on page 1of 39

Curso de UML

Modelado Estructural Avanzado

Facultad de Informtica Departamento de Lenguajes y Sistemas Informticos e Ingeniera de Software Universidad Pontificia de Salamanca en Madrid

Resumen

Modelado avanzado de clases Modelado avanzado de relaciones Interfaces, tipos y roles Paquetes Instancias Diagramas de objetos

Luis Joyanes, Salvador Snchez, Hctor Castn Universidad Pontificia de Salamanca en Madrid
Departamento de Lenguajes y Sistemas Informticos e Ingeniera del Software

Octubre 1999
2

Modelado Avanzado de Clases

Luis Joyanes, Salvador Snchez, Hctor Castn Universidad Pontificia de Salamanca en Madrid
Departamento de Lenguajes y Sistemas Informticos e Ingeniera del Software

Octubre 1999
3

Introduccin al modelado avanzado de clases


La clase es el bloque de construccin ms importante pero no el nico. Un clasificador es un mecanismo que describe caractersticas estructurales (atributos) y de comportamiento (operaciones).

Tipos de clasificador:

Interfaz Tipo de datos Seal Subsistema

Componente Nodo Caso de Uso

Son clasificadores los elementos de modelado que pueden tener instancias.

Luis Joyanes, Salvador Snchez, Hctor Castn Universidad Pontificia de Salamanca en Madrid
Departamento de Lenguajes y Sistemas Informticos e Ingeniera del Software

Octubre 1999
4

Visibilidad
Especifica si un elemento de un clasificador puede ser utilizado por otros clasificadores.
Valores:
public (+)
protected(#) private(-).
CuentaCorriente #numero #saldo -inters +consultarSaldo() +ingresar(cantidad: real)()

Luis Joyanes, Salvador Snchez, Hctor Castn Universidad Pontificia de Salamanca en Madrid
Departamento de Lenguajes y Sistemas Informticos e Ingeniera del Software

Octubre 1999
5

Alcance
Especifica si una caracterstica aparece en cada instancia o si hay una nica ocurrencia para todas las instancias. Valores:
instancia: sin adorno. clasificador: aparece subrayada.
Proceso #numero #prioridad -numProcesos

Luis Joyanes, Salvador Snchez, Hctor Castn Universidad Pontificia de Salamanca en Madrid
Departamento de Lenguajes y Sistemas Informticos e Ingeniera del Software

Octubre 1999
6

Jerarqua
Clase u operacin abstracta:
nombre en cursiva.

Clase hoja:
propiedad {leaf} bajo el nombre de la clase.

Clase raz:
propiedad {root} bajo el nombre de la clase.

Operacin hoja:
no es polimrfica y no puede ser redefinida. propiedad {leaf} junto al nombre de la operacin.

Luis Joyanes, Salvador Snchez, Hctor Castn Universidad Pontificia de Salamanca en Madrid
Departamento de Lenguajes y Sistemas Informticos e Ingeniera del Software

Octubre 1999
7

Multiplicidad
Nmero de instancias que puede tener una clase.
Consiste en una especificacin del rango de cardinalidades permitidas.

En una clase se muestra en la esquina superior derecha.


1 ControladorRed puertoConsola[2..*]: Puerto

Luis Joyanes, Salvador Snchez, Hctor Castn Universidad Pontificia de Salamanca en Madrid
Departamento de Lenguajes y Sistemas Informticos e Ingeniera del Software

Octubre 1999
8

Atributos
Sintaxis completa:
[visibilidad] nombre [multiplicidad] [:tipo] [=valor_inicial] [{propiedades}]

Propiedades predefinidas de los atributos:


changeable: Sin restricciones. Valor por defecto. addOnly: Para atributos con multiplicidad mayor que uno, permite aadir

valores adicionales, pero una vez creado un valor no puede modificarse ni eliminarse. frozen: El valor del atributo no se puede modificar tras inicializar el objeto.

frozen se corresponde con const en C++.

Luis Joyanes, Salvador Snchez, Hctor Castn Universidad Pontificia de Salamanca en Madrid
Departamento de Lenguajes y Sistemas Informticos e Ingeniera del Software

Octubre 1999
9

Operaciones
Signatura: nombre de la operacin + parmetros + tipo retorno. Operacin: especifica un servicio que se puede requerir de cualquier objeto de la clase. Mtodo: implementacin de una operacin. En una jerarqua de herencia puede haber varios mtodos para una misma operacin. Sintaxis de una operacin:
[visibilidad] nombre [(lista parmetros)] [:tipo retorno] [{propiedades}]

Luis Joyanes, Salvador Snchez, Hctor Castn Universidad Pontificia de Salamanca en Madrid
Departamento de Lenguajes y Sistemas Informticos e Ingeniera del Software

Octubre 1999
10

Operaciones (y ll)
Sintaxis de los parmetros de una operacin:
[direccin] nombre :tipo [=valor_por_defecto]

Direccin:
in: parmetro de entrada que no puede modificarse.

out: parmetro de salida.


inout: parmetro de entrada que puede modificarse.

Propiedades predefinidas para las operaciones:


isQuery: su ejecucin no cambia el estado del sistema.

sequential: slo hay un flujo de control al mismo tiempo.


guarded: si hay ms de un flujo de control, se secuencian las llamadas. concurrent: se garantiza la existencia de mltiples flujos de control.

Luis Joyanes, Salvador Snchez, Hctor Castn Universidad Pontificia de Salamanca en Madrid
Departamento de Lenguajes y Sistemas Informticos e Ingeniera del Software

Octubre 1999
11

Clases plantilla (templates)


Elemento parametrizado que no se puede utilizar directamente: necesita ser instanciado. Especifican contenedores que se pueden instanciar para elementos especficos. Representacin UML: elemento
tam: int Pila +push() +pop() <<bind>> (Integer,100)

Pila <Integer,100> Ligadura implcita

PilaEnteros Ligadura explcita

Luis Joyanes, Salvador Snchez, Hctor Castn Universidad Pontificia de Salamanca en Madrid
Departamento de Lenguajes y Sistemas Informticos e Ingeniera del Software

Octubre 1999
12

Elementos estndar
Todos los mecanismos de extensibilidad de UML se aplican a las clases. Valores etiquetados: permiten extender las propiedades de la clase. Estereotipos: permiten especificar nuevos tipos de componentes. Estereotipos estndar para clases:
metaclass: clasificador cuyos objetos son clases.
powertype: clasificador cuyos objetos son los hijos de un padre dado

(metaclase cuyas instancias son subclases de otra clase). stereotype: el clasificador es un estereotipo aplicable a otros elementos. utility: clase cuyos atributos y operaciones tienen alcance de clase.

Luis Joyanes, Salvador Snchez, Hctor Castn Universidad Pontificia de Salamanca en Madrid
Departamento de Lenguajes y Sistemas Informticos e Ingeniera del Software

Octubre 1999
13

Modelado de la semntica de una clase


Especificar las responsabilidades de la clase:
Como una nota con el estereotipo responsibility.
En un compartimento extra.
+ informal

Especificar la semntica con un texto:


Nota con estereotipo semantics.

Representar el cuerpo de un mtodo


Nota asociada mediante dependencia en LPOO o texto.
+ formal

Precondiciones, postcondiciones e invariante:


Notas con estereotipos precondition, postcondiction e invariant.

Especificar una mquina de estados para la clase. Especificar una colaboracin que represente a la clase. Pre y Postcondiciones, e invariante en un lenguaje formal como OCL.
Luis Joyanes, Salvador Snchez, Hctor Castn Universidad Pontificia de Salamanca en Madrid
Departamento de Lenguajes y Sistemas Informticos e Ingeniera del Software

Octubre 1999
14

Modelado Avanzado de Relaciones

Luis Joyanes, Salvador Snchez, Hctor Castn Universidad Pontificia de Salamanca en Madrid
Departamento de Lenguajes y Sistemas Informticos e Ingeniera del Software

Octubre 1999
15

Dependencia
Una dependencia simple suele bastar para la mayora de relaciones de uso a modelar. Para matizar, UML define 17 estereotipos especficos. Estereotipos que se aplican a dependencias entre clases y objetos:
bind: relaciona una plantilla con su clase instanciada. derive: el origen puede calcularse a partir del destino. friend: el origen tiene una visibilidad especial en destino. instanceOf: el objeto origen es una instancia del clasificador destino. instantiate: el origen crea instancias del destino (entre objetos). powertype: el destino es un supratipo (clasificador cuyos objetos son

todos los hijos de un padre dado). refine: especifica que el origen es ms detallado que el destino. use: la semntica origen depende de la sem. de la parte pblica destino.
Luis Joyanes, Salvador Snchez, Hctor Castn Universidad Pontificia de Salamanca en Madrid
Departamento de Lenguajes y Sistemas Informticos e Ingeniera del Software

Octubre 1999
16

Dependencia (ll)
Estereotipos que se aplican a dependencias entre paquetes:
access: el origen tiene permiso para referenciar elementos del destino.
import: los contenidos pblicos del destino pasan a formar parte del

origen como si hubiesen sido declarados en l.

Estereotipos que se aplican a dependencias entre casos de uso:


extend: el destino extiende el comportamiento del origen.
include: el origen incorpora el comportamiento destino.

Estereotipos aplicables en interacciones entre objetos:


become: los dos objetos son el mismo en diferentes momentos.

call: la operacin origen invoca la operacin destino.


copy: el objeto destino es una copia exacta pero independiente.

Luis Joyanes, Salvador Snchez, Hctor Castn Universidad Pontificia de Salamanca en Madrid
Departamento de Lenguajes y Sistemas Informticos e Ingeniera del Software

Octubre 1999
17

Dependencia (y lll)
Estereotipo que aparece en las mquinas de estados:
send: la operacin origen enva el evento destino.

Estereotipo que aparece en la organizacin en subsistemas y modelos:


trace: el destino es un antecesor histrico del origen.

Luis Joyanes, Salvador Snchez, Hctor Castn Universidad Pontificia de Salamanca en Madrid
Departamento de Lenguajes y Sistemas Informticos e Ingeniera del Software

Octubre 1999
18

Generalizacin
La herencia simple sin adornos suele bastar. Para matizar, UML define 1 estereotipo y 4 restricciones especficas. Estereotipo:
implementation: el hijo hereda hereda la implementacin del padre

pero no soporta sus interfaces ni los hace pblicos, violando la semntica de sustitucin (derivacin privada de C++).

Restricciones estndar:
complete: no se permiten hijos adicionales a los ya especificados. incomplete: se permiten hijos adicionales. disjoint: los objetos del padre no pueden tener ms de uno de los

hijos como tipo. overlapping: los objetos del padre pueden tener ms de uno de los hijos como tipo.
Luis Joyanes, Salvador Snchez, Hctor Castn Universidad Pontificia de Salamanca en Madrid
Departamento de Lenguajes y Sistemas Informticos e Ingeniera del Software

Octubre 1999
19

Asociacin
Adornos bsicos: nombre, roles, multiplicidades y agregacin. Otros adornos:

Navegacin: permite indicar la direccin de navegacin ms eficiente.


Usuario Directorio

Visibilidad: visibilidad de los extremos (por defecto es pblica).


Usuario +propietario -clave Clave

Calificacin: permite especificar cualificadores. Como en OMT. Especificador de interfaz: permite especificar el rol que se desempea.
nombreRol : nombreInterfaz trabajador : IEmpleado
supervisor : IGestor

Luis Joyanes, Salvador Snchez, Hctor Castn Universidad Pontificia de Salamanca en Madrid
Departamento de Lenguajes y Sistemas Informticos e Ingeniera del Software

Octubre 1999
20

Asociacin (ll)

Clases asociacin: modelado de las propiedades de una asociacin.


Usuario Directorio

Permiso

UML define 5 restricciones aplicables a las asociaciones:


implicit: no es una relacin manifiesta sino conceptual. ordered: el conjunto de objetos del extremo sigue un orden. changeable: se pueden aadir, modificar y eliminar enlaces. addOnly: se pueden aadir enlaces desde un objeto del extremo.

frozen: los enlaces una vez aadidos no se pueden modificar.

Luis Joyanes, Salvador Snchez, Hctor Castn Universidad Pontificia de Salamanca en Madrid
Departamento de Lenguajes y Sistemas Informticos e Ingeniera del Software

Octubre 1999
21

Realizacin
Relacin semntica entre clasificadores, en la que uno especifica un contrato y otro garantiza que lo cumplir. En la representacin, la punta de flecha apunta al clasificador que especifica el contrato. 2 usos habituales:
Mostrar la relacin entre un caso de uso y la colaboracin que lo realiza:
Validar contrasea Caso de Uso Validacin Colaboracin

Luis Joyanes, Salvador Snchez, Hctor Castn Universidad Pontificia de Salamanca en Madrid
Departamento de Lenguajes y Sistemas Informticos e Ingeniera del Software

Octubre 1999
22

Realizacin (ll)
Mostrar la relacin entre una interfaz y la clase o componente que

proporciona sus servicios:

<<interface>> ChoiceBlock setDefault(choice: Choice) getChoice(): Choice

RadioButtonArray setDefault(choice: Choice) getChoice(): Choice

PopUpMenu setDefault(choice: Choice) getChoice(): Choice

Luis Joyanes, Salvador Snchez, Hctor Castn Universidad Pontificia de Salamanca en Madrid
Departamento de Lenguajes y Sistemas Informticos e Ingeniera del Software

Octubre 1999
23

Realizacin (y lll)
La realizacin se puede mostrar de dos maneras:
Forma cannica: estereotipo + lnea dirigida discontnua Forma abreviada: notacin en forma de cabeza de alfiler
<<interface>> ChoiceBlock
setDefault(choice) getChoice(): Choice

PopUpMenu

ChoiceBlock
PopUpMenu setDefault(choice) getChoice(): Choice Forma cannica Forma abreviada

Luis Joyanes, Salvador Snchez, Hctor Castn Universidad Pontificia de Salamanca en Madrid
Departamento de Lenguajes y Sistemas Informticos e Ingeniera del Software

Octubre 1999
24

Tcnicas comunes de modelado de redes de relaciones


Aplicar los caso de uso y los escenarios para descubrir las relaciones entre el conjunto de abstracciones. Comenzar modelando las relaciones estructurales. Luego identificar posibles generalizaciones/especializaciones usando la herencia mltiple con moderacin. Por ltimo buscar dependencias como formas ms sutiles de conexin. Para todas las relaciones, comenzar por su forma bsica para ms adelante aplicar caractersticas avanzadas. Resaltar los conjuntos interesantes de relaciones en diagramas aparte.

Luis Joyanes, Salvador Snchez, Hctor Castn Universidad Pontificia de Salamanca en Madrid
Departamento de Lenguajes y Sistemas Informticos e Ingeniera del Software

Octubre 1999
25

Interfaces, Tipos y Roles

Luis Joyanes, Salvador Snchez, Hctor Castn Universidad Pontificia de Salamanca en Madrid
Departamento de Lenguajes y Sistemas Informticos e Ingeniera del Software

Octubre 1999
26

Revisin de trminos y conceptos


Interfaz: coleccin de operaciones que especifica un servicio de una clase o un componente. Tipo: estereotipo de una clase que especifica un dominio de objetos y las operaciones aplicables al objeto. Rol: comportamiento de una entidad participante en un contexto particular. Representacin de las interfaces:
<<interface>> Empleado obtenerSueldo() obtenerBeneficios()

Persona

Empleado

Luis Joyanes, Salvador Snchez, Hctor Castn Universidad Pontificia de Salamanca en Madrid
Departamento de Lenguajes y Sistemas Informticos e Ingeniera del Software

Octubre 1999
27

Revisin de trminos y conceptos (y ll)


Una interfaz puede intervenir en relaciones de generalizacin, asociacin, dependencia y, obviamente, de realizacin. Especifica un contrato para una clase o componente pero no su implementacin. UML permite ampliar la informacin que recibe una interfaz:
asociando pre y postcondiciones a cada operacin e invariantes a la clase o

componente (se puede usar OCL). asociando una mquina de estados a la interfaz para especificar el orden de las operaciones. asociando colaboraciones a la interfaz que especifiquen su comportamiento esperado.

Una interfaz representa un rol de una clase en una asociacin.

Luis Joyanes, Salvador Snchez, Hctor Castn Universidad Pontificia de Salamanca en Madrid
Departamento de Lenguajes y Sistemas Informticos e Ingeniera del Software

Octubre 1999
28

Modelado de las fronteras de un sistema


Las interfaces pueden utilizarse para modelar las fronteras de un sistema formado por componentes comprados, reutilizados o nuevos. Para modelar las fronteras:
dibujar una lnea alrededor de componentes que tienden a acoplarse. refinar la agrupacin agrupando juntos los que cambian juntos. identificar las operaciones que cruzan las fronteras. empaquetar como interfaces los conjuntos de operaciones y seales

anteriores, utilizando criterios lgicos de agrupamiento. para cada colaboracin identificar


interfaces en que se basa (importa) interfaces que ofrece (exporta)

documentar las interfaces con pre y postcondiciones, invariantes, etc.

Luis Joyanes, Salvador Snchez, Hctor Castn Universidad Pontificia de Salamanca en Madrid
Departamento de Lenguajes y Sistemas Informticos e Ingeniera del Software

Octubre 1999
29

Modelado de tipos dinmicos


La mayora de lenguajes slo soporta tipos estticos, pero muchos objetos (p.e. de negocio) cambian sus roles en un flujo de trabajo. Para modelar un tipo dinmico:
especificar los tipos posibles utilizando una clase estereotipada. modelar todos los roles
utilizando la generalizacin, o asociando un tipo a cada rol de la clase.

representar cada instancia dinmica en un diagrama de interaccin. Mostrar el cambio para cada objeto, dibujndolo una vez para cada rol.

Luis Joyanes, Salvador Snchez, Hctor Castn Universidad Pontificia de Salamanca en Madrid
Departamento de Lenguajes y Sistemas Informticos e Ingeniera del Software

Octubre 1999
30

Ejemplo de modelado de tipos

Luis Joyanes, Salvador Snchez, Hctor Castn Universidad Pontificia de Salamanca en Madrid
Departamento de Lenguajes y Sistemas Informticos e Ingeniera del Software

Octubre 1999
31

Paquetes

Luis Joyanes, Salvador Snchez, Hctor Castn Universidad Pontificia de Salamanca en Madrid
Departamento de Lenguajes y Sistemas Informticos e Ingeniera del Software

Octubre 1999
32

Conceptos avanzados sobre paquetes


Paquete: mecanismo de propsito general para organizar elementos en grupos. Puede contener: clases, interfaces, componentes, nodos, colaboraciones, casos de uso, diagramas y otros paquetes. Forma un espacio de nombres. El paquete raz de un modelo es annimo. Visibilidad de los elementos:
+ publico -privado #protegido

Luis Joyanes, Salvador Snchez, Hctor Castn Universidad Pontificia de Salamanca en Madrid
Departamento de Lenguajes y Sistemas Informticos e Ingeniera del Software

Octubre 1999
33

Conceptos avanzados sobre paquetes (y ll)


Relaciones: generalizacin y dependencia (acceso e importacin). Estereotipos estndar aplicables a paquetes:
facade: un paquete slo es una vista de otro. framework: paquete que consta principalmente de patrones. stub: paquete abreviado. Sirve de proxy de otro. subsystem: representa un subsistema. system: 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 hay equipos diferentes trabajando sobre el

mismo paquete.

Luis Joyanes, Salvador Snchez, Hctor Castn Universidad Pontificia de Salamanca en Madrid
Departamento de Lenguajes y Sistemas Informticos e Ingeniera del Software

Octubre 1999
34

Tcnicas comunes de modelado


Modelado de grupos de elementos:
buscar grupos de elementos similares conceptual o semnticamente. englobar cada grupo en un paquete. determinar en cada paquete las visibilidades de los elementos. establecer las dependencias de importacin y acceso entre paquetes.
import: permiso de acceso de un solo sentido sin aadir nombres al paquete

cliente, lo que obliga a usar nombres de ruta. access: permiso de acceso de un solo sentido en el que los nombres del paquete proveedor se aaden al espacio de nombres del cliente.
establecer jerarquas de generalizacin entre los paquetes si existen.

Luis Joyanes, Salvador Snchez, Hctor Castn Universidad Pontificia de Salamanca en Madrid
Departamento de Lenguajes y Sistemas Informticos e Ingeniera del Software

Octubre 1999
35

Tcnicas comunes de modelado (ll)


Modelado de vistas arquitectnicas:
identificar el conjunto de vistas arquitectnicas significativas en el

contexto del problema. Usualmente:

vista diseo + v. procesos + v. implementacin + v. despliegue + v. casos uso


colocar cada elemento y diagrama en el paquete adecuado. agrupar si es necesario estos elementos en paquetes.

establecer la visibilidad entre vistas: normalmente abierta entre las vistas

de ms alto nivel.

Vista de diseo

Vista de implementacin Vista de casos de uso

Vista de procesos

Vista de despliegue

Luis Joyanes, Salvador Snchez, Hctor Castn Universidad Pontificia de Salamanca en Madrid
Departamento de Lenguajes y Sistemas Informticos e Ingeniera del Software

Octubre 1999
36

Instancias

Luis Joyanes, Salvador Snchez, Hctor Castn Universidad Pontificia de Salamanca en Madrid
Departamento de Lenguajes y Sistemas Informticos e Ingeniera del Software

Octubre 1999
37

Revisin de trminos y conceptos


Instancia: manifestacin concreta de una abstraccin. Representacin grfica: subrayando su nombre. Estereotipos estndar aplicables a las relaciones clase-objeto:
instanceOf: el objeto es una instancia del clasificador destino. instantiate: la clase origen crea instancias de la clase destino.

Estereotipos estndar para instancias de mensajes y transiciones:


become: el destino es el mismo que el origen en un instante posterior. copy: el destino es una copia igual del origen pero independiente.

Restriccin estndar para objetos:


transient: la instancia se crea y se destruye durante la colaboracin.

Luis Joyanes, Salvador Snchez, Hctor Castn Universidad Pontificia de Salamanca en Madrid
Departamento de Lenguajes y Sistemas Informticos e Ingeniera del Software

Octubre 1999
38

Diagramas de Objetos

Luis Joyanes, Salvador Snchez, Hctor Castn Universidad Pontificia de Salamanca en Madrid
Departamento de Lenguajes y Sistemas Informticos e Ingeniera del Software

Octubre 1999
39

You might also like