Está en la página 1de 104

UNIVERSIDAD DE GUANTÁNAMO

FACULTAD DE INGENIERÍA Y CIENCIAS TÉCNICAS

OPTIMIZACION DE LOS PROCESOS DE REPARACIONES ELECTRONICAS EN UN TALLER

ESPECIALIZADO

TESIS

Para optar por el título Profesional de Ingeniero de Sistemas

Edrianni Cruzata Downer

ASESOR

YENNI

Guantanamo, 2023
DEDICATORIA

Dedicado con amor y gratitud a mi amado hijo,

Hoy, al culminar este importante capítulo en mi vida académica, quiero dedicar esta tesis no solo como un
logro personal, sino como un homenaje a aquellos seres queridos que han sido mi apoyo incondicional a lo
largo de este camino.

A ti, mi querido hijo, eres la razón por la cual nunca me he rendido, por la cual me he esforzado en cada
desafío que se ha presentado. Tu sonrisa y tus abrazos, llenos de amor y ternura, me han dado la fuerza
para persistir incluso en los momentos más difíciles. Espero que esta tesis te inspire a perseguir tus propios
sueños, saber que no hay límites para lo que puedes lograr si te esfuerzas y crees en ti mismo.

A mi amada esposa, mi compañera de vida y mi mayor apoyo. Tú has estado a mi lado en cada paso de
este camino, alentándome, brindándome tu sabiduría y dándome tu amor incondicional. Tu paciencia,
comprensión y sacrificio han sido fundamentales para que pueda dedicar tiempo y esfuerzo a este proyecto.
Esta tesis es también tuya, porque tu amor y apoyo constante han sido mi motor para alcanzar el éxito.

Mis padres, mis pilares y fuente de inspiración. A ustedes, quienes siempre han creído en mí, quienes me
han enseñado los valores del esfuerzo, la dedicación y la perseverancia. Gracias por alentarme a seguir
mis sueños y por inculcarme la importancia de la educación. Esta tesis es el fruto de sus enseñanzas y del
amor inmenso que me han brindado a lo largo de los años.

A mi querida hermana, con quien he compartido risas, juegos y también desafíos. Eres mi compañera de
aventuras, mi confidente y amiga incondicional. Tu apoyo y palabras de aliento siempre han estado
presentes, y esta tesis es también un reconocimiento a nuestra unión y al vínculo profundo que nos une.

Por último, pero no menos importante, quiero rendir homenaje a mis dos queridos abuelos, aquellos seres
sabios que han dejado una huella imborrable en mi corazón. Sus historias de vida, su sabiduría y su amor
desinteresado me han inspirado siempre a seguir aprendiendo y creciendo. Su presencia y sus enseñanzas
viven en mi corazón y en cada paso que doy.

A todos ustedes, mi hijo, esposa, padres, hermana y abuelos, les agradezco de todo corazón por su amor,
paciencia, apoyo y creencia en mí. Esta tesis no solo habla de mis logros, sino también de lo valioso que ha
sido cada uno de ustedes en mi camino. Su amor incondicional y confianza en mí han sido el motor que me
ha impulsado a alcanzar mis metas.

Que esta tesis sea un tributo a nuestra unión como familia, una muestra de gratitud y reconocimiento por
su amor y sacrificio. Les dedico cada logro y cada palabra escrita, sabiendo que sin ustedes, nada de esto
sería posible.

Con todo mi amor y gratitud,

Edrianni Cruzata Downer


AGRADECIMIENTOS
Dedicado con profundo agradecimiento a mis valiosos asesores, profesores y compañeros de estudio,

Hoy, al llegar a la culminación de este importante proyecto académico, quiero expresar mi más sincero
agradecimiento a todos aquellos que han sido parte fundamental de mi travesía académica. Vuestra guía,
apoyo y contribuciones han sido inestimables, y sin ustedes, este logro no habría sido posible.

En primer lugar, quiero agradecer a mis asesores, quienes han sido mis guías y mentores a lo largo de este
viaje. Vuestra sabiduría, paciencia y dedicación me han ayudado a desarrollar y profundizar mis
conocimientos en mi campo de estudio. Vuestras valiosas orientaciones, correcciones y sugerencias han
sido fundamentales para centrar mis esfuerzos y mejorar la calidad de mi trabajo. Agradezco sinceramente
vuestro tiempo, compromiso y la confianza que depositaron en mí.

A mis queridos profesores, quienes han compartido su vasto conocimiento y experiencia conmigo, les
agradezco por su entrega incondicional y por su pasión por la enseñanza. Vuestras lecciones y enseñanzas
me han enriquecido intelectualmente y me han impulsado a superar mis límites. Su dedicación para
transmitir vuestro saber ha sido inspiradora y ha dejado una huella imborrable en mi formación académica.
Cada uno de ustedes ha contribuido a mi crecimiento como estudiante y como persona, y les estaré
eternamente agradecido por eso.

A mis queridos compañeros de estudio, quienes han compartido conmigo las alegrías, las dificultades y los
desafíos de este camino académico, quiero agradecerles por su amistad, colaboración y compañerismo. Los
momentos de estudio en grupo, las discusiones enriquecedoras y las experiencias compartidas han sido
fundamentales para mi desarrollo integral. Vuestro apoyo mutuo y aliento constante han convertido este
viaje en una experiencia verdaderamente significativa. Agradezco cada palabra de aliento y cada
intercambio de ideas, así como la oportunidad de crecer y aprender juntos.

También quiero expresar mi gratitud a todos aquellos que, de una manera u otra, han contribuido a mi
progreso académico y personal. Agradezco a mi familia y seres queridos por su amor incondicional, su
apoyo constante y su comprensión durante este tiempo de dedicación y esfuerzo. Vuestra presencia ha sido
mi mayor fortaleza y el motor que me ha impulsado a alcanzar mis metas.

Agradezco también a las instituciones educativas y a todas las personas que, de manera indirecta, han
influido en mi formación académica. Vuestras contribuciones han ayudado a enriquecer mi aprendizaje y a
expandir mis horizontes.

En resumen, mi más profundo agradecimiento a mis asesores, profesores y compañeros de estudio por ser
parte esencial de mi travesía académica. Vuestra influencia ha dejado una marca indeleble en mi camino, y
vuestro apoyo ha sido un pilar fundamental en mi crecimiento y evolución. Estoy agradecido por vuestra
confianza, paciencia y dedicación sincera.

Que este agradecimiento extenso sea una muestra palpable de mi gratitud hacia cada uno de ustedes. Mi
logro no habría sido posible sin vuestra valiosa contribución. Llevaré conmigo los conocimientos
adquiridos, las lecciones aprendidas y los recuerdos compartidos durante este tiempo. Espero que nuestras
trayectorias sigan cruzándose en el futuro y que podamos celebrar muchos más logros juntos.
Con mi más profundo agradecimiento,

Edrianni Cruzata Downer

RESUMEN
La presente tesis aborda el diseño y desarrollo de un sistema de optimización de los procesos de
reparaciones electrónicas en un taller especializado, utilizando como tecnología principal el lenguaje de
programación Python, el marco de trabajo FastApi como tecnología del lado del servidor, y la librería
JavaScript Bootstrap, CSS, HTML para el lado del cliente, siguiendo el enfoque de la metodología XP
El objetivo principal de este sistema es mejorar la eficiencia y calidad de los servicios de reparación en el
taller especializado, automatizando y optimizando cada etapa del proceso. Para ello, se realizó un análisis
exhaustivo de los procesos actuales de reparación, identificando áreas de mejora y proponiendo soluciones
orientadas a la eficiencia y ahorro de tiempo.

La implementación del sistema se realizó utilizando Python como lenguaje de programación principal,
aprovechando las características de este lenguaje como su versatilidad y capacidad de integración con bases
de datos y otros caracteristicas que lo hacen uno de los lenguajes mas potentes hoy en dia. Se utilizó el
marco de trabajo FastApi para facilitar el desarrollo y organización del código, así como para mejorar la
seguridad y la escalabilidad del sistema.

En el lado del cliente, se empleó la librería JavaScript Bootstrap junto a CSS y HTML para mejorar la
interfaz de usuario y proporcionar una experiencia más amigable al usuario final. Este conjunto permitió la
implementación de elementos visuales modernos, como ventanas emergentes, menús desplegables y diseño
que en un futuro contara concaracteristicas responsivas

Además, el sistema se enmarcó en la metodología XP, siguiendo sus principios y etapas. Se realizó un
análisis de requisitos detallado, seguido de un diseño arquitectónico, desarrollo iterativo e implementación
gradual del sistema. Esto permitió una mayor flexibilidad y adaptabilidad a medida que se incorporaban
nuevas funcionalidades y se realizaban ajustes según las necesidades específicas del taller especializado.

Como resultado de la implementación del sistema de optimización de los procesos de reparaciones


electrónicas, se logró un incremento notable en la eficiencia y calidad de los servicios de reparación. Los
tiempos de respuesta se redujeron considerablemente, al igual que los errores y retrabajos asociados.
Además, se mejoró la gestión de los recursos disponibles y se optimizó la asignación de tareas, lo que
resultó en una mayor productividad y satisfacción tanto para los técnicos de reparación como para los
clientes.

En conclusión, este sistema de optimización de los procesos de reparaciones electrónicas demostró ser una
solución efectiva para mejorar la eficiencia y calidad de los servicios en un taller especializado. Al
aprovechar el lenguaje Python, el marco de trabajo FastApi y la librería JavaScript Bootstrap junto a CSS y
HTML, se logró una implementación robusta y eficiente. El enfoque de la metodología XP garantizó la
adecuacion y estructurada para el diseño y desarrollo del sistema. Los resultados obtenidos demuestran
claramente los beneficios que aporta este sistema al taller especializado, al tiempo que sientan las bases
para futuras mejoras y optimizaciones.

Palabras Claves:
Metodología XP, JavaScript Bootstrap, FastApi, CSS, HTML
ABSTRACT

This thesis addresses the design and development of an optimization system for electronic repair processes in a
specialized workshop, using the Python programming language as the main technology, the FastApi
framework as server-side technology, and the JavaScript library. Bootstrap, CSS, HTML for the client side,
following the XP methodology approach
The main objective of this system is to improve the efficiency and quality of repair services in the specialized
workshop, automating and optimizing each stage of the process. To this end, an exhaustive analysis of the
current repair processes was carried out, identifying areas for improvement and proposing solutions aimed at
efficiency and time savings.

The implementation of the system was carried out using Python as the main programming language, taking
advantage of the characteristics of this language such as its versatility and ability to integrate with databases
and other characteristics that make it one of the most powerful languages today. The FastApi framework was
used to facilitate the development and organization of the code, as well as to improve the security and
scalability of the system.

On the client side, the Bootstrap JavaScript library was used along with CSS and HTML to improve the user
interface and provide a more friendly experience to the end user. This set allowed the implementation of
modern visual elements, such as pop-ups, drop-down menus, and design that would have responsive features in
the future.

Furthermore, the system was framed in the XP methodology, following its principles and stages. A detailed
requirements analysis was performed, followed by architectural design, iterative development, and phased
implementation of the system. This allowed for greater flexibility and adaptability as new functionality was
added and adjustments were made based on the specific needs of the specialty shop.

As a result of the implementation of the electronic repair process optimization system, a notable increase in the
efficiency and quality of repair services was achieved. Response times were significantly reduced, as were
associated errors and rework. Additionally, management of available resources was improved and task
allocation was optimized, resulting in greater productivity and satisfaction for both repair technicians and
customers.

In conclusion, this system for optimizing electronic repair processes proved to be an effective solution to
improve the efficiency and quality of services in a specialized workshop. By leveraging the Python language,
the FastApi framework, and the Bootstrap JavaScript library along with CSS and HTML, a robust and efficient
implementation was achieved. The XP methodology approach guaranteed adequacy and structure for the
design and development of the system. The results obtained clearly demonstrate the benefits that this system
brings to the specialized workshop, while laying the foundations for future improvements and optimizations.

Keywords:

XP Methodology, JavaScript Bootstrap, FastApi, CSS, HTML


Índice de Figuras
Índice de tablas
Glosario de siglas
Índice
Introducción .............................................................................................................................. 1
Capítulo 1. La gestión de los Expedientes de Fase Preparatoria en el Órgano de
Investigación Criminal y Operaciones de la Provincia Guantánamo .................................... 6
1.1 Antecedentes de la Gestión de Expedientes. ................................................................ 6
1.2 La Gestión de la radicación de EFP en el órgano de investigación criminal y
operaciones ........................................................................................................................... 8
1.3 Estudio de las metodologías, herramientas y tecnologías de desarrollo más
utilizadas para la Implementación. .................................................................................... 10
Conclusiones del Capitulo ................................................................................................. 23
Capítulo 2. Sistema Informático para la Gestión de la Radicación de los expedientes de
fase preparatoria en el Órgano de Investigación Criminal y Operaciones del MININT en
Guantánamo. ........................................................................................................................... 24
2.1 Característica del sistema ............................................................................................ 24
2.2 Fase de Exploración ...................................................................................................... 24
2.3 Fase de Planificación .................................................................................................... 29
2.4 Fase de Iteración ........................................................................................................... 36
2.5 Validación de la Propuesta ........................................................................................... 49
Conclusiones del Capitulo ..................................................................................................... 51
Conclusiones Generales ........................................................................................................ 52
Recomendaciones .................................................................................................................. 53
Bibliografía .............................................................................................................................. 54
Glosario de términos .............................................................................................................. 56
Anexos....................................................................................................................................... 1
Introduccion

En la actualidad, el mundo de la tecnología avanza a pasos agigantados y cada vez son más las personas que
dependen de dispositivos electrónicos para llevar a cabo su vida cotidiana. Sin embargo, estos dispositivos
también pueden fallar y necesitar reparaciones especializadas para su correcto funcionamiento. Es aquí donde
entra en juego la importancia de los talleres especializados en reparaciones electrónicas.

Pero, ¿qué sucede cuando estos talleres no están optimizados para ofrecer un servicio rápido y eficiente? Los
clientes pueden perder la confianza en ellos y optar por buscar soluciones en otros lugares, lo que puede afectar
negativamente la reputación y el éxito del taller.

Es por eso que la optimización de los procesos de reparaciones electrónicas en un taller especializado se ha
convertido en una necesidad para aquellos que buscan destacar en este competitivo mercado. La
implementación de un sistema de optimización puede mejorar significativamente la eficiencia del taller, reducir
los tiempos de espera y aumentar la satisfacción del cliente.

Este sistema puede incluir desde la automatización de procesos hasta la utilización de herramientas y
tecnologías avanzadas para la reparación de dispositivos electrónicos. Además, también puede involucrar la
mejora en la gestión de inventarios y la formación constante del personal para asegurar un servicio de calidad.

En conclusión, la optimización de los procesos de reparaciones electrónicas en un taller especializado es


fundamental para mantenerse competitivo en el mercado actual. La implementación de un sistema de
optimización puede mejorar significativamente la eficiencia y calidad del servicio al cliente, lo que se traduce
en una mayor satisfacción y lealtad por parte de los clientes y, por ende, en el éxito del taller.

A continuación, se presentan algunas razones por las cuales se debería crear este sistema:

1. Reducción de tiempos de espera: con un sistema de control, los talleres pueden identificar rápidamente el
problema del dispositivo y ofrecer una solución en el menor tiempo posible.

2. Aumento de la satisfacción del cliente: al reducir los tiempos de espera y ofrecer un servicio de calidad, los
clientes estarán más satisfechos y tendrán más probabilidades de regresar al taller en el futuro.

