solucion a maquina expendedora de cafe hasta clases

12

Click here to load reader

Upload: martin-huamani-mendoza

Post on 09-Aug-2015

1.223 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Solucion a Maquina Expendedora de Cafe Hasta Clases

Caso: Máquina Expendedora de Café

Page 2: Solucion a Maquina Expendedora de Cafe Hasta Clases

Enunciado del Problema

El siguiente diseño en UML es sobre una Máquina que sirve café en forma

automatizada, mediante el ingreso de monedas y la selección de opciones para un

determinado producto. El lenguaje UML en conjunto a una herramienta de

desarrollo como es PowerDesigner, permite especificar el diseño preeliminar y

detallar las funciones y relaciones entre clases (OO). El desarrollo es algo

metódico y lento, pero tiene el beneficio de generar código en forma automática

que permite comenzar a desarrollar un producto.

El siguiente diseño pretende explicar la estructura de la Máquina 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 interacción visual entre el ente externo o cliente y el Sistema.

Page 3: Solucion a Maquina Expendedora de Cafe Hasta Clases

Usuario

DepositarDinero

ElegirProducto

ElegirNivelAzucar

EntregarVuelto

CancelarOperacion

<<Uses>>

<<Uses>>

Diagrama de Casos de Uso

Page 4: Solucion a Maquina Expendedora de Cafe Hasta Clases

Casos de Uso

Caso de Uso DepositarDinero

Actores Usuario (iniciador)

Propósito Depositar el dinero para comprar un producto en la máquina

Visión General Un usuario llega a la Máquina dispensadora, deposita el dinero

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

Tipo Primario y esencial

Referencias Función: RecolectarMoneda.1

Curso Típico de Eventos

Acción del Actor

1. Este caso de uso empieza cuando un

usuario introduce la cantidad de monedas

mínima para comprar algún producto.

Cursos Alternativos:

Línea 1: No ha ingresado la cantidad

mínima para comprar tras unos

segundos. Se cancela la operación.

Línea 2: No hay suficiente monedas

para dar vuelto. Se cancela la

operación.

Respuesta del Sistema

2. Da la opción de seleccionar un producto de la lista.

Page 5: Solucion a Maquina Expendedora de Cafe Hasta Clases

Caso de Uso ElegirProducto

Actores Usuario (iniciador)

Propósito Seleccionar el producto a comprar en la máquina

Visión General El usuario selecciona el tipo de producto que desea comprar en la

máquina mediante los botones disponibles en ella.

Tipo Primario y esencial

Referencias Atributo: Producto.1

Curso Típico de Eventos

Acción del Actor

1. El usuario elige el producto de la lista

(café negro, café claro, té).

3. Escoge el producto.

Cursos Alternativos:

Línea 3: No está disponible el

producto. Se cancela la operación.

Respuesta del Sistema

2. Condiciones del producto:

a) No está disponible el producto. Se cancela la operación.

b) Da la opción para seleccionar el azúcar.

Casos de Uso - Especificación

Page 6: Solucion a Maquina Expendedora de Cafe Hasta Clases

Caso de Uso ElegirNivelAzucar

Actores Usuario (iniciador)

Propósito Seleccionar el nivel de azúcar para agregar al producto

Visión General El usuario selecciona el nivel de azúcar que desea agregar al

producto. El nivel puede ser 0, 1 ó 2

Tipo Primario y esencial

Referencias Función: Ingrediente.1

Curso Típico de Eventos

Acción del Actor

1. El usuario selecciona el nivel de azúcar (0,

1 ó 2).

3. Abre la tapa protectora y retira el

producto.

Cursos Alternativos:

Línea 2: No existe suficiente azúcar.

Se cancela la operación.

Respuesta del Sistema

2. La máquina empieza la preparación del producto, mezclando

los ingredientes anexos al agua. Manda mensaje para que

retire el producto.

CASOS DE USO -ESPECIFICACION

Page 7: Solucion a Maquina Expendedora de Cafe Hasta Clases

Caso de Uso CancelarOperacion

Actores Usuario (iniciador)

Propósito Cancelar la Operación con la máquina

Visión General Si el usuario se equivoca en su elección selecciona el botón

cancelar para que devolverle el dinero

Tipo Primario y esencial

