Está en la página 1de 10

Qu es UML?

UML (Unified Modeling Language) es un lenguaje visual


para crear modelos de sistemas.

UML fue desarrollado por el trabajo conjunto de los Tres


Diagramas de clases de UML Amigos

Est compuesto por distintos diagramas, para apoyar


Franco Guidi Polanco distintas etapas de desarrollo:
Escuela de Ingeniera Industrial Anlisis
Pontificia Universidad Catlica de Valparaso, Chile Diseo
fguidi@ucv.cl Instalacin (deployment)

Actualizacin: 04 de abril de 2007


Franco Guidi Polanco (PUCV-EII) 2

Los Tres Amigos Por qu usar UML?

UML es principalmente una herramienta de


comunicacin:
con uno mismo
con los miembros de un equipo de desarrollo
Ivar Jacobson
Jim Rumbaugh con el cliente

Grady Booch Ventajas de utilizarlo:


Permite capturar adecuadamente los requerimientos
Apoya correcta comprensin de un sistema por parte de
distintos miembros de un proyecto de desarrollo

Franco Guidi Polanco (PUCV-EII) 3 Franco Guidi Polanco (PUCV-EII) 4


Diagramas de UML Diagrama de clases de UML

Casos de Uso Describe las clases y muestra las relaciones entre


Clases ellas.
Objetos
Statechart Tipos de relaciones:
Actividades Is-a: una clase es del tipo de otra clase
Asociaciones entre clases:
Secuencia Una clase contiene a otra clase (Has-a)
Colaboracin Agregacin
Composicin
Componentes Una clase usa otra clase (Uses-a)
Una clase crea a otra clase

Franco Guidi Polanco (PUCV-EII) 5 Franco Guidi Polanco (PUCV-EII) 6

Representacin de clases Representacin de clases (II)

MiClase MiClase
MiClase

La figura de la izquierda muestra el smbolo para una En la forma completa del smbolo:
clase en su forma completa, y el de la derecha en su El compartimento superior est destinado al nombre de la
forma abreviada. clase.
El compartimento del medio muestra los atributos de la
Por convencin, los nombres de clases comienzan clase.
con maysculas y deben estar escritos con letra de El compartimento inferior muestra las operaciones.
tipo bold en sus smbolos.

Franco Guidi Polanco (PUCV-EII) 7 Franco Guidi Polanco (PUCV-EII) 8


Atributos Operaciones

Los atributos representan informacin acerca de un Se ubican en el compartimento inferior de las


objeto. clases.
El trmino atributo no es exactamente sinnimo de
variable. Un atributo representa una propiedad
definida en trminos abstractos, mientras que una Persona
variable es el mecanismo de implementacin del
nombre: String
atributo. fechaDeNacimiento: date
altura:float

getNombre():String
setNombre(nombre:String)
Persona Operaciones ...
getEdad():integer
nombre: String getAltura():float
fechaDeNacimiento: date setAltura(altura:float)
Atributos
altura: float

Franco Guidi Polanco (PUCV-EII) 9 Franco Guidi Polanco (PUCV-EII) 10

Operaciones sobrecargadas Visibilidad de atributos y operaciones

Las operaciones sobrecargadas aparecen varias UML aade un prefijo a las operaciones y atributos
veces en el smbolo de la clase (en cada ocasin para indicar su visibilidad:
con diferente cantidad o tipo de argumentos).
+ para atributos y operaciones pblicas .
# para atributos y operaciones protegidas.
Una de las - para atributos y operaciones privadas.
Producto versiones de la
operacin

Si se omite el prefijo, se asume que el atributo u


rebajarPrecio
precio: float reduce el precio del
... producto en una operacin es pblica.
cantidad
registrarVenta(fecha:Date, numUnidades:int)
predeterminada y la
rebajarPrecio()
otra recibe un
rebajarPrecio(descuento: Porcentaje);
porcentaje de
descuento.

Franco Guidi Polanco (PUCV-EII) 11 Franco Guidi Polanco (PUCV-EII) 12


Atributos y operaciones de clases Operaciones y clases abstractas

Los atributos y operaciones de clase (aquellos que


no pertenecen a una instancia en particular sino
Polgono Polgono
{abstract}
que son compartidos por toda la clase) se area:float area:float
representan en UML subrayados. ... ...
+ getArea():float {abstract} + getArea():float...
...

El nombre de una clase abstracta debe estar en estilo