3. Mejora en la gestión de inventarios: con un sistema de control, los talleres pueden llevar un registro
detallado de los dispositivos que ingresan y salen del taller, lo que les permite administrar mejor su inventario
y evitar pérdidas financieras.

4. Formación constante del personal: un sistema de control también puede incluir la capacitación regular del
personal para mantenerlos actualizados en las últimas tecnologías y técnicas de reparación.

5. Aumento de la rentabilidad: al ofrecer un servicio más eficiente y de calidad, los talleres pueden atraer a más
clientes y aumentar sus ganancias.

El problema que resuelve este sistema es la falta de eficiencia y calidad en los servicios de reparación
electrónica que ofrecen algunos talleres especializados. El objetivo final de la investigación es desarrollar un
sistema que permita optimizar los procesos de reparación electrónica en los talleres especializados para mejorar
la satisfacción del cliente y aumentar la rentabilidad del negocio.

El objeto de estudio es el proceso de reparación electrónica en talleres especializados, mientras que el campo
de acción se enfoca en la implementación de un sistema de control que permita optimizar estos procesos. La
idea a defender es que la implementación de un sistema de control puede mejorar significativamente la
eficiencia y calidad del servicio al cliente en los talleres especializados de reparación electrónica, lo que se
traduce en una mayor satisfacción y lealtad por parte de los clientes y, por ende, en el éxito del taller.
Métodos utilizados en la investigación

Durante la investigación se utilizaron los siguientes métodos de investigación del nivel teórico y del nivel
empírico.

Del nivel teorico

1. Nivel teórico por separado: en este método, se analizarán los diferentes componentes del sistema de control
de talleres de reparaciones electrónicas de manera individual para comprender su funcionamiento y cómo se
relacionan entre sí. Se utilizarán herramientas teóricas para identificar fortalezas y debilidades en cada
componente y cómo pueden mejorarse.

2. Enfoque sistemático-estructural: en este método, se analizará el sistema de control de talleres de


reparaciones electrónicas como un todo, considerando la interacción entre sus diferentes componentes. Se
utilizará un enfoque estructural para identificar los diferentes elementos que componen el sistema y cómo se
relacionan entre sí para lograr los objetivos del sistema.

3. Modelación: en este método, se utilizarán herramientas de modelado para representar el sistema de control
de talleres de reparaciones electrónicas y simular su funcionamiento. Se pueden crear modelos matemáticos o
diagramas de flujo para comprender mejor el sistema y cómo se relacionan sus diferentes componentes.

4. Análisis-síntesis: en este método, se analizarán los diferentes componentes del sistema de control de talleres
de reparaciones electrónicas y se sintetizarán soluciones para mejorar su eficiencia y calidad. Se utilizarán
herramientas analíticas para identificar problemas y soluciones, y luego se sintetizarán estas soluciones para
mejorar el sistema en su conjunto.

Del nivel Empírico


1. Entrevista: Las entrevistas son una herramienta útil para obtener información de primera mano sobre las
experiencias y necesidades de los dueños de talleres especializados en reparaciones electrónicas. A través de
las entrevistas, se pueden conocer las opiniones de los dueños de talleres sobre la gestión del sistema de
reparación, las prácticas y procedimientos utilizados en el taller, así como los desafíos y problemas que
enfrentan los técnicos. Además, las entrevistas pueden proporcionar información valiosa sobre los requisitos de
capacitación y formación para los técnicos, así como sobre las herramientas y equipos necesarios para realizar
reparaciones de alta calidad.

2. Observación: La observación directa de los procesos de reparación electrónica en talleres especializados


puede proporcionar información valiosa sobre las prácticas y procedimientos utilizados, así como sobre los
desafíos y problemas que enfrentan los técnicos. Al observar los procesos de reparación, se pueden identificar
áreas de mejora y desarrollar nuevas soluciones para problemas comunes. Además, la observación puede
ayudar a identificar áreas en las que se requiere capacitación y formación adicional para los técnicos.

3. Análisis de documentos: El análisis de documentos, como facturas, registros de reparación y manuales


técnicos, puede proporcionar información detallada sobre los procesos de reparación, los equipos utilizados y
las prácticas recomendadas. Al analizar estos documentos, se pueden identificar patrones y tendencias en las
reparaciones realizadas por el taller, lo que puede ayudar a mejorar la eficiencia y la calidad del servicio.
Además, el análisis de documentos puede proporcionar información valiosa sobre los requisitos de
capacitación y formación para los técnicos, así como sobre las herramientas y equipos necesarios para realizar
reparaciones de alta calidad.

4. Método experimental: El método experimental implica la realización de pruebas en diferentes equipos


electrónicos para evaluar la eficacia de las técnicas y procedimientos de reparación utilizados por los técnicos
de los talleres especializados. Estas pruebas pueden ayudar a identificar áreas de mejora y a desarrollar nuevas
soluciones para problemas comunes. Además, el método experimental puede proporcionar información valiosa
sobre los requisitos de capacitación y formación para los técnicos, así como sobre las herramientas y equipos
necesarios para realizar reparaciones de alta calidad. Al utilizar el método experimental, se pueden identificar
las mejores prácticas para la reparación de equipos electrónicos, lo que puede mejorar la eficiencia y la calidad
del servicio ofrecido por el taller.

Resultado esperado

El resultado esperado de la creación de un sistema para optimizar los procesos de reparaciones electrónicas en
un taller especializado sería una mejora significativa en la eficiencia y calidad del servicio ofrecido, lo que se
traduciría en una mayor satisfacción del cliente y un aumento en la rentabilidad del negocio.

Al implementar un sistema de control eficiente, se espera reducir el tiempo de reparación de los dispositivos
electrónicos, lo que permitiría atender a más clientes en el mismo periodo de tiempo. Además, se espera
mejorar la calidad de las reparaciones, reduciendo la tasa de devoluciones y aumentando la confianza del
cliente en los servicios ofrecidos.

En términos de porcentaje, se espera una mejora del 20% en la eficiencia y una reducción del 10% en la tasa de
devoluciones. Estas mejoras se traducirían en un aumento del 15% en la rentabilidad del negocio.

Crear un sistema de optimización de procesos para un taller de reparación electrónica puede tener varios
beneficios y mejoras significativas. Aquí enumero algunas de las posibles mejoras que se pueden lograr con
este sistema:

1. Eficiencia y productividad mejoradas: Un sistema de optimización de procesos puede ayudar a identificar y


eliminar cuellos de botella, reducir el tiempo de inactividad y optimizar los flujos de trabajo. Esto puede llevar
a una mayor eficiencia y productividad en el taller de reparación electrónica.

2. Tiempos de respuesta más rápidos: Al automatizar y agilizar los procesos, se pueden reducir los tiempos de
espera y mejorar los tiempos de respuesta para los clientes. Esto conduce a una mayor satisfacción del cliente y
a una ventaja competitiva en el mercado.

3. Reducción de errores y retrabajos: Al implementar un sistema de optimización de procesos, se pueden


identificar áreas propensas a errores o retrabajos, lo que permite implementar medidas correctivas y
preventivas. Esto ayuda a minimizar los errores, mejorar la calidad del trabajo y reducir los costos asociados
con el retrabajo.

4. Gestión eficiente de inventario: Un sistema de optimización de procesos puede ayudar a controlar y


gestionar de manera más efectiva el inventario de componentes y repuestos electrónicos. Esto permite
minimizar la falta de existencias o exceso de inventario, lo que a su vez reduce los costos y mejora la
planificación de compras.

5. Mejora de la comunicación interna y externa: Un sistema de optimización de procesos puede proporcionar


herramientas y canales de comunicación efectivos tanto dentro del taller como con los clientes. Esto facilita la
coordinación y colaboración interna, así como una comunicación fluida con los clientes, lo que puede mejorar
la experiencia global del servicio.

Otro sistema que sería válido agregar para la optimizar de los procesos de reparaciones electrónicas en un taller
especializado sería la agregacion de un modulo de gestión de inventario eficiente. Esto permitiría tener un
mayor control sobre los componentes y piezas necesarias para las reparaciones, reduciendo el tiempo de espera
para conseguir los materiales necesarios y mejorando la eficiencia del proceso en general. La implementación
de este sistema podría generar una mejora del 15% en la eficiencia y una reducción del 5 % en los costos
asociados a la gestión de inventario

Las mejoras esperadas al implementar un sistema de gestión de inventario eficiente en un taller especializado
en reparaciones electrónicas incluyen:
1. Mayor control sobre los componentes y piezas necesarias para las reparaciones.
2. Reducción del tiempo de espera para conseguir los materiales necesarios.
3. Mejora en la eficiencia del proceso de reparación en general.
4. Reducción de los costos asociados a la gestión de inventario.
5. Mayor satisfacción del cliente al poder ofrecer un servicio más rápido y eficiente.

Capitulo 1. La Optimizacion de los procesos de reparaciones electronicas en un taller especializado

Este capítulo presenta los resultados del análisis de la bibliografía consultada para la elaboración de la
propuesta. Se inicia con el estudio de los antecedentes donde se destacan algunos trabajos y sus aportes.
También se presenta la caracterización del objeto de estudio y, finalmente, los aspectos teóricos y tecnológicos
tomados en cuenta en la elaboración del sistema informático propuesto.
1.1 Antecedentes de la Optimizacion de los procesos del taller especializado

En el ámbito de la investigación académica, los antecedentes juegan un papel fundamental para fundamentar y
contextualizar una tesis. Los antecedentes proporcionan una base sólida de conocimientos previos relacionados
con el tema de estudio, lo que permite demostrar la relevancia y la necesidad de llevar a cabo la investigación
propuesta. Al establecer los antecedentes apropiados, se establece el marco teórico y tecnológico que respalda
el desarrollo de la tesis, brindando un panorama completo y actualizado sobre el tema en cuestión.

En este sentido, el presente trabajo tiene como objetivo examinar los antecedentes fundamentales sobre un
tema de vital importancia: el sistema de optimización de los procesos en un taller de reparación electrónica. La
industria de la reparación electrónica es un sector dinámico y creciente, donde la eficiencia y la calidad de los
procesos son elementales para alcanzar el éxito y la satisfacción del cliente.

En primer lugar, se explorarán los estudios previos sobre sistemas de optimización en otros sectores. Estas
investigaciones permitirán identificar las metodologías utilizadas, los beneficios obtenidos y las lecciones
aprendidas, y cómo pueden aplicarse al contexto específico de un taller de reparación electrónica. Asimismo,
se analizarán las normativas y estándares relevantes en la industria, garantizando el cumplimiento de los
requisitos de calidad, seguridad y medio ambiente durante los procesos de reparación.

Además, se estudiarán las herramientas y metodologías de gestión de procesos empleadas en otros campos,
como Lean Manufacturing, Six Sigma y otras prácticas reconocidas. Estas técnicas brindan enfoques
probados para la eficiencia, la reducción de desperdicios y la mejora continua, que pueden ser adaptados y
aplicados a la reparación electrónica.

Por otro lado, se explorarán las tecnologías emergentes en el campo de la reparación electrónica, como la
automatización de procesos, el Internet de las cosas (IoT) y los diagnósticos remotos. Estas tecnologías
ofrecen un potencial significativo para optimizar y agilizar los procesos de reparación, mejorando la eficiencia
y la calidad del servicio a los clientes.

Por último, se revisarán estudios de casos y experiencias prácticas de implementación de sistemas de


optimización en talleres de reparación electrónica. Esta revisión permitirá comprender los desafíos específicos
enfrentados, las soluciones adoptadas y los resultados obtenidos en situaciones reales.

En resumen, la presente tesis se basa en el análisis exhaustivo de los antecedentes teóricos y tecnológicos
respecto al sistema de optimización de los procesos en un taller de reparación electrónica. Esta investigación
busca proporcionar una base científica y empírica sólida para respaldar el desarrollo de un sistema eficiente y
de alta calidad, en concordancia con las necesidades del sector y las expectativas de los clientes. A través de
este análisis, se busca contribuir al crecimiento y mejora continua de la industria de la reparación electrónica.

En la actualidad, el mundo de la tecnología avanza a pasos agigantados y cada vez son más las personas que
dependen de dispositivos electrónicos para llevar a cabo su vida cotidiana. Sin embargo, estos dispositivos
también pueden fallar y necesitar reparaciones especializadas para su correcto funcionamiento. Es aquí donde
entra en juego la importancia de los talleres especializados en reparaciones electrónicas.

Pero, ¿qué sucede cuando estos talleres no están optimizados para ofrecer un servicio rápido y eficiente? Los
clientes pueden perder la confianza en ellos y optar por buscar soluciones en otros lugares, lo que puede afectar
negativamente la reputación y el éxito del taller.

Es por eso que la optimización de los procesos de reparaciones electrónicas en un taller especializado se ha
convertido en una necesidad para aquellos que buscan destacar en este competitivo mercado. La
implementación de un sistema de optimización puede mejorar significativamente la eficiencia del taller, reducir
los tiempos de espera y aumentar la satisfacción del cliente.

Este sistema puede incluir desde la automatización de procesos hasta la utilización de herramientas y
tecnologías avanzadas para la reparación de dispositivos electrónicos. Además, también puede involucrar la
mejora en la gestión de inventarios y la formación constante del personal para asegurar un servicio de calidad.

En conclusión, la optimización de los procesos de reparaciones electrónicas en un taller especializado es


fundamental para mantenerse competitivo en el mercado actual. La implementación de un sistema de
optimización puede mejorar significativamente la eficiencia y calidad del servicio al cliente, lo que se traduce
en una mayor satisfacción y lealtad por parte de los clientes y, por ende, en el éxito del taller.

1.2 Aspectos teoricos, tecnologicos tomados en cuenta para crear el sistema de optimizacion de los
procesos de un sistema de reaparaciones electronicas

Aspectos teóricos:

1. Gestión de procesos: Comprender los conceptos y principios de gestión de procesos es fundamental. Esto
implica analizar y mejorar los flujos de trabajo, identificar actividades clave, establecer indicadores de
desempeño y asegurar el cumplimiento de estándares de calidad.

2. Lean Manufacturing: Los principios del Lean Manufacturing, como reducción de desperdicios, mejora
continua y trabajo en equipo, pueden aplicarse en el contexto de un taller de reparación electrónica. Estos
enfoques ayudan a eliminar actividades innecesarias, mejorar la eficiencia y reducir los tiempos de reparación.

3. Six Sigma: La metodología Six Sigma se centra en la reducción de defectos y la mejora del rendimiento
mediante el análisis de datos y la implementación de medidas correctivas. Aplicar conceptos de Six Sigma
puede ayudar a identificar problemas recurrentes en los procesos de reparación y encontrar soluciones para
minimizarlos.

Aspectos tecnológicos:

1. Automatización de procesos: La incorporación de herramientas y sistemas automatizados puede agilizar y


optimizar los procesos de reparación electrónica. Por ejemplo, la automatización de tareas repetitivas o la
integración de sistemas de seguimiento y control pueden reducir errores y acelerar los tiempos de ejecución.

2. Internet de las cosas (IoT): La conectividad de dispositivos y máquinas a través del IoT permite recopilar y
analizar datos en tiempo real. Esto puede ser valioso para monitorear el estado de los equipos, anticipar fallos,
optimizar la programación de reparaciones y mejorar la gestión del inventario de componentes.

3. Diagnóstico remoto: Mediante la implementación de tecnologías que permitan realizar diagnósticos de


