Vous êtes sur la page 1sur 12

Caso: Mquina Expendedora de Caf

Enunciado del Problema


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. 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.

Diagrama de Casos de Uso


DepositarDinero

ElegirProducto

<<Uses>>
Usuario ElegirNivelAzucar

EntregarVuelto

<<Uses>>
CancelarOperacion

Casos de Uso
Caso de Uso Actores DepositarDinero Usuario (iniciador)

Propsito Visin General


Tipo

Depositar el dinero para comprar un producto en la mquina Un usuario llega a la Mquina dispensadora, deposita el dinero (monedas de 100, 200 y 500) para comprar un producto.
Primario y esencial

Referencias
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.

Funcin: RecolectarMoneda.1

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.

Casos de Uso - Especificacin


Caso de Uso Actores Propsito Visin General Tipo Referencias 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. Cursos Alternativos: Lnea 3: No est disponible el producto. Se cancela la operacin. Respuesta del Sistema 2. Condiciones del producto: a) No est disponible el producto. Se cancela la operacin. b) Da la opcin para seleccionar el azcar. ElegirProducto Usuario (iniciador) Seleccionar el producto a comprar en la mquina El usuario selecciona el tipo de producto que desea comprar en la mquina mediante los botones disponibles en ella. Primario y esencial Atributo: Producto.1

CASOS DE USO -ESPECIFICACION


Caso de Uso ElegirNivelAzucar

Actores
Propsito Visin General Tipo Referencias Curso Tpico de Eventos

Usuario (iniciador)
Seleccionar el nivel de azcar para agregar al producto El usuario selecciona el nivel de azcar que desea agregar al producto. El nivel puede ser 0, 1 2 Primario y esencial Funcin: Ingrediente.1

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.

CASOS DE USO - ESPECIFICACION


Caso de Uso CancelarOperacion

Actores
Propsito Visin General Tipo Referencias

Usuario (iniciador)
Cancelar la Operacin con la mquina Si el usuario se equivoca en su eleccin selecciona el botn cancelar para que devolverle el dinero Primario y esencial 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.

Casos de Uso - Especificacion


Caso de Uso Actores Propsito Visin General EntregarVuelto ElegirProducto, CancelarOperacion Devolver el dinero Si el usuario cancela una operacin o seleccionar un producto satisfactoriamente, se le entrega el vuelto o devuelve el dinero respectivamente Primario y esencial Funcin: Maquina.2

Tipo Referencias 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.

Revision 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.

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.

Diagrama de Clases
Maquina - isNombre : String - iiDepositado : int = Cafe/Te =0 1 recibe RecolectorMoneda - iiMonedas : int =0 2..5 ingredientes =0 + CancelarOperacion () : void + ServirProducto () : void + EntregarVuelto () : void 1 0..1

5 1 recursos Ingrediente - isNombre : String - idCantidad : int

0..1

+ AgregarMoneda () : void

+ ElegirIngrediente () : int

3 acumula 1 producto 3 productos Producto - isNombre : String - iiValor : int + ElegirProducto () : int RecolectorMonedaTipo - iiValor : int + VerificarMoneda () : boolean + DevolverMoneda () : void

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

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, 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.

Vous aimerez peut-être aussi