Sunteți pe pagina 1din 12
Caso:
Caso:
Caso:
Caso:
Caso:
Caso:
Caso:
Caso:
Caso:
Caso:
Caso:
Caso:
Caso:
Caso:

Caso:

Caso:
Caso:
Caso:
Caso:
Caso:

Máquina Expendedora de

Café

Enunciado del Problema
Enunciado del Problema
Enunciado del Problema
Enunciado del Problema
Enunciado del Problema
Enunciado del Problema
Enunciado del Problema
Enunciado del Problema
Enunciado del Problema
Enunciado del Problema
Enunciado del Problema
Enunciado del Problema
Enunciado del Problema
Enunciado del Problema
Enunciado del Problema
Enunciado del Problema
Enunciado del Problema
Enunciado del Problema
Enunciado del Problema
Enunciado del Problema
Enunciado del Problema
Enunciado del Problema
Enunciado del Problema
Enunciado del Problema
Enunciado del Problema
Enunciado del Problema

Enunciado del Problema

Enunciado del Problema
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
Diagrama de Casos de Uso
Diagrama de Casos de Uso
Diagrama de Casos de Uso
Diagrama de Casos de Uso
Diagrama de Casos de Uso
Diagrama de Casos de Uso
Diagrama de Casos de Uso
Diagrama de Casos de Uso
Diagrama de Casos de Uso
Diagrama de Casos de Uso
Diagrama de Casos de Uso
Diagrama de Casos de Uso
Diagrama de Casos de Uso
Diagrama de Casos de Uso
Diagrama de Casos de Uso
Diagrama de Casos de Uso
Diagrama de Casos de Uso
Diagrama de Casos de Uso
Diagrama de Casos de Uso
Diagrama de Casos de Uso
Diagrama de Casos de Uso
Diagrama de Casos de Uso
Diagrama de Casos de Uso
Diagrama de Casos de Uso
Diagrama de Casos de Uso

Diagrama de Casos de Uso

Diagrama de Casos de Uso
Diagrama de Casos de Uso
Diagrama de Casos de Uso DepositarDinero ElegirProducto <<Uses>> Usuario ElegirNivelAzucar
DepositarDinero ElegirProducto <<Uses>> Usuario ElegirNivelAzucar EntregarVuelto
DepositarDinero
ElegirProducto
<<Uses>>
Usuario
ElegirNivelAzucar
EntregarVuelto
<<Uses>>
CancelarOperacion
Casos de Uso
Casos de Uso
Casos de Uso
Casos de Uso
Casos de Uso
Casos de Uso
Casos de Uso
Casos de Uso
Casos de Uso
Casos de Uso
Casos de Uso
Casos de Uso
Casos de Uso
Casos de Uso
Casos de Uso
Casos de Uso
Casos de Uso
Casos de Uso
Casos de Uso
Casos de Uso
Casos de Uso
Casos de Uso
Casos de Uso
Casos de Uso
Casos de Uso
Casos de Uso

Casos de Uso

Casos de Uso
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

 

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

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.

Casos de Uso - Especificación
Casos de Uso - Especificación
Casos de Uso - Especificación
Casos de Uso - Especificación
Casos de Uso - Especificación
Casos de Uso - Especificación
Casos de Uso - Especificación
Casos de Uso - Especificación
Casos de Uso - Especificación
Casos de Uso - Especificación
Casos de Uso - Especificación
Casos de Uso - Especificación
Casos de Uso - Especificación
Casos de Uso - Especificación
Casos de Uso - Especificación
Casos de Uso - Especificación
Casos de Uso - Especificación
Casos de Uso - Especificación
Casos de Uso - Especificación
Casos de Uso - Especificación
Casos de Uso - Especificación
Casos de Uso - Especificación
Casos de Uso - Especificación
Casos de Uso - Especificación
Casos de Uso - Especificación
Casos de Uso - Especificación
Casos de Uso - Especificación
Casos de Uso - Especificación
Casos de Uso - Especificación
Casos de Uso - Especificación
Casos de Uso - Especificación
Casos de Uso - Especificación
Casos de Uso - Especificación
Casos de Uso - Especificación
Casos de Uso - Especificación
Casos de Uso - Especificación

Casos de Uso - Especificación

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

 

Respuesta del Sistema

1.

El usuario elige el producto de la lista (café negro, café claro, té).

2. Condiciones del producto:

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

3.

Escoge el producto.

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

Cursos Alternativos:

 

Línea 3: No está disponible el producto. Se cancela la operación.

