Informe de diseño sistema RICO

21
Informe de diseño sistema RICO Basado en la metodología GRAPPLE Por Juan Carlos Fajardo Código 9822037

Transcript of Informe de diseño sistema RICO

Page 1: Informe de diseño sistema RICO

Por Juan Carlos Fajardo

Código 9822037

Page 2: Informe de diseño sistema RICO

1

|

ContenidoINTRODUCCION..................................................................................................2OBJETIVOS..........................................................................................................2CASO DE ESTUDIO...................................................................................................3APLICACIÓN DE LA METODOLOGIA GRAPPLE AL CASO DE ESTUDIO........3

RECOPILACIÓN DE NECESIDADES..........................................................................3PROCESO DE ATENDER A UN CLIENTE................................................................4PROCESO DE PREPARACIÓN DE UN PLATILLO......................................................6PROCESO DE LIMPIEZA DE LA MESA...................................................................7

ANÁLISIS..............................................................................................................8CASOS DE USO....................................................................................................9

CASO DE USO TOMAR UNA ORDEN..................................................................10

Page 3: Informe de diseño sistema RICO

2

|

INTRODUCCION

Como forma de practicar el conocimiento adquirido durante este semestre en la asignatura Ingeniería de software; se ha realizado el presente trabajo basado el la metodología GRAPPLE y en el sistema RICO propuesto en el libro “Aprendiendo UML en 24 horas”.

Para ello se aplicaran los diagramas de UML que correspondan a los 5 segmentos de la metodología GRAPPLE como se detalla continuación:

1. Recopilación de las necesidades: aquí se hará uso intensivo de los diagramas de actividades del proceso del negocio.

2. Análisis: En el se detallaran los diagramas de Casos de Uso, los diagramas de clases, los diagramas de Objetos; los diagramas de Estado.

3. Diseño: Aquí veremos diagramas de objetos y estados del sistema y diagrama de despliegue

4. Desarrollo: En este punto se desarrollará el código e interfaz grafica del sistema

5. Distribución: Este paso corresponde al a distribución e instalación del sistema

Espero este documento sea de su agrado y sirva de apoyo a otros estudiantes y a la academia.

OBJETIVOS

Aprender a elaborar los distintos modelos de análisis de un sistema Aplicar los conceptos adquiridos durante el curso de ingeniería de software Comprender la metodología GRAPPLE como un patrón para el diseño rápido

de aplicaciones Hacer uso del programa Enterprise Archictect como herramienta para el

modelado de sistemas basados en UML

Page 4: Informe de diseño sistema RICO

3

|

Caso de estudio

El caso de estudio planteado por el libro mencionado, es el de la empresa ficticia La Hudra, Nar y Goniff quienes desean crear la División de restaurantes del futuro LNG; apoyados en la tecnología para así mejorar el placer de comer en un restaurante.

APLICACIÓN DE LA METODOLOGIA GRAPPLE AL CASO DE ESTUDIO

Recopilación de necesidades

En este punto se presentan los diagramas que nos ayudan a comprender mejor el modelo de negocio de los restaurantes; para ello se analizan tres modelos que forman parte de los procesos que se llevan a cabo dentro de un restaurante. Estos son:

1. Proceso de servir a un cliente2. Preparación de un platillo3. Limpieza de la mesa

Para representar estos procesos se hace uso de los diagramas de actividades como se pueden ver a continuación.

Page 5: Informe de diseño sistema RICO

4

|

Proceso de atender a un cliente

act Serv ir un cliente

Mozo de pisoAsistenteChefMeseroCapitan de meserosCliente

Entra el cliente

Ayudar a quitar el abrigo

Guardar abrigo/sombrero

Sentar al cliente

Dejar el nombre

Espera en el bar

Aguardr en el area de espera

Alistar la mesa

Llamar al mesero Entregar menu

Tomar la orden de bebida

Llamar al asistente

Ir por la bebida

Traer bebida

Serv ir pan y agua

Sugerir platillo

Leer menu

Hacer eleccion Notificar al chef

Traer entremes Preparar plato fuerte

Traer plato fuerte

Modelado en un diagrama por separado

Ingerir entremes