manera remota, es posible reducir los tiempos de espera y mejorar la eficiencia de los procesos. Esto implica
utilizar herramientas como software de acceso remoto, sistemas de monitoreo en tiempo real o envío de
informes y análisis a distancia.

4. Gestión de datos: La gestión eficaz de los datos es esencial para un sistema de optimización de procesos. Se
pueden utilizar bases de datos y sistemas de gestión de información para almacenar y analizar datos relevantes,
como historiales de reparaciones, inventario de componentes, tiempos de ejecución y retroalimentación de
clientes. Estos datos pueden utilizarse para identificar patrones, tendencias y oportunidades de mejora.

Estos aspectos teóricos y tecnológicos proporcionan una base sólida para el diseño y desarrollo de un sistema
de optimización de procesos en un taller de reparación electrónica. La combinación de conocimientos teóricos
con tecnologías adecuadas puede mejorar la eficiencia, calidad y rentabilidad de las operaciones de reparación.

Figura 1. Organigrama de la optimización de los procesos de reparaciones electronicas en un taller


especializado
Fuente: Elaboracion propia

Jefe Encargado del Taller

Tecnicos del Taller

Cliente 2
Cliente 3
Cliente 1 Cliente n
1.2 Estudio de las metodologías, herramientas y tecnologías de desarrollo más utilizadas para la
Implementación.

En la era actual de cambios tecnológicos rápidos y demandas crecientes, la implementación de un sistema de


optimización de procesos es esencial para mejorar la eficiencia y la productividad en diversos sectores,
incluido el de la reparación electrónica. Este sistema requiere la aplicación de metodologías, herramientas y
tecnologías de desarrollo adecuadas, que permitan maximizar los resultados y obtener ventajas competitivas.

En el presente estudio, se explorará en detalle las metodologías, herramientas y tecnologías de desarrollo más
utilizadas para la implementación del sistema de optimización de los procesos en un taller de reparación
electrónica. El objetivo es comprender cómo estas herramientas y enfoques pueden aplicarse de manera
efectiva para mejorar la eficiencia y la calidad en el contexto específico de dicha industria.

En primer lugar, se analizarán las metodologías más populares, como Lean Manufacturing, Six Sigma y Total
Quality Management. Estas metodologías ofrecen un conjunto de principios y prácticas bien establecidas que
han demostrado ser efectivas en la mejora de procesos en diversos sectores. Se explorará cómo estas
metodologías pueden adaptarse y aplicarse en el contexto de la reparación electrónica, identificando las
mejores prácticas y las posibles áreas de mejora.

Además, se examinarán las herramientas utilizadas para el desarrollo de sistemas de optimización en talleres de
reparación electrónica. Estas herramientas pueden incluir software de gestión de procesos, sistemas de
seguimiento y control, sistemas de gestión de la información y bases de datos. Se evaluará qué herramientas
son más apropiadas para el contexto de la reparación electrónica y cómo pueden integrarse para optimizar los
flujos de trabajo y agilizar los procesos.

Por otro lado, se investigarán las tecnologías de desarrollo más utilizadas, como Internet de las cosas (IoT),
inteligencia artificial (IA) y software de diagnóstico avanzado. Estas tecnologías están transformando la forma
en que se realizan las reparaciones electrónicas, permitiendo la automatización, el monitoreo en tiempo real y
el diagnóstico remoto. Se analizará cómo estas tecnologías pueden integrarse en el sistema de optimización
para mejorar la eficiencia y la calidad de las reparaciones electrónicas.

En resumen, este estudio explorará las metodologías, herramientas y tecnologías de desarrollo más utilizadas
en la implementación del sistema de optimización de procesos en un taller de reparación electrónica. Su
objetivo es identificar las mejores prácticas y enfoques que permitan maximizar la eficiencia y la calidad de los
procesos en la industria. Mediante este análisis, se espera contribuir al conocimiento del campo y proporcionar
recomendaciones prácticas para aquellos involucrados en la implementación de sistemas de optimización en
talleres de reparación electrónica

1.3.1 Sistema Informático

Un sistema informático es un conjunto de componentes interrelacionados que trabajan juntos para procesar,
almacenar y distribuir información utilizando hardware, software y redes de comunicación. Estos sistemas
están diseñados para facilitar diversas tareas y mejorar la eficiencia en el manejo de la información. Algunas de
las funciones más importantes de un sistema informático son:

1. Procesamiento de datos: Un sistema informático es capaz de realizar operaciones lógicas y aritméticas en


datos, lo que permite realizar cálculos, procesar información y realizar tareas específicas según las
instrucciones programadas.

2. Almacenamiento de datos: Los sistemas informáticos pueden guardar y mantener grandes cantidades de
información en diferentes tipos de dispositivos de almacenamiento, como discos duros, unidades de estado
sólido, cintas magnéticas, entre otros.
3. Comunicación de datos: Los sistemas informáticos permiten la transferencia de datos entre diferentes
usuarios, sistemas y dispositivos, ya sea a través de redes locales o a través de internet. Esto facilita la
colaboración y el intercambio de información entre diferentes partes.

4. Interacción con el usuario: Los sistemas informáticos proporcionan interfaces, ya sea mediante teclados,
pantallas táctiles, ratones u otros dispositivos de entrada y salida, para que los usuarios puedan interactuar con
la máquina y realizar tareas de manera eficiente.

Algunos de los tipos de sistemas informáticos más comunes son:

1. Sistemas operativos: Son programas que permiten la gestión de los recursos de hardware y software de una
computadora. Proporcionan una interfaz entre el usuario y el hardware, permitiendo ejecutar aplicaciones y
realizar diversas tareas.

2. Sistemas de gestión de bases de datos: Estos sistemas se utilizan para gestionar grandes volúmenes de datos,
permitiendo su almacenamiento, organización, búsqueda y recuperación de manera eficiente. Ayudan a
mantener la integridad y seguridad de la información.

3. Sistemas de gestión de información: Estos sistemas se utilizan para la organización y gestión de información
en una amplia variedad de ámbitos, como bibliotecas, empresas, archivos digitales, entre otros. Permiten
buscar, catalogar y acceder a la información de manera eficiente.

4. Sistemas de control de versiones: Estos sistemas se utilizan para rastrear los cambios realizados en el
desarrollo de software u otro tipo de documentos, permitiendo gestionar y mantener el historial de
modificaciones, colaborar en equipos y revertir cambios si es necesario.

5. Sistemas de procesamiento de transacciones: Estos sistemas se utilizan para llevar a cabo y gestionar
transacciones comerciales, como ventas, pagos, reservas, entre otros. Proporcionan un seguimiento preciso de
las transacciones y garantizan la integridad de los datos.

Estos son solo algunos ejemplos de sistemas informáticos importantes y tipos de sistemas que existen. La lista
es amplia y varía según las necesidades y aplicaciones específicas de cada organización o sector.
1.3.2 Arquitectura de Software

La arquitectura de software cliente-servidor con tres capas modelo-vista-controlador (MVC) es una estructura
ampliamente utilizada en el diseño de sistemas informáticos que permite una distribución eficiente de las
responsabilidades y una mejor organización de los componentes de un sistema. Este enfoque se basa en la
separación de las preocupaciones y el modularidad, lo que facilita la escalabilidad, mantenibilidad y
reutilización del código.

Patrón de Modelo-Vista-Controlador

En esta arquitectura, el sistema se divide en tres componentes principales:

1. Modelo: Esta capa se encarga de la manipulación y gestión de los datos del sistema. Aquí residen las
estructuras de datos, las reglas de negocio y las operaciones relacionadas con la persistencia. El modelo se
comunica con el controlador para recibir solicitudes de actualización, consulta o eliminación de datos, y
también se encarga de notificar a la vista sobre los cambios realizados en los datos.

2. Vista: La capa de vista se enfoca en la presentación de la información al usuario. Esta capa se encarga de la
interfaz de usuario y de la lógica de presentación, permitiendo la interacción del usuario con el sistema. Aquí
se definen las interfaces gráficas, los formularios, los informes y cualquier otra forma de presentación de datos.
La vista se mantiene sincronizada con el modelo para reflejar los cambios en los datos y se comunica con el
controlador para procesar las acciones del usuario.

3. Controlador: Esta capa actúa como intermediario entre el modelo y la vista. Su función principal es recibir
las solicitudes del usuario desde la vista, interpretarlas y coordinar las acciones necesarias en el modelo para
cumplir con esas solicitudes. El controlador recibe los eventos de la vista y decide cómo responder, realizando
las operaciones de lógica de negocio necesarias para procesar esas solicitudes y actualizar el modelo en
consecuencia. También se encarga de sincronizar y comunicar los cambios en el modelo a la vista
correspondiente.

Esta arquitectura permite una mayor flexibilidad y escalabilidad en el desarrollo de sistemas informáticos, ya
que cada capa puede ser modificada, actualizada o reemplazada de forma independiente sin afectar a las demás.
Además, facilita la reutilización de código, ya que la separación de las capas permite un mayor grado de
modularidad y abstracción.

En resumen, la arquitectura cliente-servidor con tres capas modelo-vista-controlador en un sistema informático


permite una distribución clara de responsabilidades y mejora la organización de componentes, separando las
preocupaciones y facilitando el desarrollo, mantenimiento y escalabilidad. La capa de controlador se encarga
de coordinar el flujo de información entre la vista y el modelo, mientras que la vista se encarga de la
presentación de datos y el modelo de la manipulación y gestión de estos datos.

Ventajas:

Las ventajas de utilizar el enfoque de las tres capas (modelo-vista-controlador) en la arquitectura cliente-
servidor en un sistema informático son las siguientes:

1.Separación de responsabilidades: La arquitectura de tres capas permite una clara separación de


responsabilidades entre el modelo, la vista y el controlador. Esto facilita la comprensión del sistema, el
desarrollo y el mantenimiento del código, ya que cada capa se centra en una tarea específica.

2. Reutilización de código: Al separar las preocupaciones en diferentes capas, se pueden reutilizar


componentes de software en diferentes partes del sistema. Esto agiliza el desarrollo al evitar redundancias y
permite una mayor eficiencia en términos de tiempo y recursos.

3. Escalabilidad: La arquitectura de tres capas permite una mayor escalabilidad, ya que cada capa se puede
escalar de forma independiente según las necesidades del sistema. Por ejemplo, se puede agregar más
capacidad al servidor sin afectar la lógica de negocio o la interfaz de usuario.

4. Mantenibilidad: La separación de responsabilidades facilita la tarea de mantenimiento, ya que los cambios y


actualizaciones se pueden realizar en una capa sin afectar las demás. Esto reduce el riesgo de errores y permite
una mayor agilidad en la aplicación de mejoras o corrección de problemas.

5. Flexibilidad: La arquitectura de tres capas permite una mayor flexibilidad en el desarrollo y la adaptación del
sistema a medida que evolucionan los requisitos. Es posible modificar o reemplazar una capa sin afectar el
funcionamiento de las otras, lo que facilita la adición de nuevas funcionalidades o tecnologías.

6. Facilidad de integración: La separación clara de las capas en la arquitectura de tres capas facilita la
integración con otros sistemas o servicios externos. Cada capa puede comunicarse de manera independiente
con otros sistemas a través de interfaces bien definidas, lo que simplifica la interacción y el intercambio de
datos.

En resumen, el enfoque de tres capas en la arquitectura cliente-servidor brinda ventajas como la separación de
responsabilidades, la reutilización de código, la escalabilidad, la mantenibilidad, la flexibilidad y la facilidad de
integración. Estas ventajas contribuyen a un desarrollo más eficiente, una mayor calidad del software y una
mejor adaptación a los cambios en los requisitos del sistema.

Figura 1. Modelo Vista Controlador


Fuente: Google
1.3.3 Aplicaciones Web

La arquitectura cliente-servidor es ampliamente utilizada en el desarrollo de sistemas web, proporcionando un


enfoque modular y eficiente para satisfacer las necesidades de interacción, procesamiento y almacenamiento de
datos. En esta arquitectura de tres niveles, se distinguen claramente las responsabilidades y funciones de cada
nivel: el nivel superior se enfoca en la interacción con el usuario, el nivel intermedio procesa los datos y el
nivel inferior proporciona y almacena los datos, generalmente a través de una base de datos.

En el nivel superior de la arquitectura, la interfaz de usuario se desarrolla utilizando tecnologías web como
HTML, CSS y JavaScript. Este nivel es responsable de proporcionar una experiencia amigable y accesible al
usuario, permitiendo la interacción con el sistema a través de formularios, botones, menús y otros elementos.

En el nivel intermedio, se encuentra el servidor web, que procesa las solicitudes del usuario y realiza diversas
operaciones en la lógica de negocio del sistema. Aquí se implementan los controladores y se manejan las reglas
de negocio, la autorización, la autenticación y otras funcionalidades específicas del sistema. El servidor web se
encarga de gestionar las interacciones entre la interfaz de usuario y la base de datos, procesando los datos y
devolviendo las respuestas adecuadas al cliente.

En el nivel inferior, se encuentra la base de datos, que actúa como el repositorio central para almacenar y
gestionar los datos del sistema. Aquí se definen las estructuras de datos, se realizan las consultas y se garantiza
la integridad y seguridad de la información. La base de datos, a menudo implementada utilizando tecnologías
de gestión como MySQL, MongoDB o PostgreSQL, proporciona una forma eficiente de almacenar y recuperar
datos según sea necesario.

La arquitectura cliente-servidor en su enfoque de tres niveles permite una clara separación de responsabilidades
y una mayor modularidad en el desarrollo de sistemas web. Cada nivel cumple con funciones específicas, lo
que facilita el mantenimiento, la escalabilidad y la reutilización de componentes. Además, esta arquitectura
facilita la integración con otros sistemas y servicios, lo que brinda la flexibilidad necesaria para adaptarse a las
necesidades cambiantes de los usuarios y del entorno.

1.3.3 Lenguaje de Programación

Del Lado del Servidor (Backend):

Un lenguaje de programación es un conjunto de reglas y sintaxis utilizadas para escribir instrucciones que una
computadora puede entender y ejecutar. Los lenguajes de programación permiten a los desarrolladores crear
software y aplicaciones mediante la escritura de algoritmos y la manipulación de datos.

En el desarrollo de aplicaciones web, existen dos grupos principales de lenguajes de programación:

FrontEnd:

1. Front-end: También conocido como desarrollo del lado del cliente, se refiere a los lenguajes de
programación que se ejecutan en el navegador web del usuario y son responsables de la interacción visual y la
experiencia de usuario. Los lenguajes comúnmente utilizados para el desarrollo front-end incluyen:
- HTML (HyperText Markup Language): Utilizado para la estructura y organización del contenido web.
- CSS (Cascading Style Sheets): Se utiliza para el diseño y estilización de los elementos HTML.
- JavaScript: Un lenguaje de programación que permite la interactividad y la manipulación del contenido y
comportamiento de una página web.

Backend:

2. Back-end: También conocido como desarrollo del lado del servidor, se refiere a los lenguajes de
programación que se ejecutan en el servidor y son responsables de la lógica de negocio y el procesamiento de
datos. Los lenguajes comúnmente utilizados para el desarrollo back-end incluyen:

- Python: Un lenguaje versátil y fácil de aprender, ampliamente utilizado para el desarrollo web.
- Java: Un lenguaje de programación popular y ampliamente adoptado en el desarrollo empresarial y web.
- PHP: Diseñado específicamente para el desarrollo web, es ampliamente utilizado en aplicaciones de código
abierto y sitios web dinámicos.
- Ruby: Conocido por su simpleza y elegancia, es utilizado en el desarrollo web a través del popular framework
Ruby on Rails.
- C#: Desarrollado por Microsoft, es utilizado principalmente en aplicaciones web basadas en tecnologías de
Microsoft.