Referencias Función: Maquina.1

Curso Típico de Eventos

Acción 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 operación actual y se entrega el vuelto.

CASOS DE USO - ESPECIFICACION

Page 8: Solucion a Maquina Expendedora de Cafe Hasta Clases

Casos de Uso - Especificacion

Caso de Uso EntregarVuelto

Actores ElegirProducto, CancelarOperacion

Propósito Devolver el dinero

Visión General Si el usuario cancela una operación o seleccionar un producto

satisfactoriamente, se le entrega el vuelto o devuelve el

dinero respectivamente

Tipo Primario y esencial

Referencias Función: Maquina.2

Curso Típico de Eventos

Acción del Actor

1. El producto se ha seleccionado o

correctamente o se eligió la opción

cancelar.

Respuesta del Sistema

2. La máquina entrega el vuelto correspondiente o devuelve el

dinero.

Page 9: Solucion a Maquina Expendedora de Cafe Hasta Clases

Revision de Conceptos

Clase: representada mediante un cadrado con 3 divisiones. Una para el nombre, otra para los atributos y la

última para los métodos.

Asociación: es una línea de unión entre clases, que establece cierta dirección y tipo de relación.

Multiplicidad: es una restricción a una asociación, que limita el número 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.

Agregación: es una asociación débil, sin dependencia existencial. Se representa por un diamante en blanco en

la clase que repesenta el todo.

Composición: es una asociación 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.

Generalización: es una relación de herencia, representada por un triángulo sin rellenar del lado de la

superclase.

Page 10: Solucion a Maquina Expendedora de Cafe Hasta Clases

Explicación del Diseño Clases

Generalización: Existe una subclase para Ingrediente que es Azucar para definir un

método para ElegirNivelAzucar y otra subclase en RecolectarMoneda que es

RecolectarMonedaTipo para verificar las monedas ingresadas y almacenarlas en un

depósito por valor.

Composición: La mayoría 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 máquina o abría que modificar

Maquina.

Agregación: Existe una relación débil entre Ingrediente y Producto, por ser parte uno del

otro. Pero es débil porque no existe dependencia existencial, el producto es formado por

ingredientes, pero la eliminación de uno no implica eliminar el otro.

Page 11: Solucion a Maquina Expendedora de Cafe Hasta Clases

Diagrama de Clases

1

producto

2..5

ingredientes

15

recursos

1

3

productos

0..1

3

acumula

0..1

1

recibe

Ingrediente

-

-

isNombre

idCantidad

: String

: int = 0

+ ElegirIngrediente () : int

Producto

-

-

isNombre

iiValor

: String

: int

+ ElegirProducto () : int

Maquina

-

-

isNombre

iiDepositado

: String

: int

= Cafe/Te

= 0

+

+

+

CancelarOperacion ()

ServirProducto ()

EntregarVuelto ()

: void

: void

: void

RecolectorMoneda

- iiMonedas : int = 0

+ AgregarMoneda () : void

RecolectorMonedaTipo

- iiValor : int

+

+

VerificarMoneda ()

DevolverMoneda ()

: boolean

: void

Azucar

+

+

isTipo

isCantidad

: String

: int

+ ElegirNivelAzucar () : int

Page 12: Solucion a Maquina Expendedora de Cafe Hasta Clases

Conclusión El lenguaje UML es una especificación de diseño sumamente poderosa en la

aplicación de un mundo orientado a objeto. En cojunto con la herramienta

utilizada que es PowerDesigner, se logra un desarrollo rápido y eficiente,

fácilmente modificable y que permite generar código básico y no de mucha

utilidad. Muchas veces se piensa que el programa es capaz de dar el código casi

completo, pero no es tan así. Son solo herramientas de ayuda respecto al diseño.

Para trabajar con este lenguaje es necesario un lenguaje orientado al objeto, que

permita ocupar todas las herramientas de diseño y facilitar la programación. Se

dejan de lado diseños simples, estructurados, como en la antigüedad, lo cual es

una gran avance para la Informática.

El aprendizaje de UML entrega un complemento a la programación orientada al

objeto en Java, C# u otros lenguajes, para los que ya manejan dicho código y se

les muestra una nueva herramienta utilizable a lo antes aprendido. Sin duda,

una gran herramienta.