Solucion a Maquina Expendedora de Cafe Hasta Clases

Caso: Máquina Expendedora de Café Enunciado del Problema El siguiente diseño en UML es sobre una Máquina que sirve caf

Views 176 Downloads 29 File size 166KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Caso: Máquina Expendedora de Café

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.

Diagrama de Casos de Uso DepositarDinero

ElegirProducto

Usuario

ElegirNivelAzucar

EntregarVuelto

CancelarOperacion

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.

Casos de Uso - Especificación 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 -ESPECIFICACION 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 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 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.

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.

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.

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

5 1 recursos

= Cafe/Te =0

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

Ingrediente - isNombre : String - idCantidad : int

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 + ElegirProducto () : int

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

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.