Cabe destacar que hay otros lenguajes de programación utilizados en el desarrollo web, pero estos son algunos
de los más comunes en cada uno de los grupos (front-end y back-end).

Comparacion de los lenguajes BackEnd

Como modelo de lenguaje, puedo proporcionarte una comparación general de algunos de los lenguajes de
programación de backend más utilizados en la actualidad, en este caso, en el año 2023. Es importante tener en
cuenta que la popularidad y el uso de los lenguajes de programación pueden variar según el contexto y los
requerimientos específicos del proyecto. Aquí tienes una comparación de tres lenguajes de programación
backend populares:

1. Python:
- Simplicidad y legibilidad de código: Python se caracteriza por su sintaxis clara y legible, lo que facilita el
desarrollo y la colaboración en proyectos.
- Amplia disponibilidad de bibliotecas y frameworks: Python cuenta con una amplia variedad de bibliotecas y
frameworks como FastApi, Django, Flask y Pyramid, que agilizan el desarrollo web y ofrecen soluciones
predefinidas para tareas comunes.
- Comunidad activa y soporte sólido: Python cuenta con una gran comunidad de desarrolladores que ofrece una
amplia gama de recursos y soporte, lo que facilita la resolución de problemas y la obtención de ayuda.
- Uso en campos como inteligencia artificial, ciencia de datos y desarrollo web: Python es utilizado
ampliamente en campos como la inteligencia artificial, el aprendizaje automático, la ciencia de datos y el
desarrollo web, lo que contribuye a su popularidad y versatilidad.

2. JavaScript (Node.js):
- Amplio uso en desarrollo web: JavaScript, con la plataforma Node.js, se ha consolidado como uno de los
lenguajes de backend más utilizados en el desarrollo web, permitiendo desarrollar tanto el frontend como el
backend con el mismo lenguaje.
- Rendimiento y escalabilidad: Node.js es conocido por su rendimiento y capacidad para manejar una gran
cantidad de solicitudes simultáneas, lo que lo hace adecuado para aplicaciones en tiempo real y de alto
rendimiento.
- NPM y su vasto ecosistema: Con NPM (Node Package Manager), JavaScript ofrece un ecosistema de
bibliotecas y paquetes muy extenso, lo que facilita la reutilización de código y el desarrollo ágil de
aplicaciones.

3. Java:
- Estabilidad y robustez: Java es conocido por su estabilidad y capacidad para manejar aplicaciones
empresariales complejas y de larga duración.
- Portabilidad: Java se ejecuta en una máquina virtual (JVM), lo que permite su portabilidad y la capacidad de
ejecutar aplicaciones Java en diferentes sistemas operativos sin necesidad de recompilar el código fuente.
- Uso en grandes empresas y aplicaciones empresariales: Java es ampliamente utilizado en grandes empresas y
se ha convertido en un estándar en el desarrollo de aplicaciones empresariales, particularmente en sistemas de
backend críticos y de misión crítica.

Cabe destacar que esta comparación es simplemente una visión general y otros lenguajes de backend también
son populares y ampliamente utilizados en diferentes contextos, como C#, Ruby, PHP, entre otros. Las
elecciones de lenguajes de programación dependen de varios factores, como los requerimientos del proyecto, la
experiencia del equipo de desarrollo y las características específicas que se buscan en un lenguaje.

Tabla1. Comparacion de otros lenguajes de backend incluyendo Python


Fuente: Elaboracion propia

LENGUAJES CARACTERISTICAS
Python Es un lenguaje de programación versátil que se utiliza en muchas áreas
diferentes, incluyendo el desarrollo web. Es fácil de aprender y tiene
una sintaxis clara y concisa. Tiene una gran cantidad de bibliotecas y
frameworks disponibles para el desarrollo web.
PHP Es uno de los lenguajes más populares para el desarrollo web. Tiene una
gran comunidad y una amplia variedad de frameworks y herramientas
disponibles para su uso. Es fácil de aprender y tiene una sintaxis
sencilla.
Ruby Es un lenguaje de programación dinámico y orientado a objetos que se
utiliza principalmente en el desarrollo web. Tiene una sintaxis elegante
y es fácil de aprender. Ruby on Rails es uno de los frameworks más
populares para el desarrollo web.
Java Es un lenguaje de programación orientado a objetos que se utiliza
ampliamente en el desarrollo web. Tiene una gran cantidad de
frameworks y herramientas disponibles para su uso y es muy popular en
empresas y organizaciones.

Teniendo en cuenta el cuadro anterior de los dos lenguajes que se ajustan a los requerimientos, fue elegido
Python debido a sus características únicas para el trabajo en el lado del servidor, a continuación, sus
características

PYTHON

Python es un lenguaje de programación de alto nivel y de propósito general, conocido por su sintaxis clara y
legible. Fue creado por Guido van Rossum y lanzado por primera vez en 1991. Algunas de las características
destacadas del lenguaje Python incluyen:

Caracteristicas del lenguaje

1. Sintaxis clara y legible: Python se caracteriza por una sintaxis simple y fácil de leer, lo que facilita el
desarrollo y la comprensión del código.

2. Multiparadigma: Python admite múltiples paradigmas de programación, incluyendo programación orientada


a objetos, programación imperativa y programación funcional. Esto proporciona flexibilidad al programador
para elegir el enfoque adecuado para cada tarea.

3. Amplia biblioteca estándar: Python cuenta con una extensa biblioteca estándar que cubre una amplia gama
de funciones y módulos, lo que facilita el desarrollo de aplicaciones y evita la necesidad de construir todo
desde cero.

4. Interpretado y de tipado dinámico: Python es un lenguaje interpretado, lo que significa que no requiere una
etapa de compilación explícita. Además, es de tipado dinámico, lo que permite la reasignación de tipos de
variables durante la ejecución del programa.

5. Gran comunidad y amplio soporte: Python cuenta con una gran comunidad de desarrolladores activa y
dedicada, lo que significa que hay una gran cantidad de recursos, bibliotecas y módulos disponibles para
facilitar el desarrollo y resolver problemas.

6. Portabilidad y compatibilidad: Python es compatible con una amplia variedad de plataformas y sistemas
operativos, lo que lo hace altamente portátil y versátil para el desarrollo de aplicaciones.

Marco de trabajo del lado del servidor(frameworks)

En cuanto a los marcos de trabajo (frameworks) del lado del servidor más utilizados en Python, aquí tienes
algunos ejemplos:

1. Django: Django es un framework de desarrollo web de alto nivel y muy popular en Python. Ofrece un
enfoque práctico para el desarrollo rápido y seguro de aplicaciones web, proporcionando una amplia gama de
características como un ORM (Object-Relational Mapping) para interactuar con bases de datos, un sistema
robusto de autenticación y autorización, y herramientas para generar automáticamente la interfaz de
administración.

2. Flask: Flask es un framework de desarrollo web minimalista y ligero que sigue el principio "menos es más".
Es altamente extensible y ofrece una gran flexibilidad para desarrollar aplicaciones web de cualquier tamaño.
Flask es conocido por su simplicidad y su facilidad de aprendizaje.

3. FastApi: FastAPI es un moderno framework web de Python, diseñado para el desarrollo rápido de APIs
(Interfaces de Programación de Aplicaciones) de alto rendimiento.
FastAPI ees un framework extremadamente poderoso y popular para el desarrollo rápido de APIs de alto
rendimiento en Python. FastAPI ha ganado rápidamente reconocimiento y popularidad dentro de la comunidad
de desarrollo debido a su eficiencia, facilidad de uso y capacidad de manejar grandes cargas de trabajo.

Estos son solo algunos ejemplos de los marcos de trabajo del lado del servidor más utilizados en Python, pero
hay muchos más disponibles según los requisitos y las preferencias de desarrollo. Recuerda que siempre es
importante evaluar las características y la documentación de cada framework para encontrar el más adecuado
para tu proyecto específico.

Tabla2. Comparacion de otros framework de Python


Fuente: Elaboracion propia

LENGUAJES CARACTERISTICAS
Bottle Bottle es un framework de desarrollo web ligero y sencillo que se
caracteriza por su mínimo acoplamiento y su enfoque minimalista. Es
ideal para aplicaciones pequeñas y rápidas, y ofrece características útiles
para el desarrollo de APIs y aplicaciones web simples.
Pyramid: Pyramid es otro framework de desarrollo web popular en Python que se
centra en la escalabilidad y flexibilidad. Proporciona un conjunto de
herramientas y bibliotecas para construir aplicaciones web eficientes y
de calidad, y permite a los desarrolladores elegir las herramientas y
tecnologías más adecuadas para sus necesidades.

CherryPy Es un framework minimalista y fácil de usar que se enfoca en la


velocidad y el rendimiento. Ofrece una gran cantidad de características,
como soporte para múltiples protocolos y formatos de datos, y es fácil
de integrar con otras herramientas y servicios.
Tornado Es un framework que se enfoca en la escalabilidad y la eficiencia en
tiempo real. Es especialmente útil para aplicaciones que requieren una
gran cantidad de conexiones simultáneas, como aplicaciones de chat o
juegos en línea. Ofrece soporte para múltiples protocolos y formatos de
datos, y es fácil de integrar con otras herramientas y servicios.

Entre los Frameworks anteriores nos decantamos por FastApi por su sencillez, rapidez, optimización y
rendimiento, a continuación, se exponen las características de este marco de trabajo
Ventajas:

a. Alto rendimiento: FastAPI se basa en el tipo de anotaciones y en Pydantic para lograr una ejecución rápida y
eficiente. Utiliza capacidades de inferencia de tipos y técnicas de generación de código para generar
automáticamente código altamente optimizado.

b. Fácil auto-documentación: FastAPI genera automáticamente documentación interactiva para tus APIs web.
Puedes explorar y probar los puntos finales (endpoints) disponibles a través de una interfaz interactiva
generada automáticamente en la cual puedes probar tus APIs, ver los parámetros, tipos de datos esperados y
respuestas esperadas.

c. Tipado estático: FastAPI aprovecha las capacidades de Python 3.7+ para el tipo de anotaciones y el chequeo
estático de tipos. Esto ayuda a mejorar la calidad del código, detectar errores en tiempo de ejecución y facilita
el mantenimiento a largo plazo del código.

d. Integración sencilla con async/await: FastAPI aprovecha las capacidades de asincronía de Python mediante
la utilización de las palabras clave async y await. Esto te permite escribir aplicaciones web asíncronas de alto
rendimiento y aprovechar la eficiencia de la programación asíncrona.

e. Compatible con estándares web: FastAPI es compatible con estándares web modernos y utiliza protocolos
como HTTP/2 y WebSockets. También admite autenticación OAuth2 y generación de tokens de acceso JWT
(JSON Web Tokens).

f. Facilidad de uso: FastAPI tiene una sintaxis intuitiva y fácil de entender, lo que facilita la creación y el
mantenimiento de aplicaciones web. Además, proporciona una amplia gama de herramientas y características
para facilitar el desarrollo, como validación automática de datos de entrada y manejo de errores.

Del Lado del Cliente (Frontend):

Los lenguajes de frontend son aquellos que se utilizan para desarrollar la parte visual y interactiva de una
página web. Estos lenguajes se ejecutan en el navegador del usuario y son responsables de la apariencia y
comportamiento de la página.

¿Qué es un lenguaje frontend?

Un lenguaje frontend es aquel que se utiliza para crear la interfaz de usuario de una página web. Estos
lenguajes permiten definir la estructura, diseño y comportamiento de los elementos visuales, como texto,
imágenes, botones, formularios, entre otros.

Comparación de lenguajes frontend:

Existen varios lenguajes frontend populares que se utilizan ampliamente en el desarrollo web. A continuación,
vamos a hablar de alguno de ellos

4. TypeScript: Es un lenguaje de programación que es una extensión de JavaScript, pero con tipado estático y
otras características adicionales.

5. Sass: Es un preprocesador CSS que permite utilizar variables, funciones y otros elementos para facilitar la
creación de estilos.

6. Less: Es otro preprocesador CSS que también permite utilizar variables, funciones y otros elementos para
facilitar la creación de estilos.

7. Vue.js: Es un framework JavaScript que se utiliza para crear interfaces de usuario interactivas y reactivas.

8. Ember.js: Es otro framework JavaScript que se utiliza para crear aplicaciones web complejas y escalables.

9. Backbone.js: Es un framework JavaScript que se utiliza para crear aplicaciones web más simples y
modulares.
10. Knockout.js: Es una librería JavaScript que se utiliza para crear interfaces de usuario dinámicas y reactivas.

En resumen, HTML define la estructura del contenido, CSS se encarga del diseño visual y JavaScript añade
interactividad a una página web. Estos tres lenguajes trabajan juntos para crear experiencias interactivas y
atractivas en el navegador del usuario y son los lenguajes que he seleccionado para trabajar del lado del cliente

Tabla3. Comparacion de otros lenguajes FrontEnd


Fuente: Google

LENGUAJES CARACTERISTICAS
Bottle Bottle es un framework de desarrollo web ligero y sencillo que se
caracteriza por su mínimo acoplamiento y su enfoque minimalista. Es
ideal para aplicaciones pequeñas y rápidas, y ofrece características útiles
para el desarrollo de APIs y aplicaciones web simples.
Pyramid: Pyramid es otro framework de desarrollo web popular en Python que se
centra en la escalabilidad y flexibilidad. Proporciona un conjunto de
herramientas y bibliotecas para construir aplicaciones web eficientes y
de calidad, y permite a los desarrolladores elegir las herramientas y
tecnologías más adecuadas para sus necesidades.

CherryPy Es un framework minimalista y fácil de usar que se enfoca en la


velocidad y el rendimiento. Ofrece una gran cantidad de características,
como soporte para múltiples protocolos y formatos de datos, y es fácil
de integrar con otras herramientas y servicios.
Tornado Es un framework que se enfoca en la escalabilidad y la eficiencia en
tiempo real. Es especialmente útil para aplicaciones que requieren una
gran cantidad de conexiones simultáneas, como aplicaciones de chat o
juegos en línea. Ofrece soporte para múltiples protocolos y formatos de
datos, y es fácil de integrar con otras herramientas y servicios.

Teniendo en cuenta el cuadro anterior fue elegido JAVA SCRIPT por las múltiples ventajas que ofrecen, así
como por su uso extendido entre los desarrolladores. A continuación, sus características:

Java Script

JavaScript es un lenguaje de programación de alto nivel, interpretado y orientado a objetos. Es ampliamente


utilizado en el desarrollo web para agregar interactividad y dinamismo a las páginas.
Caracteristicas del lenguaje:

Algunas características del lenguaje JavaScript son:

1. Lenguaje interpretado: No se necesita compilar el código antes de ejecutarlo, lo que permite una mayor
flexibilidad y rapidez en el desarrollo.

2. Orientado a objetos: Permite la creación de objetos y la definición de clases para organizar y reutilizar el
código.

3. Tipado dinámico: No es necesario declarar el tipo de dato de una variable, ya que se determina
automáticamente durante la ejecución del programa.

4. Funciones de primera clase: Las funciones en JavaScript son tratadas como cualquier otro tipo de dato, lo
que permite asignarlas a variables, pasarlas como argumentos o retornarlas como resultado.