Ingerir plato fuerte

Traer menu de postres Hacer eleccion

Serv ir cafe

Serv ir cafe

Traer postreTomar cafe

Traer cuenta

Liquidar cuenta Dejar propina

Recoger abrigo sombrero

Salir

[Desea postre]

[Desea cafe]

Page 6: Informe de diseño sistema RICO

5

|

act Serv ir un cliente

Mozo de pisoAsistenteChefMeseroCapitan de meserosCliente

Entra el cliente

Ayudar a quitar el abrigo

Guardar abrigo/sombrero

Sentar al cliente

Dejar el nombre

Espera en el bar

Aguardr en el area de espera

Alistar la mesa

Llamar al mesero Entregar menu

Tomar la orden de bebida

Llamar al asistente

Ir por la bebida

Traer bebida

Serv ir pan y agua

Sugerir platillo

Leer menu

Hacer eleccion Notificar al chef

Traer entremes Preparar plato fuerte

Traer plato fuerte

Modelado en un diagrama por separado

Ingerir entremes

Ingerir plato fuerte

Traer menu de postres Hacer eleccion

Serv ir cafe

Serv ir cafe

Traer postreTomar cafe

Traer cuenta

Liquidar cuenta Dejar propina

Recoger abrigo sombrero

Salir

[Desea postre]

[Desea cafe]

Page 7: Informe de diseño sistema RICO

6

|

Proceso de preparación de un platillo

act Preparacion de platillo

AsistenteChefMeseroCliente

Recibir comanda

Preparar entremes

Iniciar la preparacion del plato fuerte

Llev ar entremeces

Coordinar la preparacion de otros pedidos

Ingerir entremecesRecibir la notificacion de que los entremeces casi

se han consumido

Finalizar preparacion del plato fuerte

Tomar el plato fuerte

Llev ar el plato fuerte

Page 8: Informe de diseño sistema RICO

7

|

Proceso de limpieza de la mesa

act Limpieza de la mesa

Mozo de pisoMesero

Llamar mozo de piso

Quitar mantel

Colocar un nuev o mantel

Acomodar la mesa

Empacar el otro mantel para el cuarto de lav ado

En este punto ya podemos comenzar a visualizar como se mueve el negocio y cuales son nuestros futuros usuarios del sistema.

También podemos ver que uno de los procesos que mas requiere actividades es el de atender a un cliente.

Y este a su vez nos permite entrever que uno de los usuarios con más movimiento de actividades es el mesero.

Page 9: Informe de diseño sistema RICO

8

|

Análisis

Para entender mejor el dominio aquí podemos crear las clases que son necesarias para entender el problema y se podrán crear sus relaciones; sin embargo para no hacer tan largo este trabajo; solo se tendrá en cuenta la clase Empleado; puesto que esta es la más notoria y la que se raciona con mayor o menor grado con las otras clases; es así como podemos diagramar la clase empleado:

class Empleado

Empleado

+ aniosExperiencia+ domicil io+ fechaContratacion+ nombre+ numeroSeguridadSocial+ salario

Mozo de pisoCapitan de meseros

Asistente

+ servirAgua() : void+ servirPan() : void

Gerente

+ asignar() : void+ monitor() : void+ operarRestaurante() : void+ rotar() : void

Chef

+ cocinar() : void+ crearReceta() : void+ darPrioridad() : void+ preparar() : void

Mesero

+ llevar() : void+ recoger() : void+ servir() : void+ verificarEstadoDeLaOrden() : void

AsistenteChef

+ cocinar() : void+ preparar() : void

Cantinero

+ imprimirCuentaBar() : void+ prepararBebida() : void+ tomarlaOrdenDeBebida() : void

EncargadoDelGuardaRopa

+ guardarAbrigo() : void+ guardarSombrero() : void+ imprimirVale() : void

1..*

Notifica

1

1

Recibe peticion de

1..*

Dentro de esta clase se encuentra la de mayor interés para nuestro caso la cual es la del mesero.

El mesero está relacionado con cliente, con el chef, con el asistente, con el mozo de piso etc.

Page 10: Informe de diseño sistema RICO

9

|

Casos de Uso

A continuación veremos los paquetes de casos de uso:

uc Modelo de casos de uso

Mesero

+ Cambiar una orden

+ Imprimir una cuenta

+ Llamar a un asistente

+ Llamar a un mozo de piso

+ Llevar un control del progreso de la orden

+ Notificar al chef el progreso de los clientes en sus alimentos

+ Obtener un acuse de recibo

+ Recibir una notificación de la cocina

+ Recibir una notificacion del bar

+ Tomar una orden

+ Tomar una orden de bebida

+ Totalizar una cuenta

+ Transmitir la orden a la cocina

+ Transmitir una orden de bebida al bar

Chef

+ Almacenar una receta

+ Asignar una orden

+ Dar acuse de recibo a una peticion del mesero

+ Indicar el periodo de preparación

+ Notificar al mesero

+ Recibir una peticion del mesero

+ Recuperar una receta

Mozo de piso

+ Dar acuse de recibo a una peticion

+ Indicar que una mesa ha sido limpiada

+ Recibir una peticion del mesero

Asistente

+ Dar acuse de recibo de una peticion

+ Notificar que la peticionse ha completado

+ Recibir una peticion del chef

+ Recibir una peticion del mesero

Cantinero

+ Capturar una receta de bebida

+ Dar acuse de recibo de una peticion

+ Notificar que la peticion se ha completado

+ Obtener la receta de una bebida

+ Recibir una notificacion del mesero

+ Recibir una peticion del mesero

Guardaropa

+ Imprimir un vale de abrigo

+ Imprimir un vale de sombrero

Como vemos aquí agrupamos cada uno de los casos de uso según el actor.Pero para no extendernos vamos analizar al mesero quien es el que más casos de uso presenta:

En el siguiente grafico puede verse el paquete mesero con todos sus casos de uso y los que se extienden de otros

Page 11: Informe de diseño sistema RICO

10

|

uc Mesero

Tomar una orden

Transmitir la orden a la cocina

Cambiar una orden

Recibir una notificación de la

cocinaLlev ar un control del progreso de la orden

Notificar al chef el progreso de los clientes

en sus alimentos

Totalizar una cuenta

Imprimir una cuenta

Llamar a un asistente Llamar a un mozo de piso

Tomar una orden de bebida

Transmitir una orden de bebida al bar

Obtener un acuse de recibo

Recibir una notificacion del bar

«include»«include»

«include»

Estos paquetes nos dan una idea de los componentes del sistema que han de servir para crear nuestras interfaces graficas.

A continuación describiremos el caso de uso Tomar una orden; el cual lo aplicaremos a la interfaz grafica de usuario o GUI que vamos a crear.

Page 12: Informe de diseño sistema RICO

11

|

Diseño

A continuación describiremos el caso de uso Tomar una orden; el cual lo aplicaremos a la interfaz grafica de usuario o GUI que vamos a crear.

Caso de Uso Tomar una Orden

La mejor forma de mostrar el desarrollo de este caso de uso es por medio de un diagrama de actividades que vemos a continuación:

sd Tomar una orden

:GUI

(from Modelo de secuencias)

RICO

(from Modelo de secuencias)

Orden

(from Modelo de secuencias)

:UIChef

(from Modelo de secuencias)

:BDOrdenes

(from Modelo de secuencias)

Registro de orden

Registrar(seleccion)

crear()

inalambrico()

EnviarCocina(orden)

Recibido(orden)

Recibido(orden)

Registrar(orden)

Como podemos observar el mesero por medio de la interfaz gráfica de su palm, señalara el ingreso de una orden, la cual se comunicara, directamente con nuestro sistema RICO el cual creara la orden y enviara la misma al chef de la cocina. Este último a su vez deberá informarle a mesero que la orden fue recibida entre tanto que se registra la orden en la base de datos.

En este diagrama cada línea de vida proviene de un objeto, y es así como vemos que aparece un nuevo objeto denominado BDOrdenes, al mismo tiempo que se muestra la interfaz grafica y el sistema como objetos del dominio.

Con este diagrama de caso de uso junto a los demás, podemos ya darnos una idea de cómo haría el despliegue de nuestra aplicación teniendo en cuenta que son dispositivos que deben funcionar de forma inalámbrica.

