Tesis
Tesis
CARRERA DE INFORMÁTICA
PROYECTO DE GRADO
LA PAZ – BOLIVIA
2021
HOJA DE CALIFICACIONES
CARRERA DE INFORMÁTICA
Proyecto de grado:
Nota Numeral:
Nota Literal:
Ha sido:
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.
i
AGRADECIMIENTO
A Dios, por ser mi fortaleza, por guiar mis pasos, por darme a los mejores padres, por poner
en mi camino a personas maravillosas que me brindaron su amor, cariño y sobre todo por sus
bellas enseñanzas.
A mi mamá y papá, a quienes admiro y amo muchísimo, gracias mamita Maritza Verónica
Zenteno Chuquimia, porque fue por mí, por quien más se sacrificó para sacarme adelante, quien
me enseñó que a pesar de todos los golpes que te de la vida hay que salir adelante, a mi papito
Roberto Alanez Rodríguez, por apoyarme, tenerme paciencia, por sus palabras de aliento,
gracias mami y papi por formarme e inculcarme valores, por darme esa fuerza y ese apoyo
incondicional, no alcanzaría un agradecimiento por todo lo que hicieron por mí, tardé un
poquito más, pero
¡Lo logré!
A mi tutor M.Sc. Grover Alex Rodríguez, por el apoyo, colaboración, seguimiento a este
proyecto, sobre todo agradecer por esas palabras de aliento, por la paciencia y motivación para
seguir adelante.
A todas/os mis amigas/os por ser un apoyo en esta etapa, gracias por sus palabras de aliento,
su comprensión y sobre todo por su bella amistad ¡Gracias Amig@s!
evesita18@gmail.com
ii
RESUMEN
En un mundo comercial tan competitivo, las empresas deben ser rápidas y eficientes con todos
sus recursos, las tecnologías ayudan a resolver los problemas a través de sistemas innovadores. La
Red de Ópticas “VIRTUAL” se encarga del sistema visual funcionalmente inadecuado, como
empresa desea implementar nuevas herramientas tecnológicas que vayan de acuerdo a sus
necesidades y requerimientos.
El presente proyecto tiene como principal objetivo desarrollar un sistema web para el control
de venta e inventario de productos, de manera que la empresa pueda revisar su política comercial
y las estrategias seguidas, además de implementar pasos para mejorar la productividad y
rentabilidad de la fuerza de ventas.
Se empleó Web-Site QEM (Método de Evaluación de Calidad) para evaluar y medir la calidad
del producto que se basa en las normas de la ISO 9126 tomando en cuenta: funcionalidad,
confiabilidad, usabilidad y eficiencia, que proporcionan métricas para medir la calidad del
producto final.
Finalmente, los objetivos planteados han sido alcanzados satisfactoriamente de manera que se
produjo un sistema de calidad, que permite tener un control productivo a través de las ventas en
inventarios de productos que se realiza.
iii
ABSTRACT
In such a competitive commercial world, companies must be fast and efficient with all their
resources, technologies help solve problems through innovative systems. The "VIRTUAL" Optics
Network is in charge of the functionally inadequate visual system, as a company it wishes to
implement new technological tools that are in accordance with its needs and requirements.
The main objective of this project is to develop a web system to control the sale and inventory
of products, so that the company can review its commercial policy and the strategies followed, in
addition to implementing steps to improve the productivity and profitability of the sales force.
sales.
The project was developed using the agile development methodology XP (Extreme
Programming) due to its versatility at the time of development, depending on its phases. The design
phase was complemented with the use of the WebML Modeling methodology (Web Modeling
Language), which has various schemes for the graphical representation of processes.
Web-Site QEM (Quality Evaluation Method) was used to evaluate and measure the quality of
the product that is based on the ISO 9126 standards taking into account: functionality, reliability,
usability and efficiency, which provide metrics to measure quality of the final product.
Finally, the proposed objectives have been satisfactorily achieved so that a quality system was
produced, which allows to have a productive control through the sales in product inventories that
are made.
iv
ÍNDICE
1.1 Introducción.............................................................................................................1
1.2 Problema .................................................................................................................2
1.2.1 Antecedentes ........................................................................................................2
1.2.1.1 Antecedentes Institucionales .........................................................................2
1.2.1.2 Antecedentes de Proyectos Similares ............................................................3
1.2.2 Planteamiento del Problema .................................................................................5
1.2.3 Formulación del problema....................................................................................5
1.3 Objetivos .................................................................................................................6
1.3.1 Objetivo General ..................................................................................................6
1.3.2 Objetivos Específicos ...........................................................................................6
1.4 Justificaciones ..........................................................................................................6
1.4.1 Justificación Social ..............................................................................................6
1.4.2 Justificación Tecnológica .....................................................................................7
1.4.3 Justificación Económica .......................................................................................8
1.5 Alcances y Limites...................................................................................................8
1.5.1 Alcances ..............................................................................................................8
1.5.2 Límites .................................................................................................................9
1.6 Metodología.............................................................................................................9
1.6.1 Metodología de investigación ...............................................................................9
1.6.2 Metodología de desarrollo .................................................................................. 10
3.1 Introducción........................................................................................................... 65
3.2 Fases de la metodología XP ................................................................................... 67
3.2.1 Fase I – Planificación ......................................................................................... 67
3.2.1.1 Clasificación e identificación de roles......................................................... 67
3.2.1.2 Obtención de requerimientos ...................................................................... 68
3.2.1.2.1 Requerimientos funcionales ..................................................................... 68
3.2.1.2.2 Requerimientos no funcionales ................................................................ 70
3.2.1.3 Historias de Usuario y Tarjetas de Tarea..................................................... 71
3.2.1.4 Plan de Iteración......................................................................................... 93
3.2.1.5 Plan de entregas ......................................................................................... 94
3.2.2 Fase II – Diseño ................................................................................................. 94
3.2.2.1 Modelo Estructural ..................................................................................... 95
3.2.2.2 Primera iteración ........................................................................................ 98
3.2.2.3 Segunda iteración ..................................................................................... 104
3.2.2.4 Tercera Iteración ...................................................................................... 112
3.2.2.5 Cuarta Iteración ........................................................................................ 115
3.2.2.6 Diagramas de casos de uso ....................................................................... 119
3.2.3 Fase III – Codificación ..................................................................................... 120
3.2.4 Fase IV – Pruebas ............................................................................................ 127
3.2.4.1 Pruebas de aceptación............................................................................... 127
Figura 3.32 Diagrama de caso de uso del módulo de Ventas y Facturación ......................... 120
Tabla 4.1. Árbol de requerimientos de calidad para el Sistema Integrado Académico .......... 143
1.1 Introducción
los Sistemas de Información como la base principal en las actividades que realizan. En informática,
distribuir información relevante para los procesos fundamentales y las particularidades de las
mismas. Autores como Peralta (2008), de una manera más acertada define sistemas de información
como: conjunto de elementos que interactúan entre sí, con el fin de apoyar las actividades de una
empresa o negocio. Teniendo muy en cuenta el equipo computacional necesario para que el sistema
de información pueda operar y el recurso humano que interactúa con el Sistema de Información,
servicio diferenciado, es por eso que las Tecnologías de Información y Comunicación (TICs) se
de las ventas e inventarios que realizan diariamente en la Red de Ópticas “VIRTUAL”, ya que la
administración y los procesos utilizados para el manejo de la información son manuales, por tal
1
El presente proyecto tiene como fin automatizar los procesos administrativos dentro de la Red
empresa, una herramienta útil para la asistencia a los procesos administrativos, consultas, reportes,
1.2 Problema
Los problemas que presenta esta Red de Ópticas son: la dificultad en el manejo de
1.2.1 Antecedentes
La Red de Ópticas “VIRTUAL” fue creada en la ciudad de La Paz en el año 2017, en un inicio
comercializó monturas y gafas de sol en una galería comercial, ahora cuenta con la asociación de
La Paz y una sucursal en la ciudad de El Alto, formando así una Red de Ópticas, esta cuenta con
Actualmente el control de ventas e inventarios que se realiza en cada una de estas sucursales,
2
empresa son realizados manualmente, lo cual ocasiona la acumulación de la información en gran
cantidad.
cliente puede tener las medidas realizada con su respectivo oftalmólogo o puede realizar
las medidas en una de las sucursales de dicha red, además de escoger el tipo de vidrio
más adecuado para su condición visual, y también debe elegir la montura que más le
agrade, el empleado verifica la existencia de los productos elegidos por el cliente para
tienen que actualizar la información al día; deben cuantificar los productos que existen
en la óptica, los que fueron vendidos y también los que sufrieron desperfectos.
En gestiones pasadas se han realizado distintos sistemas de control de ventas e inventarios los
cuales han sido desarrollados según las necesidades de entidades específicas. Entre los muchos
que existen en la carrea de informática de la Universidad Mayor de San Andrés, se pueden citar:
3
• “Sistema web de control de compras, ventas e inventarios caso: empresa EDDYMAR”
de Deysi Vanessa Rojas Laguna en el año 2014. En este proyecto se diseña y desarrolla
actividades que desarrollan debido a que no contaban con un sistema automatizado para
todas las actividades ya sean para las entradas o salidas de productos de la empresa. El
presente proyecto de grado presenta una alternativa para contribuir a la empresa Bolital
S.R.L. tener mejor un manejo de todos los procesos que desarrolla la empresa como ser
entradas y salidas para tener información actualizada de los inventarios de todos los
productos y poder realizar reportes detallados de todas las actividades que realiza ya que
• Sistema web de seguimiento de ventas y cobranzas para la agencia “Cosmos Travel and
Services S.R.L.” de Luis Alfredo Colmena Vargas en el año 2015. En este proyecto se
4
• – Programación Extrema) y modelado con el Diseño Conceptual de Aplicaciones Web
(WebML).
información que se genera en el registro de ingreso, salida y venta de los productos, se pudo
evidenciar que cada sucursal de la Red de Ópticas “VIRTUAL” registra dicha información de
forma manual, lo cual implica, registros erróneos, mala manipulación de la información y pérdida
de información de productos, de manera que tiene como consecuencia pérdidas monetarias así
también disminuye la preferencia de los clientes ante la empresa optando por otras. Con los
procesos empleados para el control de ventas e inventarios de cada sucursal, retarda el manejo
incomodidades para el personal de trabajo, puesto que el tiempo invertido para el control sea
tedioso.
¿Cómo mejorar los procesos de control de venta e inventario de productos y tener una mejor
5
1.3 Objetivos
Diseñar e implementar un sistema web para ejecutar el control de ventas e inventarios en la Red
de Ópticas “VIRTUAL”, así mismo poder agilizar los procesos comerciales y optimizar el proceso
1.4 Justificaciones
personal, debido a que, mejora los procesos de inventario y venta de productos, además que, el
sistema es amigable con el usuario ayudando al personal a obtener información precisa y ordenada.
6
El proceso de registro de mantenimiento se automatiza, evitando el desgaste humano y
ayudando al personal a aumentar su nivel productivo. Al tener un control ordenado y preciso sobre
los diversos cambios que se realizan en almacén, se garantiza un mejor suministro de parte de los
proveedores de los materiales para asegurar una producción ininterrumpida y rítmica, ofreciendo
técnicamente porque mejora el método y técnica de acceso de datos para la toma de decisiones.
Actualmente cuentan con las herramientas tecnológicas necesarias para la implementación del
sistema de información web, así mismo esta plataforma da la posibilidad a la integración del
herramientas de software libre y código abierto, aprovechando estos recursos al máximo para
cualquier computador, utilizando medidas de seguridad para que esta información pueda ser
accedida solo por usuarios autorizados, además de usar una interfaz adecuada y fácil de operar con
7
1.4.3 Justificación Económica
La justificación económica del proyecto se realiza analizando los ahorros que genera la
implementación del proyecto, el cual permite gestionar la información y procesos evitando errores
en el control de la actividad comercial, los cuales generan pérdidas económicas. Se logra también
El desarrollo del Sistema es económicamente factible ya que los gastos no son elevados en
1.5.1 Alcances
El presente proyecto está disponible para todos los usuarios registrados que supervisen el
sistema, con acceso a los módulos de acuerdo a las funciones que realiza. El desarrollo del trabajo
o Módulo de sucursal
o Módulo de reportes
8
1.5.2 Límites
• Las acciones que se realicen en la base de datos son controladas por medio de la
administración.
1.6 Metodología
proceso sistemático organizado y dirigido que tiene como objeto fundamental la búsqueda de
procedimientos válidos y confiables sobre hechos y fenómenos, que no se queda sin fundamentos
ni apoyos comprobables.
Se emplea una investigación de tipo Descriptiva que tiene como propósito conocer situaciones,
la recolección de datos, sino a la predicción e identificación de las relaciones que existen entre dos
o más variables.
9
El enfoque es Cuantitativo con procesos deductivos, donde cada etapa conduce de forma lógica
a la que viene, sirve para comprobar, explicar o predecir un determinado hecho. La investigación
“Las metodologías ágiles promueven las relaciones interpersonales, son adaptativas, se enfocan
en las personas, caracterizándose por existir una estrecha colaboración entre el cliente y el equipo
cinco valores que establecen el fundamento para todo trabajo realizado como parte de XP:
La herramienta que se utiliza para el modelado es WEBML empleada para ofrecer un diseño de
alto nivel de aplicaciones web intensivas en el manejo de datos, que combina técnicas de modelado
ER con UML. WebML soporta una colección de conceptos poderosos que posibilitan un diseño
de alto nivel y provee especificaciones gráficas para producir una descripción (a nivel abstracto)
de la aplicación Web.
10
CAPÍTULO II MARCO TEÓRICO
La Red de Ópticas “VIRTUAL” es una empresa que ofrece una atención especializada en salud
visual, así mismo de comercializar gran cantidad de productos de calidad. Cada sucursal cuenta
tallado, montaje, adaptación, suministro, verificación y control de los medios adecuados para la
monturas (montura entera, media montura y montura flotante), estuches de lentes (tipo sobre, tipo
i. Misión:
ii. Visión:
Consolidarse como la mejor opción de óptica para satisfacer las necesidades de sus
clientes, y ser uno los líderes como la cadena de ópticas de mayor cobertura nacional
de servicio.
11
iii. Objetivos:
productos.
▪ Beneficiar con costos reducidos a los clientes que realicen la compra de manera
continua.
su organigrama.
12
Gerente: Tiene bajo su responsabilidad las funciones de organizar, programar y supervisar las
diferentes actividades.
Auxiliar de óptica: Asesora a los clientes en la selección de sus lentes, monturas o tratamientos
Personal de aseo: Tiene como función velar que se cumplan las normativas de higiene y
seguridad.
13
• El vendedor realiza el registro de la venta de los productos de manera manual.
• El encargado de ventas cuenta los productos de manera manual y son registrados hojas
2.2 Metodología
“La Programación Extrema (XP) es posiblemente el método ágil más conocido y ampliamente
utilizado. El nombre fue acuñado por Beck (Beck, 2000) debido a que el enfoque fue desarrollado
utilizando buenas prácticas reconocidas, como el desarrollo iterativo y con la participación del
Según (Joskowick, 2008) en su trabajo las Reglas y Prácticas en Extreme Programming (XP)
surge como una nueva manera de encarar proyectos de software, proponiendo una metodología
basada esencialmente en la simplicidad y agilidad. Los métodos ágiles son adaptables en lugar de
predictivos. Los métodos “clásicos” tienden a intentar planear una gran parte del proceso del
software en gran detalle para un plazo largo de tiempo. Esto funciona bien hasta que las cosas
14
cambian. Así que su naturaleza es resistirse al cambio. Para los métodos ágiles, no obstante, el
XP es una de las llamadas metodologías ágiles de desarrollo de software más exitosas de los
tiempos recientes. La metodología propuesta en XP está diseñada para entregar el software que los
a los requerimientos cambiantes de los clientes, aún en fases tardías del ciclo de vida del desarrollo.
desarrolladores son partes del mismo equipo dedicado a entregar software de calidad.
Los Valores originales de la programación extrema según (Bustamante y Rodríguez, 2014) son:
continuación:
ésta es la manera de mantener el código simple a medida que crece. También se aplica
comunicación con el cliente es fluida ya que el cliente forma parte del equipo de
15
desarrollo. El cliente decide qué características tienen prioridad y siempre debe estar
opinión sobre el estado del proyecto se conoce en tiempo real. Meses de trabajo pueden
tirarse por la borda debido a cambios en los criterios del cliente o malentendidos por
• Coraje o Valentía: Muchas de las prácticas implican valentía, una de ellas es siempre
desarrolladores que se sientan cómodos con reconstruir su código cuando sea necesario.
• Respeto. Se manifiesta de varias formas: todos los integrantes respetan sus trabajos,
porque siempre están luchando por la alta calidad en el producto y buscando el diseño
óptimo para la solución a través de la refactorización del código. A su vez, los miembros
del equipo respetan el trabajo del resto no haciendo menos a otros, esto mejora la
del proceso de desarrollo actual. Escoge la práctica que ayuda a resolver ese problema y aplicarla.
16
Cuando haya dejado de ser un problema, escoge el siguiente. En realidad, se recomienda que se
apliquen las prácticas de dos en dos. El objetivo es que las prácticas de XP se apoyan unas a otras
por lo cual dos prácticas aportan más que la suma de ambas y por tanto es más fácil comprobar los
• Metáfora (metaphor)
• Pruebas (testing)
• Refactorización (refactoring)
La programación extrema parte del caso habitual de una compañía que desarrolla software,
generalmente software a medida, en la que hay diferentes roles: un equipo de gestión, un equipo
venido haciendo en las metodologías tradicionales, que se basan fundamentalmente en una fase de
17
captura de requisitos previa al desarrollo y una fase de validación posterior al mismo. Para que el
presente proyecto se ejecute debe seguir pasos donde el desarrollo es la pieza clave de todo el
Todas las tareas tienen como objetivo realizar el desarrollo a la máxima velocidad, sin
pasos:
• El cliente selecciona qué construir, de acuerdo con sus prioridades y las restricciones de
tiempo.
• Vuelve al paso 1
18
Figura 2.2 Metodología XP: Características
Fuente: Bustamante y Rodríguez, 2014
• Los individuos e interacciones son más importantes que los procesos y herramientas.
herramientas.
2.2.1.5 Roles de XP
En este apartado se describen los roles de acuerdo con la propuesta original de Beck. Los roles
usuario por el cliente. Además, estima el tiempo de desarrollo de cada historia de usuario
19
para que el cliente pueda asignarle prioridad dentro de la iteración. Cada iteración
define las prioridades de implementación según el valor de negocio que aporta cada
• El encargado de seguimiento (Tracker). Una de las tareas más importante del tracker,
compararlas con el tiempo real de desarrollo. De esta forma, puede brindar información
estadística en lo que refiere a la calidad de las estimaciones para que puedan ser
mejoradas.
guiar a las personas del equipo en poner en marcha cada una de las prácticas de la
metodología XP.
tema necesario para el proyecto. Guía al equipo para resolver un problema específico.
20
• Gestor (Big boss). Es el vínculo entre el cliente y programadores. Experto en tecnología
y labores de gestión. Construye el plantel del equipo, obtiene los recursos necesarios y
El ciclo de vida ideal de XP según Beck, consiste de seis fases: Exploración, Planificación de
la Entrega, Iteraciones, Producción, Mantenimiento y Muerte del Proyecto (Loraine, 2012). Sin
embargo, no se hace uso de todas ellas, sino así, de las cuatro fases.
• Exploración: en esta fase, el cliente plantea a grandes rasgos las historias de usuario
historia de usuario
• Iteraciones: esta fase incluye varias iteraciones sobre el sistema antes de ser entregado.
iteraciones.
• Muerte del Proyecto: es cuando el cliente no tiene más historias para ser incluidas en
el sistema.
21
2.2.2 Fases de la Metodología XP
actividad para recabar requerimientos que permite que los miembros técnicos del equipo XP
historias (también llamadas historias del usuario) que describen la salida necesaria, características
y funcionalidad del software que se va a elaborar. El cliente asigna un valor (es decir, una
prioridad) a la historia con base en el valor general de la característica o función para el negocio.
22
Después, los miembros del equipo XP evalúan cada historia y le asignan un costo, medido en
semanas de desarrollo. Si se estima que la historia requiere más de tres semanas de desarrollo, se
pide al cliente que la descomponga en historias más chicas. Es importante observar que en
Los clientes y desarrolladores trabajan juntos para decidir cómo agrupar las historias en la
siguiente entrega que desarrollará el equipo XP. El equipo XP ordena las historias que serán
implementarán primero.
1) Ayudar a estimar las fechas de entrega y programar las actividades para las entregas
posteriores.
2) Determinar si se ha hecho un gran compromiso para todas las historias durante todo el
23
A medida que avanza el trabajo, el cliente puede agregar historias, cambiar el valor de una ya
es definir las historias de usuario con el cliente. Las historias de usuario constan de 3 o
4 líneas escritas por el cliente en un lenguaje no técnico sin hacer mucho hincapié en
diseños de base de datos adecuados, etc. Son usadas para estimar tiempos de desarrollo
24
Tabla 2.1 Plantilla para la Elaboración de Historias de Usuario
HISTORIA DE USUARIO
Usuario: Persona que utilizará la funcionalidad
Número: Número único que permite
del sistema descrita en la historia de usuario
identificar a una historia de usuario.
(Administrador, ayudante, etc.)
Nombre Historia: Describe de manera general a una historia de usuario.
Puntos Estimados: Número de Prioridad del Negocio: Grado de importancia que
semanas que se necesitará para el el cliente asigna a una historia de usuario.
desarrollo de una historia de usuario (Alta/Media/Baja)
Iteración Asignada: Número de
Riesgo de Desarrollo: Valor de complejidad que
iteración, en que el cliente desea que
una historia de usuario representa al equipo de
se implemente una historia de
desarrollo. (Alto/Medio/Bajo)
usuario
Descripción: Información detallada de una historia de usuario.
Observaciones: Campo opcional utilizado para aclarar, si es necesario, el requerimiento
descrito en una historia de usuario.
Fuente: Chiluisa y Loarte, 2014
de las historias de usuario, la prioridad con la que serán implementadas y las historias
que serán implementadas en cada versión del programa. Después de un Release plan
tienen que estar claros estos cuatro factores: los objetivos que se deben cumplir, el
tiempo que tardarán en desarrollarse y publicarse las versiones del programa, el número
realizado.
25
• Tareas de ingenierías (Task Card): Una Historias de Usuario se descompone en varias
tareas de ingeniería, las cuales describen las actividades que se realizarán en cada
historia de usuario, así mismo las tareas de ingeniería se vinculan más al desarrollador,
programadores.
26
• La Velocidad del Proyecto: Es una medida que representa la rapidez con la que se
desarrolla el proyecto; estimarla es muy sencillo, basta con contar el número de historias
de usuario que se pueden implementar en una iteración; de esta forma, se sabrá el cupo
expongan sus problemas, soluciones e ideas de forma conjunta. Las reuniones tienen
que ser fluidas y todo el mundo tiene que tener voz y voto.
siempre se prefiere sobre una representación más compleja. Además, el diseño guía la
implementación de una historia conforme se escribe: nada más y nada menos. Se desalienta el
27
XP estimula el uso de las tarjetas CRC como un mecanismo eficaz para pensar en el software
identifican y organizan las clases orientadas a objetos que son relevantes para el incremento actual
de software. Las tarjetas CRC son el único producto del trabajo de diseño que se genera como
parte del proceso XP. Si en el diseño de una historia se encuentra un problema de diseño difícil,
Entonces, se implementa y evalúa el prototipo del diseño, llamado solución en punta. El objetivo
originales para la historia que contiene el problema de diseño. XP estimula el rediseño, técnica de
Fowler (2002) describe el rediseño del siguiente modo: Rediseño es el proceso mediante el cual
se cambia un sistema de software en forma tal que no altere el comportamiento externo del código,
pero sí mejore la estructura interna. Es una manera disciplinada de limpiar el código y modificar
cuando se rediseña, se mejora el diseño del código después de haber sido escrito.
Como el diseño XP virtualmente no utiliza notación y genera pocos, si alguno, productos del
trabajo que no sean tarjetas CRC y soluciones en punta, el diseño es visto como un artefacto en
transición que puede y debe modificarse continuamente a medida que avanza la construcción.
Un concepto central en XP es que el diseño ocurre tanto antes como después de que comienza
28
Tabla 2.3 Plantilla para las Tarjetas CRC
TARJETAS CRC
Nombre de la clase: Nombre de la clase al cual hace referencia la tarjeta
Responsabilidades: Atributos y Colaboradores: Clases que colaboran
operaciones de la clase. con la clase citada en la tarjeta.
Fuente: Chiluisa y Loarte, 2014
2.2.2.3 Fase III-Codificación
Después de que las historias han sido desarrolladas y de que se ha hecho el trabajo de diseño
preliminar, el equipo no inicia la codificación, sino que desarrolla una serie de pruebas unitarias a
cada una de las historias que se van a incluir en la entrega en curso (incremento de software). Una
vez creada la prueba unitaria, el desarrollador está mejor capacitado para centrarse en lo que debe
implementarse para pasar la prueba. No se agrega nada extraño (MS). Una vez que el código está
terminado, se le aplica de inmediato una prueba unitaria, con lo que se obtiene retroalimentación
recomienda que dos personas trabajen juntas en una estación de trabajo con el objeto de crear
código para una historia. Esto da un mecanismo para la solución de problemas en tiempo real y
para el aseguramiento de la calidad también en tiempo real (el código se revisa conforme se crea).
A medida que las parejas de programadores terminan su trabajo, el código que desarrollan se
integra con el trabajo de los demás. En ciertos casos, esto lo lleva a cabo a diario un equipo de
Esta estrategia de integración continua ayuda a evitar los problemas de compatibilidad e interfaces
29
y brinda un ambiente de prueba de humo que ayuda a descubrir a tiempo los errores (Pressman,
2010).
• Pruebas unitarias: Las pruebas unitarias son una de las piedras angulares de XP. Todos
los módulos deben de pasar las pruebas unitarias antes de ser liberados o publicados.
Por otra parte, como se mencionó anteriormente, las pruebas deben ser definidas antes
colectiva del código. En este sentido, el sistema y el conjunto de pruebas debe ser
guardado junto con el código, para que pueda ser utilizado por otros desarrolladores, en
• Detección y corrección de errores: Cuando se encuentra un error bug, éste debe ser
vuelvan a ocurrir. Asimismo, se generan nuevas pruebas para verificar que el error haya
sido resuelto.
• Pruebas de aceptación: Las pruebas de aceptación son creadas en base a las historias
de usuarios, en cada ciclo de la iteración del desarrollo. El cliente debe especificar uno
o diversos escenarios para comprobar que una historia de usuario ha sido correctamente
negra. Los clientes son responsables de verificar que los resultados de estas pruebas
30
sean correctos. Asimismo, en caso de que fallen varias pruebas, deben indicar el orden
Según Malleas (2009) en Murugesan, Deshpande y S., promotores iniciales del establecimiento
de la Ingeniería Web como nueva disciplina, dan la siguiente definición: Es el proceso utilizado
para crear, implantar y mantener aplicaciones y sistemas Web de alta calidad. Esta breve definición
nos lleva a abordar un aspecto clave de cualquier proyecto como es determinar qué tipo de proceso
El desarrollo de aplicaciones Web posee determinadas características que lo hacen diferente del
31
2.2.3.1 WEB Modeling Language (WEBML)
posibilidades en cuanto al acceso y uso de información desde cualquier parte del mundo. Con los
avances en tecnología, cada vez se demandan aplicaciones más rápidas, ligeras y robustas que
permitan ser usadas sin importar ni el lugar, ni el horario. Las aplicaciones Web tienen varias
para diseñar aplicaciones Web que usan datos intensivos, que además cubre aspectos avanzados
(Carmona, 2008).
WebML es una notación para especificar complejos sitios Web en el ámbito conceptual (Ceri,
2002), que permite apoyar las actividades del diseño de estos, a partir de su descripción desde
distintos puntos de vista como son el conceptual, el navegacional y el de presentación, entre otros
• Almacenar meta-información
32
• Modelar usuarios y comunidades
Cada una capturada mediante un modelo distinto los cuáles (Barraza, 2010) son:
- El modelo estructural
- El modelo e hipertexto
- Modelo de presentación
33
2.2.3.3.1 Modelado Estructural
Cuando se trabaja con WebML el proceso de desarrollo comienza con la descripción conceptual
del sistema, en la cual, utilizando herramientas CASE para modelado, como UML, DIA, Enterprise
Una característica a destacar de WebML es que no exige ninguna herramienta específica para
El elemento fundamental del modelo de estructura son las entidades (contenedores de datos) y
las relaciones (conectores de entidades), las entidades deben tener atributos con un tipo asociado
y las relaciones deben tener una cardinalidad y un rol asociado. En la imagen se muestra un ejemplo
de un diagrama de estructura, el cual consiste de cuatro entidades Artist, Album, Review, Track y
34
2.2.3.3.2 Modelado de Hipertexto
constituyen la aplicación.
- El modelo de composición
- El modelo de navegación
a) Modelo de composición
El propósito del diagrama de composición es definir los nodos que forman parte del
hipertexto contenido en el sitio Web, es decir, se especifican las páginas y las unidades
(elementos atómicos de información que deben aparecer en el sitio Web) que componen
Según Carmona (2008) WebML soporta seis tipos de unidades que pueden ser usadas
35
Unidades de Datos: Muestran información sobre un solo objeto, son definidas para
seleccionar una mezcla de información. Para definir una unidad de datos se requiere la
unidad.
múltiples instancias de una entidad o componente. Una unidad multidatos tiene dos
partes: el contenedor que incluye las instancias que se desean mostrar y la unidad de
Unidad Índice: presenta múltiples instancias de una unidad o componente como una
lista, esta unidad tiene dos partes principales: el contenedor que incluye las instancias
que se desean mostrar (las instancias deben ser una entidad, una relación o un
contenedor. Esta unidad es normalmente usada junto con una unidad de datos, la cual
Unidad Filtro: provee campos de entrada para buscar los objetos en un contenedor, esta
unidad es normalmente usada junto con una unidad índice o multidatos, la cual muestra
Unidad Directa: Expresa un tipo particular de índice, el cual contiene un solo objeto
36
Figura 2.8 Unidades de Contenido
Fuente: Web Modeling Language, 2017
Una página es una abstracción de una región independiente de la pantalla, la cual es tratada
como un bloque de interfaz independiente. Las páginas deben ser internamente organizadas en
unidades y/o recursivamente en páginas, para este último las subpáginas de la página contenedora
son tratadas como bloques de presentación independientes, hay dos formas de visualizar las
subpáginas: conjuntas (se muestran las subpáginas al mismo tiempo) o disjuntas (unas páginas se
b) Modelado de navegación
y las páginas son conectadas para formar un hipertexto, para esto WebML provee la
destino.
37
Enlaces no contextuales: conectan páginas libremente, independientemente del
contexto
A pesar que WebML se creó inicialmente para el diseño de aplicaciones Web intensivas en
datos, esta es, sin duda, una de las metodologías que más esfuerzos de adaptación ha realizado en
extendido, para dar soporte al desarrollo de aplicaciones que integran, tantos servicios Web,
también procesos de negocios, añadiendo para ello una nueva etapa de análisis de los procesos y
Butti,2006)
hipertexto el cual sirve al modelado del sistema además que permite al arquitecto de
información el especificar cómo las unidades, definidas sobre objetos de datos, son
38
compuestas dentro de las páginas. Para este proyecto se utilizaron las necesarias según
39
Figura 2.10 Descripción y Elementos del modelado de Hipertexto
Fuente: Barraza, 2010
40
c) Modelo de presentación
En esta fase se define claramente la apariencia gráfica de cada una de las páginas que
2.3 Inventario
Inventario se refiere a las existencias de un artículo o determinado recurso que está almacenado
y que espera ser usado por la organización. Un sistema de inventario es el conjunto de políticas y
controles que supervisa los niveles de inventario y determina cuáles son los niveles que deben
mantenerse, cuando hay que reabastecer el inventario y de qué tamaño deben ser los pedidos
inactividad que repercutan negativamente en los costos de los factores productivos, hace preciso
realizar una discriminación de artículos con el fin de determinar de entre todos ellos cuáles son los
que, por sus características, precisan un control más riguroso. El inventario en una empresa son
las existencias que se destinan a la venta directa o destinada indirectamente al proceso productivo.
Los inventarios pueden8 ser definidos, como una provisión de materiales, con el objetivo de
las operaciones que se producen desde que el cliente efectúa un pedido a las instalaciones hasta
41
2.3.1 Tipos de inventarios
• Inventarios finales: Se realizan cada vez que se cierra el periodo fiscal, habitualmente
el 31 de diciembre.
misma se encuentra: en la utilidad que reportan las existencias en almacén, referida a la cantidad
de artículos necesarios para cubrir la demanda, ser oportunos teniendo los artículos en el tiempo y
lugar deseado, garantizar la calidad del producto y ofrecer el mejor precio. Si las empresas, no
42
llevan sus inventarios de la manera correcta pueden tener contratiempos en sus actividades
comerciales, ya que, al no estar abastecidos de los productos o insumos necesarios no podrán cubrir
la demanda del mercado, o en caso contrario, al mantener existencias por encima de lo requerido,
Cada vez son más las empresas, así como diversas instituciones que dedican esfuerzos a
Por lo tanto, para lograr un control efectivo de los inventarios es necesario una buena coordinación
y una cooperación entre los elementos del sistema (Sánchez, Vargas, Reyez y Vidal, 2011).
Este método identificado también como “PEPS”, se basa en el supuesto de que los primeros
artículos en entrar al almacén son los primeros en salir de él. Se ha considerado conveniente este
método, porque da lugar a una evaluación del inventario concordado con la tendencia de los
precios; puesto que se presupone que el inventario está integrado por las compras más recientes y
esta valorizado a los costos también más recientes, la valorización sigue entonces la tendencia del
mercado. Método PEPS, tipo de inventario perpetuo que detalla por medio de la tarjeta de control
de inventario, las salidas y entradas de las mercancías. Establece que la primera mercancía que se
En tales condiciones, el costo está absorbiendo materiales a precio más reciente, que son los
más bajos. El objetivo final de esta técnica es que las utilidades sean más conservadoras.
43
En cuanto se agota el producto más antiguo, con su correspondiente costo de adquisición. En
inventario tiende a quedar valorado al costo de adquisición más reciente. Considerada que la
primera unidad adquirida, son las primeras surtidas al ser vendidas. La existencia en el inventario
2.3.4 Ventas
intercambio de servicios y productos. Es a su vez entendida como un contrato donde el sujeto que
actúa como vendedor transmite un derecho, bienes o servicios al comprador a cambio de una
determinada suma de dinero. La venta puede ser tanto un proceso personal como impersonal donde
el comprador puede ser influido por el vendedor. Desde el punto de vista contable y financiero, la
44
venta es el montón total cobrado por productos o servicios prestados. En cualquier situación, las
2.4.1 Laravel
(Pitt, Otwell, & Ufano) Afirma que Laravel es un framework de código abierto para desarrollar
aplicaciones y servicios web con PHP 5. Su objetivo es desarrollar aplicaciones con código PHP
de forma elegante y simple. Fue creado en 2011 y tiene una gran influencia de frameworks como
Laravel es un framework joven con gran futuro. Cuenta con una comunidad llena de energía,
necesarias para desarrollar aplicaciones modernas de manera fácil y segura. Está equipado con un
motor ligero y muchos más. Construido con varios componentes de Symfony, Laravel ofrece a las
45
2.4.2 PostgreSQL
Es un gestor de base de datos relacional, libre y de código abierto (RDBMS) haciendo hincapié
disparadores, claves externas y procedimientos almacenados. Está diseñado para manejar una
variedad de cargas de trabajo, desde maquinas individuales hasta almacenes de datos o servicios
2.4.3 PHP
(Heurtel, 2013) Afirma que PHP (acrónimo recursivo de PHP: Hypertext Preprocessor) es un
lenguaje de código abierto muy popular especialmente adecuado para el desarrollo web y que
puede ser incrustado en HTML. En lugar de usar muchos comandos para mostrar HTML (como
Lo que distingue a PHP de algo del lado del cliente como Javascript es que el código es
de ejecutar el script, aunque no se sabrá el código subyacente que era. El servidor web puede ser
46
configurado incluso para que procese todos los ficheros HTML con PHP, por lo que no hay manera
de que los usuarios puedan saber qué se tiene debajo de la manga. Lo mejor de utilizar PHP es su
extrema simplicidad para el principiante, pero a su vez ofrece muchas características avanzadas
para los programadores profesionales. No sienta miedo de leer la larga lista de características de
PHP. En unas pocas horas podrá empezar a escribir sus primeros scripts.
(Heurtel, 2013) afirma que, aunque el desarrollo de PHP está centrado en la programación de
scripts del lado del servidor, se puede utilizar para muchas otras cosas.
2.4.4 Bootstrap
y aplicaciones web. Contiene plantillas de diseño con tipografía, formularios, botones, cuadros,
menús de navegación y otros elementos de diseño basado en HTML y CSS, así como extensiones
desarrollo front-end. Bootstrap tiene un soporte relativamente incompleto para HTML5 Y CSS3,
compatibilidad de sitios web o aplicaciones está disponible para todos los dispositivos y
47
básica de un sitio web para todos los dispositivos y navegadores. Por ejemplo, las propiedades
introducidas en CSS3 para las esquinas redondeadas, gradientes y sombras son usadas por
de la herramienta, pero no es requerida para su uso. Desde la versión 2.0 también soporta diseños
web adaptables. Esto significa que el diseño gráfico de la página se ajusta dinámicamente, tomando
en cuenta las características del dispositivo usado (Computadoras, tabletas, teléfonos móviles).
2.4.5 Vue.js
frameworks monolíticos, Vue.js está diseñado desde cero para ser adoptable de forma incremental.
La biblioteca principal se centra solo en la capa de vista y es fácil de recoger e integrar con otras
bibliotecas o proyectos existentes. Por otro lado, Vue.js también es perfectamente capaz de
impulsar aplicaciones sofisticadas de una sola página cuando se usa en combinación con
Descripción: Vue.js cuenta con una arquitectura de adaptación gradual que se centra en la
en la capa de vista. Las características avanzadas necesarias para aplicaciones complejas como el
48
enrutamiento, la gestión de estados y las herramientas de construcción se ofrecen a través de
librerías y paquetes de poyo mantenidos oficialmente, con Nuxt.js como una de las soluciones más
populares. Vue.js permite extender el HTML con atributos HTML llamados directivas. Las
(Pressman, 2005).
49
Métrica se define como una medida cuantitativa del grado en que un sistema, componente o
desarrolla métricas para obtener los indicadores, los mismos que proporcionan conocimientos para
Hablar de calidad de software implica la necesidad de contar con parámetros que permitan
establecer los niveles mínimos que un producto de este tipo debe alcanzar para que se considere
de calidad.
ISO 9126 es un estándar internacional para la evaluación del Software, fue originalmente
desarrollado en 1991 para proporcionar un esquema para la evaluación de calidad del software. La
normativa define seis características de la aplicación, estas seis características son dividas en un
50
• Usabilidad: La capacidad del producto software para ser entendido, aprendido, usado
a) Capacidad para ser entendido: La capacidad del producto software que permite
al usuario entender si el software es adecuado y como ser usado para unas tareas
b) Capacidad para ser aprendido: La capacidad del producto software que permite
a) Adecuación
b) Exactitud
c) Interoperabilidad
d) Seguridad de acceso
a) Madurez
b) Capacidad de atracción
c) Cumplimiento de la usabilidad
a) Comportamiento temporal
51
b) Utilización de recursos
c) Cumplimiento de la eficiencia
c) Estabilidad
e) Cumplimiento de la Mantenibilidad
otro.
especificado.
d) Capacidad para reemplazar: La capacidad del producto software para ser usado
entorno.
52
e) Cumplimiento de la portabilidad: La capacidad del producto software para
El enfoque propuesto por Olsina, es esencialmente integral, flexible y robusto, y cubre la mayor
(Olsina, 98).
características con respecto a los requerimientos establecidos. De este modo, otro aporte
En el año 1981 Barry Boehm pública el modelo COCOMO, acorde a las prácticas de desarrollo
53
Barry Boehm detalla un modelo amplio de estimación de costos llamado COCOMO
(Constructive Cost Model). La palabra “constructive” se refiere al hecho que el modelo ayuda a
COCOMO ayuda a estimar el esfuerzo, tiempo, gente y costos (ya sea estos de desarrollo,
Este modelo hace sus previsiones en función del tamaño del proyecto médico en miles de líneas
(PM), considerando 152 horas de trabajo mensuales, y 19 días de trabajo por mes.
El modelo intermedio y el detallado, usan un factor de ajuste del esfuerzo (EAF), y los
coeficientes de las ecuaciones de esfuerzo varían notoriamente con respecto a los del modelo
54
Figura 2.18 COCOMO Intermedio
Fuente: Cwel, 2006
Este modelo obtiene unos mejores resultados, en gran parte debido al establecimiento de 15
factores de costo, que determinan la duración y el costo del proyecto. En la Figura 2.19 se puede
55
El factor de ajuste del esfuerzo (EAF), se calcula multiplicando los correspondientes factores
asociados a cada variable de costo. Otro de los motivos que justifica que el modelo intermedio
componentes. Esto implica que valores como SLOC o los factores de costo puedan ser escogidos
en función de determinadas partes del sistema, no considerándolo como un todo. De esta manera
La única diferencia existente entre el modelo intermedio y el detallado, es que este último utiliza
diferentes multiplicadores del esfuerzo para cada fase del proyecto. Las seis fases que define
COCOMO son: requerimientos, diseño del producto, diseño detallado, codificación y pruebas de
unidad, integración y test y por último mantenimiento. Las fases comprendidas entre el diseño del
2.7 Seguridad
La seguridad del software es una actividad que garantiza la calidad del software, se centra en la
identificación y evaluación de riesgos potenciales y los mismos pueden llegar a producir impactos
✓ Inyección SQL
56
✓ Script entre sitios
✓ Modificación de ingreso
✓ Reemplazo de identidad
✓ Ataques XSS
A la hora de desarrollar un sistema de información hay que tomar en cuenta dos aspectos
a una computadora, en general a cualquier sistema operativo hace inútiles casi todas las medidas
de seguridad que haya aplicado sobre él. Es necesario garantizar la seguridad global de la red y los
sistemas conectados a ella, evidentemente el nivel de seguridad física depende completamente del
entorno donde se ubiquen los puntos a proteger. Pero ¿Cómo hacerlo? ¿Cómo prevenir un acceso
físico no autorizado a un determinado punto? hay soluciones de diferente tipo desde la instalación
de videocámaras, pasando por tarjetas inteligentes o control con las llaves que abren determinada
puerta, así también los biométricos, los más recomendados estos últimos.
Cuando la prevención es difícil por cualquier motivo (técnico, económico, humano, etc.) es
deseable que un potencial ataque sea detectado cuanto antes, para minimizar así sus efectos, para
ello, es importante concienciar a todo el personal su papel en la política de seguridad del entorno,
57
si por ejemplo un usuario autorizado detecta presencia de alguien de quien sospecha que no tiene
autorización para estar en una determinada estancia debe avisar inmediatamente al administrador
o al responsable de los equipos, que a su vez puedan avisar al servicio de seguridad si es necesario
(Hernández,2007).
procedimientos que resguarden el acceso a los datos y solo se permita acceder a ellos a las personas
Entre las medidas que se deben tomar a nivel del sistema operativo son:
• Otorgar a los usuarios permisos de solo lectura para los directorios necesarios.
• Asegurarse de que los servicios son actuales comprobando con frecuencia si hay
actualizaciones de seguridad.
A continuación, se describen las medidas de seguridad a tomar en cuenta para la base de datos.
58
• Restringir los permisos a los usuarios.
• Revisar periódicamente los usuarios y la base de datos para asegurar que tienen los
• Asignación de privilegios.
dedicada a la búsqueda y la lucha contra las causas del software inseguro. Todas las herramientas,
documentos y los capítulos de OWASP son gratuitos y abiertos. (Wiesmann, Curphey, Stock y
Stirbei, 2017).
Así también estos autores mencionan que OWASP es un nuevo tipo de entidad en el mercado
de la seguridad. “Nuestra libertad de las presiones comerciales nos permite brindar información
59
imparcial, práctica y rentable sobre seguridad de las aplicaciones”, no está afiliado con ninguna
Las aplicaciones seguras no se dan por sí mismas – son en cambio el resultado de una
organización es diferente. Sin embargo, a los fines de obtener una aplicación segura, se requiere
como mínimo: Una gestión organizacional que abogue por la seguridad políticas de seguridad
como ISO; normalmente los controles seleccionados de la guía satisfacen los requerimientos
relevantes de ISO 27001 o ISO 31000 (Wiesmann, Curphey, Stock y Stirbei, 2017).
Los atacantes pueden, potencialmente, utilizar diferentes rutas a través de su aplicación para
perjudicar su negocio u organización. Cada uno de estos caminos representa un riesgo que puede
o no ser suficientemente grave como para merecer atención. En la Figura 2.20 se muestran estas
posibles amenazas.
60
Figura 2.20 Riesgos en la Seguridad de las Aplicaciones
Fuente: (Wiesmann, Curphey, Stock y Stirbei, 2017)
Algunas veces, estos caminos son fáciles de encontrar y explotar, mientras que otras son
puede evaluar la probabilidad asociada a cada agente de amenaza, vector de ataque, debilidad de
seguridad y combinarlo con una estimación del impacto técnico y de negocio, juntos, estos factores
• A1: 2017 (Inyección) Las fallas de inyección, como SQL, NoSQL, OS o LDAP ocurren
consulta. Los datos dañinos del atacante pueden engañar al intérprete para que ejecute
61
• A2: 2017 (Pérdida de Autenticación) Las funciones de la aplicación relacionadas a la
permanentemente).
• A3: 201 (Exposición de Datos Sensibles) Muchas aplicaciones web y APIs no protegen
estos datos protegidos inadecuadamente para llevar a cabo fraudes con tarjeta de crédito,
robos de identidad u otros delitos. Los datos sensibles requieren métodos de protección
• A4: 2017 (Entidades Externas XML (XXE)) Muchos procesadores XML antiguos o mal
entidades externas pueden utilizarse para revelar archivos internos mediante la URI o
• A5: 2017 (Pérdida de Control de Acceso) Las restricciones sobre lo que los usuarios
estos defectos para acceder, de forma no autorizada, a funcionalidades y/o datos, cuentas
de otros usuarios, ver archivos sensibles, modificar datos, cambiar derechos de acceso
y permisos, etc.
62
• A6: 2017 (Configuración de Seguridad Incorrecta) La configuración de seguridad
• A7: 2017 (Secuencia de Comandos en Sitios Cruzados (XSS)) Los XSS ocurren cuando
una aplicación toma datos no confiables y los envía al navegador web sin una validación
y codificación apropiada, o actualiza una página web existente con datos suministrados
por el usuario utilizando una API que ejecuta JavaScript en el navegador. Permiten
sesión, modificar (defacement) los sitios web, o re direccionar al usuario hacia un sitio
malicioso.
• A8: 2017 (Deserialización Insegura) Estos defectos ocurren cuando una aplicación
recibe objetos serializados dañinos y estos objetos pueden ser manipulados o borrados
por el atacante para realizar ataques de repetición, inyecciones o elevar sus privilegios
bibliotecas, frameworks y otros módulos se ejecutan con los mismos privilegios que la
pérdida de datos o tomar el control del servidor. Las aplicaciones y API que utilizan
63
componentes con vulnerabilidades conocidas pueden debilitar las defensas de las
junto a la fatal de respuesta ante incidentes permiten a los atacantes mantener el ataque
en el tiempo, pivotear a otros sistemas y manipular, extraer o destruir datos. Los estudios
muestran que el tiempo de detección de una brecha de seguridad es mayor a 200 días,
En la Figura 2.22 se muestra un resumen de los factores de riesgo del top 10 que propone
OWASP.
64
CAPÍTULO III MARCO APLICATIVO
3.1 Introducción
En este capítulo se detalla la forma de organización y métodos de trabajo del sistema, se hará
uso de las metodologías y herramientas descritas anteriormente, las mismas que nos servirán para
Al comenzar con el desarrollo del sistema se observó que la comunicación con el equipo de
trabajo era muy importante, desde el cliente que forma parte del equipo haciendo conocer la forma
del trabajo actual, explicando paso a paso el procedimiento en el área de ventas y captar las
Por estas razones se hará el uso de la metodología XP, donde claramente pone en comunicación
directa y continua a clientes y desarrolladores, este aspecto fue aplicado ya que se mantuvieron
reuniones frecuentes con el personal del cliente, quienes se integraron al proyecto para establecer
prioridades y resolver dudas. Dicha metodología fue elegida porque responde de manera favorable
proyecto y las prácticas, están creadas para mitigar los riesgos y elevar las probabilidades de éxito.
El análisis de los requerimientos resultó un tanto moroso, debido a la ambigüedad con la que se
manejan varios aspectos como ser las peticiones del cliente. También influye la cantidad de
producto que compra un cliente, además depende del tipo de producto, quedando sujeto a la
65
En el esquema que se muestra a continuación se ve como la metodología de desarrollo ágil
programación extrema XP, interactuara con el modelado web WebML. XP ayudará al desarrollo
del proyecto atreves de las iteraciones, donde cada iteración comprenderá las fases de
planificación, diseño, desarrollo y pruebas. Interactuando con la fase de diseño del modelo
WebML haciendo el uso de los modelos de datos, modelo de hipertexto y finalmente el modelo de
presentación.
66
3.2 Fases de la metodología XP
En esta primera fase se mostrará la forma de actual mediante Historias de Usuarios, además de
los requerimientos de los sistemas Web, se definirán todas las tareas que serán necesarias para
poder desarrollar la aplicación esto mediante las Tarjetas de Tareas y por último se realizará el
Plan de Entregas que contendrá las iteraciones a realizar para el desarrollo del presente proyecto.
Se deben identificar a todos los roles que van a interactuar con el sistema, y posteriormente se
los clasifica en clases y subclases de actores, de esta manera se organiza mejor el acceso a la
información del sistema y se tiene mejor control y seguimiento sobre los usuarios, evitando
operaciones
sistema
factura.
Encargado de registrar los productos, genera reportes
Encargado de Bodega de los inventarios, realiza la verificación de existencia
de productos.
Fuente: Elaboración propia
67
3.2.1.2 Obtención de requerimientos
sistema, es decir, describen las transformaciones que el sistema realiza sobre las entradas para
producir salidas. Por otro lado, se tienen los requerimientos no funcionales, los cuales determinan
A continuación, se muestra cada uno de los requerimientos que fueron descritos por el cliente
Todo sistema debe contar con un módulo donde el usuario pueda administrar los ajustes
RA-1 Administrar usuarios: El sistema debe contar con este módulo, donde el usuario
pueda administrar los ajustes básicos del sistema, así como permitir la asignación de un
role a un usuario.
RA-2 Administrar roles: Encargado de limitar el acceso a los recursos del sistema, el
personal.
68
B. Módulo de inventarios
RB-3 Relación directa del inventario con las ventas: En cada transacción de venta, al
69
RB-4 Administración de bodegas: Se debe contar con las opciones de agregar, listar,
C. Módulo de ventas
realizada.
venta.
los clientes.
• La aplicación web debe ser totalmente funcional en los equipos que posee el cliente.
• La aplicación web debe tener un entorno gráfico amigable al usuario, además de que el
70
3.2.1.3 Historias de Usuario y Tarjetas de Tarea
llevadas a cabo con el cliente, sobre las funciones que el sistema debería realizar, se pudo construir
las historias de usuario que cuentan con prioridades, puntos, riesgos e iteraciones.
En esta fase también se hace uso de Tarjetas de Tarea, las cuales tienen el objetivo de definir
de forma clara y concreta las tareas a realizar para implementar una historia de usuario. Se hará un
análisis más profundo en las historias de usuario. De aquí en adelante se hará referencia al término
“ABM” que significa Altas, Bajas y Modificaciones, son el conjunto de funciones básicas que todo
el administrador del sistema es una tarea primordial para la empresa. La tabla que se muestra a
71
Tabla 3.2 Historia de Usuario 1- Usuarios
HISTORIA DE USUARIO
Número: 1 Usuario: Administrador del sistema
Nombre de Historia: Administración de usuarios
Puntos Estimados: 2 Prioridad de negocio: Alta
Iteración asignada: 1 Riesgo de desarrollo: Alto
Descripción: Se desarrollará el módulo de autenticación de usuario, el cual
permitirá el ingreso al sistema, usando un nombre de usuario y contraseña teniendo
en cuenta que cada uno cuenta con privilegios que restringen su actividad dentro
del sistema.
Fuente: Elaboración propia
La historia de usuario 1 contara con tareas que ayuden a crear el módulo de interfaz y la consulta
La Tarjeta de Tarea 1.1 (Ver tabla 3.3) Pertenece a la Historia de Usuario 1 en este se muestra
el desarrollo del módulo de autenticación, debe cumplir la función de permitir al personal el acceso
al sistema.
72
Tabla 3.4 Tarjeta de Tarea 1.2 de Historia de Usuario 1
TAREA
Número de tarea: 1.2 Número de Historia: 1
Nombre de Tarea: Diseño de la interfaz de introducción nombre de usuario y
contraseña del usuario.
Tipo de Tarea: Diseño Puntos estimados: 2
Programador Responsable: Evelyn Angela Alanez Zenteno
Descripción: Se desarrolla una interfaz la cual será la página principal antes de
poder utilizar el sistema, esta contara con dos campos que serán usuario y la
contraseña.
Fuente: Elaboración propia
El diseño de la Tarjeta de Tarea 1.2 (Ver tabla 3.4) se elaborará con una interfaz de manera
sencilla para que el personal pueda ingresar, de esta misma manera el personal de trabajo podrá
a la base de datos para poder validar solo a usuarios registrados (Ver tabla 3.5).
73
Historia de Usuario – Roles: La administración de roles para la empresa tiene una prioridad
alta para la empresa, debido a que, permitirá restringir las opciones de accesos según al rol
asignado a cada usuario. A continuación, se muestra la historia de usuario (Ver tabla 3.6):
La historia de usuario de administración de roles contará con tareas que ayuden a crear el
módulo de interfaz y consulta a la base de datos (Ver tabla 3.7), como se muestra a continuación:
La Tarjeta de Tarea 2.2 (Ver tabla 3.8), pertenece a la historia de usuario 2, esta muestra las
tareas necesarias para el alta, baja y modificación de nombre y menú de los roles:
74
Tabla 3.8 Tarjeta de Tarea 2.2 de Historia de Usuario 2
TAREA
Número de tarea: 2.2 Número de Historia: 2
Nombre de Tarea: ABM de roles
Tipo de Tarea: Desarrollo Puntos estimados: 3
Programador Responsable: Evelyn Angela Alanez Zenteno
Descripción: Crear las funciones para agregar, modificar, eliminar y listar los roles y
menús de cada rol existentes a nivel vista y controlador.
Fuente: Elaboración propia
Historia de Usuario – Menús: La administración del menú de los roles (Ver tabla 3.9), es una
tarea importante para la empresa debido a que, el sistema debe ser flexible para la modificación de
los mismos.
75
Tabla 3.10 Tarjeta de Tarea 3.1 de Historia de Usuario 3
TAREA
Número de tarea: 3.1 Número de Historia: 3
Nombre de Tarea: Diseño de la interfaz de administración de menús
Tipo de Tarea: Diseño Puntos estimados: 2
Programador Responsable: Evelyn Angela Alanez Zenteno
Descripción: Se desarrolla una interfaz para el desarrollo de administración de
menús de roles, los formularios que permitan agregar nuevos menús y editar, así
como la opción de eliminar. Además de la interfaz de listado.
Fuente: Elaboración propia
La Tarjeta de Tarea 3.1 (Ver tabla 3.10), pertenece a la historia de usuario 3, esta muestra las
La Tarjeta de Tarea 3.2 (Ver tabla 3.11), pertenece a la historia de usuario 3, esta muestra las
de usuario de Personal
76
Tabla 3.12 Historia de Usuario 4 – Personal de Trabajo
HISTORIA DE USUARIO
Número: 4 Usuario: Administrador del sistema
Nombre de Historia: Administración de personal de trabajo
Puntos Estimados: 1 Prioridad de negocio: Media
Iteración asignada: 1 Riesgo de desarrollo: Medio
Descripción: El sistema debe permitir la autentificación del personal con los
privilegios que le fueron asignados, así como, la modificación y eliminación de los
mismos.
Fuente: Elaboración propia
La Tarjeta de Tarea 4.1 (Ver tabla 3.13) pertenece a la historia de usuario 4, esta describe las
77
Tabla 3.14 Tarjeta de Tarea 4.2 de Historia de Usuario 4
TAREA
Número de tarea: 4.2 Número de Historia: 4
Nombre de Tarea: ABM de personal de trabajo
Tipo de Tarea: Desarrollo Puntos estimados: 3
Programador Responsable: Evelyn Angela Alanez Zenteno
Descripción: Se implementará las clases necesarias para el alta, baja y modificación
de los datos del personal de la empresa.
Fuente: Elaboración propia
En la tarjeta de tarea 4.2 (Ver tabla 3.14), se describen las tareas necesarias para el alta,
La Tarjeta de Tarea 5.1 (Ver tabla 3.16) pertenece a la historia de usuario 5, esta describe las
78
Tabla 3.16 Tarjeta de Tarea 5.1 de Historia de Usuario 5
TAREA
Número de tarea: 5.1 Número de Historia: 5
Nombre de Tarea: Diseño de la interfaz del módulo sucursal
Tipo de Tarea: Diseño Puntos estimados: 2
Programador Responsable: Evelyn Angela Alanez Zenteno
Descripción: Se creará un formulario que permita realizar el registro de las sucursales,
además de comprobar que estos datos son almacenados correctamente en la base de
datos.
Fuente: Elaboración propia
En la tarjeta de tarea 5.2 (Ver tabla 3.17), se describen las tareas necesarias para el alta,
Historias de Usuario – Inventarios: Este módulo tiene una importancia alta para la empresa,
debido a que, con el sistema a implementarse se desea tener un buen control de los productos que
existen en bodega; además, se debe observar un listado de todos los productos con las cantidades
79
Tabla 3.18 Historia de Usuario 6 – Inventario
HISTORIA DE USUARIO
Número: 6 Usuario: Encargado de ventas, encargado de bodega
Nombre de Historia: Inventario de productos
Puntos Estimados: 2 Prioridad de negocio: Alta
Iteración asignada: 2 Riesgo de desarrollo: Alto
Descripción: El sistema debe contar con el módulo de inventarios, que mostrará
un listado de los productos con sus cantidades existentes en bodega, además que se
debe registrar información sobre el usuario y fecha que añadió el producto, así
mismo si este se elimina
Fuente: Elaboración propia
La historia de usuario 6, se descompondrá en la siguiente tarjeta de tarea 6.1 (Ver tabla 3.19),
que describe las actividades que se deben realizar para el ingreso de productos a inventario.
A continuación, se muestra la tarjeta de tarea 6.2 (Ver tabla 3.20) de la historia de usuario de
Inventarios:
80
Tabla 3.20 Tarjeta de Tarea 6.2 de Historia de Usuario 6
TAREA
Número de tarea: 6.2 Número de Historia: 6
Nombre de Tarea: Desarrollo del módulo de inventarios
Tipo de Tarea: Desarrollo Puntos estimados: 4
Programador Responsable: Evelyn Angela Alanez Zenteno
Descripción: Se mostrará un listado de todos los productos existentes en bodega con
la descripción necesaria de cada producto.
Fuente: Elaboración propia
Historias de Usuario - Productos: Esta historia de usuario tiene una prioridad alta para la red
de Ópticas. El riesgo de desarrollo es alto debido a que este objeto es un objeto base del sistema y
es preciso definirlo de la forma más clara. El sistema debe registrar la información necesaria de
los productos que ofrece la empresa, así como permitir la actualización necesaria de los mismos.
A continuación, la Tarjeta de Tarea 7.1 (Ver tabla 3.22), describe la interfaz del módulo de
productos:
81
Tabla 3.22 Tarjeta de Tarea 7.1 de Historia de Usuario 7
TAREA
Número de tarea: 7.1 Número de Historia: 7
Nombre de Tarea: Diseño de la interfaz del módulo de Productos
Tipo de Tarea: Diseño Puntos estimados: 4
Programador Responsable: Evelyn Angela Alanez Zenteno
Descripción: Se creará el formulario que permita introducir todas las características
de los productos: código de producto, nombre, precio, stock, presentación, detalle.
Fuente: Elaboración propia
Se muestra la tarjeta de tarea 7.2 (Ver tabla 3.23) perteneciente a la historia de usuario 7, que
82
Tabla 3.24 Historia de Usuario 8 – Categorías
HISTORIA DE USUARIO
Número: 8 Usuario: Encargado de ventas y operaciones
y encargado de bodega
Nombre de Historia: Administración de categorías
Puntos Estimados: 1 Prioridad de negocio: Media
Iteración asignada: 2 Riesgo de desarrollo: Medio
Descripción: El sistema debe permitir crear, listar, modificar y eliminar los registros
de las categorías.
Fuente: Elaboración propia
A continuación, se muestran la tarjeta de tarea 8.1 (Ver tabla 3.25), necesaria para la
Historias de Usuario – Proveedores: El sistema debe registrar los datos de los proveedores
con los que tiene contacto la empresa, para brindar más información sobre la materia prima que
se adquieren de cada uno. A continuación, se describe la historia de usuario 9, Proveedores (Ver
tabla 3.26):
83
Tabla 3.26 Historia de Usuario 9 – Proveedor
HISTORIA DE USUARIO
Usuario: Gerente, Encargado de ventas y
Número: 9
operaciones, Encargado de bodega.
Nombre de Historia: Registro de Proveedor
Puntos Estimados: 1 Prioridad de negocio: Medio
Iteración asignada: 2 Riesgo de desarrollo: Media
Descripción: El sistema debe permitir al usuario el registro de los proveedores,
permitiendo además la modificación y eliminación de los mismos.
Fuente: Elaboración propia
a continuación:
84
Tabla 3.28 Historia de Usuario 10 – Facturación
HISTORIA DE USUARIO
Número: 10 Usuario: Encargado de Venta
Nombre de Historia: Módulo Facturación
Puntos Estimados: 4 Prioridad de negocio: Alta
Iteración asignada: 3 Riesgo de desarrollo: Alto
Descripción: En este módulo el sistema realizará el registro de facturas y generará
las mismas.
Observación: Debe haber una relación de factura con las ventas y clientes.
Fuente: Elaboración propia
La Tarjeta de Tarea 10.1 (Ver tabla 3.29) pertenece a la historia de usuario 10, esta describe las
Se muestra la tarjeta de tarea 10.2 (Ver tabla 3.30) perteneciente a la historia de usuario 10, que
85
Tabla 3.30 Tarjeta de Tarea 10.1 de Historia de Usuario 10
TAREA
Número de tarea: 10.2 Número de Historia: 10
Nombre de Tarea: ABM de Módulo Facturación
Tipo de Tarea: Desarrollo Puntos estimados: 8
Programador Responsable: Evelyn Angela Alanez Zenteno
Descripción: Se implementará las tareas necesarias para que el sistema
permita realizar el alta, baja y modificación del módulo de facturación.
Fuente: Elaboración propia
sistema, para que los mismos puedan realizar sus pedidos en cualquier momento y lugar, ayudando
a llevar un mejor control sobre las ventas que se realizan a cada uno. La tabla que se muestra a
En la tarjeta de tarea 11.1 (Ver tabla 3.32), se describen las tareas necesarias para la historia de
usuario de clientes.
86
Tabla 3.32 Tarjeta de Tarea 11.1 de Historia de Usuario 11
TAREA
Número de tarea: 11.1 Número de Historia: 11
Nombre de Tarea: Clientes
Tipo de Tarea: Desarrollo Puntos estimados: 3
Programador Responsable: Evelyn Angela Alanez Zenteno
Descripción: Se implementará las clases necesarias para el módulo de clientes.
Fuente: Elaboración propia
Historia de Usuario – Ventas: El sistema debe registrar las ventas que se realizan en la
sucursal de acuerdo a los productos con los que cuenta, el cual debe ser atendido por el personal
de ventas que tiene la empresa. A continuación, se muestra historia de usuario 12, Ventas (Ver
tabla 3.33):
En la tarjeta de tarea 12.1 (Ver tabla 3.34), se describen las tareas necesarias para la historia de
usuario de clientes.
87
Tabla 3.34 Tarjeta de Tarea 12.1 de Historia de Usuario 12
TAREA
Número de tarea: 12.1 Número de Historia: 12
Nombre de Tarea: Ventas
Tipo de Tarea: Desarrollo Puntos estimados: 3
Programador Responsable: Evelyn Angela Alanez Zenteno
Descripción: Se implementará las clases necesarias para el módulo de ventas.
Fuente: Elaboración propia
En esta área tanto como el personal de venta, como el administrador podrán realizar las ventas,
pues los dos tienen acceso a ventas, este acceso se dio al administrador porque en casos especiales
Historias de Usuario – Reportes: El sistema debe devolver reportes que brinden información
real y precisa para apoyar a una mejor toma de decisiones en la empresa. A continuación, se
88
La tarjeta de tarea 13.1 (Ver tabla 3.36), indica las tareas necesarias para la implementación del
La tarjeta de tarea 14.1 (Ver tabla 3.38), indica las tareas necesarias para la implementación del
89
Tabla 3.38 Tarjeta de Tarea 14.1 de Historia de Usuario 14
TAREA
Número de tarea: 14.1 Número de Historia: 14
Nombre de Tarea: Desarrollo de reportes de facturación
Tipo de Tarea: Desarrollo Puntos estimados: 3
Programador Responsable: Evelyn Angela Alanez Zenteno
Descripción: Crear las funciones necesarias a nivel vista y controlador, para que el
sistema pueda generar reportes que muestres las facturas realizadas en rangos de
fechas.
Fuente: Elaboración propia
La tarjeta de tarea 15.1 (Ver tabla 3.40), indica las tareas necesarias para la implementación del
90
Tabla 3.40 Tarjeta de Tarea 15.1 de Historia de Usuario 15
TAREA
Número de tarea: 15.1 Número de Historia: 15
Nombre de Tarea: Desarrollo de reportes de ingresos y salidas
Tipo de Tarea: Desarrollo Puntos estimados: 3
Programador Responsable: Evelyn Angela Alanez Zenteno
Descripción: Crear las funciones necesarias a nivel vista y controlador, para que el
sistema pueda generar reportes que muestren los ingresos y salidas de productos.
Fuente: Elaboración propia
91
Tabla 3.41 Resumen de Historia de Usuario
Puntos
No Nombre Prioridad Riesgo Iteraciones
estimados
Administración de
4 Media Medio 1 1
personal de trabajo
Administración de
8 Medio Medio 1 2
categorías
Reportes de ingresos y
15 Alta Medio 1 4
salidas de productos
Fuente: Elaboración Propia
92
3.2.1.4 Plan de Iteración
93
3.2.1.5 Plan de entregas
como sugiere la metodología XP. Para lograr una mejor comprensión de la funcionalidad del
sistema, manifestando de manera clara su objetivo. El diseño de los modelos está basado en el
lenguaje WebML.
Previamente, se elaboró el diagrama de contexto del sistema (Ver Figura 3.2). Éste identifica
las entidades externas que tienen vínculo con sistema y que se interrelacionan de alguna forma con
el sistema, así como los flujos de datos entre cada entidad y el sistema.
94
Figura 3.2 Diagrama de contexto del sistema
Fuente: Elaboración propia
3.2.2.1 Modelo Estructural
a nivel funcional entre estas. A continuación, se muestra el modelo Entidad Relación (Ver Figura
95
Figura 3.3 Modelo Entidad Relación E-R
Fuente: Elaboración Propia
A continuación, en la Figura 3.3 se muestra la base de datos que está asociado al sistema que
cuenta con todas las tablas con cada uno de los atributos derivados de las entidades
96
Figura 3.4 Base de Datos
Fuente: Elaboración Propia
97
3.2.2.2 Primera iteración
Entre los requisitos de la metodología WebML tenemos el modelo de presentación que vendría
a ser la representación de los diagramas de hipertexto de forma visual, al igual que se presentaran
• Tarjeta CRC
A continuación, se mostrarán las tarjetas C.R.C. de las clases principales del sistema.
➢ Clase Usuario:
98
➢ Clase Rol:
➢ Clase Menú
99
➢ Clase Personal_Trabajo
• Modelo de Hipertexto
En el diagrama que se muestra a continuación (Ver Figura 3.5) muestra la forma en que
del mismo.
100
El diagrama que se ve a continuación (Ver Figura 3.6), se muestra el módulo de administración
de roles que pertenece a la Historia de Usuario 2 y sus respectivas tareas, de manera navegacional
de menús que pertenece a la Historia de Usuario 3 y sus respectivas tareas, de manera navegacional
101
El diagrama que se ve a continuación (Ver Figura 3.8), muestra el módulo de administración
de personal de trabajo que pertenece a la Historia de Usuario 4 y sus respectivas tareas, de manera
• Modelo de Presentación
102
La pantalla de Roles del sistema (Ver Figura 3.10) muestra las opciones de agregar,
La pantalla de Menús del sistema (Ver Figura 3.11) muestra las opciones de agregar,
103
La pantalla de Personal de trabajo del sistema (Ver Figura 3.12) muestra las opciones de
• Tarjeta CRC
104
➢ Clase Sucursal
➢ Clase Inventario
➢ Clase Producto
105
➢ Clase Categoría
➢ Clase Proveedor
• Modelo de Hipertexto
106
Figura 3.13 Modelo de Hipertexto – Sucursal
Fuente: Elaboración Propia.
107
Figura 3.15 Modelo de Hipertexto – Producto
Fuente: Elaboración Propia.
108
Figura 3.17 Modelo de Hipertexto – Proveedor
Fuente: Elaboración Propia.
• Modelo de presentación
Sucursal:
La pantalla de Inventario del sistema (Ver Figura 3.19) la forma en que se almacenará
los productos.
109
Figura 3.19 Modelo de Presentación – Inventario
Fuente: Elaboración Propia.
Productos.
Categorías.
110
Figura 3.21 Modelo de Presentación – Categoría
Fuente: Elaboración Propia.
Proveedor.
111
3.2.2.4 Tercera Iteración
• Tarjeta CRC
➢ Clase Factura
➢ Clase Cliente
112
➢ Clase Venta
• Modelo de Hipertexto
113
Figura 3.24 Modelo de Hipertexto – Cliente y Venta
Fuente: Elaboración Propia.
• Modelo de presentación
La pantalla de Ventas (Ver Figura 3.25) muestra los campos que se tendrá en el
momento de registrar las ventas diarias. Esta información almacenada tendrá la opción
114
3.2.2.5 Cuarta Iteración
• Tarjeta CRC
115
➢ Clase Reportes de Ingresos y Salidas de productos
• Modelo Hipertexto
El siguiente diagrama (Figura 3.26) muestra los reportes de inventarios que corresponde
116
Figura 3.27 Modelo de Hipertexto – Reportes de Factura
Fuente: Elaboración Propia.
El siguiente diagrama (Figura 3.28) se muestra los reportes de ingresos y salidas que
• Modelo de presentación
inventarios:
117
Figura 3.29 Modelo de Presentación – Reporte de Inventarios
Fuente: Elaboración Propia.
118
3.2.2.6 Diagramas de casos de uso
Para apoyar la fase de diseño, se hará uso de los diagramas de casos de uso del Lenguaje de
Modelado Unificado (UML) que permiten representar que hará el sistema, pero no como funciona.
119
Figura 3.32 Diagrama de caso de uso del módulo de Ventas y Facturación
Fuente: Elaboración propia
Después de que las historias han sido desarrolladas y de que se ha hecho el trabajo de diseño
preliminar, en esta fase se realiza la programación del sistema acorde al plan de entrega realizadas
120
A continuación, se muestran la captura de pantalla de inicio del sistema (Ver Figura 3.33), en
121
A continuación, se muestra la pantalla del módulo de administración de roles (Ver Figura 3.35):
Menús:
122
En la siguiente Figura observamos el registro del personal de trabajo (Ver Figura 3.37):
123
Figura 3.39 Pantalla – Inventario
Fuente: Elaboración propia
Categorías:
124
Figura 3.41 Pantalla – Categorías
Fuente: Elaboración propia
A continuación, se muestra la pantalla del módulo de registro de Proveedor (Ver Figura 3.42):
125
Figura 3.43 Pantalla – Factura
Fuente: Elaboración propia
En la siguiente Figura observamos Reportes de ingresos y salidas de productos (Ver Figura 3.45).
126
Figura 3.45 Pantalla – Reportes
Fuente: Elaboración propia
Para esta fase se va a realizar una serie de pruebas hechas a los módulos ya implementados
aceptación, a continuación, se presentan todas las tarjetas de aceptación, que fueron calificadas
Las pruebas de aceptación fueron creadas en base a las historias de usuarios, en las distintas
iteraciones que se tuvo, para ver la correcta implementación de una historia de usuario por parte
del cliente. Este tipo de pruebas fueron realizadas para cada entrega del software en las distintas
iteraciones que se tuvo, ya que fueron definidas en el reverso de cada historia de usuario.
Las siguientes Figuras muestran todas las pruebas de aceptación requeridas por el cliente en
127
Administración de usuarios: Esta prueba (Ver tabla 3.59) busca encontrar todo tipo de errores
128
Administración de roles: La prueba de aceptación 2 comprueba la funcionalidad de las
ejecuciones de cada función asociada de la historia de usuario 2, que luego de haber realizado las
ejecuciones de cada función asociada de la historia de usuario 3, que luego de haber realizado las
129
Tabla 3.61 Prueba de Aceptación – Administración de menús
CASO DE PRUEBA DE ACEPTACIÓN
Código: 3 Historia de Usuario: H3: Administración de menús
Descripción:
• Controlar que realice la ABM de menús de manera correcta.
• Controlar que los menús sean correctamente asignados a los roles.
Condiciones de Ejecución: Servidor ejecutándose, ingresar al Módulo de menús.
Entrada/ Pasos de ejecución: Gerente, Administrador del sistema pueden realizar
cambios en a los menús de cada rol.
Resultado Esperado: El sistema responde de manera correcta al alta, baja y
modificación de menús y la correcta asignación de roles.
Evaluación de la Prueba: Aceptada
Fuente: Elaboración propia
Administración de personal de trabajo: Esta prueba (Ver tabla 3.62) busca encontrar todo tipo
de errores que se generen durante el proceso de registro, modificación y eliminación de los datos
130
Tabla 3.62 Prueba de Aceptación – Personal de trabajo
CASO DE PRUEBA DE ACEPTACIÓN
Código: 4 Historia de Usuario: H4: Administración de usuarios
Descripción:
• Controlar el registro del personal de manera correcta.
• Controlar la baja del personal.
Condiciones de Ejecución: Servidor ejecutándose, ingresar al módulo de personal de
trabajo.
Entrada/ Pasos de ejecución: Gerente, Administrador del sistema y el personal que
tenga asignado y su rol este Módulo puede realizar cambios en la información de algún
empleado.
Resultado Esperado: El sistema responde al correcto registro de personal, así como la
modificación de los registros, mostrando información correcta y actualizada sobre el
personal de la empresa.
Evaluación de la Prueba: Aceptada
Administración de sucursal: Esta prueba (Ver tabla 3.63) busca encontrar todo tipo de errores
que se generen durante el proceso de registro, modificación y eliminación de los datos de las
sucursales.
131
Tabla 3.63 Prueba de Aceptación – Administración de sucursal
CASO DE PRUEBA DE ACEPTACIÓN
Código: 5 Historia de Usuario: H5: Administración de sucursal
Descripción:
• Controla el registro de cada sucursal de manera correcta.
• Mostrar un mensaje de confirmación una vez que se haya hecho el registro
correctamente.
Condiciones de Ejecución: Servidor ejecutándose, ingresar al sistema con los datos
correctos.
Entrada/ Pasos de ejecución: Gerente, Administrador del sistema, jefe de ventas y
operaciones, Encargado de almacén,
Resultado Esperado: El sistema responde al ingreso de datos, así como el correcto
registro de una nueva sucursal.
Evaluación de la Prueba: Aceptada
Fuente: Elaboración propia
132
Tabla 3.64 Prueba de Aceptación – Inventario
CASO DE PRUEBA DE ACEPTACIÓN
Código: 6 Historia de Usuario: H6: Inventarios de productos
Descripción:
• Controlar que el registro de nuevos productos de manera correcta.
• Controlar la correcta actualización del stock de productos.
• Contar con información correcta sobre los datos de los productos
registrados en el sistema.
Condiciones de Ejecución: Servidor ejecutándose, ingresar al Módulo de inventarios.
Entrada/ Pasos de ejecución: El Gerente, encargado de bodega, encargado de ventas
y operaciones, además del personal que tenga asignado en su rol este módulo puede
realizar cambios en la información de los productos.
Resultado Esperado: El sistema responde al correcto registro de nuevos productos,
así como la correcta actualización del stock de los productos cuando se realiza la
aprobación de un pedido realizado por algún cliente, mostrando información correcta y
actualizada.
Evaluación de la Prueba: Aceptada
Fuente: Elaboración propia
133
Tabla 3.65 Prueba de Aceptación – Producto
CASO DE PRUEBA DE ACEPTACIÓN
Código: 7 Historia de Usuario: H7: Registro de productos
Descripción:
• Verificar que los precios de los productos sean correctos.
• Verificar que se realice el correcto registro de productos, mostrando un
mensaje de confirmación una vez que se haya hecho el registro.
• Controlar que se realice de manera correcta la baja y modificación de
productos
Condiciones de Ejecución: Servidor ejecutándose, ingresar al Módulo de productos.
Entrada/ Pasos de ejecución: El encargado de ventas y operaciones y el Encargado de
bodega y el personal autorizado realiza la alta, baja y modificación de productos al
sistema.
Resultado Esperado: El sistema responde al correcto registro de productos, así como
la modificación y eliminación de los registros.
Evaluación de la Prueba: Aceptada
Fuente: Elaboración propia
Administración de categorías: Esta prueba de aceptación (Ver tabla 3.66) hará una evaluación
134
Tabla 3.66 Prueba de Aceptación – Categoría
CASO DE PRUEBA DE ACEPTACIÓN
Historia de Usuario: H8: Administración de
Código: 8
categorías
Descripción:
• Controlar y verificar ABM de categorías.
Condiciones de Ejecución: Servidor ejecutándose, ingresar al Módulo de categorías.
Entrada/ Pasos de ejecución: El encargado de bodega o el personal encargado realiza
el registro de un nuevo título y modificación a un registro.
Resultado Esperado: El sistema responde al correcto registro de categorías y
modificaciones realizadas.
Evaluación de la Prueba: Aceptada
Fuente: Elaboración propia
Registro de proveedor: Esta prueba de aceptación (Ver tabla 3.67) hará una evaluación sobre el
135
Tabla 3.67 Prueba de Aceptación – Proveedor
CASO DE PRUEBA DE ACEPTACIÓN
Código: 9 Historia de Usuario: H9: Registro de proveedor
Descripción:
• Controlar que el registro de proveedores de manera correcta.
• Controlar la baja de proveedores
• Contar con información correcta sobre los datos del proveedor registrado en el
sistema.
Condiciones de Ejecución: Servidor ejecutándose, ingresar al Módulo de proveedores.
Entrada/ Pasos de ejecución: El personal que tenga asignado en su rol este módulo
puede realizar cambios en la información de algún proveedor.
Resultado Esperado: El sistema responde al correcto registro de los datos de los
proveedores, así como la modificación y eliminación de los registros, mostrando
información correcta y actualizada.
Evaluación de la Prueba: Aceptada
Fuente: Elaboración propia
Módulo Facturación: Esta prueba de aceptación (Ver tabla 3.68) hará una evaluación sobre el
136
Tabla 3.68 Prueba de Aceptación – Módulo facturación
CASO DE PRUEBA DE ACEPTACIÓN
Código: 10 Historia de Usuario: H10: Módulo de Facturación
Descripción:
• Controlar que el registro de facturas manera correcta.
Condiciones de Ejecución: Servidor ejecutándose, ingresar al Módulo de facturación.
Entrada/ Pasos de ejecución: El personal que tenga asignado en su rol este módulo
puede realizar cambios en la información de algún dato en facturas.
Resultado Esperado: el sistema responde al correcto registro y realización de facturas
Evaluación de la Prueba: Aceptada
Fuente: Elaboración propia
Cliente: La siguiente prueba de aceptación (Ver tabla 3.69) pertenece a la historia de usuario de
Ventas: La siguiente prueba de aceptación (Ver tabla 3.70) pertenece a la historia de usuario de
137
Tabla 3.70 Prueba de Aceptación – Ventas
CASO DE PRUEBA DE ACEPTACIÓN
Código: 12 Historia de Usuario: H12: Ventas
Descripción:
• Controlar que se registre de manera correcta.
Condiciones de Ejecución: Servidor ejecutándose.
Entrada/ Pasos de ejecución: El personal que tenga asignado en su rol el módulo de
facturas puede realizar cambios en la información de las ventas.
Resultado Esperado: el sistema responde al correcto registro ventas ya que va
relacionado con facturas
Evaluación de la Prueba: Aceptada
Fuente: Elaboración propia
138
Reporte de facturación: A continuación, se muestra la prueba de aceptación de la historia de
139
Tabla 3.73 Prueba de Aceptación – Reportes de Entradas y Salidas
CASO DE PRUEBA DE ACEPTACIÓN
Historia de Usuario: H15: Reportes de entradas y
Código: 15
salidas
Descripción:
• Controlar que se genere el reporte mostrando datos correctos.
Condiciones de Ejecución: Servidor ejecutándose, ingresar al módulo de reporte de
entradas y salidas.
Entrada/ Pasos de ejecución: El Gerente, Encargado de almacén acceden al módulo y
el personal que tenga asignado a su rol este módulo.
Resultado Esperado: El sistema muestra información real en los reportes de entradas
y salidas.
Evaluación de la Prueba: Aceptada
Fuente: Elaboración propia
140
CAPÍTULO IV MÉTRICAS DE CALIDAD
4.1 Introducción
Los sistemas Web están en constante crecimiento, por tanto, la utilización sistemática y
obligatorio, principalmente en los proyectos de mediana o gran escala. Una de las metas principales
dados.
4.2 Calidad
atributos internos (típicamente, medidas estáticas de productos intermedios), o puede ser evaluada
midiendo atributos externos (típicamente, medidas de comportamiento del código cuando se está
de uso particular.
observa la necesidad de contar con la metodología cuantitativa, integrada, flexible y robusta, que
141
Las metodologías para evaluar la calidad de uso que se adoptara en el presente proyecto
En esta fase se sigue los pasos y actividades para la evaluación de la calidad utilizando la
teniendo como base el árbol propuesto por las metodologías Web-Site QEM.
la siguiente tabla.
142
Tabla 4.1. Árbol de requerimientos de calidad para el Sistema Integrado Académico
143
4.3.2 Criterio de preferencia de calidad elemental
Para esta fase se determina los criterios de evaluación cuantificable, que se aplicara en los
Se debe determinar los valores de las variables de preferencias de calidad elemental (IEi) para
cada atributo Ai (hojas de árbol de requerimientos, es importante mencionar que cada atributo Ai
tendrá asociado una variable Xi ∈ R, que tomará un valor real a partir de un proceso de medición
el cual producirá un valor de IEi que interpreta el porcentaje del requerimiento satisfecho).
Se debe especificar los atributos del árbol existente para encontrar los índices de calidad
elemental (IEi), estos índices se utilizaron en los diferentes criterios de evaluación descritos a
continuación.
X = ∑𝑃𝑢𝑛𝑡𝑎𝑗𝑒 𝑚á𝑥𝑖𝑚𝑜
Y = ∑𝑃𝑢𝑛𝑡𝑎𝑗𝑒 𝑜𝑏𝑡𝑒𝑛𝑖𝑑𝑜
CN (Criterio Normalizado):
144
Indicador Elemental (IE) = (X/Y) *100% Donde:
CB (Criterio Binario):
Partiendo el árbol de requerimientos para cada uno de los atributos Ai determinar la variable Xi
Asimismo, para cada variable Xi se deberá hacer corresponder una preferencia elemental IEi,
(Ver tabla 4.2) donde se muestra los valores de los criterios elementales para cada uno de los
145
Tabla 4.2. Resultados de preferencia elementales de Usabilidad
La tabla 4.3 muestra los valores de los criterios elementales para cada uno de los atributos la
característica de la funcionalidad.
146
Fuente: Elaboración propia
La tabla 4.4 muestra los valores de los criterios elementales para cada uno de los atributos la
característica de la confiabilidad.
147
Tabla 4.4. Resultados de preferencia elementales de Confiabilidad
La tabla 4.5 muestra los valores de los criterios elementales para cada uno de los atributos la
característica de la eficiencia.
Los valores obtenidos en la evaluación elemental se resumen (Ver tabla 4.6) para obtener la
148
Para hallar la calidad global del sistema, obtenemos el promedio porcentual de todas las
métricas ya realizadas.
378.33%
𝐶𝑎𝑙𝑖𝑑𝑎𝑑𝐺𝑙𝑜𝑏𝑎𝑙 =
4
De acuerdo a la valoración de la calidad del sitio web, aplicando la metodología Web-Site QEM
el valor obtenido de la calidad global es 82.28%, el cual está definido dentro de los márgenes de
149
CAPÍTULO V EVALUACIÓN DE COSTO Y BENEFICIO
5.1 Introducción
La técnica de Análisis de Costo y Beneficio, tiene como objetivo fundamental proporcionar una
medida de la rentabilidad de un proyecto, mediante la comparación de los costos previstos con los
beneficios esperados en la realización del mismo. Esta técnica se debe utilizar al comparar
software es la estimación, la cual cosiste en determinar, con cierto grado de certeza, los recursos
de hardware y software, costo, tiempo y esfuerzo necesario para el desarrollo de los mismos.
tamaño del proyecto en líneas de código principalmente. El modelo provee tres niveles de
aplicación: Básico, Intermedio y Avanzado, basándose en los factores considerados por el modelo.
𝐸 = 𝑎 ∗ 𝐾𝐿𝑂𝐶 𝑏
𝐷 = 𝑐 ∗ 𝐸𝑑
150
𝑃 = 𝐸/𝐷
KLOC es el número de líneas de código estimadas para el proyecto (en miles) y P es el número de
55.76
𝑃= = 4.84 𝑃𝑒𝑟𝑠𝑜𝑛𝑎𝑠
11.52
Para mejorar esta estimación aplicamos el modelo intermedio Post-Arquitectura este añade al
modelo básico quince modificadores opcionales para tener en cuenta en el entorno de trabajo,
151
Tabla 5.2 Selección de multiplicadores de Esfuerzo
Tenemos cantidad de líneas de código físicas 20000 LDC lo que equivale a 20 KLDC, usaremos
el tipo orgánico ya que nuestro proyecto no supera las 50 KLCD, y es el más apropiado en este
152
Tabla 5.3 Coeficientes, Modelo Intermedio
E = 3.20 ∗ 201.05 (0.88 ∗ 1 ∗ 1 ∗ 1.11 ∗ 1 ∗ 1 ∗ 1.07 ∗ 0.86 ∗ 1 ∗ 0.86 ∗ 1 ∗ 0.95 ∗ 0.91 ∗ 0.83 ∗ 1)
El tiempo de desarrollo 𝑫 = 𝒄 ∗ 𝑬𝒅
𝐸 41.23
Número de personas necesarias 𝑝 = 𝐷 = 10.27 = 4.01 personas
valor muy subjetivo, se da valor según la oferta de los programadores en el mercado de 1300 Bs.
Realizando los costos necesarios para implantar el sistema se tiene la siguiente tabla:
153
Lo que nos lleva a que el costo estimado es de 25000 Bs.
5.2.2 Beneficios
Para evaluar el beneficio se calculará con el método del Valor Actual Neto (VAN) y la tasa
rentabilidad de una inversión. Como su nombre indica, trata de determinar el valor que ahora tiene
la inversión sobre la base de los importes que se percibirán en plazos determinados. Para
complementar, junto a la Tasa Interna de Rentabilidad (TIR), se dará una idea bastante clara de la
El VAN se calcula por medio de los flujos de inversión, cuyo resultado refleja si la inversión
𝐺𝑎𝑛𝑛𝑐𝑖𝑎𝑠
𝑉𝐴𝑁 = ∑ (1+𝑘) 𝑛
−1o
Donde:
154
Los valores de ganancia esperados para el presente proyecto se calculan para 4 años, para este
caso en particular utilizaremos una tasa de descuento del 11%, ya que es la tasa actual de interés
de préstamo en las entidades financieras. Para calcular el valor del VAN se tiene lo siguiente:
TD = 11%
Como el valor obtenido del VAN es mayor a cero, se puede afirmar que el proyecto es rentable.
El TIR es una tasa de descuento TD de un proyecto de inversión para que sea rentable. Cuando
el VAN toma un valor igual a 0, k pasa a llamarse TIR. En términos generales: Las inversiones
155
• Si TIR es inferior a la tasa de descuento de la empresa, la inversión debería ser
desestimada.
𝑄1 𝑄2 𝑄𝑛
𝑇𝐼𝑅 = −10 + 1
+ 2
+ ⋯+
(1 + 𝐾 ) (1 + 𝑘 ) (1 + 𝑘 )𝑛
Para hallar el TIR se hace uso de la fórmula del VAN, solo hace que el valor de VAN sea igual
TIR= 34%
Se tiene en el cálculo que la tasa interna de retorno es superior a la tasa de descuento; por lo
𝐶: 𝐶𝑜𝑠𝑡𝑜
B: Beneficio
156
Reemplazando los valores previamente calculados en la ecuación, tenemos:
𝐶 25000
= = 0.25
B 98491.31
Por tanto, por cada boliviano invertido, la empresa tiene una ganancia de 0.25 ctvs.
157
CAPÍTULO VI SEGURIDAD DEL SISTEMA
6.1 Introducción
Así también, se tomó en cuenta aspectos como; la seguridad física (Infraestructura), la seguridad
lógica, misma que es catalogada por niveles y se hace uso de las recomendaciones que propone la
metodología OWASP,
La Red de Ópticas “Virtual” cuenta con un circuito cerrado de cámaras de video vigilancia en
cada sucursal, mismas que están instaladas tanto en el exterior como en el interior de cada una.
En esta parte, se tomó en cuenta los siguientes aspectos, la seguridad a nivel del sistema
operativo, seguridad a nivel del sistema de gestión de la base de datos y a nivel de la aplicación
desarrollada.
Las medidas de seguridad que se tomaron para evitar vulnerabilidades a nivel del sistema
158
▪ Colocación de un pasword.
Cabe mencionar que todas las computadoras de empresa cuentan con un sello de garantía.
En este tipo de nivel las medidas que se tomaron fueron las siguientes:
▪ Se deshabilitó cualquier acceso vía http tanto a la parte de administración como a la API
Rest.
▪ Se creó el usuario admin con el role “root” en la base de datos admin, para que solo este
159
6.1.2.3 Seguridad a Nivel Aplicación desarrollada (OWASP)
Para este nivel lo que se hizo fue utilizar las recomendaciones de la metodología OWASP, las
• Pentest Externo: El objetivo de este tipo de test, es acceder en forma remota a los
enumerando las mismas o bien obteniéndolas del código fuente de una URL
activa.
o Path Truncation: Se intentó truncar las URLs activas para obtener el listado de
o Hidden Web Paths: Se intentó identificar paths, referencias dentro del código
autorizadas.
160
Como conclusión de esta fase, se pudo determinar que el nivel de probabilidad de riesgo es
medio.
latente y sujeto a programas que intenten descubrir la contraseña por fuerza bruta.
diferentes IP sean estas internas o externas. Por lo que se determinó que el nivel de
FrameScripting (XFS). Es decir que los atacantes no pueden aprovecharse de las fallas
que tengan algunos navegadores para acceder a los datos privados de un tercer sitio web.
▪ Pérdida de Control de Acceso: A través de este tipo de prueba lo que se hizo fue buscar
la elevación de privilegios, es decir, actuar como un usuario sin iniciar sesión o actuar
como un administrador con una cuenta estándar. Así también se verifico el acceso
no le corresponde, para ello se hizo uso del método de inyección Json. Esta prueba
161
corresponde a la recomendación OWASP A5. Al finalizar las pruebas se concluyó que
las pruebas realizadas se determinó que tiene una probabilidad de riesgo media.
se verifico los inicios de sesión, los fallos a la hora de iniciar sesión, las advertencias,
los umbrales de alerta y las pruebas de penetración que se realizaron con diferentes
acerca de actividades que se realizan en el sistema, por lo cual se determinó que el grado
de probabilidad de riesgo es alto, pero el impacto a nivel del negocio es mediano. Esta
162
6.1.2.4 Ataque Interno
En esta etapa lo que se hizo fue utilizar puentes internos para determinar las vulnerabilidades y
la seguridad interna.
Se estableció que puede hacer un atacante interno y hasta donde es capaz de penetrar en el
sistema siendo un usuario con privilegios bajos. Este test también incluyó pruebas de:
▪ Autenticación de usuarios
163
CAPÍTULO VII CONLUSIONES Y RECOMENDACIONES
7.1 Conclusiones
de la empresa Red de Ópticas “VIRTUAL” fue exitoso, lográndose alcanzar el objetivo general
▪ Se estableció los accesos y permisos adecuados para los diferentes roles de usuarios,
Es importante destacar que hoy en día para que una empresa sea altamente competitiva es
necesario contar con información acertada, el sistema implementado según a las necesidades y
requerimientos de la empresa cumple con todos los objetivos planteados, de manera que la
164
información se encuentre a disposición del cliente para un mejor control de sus procesos. Esto se
mejorar y automatizar sus procesos, así como, la integración de metodologías y arquitecturas como
en este caso fueron XP, WebML, lograron el buen desarrollo del proyecto y la integración de
información.
7.2 Recomendaciones
A partir del presente trabajo, en cuanto a la empresa Red de Ópticas” VIRTUAL” en general se
165
BIBLIOGRAFÍA
Brambilla M., Butti S. 2006 Quince años de desarrollo industrial model -driven de
aplicaciones front-end: desde webml hasta WebRatio e IFML, Politécnico
Milano, Milán Italia
Silvera, J. A., Figueroa, D., Gil, G., Diaz, M., Villanueva, E., Gonzales, V., Gil, D.
y Chauque, E. (2015). Metodología WEBML aplicada a un sistema de gestión
de calidad en centros de investigación. Facultad de Ciencias Exactas
Universidad Nacional de Salta.
166
Álvarez, J. R., & Arias, M. (s.f.). “Método Extreme Programming”. Recuperado de:
http://www.ia.uned.es/ia/asignaturas/adms/GuiaDidADMS/node61.html`
Álvarez, J. R., & Arias, M. (s.f.). “Método Extreme Programming”. [en línea]
<http://www.ia.uned.es/ia/asignaturas/adms/GuiaDidADMS/node61.html/>`
[16 de 05 de 2015]
167
Fowler, M. y Beck, K. (2002). Refactoring: Improving the Design of Existing Code,
Addison Wesley. Recuperado de:
https://www.csie.ntu.edu.tw/~r95004/Refactoring_improving_the_design_of_
existin g_code.pdf
168
Loraine, G. (2012). Metodologías agiles y desarrollo basado en conocimiento.
Facultad de Informática Universidad Nacional de la Plata. Recuperado de:
http://sedici.unlp.edu.ar/bitstream/handle/10915/24942/Documento_completo
__.pdf %3Fsequence%3D1
169
Montoya, C. A. y Boyero M. R. (2011). Los sistemas de información como
herramienta para la competitividad organizacional. Recuperado de
http://www.ceipa.edu.co/lupa/index.php/lupa/article/view/120/235
Muugesan, S., Deshpande, Y., Hansen, S. & Ginige, A. (2001). Web Engineering: A
new discipline for development of web -based systems
170
http://repositorio.umsa.bo/bitstream/handle/123456789/8701/T.2715.pdf?sequ
ence= 1
Silvera, J. A., Figueroa, D., Gil, G., Diaz, M., Villanueva, E., Gonzales, V., Gil, D.
y Chauque, E. (2015). Metodología WEBML aplicada a un sistema de gestión
de calidad en centros de investigación. Facultad de Ciencias Exactas
Universidad Nacional de Salta. Recuperado de:
http://sedici.unlp.edu.ar/bitstream/handle/10915/45929/Documento_completo.
pdf?s equence=1
171
ANEXOS
172
ANEXO B – ÁRBOL DE OBJETIVOS
173
ANEXO C – MARCO LÓGICO
174
DOCUMENTACIÓN