PG-3819 Iso
PG-3819 Iso
PROYECTO DE GRADO
“Sistema de gestión de documentación de proyectos
Caso: Innovative Apps”
Para optar al grado de licenciatura en Informática
Mención: Ingeniería de Sistemas Informáticos
La Paz – Bolivia
2021
UNIVERSIDAD MAYOR DE SAN ANDRÉS
FACULTAD DE CIENCIAS PURAS Y NATURALES
CARRERA DE INFORMÁTICA
LICENCIA DE USO
El usuario no puede publicar, distribuir o realizar emisión o exhibición alguna de este material,
sin la autorización correspondiente.
Al doctor Javier Hugo Gustavo Reyes Pacheco por el tiempo, guía y conocimiento que me
proporcionó, ya que fueron fundamentales en la elaboración de este proyecto.
Al licenciado Jhonny Roberto Felipez Andrade por el tiempo y consejos que me proporcionó el
transcurso de la elaboración del presente proyecto.
A los docentes de la carrera de Informática por los conocimientos transmitidos durante toda la
etapa de mi formación universitaria.
RESUMEN
The quantity of information that companies generate grow up of exponentially and the
necessity to organize information is an important condition for success. Thus, the paper
copies are becoming obsolete and informatics systems are implemented to organize
the information and speed up the work flow.
It was made a previous analysis and with it, the desing of each module was developed;
as a methodology, we worked with extreme programming (XP) and Unified Modeling
Language (UML) was used for the analysis and desing. I also worked with SOLID on
the code.
The system offers the possibility to control information and monitoring projects’
documentation in the Company and reports will be generated to help in decision making
according to the user’s requeriments.
For evaluation of quality, it was used ISO 9126 standard and for cost estimate,
COCOMO II model was used.
i
2.7.1 Java Spring Boot ................................................................................... 19
2.7.2 React ..................................................................................................... 21
2.7.3 MySql ..................................................................................................... 21
2.8 Calidad de software...................................................................................... 22
2.8.1 ISO 9126................................................................................................ 22
2.8.2 Métrica punto de función........................................................................ 23
2.8.3 Escala de valoración .............................................................................. 26
2.8.4 Incidencias o no conformidades ............................................................ 26
2.9 Principios S.O.L.I.D. ..................................................................................... 27
2.10 Arquitectura en capas ............................................................................... 28
2.11 Seguridad.................................................................................................. 29
2.12 Cocomo II .................................................................................................. 30
2.12.1 USC-COCOMO II.2000.4 ................................................................... 30
CAPÍTULO III MARCO APLICATIVO ....................................................................... 32
3.1 Análisis del sistema actual ........................................................................... 32
3.2 Fase de exploración ..................................................................................... 34
3.2.1. Características de los usuarios .............................................................. 34
3.2.2. Casos de uso de la situación actual ...................................................... 35
3.2.3. Requerimientos...................................................................................... 36
3.2.4. Prototipo arquitectura del sistema ......................................................... 37
3.3 Fase de planificación.................................................................................... 37
3.3.1. Casos de uso ......................................................................................... 37
3.3.2. Historias de usuario ............................................................................... 38
3.3.3. Plan de entregas.................................................................................... 48
3.3.4. Estructura de proyecto ........................................................................... 49
3.4 Fase de iteraciones ...................................................................................... 50
3.4.1. Iteración 1 .............................................................................................. 50
3.4.2. Iteración 2 .............................................................................................. 65
3.4.3. Iteración 3 .............................................................................................. 75
3.4.4. Iteración 4 .............................................................................................. 83
3.5 Fase de Pruebas .......................................................................................... 92
CAPÍTULO IV CALIDAD, SEGURIDAD Y COSTO DE SOFTWARE ...................... 93
ii
4.1 Calidad ......................................................................................................... 93
4.1.1 Funcionalidad ........................................................................................ 93
4.1.2 Confiabilidad .......................................................................................... 96
4.1.3 Usabilidad .............................................................................................. 97
4.1.4 Eficiencia ............................................................................................... 98
4.1.5 Mantenimiento ..................................................................................... 100
4.1.6 Portabilidad .......................................................................................... 101
4.2 Seguridad ................................................................................................... 101
4.2.1 Seguridad en la base de datos ............................................................ 102
4.2.2 Autentificación ..................................................................................... 102
4.2.3 Encriptación ......................................................................................... 102
4.2.4 Seguimiento de acciones de usuario ................................................... 102
4.3 Costos ........................................................................................................ 102
4.3.1 Calculo del costo del sistema desarrollado .......................................... 103
CAPÍTULO V CONCLUCIONES Y RECOMENDACIONES ................................... 106
5.1 Conclusiones .............................................................................................. 106
5.2 Recomendaciones...................................................................................... 107
iii
CAPÍTULO I
MARCO INTRODUCTORIO
Este primer capítulo se enfocará en dar un panorama general del proyecto con la
introducción, el problema que pretendemos resolver, los objetivos que se cumplirán en
el desarrollo del proyecto, los motivos y los métodos que serán utilizados.
1.1 Introducción
1.2 Antecedentes
Autores como Patricia Russo define que “Para implementar un sistema de gestión
documental en una organización tenemos que mirar la documentación en todos sus
estados, formatos y complejidad (…) El enfoque del SGD tiene que basarse en el
1
modelo de negocio de la organización y la incorporación de la documentación al
nuevo sistema tiene que plantearse desde su origen” (Russo. 2009).
2
1.3 Problemática
3
Documentos extraviados, desactualizados o con ediciones digitales duplicadas,
lo que genera perdida de información y demora en encontrar los documentos.
La unidad de seguimiento de proyectos no puede evaluar el avance del
proyecto.
1.4 Objetivo
Para los administrativos llevar una vista general del progreso de los proyectos, tener
los documentos importantes del proyecto digitalizados y tener respaldado los
requerimientos de soporte de los proyectos.
4
1.5 Justificación
1.6 Metodología
5
De acuerdo con Roger Pressman, las etapas metodológicas a llevar a cabo para el
desarrollo de Sistemas de Información, consta de 5 fases y se establecen de la
siguiente manera:
Toma de datos, tiene como objetivos buscar, investigar y ayudar a los usuarios
a documentar sus necesidades deberá hacerse siempre usando el lenguaje
natural.
6
software de calidad pueda adaptarse con fines de acoplarse a los cambios de
su entorno externo.
1.7 Aporte
7
CAPÍTULO II
MARCO TEÓRICO
2.1.1 Proyectos
Los proyectos en la empresa Innovative Apps son para la creación, actualización
y consultoría de sistemas informáticos, para empresas externas o creaciones
propias.
En los proyectos trabajan los gerentes de la empresa, los gerentes de ventas, los
desarrolladores del área de backend, frontend y mobile, diseñadores gráficos y
testers. La distribución del personal es variable y pueden trabajar en múltiples
proyectos en paralelo, además en algunos proyectos puede participar un consultor
externo.
8
Se documentan las pruebas que se realizaron en los sprints o itereaciones.
Se van realizando los manuales técnicos.
Al finalizar se realizan los manuales de usuario, en algunos casos se
realizan presentaciones y videos del sistema.
9
obviando todo el componente organizativo y funcional del sistema. Este es el
que permite sentar las bases para que todos esos documentos, sean un
conjunto coherente que de respuesta a las necesidades de la empresa a corto,
mediano y largo plazo.
Para las bases metodológicas usaremos algunas normas ISO sobre gestión de
documentos. Las normas ISO son pautas estándares internacionales para
optimizar los procesos comerciales, son documentos técnicos de aplicación
voluntaria, y, por lo tanto, no son vinculantes como una ley.
10
ISO 23081 - Gestión de documentos. Metadatos para la gestión de
documentos. - Se centra en el marco necesario para definir elementos
de metadatos para la gestión de documentos y ofrece unas directrices
genéricas sobre ellos, independientemente de que se trate de
documentos físicos, analógicos o digitales. Presenta una aproximación
lógica a los metadatos para la gestión de documentos en las
organizaciones, modelos conceptuales de metadatos y una visión
general del conjunto de los distintos tipos de elementos de metadatos
válidos para cualquier entorno de gestión de documentos.
Una de las primeras definiciones fue hecha por Fritz Bauer en 1969: “Ingeniería de
Software es el establecimiento y uso de principios robustos de ingeniería, orientados
a obtener software que sea fiable y funcione de manera eficiente sobre máquinas
reales”.
La ingeniería de software busca encontrar mejores medios para construir software. Los
medios tradicionales de construcción son, por lo general, costosos, y generan
productos ineficientes y equivocados. Los nuevos medios de construcción deben ser
más confiables, predecibles y capaces de entregar productos económicos y
funcionales.
11
odós (“camino”) y logos (“estudio”); considerando lo anterior, la definición de
metodología son los métodos para luego determinar cuál es el más adecuado.
En los años finales del siglo XX se publicaron centeneres de artículos y libros que
proponían distintas metodologías, técnicas y notaciones para el desarrollo orientado al
objeto. En cuanto al proceso de desarrollo de software, se distinguen tres grandes
corrientes.
Metodologías dirigidas por los datos (data- driven), que se basan en la parte estructural
de los objetos y son una extensión del modelo conceptual en el modelo
Entidad/Relación.
12
Metodologías ágiles, las empresas operan en un entorno global que cambia
rápidamente; en ese sentido, deben responder a nuevas oportunidades y mercados,
al cambio de las condiciones económicas así, como al surgimiento de productos y
servicios nuevos y competitivos. Para ello es necesario emplear computadoras y
dispositivos computacionales, por lo que el software es partícipe de casi todas las
operaciones empresariales, de modo que debe desarrollarse de manera ágil para
responder con oportunidad y calidad a todo lo necesario.
2.5.1 Roles XP
13
los resultados para mejorar futuras estimaciones. También realiza el
seguimiento del progreso de cada iteración y evalúa si los objetivos son
alcanzables con las restricciones de tiempo y recursos presentes.
Determina cuándo es necesario realizar algún cambio para lograr los
objetivos de cada iteración.
Entrenador (Coach), es responsable del proceso global. Es necesario que
conozca a fondo el proceso XP para proveer guías a los miembros del
equipo de forma que se apliquen las prácticas XP y se siga el proceso
correctamente.
Consultor, es un miembro externo del equipo con un conocimiento
específico en algún tema necesario para el proyecto. Guía al equipo para
resolver un problema específico.
Gestor (Big boss), es el vínculo entre clientes y programadores, ayuda a
que el equipo trabaje efectivamente creando las condiciones adecuadas.
Su labor esencial es de coordinación.
2.5.2 Fases
El ciclo de vida ideal de XP consiste de cinco fases:
UML permite una modelación de los componentes estáticos de una aplicación software
(diagramas de casos de uso, diagramas de clases), así como del comportamiento
dinámico de sus principales elementos durante su funcionamiento (entre ellos
diagramas de estados y diagramas de secuencias). Los diagramas de estados
permiten la modelación de los principales estados y los eventos que ocasionan sus
cambios para una instancia de una clase, o para un sistema como un todo, mientras
que los diagramas de secuencias permiten modelar instancias de interacción entre
15
actores u objetos de clases de un sistema a través de mensajes. Mediante estos
últimos diagramas es posible conocer lo que ocurre internamente entre los actores e
instancias de clases que participan en un diagrama de estados de un sistema de
software. Según Booch et al. (2005), los diagramas de secuencias UML constituyen
elementos relevantes en el desarrollo de una aplicación software.
En la figura 2.1 tenemos un ejemplo de como son los símbolos de los diagramas
de casos de uso, el rectángulo representa los límites del sistema que contiene los
casos de uso. Los actores se ubican fuera de los límites del sistema, los casos de
uso se representan con óvalos. La etiqueta en el óvalo indica la función del sistema
y siempre contiene los símbolos del actor y del caso de uso, junto con líneas
conectoras. Los actores son similares a las entidades externas; existen fuera del
sistema. El término actor se refiere a un rol específico de un usuario del sistema
16
2.6.2 Diagramas de actividad
Las bifurcaciones y uniones tienen la misma notación: tanto una barra horizontal
como vertical (la orientación depende de si el flujo de control va de derecha a
izquierda o hacia abajo y arriba. Estos indican el comienzo y final de hilos actuales
de control. En la figura 2.2 especificamos los símbolos en un diagrama de
actividad.
17
2.6.3 Diagramas de secuencia
Los elementos principales de un diagrama de clase son cajas, que son los íconos
utilizados para representar clases e interfaces. Cada caja se divide en partes
horizontales. La parte superior contiene el nombre de la clase. La sección media
menciona sus atributos. Un atributo es algo que un objeto de dicha clase conoce
o puede proporcionar todo el tiempo. Por lo general, los atributos se implementan
como campos de la clase, pero no necesitan serlo. Podrían ser valores que la clase
puede calcular a partir de sus variables o valores instancia y que puede obtener
de otros objetos de los cuales está compuesto. Pressman (2010)
18
El Modelo de Navegación, establece la semántica navegacional ligada a las clases
de los objetos del modelo. En éste modelo es donde se deja explicita la navegación
permitida en la aplicación por cada agente del sistema.
Todo esto trae consigo una gran ventaja, ya que permite que los equipos de
desarrollo puedan enfocarse directamente en la lógica empresarial que requiere la
19
aplicación, haciendo el proceso más corto, rápido y eficaz, ahorrando líneas de
código evitando tareas repetitivas.
20
Al igual que con Spring Framework, cualquier configuración puede ser modificada
de ser necesario: desde el puerto en el que la aplicación escucha peticiones, hasta
el banner que sale por consola al arrancar la aplicación.
2.7.2 React
Las vistas declarativas hacen que el código sea más predecible, por lo tanto, fácil
de depurar.
React ha sido diseñado desde su inicio para ser adoptado gradualmente, así
puedes usar tan poco o mucho de React como se requiera. Si quieres una prueba
de React, agregar interactividad a una simple página HTML o empezar una
aplicación compleja con React.
2.7.3 MySql
MySQL fue inicialmente desarrollado por MySQL AB. MySQL AB fue adquirida por
Sun Microsystems en 2008, y ésta a su vez fue comprada por Oracle Corporation
en 2010, la cual ya era dueña desde 2005 de Innobase Oy, empresa finlandesa
desarrolladora del motor InnoDB para MySQL.
21
Al contrario de proyectos como Apache, donde el software es desarrollado por una
comunidad pública y los derechos de autor del código están en poder del autor
individual, MySQL es patrocinado por una empresa privada, que posee el copyright
de la mayor parte del código. Esto es lo que posibilita el esquema de doble
licenciamiento anteriormente mencionado. La base de datos se distribuye en
varias versiones, una Community, distribuida bajo la Licencia pública general de
GNU, versión 2, y varias versiones Enterprise, para aquellas empresas que
quieran incorporarlo en productos privativos. Las versiones Enterprise incluyen
productos o servicios adicionales tales como herramientas de monitorización y
asistencia técnica oficial. En 2009 se creó un fork denominado MariaDB por
algunos desarrolladores descontentos con el modelo de desarrollo y el hecho de
que una misma empresa controle a la vez los productos MySQL y Oracle
Database.
MySQL es usado por muchos sitios web grandes y populares, como Wikipedia,
Google (aunque no para búsquedas), Facebook, Twitter, Flickr y YouTube.
Según Pressman la calidad del diseño se refiere a las características que los
diseñadores especifican para un producto. El tipo de materiales, tolerancias y
especificaciones del desempeño, todo contribuye a la calidad del diseño. Si se utilizan
mejores materiales, tolerancias más estrictas y se especifican mayores niveles de
desempeño, la calidad del diseño de un producto se incrementa si se fabrica de
acuerdo con las especificaciones.
En el desarrollo del software, la calidad del diseño incluye el grado en el que el diseño
cumple las funciones y características especificadas en el modelo de requerimientos.
La calidad de la conformidad se centra en el grado en el que la implementación se
apega al diseño y en el que el sistema resultante cumple sus metas de requerimientos
y desempeño.
22
El estándar ISO 9126 se desarrolló con la intención de identificar los atributos clave
del software de cómputo. Este sistema identifica seis atributos clave de la calidad:
Igual que otros factores de la calidad del software estudiados en las subsecciones
anteriores, los factores ISO 9126 no necesariamente conducen a una medición
directa. Sin embargo, proporcionan una base útil para hacer mediciones indirectas
y una lista de comprobación excelente para evaluar la calidad del sistema.
Pressman (2010).
La métrica de punto de función (PF) puede usarse de manera efectiva como medio
para medir la funcionalidad que entra a un sistema.
23
valoraciones cualitativas de la complejidad del software. Los valores de dominio
de información se definen en la forma siguiente:
Una vez recolectados los datos anteriores la tabla de la Figura 2.3 se completa y
un valor de complejidad se asocia a cada conteo. Una vez que hemos asignado
los valores a cada uno de los componentes, obtendremos un resultado parcial de
la medición si sumamos todos ellos, de forma independiente para transacciones
lógicas y para ficheros lógicos. El valor que obtenemos es aún un valor no
ajustado, es decir, falta determinar el factor de ajuste (VAF) por el que se ha de
multiplicar el valor no ajustado.
24
Figura 2.3 Punto función.
Fuente: Pressman 2010.
Se utiliza la siguiente fórmula para obtener el valor de los valores de ajuste de valor
(FAV):
El FAV puede variar entre 0.65 y entre 1.35, el valor 0.65 del VAF se utiliza como
factor corrector del conteo total de Puntos Función.
Los Fi (i = 1 a 14) son factores de ajuste de valor (FAV) con base en respuestas a
las siguientes preguntas:
25
4. ¿El desempeño es crucial?
5. ¿El sistema correrá en un entorno operativo existente enormemente utilizado?
6. ¿El sistema requiere entrada de datos en línea?
7. ¿La entrada de datos en línea requiere que la transacción de entrada se
construya sobre múltiples pantallas u operaciones?
8. ¿Los ALI se actualizan en línea?
9. ¿Las entradas, salidas, archivos o consultas son complejos?
10. ¿El procesamiento interno es complejo?
11. ¿El código se diseña para ser reutilizable?
12. ¿La conversión y la instalación se incluyen en el diseño?
13. ¿El sistema se diseña para instalaciones múltiples en diferentes
organizaciones?
14. ¿La aplicación se diseña para facilitar el cambio y su uso por parte del usuario?
Cada una de estas preguntas se responde usando una escala que varía de 0 (no
importante o aplicable) a 5 (absolutamente esencial). Los valores constantes en la
ecuación y los factores ponderados que se aplican a los conteos de dominio de
información se determinan de manera empírica.
A través de la ejecución de los test para calcular la eficiencia son generadas las
incidencias o No Conformidades, las cuales se han clasificado en diferentes
categorías, ellos son:
26
Tiempos de Respuesta: Actualmente Google considera que el tiempo de
respuesta del servidor, debe estar por debajo de los 200 milisegundos (0.2
segundos). No obstante, un tiempo de respuesta hasta 500 ms, es
aceptable.
Concurrencia de Usuarios.
Errores HTTP: Los códigos HTTP describen el estado de un URL cuando
un visitante intenta accederlo. Esto incluye mensajes de error que aparecen
cuando un visitante encuentra problemas en un sitio web. Los códigos son
números de tres dígitos. Hay cinco clases de códigos HTTP de error. El
primer dígito determina su categoría.
27
Principio de Sustitución de Liskov: La L de SOLID alude al apellido de quien
lo creó, Barbara Liskov, y dice que “las clases derivadas deben poder sustituirse
por sus clases base”.
Esto significa que los objetos deben poder ser reemplazados por instancias de
sus subtipos sin alterar el correcto funcionamiento del sistema o lo que es lo
mismo: si en un programa utilizamos cierta clase, deberíamos poder usar
cualquiera de sus subclases sin interferir en la funcionalidad del programa.
Principio de Segregación de la Interfaz: En el cuarto principio de SOLID se
sugiere: “Haz interfaces que sean específicas para un tipo de cliente”, es decir,
para una finalidad concreta.
En este sentido, según el Interface Segregation Principle (ISP), es preferible
contar con muchas interfaces que definan pocos métodos que tener una
interface forzada a implementar muchos métodos a los que no dará uso.
Principio de Inversión de Dependencias: En el último principio se sugiere
“Depende de abstracciones, no de clases concretas”.
Los módulos de alto nivel no deberían depender de módulos de bajo nivel.
Ambos deberían depender de abstracciones.
Las abstracciones no deberían depender de los detalles. Los detalles deberían
depender de las abstracciones.
28
Una de las principales características de este patrón es la separación de
preocupaciones (SoC Separation of concerns) entre los componentes. Los
componentes están interconectados, pero no dependen unos de otros.
2.11 Seguridad
29
2.12 Cocomo II
Como todos los modelos de estimación para software, los modelos COCOMO II
requieren información sobre dimensionamiento. Como parte de la jerarquía del
modelo, están disponibles tres diferentes opciones de dimensionamiento: puntos
objeto, puntos de función y líneas de código fuente.
Consta de tres submodelos, cada uno de los cuales ofrece una mayor fidelidad a
medida que avanza uno en el proceso de planificación y diseño del proyecto.
Son necesarios una serie de datos para realizar la estimación, que son los
siguientes:
30
Nombre del proyecto: campo en el que se debe indicar el nombre del
proyecto.
Nombre del módulo: sirve para especificar el nombre de cada módulo que
componga el proyecto.
Horas por persona al mes: el valor de horas por persona mensuales que
utilizará el modelo en los cálculos.
Tamaño del módulo: indica el tamaño de cada módulo en líneas de código.
Se puede calcular de tres maneras, introduciendo su valor en el campo
SLOC, utilizando el modelo de los puntos de función o empleando el modelo
de adaptación y reutilización.
Sueldo mensual: contiene la cantidad monetaria que percibe el
desarrollador del módulo cada mes.
31
CAPÍTULO III
MARCO APLICATIVO
La empresa Innovative Apps no cuenta con un sistema para poder gestionar los
documentos. La documentación de los proyectos está de manera desorganizada en
los servidores y en las computadoras personales de los gerentes.
Existen los documentos que son guías de trabajo, los cuales no están asignados a los
proyectos porque son archivos generales que se usan en todos los proyectos como
base de inicio o como base de actualización a un nuevo empleado en la empresa.
Contratos: Son los acuerdos legales por proyecto. Este tipo de documento
cuenta con un archivo base para que pueda ser replicado en otros proyectos.
Solo los gerentes de proyecto pueden editar y visualizar este documento. Los
tipos de archivos para estos documentos son formato de documento portátil
(.pdf) y Word (.doc, .docx).
Change request: Una solicitud de cambio es documentada por los gerentes de
proyectos, no es editable. Los tipos de archivos para estos documentos son
formato de documento portátil (.pdf) y Word (.doc, .docx).
Propuestas: Las propuestas son los documentos con los que se inicia un
proyecto, los gerentes comerciales y los gerentes de proyectos son los que
32
crean y editan las propuestas. Los tipos de archivos para estos documentos son
formato de documento portátil (.pdf) y Word (.doc, .docx).
Presentaciónes: En cada proyecto antes del contrato se hace la presentación
del proyecto a los clientes de la empresa para que ellos comprendan todos los
beneficios que ofrece la empresa Innovative Apps. Los gerentes comerciales
son los que crean y editan las presentaciones. Los tipos de archivos para estos
documentos son formato de documento portátil (.pdf) y PowerPoint (.ppt, .pptx).
Mockups: Son los diseños de las pantallas, pueden ser diseños para sistemas
web o para aplicaciones móviles. Los tipos de archivos para estos documentos
son formato de documento portátil (.pdf), Adobe XD (.xd) y figma (.fig). Los
encargados de crear y editar estos documentos son los diseñadores gráficos,
luego pasan por la revisión de un gerente y finalmente es enviado a los
desarrolladores para poder ser implementado.
Modelo de Base de Datos: El modelo de base de datos relacional lo crean y
editan los desarrolladores del área de backend. Los tipos de archivos para estos
documentos son PowerDesigner (.bpm, .cdm .pdm).
Manual de Instalación: El manual de instalación es creada por los
desarrolladores luego es revisado y confirmado por el área testing. Los tipos de
archivos para estos documentos son formato de documento portátil (.pdf) y
Word (.doc, .docx).
Manual de usuario: El manual de usuario es creada por los desarrolladores
luego es revisado, complementado y confirmado por el área testing. Los tipos
de archivos para estos documentos son formato de documento portátil (.pdf) y
Word (.doc, .docx).
Manual técnico: El manual de usuario es creada por los desarrolladores luego
es revisado, complementado y confirmado por el área de testing. Los tipos de
archivos para estos documentos son formato de documento portátil (.pdf) y
Word (.doc, .docx).
Guías de trabajo: Las guías de trabajo son creadas por los desarrolladores
para guía de proyectos futuros similares, con la actualización de herramientas
33
este documento es también actualizado. Los tipos de archivos para estos
documentos son formato de documento portátil (.pdf) y Word (.doc, .docx).
Con toda esta información se pudo clasificar a los documentos por tipo como se
presenta en la Tabla 3.1:
Tipo Nombre
Gerencial Contratos
Change request
Ventas Propuestas
Presentaciones
Diseño Mockups
Desarrollo Modelo de base de datos
Manuales Manual de instalación
Manual de usuario
Manual técnico
Guías Guías de trabajo
Fuente: Elaboración propia
34
Desarrollador backend: Se encarga de diseñar la lógica y las soluciones
para que todas las acciones solicitadas en una página web sean ejecutadas
de manera correcta. Trabaja del lado del servidor y procesa la información
recibida a través del frontend.
Desarrollador frontend: Se encarga de la parte visual, la interfaz, se
encuentra en la parte del cliente.
Desarrollador móvil: Desarrolla aplicaciones para celulares y tablets para
sistemas operativos como iPhone o Android.
Tester: Se encarga de probar un software durante su fase de desarrollo con
el fin de detectar fallos e informar sobre ellos.
35
3.2.3. Requerimientos
La toma de requerimientos nos ayudará a definir las historias de usuario. Los
requerimientos funcionales son los siguientes:
36
RNF13 El sistema funciona en cualquier sistema operativo, solo se requiere un
navegador.
En esta fase estableceremos los casos de uso, las historias de usuario con sus
prioridades y estimación de esfuerzo y el plan de entregas (“Release Plan”).
37
Figura 3.3 Diagrama de casos de uso del sistema de gestión de documentación de proyectos.
Fuente: Elaboración propia.
38
contraseña, validándolos roles del usuario y recuperando los recursos a los que
tendrá acceso.
Historia de usuario
Número: 1 Usuario: Administrador - Usuario
Nombre historia: Login
Prioridad en negocio:
Alta Riesgo de desarrollo: Media
Historia de usuario
Número: 2 Usuario: Administrador
Nombre historia: Gestión de usuarios
Prioridad en negocio:
Alta Riesgo de desarrollo: Baja
Puntos estimados: 7 Iteración asignada: 1
Programador responsable: Edith Lopez
Descripción:
El usuario podrá agregar, modificar y eliminar usuarios.
Observaciones:
Fuente: Elaboración propia.
La historia de usuario de gestión de roles solo es accesible para usuarios con rol
de administrador, se divide en tres tareas de creación, edición y eliminación de
roles, esta historia de usuario se detalla en la tabla 3.4.
39
Tabla 3.4 Historia de usuario: Gestión de roles.
Historia de usuario
Número: 3 Usuario: Administrador
Nombre historia: Gestión de roles
Prioridad en negocio:
Media Riesgo de desarrollo: Baja
Puntos estimados: 7 Iteración asignada: 1
Programador responsable: Edith Lopez
Descripción:
El usuario podrá agregar, modificar y eliminar roles.
Observaciones:
Fuente: Elaboración propia.
Historia de usuario
Número: 4 Usuario: Administrador
Nombre historia: Gestión de recursos
Prioridad en negocio:
Media Riesgo de desarrollo: Baja
Puntos estimados: 7 Iteración asignada: 1
Programador responsable: Edith Lopez
Descripción:
El usuario podrá agregar, modificar y eliminar recursos.
Observaciones: Se considera recurso a los menús de funciones.
Fuente: Elaboración propia.
Historia de usuario
Número: 5 Usuario: Administrador
Nombre historia: Gestión de proyectos
Prioridad en negocio:
Alta Riesgo de desarrollo: Media
Puntos estimados: 8 Iteración asignada: 2
40
Programador responsable: Edith Lopez
Descripción:
El usuario podrá agregar, modificar y eliminar proyectos.
Observaciones:
Fuente: Elaboración propia.
Historia de usuario
Número: 6 Usuario: Administrador
Nombre historia: Gestión de documentos
Prioridad en negocio:
Alta Riesgo de desarrollo: Media
Puntos estimados: 10 Iteración asignada: 2
Programador responsable: Edith Lopez
Descripción:
El usuario podrá agregar, modificar y eliminar documentos.
Observaciones:
Fuente: Elaboración propia.
Historia de usuario
Número: 7 Usuario: Administrador
Nombre historia: Gestión de parámetros del sistema
Prioridad en negocio:
Baja Riesgo de desarrollo: Baja
Puntos estimados: 7 Iteración asignada: 4
Programador responsable: Edith Lopez
Descripción:
El usuario podrá agregar, modificar y eliminar parámetros.
Observaciones:
Fuente: Elaboración propia.
41
La historia de usuario de descarga de proyectos solo es accesible para usuarios
con rol de administrador los reportes serán sobre detalle de los tiempos y estados
de los proyectos filtrados por fechas se detalla en la tabla 3.9.
Historia de usuario
Número: 8 Usuario: Administrador
Nombre historia: Descargar reportes
Prioridad en negocio:
Baja Riesgo de desarrollo: Media
Puntos estimados: 7 Iteración asignada: 4
Programador responsable: Edith Lopez
Descripción:
El usuario podrá descargar los reportes de documentos de los proyectos según a
filtros de fechas.
Observaciones:
Fuente: Elaboración propia.
Historia de usuario
Número: 9 Usuario: Usuario
Nombre historia: Consultar proyectos asignados
Prioridad en negocio:
Media Riesgo de desarrollo: Media
Puntos estimados: 5 Iteración asignada: 3
Programador responsable: Edith Lopez
Descripción:
El usuario podrá listar la información de los proyectos a los cuales fue asignado.
Observaciones:
Fuente: Elaboración propia.
42
Tabla 3.11 Historia de usuario: Recibir notificaciones.
Historia de usuario
Número: 10 Usuario: Usuario - Administrador
Nombre historia: Recibir notificaciones
Prioridad en negocio:
Baja Riesgo de desarrollo: Media
Puntos estimados: 5 Iteración asignada: 4
Programador responsable: Edith Lopez
Descripción:
El usuario recibirá notificaciones sobre los proyectos a los que está asignado
Observaciones:
Fuente: Elaboración propia.
Historia de usuario
Número: 11 Usuario: Usuario
Nombre historia: Consultar comentarios de proyecto.
Prioridad en negocio:
Baja Riesgo de desarrollo: Media
Puntos estimados: 8 Iteración asignada: 4
Programador responsable: Edith Lopez
Descripción:
El usuario podrá listar los comentarios del proyecto al cual fue asignado.
Observaciones:
Fuente: Elaboración propia.
Historia de usuario
Número: 12 Usuario: Usuario
Nombre historia: Consulta documentos de proyecto.
43
Prioridad en negocio:
Media Riesgo de desarrollo: Media
Puntos estimados: 5 Iteración asignada: 3
Programador responsable: Edith Lopez
Descripción:
El usuario podrá listar los documentos del proyecto al cual fue asignado.
Observaciones:
Solo podrá listar documentos del proyecto al que está asignado y tiene permisos
Fuente: Elaboración propia.
Historia de usuario
Número: 13 Usuario: Usuario
Nombre historia: Descarga documentos de proyecto.
Prioridad en negocio:
Baja Riesgo de desarrollo: Baja
Puntos estimados: 2 Iteración asignada: 1
Programador responsable: Edith Lopez
Descripción:
El usuario podrá descargar los documentos del proyecto al cual fue asignado.
Observaciones:
Solo podrá listar documentos del proyecto al que está asignado y tiene permisos
Fuente: Elaboración propia.
44
La historia de usuario de consulta de documentos de proyecto es accesible para
todos los usuarios, se habilitará la opción de descarga de los documentos, esta
historia de usuario se detalla en la tabla 3.16.
Historia de usuario
Número: 15 Usuario: Usuario
Nombre historia: Descarga documentos guía.
Prioridad en negocio:
Baja Riesgo de desarrollo: Baja
Puntos estimados: 2 Iteración asignada: 1
Programador responsable: Edith Lopez
Descripción:
El usuario podrá descargar los documentos generales asignados.
Observaciones:
Fuente: Elaboración propia.
Historia de usuario
Número: 16 Usuario: Administrador - Usuario
Nombre historia: Actualiza documentos.
Prioridad en negocio:
Media Riesgo de desarrollo: Baja
Puntos estimados: 6 Iteración asignada: 2
Programador responsable: Edith Lopez
Descripción:
El usuario podrá editar la versión de un documento.
Observaciones:
El usuario debe estar asignado como editor del documento.
Fuente: Elaboración propia.
45
Tabla 3.18 Historia de usuario: Asignar roles.
Historia de usuario
Número: 17 Usuario: Administrador
Nombre historia: Asignar roles.
Prioridad en negocio:
Media Riesgo de desarrollo: Baja
Puntos estimados: 3 Iteración asignada: 1
Programador responsable: Edith Lopez
Descripción:
El usuario podrá asignar roles a los usuarios.
Observaciones:
Fuente: Elaboración propia.
Historia de usuario
Número: 18 Usuario: Administrador
Nombre historia: Asignar recursos.
Prioridad en negocio:
Alta Riesgo de desarrollo: Baja
Puntos estimados: 3 Iteración asignada: 1
Programador responsable: Edith Lopez
Descripción:
El usuario podrá asignar recursos a los roles.
Observaciones:
Fuente: Elaboración propia.
Historia de usuario
Número: 19 Usuario: Administrador
Nombre historia: Asignar usuarios.
Prioridad en negocio:
Media Riesgo de desarrollo: Baja
Puntos estimados: 3 Iteración asignada: 2
46
Programador responsable: Edith Lopez
Descripción:
El usuario podrá asignar usuarios a los proyectos.
Observaciones:
Fuente: Elaboración propia.
Historia de usuario
Número: 20 Usuario: Administrador
Nombre historia: Asignar editores.
Prioridad en negocio:
Media Riesgo de desarrollo: Baja
Puntos estimados: 4 Iteración asignada: 2
Programador responsable: Edith Lopez
Descripción:
El usuario podrá asignar usuarios editores a los documentos.
Observaciones:
Fuente: Elaboración propia.
Historia de usuario
Número: 21 Usuario: Administrador - usuario
Nombre historia: Comentar un proyecto.
Prioridad en negocio:
Baja Riesgo de desarrollo: Baja
Puntos estimados: 4 Iteración asignada: 4
Programador responsable: Edith Lopez
Descripción:
El usuario podrá comentar sobre un proyecto.
Observaciones:
Fuente: Elaboración propia.
47
La historia de usuario de asignar revisores es accesible para todos los usuarios
administrador, un administrador podrá asignar revisores a un documento, esta
historia de usuario se detalla en la tabla 3.23.
Historia de usuario
Número: 22 Usuario: Administrador
Nombre historia: Asignar revisores.
Prioridad en negocio:
Media Riesgo de desarrollo: Baja
Puntos estimados: 4 Iteración asignada: 2
Programador responsable: Edith Lopez
Descripción:
El usuario podrá asignar usuarios revisores a los documentos.
Observaciones:
Fuente: Elaboración propia.
Los puntos de esfuerzo solo son relevantes para el equipo y se usa para estimar
el tamaño de una historia de usuario. Los puntos dan una idea del tamaño y el
esfuerzo que se necesita para que las tareas sean realizadas.
48
Tabla 3.24 Plan de entregas.
Historia
Iteración Prioridad Esfuerzo Fecha inicio Fecha fin
de usuario
Historia 1 1 Alta 5 26/9/2020 28/9/2020
Historia 2 1 Alta 5 28/9/2020 30/9/2020
Historia 3 1 Media 5 30/9/2020 2/10/2020
Historia 4 1 Media 5 2/10/2020 4/10/2020
Historia 17 1 Media 3 4/10/2020 6/10/2020
Historia 18 1 Media 3 6/10/2020 8/10/2020
Historia 5 2 Alta 8 8/10/2020 10/10/2020
Historia 6 2 Alta 8 10/10/2020 12/10/2020
Historia 19 2 Media 3 12/10/2020 14/10/2020
Historia 20 2 Media 5 14/10/2020 16/10/2020
Historia 22 2 Media 5 14/10/2020 16/10/2020
Historia 16 3 Media 8 16/10/2020 18/10/2020
Historia 9 3 Media 5 18/10/2020 20/10/2020
Historia 12 3 Media 5 20/10/2020 22/10/2020
Historia 14 3 Media 5 22/10/2020 24/10/2020
Historia 13 3 Baja 3 24/10/2020 26/10/2020
Historia 15 3 Baja 3 26/10/2020 28/10/2020
Historia 7 4 Baja 7 28/10/2020 30/10/2020
Historia 8 4 Baja 7 30/10/2020 1/11/2020
Historia 10 4 Baja 5 1/11/2020 3/11/2020
Historia 11 4 Baja 5 3/11/2020 5/11/2020
Historia 21 4 Baja 3 5/11/2020 7/11/2020
Fuente: Elaboración propia.
49
Debido a que estos objetos de dominio no tienen dependencias de otras
capas de la aplicación, los cambios en otras capas no los afectan. Pueden
evolucionar libres de dependencias. Este es un excelente ejemplo del
principio de responsabilidad única la "S" en "SOLID" especificado en el título
2.8, que establece que los componentes deben tener una sola razón para
cambiar. Para nuestro objeto de dominio, esta razón es un cambio en los
requisitos del negocio.
Repositories: Se comporta como la puerta de entrada a nuestra base de
datos. Realiza la consulta con los parámetros enviados desde el service. Es
responsable de dos conceptos. Encapsulando los detalles de la capa de
persistencia y proporcionando una interfaz CRUD para una sola entidad
Cada clase de entidad debe tener un repository respectivo
Services: Es donde se realiza toda la lógica de negocio. Solo se debe
acceder a la capa repositories desde la capa services
Controllers: Se crean los end points del CRUD para devolver objetos de
salida en formato JSON y se encarga de enviar los códigos de estado HTTP.
Esta capa solo tiene acceso a la capa de services.
En esta fase nos basaremos en el plan de entregas ya definido. Cada iteración se rige
en la metodología XP, apoyándonos con diagramas UML como son los diagramas de
actividad, diagramas de secuencia, diagramas de clases y diagramas de navegación.
3.4.1. Iteración 1
En esta iteración se han desarrollado las historias de usuario que se planificaron
en la tabla 3.24. Se inició con los diagramas de actividad y secuencia de la historia
de usuario 1 en el cual se desarrollará el login. En la Figura 3.4 definimos el
diagrama de actividad.
50
Figura 3.4 Diagrama de actividad del login.
Fuente: Elaboración propia.
51
Figura 3.6 Diagrama de actividad agregar y editar usuarios.
Fuente: Elaboración propia.
52
Figura 3.8 Diagrama de secuencia de gestión de usuarios.
Fuente: Elaboración propia.
53
Esta estructura de diagrama de clases se repite para los CRUD de cada modelo.
Para evitar los problemas de los módulos fuertemente acoplados debemos invertir
las dependencias, esto se consigue estableciendo un contrato entre los módulos
de alto nivel con los módulos de bajo nivel. En Java un contrato es una interfaz.
Introduciendo una interfaz en el diagrama de la Figura 3.10 tendremos un
diagrama de clases según la Figura 3.11
54
Figura 3.12 Diagrama de actividad agregar y editar roles.
Fuente: Elaboración propia.
55
Figura 3.14 Diagrama de secuencia de gestión de roles.
Fuente: Elaboración propia.
En historia de usuario 4 se desarrollará la gestión de roles. Para esta historia de
usuario definimos tres diagramas de actividad, en la Figura 3.15 se definen los
diagramas de actividad de las tareas de agregar y editar recurso.
56
En la Figura 3.16 se define el diagrama de actividad de la tarea de eliminar recurso.
57
class Tester implements IActionsRoles {
@Override
public void editFile() {
}
@Override
public void checkFile() {
}
@Override
public void publicFile() {
}
}
Hasta aquí la implementación está bien. Pero ahora imaginemos que queremos
añadir al rol de diseñador. Este role no puede validar archivos, pero si tiene la
funcionalidad de editar archivos y publicarlos. Podríamos definir la siguiente clase
para los diseñadores:
Lo más correcto sería segregar más las interfaces, tanto como sea necesario. Y
así a la hora de añadir nuevas funcionalidades, esto nos ahorrará bastante tiempo,
y, además, cumplimos con el primer principio de Responsabilidad Única. En este
caso podríamos hacer lo siguiente:
58
class Manager implements IActionsRoles, IActionsRolesCheckers {
@Override
public void editFile() {
}
@Override
public void checkFile() {
}
@Override
public void publicFile() {
}
}
@Override
public void publicFile() {
}
}
59
En historia de usuario 17 se desarrollará asignar roles a los usuarios. Para esta
historia de usuario definimos el diagrama de actividad en la Figura 3.18.
60
Figura 3.20 Diagrama de actividad asignar recursos a rol.
Fuente: Elaboración propia.
61
Figura 3.22 Diagrama de clases de la iteración 1.
Fuente: Elaboración propia.
62
Para esta iteración se diseñó los primeros componentes para la interfaz de usuario.
En la figura 3.1 observamos la interfaz del login.
63
Ilustración 3.3 Modal para adicionar y editar registros
Fuente: Elaboración propia.
En la figura 3.3 se observa el diseño del componente modal para asignar registros.
64
3.4.2. Iteración 2
En esta iteración se han desarrollado las historias de usuario que se planificaron
en la tabla 3.24 para la segunda iteración.
65
Figura 3.25 Diagrama de actividad eliminar proyecto.
Fuente: Elaboración propia.
66
En historia de usuario 6 se desarrollará la gestión de documentos. Para esta
historia de usuario definimos tres diagramas de actividad, en la Figura 3.27 se
definen los diagramas de actividad de las tareas de agregar y editar documentos.
67
En la Figura 3.29 definimos el diagrama de secuencia de la gestión de
documentos.
68
public class FileProcessor {
Así, cada archivo tiene su propia implementación del método save(), por lo que el
método saveFile() solo llama al método save() de la clase instanciada.
69
Para detectar si estamos violando el principio de sustitución de Liskov la “L” en
“SOLID” la forma más sencilla es observando las clases que extienden de otras
clases. Si estas poseen métodos sobrescritos que devuelven null o lanzan
excepciones sabiendas de que la clase de la que heredan no lo hace, estamos
ante una clara violación del principio.
Si por otra parte estamos heredando de clases abstractas que nos obligan también
a lanzar excepciones o retornar null, también estamos ante un caso de violación
del LSP. En este ejemplo no estamos violando el principio de sustitución de Lisvok.
70
Figura 3.31 Diagrama de secuencia asignar usuarios a proyecto.
Fuente: Elaboración propia.
71
Figura 3.33 Diagrama de actividad asignar editores a documento.
Fuente: Elaboración propia
72
Figura 3.35 Diagrama de secuencia asignar revisores a documento.
Fuente: Elaboración propia
73
También definimos el modelo de navegación de la Figura 3.37
74
3.4.3. Iteración 3
En esta iteración se han desarrollado las historias de usuario que se planificaron
en la tabla 3.24 para la tercera iteración.
75
Figura 3.40 Diagrama de actividad listar documentos asignados.
Fuente: Elaboración propia.
76
En la Figura 3.43 definimos el diagrama de secuencia de consulta de documentos
guía.
77
Figura 3.45 Diagrama de secuencia descargar documento.
Fuente: Elaboración propia.
En historia de usuario 14 se desarrollará la descarga de documentos guía. Para
esta historia de usuario definimos el diagrama de actividad en la Figura 3.46.
78
En historia de usuario 16 se desarrollará la actualización de documentos. Para
esta historia de usuario definimos el diagrama de actividad en la Figura 3.48.
79
En esta iteración se llegó a diseñar el diagrama de clases en la Figura 3.50
80
También definimos el modelo de navegación de la Figura 3.51
81
En esta iteración se diseñó una nueva pantalla para la vista de documentos de un
proyecto. En la ilustración 3.5 se encuentra la vista de un proyecto nuevo.
82
También se adicionó un nuevo componente de modal para descargas, el diseño
del modelo se encuentra en la ilustración 3.7
3.4.4. Iteración 4
En esta iteración se han desarrollado las historias de usuario que se planificaron
en la tabla 3.24 para la cuarta iteración.
83
Figura 3.52 Diagrama de actividad agregar y editar parámetros.
Fuente: Elaboración propia.
84
Fuente: Elaboración propia
85
En la Figura 3.56 definimos el diagrama de secuencia de la descarga de reportes.
86
Figura 3.58 Diagrama de secuencia recepción de notificaciones.
Fuente: Elaboración propia.
87
Figura 3.61 Diagrama de actividades agregar comentario.
Fuente: Elaboración propia.
88
Figura 3.63 Diagrama de clases de la iteración 4.
Fuente: Elaboración propia.
89
Figura 3.64 Modelo de navegación de la iteración 4.
Fuente: Elaboración propia.
90
En esta iteración se rediseñó la pantalla para la vista de documentos de un
proyecto. En la ilustración 3.8 se encuentra la vista de un proyecto nuevo.
91
3.5 Fase de Pruebas
En esta fase se hicieron las pruebas unitarias de React utilizando Jest y de Java
utilizando JUnit. El criterio de aceptación es de un 80% de coverage en los modulos
tanto de front como de backend.
En la Iustración 3.10 podemos observar el code coverage de los unit tests de Java.
92
CAPÍTULO IV
CALIDAD, SEGURIDAD Y COSTO DE SOFTWARE
4.1 Calidad
Para evaluar el presente proyecto se aplican las métricas según el estándar ISO 9126,
evaluando la fiabilidad, funcionalidad, portabilidad, usabilidad y mantenimiento.
4.1.1 Funcionalidad
PARÁMETROS DE MEDICIÓN
Entradas externas 1: Control de ingreso Simple
2: Registro de usuarios Medio
3: Registro de roles Medio
4: Registro de recursos Medio
5: Registro de proyectos Medio
6: Registro de documentos Medio
7: Registro de documentos guía Medio
8: Registro de parámetros Medio
9: Registro de comentarios Medio
Salidas externas 1: Reporte de proyectos Medio
2: Descarga de documentos Simple
3: Descarga de documentos guía Simple
4: Reporte de edición de documentos Medio
Consultas externas 1: Pantalla de logon Medio
2: Lista de usuarios Simple
3: Lista de roles Simple
4: Lista de recursos Simple
5: Lista de proyectos Simple
6: Vista de proyecto Medio
7: Lista de documentos Medio
8: Lista de documentos guía Medio
93
9: Lista de parámetros Simple
10: Lista de comentarios Simple
11: Lista de notificaciones Simple
Archivos lógicos 1: Tabla de usuarios Medio
internos 2: Tabla de roles Medio
3: Tabla de recursos Medio
4: Tabla de proyectos Medio
5: Tabla de documentos Medio
6: Tabla de versiones Medio
7: Tabla de parámetros Medio
8: Tabla de notificaciones Medio
Archivos de interfaz 1: Archivos de documentos en el disco Medio
externos 2: Cliente para notificaciones con Firebase Complejo
3: Impresora Simple
Fuente: Elaboración propia
Los puntos de función se calculan completando la tabla 4.2, utilizando los datos
detallados en la tabla 4.1.
Para calcular puntos de función debemos obtener antes los factores de ajuste de
valor (FAV) con base a las respuestas a las preguntas los cual se detalla en la
tabla 4.3. Las siguientes preguntas se responden usando una escala que varía de
cero que significa no importante o aplicable a cinco que significa absolutamente
esencial.
94
Tabla 4.3 Factores de ajuste de valor.
Para calcular los puntos de función se utilizará la ecuación 4.1. la cual es detallada
en el titulo 2.7.2.
𝑃𝐹𝑀𝐴𝑋 = 259.2
𝑃𝐹
𝑃𝐹𝑅𝐸𝐴𝐿 = ∗ 100
𝑃𝐹𝑀𝐴𝑋
95
218.88
𝑃𝐹𝑅𝐸𝐴𝐿 = ∗ 100 = 84.44
259.2
4.1.2 Confiabilidad
La confiabilidad es la capacidad de un sistema de desempeñar una función
requerida, en condiciones establecidas durante un período de tiempo determinado.
𝐹𝑎𝑙𝑙𝑜𝑠
Probabilidad de fallo =
𝑁ú𝑚𝑒𝑟𝑜 𝑑𝑒 𝑝𝑒𝑡𝑖𝑐𝑖𝑜𝑛𝑒𝑠
∑ 𝑝𝑟𝑜𝑏𝑎𝑏𝑖𝑙𝑖𝑑𝑎𝑑 𝑑𝑒 𝑓𝑎𝑙𝑙𝑜
PFTS =
𝑃𝑒𝑟𝑖𝑜𝑑𝑜𝑠 𝑑𝑒 𝑡𝑖𝑒𝑚𝑝𝑜
96
0.27
PFTS = = 0.068
4
El valor promedio de fallas es igual a 0.068 con los que podemos calcular la
confiabilidad que está dada por la siguiente ecuación:
Con este resultado podemos nos indica que el sistema tiene un 93.2% de
confiabilidad. Según la escala de valoración detallada en el título 2.7.3 la
confiabilidad es muy buena.
4.1.3 Usabilidad
97
¿Considera que el acceso al sistema es seguro? 9 1 90
¿El registro de datos es efectivo? 10 1 100
PROMEDIO 91
Fuente: Elaboración propia.
4.1.4 Eficiencia
𝑇𝑅 + 𝐶 + 𝐸𝐻𝑇𝑇𝑃
EF =
3
Donde:
TR = Porcentaje del tiempo de Respuesta.
C = Porcentaje de concurrencia.
EHTTP = Porcentaje de errores HTTP.
Podemos llevar estos tres datos los datos descritos en la tabla 4.6.
98
Para calcular los anteriores por cientos se utilizarán las siguientes métricas:
16 ∗ 100
C= = 80
20
4.1.5 Mantenimiento
Para las métricas de mantenimiento se usa el índice de madurez del software (IMS)
el cual se representa con la ecuación 4.3.
MT − (𝐹𝑎 + 𝐹𝑐 + 𝐹𝑑 )
𝐼𝑀𝑆 =
MT
Donde:
Mt = número de módulos en la versión actual.
Fa = número de módulos en la versión actual que cambiaron.
Fc = número de módulos en la versión actual que se agregaron.
Fd = número de módulos en la versión anterior que se borraron en la versión actual.
100
4.1.6 Portabilidad
𝐶𝑃
𝐺𝑃 = 1 −
𝐶𝑅𝐷
Donde:
CP: Es el costo de portabilidad.
CDR: Es el costo de re-desarrollo
Si GP > 0: La portabilidad es más rentable que el re-desarrollo.
Si GP = 1: La portabilidad es perfecta.
Si GP < 0: El re-desarrollo es más rentable que la portabilidad.
Considerando el número de archivos para que el sistema se transporte a otro
servidor se requiere solo que deba modificar el archivo propierties para el backend
y el archivo .config para el frontend.
2
𝐺𝑃 = 1 − = 0.06
155
Con este resultado podemos decir que la portabilidad es más rentable que el re-
desarrollo.
4.2 Seguridad
La seguridad es uno de los aspectos más importantes que se debe tomar en cuenta al
momento de implementar un sistema de información. Una vez registrados los datos en
el sistema, almacenamos información de mucha importancia para la toma de
decisiones por las cuales se deben considerar políticas de seguridad.
101
4.2.1 Seguridad en la base de datos
Se usó como base de datos MySQL el cual ya cuenta con sus propias medidas de
seguridad como la autentificación y el manejo de roles y privilegios. Para este
sistema se creó el esquema con el usuario manager el cual tiene todos los
privilegios con el que ya cuentan en su servidor y para los otros usuarios solo esta
con la opción de “read only”.
4.2.2 Autentificación
Se implementó un acceso con token para cada API con una expiración
parametrizable y que contiene los datos para verificar que usuario está utilizando
ese token.
4.2.3 Encriptación
4.3 Costos
102
mismo. Esta técnica se debe utilizar al comparar proyectos y así poder tener una buena
toma de decisiones.
Para calcular el costo del sistema desarrollado tomaremos en cuenta los siguientes
puntos:
103
Figura 4.1 Tabla de entradas de los puntos de función.
Fuente: USC-COCOMO II.2000.4
104
El tiempo de desarrollo es de 11 semanas.
El número ideal de programadores es 3.
El costo del proyecto es de 9499 dólares.
Para concluir podemos decir que el desarrollo será de dos meses y medio y el costo
en bolivianos del sistema es de 65225 bolivianos.
105
CAPÍTULO V
CONCLUCIONES Y RECOMENDACIONES
5.1 Conclusiones
Con base a todo lo expuesto podemos concluir que este sistema facilitará el manejo
de los documentos para mejorar el avance de los proyectos en la empresa Innovative
106
Apps. Además de que se logró demostrar que la aplicación cumple con los objetivos y
la justificación lo cual demuestra que es eficiente y una buena solución para esta
institución.
5.2 Recomendaciones
Los principios SOLID son buenas prácticas que pueden ayudar a escribir un
mejor código, más limpio, más escalable y mantenible.
Las soluciones son heurísticas y con la práctica la implementación se vuelve
más fácil y entendible.
Un código limpio tendrá más probabilidad de tener buena calidad.
Los principios SOLID son una base para algunos patrones de diseño.
107
BIBLIOGRAFÍA
BOOCH, G., Rumbaugh, J., JACONSON, I., Unified Modeling Language User Guide,
Segunda Edición , Addison-Wesley Object Technology Series (2005).