Documento Tecnico - Desarrollo Ii

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 26

UNIVERSIDAD TECNOLOGICA DEL PERU

PROYECTO

LA MALA GESTION DE TIEMPO DE RETRASO EN VENTAS, INVENTARIADO,


PROCESO DE BOLETERIA Y REPORTE DE VENTAS.

Tema:
Documento Técnico

DESARROLLO DE SOFTWARE 2

DOCENTE:

Fernández Ecmías Eduardo

INTEGRANTES:

Santa Cruz Villar Alvaro Gonzalo


Campos Torres Brandon
Medina Luque Luis Enrique
Rojas Pérez Luis Ángel

Lima – Perú

2024

0
INDICE

1. Introducción 2
1.1. Componentes técnicos 2
1.2. Glosario 4
2. Objetivos y restricciones de la arquitectura 5
2.1. Restricciones de la arquitectura 5
2.2. Alcance de Proyecto 6
2.3. Exclusiones del Proyecto 6
3. Dimensiones y Volumetría 7
3.1. Usuarios concurrentes 7
3.2. Tamaño de la base de datos 7
3.3. Tasa de transacciones 7
3.4. Ancho de banda 7
3.5. Resiliencia y recuperación ante desastres 8
4. Vistas de caso de uso 8
4.1. Actores de sistema 8
4.2. Opciones de sistema 8
4.3. Casos de uso 9
4.4. Diagrama general de casos de uso 10
5. Vista Lógica 11
5.1. Diagrama de secuencia 11
6. Vista de Procesos 12
6.1. Diagrama de procesos 12
7. Vista de Base de datos 15
7.1. Tablas 15
7.2. Modelo 15
7.3. Procesos Almacenados 17
8. Vista Desarrollo 18
9. Configuración 19
10. Integración Externa 22

1
DOCUMENTO TECNICO
1. INTRODUCCIÓN
Este documento técnico describe los componentes esenciales y las
configuraciones necesarias para el desarrollo y la implementación de una
aplicación para la gestión de ventas y productos. La aplicación está
desarrollada en el lenguaje de programación Java y utiliza Firebase como base
de datos y almacenamiento. El objetivo de este documento es proporcionar una
guía clara y detallada sobre los aspectos técnicos del sistema, asegurando que
todos los involucrados en el proyecto tengan una comprensión común de los
componentes y sus interacciones.

1.1 COMPONENTES TÉCNICOS


Los componentes técnicos de la aplicación de gestión de ventas y productos
incluyen los siguientes:

a) Lenguaje de Programación: Java


Java es el lenguaje principal utilizado para el desarrollo de la aplicación.
Se eligió por su robustez, escalabilidad y amplia comunidad de soporte.

b) Base de Datos: Firebase


Firebase proporciona una base de datos en tiempo real que permite
almacenar y sincronizar datos entre los clientes en tiempo real. También
ofrece funciones como autenticación, análisis y notificaciones push.

c) Frameworks y Bibliotecas:
Spring Boot: Un framework de Java que facilita la creación de
aplicaciones independientes y de producción que se pueden ejecutar
con mínima configuración.
Firebase SDK: Biblioteca que permite la integración de las diversas
funcionalidades de Firebase en la aplicación Java.

2
d) Entorno de Desarrollo Integrado (IDE):
IntelliJ IDEA: Un IDE popular para el desarrollo en Java, que ofrece
herramientas avanzadas para la codificación, depuración y prueba de
aplicaciones.

Android Studio: IDE oficial para el desarrollo de aplicaciones Android,


basado en IntelliJ IDEA y optimizado para la creación de aplicaciones
móviles en Java y Kotlin.

e) Herramientas de Desarrollo:
Git: Sistema de control de versiones utilizado para el seguimiento de
cambios en el código y la colaboración entre desarrolladores.
Maven: Herramienta de gestión de proyectos y comprensión, utilizada
principalmente para la gestión de dependencias en Java.

f) Seguridad:
Autenticación Firebase: Sistema de autenticación de usuarios que
soporta varios métodos de inicio de sesión, incluyendo correo
electrónico/contraseña, Google, Facebook, y otros proveedores de
identidad.

JSON Web Tokens (JWT): Un estándar abierto (RFC 7519) que define
una forma compacta y autónoma de transmitir información de manera
segura entre las partes como un objeto JSON. Se utiliza para la
autenticación y autorización segura.

g) Testing y QA:
JUnit: Marco de pruebas unitarias para Java.
Mockito: Marco de pruebas para la creación de mocks en pruebas
unitarias.

3
1.2 GLOSARIO
Para facilitar la comprensión del documento, se presentan las definiciones de
algunos términos y conceptos clave:

Componentes Técnicos: Elementos esenciales que componen el sistema,


incluyendo hardware, software, lenguajes de programación, frameworks y
bibliotecas, bases de datos, servidores, protocolos de comunicación,
herramientas de desarrollo, medidas de seguridad, y estrategias de testing y
aseguramiento de la calidad (QA).

¿QUÉ COMPONENTES?
Los componentes técnicos detallados en este documento son los elementos
clave necesarios para desarrollar y operar la aplicación de gestión de ventas y
productos. Estos incluyen:
 Lenguaje de Programación (Java)
 Base de Datos (Firebase)
 Frameworks y Bibliotecas (Spring Boot, Firebase SDK)
 Entorno de Desarrollo Integrado (IDE) (IntelliJ IDEA, Android Studio)
 Herramientas de Desarrollo (Git, Maven)
 Medidas de Seguridad (Autenticación Firebase, JWT)
 Herramientas de Testing y QA (JUnit, Mockito)

¿SOBRE QUÉ?
Este documento se centra en los componentes técnicos relacionados con el
desarrollo y la implementación de una aplicación de gestión de ventas y
productos de los MiniMarket. Describe cómo se utilizan estos componentes
para construir una solución robusta y eficiente, abarcando desde la selección
del lenguaje de programación hasta las herramientas de seguridad y testing.

¿CUÁLES?
Los componentes técnicos específicos cubiertos en este documento son:
 Java: Lenguaje de programación principal.
 Firebase: Base de datos en tiempo real y servicios de autenticación.
 Spring Boot: Framework para la creación de aplicaciones Java.

4
 Firebase SDK: Biblioteca para la integración de Firebase.
 IntelliJ IDEA y Android Studio: Entornos de desarrollo.
 Git: Sistema de control de versiones.
 Maven: Herramienta de gestión de proyectos.
 Autenticación Firebase y JSON Web Tokens (JWT): Sistemas de
autenticación y autorización de usuarios.
 JUnit y Mockito: Herramientas de testing.

Estos componentes son esenciales para el desarrollo eficiente y seguro de la


aplicación de gestión de ventas y productos, garantizando su funcionalidad,
rendimiento y escalabilidad

2. Objetivos y restricciones de la arquitectura


2.1 Restricciones de Arquitectura
La arquitectura de la aplicación de gestión de ventas y productos está diseñada
siguiendo el patrón Modelo-Vista-Controlador (MVC), lo cual impone las
siguientes restricciones:

1. Separación de responsabilidades: El código debe estar claramente


dividido entre las capas de modelo, vista y controlador, lo que facilita el
mantenimiento y escalabilidad del sistema.
2. Uso de Firebase: La base de datos y almacenamiento deben utilizar
Firebase, aprovechando sus capacidades de sincronización en tiempo
real y autenticación.
3. Seguridad: La aplicación debe implementar mecanismos de seguridad
robustos, incluyendo la autenticación con Firebase y la autorización con
JWT.
4. Compatibilidad: La aplicación debe ser compatible con las versiones
más recientes de Java, Spring Boot y Firebase SDK.
5. Despliegue en Android: La aplicación debe ser desplegable en
dispositivos Android utilizando Android Studio.

5
2.2 Alcance del Proyecto
El proyecto abarca los siguientes objetivos y funcionalidades:
1. Gestión de Productos: Crear, leer, actualizar y eliminar productos
desde la aplicación.
2. Gestión de Ventas: Registrar y consultar ventas realizadas.
3. Autenticación de Usuarios: Implementar autenticación de usuarios
utilizando Firebase Authentication.
4. Autorización: Implementar roles y permisos utilizando JWT para
controlar el acceso a diferentes partes de la aplicación.
5. Interfaz de Usuario: Desarrollar una interfaz de usuario intuitiva y
responsiva para la gestión de productos y ventas, utilizando Android
Studio.
6. Notificaciones: Enviar notificaciones push a los usuarios utilizando
Firebase Cloud Messaging (FCM).

2.3 Exclusiones del Proyecto


El proyecto no incluirá las siguientes funcionalidades:
1. Integraciones con otros sistemas de gestión de ventas: No se
integrará con sistemas de terceros.
2. Soporte para otras plataformas móviles: La aplicación no será
desarrollada para iOS u otras plataformas móviles, solo Android.
3. Funcionalidades avanzadas de análisis de datos: El análisis
avanzado de datos de ventas y productos no se incluirá en esta fase del
proyecto.
Estas restricciones y objetivos aseguran que la arquitectura del sistema sea
manejable y alineada con las necesidades del proyecto, garantizando una
implementación exitosa y eficiente de la aplicación de gestión de ventas y
productos.