Registra el nmero de itlico o con la indicacin {abstract}.
OrdenDeCompra
rdenes de compra Las operaciones abstractas tambin deben estar en
creadas. - NumeroDeOrdenes: int estilo itlico o con la indicacin {abstract}.
...
Obtiene en nmero de
+ getNumeroDeOrdenes():int
rdenes de compra ...
creadas.

Franco Guidi Polanco (PUCV-EII) 13 Franco Guidi Polanco (PUCV-EII) 14

Generalizacin: Herencia simple Generalizacin: Herencia simple (II)

VehculoMotorizado
VehculoMotorizado

Automvil Camin
Automvil Camin

Una jerarqua de herencia se muestra utilizando flechas


que apuntan hacia arriba en la jerarqua (en el ejemplo:
Otro estilo para mostrar una jerarqua de
Automvil y Camin son subclases de herencia.
VehculoMotorizado).

Franco Guidi Polanco (PUCV-EII) 15 Franco Guidi Polanco (PUCV-EII) 16


Generalizacin: Herencia mltiple Implementacin de interfaces

Notaciones alternativas:
AparatoVolador VehculoMotorizado

<<interface>> <<interface>>
Terrestre Acutico
Avin Automvil Camin Terrestre Acutico
caminar() nadar()

UML permite mostrar herencia mltiple (cuando una


clase hereda directamente de ms de una superclase).
Anfibio Anfibio
En el ejemplo, un Avin es un AparatoVolador y un
VehculoMotorizado. caminar() caminar()
nadar() nadar()

Franco Guidi Polanco (PUCV-EII) 17 Franco Guidi Polanco (PUCV-EII) 18

Asociaciones Asociaciones (II)

Una asociacin caracteriza un cierto tipo de


relacin que puede darse entre instancias de Propiedad
determinadas clases. propietario DePerro 0..*
Persona Perro
Por ejemplo, si tenemos las clases Persona y 1..1 propiedad

Perro, las siguientes relaciones podran darse entre


sus instancias: La asociacin muestra que existe una relacin de
Juan es propietario de Fido propiedad entre personas y perros, por la cual una
Pedro es propietario de Rintintn persona puede ser propietario de cero o ms perros y
un perro es propiedad de una nica persona.
Pedro es propietario de Lassie

Franco Guidi Polanco (PUCV-EII) 19 Franco Guidi Polanco (PUCV-EII) 20


Asociaciones (III) Ejemplo de asociaciones

Cada asociacin se muestra como una lnea entre


dos clases.
El nombre de la asociacin aparece en la lnea. empleado Empleo 0..1
Persona Empresa
El rol de cada clase en la asociacin aparece al 0..* empleador
lado de la clase, al final de la lnea. 0..* 0..*
residente
La multiplicidad de la asociacin tambin aparece

Re
al final de la lnea.

n
si d

cio
en

ca
bi
c ia

U
1..1

Ciudad 1..*

Franco Guidi Polanco (PUCV-EII) 21 Franco Guidi Polanco (PUCV-EII) 22

Ejemplo de asociaciones (II) Ms sobre asociaciones

Como las empresas emplean personas, existe una No es obligatorio poner nombres a las asociaciones. Sin
asociacin entre las clases Empresa y Persona. El embargo es recomendable (se nombran con un
nombre de esta asociacin es Empleo. sustantivo singular).

El rol de la persona es el de empleado en la No es necesario poner nombres de roles tampoco.


asociacin de empleo.
Una persona puede ser empleada en 0 1 La multiplicidad en un diagrama puede ser debatible,
empresas (0..1); una empresa puede emplear a 0 depende de lo que interese representar en el modelo.
o ms personas (0..*).
Puede existir ms de una asociacin entre un par de
clases. Asimismo, una clase puede tener una asociacin
consigo misma.

Franco Guidi Polanco (PUCV-EII) 23 Franco Guidi Polanco (PUCV-EII) 24


Asociaciones representadas como clases Asociaciones como clases (II)

propietario
Propiedad
0..*
La asociacin PropiedadDePerro se ha promovido a
Persona DePerro Perro una nueva clase, conectada a la asociacin con una
1..1 propiedad
lnea punteada.

Promover una asociacin a clase permite anexarle


