View
89
Download
3
Category
Preview:
Citation preview
Por Juan Carlos Fajardo
Código 9822037
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
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
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.
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]
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]
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
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.
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.
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
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.
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.
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í:
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
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
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
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.
Recommended