CASOS DE USO -ESPECIFICACION
CASOS DE USO -ESPECIFICACION
CASOS DE USO -ESPECIFICACION
CASOS DE USO -ESPECIFICACION
CASOS DE USO -ESPECIFICACION
CASOS DE USO -ESPECIFICACION
CASOS DE USO -ESPECIFICACION
CASOS DE USO -ESPECIFICACION
CASOS DE USO -ESPECIFICACION
CASOS DE USO -ESPECIFICACION
CASOS DE USO -ESPECIFICACION
CASOS DE USO -ESPECIFICACION
CASOS DE USO -ESPECIFICACION
CASOS DE USO -ESPECIFICACION
CASOS DE USO -ESPECIFICACION
CASOS DE USO -ESPECIFICACION
CASOS DE USO -ESPECIFICACION
CASOS DE USO -ESPECIFICACION
CASOS DE USO -ESPECIFICACION
CASOS DE USO -ESPECIFICACION
CASOS DE USO -ESPECIFICACION
CASOS DE USO -ESPECIFICACION
CASOS DE USO -ESPECIFICACION
CASOS DE USO -ESPECIFICACION
CASOS DE USO -ESPECIFICACION
CASOS DE USO -ESPECIFICACION
CASOS DE USO -ESPECIFICACION
CASOS DE USO -ESPECIFICACION
CASOS DE USO -ESPECIFICACION
CASOS DE USO -ESPECIFICACION
CASOS DE USO -ESPECIFICACION
CASOS DE USO -ESPECIFICACION
CASOS DE USO -ESPECIFICACION
CASOS DE USO -ESPECIFICACION
CASOS DE USO -ESPECIFICACION

CASOS DE USO -ESPECIFICACION

CASOS DE USO -ESPECIFICACION
CASOS DE USO -ESPECIFICACION
CASOS DE USO -ESPECIFICACION
CASOS DE USO -ESPECIFICACION
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

 

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

1.

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

1 ó 2).

los ingredientes anexos al agua. Manda mensaje para que

3.

Abre la tapa protectora y retira el

 

retire el producto.

producto. Cursos Alternativos:

 

Línea 2: No existe suficiente azúcar. Se cancela la operación.

CASOS DE USO - ESPECIFICACION
CASOS DE USO - ESPECIFICACION
CASOS DE USO - ESPECIFICACION
CASOS DE USO - ESPECIFICACION
CASOS DE USO - ESPECIFICACION
CASOS DE USO - ESPECIFICACION
CASOS DE USO - ESPECIFICACION
CASOS DE USO - ESPECIFICACION
CASOS DE USO - ESPECIFICACION
CASOS DE USO - ESPECIFICACION
CASOS DE USO - ESPECIFICACION
CASOS DE USO - ESPECIFICACION
CASOS DE USO - ESPECIFICACION
CASOS DE USO - ESPECIFICACION
CASOS DE USO - ESPECIFICACION
CASOS DE USO - ESPECIFICACION
CASOS DE USO - ESPECIFICACION
CASOS DE USO - ESPECIFICACION
CASOS DE USO - ESPECIFICACION
CASOS DE USO - ESPECIFICACION
CASOS DE USO - ESPECIFICACION
CASOS DE USO - ESPECIFICACION
CASOS DE USO - ESPECIFICACION
CASOS DE USO - ESPECIFICACION
CASOS DE USO - ESPECIFICACION
CASOS DE USO - ESPECIFICACION
CASOS DE USO - ESPECIFICACION
CASOS DE USO - ESPECIFICACION
CASOS DE USO - ESPECIFICACION
CASOS DE USO - ESPECIFICACION
CASOS DE USO - ESPECIFICACION
CASOS DE USO - ESPECIFICACION
CASOS DE USO - ESPECIFICACION
CASOS DE USO - ESPECIFICACION
CASOS DE USO - ESPECIFICACION
CASOS DE USO - ESPECIFICACION

CASOS DE USO - ESPECIFICACION

CASOS DE USO - ESPECIFICACION
CASOS DE USO - ESPECIFICACION
CASOS DE USO - ESPECIFICACION
CASOS DE USO - ESPECIFICACION
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

 

Respuesta del Sistema

1.

El usuario selecciona cancelar.

2. Se detiene la operación actual y se entrega el vuelto.

3.

El usuario retira el vuelto y se va o sigue comprando.

