Sie sind auf Seite 1von 16

PROGRAMACION DE SISTEMAS

Ejemplo UML

Mg. Samuel Oporto Daz


1 /16

Introduccin

El siguiente diseo en UML es sobre una Mquina que sirve caf en forma
automatizada, mediante el ingreso de monedas y la seleccin de opciones para
un determinado producto. El lenguaje UML en conjunto a una herramienta de
desarrollo como es PowerDesigner, permite especificar el diseo preeliminar y
detallar las funciones y relaciones entre clases (OO). El desarrollo es algo
metdico y lento, pero tiene el beneficio de generar cdigo en forma automtica
que permite comenzar a desarrollar un producto.

La ventaja ms importante de todas es la estandarizacin de diseo de un


Sistema, que sea entendido a nivel mundial y orientado a un lenguaje Orientado
a Objeto. El diseo en UML establece normas especficas, pero a la vez,
permite libremente modificar algunas y complementarlas.

El siguiente diseo pretende explicar la estructura de la Mquina de Caf y su


comportamiento, mediante Casos de Uso. A su vez, se tienen los Diagramas de
Secuencia del Diagrama de Estados, que permiten detallar los pasos del
proceso. Los diagramas de Estado surgen como complemento a los Casos de
uso, para entender mejor la interaccin visual entre el ente externo o cliente y el
Sistema.
2 /16

Definicin de Conceptos

Clase: representada mediante un cadrado con 3 divisiones. Una para


el nombre, otra para los atributos y la ltima para los mtodos.
Asociacin: es una lnea de unin entre clases, que establece cierta
direccin y tipo de relacin.
Multiplicidad: es una restriccin a una asociacin, que limita el nmero
de instancias de una clase con respecto a otra nica instancia de la
otra clase. Si contiene una flecha, indica la dependencia a esa clase.
Roles: indica el papel que juega en la clase.
Agregacin: es una asociacin dbil, sin dependencia existencial. Se
representa por un diamante en blanco en la clase que repesenta el
todo.
Composicin: es una asociacin fuerte que implica dependencia
existencial, es perteneciente a esa clase y el objeto no es compartido.
Se representa por un diamante en relleno en la clase que repesenta el
todo.
Generalizacin: es una relacin de herencia, representada por un
tringulo sin rellenar del lado de la superclase.
3 /16

Explicacin del Diseo Clases

Generalizacin: Existe una subclase para Ingrediente que es Azucar


para definir un mtodo para ElegirNivelAzucar y otra subclase en
RecolectarMoneda que es RecolectarMonedaTipo para verificar las
monedas ingresadas y almacenarlas en un depsito por valor.

Composicin: La mayora de las clases como Ingrediente, Producto,


RecolectorMoneda y RecolectorMonedaTipo tienen una dependencia
fuerte de Maquina, por ser parte de ella. Si se elimina una de las
dependencia, no existe la mquina o abra que modificar Maquina.

Agregacin: Existe una relacin dbil entre Ingrediente y Producto, por


ser parte uno del otro. Pero es dbil porque no existe dependencia
existencial, el producto es formado por ingredientes, pero la eliminacin
de uno no implica eliminar el otro.

4 /16

Diagrama de Clases
Maquina
- isNombre
: String
- iiDepositado : int

5
1
recursos

Ingrediente
- isNombre
: String
- idCantidad : int

= Cafe/Te
=0

+ CancelarOperacion () : void
+ ServirProducto ()
: void
+ EntregarVuelto ()
: void
1

0..1

1
recibe
RecolectorMoneda

0..1

- iiMonedas : int

=0

=0

+ AgregarMoneda () : void

+ ElegirIngrediente () : int
2..5
ingredientes

3
acumula
Azucar
+ isTipo
: String
+ isCantidad : int
+ ElegirNivelAzucar () : int

1
producto

3
productos

RecolectorMonedaTipo
- iiValor : int

Producto
- isNombre : String
- iiValor
: int

+ VerificarMoneda () : boolean
+ DevolverMoneda () : void

+ ElegirProducto () : int

5 /16

Diagrama de Casos de Uso


DepositarDinero

ElegirProducto

<<Uses>>
Usuario

ElegirNivelAzucar

EntregarVuelto

<<Uses>>
CancelarOperacion

6 /16

Casos de Uso
Caso de Uso

DepositarDinero

Actores

Usuario (iniciador)

Propsito

Depositar el dinero para comprar un producto en la mquina

Visin General

Un usuario llega a la Mquina dispensadora, deposita el dinero


(monedas de 100, 200 y 500) para comprar un producto.

Tipo

Primario y esencial

Referencias

Funcin: RecolectarMoneda.1

Curso Tpico de Eventos


Accin del Actor
1. Este caso de uso empieza cuando un
usuario introduce la cantidad de monedas
mnima para comprar algn producto.

Respuesta del Sistema


2. Da la opcin de seleccionar un producto de la lista.

Cursos Alternativos:
Lnea 1: No ha ingresado la cantidad
mnima para comprar tras unos
segundos. Se cancela la operacin.
Lnea 2: No hay suficiente monedas
para dar vuelto. Se cancela la
operacin.

7 /16

Casos de Uso
Caso de Uso

ElegirProducto

Actores

Usuario (iniciador)

Propsito

Seleccionar el producto a comprar en la mquina

Visin General

El usuario selecciona el tipo de producto que desea comprar en


la mquina mediante los botones disponibles en ella.

Tipo

Primario y esencial

Referencias

Atributo: Producto.1