PropiedadDePerro atributos y operaciones propias.
...
... En el ejemplo, la clase PropiedadDePerro, puede
registrar la fecha en que un perro fue adquirido por
una cierta persona (atributo fechaDeAdquisicion).
propietario 0..*
Persona Perro
1..1 propiedad

Franco Guidi Polanco (PUCV-EII) 25 Franco Guidi Polanco (PUCV-EII) 26

Navegabilidad de asociaciones Composicin

Propiedad Permite expresar que un objeto se compone de


otros objetos. Por ejemplo, un Avin se compone
DePerro 0..*
Persona Perro
1..1
de un Fuselaje, una Cola y dos Alas (una a cada
Propiedad
DePerro 0..* lado).
Persona Perro
1..1
Propiedad
DePerro 0..*
Persona Perro Avion
1..1

Las asociaciones con cabeza de flecha muestran que existe


un link directo desde un objeto de una clase al otro, lo
que permite un acceso rpido. fuselaje 1 cola 1 alaIzquierda 1 1 alaDerecha
Fuselaje Cola Ala

Franco Guidi Polanco (PUCV-EII) 27 Franco Guidi Polanco (PUCV-EII) 28


Composicin (II) Composicin (III)

La asociacin entre el objeto compuesto y sus El objeto compuesto no existe sin sus componentes.
constituyentes se denota con un una lnea con diamante
relleno en el extremo del objeto compuesto.
Un objeto constituyente puede formar parte de solo un
objeto compuesto a la vez.
El rol del constituyente aparece en el extremo del
constituyente de la asociacin (un objeto constituyente
puede jugar ms de un rol). La composicin suele ser heterognea: los componentes
suelen ser de distintas clases (cola, fuselaje, etc.).
Debe mostrarse la multiplicidad en el extremo del
constituyente de la asociacin.

Franco Guidi Polanco (PUCV-EII) 29 Franco Guidi Polanco (PUCV-EII) 30

Agregacin Agregacin (II)

Permite expresar que un objeto agrupa a otros La asociacin entre el agregado y sus
objetos. Por ejemplo, un Aeropuerto contiene al constituyentes se denota con un una lnea con
conjunto de Aviones que en su loza se encuentran. diamante abierto (no relleno) en el extremo del
agregado.

Aeropuerto
El rol del constituyente aparece en el extremo del
constituyente de la asociacin.
1
Debe mostrarse la multiplicidad en ambos
0..* extremos de la asociacin.
Avin

Franco Guidi Polanco (PUCV-EII) 31 Franco Guidi Polanco (PUCV-EII) 32


Agregacin (III) Creacin

El objeto agregado puede existir potencialmente Se pude representar la idea que una clase es creada por
sin sus objetos constituyentes. otra utilizando la etiqueta <<create>>:

Un objeto constituyente puede ser parte de ms


de uno agregado. GeneradorDeClientes Cliente
<<create>>
... ...
La agregacin tiende a ser homognea: los Cliente getInstance():Cliente ...
objetos constituyentes son de la misma clase.

Franco Guidi Polanco (PUCV-EII) 33 Franco Guidi Polanco (PUCV-EII) 34

Diagrama de Objetos

Muestran fotografas de los objetos


pertenecientes a un sistema, en un momento
determinado.

Diagrama de Objetos de UML Sirven, por ejemplo, para ejemplificar la


configuracin de objetos.
Franco Guidi Polanco
Escuela de Ingeniera Industrial
Pontificia Universidad Catlica de Valparaso, Chile
fguidi@ucv.cl

Franco Guidi Polanco (PUCV-EII) 36


Representacin Ejemplo

miObjeto:MiClase miObjeto:MiClase
informtica:Departamento

Los smbolos son anlogos a los de las clases, pero en el


compartimento del nombre se usa el estilo subrayado y no bold. Mario:Empleado seguridad:Proyecto

rut=1.111.111-k cdigo = MN-1245


El nombre del objeto adopta la sintaxis nombreDeInstancia:
fecha inicio = 12/03/2006
NombreDeClase.
nuevoPortal:Proyecto
Si no se tiene un buen nombre para un objeto se puede dejar annimo,
por ejemplo, :NombreDeClase es una notacin aceptable.
cdigo = YX-3321
:LiquidacinSueldo fecha inicio = 01/10/2004
Pueden incluirse valores de los atributos que se estime convenientes
pago=1.350.000

Franco Guidi Polanco (PUCV-EII) 37 Franco Guidi Polanco (PUCV-EII) 38

También podría gustarte