Subido por Oscar Abuawad

Tutorial de UML

Anuncio
Tutorial de UML
Introducción:
E l Lenguaje de Modelamiento Unificado (UML - Unified Modeling Language) es un
lenguaje gráfico para vis ualizar, es pecificar y documentar cada una de las partes
que comprende el des arrollo de s oftware. UML entrega una forma de modelar
cos as conceptuales como lo s on proces os de negocio y funciones de s is tema,
además de cos as concretas como lo s on es cribir clas es en un lenguaje
determinado, es quemas de bas e de datos y componentes de s oftware reus ables .
Objetivos:
E ntregar un material de apoyo que le permita al lector poder definir diagramas
propios como también poder entender el modelamiento de diagramas ya
exis tentes .
Audiencia:
E l pres ente documento es ta orientado a alumnos que ya pos een ciertos conceptos
de OOP (o es tan haciendo un curs o) y a s u vez conocen algún lenguaje Orientado
a Objetos (ejemplo: C++ o Java), por lo tanto no es un curs o en s i, s ino más bien
un material de apoyo al es tudiante.
Contenidos:
E l documento contempla el es tudio de tres diagramas :
•
•
•
Modelamiento de Clases
Casos de Uso
Diagrama de Interacción
A s u vez el es tudio de un problema completo que los involucra (E l Hotel),
http://www.dcc.uchile.cl/~ps alinas /uml/ejemplo/ejemplo.html
utilizando como herramienta cas e R ational R os e http://www.rational.com
Modelo de Clases
Introducción
Un diagrama de clas es s irve para vis ualizar las relaciones entre las clas es que
involucran el s is tema, las cuales pueden s er as ociativas , de herencia, de us o y de
contenimiento.
Un diagrama de clas es es ta compues to por los s iguientes elementos :
•
•
Clase: atributos, métodos y visibilidad.
Relaciones: Herencia, Composición, Agregación, Asociación y Uso.
E lementos
•
Clase
E s la unidad bás ica que encaps ula toda la información de un Objeto (un
objeto es una ins tancia de una clas e). A través de ella podemos modelar el
entorno en es tudio (una Cas a, un Auto, una Cuenta Corriente, etc.).
E n UML, una clas e es repres entada por un rectángulo que pos ee tres
divis iones :
E n donde:
o
o
o
Superior: Contiene el nombre de la Clase
Intermedio: Contiene los atributos (o variables de instancia) que
caracterizan a la Clase (pueden ser private, protected o public).
Inferior: Contiene los métodos u operaciones, los cuales son la forma como
interactúa el objeto con su entorno (dependiendo de la visibilidad: private,
protected o public).
E jemplo:
Una Cuenta Corriente que pos ee como caracterís tica:
o
Balance
Puede realizar las operaciones de:
o
o
o
Depositar
Girar
y Balance
E l dis eño as ociado es :
Atributos y Métodos :
o
Atributos:
Los atributos o caracterís ticas de una Clas e pueden s er de tres tipos ,
los que definen el grado de comunicación y vis ibilidad de ellos con el
entorno, es tos s on:
♣
public (+,
): Indica que el atributo será visible tanto dentro
como fuera de la clase, es decir, es accsesible desde todos lados.
♣
private (-,
): Indica que el atributo sólo será accesible desde
dentro de la clase (sólo sus métodos lo pueden accesar).
protected (#,
): Indica que el atributo no será accesible desde
fuera de la clase, pero si podrá ser accesado por métodos de la clase
además de las subclases que se deriven (ver herencia).
Métodos:
♣
o
Los métodos u operaciones de una clas e s on la forma en como és ta
interactúa con s u entorno, és tos pueden tener las caracterís ticas :
♣
public (+, ): Indica que el método será visible tanto dentro como
fuera de la clase, es decir, es accsesible desde todos lados.
♣
private (-,
): Indica que el método sólo será accesible desde
dentro de la clase (sólo otros métodos de la clase lo pueden accesar).
protected (#,
): Indica que el método no será accesible desde
fuera de la clase, pero si podrá ser accesado por métodos de la clase
además de métodos de las subclases que se deriven (ver herencia).
Relaciones entre Clases:
♣
•
Ahora ya definido el concepto de Clas e, es neces ario explicar como s e
pueden interrelacionar dos o más clas es (cada uno con caracterís ticas y
objetivos diferentes ).
Antes es neces ario explicar el concepto de cardinalidad de relaciones : E n
UML, la cardinalidad de las relaciones indica el grado y nivel de
dependencia, s e anotan en cada extremo de la relación y és tas pueden s er:
o
o
o
iv.
uno o muchos: 1..* (1..n)
0 o muchos: 0..* (0..n)
número fijo: m (m denota el número).
Herencia (Especialización/Generalización):
Indica que una s ubclas e hereda los métodos y atributos
es pecificados por una S uper Clas e, por ende la S ubclas e además de
pos eer s us propios métodos y atributos , pos eerá las caracterís ticas y
atributos vis ibles de la S uper Clas e (public y protected), ejemplo:
E n la figura s e es pecifica que Auto y Camión heredan de Vehículo,
es decir, Auto pos ee las Caracterís ticas de Vehículo (Precio, VelMax,
etc) además pos ee algo particular que es Des capotable, en cambio
Camión también hereda las caracterís ticas de Vehiculo (Precio,
VelMax, etc) pero pos ee como particularidad propia Acoplado, T ara y
Carga.
Cabe des tacar que fuera de es te entorno, lo único "vis ible" es el
método Caracteris ticas aplicable a ins tancias de Vehículo, Auto y
Camión, pues tiene definición publica, en cambio atributos como
Des capotable no s on vis ibles por s er privados .
v.
Agregación:
Para modelar objetos complejos , n bas tan los tipos de datos bás icos
que proveen los lenguajes : enteros , reales y s ecuencias de
caracteres . Cuando s e requiere componer objetos que s on ins tancias
de clas es definidas por el des arrollador de la aplicación, tenemos
dos pos ibilidades :
Por Valor: Es un tipo de relación estática, en donde el tiempo de
vida del objeto incluido esta condicionado por el tiempo de vida del
que lo incluye. Este tipo de relación es comunmente llamada
Composición (el Objeto base se contruye a partir del objeto incluido,
es decir, es "parte/todo").
♣ Por Referencia: Es un tipo de relación dinámica, en donde el tiempo
de vida del objeto incluido es independiente del que lo incluye. Este
tipo de relación es comunmente llamada Agregación (el objeto base
utiliza al incluido para su funcionamiento).
♣
Un E jemplo es el s iguiente:
E n donde s e des taca que:
Un Almacen posee Clientes y Cuentas (los rombos van en el objeto
que posee las referencias).
♣ Cuando se destruye el Objeto Almacen también son destruidos los
objetos Cuenta asociados, en cambio no son afectados los objetos
Cliente asociados.
♣ La composición (por Valor) se destaca por un rombo relleno.
♣ La agregación (por Referencia) se destaca por un rombo
transparente.
♣
La flecha en es te tipo de relación indica la navegabilidad del objeto
refereniado. Cuando no exis te es te tipo de particularidad la flecha s e
elimina.
vi.
Asociación:
La relación entre clas es conocida como As ociación, permite as ociar
objetos que colaboran entre s i. Cabe des tacar que no es una
relación fuerte, es decir, el tiempo de vida de un objeto no depende
del otro.
E jemplo:
Un cliente puede tener as ociadas muchas Ordenes de Compra, en
cambio una orden de compra s olo puede tener as ociado un cliente.
vii.
Dependencia o Instanciación (uso):
R epres enta un tipo de relación muy particular, en la que una clas e es
ins tanciada (s u ins tanciación es dependiente de otro objeto/clas e).
S e denota por una flecha punteada.
E l us o más particular de es te tipo de relación es para denotar la
dependencia que tiene una clas e de otra, como por ejemplo una
aplicación grafica que ins tancia una ventana (la creación del Objeto
Ventana es ta condicionado a la ins tanciación proveniente des de el
objeto Aplicacion):
Cabe des tacar que el objeto creado (en es te cas o la Ventana gráfica)
no s e almacena dentro del objeto que lo crea (en es te cas o la
Aplicación).
•
Casos Particulares:
o
Clase Abstracta:
Una clas e abs tracta s e denota con el nombre de la clas e y de los
métodos con letra "itálica". E s to indica que la clas e definida no puede
s er ins tanciada pues pos ee métodos abs tractos (aún no han s ido
definidos , es decir, s in implementación). La única forma de utilizarla
es definiendo s ubclas es , que implementan los métodos abs tractos
definidos .
o
Clase parametrizada:
Una clas e parametrizada s e denota con un s ubcuadro en el extremo
s uperior de la clas e, en donde s e es pecifican los parámetros que
deben s er pas ados a la clas e para que es ta pueda s er ins tanciada.
E l ejemplo más típico es el cas o de un Diccionario en donde una
llave o palabra tiene as ociado un s ignificado, pero en es te cas o las
llaves y elementos pueden s er genéricos . La genericidad puede venir
dada de un T emplate (como en el cas o de C++) o bien de alguna
es tructura predefinida (es pecialización a través de clas es ).
E n el ejemplo no s e es pecificaron los atributos del Diccionario, pues
ellos dependerán exclus ivamente de la implementación que s e le
quiera dar.
E jemplo:
S upongamos que tenemos tenemos un el cas o del Diccionario implementado
mediante un árbol binario, en donde cada nodo pos ee:
•
•
key: Variable por la cual se realiza la búsqueda, puede ser generica.
item: Contenido a almacenar en el diccionario asociado a "key", cuyo tipo también
puede ser genérico.
Para es te cas o particular hemos definido un Diccionario para almacenar S tring y
Pers onas , las cuales pueden funcionar como llaves o como item, s olo s e
mos trarán las relaciones para la implementación del Diccionario:
Casos de Uso (Use Case)
Introducción
E l diagrama de cas os de us o repres enta la forma en como un Cliente (Actor)
opera con el s is tema en des arrollo, además de la forma, tipo y orden en como los
elementos interactuan (operaciones o cas os de us o).
Un diagrama de cas os de us o cons ta de los s iguientes elementos :
•
•
•
Actor.
Casos de Uso.
Relaciones de Uso, Herencia y Comunicación.
E lementos
•
Actor:
Una definición previa, es que un Actor es un rol que un us uario juega con
res pecto al s is tema. E s importante des tacar el us o de la palabra rol, pues
con es to s e es pecifica que un Actor no neces ariamente repres enta a una
pers ona en particular, s ino más bien la labor que realiza frente al s is tema.
Como ejemplo a la definición anterior, tenemos el cas o de un s is tema de
ventas en que el rol de Vendedor con res pecto al s is tema puede s er
realizado por un Vendedor o bien por el Jefe de Local.
•
Caso de Uso:
E s una operación/tarea es pecífica que s e realiza tras una orden de algún
agente externo, s ea des de una petición de un actor o bien des de la
invocación des de otro cas o de us o.
•
Relaciones:
o
Asociación
E s el tipo de relación más bás ica que indica la invocación des de un
actor o cas o de us o a otra operación (cas o de us o). Dicha relación s e
denota con una flecha s imple.
o
Dependencia o Instanciación
E s una forma muy particular de relación entre clas es , en la cual una
clas e depende de otra, es decir, s e ins tancia (s e crea). Dicha
relación s e denota con una flecha punteada.
o
Generalización
E s te tipo de relación es uno de los más utilizados , cumple una doble
función dependiendo de s u es tereotipo, que puede s er de Uso
(<<us es >>) o de Herencia (<<extends >>).
E s te tipo de relación es ta orientado exclus ivamente para cas os de
us o (y no para actores ).
extends: S e recomienda utilizar cuando un cas o de us o es s imilar a
otro (caracterís ticas ).
uses: S e recomienda utilizar cuando s e tiene un conjunto de
caracterís ticas que s on s imilares en más de un cas o de us o y no s e
des ea mantener copiada la des cripción de la caracterís tica.
De lo anterior cabe mencionar que tiene el mis mo paradigma en
dis eño y modelamiento de clas es , en donde es ta la duda clás ica de
usar o heredar.
E jemplo:
Como ejemplo es ta el cas o de una Máquina R ecicladora:
S is tema que controla una máquina de reciclamiento de botellas , tarros y jabas . E l
s is tema debe controlar y/o aceptar:
•
•
•
•
•
Registrar el número de ítemes ingresados.
Imprimir un recibo cuando el usuario lo solicita:
a. Describe lo depositado
b. El valor de cada item
c. Total
El usuario/cliente presiona el botón de comienzo
Existe un operador que desea saber lo siguiente:
a. Cuantos ítemes han sido retornados en el día.
b. Al final de cada día el operador solicita un resumen de todo lo depositado en
el día.
El operador debe además poder cambiar:
a. Información asociada a ítemes.
b. Dar una alarma en el caso de que:
i.
Item se atora.
ii.
No hay más papel.
Como una primera aproximación identificamos a los actores que interactuan con el
s is tema:
Luego, tenemos que un Cliente puede Depos itar Itemes y un Operador puede
cambiar la información de un Item o bien puede Imprimir un informe:
Además podemos notar que un item puede s er una Botella, un T arro o una Jaba.
Otro as pecto es la impres ión de comprobantes , que puede s er realizada des pués
de depos itar algún item por un cliente o bien puede s er realizada a petición de un
operador.
E ntonces , el dis eño completo del diagrama Us e Cas e es :
Diagrama de Interacción
Introducción
E l diagrama de interacción, repres enta la forma en como un Cliente (Actor) u
Objetos (Clas es ) s e comunican entre s i en petición a un evento. E s to implica
recorrer toda la s ecuencia de llamadas , de donde s e obtienen las
res pons abilidades claramente.
Dicho diagrama puede s er obtenido de dos partes , des de el Diagrama E s tático de
Clas es o el de Cas os de Us o (s on diferentes ).
Los componentes de un diágrama de interacción s on:
•
•
•
Un Objeto o Actor.
Mensaje de un objeto a otro objeto.
Mensaje de un objeto a si mismo.
E lementos
•
Objeto/Actor:
E l rectángulo repres enta una ins tancia de un Objeto en particular, y la línea
punteada repres enta las llamadas a métodos del objeto.
•
Mensaje a Otro Objeto:
S e repres enta por una flecha entre un objeto y otro, repres enta la llamada
de un método (operación) de un objeto en particular.
•
Mensaje al Mismo Objeto:
No s olo llamadas a métodos de objetos externos pueden realizars e,
también es pos ible vis ualizar llamadas a métodos des de el mis mo objeto en
es tudio.
E jemplo
E n el pres ente ejemplo, tenemos el diagrama de interacción proveniente del
s iguiente modelo es tatico:
Aquí s e repres enta una aplicación que pos ee una Ventana gráfica, y és ta a s u vez
pos ee internamente un botón.
E ntonces el diagrama de interacción para dicho modelo es :
E n donde s e hacen notar las s uces ivas llamadas a Draw() (entre objetos ) y la
llamada a Paint() por el objeto Botón.
Ejemplo - Tutorial UML
"Hotel"
E l dueño de un hotel le pide a us ted des arrollar un programa para cons ultar s obre
las piezas dis ponibles y res ervar piezas de s u hotel.
E l hotel pos ee tres tipos de piezas : s imple, doble y matrimonial, y dos tipos de
clientes : habituales y es porádicos . Una res ervación almacena datos del cliente, de
la pieza res ervada, la fecha de comienzo y el número de días que s erá ocupada la
pieza.
E l recepcionis ta del hotel debe poder hacer la s iguientes operaciones :
•
•
•
•
•
•
•
Obtener un listado de las piezas disponible de acuerdo a su tipo
Preguntar por el precio de una pieza de acuerdo a su tipo
Preguntar por el descuento ofrecido a los clientes habituales
Preguntar por el precio total para un cliente dado, especificando su numero de RUT,
tipo de pieza y número de noches.
Dibujar en pantalla la foto de un pieza de acuerdo a su tipo
Reservar una pieza especificando el número de la pieza, rut y nombre del cliente.
Eliminar una reserva especificando el número de la pieza
E l adminis trador puede us ar el programa para:
•
•
•
Cambiar el precio de una pieza de acuerdo a su tipo
Cambiar el valor del descuento ofrecido a los clientes habituales
Calcular las ganancias que tendrán en un mes especificado (considere que todos los
meses tienen treinta días).
E l hotel pos ee información s obre cuales clientes s on habituales . E s ta es tructura
puede manejarla con un diccionario, cuya clave s ea el número de R UT y como
s ignificado tenga los datos pers onales del cliente.
E l dis eño a des arrollar debe facilitar la extens ibilidad de nuevos tipos de pieza o
clientes y a s u vez permitir agregar nuevas cons ultas .
E l pres ente ejemplo contempla los s iguientes diagramas :
•
•
•
Casos de uso
Diagrama de clases
Dos diagramas de interacción
E l contenido del pres ente ejemplo lo puedes obtener des de el s iguiente archivo:
hotel.zip (requerimientos : R ational R os e 98i).
CASOS DE USO
DIAGRAMA DE CLASES
DIAGRAMA DE INTERACCION
Descargar