5. Soporte para manipulación del DOM: Permite acceder y modificar los elementos HTML de una página, lo
que facilita la interacción con el usuario.

Ventajas:
Algunas ventajas de utilizar JavaScript son:

1. Amplia compatibilidad: Es soportado por todos los navegadores modernos, lo que garantiza que las
aplicaciones funcionen correctamente en diferentes plataformas.

2. Fácil aprendizaje: Su sintaxis es similar a otros lenguajes populares como C++ o Java, lo que facilita su
aprendizaje para aquellos programadores familiarizados con estos lenguajes.

3. Interactividad en tiempo real: Permite crear efectos visuales y animaciones en tiempo real sin necesidad de
recargar la página completa.

4. Mayor usabilidad: Al agregar interactividad a las páginas web, se mejora la experiencia del usuario al
permitirle realizar acciones sin tener que recargar constantemente la página.

5. Amplia comunidad y recursos disponibles: Existe una gran cantidad de documentación, tutoriales y librerías
disponibles para ayudar en el desarrollo con JavaScript, lo cual facilita su uso y resolución de problemas
comunes.

Marcos de Trabajo del Lado del Cliente

Aquí tienes algunos frameworks populares del lado del cliente:

1. Angular: Un framework desarrollado por Google que permite construir aplicaciones web de una sola página
(SPA) de manera eficiente y escalable.

2. React: Un framework desarrollado por Facebook que se utiliza para construir interfaces de usuario
interactivas y reutilizables.

3. Vue.js: Un framework progresivo y fácil de aprender que se utiliza para construir interfaces de usuario
interactivas y reactivas.

4. Ember.js: Un framework completo y robusto que facilita la creación de aplicaciones web complejas.

5. Backbone.js: Un framework ligero que proporciona estructura a las aplicaciones web, utilizando modelos,
vistas y colecciones.

6. Knockout.js: Un framework que permite crear interfaces de usuario dinámicas utilizando el patrón MVVM
(Model-View-ViewModel).

7. Bootstrap: Bootstrap es un framework de diseño web que permite crear sitios web de manera rápida y
eficiente. Fue desarrollado por Twitter y se basa en HTML, CSS y JavaScript

Estos son solo algunos ejemplos, pero hay muchos más frameworks disponibles en el mercado.

Tabla4. Comparacion de framework FrontEnd


Fuente: Google

LENGUAJES CARACTERISTICAS
Elm Es un lenguaje de programación funcional para la creación de
interfaces de usuario web. Ofrece una sintaxis clara y concisa, y se
enfoca en la eliminación de errores y la facilidad de mantenimiento del
código.
PureScript Es otro lenguaje de programación funcional para la creación de
interfaces de usuario web. Se enfoca en la interoperabilidad con
JavaScript y ofrece una gran cantidad de características avanzadas,
como tipos de datos algebraicos y patrones de concurrencia.
ClojureScript Es una variante del lenguaje Clojure que se ejecuta en el navegador
web. Se enfoca en la programación funcional y ofrece una gran
cantidad de características avanzadas, como macros y transductores.
ReasonML Es un lenguaje de programación que combina la sintaxis familiar de
JavaScript con las características avanzadas de los lenguajes
funcionales. Se enfoca en la seguridad del tipo de datos y la facilidad
de mantenimiento del código.
Dart Es un lenguaje de programación desarrollado por Google para la
creación de aplicaciones web y móviles. Ofrece una gran cantidad de
características avanzadas, como el compilador JIT y AOT, y se enfoca
en la facilidad de uso y la productividad del desarrollador.

Entre los marcos anteriores nos decantamos por Bootstrap ya que cumple con los aspectos que estamos
buscando para desarrollar una interfaz que englobe muchas características destacables y además trae como
subconjunto lenguajes como HTML, CSS y JavaScript lo cual hacen del framework un marco de trabajo
robusto y potente a la vez, a continuación, hablaremos de las ventajas que ofrecen cada uno de forma
independiente

Ventajas de los lenguajes que forman un subconjunto de Bootstrap

Bootstrap: Otra característica de Bootstrap es que es altamente personalizable, lo que significa que se puede
adaptar a las necesidades de cada proyecto. Además, cuenta con una amplia documentación y una gran
comunidad de usuarios que ofrecen soporte y recursos adicionales.

- Ventajas:

- Permite crear diseños responsivos de manera rápida y sencilla.


- Ofrece una gran cantidad de componentes predefinidos, lo que facilita el desarrollo web.
- Es compatible con la mayoría de los navegadores web.
- Es gratuito y de código abierto.

- Características:

- Framework CSS desarrollado por Twitter.


- Utiliza el sistema de rejillas para distribuir los elementos en la página.
- Incluye una amplia variedad de componentes, como botones, formularios, tablas, etc.
- Es altamente personalizable y se puede modificar fácilmente su apariencia.

HTML (HyperText Markup Language): Una de las principales ventajas de HTML es que es un lenguaje fácil
de aprender y utilizar, incluso para aquellos que no tienen experiencia en programación. Además, es
compatible con todos los navegadores web y permite la creación de páginas web estructuradas y accesibles.
Ademas es un lenguaje estándar utilizado para crear la estructura y contenido de una página web. Se utiliza
para definir los elementos básicos como encabezados, párrafos, listas, enlaces e imágenes. HTML proporciona
una estructura semántica a los contenidos y es fundamental en cualquier página web.

- Ventajas:

- Es el lenguaje estándar para la creación de páginas web.


- Es fácil de aprender y utilizar.
- Es compatible con la mayoría de los navegadores web.
- Permite agregar contenido multimedia a las páginas web.

- Características:

- Lenguaje de marcado utilizado para crear páginas web.


- Permite definir la estructura y el contenido de una página web.
- Utiliza etiquetas para indicar el inicio y el final de los elementos en la página.
- Puede incorporar otros lenguajes como CSS y JavaScript.
2. CSS (Cascading Style Sheets):
CSS es un lenguaje utilizado para definir el estilo y diseño visual de una página web. Permite controlar
aspectos como colores, fuentes, tamaños, márgenes y posicionamiento de los elementos HTML. CSS trabaja en
conjunto con HTML para darle vida a la apariencia visual de una página. Ademas la principal ventaja de CSS
es que permite la separación del contenido y la presentación de una página web, lo que facilita la gestión y el
mantenimiento del sitio. Además, permite la creación de estilos personalizados y la adaptación de la apariencia
del sitio a diferentes dispositivos y tamaños de pantalla.

- Ventajas:

- Permite definir la apariencia visual de una página web.


- Es compatible con la mayoría de los navegadores web.
- Facilita la separación entre la estructura y el diseño de una página web.
- Permite crear diseños responsivos.

- Características:

- Lenguaje utilizado para definir la presentación visual de una página web.


- Permite definir el estilo de los elementos en la página, como colores, fuentes, tamaños, etc.
- Se puede utilizar para crear animaciones y efectos visuales.
- Puede ser incorporado en un archivo HTML o en un archivo externo.

JavaScript: Una de las principales ventajas de JavaScript es que permite la creación de interacciones dinámicas
y reactivas en una página web, lo que mejora la experiencia del usuario. Además, es un lenguaje muy versátil
que se puede utilizar tanto en el lado del cliente como del servidor. Ademast es un lenguaje de programación
que permite agregar interactividad y dinamismo a una página web. Se utiliza para crear efectos visuales,
validar formularios, realizar animaciones y manipular contenido en tiempo real. JavaScript también permite
interactuar con APIs externas y realizar peticiones asíncronas al servidor.

- Ventajas:

- Permite agregar interactividad y dinamismo a las páginas web.


- Es compatible con la mayoría de los navegadores web.
- Es un lenguaje de programación muy popular y utilizado en la web.
- Permite validar formularios y realizar operaciones matemáticas.

- Características:

- Lenguaje de programación utilizado para crear aplicaciones web interactivas.


- Permite manipular el contenido de una página web en tiempo real.
- Puede ser utilizado para crear animaciones y efectos visuales.
- Es compatible con otros lenguajes como HTML y CSS.

1.3.4 Sistema Gestor de Base de Datos

Un sistema gestor de base de datos (SGBD) es un software que permite administrar y gestionar una base de
datos, es decir, un conjunto de datos organizados y relacionados entre sí. Un SGBD permite realizar
operaciones como la creación, modificación y eliminación de datos, así como la consulta y recuperación de
información. Para la construcción de aplicaciones de gestión se destacan por su eficiencia gestores como: Oracle, SQL
Server PostgreSQL y MySQL.

¿Por qué usarMySQL?

MySQL sería una buena opción como sistema gestor de base de datos si se requiere un software gratuito y de
código abierto que pueda manejar grandes cantidades de datos y ofrecer una alta velocidad de procesamiento y
respuesta. Además, su compatibilidad con la mayoría de los sistemas operativos y opciones de encriptación lo
hacen altamente seguro.

MySQL es un SGBD de código abierto muy popular y utilizado en la web. Fue desarrollado por Oracle
Corporation y se basa en el lenguaje SQL (Structured Query Language).

Ventajas de MySQL:

- Es gratuito y de código abierto.


- Es compatible con la mayoría de los sistemas operativos.
- Es escalable y puede manejar grandes cantidades de datos.
- Ofrece una alta velocidad de procesamiento y respuesta.
- Es altamente seguro y ofrece opciones de encriptación.

Características generales de MySQL:

- Utiliza el lenguaje SQL para realizar operaciones en la base de datos.


- Permite la creación de tablas y relaciones entre ellas.
- Ofrece opciones de indexación para mejorar el rendimiento.
- Puede ser utilizado con lenguajes de programación como PHP, Java, Python, etc.
- Ofrece opciones de replicación y clustering para mejorar la disponibilidad y la redundancia.

1.3.5 Metodología de desarrollo de software

La metodología de desarrollo de software XP (Extreme Programming) es un enfoque ágil para la gestión de


proyectos de software. XP se centra en la entrega de software de alta calidad y en la satisfacción del cliente a
través de una serie de prácticas y valores fundamentales.

XP se basa en cuatro valores principales: comunicación, simplicidad, retroalimentación y coraje. Estos valores
son la base de las prácticas que se utilizan en XP para lograr los objetivos del proyecto. A continuación, se
describen algunas de las principales prácticas y objetivos de XP:

1. Planificación ágil: XP utiliza la planificación ágil para adaptarse a los cambios en los requisitos del
proyecto. La planificación se realiza en ciclos cortos y se revisa constantemente para garantizar que el equipo
esté en el camino correcto.

2. Desarrollo iterativo: XP utiliza un enfoque iterativo para el desarrollo de software. Cada iteración se centra
en un conjunto de requisitos específicos y produce un software funcional que puede ser entregado al cliente.

3. Pruebas automatizadas: XP utiliza pruebas automatizadas para garantizar que el software funcione
correctamente y para detectar errores lo antes posible.
4. Diseño simple: XP promueve el diseño simple y evita la complejidad innecesaria. Esto permite que el equipo
se centre en la entrega de valor al cliente.

5. Integración continua: XP utiliza la integración continua para garantizar que el software se integre sin
problemas y que las pruebas automatizadas se ejecuten después de cada cambio.

6. Programación en parejas: XP utiliza la programación en parejas para mejorar la calidad del código y
fomentar la colaboración entre los miembros del equipo.

7. Propiedad compartida del código: XP promueve la propiedad compartida del código para fomentar la
colaboración y la responsabilidad en el equipo.

Las ventajas de XP incluyen:

1. Entrega de software de alta calidad: XP se centra en la calidad del software y utiliza prácticas como pruebas
automatizadas para garantizar que el software funcione correctamente.

2. Adaptabilidad: XP utiliza la planificación ágil y el desarrollo iterativo para adaptarse a los cambios en los
requisitos del proyecto.

3. Comunicación mejorada: XP promueve la comunicación constante entre los miembros del equipo y con el
cliente para garantizar que todos estén en la misma página.
4. Mayor satisfacción del cliente: XP se centra en la entrega de valor al cliente y utiliza prácticas como la
retroalimentación constante para garantizar que el cliente esté satisfecho con el resultado final.
En resumen, XP es una metodología de desarrollo de software ágil que se centra en la entrega de software de
alta calidad y en la satisfacción del cliente a través de una serie de prácticas y valores fundamentales. Las
prácticas incluyen planificación ágil, desarrollo iterativo, pruebas automatizadas, diseño simple, integración
continua, programación en parejas y propiedad compartida del código. Las ventajas de XP incluyen la entrega
de software de alta calidad, adaptabilidad, comunicación mejorada y mayor satisfacción del cliente.

Conclusiones del Capitulo

Un taller especializado en reparaciones electrónicas es un negocio que requiere de una gran cantidad de
procesos y procedimientos para poder brindar un servicio de calidad a sus clientes. Desde la recepción del
equipo hasta su entrega, pasando por la identificación del problema, la reparación y el mantenimiento, cada
paso es importante y debe ser llevado a cabo de manera eficiente y efectiva.

Es por eso que la implementación de un sistema para la optimización de los procesos en este tipo de talleres
puede ser una solución innovadora que permita mejorar significativamente la eficiencia y la productividad del
negocio. A través del análisis detallado de los procesos y procedimientos que se lleva a cabo en el capítulo 1 de
una tesis, se pueden identificar las áreas de mejora y definir los requisitos necesarios para el desarrollo de un
sistema de software que satisfaga las necesidades específicas del taller.

La selección cuidadosa de las tecnologías a utilizar es fundamental para garantizar que el sistema sea robusto,
escalable y fácil de mantener. En este caso, la combinación de FastAPI, Python, JavaScript, CSS, HTML,
Bootstrap y MySQL ofrece una plataforma sólida y flexible que permite desarrollar una aplicación web
moderna y atractiva con una interfaz de usuario intuitiva y fácil de usar.

La implementación exitosa de un sistema para la optimización de los procesos en un taller especializado en


reparaciones electrónicas puede ofrecer beneficios significativos para el negocio. Algunos de estos beneficios
incluyen una mayor satisfacción del cliente al mejorar los tiempos de reparación y reducir los tiempos de
espera, una reducción en los costos operativos al optimizar los procesos y procedimientos, y una mejora en la
calidad del servicio ofrecido al tener un mejor control sobre las reparaciones y el mantenimiento de los
equipos.

En conclusión, la implementación de un sistema para la optimización de los procesos en un taller especializado


en reparaciones electrónicas es una inversión valiosa que puede mejorar significativamente la eficiencia y la
productividad del negocio. El análisis detallado de los procesos y procedimientos y la selección adecuada de
las tecnologías a utilizar son factores clave para el éxito del proyecto. Con la implementación exitosa del
sistema, se pueden obtener beneficios significativos que pueden marcar la diferencia en el éxito y la
rentabilidad del negocio

Capítulo 2. Sistema Informático para la Optimizacion de los Procesos de los Talleres Especializados en
las Reparaciones Electronicas

En este capítulo se presentan los resultados obtenidos en tres de las fases de desarrollo del sistema informático
(exploración, planificación e iteración), según la metodología de desarrollo de software XP. Al final del
capítulo se presentan los resultados del experimento realizado para validar la propuesta.

Introducción:

En el ámbito de los talleres de reparaciones electrónicas, la eficiencia y la optimización de los procesos son
fundamentales para garantizar un servicio de calidad y satisfacer las necesidades de los clientes. En este
sentido, el desarrollo e implementación de un sistema que permita gestionar y controlar todas las actividades
relacionadas con la reparación se convierte en una herramienta indispensable.

