Proyecto RestSoft Sistemas
description
Transcript of Proyecto RestSoft Sistemas
PROYECTO RESTSOFTSISTEMAS
Proyecto Final:RestSoft Sistemas.Sistema para la gestión de restaurantes, bares y patios de comida.
Carrera:Ingeniería en Sistemas de Información
Docentes:Ing. Zohil Julio CesarIng. Villafañe Christian
Integrantes:Caballero MartinEscudero EzequielTerzoni Marcos
PRESENTACIÓN DEL PROYECTO
PRESENTACION DE LA EMPRESA La organización en la que se
desarrolla el proyecto es una empresa villamariense, se trata de “Meroi Bar & Restaurant”.
Degustación de platos de la más variada y exquisita gastronomía internacional.
Tiene una ambientación que mantiene un estilo retro, de prolijo cuidado y delicada selección de fino amoblamiento.
FORMA ACTUAL DE TRABAJO
FORMA ACTUAL DE TRABAJO
FORMA ACTUAL DE TRABAJO
FORMA ACTUAL DE TRABAJO
PROBLEMAS OBSERVADOS Pérdida de tiempos y organización en la toma
de pedido. Necesidad de duplicación de comanda para
informar a los distintos sectores (cocina, barra, caja).
Alto desplazamiento de los mozos alterando el ambiente de tranquilidad y respeto.
Problemas de pedidos intercambiados. Desconocimiento de la disponibilidad de platos. Los mozos no recuerdan los precios.
SOLUCION: Disponibilidad de un PDA con RestSoft Mobile por mozo.
PROBLEMAS OBSERVADOS (CONT. 2) Falta de información de los clientes. Desconocimiento del perfil de consumo. Falta de seguimiento de las reservas.
SOLUCION: Registrar información de clientes. Registrar información de reservas y realizar un
monitoreo de las mismas.
PROBLEMAS OBSERVADOS (CONT. 3) Falta de control de stock.
SOLUCION: Automatizar el control de stock registrando las altas y las bajas. Generando reporte de faltantes de artículos.
No existe un mecanismo de compra estructurado.
SOLUCION: Se abarcaría el proceso completo desde las solicitudes de cotización hasta la recepción de los pedidos.
PROBLEMAS OBSERVADOS (CONT. 4) Falta de un medio vía web para los clientes que
deseen realizar un pedido o una reserva.
SOLUCION: Implementación de un sistema web para consulta, toma de pedidos y de reservas.
Falta de información destinadas a los diferentes niveles de la organización, especialmente para la alta gerencia.
SOLUCION: Emitir reportes, generar informes, contrastar la información a través del tiempo haciendo uso de herramientas de consultas dinámicas como cubos OLAP.
NUEVA FORMA DE TRABAJO
NUEVA FORMA DE TRABAJO
NUEVA FORMA DE TRABAJO
NUEVA FORMA DE TRABAJO
NUEVA FORMA DE TRABAJO
NUEVA FORMA DE TRABAJO
REQUERIMIENTOS DEL SISTEMA Gestión de Stock y Compras Gestión de Pedido
Para consumo en salón Con entrega a domicilio Pedidos telefónicos Pedidos vía Web
Gestión de Reservas Gestión de Clientes Gestión de Proveedores Gestión de Empleados Gestión de Usuarios Gestión de Artículos Gestión de Calidad Gestión de Carta y Menú Gestión de Caja Gestión de turnos de Personal Auditoría
PLATAFORMAS DE DESARROLLO
OBJETIVO DEL PROYECTO DEL SI SOPORTE ALTAMENTE AUTOMATIZADO E INTEGRADO A LOS
DISTINTOS REQUERIMIENTOS DE NEGOCIO.
SOFTWARE ÁGIL Y FÁCIL DE USAR EQUILIBRADO A UNA COMPLETA FUNCIONALIDAD.
BRINDAR INFORMACIÓN PARA LA TOMA DE DECISIONES A NIVELES DE DIRECCIÓN.
INTEGRACIÓN DE TECNOLOGÍAS DE VANGUARDIA LIBRES DE LICENCIAMIENTO.
ESTUDIO DE FACTIBILIDAD LA EMPRESA SOLO CUENTA CON EL EQUIPAMIENTO
INFORMÁTICO BÁSICO. EXISTE INTERÉS EN INVERTIR EN TECNOLOGÍA NECESARIA PARA SU IMPLEMENTACIÓN.
NO EXISTE, EN CUANTO A LA TECNOLOGÍA QUE SE HALLA A LA VENTA EN EL MERCADO, IMPEDIMENTO ALGUNO QUE PONGA EN PELIGRO LA VIABILIDAD DEL PROYECTO.
EVALUACIÓN DE HARDWARE.
SERVIDOR.
ROUTER INALÁMBRICO.
UPS (PRECIO APROXIMADO DESDE $ 300).
SERVICIO DE CONEXIÓN A INTERNET.
ESTUDIO DE FACTIBILIDAD TERMINALES MÓVILES CON CONEXIÓN WI-FI. PANTALLA SUPERIOR A 3".
TABLET PC, PAD, SIMILARES. (DESDE $ 1000 C/U).
EVALUACIÓN DE SOFTWARE.
SISTEMA OPERATIVO. MICROSOFT WINDOWS XP O SUPERIOR, DISTRIBUCIÓN LINUX.
ANTIVIRUS.
BROWSER O NAVEGADOR DE INTERNET.
HERRAMIENTAS DE ESCRITORIO OFFICE .
ESTUDIO DE FACTIBILIDAD FACTIBILIDAD OPERATIVA.
PERSONAL INVOLUCRADO ENTUSIASMADO Y PREDISPUESTO.
CAPACITACIÓN. PERSONAL JOVEN CON DOMINIO DE LAS NUEVAS TECNOLOGÍAS.
FACTIBILIDAD ECONÓMICA.
ESTUDIO EXHAUSTIVO DE FACTIBILIDAD ECONÓMICA NO NECESARIO YA QUE EL DESARROLLO ES LLEVADO A CABO EN FORMA ACADÉMICA, PARA LA EMPRESA NO SUPONE SINO HASTA LA ETAPA DE IMPLEMENTACIÓN COSTO ALGUNO.
HERRAMIENTAS UTILIZADAS PARA EL DESARROLLO SON APORTADAS POR EL GRUPO DE TRABAJO Y DISPONIBLES EN LA UNIVERSIDAD Y PUESTAS A DISPOSICIÓN DE LOS ALUMNO.
INVERSIONES MAYORMENTE SOLO DESCRIPTAS EN LA FASE TÉCNICA DE LOS RECURSOS QUE NO DISPONE.
METODOLOGÍA
ORIENTACIÓN A OBJETOS DEL PROCESO UNIFICADO DE DESARROLLO (PUD).
MARCO DE DESARROLLO DE SOFTWARE Y UN MARCO DE TRABAJO EXTENSIBLE QUE PUEDE SER ADAPTADO A ORGANIZACIONES O PROYECTOS ESPECÍFICOS.
UML COMO LENGUAJE DE ESPECIFICACIÓN Y DESCRIPCIÓN DE SW
CARACTERÍSTICAS PRINCIPALES
DIRIGIDO POR CASOS DE USO.
CENTRADO EN LA ARQUITECTURA.
ITERATIVO E INCREMENTAL.
ENFOCADO EN LOS RIESGOS.
METODOLOGÍA DE DESARROLLO
METODOLOGÍA DE DESARROLLO CICLO DE VIDA DEL PROYECTO DIVIDIDO EN FASES:
INICIO ELABORACIÓN CONSTRUCCIÓN TRANSICIÓN
METODOLOGIA DE DESARROLLO FASES COMPUESTAS POR “N” ITERACIONES DE FLUJOS DE
TRABAJO:
REQUERIMIENTOS ANÁLISIS DISEÑO IMPLEMENTACIÓN PRUEBAS
HERRAMIENTAS
MODELO DE NEGOCIO
WORKFLOW DE REQUERIMIENTOS uc Use Case Mo...
cobros
pedidos
Encargado de pedidos
003 - Consultar reserv as
001 - Registrar pedido para consumo en salón
021 - Consultar pedidos
022 - Modificar pedido
023 - Eliminar pedido
042 - Consultar clientes
041 - Solicitar autorización tarjeta de crédito
ATC
Chef
Encargado de reparto
025 - Consultar pedidos para env ío a domicilio
002 - Registrar pedido para consumo fuera de salón
038 - Registrar cobro
039 - Modificar cobro
040 - Eliminar cobro
037 - Consultar cobros
024 - Modificar pedido para env ío a domicilio
123 - Actualizar el estado del pedido para consumo fuera del
salón como ENTREGADO
124 - Actualizar el estado del pedido a DESPACHADO
145 - Consultar Artículos
146 - Consultar Cuenta corriente de
Cliente
147 - Cerrar Pedido
«extend»
«extend»
«extend»
«extend»
«extend»
«extend»
«extend»
«extend»
«extend»
«extend»
«extend»
«extend»
«extend»«extend»
«include»
«extend»
«extend»
«extend»
«extend»
«extend»
«extend»
«extend»
«extend»
«extend»
«extend»
«extend»
«extend»
WORKFLOW DE ANÁLISIS class Pedido
Pedido
- cliente: Cliente- detalles: Set<DetalleDePedido>- empleado: Empleado- fecha: Date- id: int- observaciones: String- tipoDeDescuento: TipoDeDescuento- total: Double
DetalleDePedido
- articulo: Articulo- cantidad: int- estado: EstadoDetalleDePedido- historial: Set<DetalleHistorialEstado>- id: int- observaciones: String- precio: Double- subtotal: Double
+ anular() : void+ cancelar() : void+ entregar() : void+ preparar() : void+ terminar() : void
Articulo::Articulo
- descripcion: String- id: Integer- lugarDePreparacion: LugarDePreparacion- nombre: String- presentacion: Presentacion
Mesa
- denominacion: String- estado: EstadoMesa- id: int
+ cancelarReserva() : void+ deshabil itar() : void+ habil itar() : void+ liberar() : void+ ocupar() : void+ reservar() : void
PersonaCliente::Cliente
- condicionIVA: CondicionIVA- esPersonaFisica: Boolean- fechaNacimiento: Date- numeroDeCuit: String- razonSocial: String
PedidoDeSalon
- cantidadDePersonas: int- estado: EstadoPedidoSalon- mesa: Mesa
+ anular() : void+ cancelar() : void+ cerrar() : void
PedidoParaDeliv ery
- cadete: Empleado- direccion: Direccion- estado: EstadoPedidoDelivery
+ anular() : void+ cancelar() : void+ despachar() : void+ entregar() : void+ preparar() : void+ terminar() : void+ tomar() : void
Direccion::Direccion
- calle: String- id: Integer- localidad: Localidad- numero: Integer
TipoDeDescuento
- descripcion: String- id: Short- nombre: String- porcentaje: Double
PersonaEmpleado::Empleado
- cargo: Cargo- fechaNacimiento: Date- numeroCuil: String
DetalleHistorialEstado
- estado: EstadoDetalleDePedido- fechaFin: Date- fechaInicio: Date- id: int
WORKFLOW DE ANÁLISIS sd Alta Pedido de Salón
MozoPantallaTomaDePedido GestorTomaDePedido
:Carta cartaVigente :Carta
:Categoria
detalles :DetalleDeArticulo
articulo :Articulo
categoriaSeleccionada :Categoria
:Mesa
:PedidoDeSalon
detalle :DetalleDePedido
1: opcionRegistrarPedidoEnMesa()
1.1: inicializarVentana()
1.2: nuevoPedidoEnMesa()
1.3: inicializarVentana()
1.4: listarMesas()
1.5: getNombre()
1.6: mostrarMesas()
1.7: seleccionDeMesa() 1.8: setMesa()1.9: cantidadDePersonas()
1.10: setCantidadDePersonas()
1.11: mostrarArticulos()
1.11.1: buscarCartaVigente()
1.12: *estaVigente()
1.13: mostrarCategorias()
1.14: *getNombre()
1.15: seleccionDeCategoria()1.16: setCategoriaSeleccionada()
1.17: listarDetal lesDeArticulos()
1.18: detalles= getDetal lesDeArticulo()
1.19: *mostrarArticulo()
1.20: getNombre()
1.21: *getPrecio()
1.22: mostrarDatosDeDetallesDeArticulo()
1.23: seleccionDeDetal leDeArticulo()1.24: setDetalleDeArticulo()1.25: tomarCantidadDeArticulos()
1.26: setCantidadDeArticulos()1.27: opcionAgregarAlPedido()1.28: aceptarDetalleDeArticulo()
1.29: agregarDetal leDeArticuloAlPedido()
1.30: confirmarPedido()1.31: confirmarPedido()
1.32: new()
1.33: *new()
1.34: setArticulo(articulo)
1.35: setCantidad(cantidad)
1.36: agregarDetal le(detalle)
1.37: setMesa(mesa)
1.38: setFecha(new Date())
1.39: setCantidadDePersonas()
class Pedido
Pedido
- cl iente: Cliente- detalles: Set<DetalleDePedido>- empleado: Empleado- fecha: Date- id: int- observaciones: String- tipoDeDescuento: TipoDeDescuento- total: Double
DetalleDePedido
- articulo: Articulo- cantidad: int- estado: EstadoDetal leDePedido- historial: Set<DetalleHistorialEstado>- id: int- observaciones: String- precio: Double- subtotal: Double
+ anular() : void+ cancelar() : void+ entregar() : void+ preparar() : void+ terminar() : void
Articulo::Articulo
- descripcion: String- id: Integer- lugarDePreparacion: LugarDePreparacion- nombre: String- presentacion: Presentacion
Mesa
- denominacion: String- estado: EstadoMesa- id: int
+ cancelarReserva() : void+ deshabil itar() : void+ habil itar() : void+ liberar() : void+ ocupar() : void+ reservar() : void
PersonaCliente::Cliente
- condicionIVA: CondicionIVA- esPersonaFisica: Boolean- fechaNacimiento: Date- numeroDeCuit: String- razonSocial: String
PedidoDeSalon
- cantidadDePersonas: int- estado: EstadoPedidoSalon- mesa: Mesa
+ anular() : void+ cancelar() : void+ cerrar() : void
PedidoParaDelivery
- cadete: Empleado- direccion: Direccion- estado: EstadoPedidoDelivery
+ anular() : void+ cancelar() : void+ despachar() : void+ entregar() : void+ preparar() : void+ terminar() : void+ tomar() : void
Direccion::Direccion
- calle: String- id: Integer- localidad: Localidad- numero: Integer
«interface»EstadoPedidoSalon
+ anular(PedidoDeSalon) : void+ cancelar(PedidoDeSalon) : void+ cerrar(PedidoDeSalon) : void
«interface»EstadoPedidoDelivery
+ anular(PedidoParaDelivery) : void+ cancelar(PedidoParaDelivery) : void+ despachar(PedidoParaDelivery) : void+ entregar(PedidoParaDelivery) : void+ preparar(PedidoParaDelivery) : void+ terminar(PedidoParaDelivery) : void+ tomar(PedidoParaDelivery) : void
«interface»EstadoMesa
+ cancelarReserva(Mesa) : void+ deshabil itar(Mesa) : void+ habil itar(Mesa) : void+ liberar(Mesa) : void+ ocupar(Mesa) : void+ reservar(Mesa) : void
«interface»EstadoDetalleDePedido
+ anular(DetalleDePedido) : void+ cancelar(DetalleDePedido) : void+ entregar(DetalleDePedido) : void+ preparar(DetalleDePedido) : void+ terminar(DetalleDePedido) : void
TipoDeDescuento
- descripcion: String- id: Short- nombre: String- porcentaje: Double
PersonaEmpleado::Empleado
- cargo: Cargo- fechaNacimiento: Date- numeroCuil: String
DetalleHistorialEstado
- estado: EstadoDetalleDePedido- fechaFin: Date- fechaInicio: Date- id: int
WORKFLOW DE DISEÑO
stm DTEDetalle
DetallePendiente
DetalleEnPreparacion
DetalleListoParaEntregar
DetalleEntregado
DetalleCancelado DetalleAnulado
Inicio
Fin
preparar() anular()cancelar()
terminar()
cancelar() anular()
anular()
entregar()
cancelar()
new()
class estadosDetalle
«interface»Pedido::EstadoDetalleDePedido
+ anular(DetalleDePedido) : void+ cancelar(DetalleDePedido) : void+ entregar(DetalleDePedido) : void+ preparar(DetalleDePedido) : void+ terminar(DetalleDePedido) : void
DetalleAnulado
+ anular(DetalleDePedido) : void+ cancelar(DetalleDePedido) : void+ entregar(DetalleDePedido) : void+ preparar(DetalleDePedido) : void+ terminar(DetalleDePedido) : void
DetalleCancelado
+ anular(DetalleDePedido) : void+ cancelar(DetalleDePedido) : void+ entregar(DetalleDePedido) : void+ preparar(DetalleDePedido) : void+ terminar(DetalleDePedido) : void
DetalleEnPreparacion
+ anular(DetalleDePedido) : void+ cancelar(DetalleDePedido) : void+ entregar(DetalleDePedido) : void+ preparar(DetalleDePedido) : void+ terminar(DetalleDePedido) : void
DetalleEntregado
+ anular(DetalleDePedido) : void+ cancelar(DetalleDePedido) : void+ entregar(DetalleDePedido) : void+ preparar(DetalleDePedido) : void+ terminar(DetalleDePedido) : void
DetalleListoParaEntregar
+ anular(DetalleDePedido) : void+ cancelar(DetalleDePedido) : void+ entregar(DetalleDePedido) : void+ preparar(DetalleDePedido) : void+ terminar(DetalleDePedido) : void
DetallePendiente
+ anular(DetalleDePedido) : void+ cancelar(DetalleDePedido) : void+ entregar(DetalleDePedido) : void+ preparar(DetalleDePedido) : void+ terminar(DetalleDePedido) : void
WORKFLOW DE DISEÑO
WORKFLOW DE DISEÑO
WORKFLOW DE IMPLEMENTACIÓN
WORKFLOW DE IMPLEMENTACIÓN
WORKFLOW DE IMPLEMENTACIÓN
PATRÓN CLIENTE-SERVIDOR N-CAPAS: COMPONENTES PRINCIPALES
SEPARACIÓN DE INTERESES: NIVELES DIFERENTES Y CLARAMENTE DIVIDIDOS PARA PRESENTACIÓN, NEGOCIOS Y MANEJO DE DATOS.
COMUNICACIONES SINCRÓNICAS: LA COMUNICACIÓN ENTRE NIVELES ES PEDIDO-RESPUESTA SINCRÓNICA
DISTRIBUCIÓN FLEXIBLE: NO HAY RESTRICCIONES PARA LA DISTRIBUCIÓN MULTI-NIVELES DE LA APLICACIÓN. TODOS LOS NIVELES PUEDEN CORRER EN LA MISMA MÁQUINA O EN SU PROPIA MÁQUINA.
ES ADECUADO PARA DAR SOPORTE A UN NÚMERO POTENCIALMENTE GRANDE DE CLIENTES Y PEDIDOS CONCURRENTES
FRAMEWORK DE ARQUITECTURA
PATRÓN CLIENTE-SERVIDOR N-CAPAS: COMPONENTES PRINCIPALES
FRAMEWORK DE ARQUITECTURA
VISTA ARQUITECTÓNICA DE DESPLIEGUE
PREGUNTAS?