Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Historia de revisiones
Fecha Versión Descripción Autor
[15/04/2024] [1.0] Primera versión del documento, Damian Alejandro
en donde se especifican las
bases de la construcción del
software.
1.1. Propósito
Este documento tiene el propósito de presentarlo a los usuarios en
este caso restaurante y colaboradores, una forma en la que puedan
simplificar las tareas demandantes desde la adquisición de insumos
para el restaurante de sándwiches hasta el revisar el inventario
constantemente conforme los pedidos se realicen y dejar solo activas
las opciones de cocina que se pueden preparar conforme a los insumos
de inventario.
1.2. Alcance
Este software de sandwichería facilitará los procesos que a todo
gerente y cocinero les demora, ahorrando tiempo en la gestión de
crear una órden de preparación de alimentos en donde previamente el
software cuente con la capacidad de revisar en inventario si existe la
cantidad suficiente de ingredientes para la elaboración de los
sándwiches, además de mantenerse al día con los lotes y fechas de
caducidad de los insumos que requiere el platillo. A parte de los básico
que conlleva un software punto de venta que es la creación de órden y
cobro ya sea con efectivo o otro medio digital, este sistema contará
con la capacidad de saber que insumos se va a necesitar adquirir y al
cuanto tiempo para evitar la escasez de los mismos, con la finalidad de
que no se deje de elaborar estos sándwiches.
1.4. Referencias
Para la realización del proyecto utilizaremos la plataforma Odoo que es
una plataforma de código abierto que ofrece una amplia gama de
aplicaciones empresariales, incluido un software de punto de venta.
Con ayuda de este nos encargaremos de realizar el software para el
restaurante de sándwiches.
3. Diseño de Objetos
1.7. Clase Ingrediente:
Propiedades:
-nombre: cadena
-precio: decimal
-existencias: entero
Métodos:
-obtenerNombre(): cadena
-obtenerPrecio(): decimal
-ObtenerExistencias(): enteró
Métodos:
-obtenerPago(): decimal
-obtenerMetodoPago(): cadena
Métodos:
-obtenerID(): entero
-obtenerNombre(): cadena
-ObtenerSalario(): decimal
-obtenerAntiguedad(): enteró/fecha
-obtenerDireccion(): cadena
-obtenerUsuario(): cadena
-obtenerTiempoUso(): decimal
Métodos:
-agregarEmpleado(empleado:Empleado)
-eliminarEmpleado(empleado:Empleado)
Métodos:
-agregarProducto(producto:Producto)
-eliminarProducto(producto:Producto)
Métodos:
-obtenerID(): entero
-obtenerNombre(): cadena
-ObtenerPrecio(): decimal
-obtenerExistencias(): enteró
-establecerPrecio(nuevo_precio: decimal)
-aumentarExistencias(cantidad: entero)
-reducirExistencias(cantidad: entero)
Métodos:
-obtenerNombre(): cadena
-agregarProducto(producto: Producto)
-eliminarProducto(id_producto: entero)
-obtenerProducto(id_producto: entero): Producto
-listarProductos(): lista Productos
-registrarMerma(id_producto: entero, cantidad: entero)
-obtenerMerma(id_producto: entero) entero
Métodos:
-agregarProducto(producto: Producto)
-eliminarProducto(producto: Producto)
-obtenerTotal(): decimal
-cambiarEstado(nuevo_estado: cadena)
4. Diseño de Subsistemas
1.9. Subsistemas Específicos
1.1.5. [Gestión de ventas y Pedidos]
Propósito:
- Este subsistema se crea para manejar toda la lógica que relaciona la
creación y administración de ventas y pedidos para la sandwichera.
Función:
● Módulo de punto de venta (POS)
○ Como entrada recibe el pedido a realizar y la salida es la
cantidad de insumos existentes.
○ Se encarga también de ingresar o regresar (en caso de que ya
exista en la bd) el cliente que se está atendiendo.
○ Gestión de caja, como entrada es la cantidad de dinero de
dinero que ingresa y egresa de la caja registradora.
○
Subordinados:
GestionAlmacenMenu()
Subsistema del Naturaleza de Características
que depende interacción
Gestión de Virtual a la base de datos Se recibe la cantidad de
inventario y insumos seleccionada y
productos regresa la cantidad que
hay en stock.
PagosMenu()
Subsistema del Naturaleza de Características
que depende interacción
Gestión de ventas y Consumo de API Muestra y selecciona la
pedidos forma de pago en caso de
que sea con tarjeta
Recursos:
● Servidor
○ Este equipo se debe adquirir antes de desplegar el sistema en
el negocio, con las características anteriormente mencionadas
y el tiempo de uso será permanente por el tiempo que
funcionen sus componentes internos.
● IPS
○ También se debe concretar el contrato con el proveedor de
servicio de internet antes del despliegue para poder realizar
Interfases:
Subordinados:
Dependencias:
Recursos:
● Servidor
○ Este equipo se debe adquirir antes de desplegar el sistema en
el negocio, con las características anteriormente mencionadas
y el tiempo de uso será permanente por el tiempo que
funcionen sus componentes internos.
● Switch
○ Este equipo se debe adquirir conforme se vaya suministrando
las máquinas que irán conectadas al servidor para usar el
sistema, el tiempo de uso será permanente por el tiempo que
funcionen sus componentes internos.
● Equipo de gerencia:
○ Este equipo debe adquirirse al momento de contratar al
encargado del establecimiento para que pueda gestionar la
administración del mismo, el tiempo de uso será permanente
por el tiempo que funcionen sus componentes internos.
● Equipo almacén:
○ Este equipo debe adquirirse antes de la inauguración de la
tienda física para que pueda hacer uso del sistema, el tiempo
de uso será permanente por el tiempo que funcionen sus
componentes internos.
● Escáner:
○ Este equipo debe adquirirse antes de la inauguración de la
tienda física para que pueda hacer uso del sistema, el tiempo
de uso será permanente por el tiempo que funcionen sus
componentes internos.
Interfases:
6. Diseño de Datos
El sistema hace uso de “listas enlazadas” y “arreglos” para llevar un
maneja controlado y eficaz del flujo de datos constante que emplea el
sistema, con ellos garantizamos que exista una fácil manipulación y acceso a
la información, minimizando el tiempo de búsqueda y maximizando la
eficiencia en el procesamiento de datos. También nos apoyaremos en el uso
de “diccionarios” para almacenar información adicional necesaria para el
funcionamiento del sistema, como puede ser el inventariado de ingredientes,
precios de los productos, etc.
También se tienen que mencionar las particularidades tecnológicas, como
pueden ser las integraciones adicionales, que se conforman por la integración
de OPENPAY, para poder realizar los cobros por tarjeta.
En cuanto a la base de datos que maneja el sistema, esta tiene sus bases en
MySQL, la cual véase la simpleza en la elaboración de los sandwiches, realiza
el aumento y decremento de los datos, conforme son especificados en las
funciones de los métodos, presentes en los objetos del sistema.
Por último debemos mencionar, el POS de tipo restaurante que es en el cual
se sostiene nuestro software, con el podemos agilizar mucho el proceso del
manejo de datos.
10.4. Modelo de Datos del Núcleo
Pese a que se necesita de la participación de todos los elementos
presententes en el software, para su correcto funcionamiento, es no es
impedimento para identificar aquellos, que sostienen al software, los cuales
no son dependientes principales, de otro elemento, si no, complementados,
estos son:
Empleado:
Datos: ID, Nombre, Dirección, Salario, Usuario, Contraseña, Antigüedad,
Usuario, Status, Tiempo de Uso.
Cliente:
Datos: ID, Pago, Método Pago.
Pedido:
Datos: Número Pedido, Productos, Cliente, Fecha_Hora, Estado.
Sandwich:
Datos: Nombre, Ingredientes, Precio Total, Existencias.
Almacén:
Datos: Nombre, Inventario, Mermas.
Reportes:
Datos: Reporte Datos Inventario, Reporte Datos Empleados, Reporte Datos
Ventas.
Elementos de pruebas
Pruebas de regresión
- Procesamiento de transacciones y descuentos en el POS.
- Actualizaciones de inventario tras cada venta.
Funcionalidades a no probar
- Módulos específicos para industrias no relacionadas como
manufactura o construcción, asumiendo que no se aplican en la
operación de una sandwichería.
- Riesgos asumidos por no probar estos módulos incluyen la falta
de funcionalidades no esenciales para el negocio.
Criterios de suspensión
- Las pruebas se suspenderán si más del 20% de los casos de
prueba fallan, indicando problemas sistemáticos.
-
Criterios de reanudación
- La reanudación de las pruebas dependerá de la resolución de
estos problemas y de una revisión exitosa de los cambios
implementados.
Recursos
Servidores de Aplicación:
- Servidor dedicado para la instancia de Odoo, que puede ser
tanto en local como en la nube. Se recomienda un servidor
con al menos 16 GB de RAM y un procesador de 4 núcleos
para soportar múltiples sesiones simultáneas y
operaciones de back-end en tiempo real.
Bases de Datos:
Conectividad a la Red:
- Conexión a internet de alta velocidad (al menos 100 Mbps
de bajada) para garantizar la conectividad con servidores
en la nube y facilitar el acceso remoto seguro a los
entornos de prueba.
Sistemas Operativos:
- Ubuntu 20.04 LTS o superior en las máquinas de los testers
y en los servidores de aplicación y base de datos. Esta
versión de Ubuntu ofrece un entorno estable y seguro, con
actualizaciones a largo plazo que garantizan la
compatibilidad y el rendimiento.
Odoo 17:
- Instalación de la última versión de Odoo 17 con todos los
módulos necesarios habilitados, incluyendo el Punto de
Venta, Ventas, Inventario y Compras.
Base de Datos:
- PostgreSQL como sistema de gestión de base de datos,
con la última versión estable para garantizar la
compatibilidad y el rendimiento óptimo.
Herramientas de Pruebas:
- Software de automatización de pruebas como Selenium,
QTP, o herramientas específicas para Odoo si están
disponibles.
- Herramientas para la gestión de pruebas, como TestRail o
JIRA, para organizar y seguir el progreso de las pruebas.
Accesos a Sistemas en Entorno de Pruebas:
- Acceso configurado para los entornos de prueba
separados de la producción, con credenciales seguras para
los testers.
Entrenamiento
Planificación y organización
Matriz de responsabilidades
Preparación de Pruebas:
● Definición de Alcance: Determinar las áreas del sistema que serán
objeto de pruebas, incluyendo nuevas funcionalidades y pruebas
de regresión.
● Planificación de Recursos: Asignar los recursos necesarios, tanto
humanos como técnicos.
● Desarrollo de Casos de Prueba: Crear detallados casos de prueba
basados en los requisitos funcionales y no funcionales del
sistema.
● Configuración del Entorno de Pruebas: Establecer y configurar el
entorno de pruebas para simular condiciones reales de operación
con datos de prueba adecuados.
Ejecución de Pruebas:
● Realización de Pruebas Manuales y Automatizadas: Ejecutar los
casos de prueba manualmente y mediante scripts automatizados
para maximizar la cobertura y eficiencia.
● Monitorización y Registro: Supervisar el proceso de pruebas,
registrar los resultados de las pruebas y documentar los
problemas encontrados.
Premisas
Metodología de Pruebas:
● Se seguirá una metodología ágil para las pruebas de software,
permitiendo iteraciones rápidas y flexibilidad en la adaptación a
cambios.
Disponibilidad de Recursos:
● Se asume que el equipo de pruebas tendrá acceso a los recursos
necesarios, incluyendo hardware, software y personal, según lo
descrito en el plan de pruebas.
Uso de Herramientas de Pruebas:
● Se utilizarán las herramientas especificadas en el plan de pruebas,
incluyendo Odoo Robot Framework, Selenium WebDriver, TestRail,
JIRA, entre otras, para facilitar la ejecución y gestión de las
pruebas.
Colaboración con el Equipo de Desarrollo:
Dependencias y Riesgos
Dependencias con Desarrollos:
- Probabilidad: Alta
- Impacto: Alto
- Descripción: Retrasos en el desarrollo de funcionalidades
pueden afectar el inicio oportuno de las pruebas
correspondientes.
- Plan de Mitigación/Contingencia: Establecer una
comunicación constante entre el equipo de desarrollo y
pruebas para identificar y abordar proactivamente cualquier
retraso en el desarrollo. Priorizar las pruebas en función de
la disponibilidad de funcionalidades desarrolladas.
Dependencias con Otros Proyectos:
- Probabilidad: Media
- Impacto: Medio
- Descripción: Interferencias o recursos compartidos entre
diferentes proyectos pueden afectar la disponibilidad de
recursos para las pruebas de software.
- Plan de Mitigación/Contingencia: Coordinar los recursos de
manera efectiva entre los diferentes proyectos para
Referencias
● Equipo de Desarrollo (2023).Plan proyecto S.G.N.S.
Enunciado de Proyecto de Ingeniería de Software.pdf
● Equipo de Desarrollo (2023).Especificaciones de requisitos del S.G.N.S basado en
IEEE-830. formato_ieee830_Especificación de requisitos de software (1).pdf
● Equipo de Desarrollo (2023).Descripcion Arquitectura del Software S.G.N.S.
Descripcion_Arq_2.pdf .
● Equipo de Desarrollo (2023).Formato Plan Administración del Proyecto S.G.N.S
Plan_administracion_proyectos.pdf .