El presente capítulo tiene como objetivo definir las características que debe tener dicho sistema, así como
identificar a los diferentes usuarios que interactuarán con él. Para ello, se tomará en cuenta la estructura
jerárquica del taller, donde se encuentra el encargado que controla a los técnicos, los técnicos que interactúan
con los clientes y finalmente, los clientes que son quienes demandan el servicio de reparación.
2.1 Características del sistema:

1. Gestión eficiente de la información: El sistema debe ser capaz de almacenar y organizar toda la información
relevante para el proceso de reparación, incluyendo datos del cliente, historial de reparaciones anteriores,
especificaciones técnicas del equipo y cualquier otra información necesaria para llevar a cabo el trabajo.

2. Seguimiento en tiempo real: El sistema debe permitir realizar un seguimiento en tiempo real del estado de
cada reparación. Esto implica conocer en qué etapa se encuentra cada equipo, cuánto tiempo ha transcurrido
desde su ingreso al taller y cuándo estará listo para ser entregado al cliente.

3. Asignación eficiente de recursos: El sistema debe contar con una funcionalidad que permita asignar
adecuadamente a cada técnico las tareas correspondientes, teniendo en cuenta su disponibilidad,
especialización y carga de trabajo. De esta manera, se evitará la sobrecarga de trabajo y se garantizará una
distribución equitativa de las reparaciones.

4. Registro detallado de actividades: El sistema debe permitir registrar todas las actividades realizadas durante
el proceso de reparación, incluyendo las pruebas realizadas, los componentes reemplazados y cualquier otra
acción llevada a cabo. Esto facilitará la trazabilidad del trabajo realizado y permitirá identificar posibles errores
o problemas recurrentes.

Usuarios del sistema:

1. Encargado: Será el usuario principal del sistema, encargado de supervisar y controlar todas las actividades
del taller. Tendrá acceso a todas las funcionalidades del sistema y será responsable de asignar tareas a los
técnicos, gestionar los recursos disponibles y tomar decisiones estratégicas basadas en los reportes generados
por el sistema.

2. Técnicos: Serán usuarios activos del sistema, encargados de llevar a cabo las reparaciones electrónicas.
Tendrán acceso al sistema para consultar las tareas asignadas, registrar las actividades realizadas y actualizar el
estado de cada equipo en tiempo real.

3. Clientes: Serán usuarios pasivos del sistema, quienes solicitarán el servicio de reparación electrónica.
Podrán acceder al sistema para consultar el estado de sus equipos, recibir notificaciones sobre su reparación y
realizar pagos en línea.

Fases de Exploracion:

1. Identificación de las necesidades del cliente: En esta fase, se realizará una investigación exhaustiva para
identificar las necesidades y requerimientos de los clientes en un taller de reparaciones electrónicas. Se llevarán
a cabo entrevistas con los clientes actuales y potenciales, encuestas y análisis de mercado para comprender las
expectativas y demandas del cliente.

2. Familiarización con Visual Studio Code: Se llevará a cabo una investigación sobre la herramienta Visual
Studio Code, que es un entorno de desarrollo integrado (IDE) ampliamente utilizado para programar en
diversos lenguajes. Se explorarán sus características, funcionalidades y ventajas para el desarrollo del sistema
propuesto.

3. Familiarización con el lenguaje Python y FastAPI: Se realizará un estudio detallado sobre el lenguaje de
programación Python y el framework FastAPI. Se investigarán sus capacidades, sintaxis, librerías disponibles y
su idoneidad para desarrollar un sistema que optimice los procesos en un taller de reparaciones electrónicas.

4. Exploración del framework Bootstrap: Se llevará a cabo una investigación sobre el framework Bootstrap,
que es ampliamente utilizado para desarrollar interfaces web responsivas y modernas. Se estudiarán sus
características, componentes disponibles y su integración con Python y FastAPI para crear una interfaz
amigable al usuario en el sistema propuesto.

5. Investigación sobre SGBD MySQL: Se realizará un estudio sobre el Sistema de Gestión de Bases de Datos
(SGBD) MySQL, que es uno de los sistemas más utilizados en aplicaciones web. Se investigará su estructura,
características, rendimiento y su compatibilidad con Python y FastAPI para almacenar y gestionar los datos del
sistema de manera eficiente.
6. Análisis de viabilidad: En esta etapa, se evaluará la viabilidad técnica y económica de utilizar Visual Studio
Code, Python con FastAPI, Bootstrap y MySQL para desarrollar el sistema propuesto. Se analizarán los
recursos necesarios, los costos asociados y la capacidad del equipo de programadores para trabajar con estas
herramientas.

Al finalizar esta fase de exploración, se tendrán los conocimientos necesarios sobre las necesidades del cliente
y las herramientas a utilizar en el desarrollo del sistema para optimizar los procesos en un taller de reparaciones
electrónicas. Esto permitirá avanzar hacia la siguiente etapa de diseño e implementación del sistema.

2.2.1 Historias de usuarios

Para el levantamiento de los requerimientos de software se utilizan como técnicas las historias de usuario. Son
tarjetas de papel en las que el cliente describe brevemente las características que debe tener el sistema, ya sean
requisitos funcionales o no funcionales. En el presente trabajo se estableció un número para cada historia de
usuario, el nombre de la historia, el usuario, la iteración asignada, si extiende de otra, el programador
responsable, la prioridad en el negocio, el riesgo en el desarrollo, la descripción y la observación.
Las tablas 5, 6, 7, y 8 muestran tres de las historias de usuario diseñadas para levantar los requisitos
funcionales

Tabla 5 Registrar Cliente


Fuente: Elaboración Propia

Historia del usuario


Numero: 1 Nombre Historia de Usuario: Registrar Cliente
Usuario: Tecnico en Reparaciones Iteración Asignada: 1
Extensión de Historia de Usuario:
Programador Responsable: Edrianni Cruzata Downer
Prioridad de Negocio: Alta
Riesgo en Desarrollo: Medio
Descripción: El Tecnico en Reparaciones registra el cliente que recibirá el servicio de reparación, además
debe introducir los datos del cliente junto a lo relacionado con dicho servicio como son (Nombre, Apellidos,
Foto, Carnet, Telefono, Direccion, Fecha de entrada, Fecha de salida, Equipo, Defectacion, Costo, Tecnico,
Observacion)
Observaciones: El número de carnet será único, todos los campos son obligatorios de introducir

Tabla 6 Actualizar Cliente


Fuente: Elaboración Propia

Historia del usuario


Numero: 2 Nombre Historia de Usuario: Actualizar Cliente
Usuario: Jefe Encargado del Taller Iteración Asignada: 2
Extensión de Historia de Usuario:
Programador Responsable: Edrianni Cruzata Downer
Prioridad de Negocio: Alta
Riesgo en Desarrollo: Medio
Descripción: El Jefe Encargado del Taller puede actualizar el contenido del cliente y cambiar los siguientes
datos (Nombre, Apellidos, Foto, Carnet, Telefono, Direccion, Fecha de entrada, Fecha de salida, Equipo,
Defectacion, Costo, Tecnico, Observacion)
Observaciones: El Tecnico en Reparaciones no podrá actualizar ninguno de estos datos (Nombre,
Apellidos, Foto, Carnet, Telefono, Direccion, Fecha de entrada, Fecha de salida, Equipo, Defectacion, Costo,
Tecnico, Observacion)

Tabla 7 Eliminar Cliente


Fuente: Elaboración Propia

Historia del usuario


Numero: 3 Nombre Historia de Usuario: Eliminar Cliente
Usuario: Jefe Encargado del Taller Iteración Asignada: 3
Extensión de Historia de Usuario:
Programador Responsable: Edrianni Cruzata Downer
Prioridad de Negocio: Medio
Riesgo en Desarrollo: Medio
Descripción: El Jefe Encargado del Taller puede eliminar el contenido de cualquier cliente registrado en el
sistema
Observaciones: El Tecnico en Reparaciones no podrá eliminar datos de ningun cliente

Tabla 8 Buscar Cliente


Fuente: Elaboración Propia

Historia del usuario


Numero: 4 Nombre Historia de Usuario: Buscar Cliente
Usuario: Jefe Encargado del Taller Iteración Asignada: 4
Extensión de Historia de Usuario:
Programador Responsable: Edrianni Cruzata Downer
Prioridad de Negocio: Medio
Riesgo en Desarrollo: Medio
Descripción: El Jefe Encargado del Taller puede buscar cualquier cliente registrado en el sistema por el
numero del carnet de identidad
Observaciones: El Tecnico en Reparaciones también puede hacer busquedas en el sistema

Además, se levantaron los requisitos no funcionales en las tablas 8, 9, 10, 11 y 12 se muestran.

Tabla 9 Usabilidad
Fuente: Elaboración Propia

Historia de Usuario
Nombre historia: Usabilidad
Tipo: Nueva Usuario
Prioridad en negocio: Media Extensión de Historia de Usuario
Descripción
• El Sistema de Optimizacion de los procesos en un taller de electronica deberá ser una aplicación WEB.
• Contará con una ayuda para los usuarios, que explicará en detalle las funcionalidades del sistema.
• Debe presentar una interfaz agradable e intuitiva para el usuario.
Observación:
Es necesario que todos los tecnicos que operen en el sistema tengan conocimientos básicos de informática.
buena claridad en las escrituras, y claridad a la hora de relizar las operaciones de actualizar, registrar,
eliminar, guardar, buscar u otras.

Tabla 10 Seguridad
Fuente: Elaboración Propia

Historia de Usuario
Nombre historia: Seguridad
Tipo: Nueva Usuario
Prioridad en negocio: Media Extensión de Historia de Usuario
Descripción
• Cada usuario operará con el sistema mediante un usuario y una contraseña.
• Cada usuario accederá a la parte que le corresponde del sistema
Observación
Las contraseñas están encriptadas.
El acceso a la base de datos (BD) del sistema está protegido por contrasena
Se buscarán otras formas de seguridad en el lado del servidor con el uso de variables de session

Tabla 11 Fiabilidad
Fuente: Elaboración Propia

Historia de Usuario
Nombre historia: Fiabilidad
Tipo: Nueva Usuario
Prioridad en negocio: Media Extensión de Historia de Usuario
Descripción
• El sistema debe estar disponible un 95 % del tiempo dejando un 5% del tiempo para
labores de Mantenimiento, Actualizaciones y corrección de errores.
• El sistema debe permitir concurrencia.
• El tiempo de demora en las peticiones al servidor deberá oscilar entre 1 y 3 segundos
Observación
En cada entrega de software, deberá hacer test de aceptación. En cuanto a la base de datos debe garantizar
reglas de integridad (entidad, referencial y dominio). Luego de eso se garantiza que el contenido de la BD
sea consistente.

Tabla 12 Hardware
Fuente: Elaboración Propia

Historia de Usuario
Nombre historia: Hardware
Tipo: Nueva Usuario
Prioridad en negocio: Media Extensión de Historia de Usuario
Descripción
Procesador Intel Core i3 (Servidor)
Memoria RAM 4 GB
Disco Duro 250 GB
Tarjeta de Red: 100 Mb/s
Cliente (Requisitos Mínimos)
Pentium V a 1024 MHZ equivalente a 1GHZ
1 GB RAM
160 MB de espacio en Disco
Tarjeta de Red a 10 Mb/s
Observación
Ninguna

Tabla 13 Software
Fuente: Elaboración Propia

Historia de Usuario
Nombre historia: Hardware
Tipo: Nueva Usuario
Prioridad en negocio: Media Extensión de Historia de Usuario
Descripción
Python 3.11.5 y FastApi 0.100.0 como Servidor Web
10.4.28-MariaDB y como gestor de Bases de Datos.
BootsTrap 5.0.1 como Cliente Web
Observación
Ninguna

Durante la fase de planificación, se debe realizar una revisión exhaustiva de la literatura relacionada con el
tema de investigación. Esto implica la búsqueda y selección de fuentes relevantes, la lectura y análisis crítico
de los textos, y la identificación de las principales teorías y enfoques que se han utilizado en investigaciones
previas. Además, se debe definir el marco teórico y conceptual que servirá como base para el estudio, así como
establecer los objetivos específicos que se pretenden alcanzar con la investigación.

Estimación de historias de usuario basada en prioridad, riesgo y esfuerzo:


La estimación de historias de usuario es un proceso clave en el desarrollo ágil de software. Para llevar a cabo
esta tarea, se pueden utilizar diferentes criterios para evaluar la complejidad y el esfuerzo requerido para
implementar cada historia. Entre los criterios más comunes se encuentran la prioridad, el riesgo y el esfuerzo.

La prioridad se refiere a la importancia relativa de cada historia dentro del contexto del proyecto. Las
historias con mayor prioridad deben ser implementadas primero.

El riesgo se refiere a la probabilidad de que una historia presente problemas o dificultades durante su
implementación. Las historias con mayor riesgo deben ser evaluadas cuidadosamente antes de su
implementación.

El esfuerzo se refiere a la cantidad de trabajo necesario para implementar cada historia. Este criterio puede ser
evaluado en términos de tiempo, recursos o complejidad técnica.

Estimación de puntos de complejidad:

La estimación de puntos de complejidad es una técnica utilizada en el desarrollo ágil de software para evaluar
la complejidad relativa de cada historia de usuario. Esta técnica se basa en la asignación de puntos de
complejidad a cada historia, en función del esfuerzo y la dificultad requeridos para su implementación.

En esta técnica, se utiliza una escala de 1 a 5 para asignar los puntos de complejidad, siendo 1 el valor más bajo
y 5 el valor más alto. Además, se establece una equivalencia entre el tiempo de programación y el tiempo real
necesario para implementar cada historia. Por ejemplo, se puede establecer que un día de programación
equivale a una semana de trabajo real.

Al estimar los puntos de complejidad de cada historia, se consideran factores como la complejidad técnica, la
cantidad de trabajo necesario, la experiencia del equipo de desarrollo y otros factores relevantes. Estos puntos
son luego utilizados para planificar el trabajo y asignar las historias a los miembros del equipo.

Tabla 14 Estimación de historias de usuario


Fuente: Elaboración Propia

No Historia de Usuario Prioridad Riesgo Esfuerzo


.
1 Control de Acceso Alta Medio 4
2 Registrar Cliente Alta Medio 4
3 Actualizar Cliente Alta Medio 4
4 Eliminar Cliente Medio Medio 3
5 Buscar Cliente Medio Medio 2

2.3.3 Plan de entrega

En el plan de entrega se agruparon las historias de usuario que formaran una entrega y el orden en que se
realizaran las mismas. Para la creación de este plan se trabajó con el cliente, técnico y jefe encargado, el cual
ordeno y agrupo las historias según su prioridad, buscando un valor como salida.
Para implementar el plan de iteración, se basaría en la estimación del alcance del sistema y la velocidad de
desarrollo. Se dividirían las historias de usuario en grupos según su prioridad y se asignarían puntos a cada
grupo. Luego, se determinaría cuántos puntos se pueden completar en cada iteración en función de la velocidad
de desarrollo y se asignarían las historias de usuario correspondientes a cada iteración.

El progreso del proyecto se supervisaría en cada iteración y se realizarían ajustes según sea necesario para
garantizar que el proyecto se entregue dentro del plazo establecido y con la calidad requerida. Además, se
revisaría y aprobaría el plan de entrega y se asignarían los recursos necesarios para el desarrollo del sistema. El
cliente proporcionaría requisitos y retroalimentación sobre el sistema y aprobaría la entrega final del proyecto.

Jefe encargado:

