Proyecto RestSoft Sistemas

Preview:

DESCRIPTION

Proyecto RestSoft Sistemas. Presentación del Proyecto. 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 Cesar Ing. Villafañe Christian Integrantes: - PowerPoint PPT Presentation

Citation preview

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?