Requerimientos y Especificaciones para el Desarrollo de Software
Información del Proyecto
Nombre del proyecto: Sistema de Gestión de Restaurante
Fecha: 30 de Mayo, 2025
Versión: 1.0
Creado por: [Nombre del analista]
Índice
1. Introducción
o 1.1 Alcance del producto
o 1.2 Valor del producto
o 1.3 Público objetivo
o 1.4 Uso previsto
o 1.5 Descripción general
2. Requisitos funcionales
3. Requisitos de la interfaz externa
o 3.1 Requisitos de la interfaz de usuarios
o 3.2 Requisitos de la interfaz de hardware
o 3.3 Requisitos de la interfaz de software
o 3.4 Requisitos de la interfaz de comunicación
4. Requisitos no funcionales
o 4.1 Seguridad
o 4.2 Capacidad
o 4.3 Compatibilidad
o 4.4 Confiabilidad
o 4.5 Escalabilidad
o 4.6 Mantenibilidad
o 4.7 Facilidad de uso
o 4.8 Otros requisitos no funcionales
5. Definiciones y acrónimos
6. Diagramas de Procesos
7. Casos de Uso del Negocio
8. Desarrollo Final del Prototipado
1. Introducción
Este documento describe los requerimientos y especificaciones para el
desarrollo del Sistema de Gestión de Restaurante, una solución integral que
automatiza y optimiza las operaciones diarias de establecimientos
gastronómicos.
1.1 Alcance del producto
El Sistema de Gestión de Restaurante tiene como objetivo automatizar y
optimizar las siguientes operaciones:
Gestión de mesas y reservas
Administración de pedidos y órdenes de cocina
Control de inventario y menú
Facturación y procesamiento de pagos
Generación de reportes administrativos
Control de usuarios y roles
1.2 Valor del producto
El producto proporcionará los siguientes beneficios:
Reducción del tiempo de servicio al cliente en un 30%
Minimización de errores en pedidos y facturación
Optimización del flujo de trabajo entre meseros, cocina y caja
Mejora en la experiencia del cliente
Control financiero y operativo en tiempo real
Incremento de la eficiencia operativa del restaurante
1.3 Público objetivo
Usuarios principales:
Meseros: Personal de servicio al cliente
Cocineros: Personal de cocina
Cajeros: Personal de facturación
Administradores: Gerentes y propietarios del restaurante
Usuarios secundarios:
Clientes: Para funcionalidades de autoservicio (opcional)
1.4 Uso previsto
El sistema será utilizado para:
Meseros: Registrar pedidos, consultar disponibilidad de mesas,
gestionar el estado de las órdenes
Cocineros: Visualizar pedidos pendientes, actualizar estado de
preparación, gestionar tiempos de cocina
Cajeros: Generar facturas, aplicar descuentos, procesar pagos, manejar
devoluciones
Administradores: Configurar menú, gestionar usuarios, generar
reportes, administrar inventario
Clientes: Realizar reservas, consultar menú, hacer pedidos de
autoservicio
1.5 Descripción general
El Sistema de Gestión de Restaurante es una aplicación web responsiva con
arquitectura cliente-servidor que integra módulos de gestión de pedidos,
facturación, inventario y administración. El sistema incluye interfaces
diferenciadas por rol de usuario, integracn con sistemas de pago, y
capacidades de reportería en tiempo real.
2. Requisitos funcionales
RF-001 Gestión de Autenticación
El sistema debe permitir login seguro con usuario y contraseña
Debe implementar control de acceso basado en roles
Debe mantener sesiones de usuario activas durante el turno de trabajo
RF-002 Gestión de Mesas
El sistema debe mostrar el estado de las mesas (disponible, ocupada,
reservada)
Debe permitir asignar y liberar mesas
Debe gestionar reservas con fecha y hora
RF-003 Gestión de Pedidos
Los meseros deben poder registrar pedidos por mesa
El sistema debe enviar automáticamente los pedidos a cocina
Debe permitir modificar pedidos antes de enviar a cocina
RF-004 Gestión de Cocina
Los cocineros deben visualizar pedidos pendientes en orden cronológico
Debe permitir actualizar el estado de preparación de cada plato
Debe notificar cuando los platos estén listos
RF-005 Facturación
El sistema debe generar facturas automáticamente
Debe permitir aplicar descuentos y promociones
Debe soportar múltiples métodos de pago
RF-006 Administración de Menú
Debe permitir agregar, modificar y eliminar productos del menú
Debe gestionar precios y categorías
Debe controlar disponibilidad de productos
RF-007 Reportería
Debe generar reportes de ventas diarias, semanales y mensuales
Debe mostrar estadísticas de productos más vendidos
Debe generar reportes de eficiencia operativa
3. Requisitos de la interfaz externa
3.1 Requisitos de la interfaz de usuarios
Interfaz web responsiva compatible con tablets y dispositivos móviles
Dashboard diferenciado por roles con navegación intuitiva
Tema visual profesional con colores corporativos del establecimiento
Iconografía clara para acciones principales
Notificaciones visuales para alertas y confirmaciones
Accesibilidad cumpliendo estándares WCAG 2.1
3.2 Requisitos de la interfaz de hardware
Dispositivos compatibles: Tablets Android/iOS, computadoras
Windows/Mac/Linux
Impresoras térmicas: Para tickets de cocina y facturas
Lectores de códigos de barras: Para productos de inventario
Terminal punto de venta (POS): Para procesamiento de pagos
Red WiFi: Estable con velocidad mínima de 10 Mbps
3.3 Requisitos de la interfaz de software
Base de datos: MySQL 8.0 o PostgreSQL 12+
Framework backend: Laravel 10+ (PHP 8.1+)
IDE de desarrollo: Visual Studio Code con extensiones PHP y Laravel
Framework frontend: Laravel Blade con Bootstrap 5 o Vue.js integrado
Servidor web: Apache con mod_rewrite habilitado
API REST: Para comunicación entre componentes
Integración con sistemas de pago: PayPal, Stripe, o pasarelas locales
3.4 Requisitos de la interfaz de comunicación
Protocolo HTTPS para todas las comunicaciones
API REST con formato JSON para intercambio de datos
WebSockets para notificaciones en tiempo real
Integración por email para confirmaciones y reportes
SMS opcional para notificaciones de reservas
4. Requisitos no funcionales
4.1 Seguridad
Encriptación de contraseñas con bcrypt o similar
Implementación de HTTPS con certificados SSL/TLS
Protección contra ataques SQL injection, XSS y CSRF
Backup automático de datos cada 24 horas
Logs de auditoría para acciones críticas
Cumplimiento con normativas de protección de datos locales
4.2 Capacidad
Usuarios concurrentes: Hasta 50 usuarios simultáneos
Almacenamiento: 100GB inicial con capacidad de expansión
Transacciones: 1000 pedidos por día
Base de datos: Hasta 1 millón de registros históricos
Tiempo de respuesta: Máximo 3 segundos para consultas complejas
4.3 Compatibilidad
Navegadores web: Chrome 90+, Firefox 88+, Safari 14+, Edge 90+
Sistemas operativos: Windows 10+, macOS 10.15+, Ubuntu 20.04+
Dispositivos móviles: Android 8.0+, iOS 13+
Resoluciones de pantalla: Desde 1024x768 hasta 4K
4.4 Confiabilidad
Disponibilidad: 99.5% de uptime (máximo 3.6 horas de inactividad
mensual)
MTBF (Mean Time Between Failures): 720 horas
MTTR (Mean Time To Recovery): Máximo 30 minutos
Tolerancia a fallos con recuperación automática de sesiones
4.5 Escalabilidad
Escalabilidad horizontal: Soporte para múltiples servidores
Carga máxima: 200% de la capacidad normal durante picos
Crecimiento de datos: Manejo eficiente hasta 10x el volumen inicial
Nuevas funcionalidades: Arquitectura modular para expansiones
futuras
4.6 Mantenibilidad
Código documentado con comentarios y documentación técnica
Integración continua con pipelines automatizados
Versionado de código con Git
Monitoreo automatizado de rendimiento y errores
Actualizaciones sin interrupciones del servicio
4.7 Facilidad de uso
Curva de aprendizaje: Máximo 2 horas de entrenamiento por usuario
Interfaz intuitiva: Máximo 3 clics para acciones comunes
Ayuda contextual y tooltips informativos
Manual de usuario en español con capturas de pantalla
Soporte técnico durante horarios comerciales
4.8 Otros requisitos no funcionales
Rendimiento: Tiempo de carga inicial menor a 5 segundos
Usabilidad móvil: Optimización para uso con una mano
Internacionalización: Preparado para múltiples idiomas
Cumplimiento legal: Normativas fiscales y comerciales locales
5. Definiciones y acrónimos
API: Application Programming Interface - Interfaz de Programación de
Aplicaciones
CRUD: Create, Read, Update, Delete - Operaciones básicas de base de
datos
HTTPS: HyperText Transfer Protocol Secure - Protocolo seguro de
transferencia
JSON: JavaScript Object Notation - Formato de intercambio de datos
MTBF: Mean Time Between Failures - Tiempo medio entre fallos
MTTR: Mean Time To Recovery - Tiempo medio de recuperación
POS: Point of Sale - Punto de venta
REST: Representational State Transfer - Arquitectura de servicios web
SSL/TLS: Secure Sockets Layer/Transport Layer Security - Protocolos
de seguridad
UML: Unified Modeling Language - Lenguaje de modelado unificado
WCAG: Web Content Accessibility Guidelines - Pautas de accesibilidad
web
6. Diagramas de Procesos
[Los diagramas específicos serán desarrollados durante la fase de diseño
detallado]
7. Casos de Uso del Negocio
Actores del Negocio
1. Mesero: Atiende clientes, registra pedidos, consulta estado de mesas
2. Cocinero: Consulta órdenes pendientes, actualiza estado de
preparación
3. Cajero: Genera factura, aplica descuentos, recibe pagos
4. Administrador: Administra menú, usuarios, configuración del
restaurante, y reportes
5. Cliente (opcional): Reserva mesa, consulta menú, hace pedidos
(autoservicio)
6. Sistema de Autenticación: Maneja Login, registro, roles, y control de
acceso
Casos de Uso Principales
CU-001: Gestionar Pedido
Actor: Mesero
Descripción: El mesero registra un nuevo pedido para una mesa
específica
Flujo principal: Login → Seleccionar mesa → Agregar productos →
Confirmar pedido → Enviar a cocina
CU-002: Preparar Orden
Actor: Cocinero
Descripción: El cocinero visualiza y actualiza el estado de preparación
de las órdenes
Flujo principal: Login → Ver pedidos pendientes → Seleccionar pedido
→ Actualizar estado → Notificar finalización
CU-003: Procesar Pago
Actor: Cajero
Descripción: El cajero genera la factura y procesa el pago del cliente
Flujo principal: Login → Seleccionar mesa → Generar factura →
Aplicar descuentos → Procesar pago → Emitir comprobante
8USO DE DIAGRAMAS UML
8.1 caso de usos
8.2 diagrama de claces
1. Usuario (clase base)
Representa cualquier persona que interactúe con el sistema.
Atributos: ID, nombre, rol, contraseña.
Métodos: iniciar y cerrar sesión.
Subclases: Cliente, Mesero, Cocinero, Cajero, Administrador.
2. Cliente
Hereda de Usuario.
Puede hacer reservas y pedidos.
Relación con Pedido (uno a muchos).
3. Mesero
Hereda de Usuario.
Asocia mesas a clientes y registra pedidos.
4. Cocinero
Hereda de Usuario.
Consulta y actualiza órdenes pendientes.
5. Cajero
Hereda de Usuario.
Genera facturas y registra pagos.
6. Administrador
Hereda de Usuario.
Gestiona el menú, usuarios del sistema y reportes.
🪑 Mesa
Representa una mesa del restaurante.
Tiene un número, estado (disponible, ocupada).
Se asocia con clientes y pedidos.
🪑 Pedido
Contiene los items solicitados por un cliente.
Tiene estado (pendiente, en preparación, entregado).
Se relaciona con Cliente, Mesa y ItemPedido.
🪑 ItemPedido
Representa un ítem dentro de un pedido.
Tiene cantidad y referencia a un Producto.
Se utiliza para calcular subtotales.
🍔 Producto (del Menú)
Contiene nombre, precio y disponibilidad.
Referenciado por los ítems de pedido.
💳 Factura
Se genera al finalizar un pedido.
Incluye total, forma de pago y descuentos.
Se asocia a un Pedido.
🔐 SistemaAutenticación
Maneja la verificación de credenciales y asignación de roles.
Se relaciona con la clase Usuario.
🔗 Relaciones Clave
Herencia: Usuario es la clase base de todos los roles del sistema.
Asociaciones:
o Cliente → Pedido (1:N)
o Pedido ItemPedido (1:N)
o ItemPedido → Producto (1:1)
o Pedido Factura (1:1)
o Pedido Mesa (1:1)
8.3 diagrama de actividades
9. Desarrollo Final del Prototipado
El prototipo final debe incluir:
Mockups de interfaces para cada tipo de usuario
Flujos de navegación principales del sistema
Casos de prueba para validar funcionalidades críticas
Plan de implementación con fases de desarrollo
Cronograma de entrega con hitos específicos