- Revisión y aprobación del plan de entrega


- Asignación de recursos y supervisión del progreso del proyecto
- Mantenimiento y soporte técnico
- Aprobar la entrega final del proyecto

Técnico:

- Aporta al diseno
- Hace pruebas del sistema
- Aportar ideas

Cliente:

- Retroalimentación sobre el sistema

Grupos de historias según su prioridad:

Grupo 1: Historias de alta prioridad (5 puntos)

Grupo 2: Historias de prioridad media (3 puntos)

Grupo 3: Historias de baja prioridad (1 punto)

Estimación del plan de cálculo de cuántas iteraciones serán necesarias para desarrollar el sistema:

- Velocidad de desarrollo: 10 puntos por iteración


- Alcance del sistema: 30 puntos
- Iteraciones necesarias: 3 iteraciones

Plan de implementación en 3 iteraciones:

Iteración 1:

- Grupo 1: 10 puntos
- Grupo 2: 3 puntos
- Grupo 3: 2 puntos
- Total: 15 puntos

Iteración 2:

- Grupo 1: 10 puntos
- Grupo 2: 5 puntos
- Grupo 3: 3 puntos
- Total: 18 puntos

Iteración 3:

- Grupo 1: 5 puntos
- Grupo 2: 5 puntos
- Grupo 3: 2 puntos
- Total: 12 puntos

Total de puntos: 45 puntos

Velocidad de desarrollo estimada: 10 puntos por iteración

Iteraciones necesarias: 5 iteraciones

Se estima que el proyecto se completará en 5 iteraciones, lo que equivale a aproximadamente 12 semanas de


trabajo. Se espera que el sistema sea entregado dentro del plazo establecido y con la calidad requerida para
satisfacer las necesidades del cliente.
Plan de Duración de las Iteraciones

Supongamos que se han asignado los siguientes puntos de historia de usuario a cada tarea:

- Registrar cliente: 10 puntos


- Actualizar cliente: 8 puntos
- Eliminar cliente: 6 puntos
- Buscar cliente: 6 puntos

Siguiendo el plan propuesto, podríamos asignar los puntos de la siguiente manera:

- Iteración 1: Registrar cliente (10 puntos)


- Iteración 2: Actualizar cliente (8 puntos) + Eliminar cliente (6 puntos)
- Iteración 3: Buscar cliente (6 puntos) + Registrar cliente (10 puntos)
- Iteración 4: Actualizar cliente (8 puntos) + Eliminar cliente (6 puntos)
- Iteración 5: Buscar cliente (6 puntos) + Registrar cliente (10 puntos)
- Iteración 6: Actualizar cliente (8 puntos) + Eliminar cliente (6 puntos)
- Iteración 7: Buscar cliente (6 puntos) + Actualizar cliente (8 puntos)

En este ejemplo, se han agrupado las tareas en tres grupos según su complejidad y se han asignado los puntos
correspondientes a cada iteración en función de la velocidad de desarrollo del equipo. Cada iteración tendría
una duración aproximada de una semana, aunque esto dependerá del ritmo de trabajo del equipo y del grado de
complejidad de cada tarea.

Es importante destacar que este es solo un ejemplo y que la duración y la asignación de puntos pueden variar
en función de las necesidades y características específicas de cada proyecto. Lo importante es tener en cuenta
la velocidad de desarrollo del equipo y la complejidad de las tareas para planificar adecuadamente las
iteraciones y garantizar el éxito del proyecto.

Plan de Entrega

La fecha de inicio del proyecto sería el 1 de junio y la fecha final el 30 de septiembre, con una fecha de entrega
prevista para el 15 de octubre. Esto permitiría al equipo tener un margen de tiempo adicional para realizar
pruebas y correcciones antes de la entrega final del proyecto.

ARREGLAR
Tabla 15 Plan de Entrega
Fuente: Elaboración Propia

Iteración Iteración 1 Iteración 2 Iteración 3 Iteración 4


Entrega Inicio 01/06/23 Inicio 03/07/23 Inicio 03/10/23 Inicio 10/10/23
Final 01/07/23 Final 01/08/23 Final 25/10/23 Final 8/11/23

Fecha de entrega Fecha de entrega Fecha de entrega Fecha de entrega


02/09/22 02/10/22 26/10/22 15/10/22

2.3.2 Análisis económico de la propuesta de optimización de procesos en un taller de reparaciones


electrónicas:

Costos tangibles:

- Costo de desarrollo del sistema: incluye el costo de contratar a un equipo de desarrolladores, adquirir
hardware y software necesario para el desarrollo, y cualquier otro gasto asociado. Estimado en $50,000.
así como los costos de instalación y configuración. Este costo puede variar dependiendo del proveedor y las
necesidades específicas del taller.
- Costo de implementación del sistema: incluye el costo de instalar el sistema en el taller, capacitar al personal
y realizar cualquier ajuste necesario, stimado en $10,000. Este incluye el costo de adquirir el software y
hardware necesario para implementar el sistema
- Costo de mantenimiento del sistema: incluye el costo de mantener el sistema actualizado y en
funcionamiento, así como cualquier costo asociado con la resolución de problemas. Estimado en $5,000 por
año. El sistema requerirá mantenimiento periódico para asegurar su correcto funcionamiento. Este costo puede
incluir actualizaciones de software y hardware, así como reparaciones.
- Costo de capacitación: Es importante capacitar al personal del taller para que puedan utilizar el sistema de
manera efectiva. Este costo puede incluir la contratación de un capacitador o el pago de cursos en línea.

Costos intangibles:

- Esfuerzo requeridos para implementar el sistema: puede requerir una cantidad significativa de tiempo y
esfuerzo por parte del personal del taller para implementar el sistema. Esto podría afectar la productividad y
generar costos indirectos.
- Riesgo de fallas técnicas o problemas de compatibilidad: existe un riesgo potencial de que el sistema no
funcione correctamente o no sea compatible con otros sistemas utilizados por el taller. Esto podría generar
costos indirectos y afectar la eficiencia del taller.
- Tiempo de implementación: La implementación del sistema puede requerir tiempo adicional del personal del
taller, lo que puede afectar la productividad durante ese período.
- Resistencia al cambio: Puede haber resistencia por parte del personal del taller al cambio en los procesos y a
la implementación del sistema. Esto puede generar conflictos y retrasar la adopción del sistema.

Beneficios tangibles:

- Reducción de costos laborales: el sistema puede ayudar a reducir los costos laborales al automatizar tareas
repetitivas y reducir la necesidad de personal adicional.
- Reducción de costos de inventario: el sistema puede ayudar a reducir los costos de inventario al proporcionar
información en tiempo real sobre los niveles de inventario y las necesidades de reposición.
- Aumento de la eficiencia: el sistema puede ayudar a aumentar la eficiencia del taller al automatizar tareas y
proporcionar información en tiempo real sobre los procesos.
- Reducción de costos operativos: El sistema puede ayudar a reducir los costos operativos al mejorar la
eficiencia y reducir errores en los procesos.
- Ahorro de tiempo: Al automatizar ciertos procesos, el personal del taller puede ahorrar tiempo en tareas
administrativas y enfocarse en tareas más importantes.
- Mejora en la calidad del servicio: El sistema puede ayudar a mejorar la calidad del servicio al reducir errores
y mejorar la precisión en la gestión de reparaciones.

Beneficios intangibles:

- Mejora en la satisfacción del cliente: el sistema puede ayudar a mejorar la satisfacción del cliente al
proporcionar información precisa sobre el estado de las reparaciones y reducir el tiempo de espera.
- Mejora en la calidad del trabajo: el sistema puede ayudar a mejorar la calidad del trabajo al reducir errores y
garantizar que se sigan los procedimientos adecuados.
- Mejora en la reputación del taller: la implementación de un sistema moderno y eficiente puede ayudar a
mejorar la reputación del taller y generar más negocios.
- Mejora la opinión del cliente: Al mejorar la calidad del servicio, se espera que la satisfacción del cliente
mejore, lo que puede generar clientes leales y una mejor reputación para el taller.
- Mejora en el ambiente laboral: La implementación del sistema puede mejorar el ambiente laboral al reducir el
estrés y la carga de trabajo del personal del taller.

En conclusión, la implementación del sistema para optimizar los procesos en un taller especializado de
reparaciones electrónicas puede generar costos tangibles como la adquisición e implementación del sistema, el
costo de capacitación y el costo de mantenimiento. También puede generar costos intangibles como el tiempo
de implementación y la resistencia al cambio. Sin embargo, los beneficios tangibles incluyen la reducción de
costos operativos, el ahorro de tiempo y la mejora en la calidad del servicio. Los beneficios intangibles
incluyen la mejora en la satisfacción del cliente y el ambiente laboral.
Ademas la implementación de un sistema de optimización de procesos en un taller de reparaciones electrónicas
puede generar costos significativos, tanto tangibles como intangibles. Sin embargo, los beneficios potenciales,
como la reducción de costos laborales, la mejora en la eficiencia y la satisfacción del cliente, pueden
compensar estos costos a largo plazo. Es importante realizar un análisis detallado de los costos y beneficios
antes de tomar una decisión final sobre la implementación del sistema.
2.4 Fase de Iteración

Esta fase incluye cuatro iteraciones sobre el sistema antes de que se entregue por completo al cliente. Las
historias de usuario seleccionadas para cada entregable se desarrollaron y probaron en un ciclo iterativo.

En la primera iteración se establece la arquitectura del sistema que se utilizará durante el resto del proyecto. Es
compatible con el patrón arquitectónico MVC como se describe a continuación:

Modelo: Contiene los métodos que interactúan directamente con la base de datos y realizan todas operaciones
con esta, dígase inserción, modificación, listar y eliminar.

Vista: Contiene únicamente código HTML y hojas de estilo CSS, envía los datos directamente al controlador
mediante los formularios con el método POST.

Controlador: Recibe los datos enviados por la vista, los procesa y a la ves los envía al modelo para el trabajo
de los métodos del mismo con la base de datos, también recibe información del modelo en forma de arreglos
principalmente de las consultas realizadas a la base de datos y las envía a la vista para su visualización por
parte del usuario.

2.4.1 Tareas de Ingeniería para XP

Al comienzo de cada iteración, las historias de los usuarios se traducen en tareas de programaciones
específicas. A continuación, en las tablas 20, 21 y 22 se muestran las tareas programadas.

ARREGLAR
Tabla 16 Tarea de Ingeniería Registrar Cliente
Fuente Elaboración Propia

Tarea de Ingeniería
No. Tarea: 1 Historia de Usuario (No. y Nombre): Registrar Cliente
Nombre Tarea: Registrar Cliente
Tipo de Tarea: Desarrollo Puntos Estimados: 10
Fecha de Inicio: Fecha Final:
Programador Responsable: Edrianni Cruzata Downer
Descripción:
Diseñar una vista que permita al usuario que interactuara con el sistema insertar un cliente. Programar un
método para insertar en la clase correspondiente

Tabla 17 Tarea de Ingeniería Actualizar Cliente


Fuente: Elaboración Propia

Tarea de Ingeniería
No. Tarea: 1 Historia de Usuario (No. y Nombre): Actualizar Cliente
Nombre Tarea: Actualizar Cliente
Tipo de Tarea: Desarrollo Puntos Estimados: 8
Fecha de Inicio: Fecha Final:
Programador Responsable: Edrianni Cruzata Downer
Descripción:
Diseñar una vista que permita al usuario que interactuara con el sistema actualizar un cliente. Programar un
método para insertar en la clase correspondiente

Tabla 18 Tarea de Ingeniería Buscar Cliente


Fuente: Elaboración Propia

Tarea de Ingeniería
No. Tarea: 1 Historia de Usuario (No. y Nombre): Buscar Cliente
Nombre Tarea: Buscar Cliente
Tipo de Tarea: Desarrollo Puntos Estimados: 6
Fecha de Inicio: Fecha Final:
Programador Responsable: Edrianni Cruzata Downer
Descripción:
Diseñar una vista que permita al usuario que interactuara con el sistema buscar un cliente. Programar un
método para insertar en la clase correspondiente

2.4.2 Diseño del sistema

En el diseño del sistema de optimización de procesos en un taller especializado de reparaciones electrónicas, es


importante establecer denominaciones claras de clases y objetos para facilitar la comprensión y mantenimiento
del código. Además, se deben utilizar patrones generales de software para garantizar la eficiencia y efectividad
del sistema.

En cuanto a la definición de clases modelo, controlador e interfaz, es necesario tener en cuenta que el modelo
debe representar la estructura de datos y las reglas de negocio del sistema, el controlador debe gestionar las
interacciones entre el modelo y la vista, y la interfaz debe proporcionar una forma intuitiva para que los
usuarios interactúen con el sistema.

En este diseño del sistema, se deben aplicar patrones como el patrón experto para garantizar que cada clase
tenga una responsabilidad clara y definida, el patrón creador para facilitar la creación de objetos y reducir la
complejidad del código, y el patrón bajo acoplamiento para minimizar las dependencias entre las diferentes
partes del sistema.

También es importante aplicar el patrón alta cohesión para asegurar que cada clase tenga una única
responsabilidad y que los métodos estén relacionados con esa responsabilidad. Finalmente, se debe
implementar un controlador que gestione las interacciones entre la vista y el modelo, garantizando así una
comunicación eficiente y efectiva entre las diferentes partes del sistema.

- Patrón Experto: Este patrón se refiere a la asignación de responsabilidades claras y específicas a cada clase
en el sistema. La idea es que cada clase sea un experto en su propia área de conocimiento y tenga la capacidad
de tomar decisiones y realizar acciones relacionadas con su responsabilidad. Esto permite una mayor eficiencia
y facilidad de mantenimiento del código.

- Patrón Creador: Este patrón se utiliza para simplificar la creación de objetos en el sistema. En lugar de tener
una clase que se encargue de crear todos los objetos, se crean clases especializadas que se encargan de la
creación de objetos específicos. Esto reduce la complejidad del código y facilita el mantenimiento.

- Patrón Bajo Acoplamiento: Este patrón se refiere a la minimización de las dependencias entre las diferentes
partes del sistema. El objetivo es que cada clase tenga un bajo acoplamiento con las demás, lo que significa que
los cambios en una clase no afecten a las demás. Esto permite una mayor flexibilidad y facilidad de
mantenimiento del código.

- Patrón Alta Cohesión: Este patrón se refiere a la asignación de una única responsabilidad a cada clase y a la
relación entre los métodos de la clase y esa responsabilidad. El objetivo es que cada clase tenga una alta
cohesión, lo que significa que los métodos estén relacionados con la responsabilidad de la clase. Esto permite
una mayor eficiencia y facilidad de mantenimiento del código.

- Controlador: El controlador es una clase que se encarga de gestionar las interacciones entre la vista y el
modelo en el sistema. Su objetivo es garantizar una comunicación eficiente y efectiva entre las diferentes
partes del sistema. El controlador se encarga de recibir los eventos de la vista, procesarlos y enviarlos al
modelo para que se realicen las acciones correspondientes. También se encarga de recibir la respuesta del
modelo y enviarla de vuelta a la vista para que se muestre al usuario.

En resumen, el diseño del sistema de optimización de procesos en un taller especializado de reparaciones


electrónicas debe tener en cuenta la definición clara de clases y objetos, la aplicación de patrones generales de
software y específicos como el experto, creador, bajo acoplamiento y alta cohesión, y la implementación de un
controlador eficiente para gestionar las interacciones entre la vista y el modelo. Todo esto permitirá la creación
de un sistema eficiente y efectivo para la gestión de reparaciones en el taller.
Tabla 19 Clase Modelo Cliente
Fuente: Elaboración Propia