Page 13: Informe de diseño sistema RICO

12

|

Diagrama de Despliegue

Aquí podemos ver el diagrama que representa a los computadores de escritorio que usaremos y las palms que usarían nuestros meseros, mozos de piso y asistentes.

deployment Modelo de despliegue

«device»Red

Computadora palmtop

Pc de la cocinaPc de gerente

Inalambrico

Desarrollo

A partir de este momento ya podemos empezar a codificar y a crear nuestras interfaces estas interfaces las vemos como objetos que se comunican por medio de mensajes; así que a continuación describiremos cada uno de estos objetos:

GUI

A continuación se muestran un modelo posible de las interfaces graficas de nuestro sistema; cabe anotar que estas interfaces se pueden modelar en el mismo Enterprice Archictect.

La pantalla principal para una orden luciría así:

Page 14: Informe de diseño sistema RICO

13

|

ui Ordenes

Vista de ordenes

Tomar

Cambiar

Progreso

Bebida

Aceptar

Ordenes Cuentas Mensajes

En ella podemos ver los botones para tomar la orden, que es el caso de uso que se va a desarrollar en código; el de cambiar una orden, el de revisar el progreso de la orden, el de solicitar una bebida y el de aceptar que enviaría las ordenes.

Esta interfaz estará comunicada con el componente GUI el cual registrara la orden en el sistema RICO, Enviara la orden a la cocina, y Espera el recibido de la orden.

Este componente se puede representar como una clase así:

class GUI

GUI

+ Recibido(Integer) : void

El objeto RICO class RICO

RICO

+ enviarCocina(Integer) : void+ Recibido(Integer) : void+ Registrar(Integer) : void

Objeto Orden class Orden

Orden

+ crear() : void

Objeto UIChef class UIChef

UIChef

+ Inalambrico() : void

Page 15: Informe de diseño sistema RICO

14

|

Objeto BDOrdenes class BDOrdenes

BDOrdenes

+ Registrar(Integer) : void

Estos objetos serán los que conectemos con la interfaz gráfica.

Desde el mismo Enterprise Archictect, creamos los objetos en los diversos lenguajes que nos aporta esta herramienta; en este caso use la generación de código en visual basic .net, mismo lenguaje que se usara para interfaz gráfica.

El código generado es el siguiente:

Para la GUI:Namespace RICO.GUI

Public Class GUI

''' ''' <param name="Orden"></param>Public Sub Recibido(ByVal Orden As Integer)

End Sub

End Class ' GUI End Namespace ' GUI

Para RICONamespace RICO.RICO

Public Class RICO

''' ''' <param name="Orden"></param>Public Sub enviarCocina(ByVal Orden As Integer)

End Sub

''' ''' <param name="Orden"></param>Public Sub Recibido(ByVal Orden As Integer)

End Sub

Page 16: Informe de diseño sistema RICO

15

|

Para Orden

Namespace RICO.OrdenPublic Class Orden

Public Sub crear()

End Sub

End Class ' Orden End Namespace ' Orden

Para UIChef

Namespace RICO.UIChefPublic Class UIChef

Public Sub Inalambrico()

End Sub

End Class ' UIChef End Namespace ' UIChef

Para BDOrdenes

Namespace RICO.BDOrdenesPublic Class BDOrdenes

''' ''' <param name="Orden"></param>Public Sub Registrar(ByVal Orden As Integer)

End Sub

End Class ' BDOrdenes End Namespace ' BDOrdenes

Page 17: Informe de diseño sistema RICO

16

|

Conclusiones

El diseño de software, exige una gran responsabilidad y esta es exigirse al máximo en el buen desarrollo, el uso de las mejores prácticas y de una metodología que permita mantener la viabilidad del proyecto.

El Lenguaje de Modelado Unificado, es una herramienta excelente para ayudarnos a modelar y crear diversas vistas de nuestros proyectos, para así mismo servir de guía tanto a los clientes como a los demás usuarios del sistema incluso al personal de desarrollo.

Las herramientas como Enterprise Archictect son herramientas poderosas para ayudarnos a modelar en UML y generar código en diversos lenguajes de programación.