Casos de Uso - Especificacion
Casos de Uso - Especificacion
Casos de Uso - Especificacion
Casos de Uso - Especificacion
Casos de Uso - Especificacion
Casos de Uso - Especificacion
Casos de Uso - Especificacion
Casos de Uso - Especificacion
Casos de Uso - Especificacion
Casos de Uso - Especificacion
Casos de Uso - Especificacion
Casos de Uso - Especificacion
Casos de Uso - Especificacion
Casos de Uso - Especificacion
Casos de Uso - Especificacion
Casos de Uso - Especificacion
Casos de Uso - Especificacion
Casos de Uso - Especificacion
Casos de Uso - Especificacion
Casos de Uso - Especificacion
Casos de Uso - Especificacion
Casos de Uso - Especificacion
Casos de Uso - Especificacion
Casos de Uso - Especificacion
Casos de Uso - Especificacion
Casos de Uso - Especificacion
Casos de Uso - Especificacion
Casos de Uso - Especificacion
Casos de Uso - Especificacion
Casos de Uso - Especificacion
Casos de Uso - Especificacion
Casos de Uso - Especificacion
Casos de Uso - Especificacion
Casos de Uso - Especificacion
Casos de Uso - Especificacion
Casos de Uso - Especificacion

Casos de Uso - Especificacion

Casos de Uso - Especificacion
Casos de Uso - Especificacion
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

 

Respuesta del Sistema 2. La máquina entrega el vuelto correspondiente o devuelve el dinero.

1.

El producto se ha seleccionado o correctamente o se eligió la opción cancelar.

Revision de Conceptos
Revision de Conceptos
Revision de Conceptos
Revision de Conceptos
Revision de Conceptos
Revision de Conceptos
Revision de Conceptos
Revision de Conceptos
Revision de Conceptos
Revision de Conceptos
Revision de Conceptos
Revision de Conceptos
Revision de Conceptos
Revision de Conceptos
Revision de Conceptos
Revision de Conceptos
Revision de Conceptos
Revision de Conceptos
Revision de Conceptos
Revision de Conceptos
Revision de Conceptos
Revision de Conceptos
Revision de Conceptos
Revision de Conceptos
Revision de Conceptos
Revision de Conceptos

Revision de Conceptos

Revision de Conceptos
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
Explicación del Diseño Clases
Explicación del Diseño Clases
Explicación del Diseño Clases
Explicación del Diseño Clases
Explicación del Diseño Clases
Explicación del Diseño Clases
Explicación del Diseño Clases
Explicación del Diseño Clases
Explicación del Diseño Clases
Explicación del Diseño Clases
Explicación del Diseño Clases
Explicación del Diseño Clases
Explicación del Diseño Clases
Explicación del Diseño Clases
Explicación del Diseño Clases
Explicación del Diseño Clases
Explicación del Diseño Clases
Explicación del Diseño Clases
Explicación del Diseño Clases
Explicación del Diseño Clases
Explicación del Diseño Clases
Explicación del Diseño Clases
Explicación del Diseño Clases
Explicación del Diseño Clases
Explicación del Diseño Clases

Explicación del Diseño Clases

Explicación del Diseño 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.

Diagrama de Clases
Diagrama de Clases
Diagrama de Clases
Diagrama de Clases
Diagrama de Clases
Diagrama de Clases
Diagrama de Clases
Diagrama de Clases
Diagrama de Clases
Diagrama de Clases
Diagrama de Clases
Diagrama de Clases
Diagrama de Clases
Diagrama de Clases
Diagrama de Clases
Diagrama de Clases
Diagrama de Clases
Diagrama de Clases
Diagrama de Clases
Diagrama de Clases
Diagrama de Clases
Diagrama de Clases
Diagrama de Clases
Diagrama de Clases
Diagrama de Clases
Diagrama de Clases

Diagrama de Clases

Diagrama de Clases
Diagrama de Clases
Maquina - isNombre : String = Cafe/Te - iiDepositado : int = 0 + CancelarOperacion
Maquina
- isNombre
: String
= Cafe/Te
- iiDepositado
: int
= 0
+ CancelarOperacion ()
: void
+ ServirProducto ()
: void
1
+ EntregarVuelto ()
: void
5
recibe
1
0
1
recursos
Ingrediente
RecolectorMoneda
0
1
1
- isNombre
: String
-
iiMonedas
: int
= 0
- idCantidad
: = 0
int
+
AgregarMoneda ()
: void
+
ElegirIngrediente ()
: int
2
5
ingredientes
3
acumula
3
1
RecolectorMonedaTipo
productos
producto
Azucar
-
iiValor
: int
+ isTipo
: String
Producto
+
VerificarMoneda ()
: boolean
+ isCantidad
: int
+
DevolverMoneda ()
: void
- isNombre
:
String
+ ElegirNivelAzucar ()
: int
- iiValor
:
int
+ ElegirProducto ()
: int
Conclusión
Conclusión
Conclusión
Conclusión
Conclusión
Conclusión
Conclusión
Conclusión
Conclusión
Conclusión
Conclusión
Conclusión
Conclusión
Conclusión
Conclusión
Conclusión
Conclusión
Conclusión
Conclusión
Conclusión
Conclusión
Conclusión
Conclusión
Conclusión
Conclusión
Conclusión

Conclusión

Conclusión
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.