Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Casos prcticos
de UML
Celia Gutirrez Coso
ISBN: 978-84-9938-100-8
Esta editorial es miembro de la UNE, lo que garantiza la difusin y comercializacin de sus
publicaciones a nivel nacional e internacional.
Prlogo
ndice
Caso prctico 1: Sistema de gestin de agendas y reuniones
Enunciado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Diagramas de casos de uso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Especificaciones de casos de uso. . . . . . . . . . . . . . . . . . . . . . . . . 13
Diagrama de clases (diseo previo) . . . . . . . . . . . . . . . . . . . . . 13
Diagrama de clases (diseo detallado) . . . . . . . . . . . . . . . . . . . 14
Re-estructuracin del rbol. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Diagrama de secuencia (diseo previo) . . . . . . . . . . . . . . . . . . 15
Diagrama de secuencia (diseo detallado) . . . . . . . . . . . . . . . . 18
Refinamiento del diagrama de casos de uso y
especificaciones de casos de uso . . . . . . . . . . . . . . . . . . . . . 20
Refinamiento del diagrama de clases . . . . . . . . . . . . . . . . . . . . 21
Solucin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Diagramas de casos de uso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Diagramas de agenda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Especificaciones de casos de uso . . . . . . . . . . . . . . . . . . . . . . . . 27
Diagrama de clases (previo y detallado) . . . . . . . . . . . . . . . . . . 31
Re-estructuracin del rbol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Diagramas de secuencia previos . . . . . . . . . . . . . . . . . . . . . . . . 32
Diagramas de secuencia detallados . . . . . . . . . . . . . . . . . . . . . . 39
Caso Prctico 2: Editor de Documentos Parole
Enunciado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Solucin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Caso prctico 3: Sistema Operativo Maxix
Enunciado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Solucin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Diagrama de casos de uso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Diagrama de clases. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Diagrama de secuencia detallado. . . . . . . . . . . . . . . . . . . . . . . .
53
55
55
56
57
61
63
64
65
65
66
67
68
71
73
74
75
76
78
79
CASO PRCTICO 1:
Sistema de gestin de agendas y reuniones
10
11
12
d.
e.
f.
Las relaciones entre casos de uso deben ser las correctas segn el
enunciado.
Correcta estructuracin en paquetes.
No poner casos de uso en los que solo haya que apretar un botn
por ejemplo (deben recoger la suficiente funcionalidad como para
que formen un caso de uso; si bien esto se ver con ms detalle en
las especificaciones).
13
b.
14
15
La
opcin
CrearTarea
debe
Postcondiciones salida:
Condicin final exitoso: Tarea y su entrada en
calendario creadas. Mensaje "Tarea y entrada
Calendario creados"
el
de
"Tarea
entrada
16
Figura 2. Diagrama de secuencia previo para la secuencia normal del caso de uso CrearTarea
17
Figura 3. Diagrama de secuencia previo para el flujo alternativo del caso de uso CrearTarea.
18
Figura 4. Diagrama de secuencia detallado para la secuencia normal del caso de uso CrearTarea
19
Figura 5. Diagrama de secuencia detallado para el flujo alternativo del caso de uso CrearTarea
20
21
Solucin
22
Diagramas de agenda
23
24
25
26
Figura 13. Diagrama de relaciones entre actores (dentro de los casos de uso)
27
28
29
Flujo alternativo a:
1a. El AdministradorReunion pulsa Cancelar
2a. El SistemaGestionReunion da el mensaje "Reunion no
creada y no apuntada en agenda"
Flujo alternativo b:
3b. El AdministradorReunion pulsa Cancelar
4b. "Reunion no creada y no apuntada en agenda"
Flujo alternativo c:
7c. El AdministradorReunion pulsa Cancelar
8c. "Reunion no creada y no apuntada en agenda"
30
31
32
Figura 16. Diagrama de secuencia previo del caso de uso CrearTarea (secuencia normal)
Figura 17. Diagrama de secuencia previo del caso de uso CrearTarea (flujo alternativo)
33
34
Figura 19. Diagrama de secuencia previo del caso del uso ConcertarReunion Arbitraria
(flujo alternativo a)
35
36
37
38
Figura 26. Diagrama de secuencia detallado para el caso de uso CrearTarea (flujo alternativo a)
39
40
41
42
43
44
CASO PRCTICO 2:
Editor de Documentos Parole
45
46
Caso Prctico 2:
Editor de Documentos Parole2
Enunciado
Crear un diagrama de clases para representar la funcionalidad de un editor
de documentos llamado Parole que admita agrupamiento. El agrupamiento
es un concepto ampliamente utilizado por los editores de documentos.
Suponer que un documento consta de varias pginas (al menos una). Cada
pgina contiene objetos representables, que son textos, objetos grficos y
grupos (tal vez ninguna, es el caso de cuando se abre un nuevo
documento). Un grupo consta de, un conjunto de objetos representables, y
puede constar de otros grupos. Un grupo debe contener al menos dos
objetos representables, mientras que un objeto representable solo puede ser
parte de un grupo como mximo. (Tambin puede ser que no forme parte
de ningn grupo). Un grupo solo puede formar parte de otro grupo como
mximo. Los objetos representables deben existir siempre en el contexto
de una pgina; las pginas solo deben existir en el contexto de un
documento; adems, si existen elementos contenidos en un grupo y ste
desaparece, tambin desaparecen los elementos contenidos en l. Los
objetos grficos pueden ser curvilneos polgonos. Los curvilneos
pueden ser crculos elipses, y los polgonos pueden ser rectngulos,
tringulos y cuadrados.
Solucin
Segn el enunciado del problema, se pueden extraer las siguientes clases:
Documento
Pgina
Objeto representable
Texto
Objeto grfico
47
Grupo
Curvilneo
Polgono
Circulo
Elipse
Rectngulo
Tringulo
Cuadrado
Grupo y grupo
48
Curvilneo y circulo
Curvilneo y elipse
Polgono y rectngulo
Polgono y tringulo
Polgono y cuadrado
49
50
CASO PRCTICO 3:
Sistema Operativo Maxix
51
52
Caso prctico 3:
Sistema Operativo Maxix3
Enunciado
Se plantea el desarrollo de una aplicacin para implementar el sistema
operativo Maxix programado en el lenguaje de programacin orientado
a objetos L:
Existe un sistema de archivos, que est asociado a una tabla de ficheros y a
una tabla de usuarios. La tabla de usuarios referencia a todos los usuarios y
la tabla de ficheros referencia a todos los ficheros. Debe al menos un
usuario referidos (el administrador) y 2 ficheros (la tabla de ficheros y la
tabla de usuarios). Los usuarios pueden ser propietarios de ficheros, pero
un fichero solo pertenece a un propietario. Se puede crear un usuario y
consultar sus datos, pero sto solo lo puede hacer el administrador del
sistema. Existen dos tipos de ficheros: el directorio, que se compone a su
vez de otros ficheros, y el fichero simple. El fichero simple a su vez puede
ser binario (por ejemplo, un ejecutable) o texto (es decir conteniendo
ASCII). Si se borra el directorio, tambin desaparecen los ficheros que
estn contenidos en l. Adems un directorio puede estar vaco. Cualquier
tipo de fichero se puede crear, borrar, consultar, y modificar; cualquier
usuario puede crear un fichero, pero es el usuario que crea el fichero quien
puede borrar, consultar o modificar el fichero.
Cuando un usuario crea un fichero nuevo se produce el siguiente efecto en
cascada: le proporciona el tipo, nombre y propietario al sistema de
archivos, que se encarga de obtener un identificador y una direccin de
comienzo al nuevo fichero; la tabla de ficheros se ve ampliada con una
nueva entrada con los datos del tipo, nombre, propietario, y las
recientemente creadas identificador y direccin de comienzo; y por ltimo
se crea un nuevo fichero del tipo indicado por el usuario, con el nombre
suministrado por el usuario y la direccin de comienzo. Si la creacin se
lleva a cabo correctamente, el usuario recibe la notificacin de Fichero
creado.
Para esta aplicacin se solicita:
53
54
Solucin
Diagrama de casos de uso
55
Diagrama de clases
Para adquirir un aspecto ms compacto, en este diagrama quedan
respondidas las cuestiones a y b.
56
Figura 37. Diagrama de secuencia detallado de Crear fichero (flujo alternativo binario)
57
58
CASO PRCTICO 4:
Sistema de ecuaciones de grado n
59
60
Caso prctico 4:
Sistema de ecuaciones de grado n4
Enunciado
Se plantea el desarrollo de una aplicacin que permita crear, resolver
ecuaciones de grado n por el matemtico, as como representarlas por el
informtico:
Una ecuacin de grado n est compuesta por n sumandos. Cada
sumando tiene la siguiente informacin:
-
61
3/1x3-22/3x2+5/1x1-9/7x0=0
Y de manera compacta:
3x3-22/3x2+5x-9/7=0
As una ecuacin se asocia a UNA representacin, que puede ser de tipo
compacto extendido. La informacin que guarda la representacin es
contenido, de tipo String, y debe tener como mnimo la operacin para
crear la representacin. Al crear una ecuacin, tambin se representa la
ecuacin.
Para crear la ecuacin de grado 1, se incluyen estos pasos en cascada:
El matemtico introduce el grado de la ecuacin para que se cree la
ecuacin inicializando el grado; el matemtico aade el sumando de grado
1 a la ecuacin (con los datos de ese sumando), quien llama a la creacin
de ese sumando inicializando sus datos; como respuesta a esa creacin el
sumando enva Sumando creado a la ecuacin. Este proceso se repite
para el sumando de grado 0. Al final, la ecuacin enva el mensaje
Ecuacin y sumandos creados al matemtico.
Por ltimo, el informtico aade a la ecuacin una nueva representacin
indicando su tipo (compacta extendida); y a partir de la ecuacin se
crea la representacin correspondiente; una vez creada la representacin se
devuelve el valor de su representacin a la ecuacin quien a su vez se la
devuelve al informtico.
Nota: esta secuencia de pasos no es una especificacin de caso de uso,
sino una lista de funciones que se debe hacer para la creacin completa
de una ecuacin; y que informtico y matemtico son independientes entre
s.
Para esta aplicacin se solicita:
a. Un diagrama de casos de uso para representar toda la funcionalidad.
Identificar bien los actores.
b. Un diagrama de clases del dominio de la aplicacin que se han ido
describiendo en el enunciado. Es importante mostrar las relaciones
que hay entre las distintas clases, indicando multiplicidad en las
relaciones de asociacin y agregacin, e indicando el nombre de la
asociacin en las asociaciones. Tambin deben existir los atributos
con sus tipos y mtodos necesarios para que se pueda cubrir toda la
funcionalidad descrita en el enunciado. Tambin se indica que debe
existir la clase Ecuacin.
CASOS PRCTICOS DE UML
62
Solucin
Los diagramas han sido diseados con Rational Rose Enterprise Edition
2003).
63
ResuelveEcuacion
Matematico
CreaEcuacion
<<include>>
RepresentaEcuacion
Informatico
RepresentaCompacta
RepresentaExtendida
64
Diagrama de clases
Ecuacion
grado : Integer
soluciones : Integer[]
crear()
resolver()
0..*
1..*
Sumando
signo : Character
numerador : Integer
denominador : Integer
grado : Integer
crear()
se_asocia
Representacion
contenido : String
crear()
RepresentacionCompacta
RepresentacionExtendida
crear()
crear()
65
: Informatico
: Sistema
: Matematico
Introducir grado 1
Introducir sumando grado 1
En este diagrama hay que reflejar las interacciones entre los actores y el
sistema. Tambien sera vlido reflejar las interacciones sistema-sistema.
66
: Informatico
: Matematico
crear(1)
: Ecuacion
aadirSumando(+,1,2,1)
crear(+, 1,2,1)
: Sumando
"Sumando creado"
aadirSumando(+,0,1,1)
crear(+,1,1,1)
: Sumando
"Sumando creado"
"Ecuacion y sumandos creados"
aadirRepresentacion("compacta")
crear( )
"2x+1=0"
:
RepresentacionCompacta
"2x+1=0"
67
68
CASO PRCTICO 5:
Quetzalix
69
70
71
72
Solucin
Los diagramas han sido realizados usando Bouml 4.9.1.
73
74
Diagrama de clases
75
76
77
Diagrama de estados
78
APNDICE:
breve manual de uso del Rational Rose
79
Apndice:
breve manual de uso del Rational Rose
Esta herramienta CASE crea ficheros con la extensin .mdl, que incluyen
todo tipo de diagramas y artefactos definidos en UML.
A continuacin se describe su funcionalidad:
a. Distribucin del espacio de pantalla:
-barras de mens
-browser
-rea de diagrama
-barra de herramientas
-ventana de logs
80
81
82
83
84
Figura 58. Opcin para crear un nuevo caso de uso desde el browser
85
86
g. Almacenar el modelo
87
Alumno.h
Alumno.cpp
Asignatura.h
Asignatura.cpp
Optativa.h
Optativa.cpp
(C)
1991
1999
Rational
Software
88
String apellido;
};
89
Alumno.cpp
// Copyright
Corporation
(C)
1991
1999
Rational
Software
#include "stdafx.h"
#include "Alumno.h"
#include "Asignatura.h"
//##ModelId=4AC0DEEF0282
String Alumno::getNombre()
{
// TODO: Add your specialized code here.
// NOTE: Requires a correct return value
compile.
}
//##ModelId=4AC0DEFE0011
String Alumno::getApellido()
{
// TODO: Add your specialized code here.
// NOTE: Requires a correct return value
compile.
}
to
to
90
Asignatura.h
// Copyright
Corporation
(C)
1991
1999
Rational
Software
91
Asignatura.cpp
// Copyright (C)
Corporation
1991
1999
Rational
Software
#include "stdafx.h"
#include "Asignatura.h"
//##ModelId=4AC0DF780205
String Asignatura::getNombre()
{
// TODO: Add your specialized code here.
// NOTE: Requires a correct return value
compile.
}
to
92
Optativa.h
// Copyright
Corporation
(C)
1991
1999
Rational
Software
93
Optativa.cpp
// Copyright
Corporation
(C)
1991
1999
Rational
Software
#include "stdafx.h"
#include "Optativa.h"
//##ModelId=4AC0E8460001
int Optativa::getCreditos()
{
// TODO: Add your specialized code here.
return (int)0;
}
94
95
Al dibujar el diagrama que saca por defecto, se observa que las relaciones
de clientelismo no se ven reflejadas en l, solo las de herencia.
96