Nombre Clase: MCliente


Responsabilidad: Colaboradores:
Public function Insertar_Cliente ($data); CI_Model
Public function Listar_Cliente(); CCliente
Public function Actualizar_Cliente ($id, $datos);
Public function Eliminar_Cliente ($id);
Public function Buscar_Cliente ($id);

Tabla 20 Clase Controladora Expedientes


Fuente: Elaboración Propia

Nombre Clase: CCliente


Responsabilidad: Colaboradores:
Public function Insertar_Cliente ($data); CI_Controller
Public function Listar_Cliente(); MCliente
Public function Actualizar_Cliente ($id, $datos);
Public function Eliminar_Cliente ($id);
Public function Buscar_Cliente ($id);

2.4.3 Diseño de la Base de Datos

Para el sistema informático propuesto, se muestra el diseño de la base de datos utilizando como modelo
conceptual el modelo Entidad-Relación. El Modelo está compuesto por 3 entidades y 2 relaciones (Ver Figura
3).

Figura 3 Diagrama Entidad-Relación


Fuente: Elaboración Propia

Para la representación de la información en el nivel lógico global se utilizó el modelo de datos relacional,
implementando estructuras de datos organizadas en relaciones. El modelo creado se obtiene a partir del modelo
conceptual y se encuentra en FNBC, la estructura es la siguiente:

Cliente (Carnet, Nombre, Apellidos, Foto, Telefono, Direccion, F_Entrada, F_Salida, Equipo, Defectacion,
Costo, Tecnico, Observacion)
Administrar (id, username, contrasena, tipousuario, activo)

Para garantizar la consistencia de la BD se toman las siguientes acciones de protección:


• Para la recuperación de la BD en caso de fallas, utilizar backups programados por el administrador del
sistema.
• Control de concurrencia como parte del procesamiento de transacciones garantizandoatomicidad, consistencia
y durabilidad.
Para evitar aspectos indeseables fueron impuestas restricciones de integridad de entidad, de dominio y
referencial. Para garantizar la integridad de entidad, a cada relación se declara una llave primaria garantizando
que no existan dos tuplas iguales

2.4.4 Diseño de interfaz

En el diseño de la interfaz se tuvieron en cuenta las siguientes especificaciones:


• Fue utilizado el marco del trabajo del lado cliente Bootstrap lo cual permitió lograr un diseño responsive, el
cual se adapta a una gran variedad de tamaños de pantalla añadiendo modernidad y frescura al diseño y los
estilos fueron definidos con los CSS propios del frameworks.
• La aplicación utilizó imágenes en formato .PNG para mantener un equilibrio entre compresión (tamaño) y
calidad.
• Se utilizaron colores degradados y las combinaciones de colores de fondo y primer plano tienen suficiente
contraste para ser vistos por personas con déficit de percepción del color. Se mantuvo un diseño lógico y
uniforme.
• Los controles que no se pueden usar en cada pantalla no estuvieron presentes o se mostraron como inactivos.
En las figuras 4, 5, 6 y 7 se muestran algunas de las pantallas principales del sistema

Figura 1 Pantalla de Portada


Fuente: Elaboración Propia

Figura 2 Pantalla de Login


Fuente: Elaboración Propia
Figura 3 Pantalla Insertar Cliente
Fuente: Elaboración Propia

Figura 4 Pantalla de Actualizar Cliente


Fuente: Elaboración Propia

Figura 5 Pantalla de Listar Cliente


Fuente: Elaboración Propia
2.4.5 Desarrollo

Los estándares de codificación utilizados en la implementación de sistemas basados en la guía de estilo para
código Python, como la PEP 8, son muy importantes para mejorar la legibilidad, mantenibilidad y eficiencia
del código. A continuación, se describen algunos de los estándares más relevantes:

Tipo de Standard Descripcion


Identación La PEP 8 establece que se debe utilizar una identación de cuatro
espacios para cada nivel de indentación en el código. Esto ayuda a
mejorar la legibilidad del código y a mantener una estructura clara.
Nombres de variables y funciones Es importante utilizar nombres descriptivos y claros para las variables y
funciones. Se recomienda utilizar letras minúsculas separadas por
guiones bajos (_), y evitar nombres demasiado largos o confusos.
Además, se deben evitar las palabras reservadas de Python como
nombres de variables o funciones.
Longitud de línea Las líneas de código no deben superar los 79 caracteres. Esto ayuda a
mejorar la legibilidad del código y a evitar problemas de visualización
en diferentes pantallas o editores de texto. En caso de que sea necesario,
se puede continuar la línea utilizando paréntesis o backslashes (\).
Espacios en blanco Es importante utilizar un espacio en blanco alrededor de los operadores
y después de las comas en las listas y tuplas. Esto ayuda a mejorar la
legibilidad del código y a mantener una estructura clara.
Comentarios Los comentarios son muy importantes para explicar el propósito del
código y hacerlo más comprensible para otros desarrolladores. Se
recomienda utilizar comentarios claros y concisos, y explicar el
propósito de las funciones y las variables.
Docstrings Las funciones deben incluir un docstring que explique su propósito y
sus parámetros. Esto ayuda a mejorar la legibilidad del código y a
facilitar su uso por otros desarrolladores.
Importaciones Las importaciones deben realizarse al inicio del archivo, y se
recomienda agruparlas según su origen. Esto ayuda a mantener una
estructura clara y a facilitar la identificación de las dependencias del
código.
Clases, propiedades y métodos Es importante utilizar nombres descriptivos para las clases, propiedades
y métodos. Se recomienda utilizar CamelCase para los nombres de las
clases, y letras minúsculas separadas por guiones bajos (_), para los
nombres de las propiedades y métodos.
Codificación de caracteres Es importante utilizar la codificación adecuada para el archivo de
código. Se recomienda utilizar UTF-8 para garantizar la compatibilidad
con diferentes sistemas operativos y editores de texto.
Codificación de caracteres Es importante mantener una estructura clara y organizada para el
código. Se recomienda agrupar las funciones y variables relacionadas en
secciones lógicas, y mantener una estructura clara para las clases y
métodos

2.4.6 Pruebas

A continuación, se muestran los resultados de las pruebas realizadas al sistema informático. La importancia de
realizar estas pruebas está íntimamente relacionada con la calidad del producto que se entregará al cliente y eso
estará indisolublemente ligado al futuro uso que se le dé al sistema. Se muestran las pruebas realizadas en la
iteración 1, se realizaron pruebas unitarias y pruebas de aceptación. A continuacionl las pruebas unitarias y las
pruebas de aceptación

Tabla 21 Resumen de Ejecución de las Pruebas Unitarias


Fuente: Elaboración Propia

Historias de Usuario Número de Pruebas Realizadas Numero de Errores Encontrados


Registrar Expediente 10 6
Actualizar Cliente 7 4
Buscar Cliente 5 2
Eliminar Cliente 4 3
Listar Cliente 4 1
Total 30 16
Como se muestra en la Tabla 21, fueron encontrados inicialmente 16 errores en la ejecución de las pruebas, los
cuales fueron sometidos a las correcciones correspondientes. Asimismo, se generaron nuevas pruebas para
comprobar que el error fue resuelto ante de liberar.

2.4.8 Pruebas de Aceptación

Se crearon pruebas de aceptación en apoyo de las historias de usuario, en cada ciclo de iteración de desarrollo.
El cliente preparó las pruebas funcionales para validar su implementación. También se encargó de verificar que
los resultados de estas pruebas sean correctos. Las tablas 22, 23 y 24 muestran un ejemplo de las pruebas
desarrolladas en la primera iteración.

Tabla 26 Caso de Prueba 1 Registrar Cliente con datos erróneos


Fuente: Elaboración Propia

Caso de Prueba de Aceptación


Código: CP1 Historia de Usuario (No. y Nombre): Registrar Cliente
Nombre de la Persona que realiza la Prueba: Edrianni Cruzata Downer
Descripción de la prueba: Registrar Cliente con datos erróneos
Condiciones de Ejecución:
• Base de Datos Creada
• El Tecnico debe estar autenticado en el sistema
• La tabla: cliente
Pasos de entrada/ejecución:
• Click en Registrar
• Ingrese los datos del cliente
• Presione el Botón Agregar
Resultado Esperado:
• Mensaje de Error
Calificación de la prueba: Satisface al Cliente

Tabla 27 Caso de Prueba 2 Registrar Cliente con datos correctos


Fuente: Elaboración Propia

Caso de Prueba de Aceptación


Código: CP2 Historia de Usuario (No. y Nombre): Registrar Cliente
Nombre de la Persona que realiza la Prueba: Edrianni Cruzata Downer
Descripción de la prueba: Registrar Cliente con datos correctos
Condiciones de Ejecución:
• Base de Datos Creada
• El Tecnico debe estar autenticado en el sistema
• La tabla: cliente
Pasos de entrada/ejecución:
• Click en Registrar
• Ingrese los datos del cliente
• Presione el Botón Agregar
Resultado Esperado:
• Mensaje verificando que el cliente fue registrado correctamente
Calificación de la prueba: Satisface al Cliente

Tabla 28 Caso de Prueba 3 Insertar Cliente con datos vacios


Fuente: Elaboración Propia

Caso de Prueba de Aceptación


Código: CP3 Historia de Usuario (No. y Nombre): Registrar Cliente
Nombre de la Persona que realiza la Prueba: Edrianni Cruzata Downer
Descripción de la prueba: Registrar Cliente con datos vacios
Condiciones de Ejecución:
• Base de Datos Creada
• El Tecnico debe estar autenticado en el sistema
• La tabla: cliente
Pasos de entrada/ejecución:
• Click en Registrar
• Ingrese los datos del cliente
• Presione el Botón Agregar
Resultado Esperado:
• Mensaje error que cada uno de los campos son requeridos
Calificación de la prueba: Satisface al Cliente

Las pruebas realizadas brindaron la retroalimentación necesaria para poder solucionar los errores y tener una
aplicación de calidad. Los requisitos no funcionales a verificar son los especificados en la tabla 9, 10, 11. El
propósito de la verificación es el aseguramiento de la calidad del software y el cumplimiento de los requisitos
especificados por el cliente. Para llevar a cabo esta evaluación, se aplicó un cuestionario a los tecnicos del
sistema. La Exposición estaba formada por técnicos de diferentes talleres de reoaraciones. La Tabla 29 muestra
los datos de las respuestas dadas.

Tabla 29 Verificación de Requisitos Funcionales


Fuente: Elaboración Propia

Característica Pregunta Respuesta Cant.


FIABILIDAD ¿La información ofrecida por el sistema le parece SI 9
correcta? NO 2
SIN OPINION 0
¿Cree usted que la disponibilidad del sistema es SI 8
correcta? NO 1
SIN OPINION 0
SEGURIDAD ¿Considera adecuado el mecanismo de acceso al SI 10
sistema mediante usuario y contraseña? NO 0
SIN OPINION 0
USABILIDAD ¿Considera que la aplicación genera mensajes de SI 8
confirmación para cada una de las operaciones que NO 2
realiza? SIN OPINION 0
En la primera pregunta un 90 % considera correcta la información ofrecida por el sistema, además un 80%
plantea
que es correcta la disponibilidad del sistema, un 100 % plantea como correcto y adecuado el mecanismo de
seguridad empleado para acceder al sistema en el caso de la usabilidad un 80 % la considera satisfactoria.

Conclusiones del Capitulo

El capítulo 2 de esta tesis ha sido un elemento fundamental para establecer los requerimientos funcionales y no
funcionales del taller de reparaciones electrónicas, así como para estimar la prioridad y el riesgo de desarrollo
de cada uno de ellos. En este sentido, se ha llevado a cabo un proceso riguroso de análisis y evaluación que ha
permitido identificar las necesidades específicas del taller y establecer una hoja de ruta clara para su desarrollo.

En primer lugar, se han definido los requerimientos funcionales, es decir, las funciones que debe ser capaz de
realizar el taller para satisfacer las necesidades de sus clientes. Estos requerimientos se han establecido a través
de la definición de historias de usuarios, que son narrativas que describen cómo los usuarios interactúan con el
sistema en diferentes situaciones. De esta manera, se ha podido identificar las funcionalidades clave del taller,
como la gestión de reparaciones, la gestión de inventario y la facturación, entre otras.

Por otro lado, se han establecido los requerimientos no funcionales, que son aquellos aspectos que no están
relacionados directamente con la funcionalidad del sistema, pero que son igualmente importantes para su éxito.
Estos requerimientos incluyen aspectos como la seguridad, la escalabilidad y la usabilidad del sistema. Para
cada uno de estos requerimientos se ha establecido una prioridad y un riesgo de desarrollo, lo que ha permitido
determinar cuáles son los aspectos más críticos a abordar en las primeras etapas del proyecto.

Además, en este capítulo se ha analizado la viabilidad económica del proyecto, a través de la elaboración de un
plan de negocios detallado. Este plan ha permitido evaluar los costos y beneficios del proyecto, así como
establecer una estrategia clara para su financiamiento y desarrollo.

Finalmente, se ha definido la metodología para las iteraciones y pruebas, lo que permitirá llevar a cabo un
proceso de desarrollo ágil y eficiente. Esta metodología se basa en la realización de pruebas continuas y en la
retroalimentación constante por parte de los usuarios, lo que garantizará que el sistema cumpla con los
requerimientos establecidos y sea fácil de usar para sus usuarios.

En conclusión, el capítulo 2 de esta tesis ha sido un elemento clave para establecer las bases del proyecto de
taller de reparaciones electrónicas. Gracias a este análisis riguroso y detallado, se han identificado las
necesidades específicas del taller, se ha establecido una hoja de ruta clara para su desarrollo y se ha definido
una estrategia eficiente para llevar a cabo el proceso de desarrollo. Todo esto permitirá mejorar
significativamente los procesos del taller, incrementar la eficiencia y reducir costos, lo cual se traducirá en un
beneficio tanto para la empresa como para sus clientes.

Conclusiones generales

En conclusión, la optimización de los procesos en un taller de reparaciones electrónicas es esencial para


mejorar la eficiencia y la calidad del servicio ofrecido a los clientes. La metodología XP empleada, junto con
Python como lenguaje del lado del servidor y Bootstrap del lado del cliente, ha demostrado ser una solución
efectiva para abordar los desafíos que se presentan en este campo.

La implementación de esta metodología ha permitido la automatización de procesos clave, como la gestión de


inventario, la programación de citas y el seguimiento de reparaciones, lo que ha mejorado significativamente la
eficiencia del taller. Además, la utilización de Python como lenguaje del lado del servidor ha permitido una
mayor flexibilidad en la personalización de las soluciones, lo que ha permitido adaptarse a las necesidades
específicas del taller.

El uso de Bootstrap como marco de trabajo para el desarrollo del lado del cliente ha permitido la creación de
una interfaz de usuario moderna y fácil de usar, lo que ha mejorado la experiencia del cliente y ha contribuido
a aumentar su satisfacción.

En general, la optimización de los procesos en un taller de reparaciones electrónicas es un proceso continuo


que requiere una atención constante y una mejora continua. Sin embargo, la implementación de la metodología
XP, junto con Python y Bootstrap, ha demostrado ser una solución efectiva para abordar estos desafíos y
mejorar la calidad del servicio ofrecido a los clientes.
Recomendaciones
Bibliografia

También podría gustarte