6
3. Dimensiones y Volumetría
3.1 Usuarios Concurrentes
Descripción:
Cantidad máxima de usuarios que el sistema debe soportar simultáneamente.

Detalles:
● Número Inicial de Minimarkets: 2000.
● Cajeros por Minimarket: 2 cajeros concurrentes.
● Cajeros Concurrentes Totales Máximos: 4000.

3.2 Tamaño de la Base de Datos


Descripción:
Estimación del volumen de datos manejado por el sistema.

Detalles:
● Número Promedio de Productos por Minimarket: 200.
● Stock Promedio por Producto: Hasta 10,000 unidades.
● Información Almacenada: Datos del producto (Nombre, Marca,
Modelo, Stock, Precio Compra, Precio Venta, Fecha de expiración)
Datos de los Usuario y Datos de las ventas.
● Tamaño Inicial Total: Aproximadamente 2 GB.
● Crecimiento Anual Estimado: 20% (400 MB adicionales por año).

3.3 Tasa de Transacciones


Descripción:
Cantidad de transacciones procesadas por hora.
Detalles:
● Transacciones por Minimarket por Hora: 100.
● Transacciones Totales por Hora: 200,000.

3.4 Ancho de Banda


Descripción:
Requisitos de ancho de banda para la comunicación del sistema.

7
Detalles:
● Comunicación con APIs (RENIEC y SUNAT): Uso de APIs para
obtener datos de clientes.
● Ancho de Banda Total: Aproximadamente 2 Gbps para 2000
minimarkets.

3.5 Resiliencia y Recuperación ante Desastres


Descripción:
Requisitos de resiliencia y planes de recuperación ante desastres.

Detalles:
● Disponibilidad Requerida: 24/7.
● Tiempo Máximo de Inactividad (RTO): 1 hora.
● Punto de Recuperación Objetivo (RPO): 15 minutos.

4. Vistas de Casos de Uso


4.1 Actores de Sistema
Actores en los procesos:
● Cajero: Realiza ventas, gestiona inventario, solicita boletas o facturas
electrónicas
● Administrador: Configura usuarios y parámetros del sistema.
● Sistema: Procesar los datos y transacciones.

4.2 Opciones del Sistema (opcional)


Descripción:
Funcionalidades y configuraciones adicionales que ofrece el sistema de
inventariado para minimarkets.

Opciones:
● Gestión de usuarios y roles.
● Configuración de productos y categorías.
● Generación de reportes de ventas e inventario.

8
4.3 Casos de Uso o Epicas
Descripción:
Identificación de los principales casos de uso del sistema, agrupados en epics
o categorías para facilitar la gestión y desarrollo.

Casos de Uso:
● Iniciar Sesión
● Registrar Cuenta
● Restablecer Contraseña
● Agregar Stock
● Eliminar Stock
● Aplicar Descuentos
● Ir a Carrito de Compras
● Registrar Venta
● Emisión de Boleta/Factura

9
4.4 Diagrama General de Caso de Uso

https://lucid.app/lucidchart/f5969520-d63b-4e9d-8a6e-03b5d9517088/edit?
view_items=.Q4MeaXKLHhP&invitationId=inv_7ab71e6e-6d4b-4453-b389-
39bf65bd3aa8 (diagrama)

10
5. Vista Lógica
5.1 Diagrama de Secuencia

11
6. Vista Procesos

6.1 Diagramas de procesos

12
13
14
7. Vista de Base de Datos

7.1. Tablas

7.2. Modelo ()
Conceptual:

15
Lógico:

Físico:

16
7.3. Procedimiento de Almacenamientos

Procedure para ver los productos vencidos en el MiniMarket, la consulta nos mostrara
los productos ordenados de por la fecha más antigua.

Procedure para ver las ventas realizadas en el MiniMarket en un mes y año especifico.

17
8. VISTA DESARROLLO (MAPA DE ARQUITECTURA)

18
9. CONFIGURACIÓN

• Control de log y Rutas del Sistema

Para este proyecto se utilizara el Storage de Firebase como almacenamiento.

19
20
• Control de versiones
Para tener un control de las versiones y una mejor organización sobre las funcionalidades
desarrolladas, utilizaremos GitHub, lo cual permitirá a los desarrolladores enviar sus
actualizaciones desde su ambiente de trabajo y de manera remota.

21
10. Integración “todo lo que sea de integración externa”

API DE SUNAT. Para la consulta de un RUC.

22
23
API RENIEC

24
25

También podría gustarte