Curso Tpico de Eventos


Accin del Actor
1. El usuario elige el producto de la lista
(caf negro, caf claro, t).
3. Escoge el producto.

Respuesta del Sistema


2. Condiciones del producto:
a) No est disponible el producto. Se
operacin.
b) Da la opcin para seleccionar el azcar.

cancela la

Cursos Alternativos:
Lnea 3: No est disponible el
producto. Se cancela la operacin.

8 /16

Caso Uso
Caso de Uso

ElegirNivelAzucar

Actores

Usuario (iniciador)

Propsito

Seleccionar el nivel de azcar para agregar al producto

Visin General

El usuario selecciona el nivel de azcar que desea agregar al


producto. El nivel puede ser 0, 1 2

Tipo

Primario y esencial

Referencias

Funcin: Ingrediente.1

Curso Tpico de Eventos


Accin del Actor
1. El usuario selecciona el nivel de azcar
(0, 1 2).
3. Abre la tapa protectora y retira el
producto.
Cursos Alternativos:
Lnea 2: No existe suficiente
azcar. Se cancela la operacin.

Respuesta del Sistema


2. La mquina empieza la preparacin del producto,
mezclando los ingredientes anexos al agua. Manda
mensaje para que retire el producto.

9 /16

Caso Uso
Caso de Uso

CancelarOperacion

Actores

Usuario (iniciador)

Propsito

Cancelar la Operacin con la mquina

Visin General

Si el usuario se equivoca en su eleccin selecciona el botn


cancelar para que devolverle el dinero

Tipo

Primario y esencial

Referencias

Funcin: Maquina.1

Curso Tpico de Eventos


Accin del Actor
1. El usuario selecciona cancelar.
3. El usuario retira el vuelto y se va o
sigue comprando.

Respuesta del Sistema


2. Se detiene la operacin actual y se entrega el vuelto.

10 /16

Caso Uso
Caso de Uso

EntregarVuelto

Actores

ElegirProducto, CancelarOperacion

Propsito

Devolver el dinero

Visin General

Si el usuario cancela una operacin o seleccionar un producto


satisfactoriamente, se le entrega el vuelto o devuelve el
dinero respectivamente

Tipo

Primario y esencial

Referencias

Funcin: Maquina.2

Curso Tpico de Eventos


Accin del Actor
1. El producto se ha seleccionado o
correctamente o se eligi la opcin
cancelar.

Respuesta del Sistema


2. La mquina entrega el vuelto correspondiente o
devuelve el dinero.

11 /16

Diagrama de Secuencia
maquinaCafe : Maquina

ElegirProducto

producto : Producto

ElegirProducto()

ingredientes : Ingrediente

ElegirIngrediente()

EntregarVuelto()

Se entrega el
vuelto o
devolucin del
dinero

12 /16

Diagrama de Secuencia
maquinaCafe : Maquina

moneda: RecolectorMoneda

AgregarMoneda()

DepositarDinero

MonedasVerificadas : RecolectorMonedaTipo

VerificarMoneda()

DevolverMoneda()

EntregarVuelto()

Se entrega el
vuelto o
devolucin del
dinero

13 /16

Diagrama de Secuencia
maquinaCafe : Maquina

ingrediente: Ingrediente

ElegirProducto()

azucar: Azucar

ElegirNivelAzucar()

ElegirNivelAzucar

EntregarVuelto()

Se entrega el
vuelto o
devolucin del
dinero

14 /16

Diagrama de Estados
[BotonEncendido=true/ Funcionamiento=true]
Funcionamiento Errneo

[BotonEncendido=true/ Funcionamiento=true]

entry / Indicar Falla


Funcionamiento=false}

Iniciada

[OperacionErronea=true]

exit / Mostrar Dinero Actualizado


entry / Funcionamiento Listo
[EstadoMaquina=true]

Depositando Dinero

[ProductoServido=true]

Sirviendo Producto
entry / Producto Listo
do / Aadir
exit / Seal Listo

entry / Recibir Dinero


do / Verificar Moneda
exit / Saldo Suficiente
[saldo=true]

[IngredienteElegidoDisponible=true]
Seleccionando Azcar

Seleccionando Producto
entry / Mostrar Producto
do / Seleccionar Producto
exit / Producto Disponible

OperacionErronea=true

[ProductoElegidoDisponible=true]

entry / Mostrar Nivel Azcar


do / Aadir Seleccionar Azcar
exit / Azucar Disponible

15 /16

Conclusin

El lenguaje UML es una especificacin de diseo sumamente poderosa


en la aplicacin de un mundo orientado a objeto. En cojunto con la
herramienta utilizada que es PowerDesigner de SyBase, se logra un
desarrollo rpido y eficiente, fcilmente modificable y que permite
generar cdigo bsico y no de mucha utilidad. Muchas veces se piensa
que el programa es capaz de dar el cdigo casi completo, pero no es
tan as. Son solo herramientas de ayuda respecto al diseo.

Para trabajar con este lenguaje es necesario un lenguaje orientado al


objeto, que permita ocupar todas las herramientas de diseo y facilitar
la programacin. Se dejan de lado diseos simples, estructurados,
como en la antigedad, lo cual es una gran avance para la Informtica.

El aprendizaje de UML entrega un complemento a la programacin


orientada al objeto en Java, C# u otros lenguajes, para los que ya
manejan dicho cdigo y se les muestra una nueva herramienta
utilizable a lo antes aprendido. Sin duda, una gran herramienta.
16 /16

Das könnte Ihnen auch gefallen