Tesina Sistema de información para la gestión de registros...
Transcript of Tesina Sistema de información para la gestión de registros...
UNIVERSIDAD POLITÉCNICA DE SINALOA
PROGRAMA ACADÉMICO DE
INGENIERÍA EN INFORMÁTICA
Tesina
“Sistema de información para la gestión de
registros de mantenimiento a dispositivos en
CFE”
Para cumplir la acreditación de las estadías
profesionales y contar con los créditos necesarios
para obtener el grado de Ingeniero en Informática
Autor:
Espino Cárdenas Jesús Alfredo
Asesor:
M. C. Gloria Irene Téllez Rodríguez
Asesor OR:
Ing. Alejandro Jiménez De La Peña
Mazatlán, Sinaloa 12 de diciembre de 2019
AGRADECIMIENTOS
Agradezco a mis padres y hermanas por apoyarme incondicionalmente a lo
largo de mi educación y en mi vida.
A mis profesores, por facilitarme el conocimiento y habilidades que me serán
útiles en mi profesión.
Índice temático
Índice de figuras
Índice de tablas
Resumen ............................................................................................................... 1
Abstract .................................................................................................................. 1
Introducción ........................................................................................................... 1
Capítulo I ............................................................................................................... 3
1.1 Antecedentes ................................................................................................... 4
Antecedentes históricos...................................................................................... 4
1.1.1 Localización ............................................................................................... 5
1.1.2 Objetivos de la institución .......................................................................... 6
1.1.3 Misión ........................................................................................................ 6
1.1.4 Visión......................................................................................................... 6
1.2 Planteamiento del problema ............................................................................. 6
1.2.1 Propuesta de Investigación ........................................................................ 7
1.2.2 Objetivos de la investigación ..................................................................... 7
1.2.2.1 Objetivo General ..................................................................................... 8
1.2.2.2 Objetivos particulares ............................................................................. 8
1.2.3 Preguntas de Investigación ........................................................................ 8
1.2.4 Hipótesis .................................................................................................... 8
1.2.5 Limitaciones y supuestos ........................................................................... 9
1.2.6 Relevancia ................................................................................................. 9
Capítulo II ............................................................................................................ 11
2.1 Marco conceptual ........................................................................................... 12
2.1.1 Conceptos preliminares ........................................................................... 12
2.1.2 Trabajos relacionados ............................................................................. 28
Capítulo III ........................................................................................................... 31
3.1 Diseño ............................................................................................................ 32
3.2 Desarrollo....................................................................................................... 33
3.2.1 Herramientas ........................................................................................... 33
3.2.2 Desarrollo del sistema ............................................................................. 35
3.2.3 Pruebas de solución ................................................................................ 49
Resultados y discusiones ..................................................................................... 51
Conclusiones ....................................................................................................... 55
Bibliografía ........................................................................................................... 56
Glosario ............................................................................................................... 60
Índice de figuras
Figura 1.1 Ubicación geográfica de la planta José Aceves Pozos ................... 5
Figura 2.1 Arquitectura cliente-servidor. ........................................................ 14
Figura 2.2 Ejemplo de modelo entidad relación............................................. 17
Figura 2.3 Ejemplo de datos en el modelo no relacional. .............................. 18
Figura 2.4 Ejemplo de tablero Kanban. ......................................................... 24
Figura 3.1 Diseño de módulo del sistema. .................................................... 36
Figura 3.2 Diagrama del flujo de módulos. .................................................... 37
Figura 3.3 Módulo de inicio de sesión. .......................................................... 38
Figura 3.4 Módulo de inicio de técnico. ......................................................... 38
Figura 3.5 Módulo para agregar registro de mantenimiento. ......................... 39
Figura 3.6 Módulo de tabla de registros por orden de trabajo. ...................... 39
Figura 3.7 Módulo de tabla de registros por tipo de instrumento. .................. 40
Figura 3.8 Estructura de archivos de CodeIgniter ......................................... 40
Figura 3.9 Contenido de la carpeta application de CodeIgniter. .................... 41
Figura 3.10 Repositorio del sistema en GitHub. ............................................ 48
Figura 3.11 Creación de nuevo proyecto en el repositorio. ........................... 48
Figura 3.12 Creación de nuevo columna en tablero. ..................................... 49
Figura 3.13 Tablero con actividades. ............................................................ 49
Figura 3.14 Encuesta para evaluar comodidad del sistema. ......................... 50
Figura 3.15. Gráfica de resultados de comodidad ......................................... 52
Figura 3.16. Gráfica de resultados de tiempo ................................................ 53
Índice de tablas
Tabla 1. Resultados de encuesta de comodidad ........................................... 51
Tabla 2. Resultados de prueba de eficiencia ................................................. 52
1
Resumen
La presente tesina se llevó a cabo con la finalidad de acreditar la carrera de
ingeniería en informática en la Universidad Politécnica de Sinaloa. Se enfoca en
resolver una problemática en un departamento de la empresa Comisión Federal de
Electricidad la cual consiste en deficiencias e inseguridades de información de
registros de mantenimiento. La solución propuesta consiste en uso de tecnologías
web para el desarrollo de un sistema a fin de ser utilizado por los técnicos del
departamento. Se tiene como hipótesis que el uso del sistema desarrollado
simplificará y agilizará el proceso de agregar y acceder a dicha información. En el
contenido de la tesina se explican las herramientas utilizadas, la metodología que
fue seguida y las diferentes pruebas para verificar la valides de la hipótesis. A pesar
de que ciertos datos fueron omitidos debido a que son confidenciales, se muestran
esquemas y diseños que fueron utilizados en el modelo y desarrollo del sistema
planteado.
Abstract
The present thesis was made in order to earn an informatics degree at Universidad
Politécnica de Sinaloa. It aims to solve a problem present in a department ay CFE,
which consists in deficiencies and security flaws of the information of maintenance
reports. The proposed solution consists in the use of web technologies for the
development of a system that could be used by the technicians in the department. It
is hypothesized that the use of the system will simplify and streamline the process
of adding and accessing to the information. The tools and methodologies used, as
well as the method to test the hypothesis, are explained in the different chapters of
this thesis. Even though information was omitted due to confidentiality, schemes and
designs that were used in the modeling and development of the system are shown
in the chapters.
Introducción
Dentro de toda empresa existe información de gran importancia. El valor intrínseco
de esta depende del uso que se le dé. Un ejemplo de esto son los registros de
2
mantenimiento en CFE, los cuales ayudan a mantener un historial sobre el estado
de los dispositivos en fechas pasadas. Estos pueden ser de gran utilidad para tomar
decisiones y mantener todos los sistemas en funcionamiento dentro de la central.
No obstante, el mal manejo de la información puede causar ineficiencias en las
actividades e inclusive la perdida de la misma, lo cual puede afectar la productividad
en el departamento.
El uso de un sistema para la gestión de la información puede resolver este
problema, además de proporcionar otros beneficios. Con la implementación de
tecnologías de la información para solución de problemas, se pueden crear
herramientas útiles para la segura y eficiente gestión de la información de las
empresas como CFE.
3
Capítulo I Antecedentes y planteamiento del problema
4
1.1 Antecedentes
Antecedentes históricos
La Central Termoeléctrica José Aceves Pozos de Mazatlán comenzó a
funcionar en el año 1977, es decir, que tiene 41 años trabajando de una manera
eficaz, a pesar de que su vida útil solo sea de 30 años. En 2012 a esta central se le
implementó un sistema capturador de partículas en el área de las chimeneas, con
la finalidad de evitar la contaminación de gases de efecto invernadero a la atmósfera
(cabe mencionar que este sistema nunca ha trabajado a su 100% es decir, emite
gases contaminantes). Las cenizas que desprende son recolectadas en costales y
almacenadas en espera de que alguna empresa externa las recoja para su
tratamiento. Estás cenizas están constituidas de elementos tales como silicio y
aluminio entre otros, los cuales son útiles en grandes cantidades para la aplicación
en cuestiones estructurales (estos son almacenados y vendidos a empresas que
aplican tratamiento a estos residuos).
Esta central cuenta con tres unidades turbogeneradores, dos de 158 MW y una de
300 MW, lo que hace un total de 616 MW. Estas están integradas cada una por un
generador de vapor tipo tubos de agua de circulación natural, con hogar presurizado
de paredes soldables enfriadas con agua, la presurización de la caldera es a través
de ventiladores de tiro forzado, el desalojo de los gases de combustión se realiza
mediante una chimenea para cada unidad. A continuación, se enlistan las fechas de
inicio de operación de cada unidad de la central termoeléctrica:
• La Unidad No. 1 inició su operación el 14 de noviembre de 1976.
• La unidad No. 2 inició su operación el 11 de noviembre de 1976.
• La Unidad No. 3 inició su operación el 01 de noviembre de 1981.
Esta planta se alimenta de combustóleo para su funcionamiento, el cual se obtiene
del muelle fiscal o de la estación de bombeo de PEMEX, por medio de oleoductos
donde se almacenan en 3 tanques. El agua para los procesos de enfriamiento se
obtiene del Estero de la Sirena, que se encuentra justo alado de las instalaciones
de la planta. Además del proceso de enfriamiento, esta agua se utiliza para la
producción de agua dulce para las calderas, la cual se realiza por medio de
5
desaladoras de agua, para poder realizar este proceso se le aplica un tratamiento
químico para disminuir su salinidad, ya que el agua salada causa corrosión que
afectaría las calderas y diversos materiales. [1]
1.1.1 Localización
La central Termoeléctrica José Aceves Pozos está ubicada en Carretera
internacional kilómetro 10, Col. Estero de la Sirena, C.P. 82089 Mazatlán, Sinaloa.
Figura 1.1 Ubicación geográfica de la planta José Aceves Pozos
Fuente: Google Maps
Departamento de instrumentación y control
Este departamento está bajo la responsabilidad del Ing. Alejandro Jiménez De La
Peña, y está encargado del mantenimiento preventivo y correctivo a diversos
dispositivos e instrumentos (p. ej. transmisores, indicadores, analizadores, etc.)
utilizados en las maquina responsables del funcionamiento de la central
termoeléctrica.
6
1.1.2 Objetivos de la institución
La Comisión Federal de Electricidad tiene como fin el desarrollo de
actividades empresariales, económicas, industriales y comerciales en términos de
su objeto, generando valor económico y rentabilidad para el Estado Mexicano como
su propietario.
En la ejecución de su objeto, la Comisión Federal de Electricidad debe actuar de
manera transparente, honesta, eficiente, con sentido de equidad, y responsabilidad
social y ambiental, procurando el mejoramiento de la productividad con
sustentabilidad para minimizar los costos de la industria eléctrica en beneficio de la
población y contribuir con ello al desarrollo nacional.
Asimismo, la Comisión Federal de Electricidad garantizará el acceso abierto a la
Red Nacional de Transmisión y a las Redes Generales de Distribución, la operación
eficiente del sector eléctrico y la competencia. [2]
1.1.3 Misión
Prestar el servicio público de energía eléctrica con criterios de suficiencia,
competitividad y sustentabilidad, comprometidos con la satisfacción de los clientes,
con el desarrollo del país y con la preservación del medio ambiente. [3]
1.1.4 Visión
Ser una empresa de energía, de las mejores en el sector eléctrico a nivel
mundial, con presencia internacional, fortaleza financiera e ingresos adicionales por
servicios relacionados con su capital intelectual e infraestructura física y comercial.
Una empresa reconocida por su atención al cliente, competitividad, transparencia,
calidad en el servicio, capacidad de su personal, vanguardia tecnológica y aplicación
de criterios de desarrollo sustentable. [3]
1.2 Planteamiento del problema
La información es un elemento de mucho valor en las empresas. En el caso
de los registros de mantenimiento, tener la información a la mano permite tener un
seguimiento de los mantenimientos que se realizan y con ello tomar decisiones
importantes respecto al objeto del mantenimiento.
7
En el departamento de instrumentación y control de la central termoeléctrica José
Aceves Pozos, en Mazatlán, Sinaloa, los registros de mantenimientos se realizan
en formatos físicos y posteriormente son guardados localmente en archivos de hojas
de cálculo de Microsoft Office Excel en los equipos de dicho departamento.
El que los registros se hagan de manera física afecta directamente la productividad
del departamento al momento de tener muchos registros de dispositivos de los
mantenimientos. Además, debido a que los archivos se guardan únicamente en los
equipos locales físicos, las posibilidades de pérdida de información aumentan, como
puede ser el daño físico del equipo o la eliminación de los archivos.
Sumado a esto, el formato físico llega a ser tedioso para los técnicos del
departamento, principalmente cuando se debe hacer registros de un gran número
de instrumentos.
1.2.1 Propuesta de Investigación
La información es de suma importancia para las empresas y actualmente las
ventajas de la Web proporcionan múltiples opciones para el resguardo y la
manipulación de dicha información. Para resolver la problemática del departamento,
se optó por el desarrollo de un sistema para la gestión de registros de
mantenimiento, utilizando tecnologías web con el propósito de que en un futuro sea
integrado al sitio web en la red interna de la compañía.
El sistema servirá como plataforma para ingresar los datos de los registros, que
estos sean guardados y sean accesibles desde el sistema para usuarios con
cuentas registradas y autorizadas. Este sistema incluirá opciones para calificar
registros como válidos, además de funciones para la gestión de usuarios del sistema
y el control de permisos en la validación de registros.
1.2.2 Objetivos de la investigación
Los objetivos de la investigación están enfocados a resolver la problemática
del departamento de instrumentación y control.
8
1.2.2.1 Objetivo General
Incrementar la eficiencia y comodidad del proceso de registro de mantenimientos
de dispositivos y la gestión de los mismos con el desarrollo de un sistema para su
uso en la web.
1.2.2.2 Objetivos particulares
Los siguientes objetivos se proponen alcanzar para cumplir con el objetivo antes
propuesto:
• Investigar sobre el manejo de archivos a través de tecnologías web.
• Desarrollar un sistema de información que funcione como plataforma para el
registro de mantenimiento de dispositivos en el departamento de
instrumentación y control, tomando en cuenta tipos de usuario, un proceso
para añadir registros, un proceso de validación de registros, una opción para
ver los registros hechos y una opción para generarlos y descargarlos como
archivos PDF.
• Hacer uso de las tecnologías web en la gestión eficiente de registros de
mantenimiento.
1.2.3 Preguntas de Investigación
Las siguientes preguntas se originaron durante la planeación y desarrollo del
sistema de registros:
• ¿Qué tecnologías web se adaptan mejor a las necesidades del sistema de
registros solicitado?
• ¿Qué ventajas tiene modificar un proceso de formatos físicos a un sistema
digital?
• ¿Qué tan fiable será para los técnicos del departamento utilizar el sistema
para ingresar registros al sistema y acceder a estos?
1.2.4 Hipótesis
A partir de la problemática, la propuesta, los objetivos y las preguntas de
investigación se formuló la siguiente hipótesis.
9
El diseño, desarrollo e implementación de un sistema con tecnologías web para la
gestión de registros de mantenimiento influirá en la eficiencia y comodidad en el
proceso de realizar registros de mantenimiento en el departamento de
instrumentación y control en la central termoeléctrica José Aceves Pozos en
Mazatlán, Sinaloa.
1.2.5 Limitaciones y supuestos
En la presente tesina se pretende proponer una solución a la problemática
de la gestión de registros de mantenimiento del departamento de instrumentación y
control, teniendo en cuenta los diferentes tipos de dispositivo a los que se les hace
mantenimiento en ese departamento, que son: transmisores, analizadores,
indicadores, interruptores, controladores, registradores y válvulas servomotores.
Se podrá buscar registros por su orden de trabajo de mantenimiento o por atributos
identificadores del dispositivo, con la opción de descargarlo como archivo PDF o
validarlo en caso de ser un usuario administrador del sistema.
Por otro lado, se podría agregar dispositivos y añadir registros de mantenimiento
hechos a estos a través de un formulario. En estos se harán cálculos en campos
donde se requiera, ya sea para fechas o datos de calibración, para hacer más fácil
la tarea al técnico.
Se contará con un control de usuarios para el usuario administrador, donde podrá
agregar y modificar los datos a los usuarios del sistema. Además, los usuarios
administradores se encargarán de validar los registros, o mandarlos a corrección en
caso de ser necesario, es decir un usuario “técnico” verá los registros realizados y
podrá colaborar en la corrección de estos.
Como limitación se tiene el no poder utilizar tecnologías web recientes,
principalmente debido a que las características de algunos equipos en el
departamento no soportan dichas tecnologías.
1.2.6 Relevancia
La implementación del sistema de gestión de registros de mantenimiento
propuesto en esta tesina en el departamento implicará un aumento en la eficiencia
10
y comodidad de los usuarios al realizar numerosos registros. Además, aumentará
la seguridad de la información de los registros, así como facilitará el hacer respaldos
de la misma.
11
Capítulo II Revisión de la literatura
12
2.1 Marco conceptual
Para una mayor comprensión de los temas de la presente tesina se incluye
el siguiente apartado, el cual cuenta con conceptos y definiciones relevantes
acordes a los objetivos propuestos. Estos son principalmente sobre las tecnologías
utilizadas para solucionar la problemática planteada en el capítulo anterior.
2.1.1 Conceptos preliminares
Software
Las computadoras se han convertido en una herramienta de uso diario de todo
tamaño y forma. El funcionamiento de estas depende de dos cosas: su composición
física, también conocido como hardware, y de su parte lógica, conocida como
software. En consecuencia, software es la parte lógica de toda computadora que
indica instrucciones a la parte física para que este realice un trabajo [4].
Internet
Las computadoras tienen la capacidad de conectarse entre sí para crear una red,
con la cual pueden compartir recursos e intercambiar información. Con el paso del
tiempo, se fueron desarrollando dispositivos específicos para mejorar estas tareas
de las redes, haciéndolas más eficientes, confiables e incrementando su tamaño.
Por ello, se puede definir el internet como una de las redes más grandes a nivel
mundial, la cual permite un intercambio eficaz de información desde diferentes
puntos del planeta en poco tiempo [5].
Es una red de computadoras interconectadas entre sí que ofrecen acceso y
comparten información a través de un lenguaje común. En la actualidad es la red de
computadoras más grandes que existe en el mundo; se conecta por teléfono (a
través de un módem) o por fibra óptica y transmite toda clase de información. [5]
Intranet
13
En lugar de utilizar el internet, una empresa u organización puede optar por utilizar
una red propia, generalmente con el propósito de proteger información valiosa. A
este tipo de red se le conoce como intranet. Con una intranet se puede disfrutar de
las mismas ventajas de internet, pero en un ámbito más seguro y racionalizado para
los objetivos de productividad de la organización [6].
Lenguaje de programación
Un lenguaje de programación es un lenguaje que permite a los desarrolladores
escribir código fuente que será analizado por un ordenador [7].
Desarrollador
Es una persona que desarrolla programas. Puede ser un profesional (un ingeniero,
programador informático o analista) o un aficionado [7].
Código fuente
Este es un conjunto de acciones, llamadas instrucciones, lo que permitirá dar
órdenes al ordenador para operar el programa [7].
Scripts de programación
Hay tres formas de usar el código fuente anteriormente mencionado:
Lenguaje compilado: El código fuente se da a un programa llamado compilador que
lee el código fuente y lo convierte en un lenguaje que el equipo será capaz de
interpretar: el lenguaje binario, es de 0 y 1. Lenguajes como C o C ++ son lenguajes
compilados muy conocidos.
Lenguaje precompilado: En este el código fuente se compila en parte, por lo general
en un código más fácil de leer para el ordenador, pero que todavía no es binario.
Este código intermedio es para ser leído por lo que se llama una “Máquina Virtual",
que ejecutará el código. Ejemplos: C # y Java.
Lenguaje interpretado: En este caso, no hay compilación. El código fuente se
mantiene sin cambios, y si desea ejecutar este código, debemos proporcionar un
intérprete que va a leer y realizar las acciones solicitadas. [7]
14
Los scripts son en su mayoría interpretados.
Arquitectura cliente-servidor
Éste es un modelo que intenta proveer usabilidad, flexibilidad, interoperabilidad y
escalabilidad en las comunicaciones. El término Cliente/Servidor fue usado por
primera vez en 1980 para referirse a computadoras en red.
Su funcionamiento es sencillo: se tiene una máquina cliente, que requiere un
servicio de una máquina servidor, y éste realiza la función para la que está
programado (la computadora por sí sola puede ser ambos cliente y servidor).
En el modelo cliente servidor, el cliente envía un mensaje solicitando un
determinado servicio a un servidor (hace una petición), y este envía uno o varios
mensajes con la respuesta (provee el servicio) (Ver Figura 2.1). En un sistema
distribuido cada máquina puede cumplir el rol de servidor para algunas tareas y el
rol de cliente para otras. [8]
Figura 2.1 Arquitectura cliente-servidor.
Fuente: http://scielo.sld.cu
Cada usuario tiene la libertad de obtener la información que requiera en un momento
dado proveniente de una o varias fuentes locales o distantes y de procesarla como
según le convenga. Los distintos servidores también pueden intercambiar
información dentro de esta arquitectura.
Cliente
15
El cliente es el proceso que permite al usuario formular los requerimientos y pasarlos
al servidor, se le conoce con el término front-end. [8]
El Cliente normalmente maneja todas las funciones relacionadas con la
manipulación y despliegue de datos, por lo que están desarrollados sobre
plataformas que permiten construir interfaces gráficas de usuario (GUI), además de
acceder a los servicios distribuidos en cualquier parte de una red. [8]
Servidor
Es el proceso encargado de atender a múltiples clientes que hacen peticiones de
algún recurso administrado por él. Al proceso servidor se le conoce con el término
back-end. El servidor normalmente maneja todas las funciones relacionadas con la
mayoría de las reglas del negocio y los recursos de datos. [8]
Desarrollo web
Hoy en día el internet es una herramienta de comunicación mundial que es utilizada
tanto por gobiernos y empresas como personas comunes. Es por esto que el
desarrollo web se encuentra en pleno auge.
El desarrollo web se define como la creación de software que utiliza internet o una
intranet con tecnologías del lado del servidor, o administrador de la página, y del
lado del cliente, o usuario desde un navegador web, con el propósito de realizar
determinadas tareas [9].
Base de datos
Hace pocas décadas, los programas guardaban su información en archivos. Estos
eran creados, copiados, editados y borrados. Este método fue aceptado por muchos
años, pero a medida que se comenzaba a hacer computadoras que se comunicaban
entre sí, y más de un usuario trabajaba con los archivos, surgieron problemas como
pérdida de información y redundancia innecesaria. Para esto se crearon conjuntos
de ficheros interrelacionados, con estructuras complejas y compartidas por varios
procesos de forma simultánea. Estos recibieron al principio el nombre de Data
16
Banks, y después, a inicios de los años setenta, el de Data Bases. Aquí los
denominamos bases de datos (BD) [10].
Los softwares con los que se manejaban los ficheros de datos tenían problemas con
el manejo de los nuevos archivos interrelacionados, para estos surgieron los
sistemas gestores de base de datos (SGBD), con los cuales fue posible
gestionarlos. [10].
Entonces, una base de datos es un conjunto estructurado de datos que representa
entidades y sus interrelaciones, y debe poder ser utilizada de forma compartida por
muchos usuarios de distintos tipos. [10].
Tipo de base de datos
Las bases de datos pueden clasificarse de varias maneras. En cuanto a su manera
de guardar los datos según la variación de los mismos, se clasifican de la siguiente
manera:
• Bases de datos estáticas: Éstas son bases de datos de sólo lectura, utilizadas
primordialmente para almacenar datos históricos que posteriormente se
pueden utilizar para estudiar el comportamiento de un conjunto de datos a
través del tiempo, realizar proyecciones y tomar decisiones.
• Bases de datos dinámicas: Éstas son bases de datos donde los datos
almacenados se modifican con el tiempo, permitiendo operaciones como
actualización y adición de datos, además de las operaciones fundamentales
de consulta. Un ejemplo de esto puede ser la base de datos utilizada en un
sistema de información de una tienda de abarrotes, una farmacia, un
videoclub, etc. [11]
Además, se pueden diseñar las bases de datos de muchas maneras. Uno de estas
es la manera en que se relacionan los datos. Como se muestra a continuación:
• Modelo relacional: Las bases de datos relacionales se construyen a partir de
establecer enlaces entre distintas tablas a través de un campo y atributos
comunes. Con esto se logran evitar anomalías en los procesos de borrar,
17
editar e ingresar datos. Las bases de datos relacionales se pueden
representar mediante el modelo entidad relación, con el cual se pueden ver
sus atributos y relaciones entre tablas de datos, como se ve en el ejemplo de
la figura 2.2. [12]
Figura 2.2 Ejemplo de modelo entidad relación.
Fuente: http://jeffersonbase.blogspot.com
• Modelo no relacional: Una base de datos no relacional es una base de datos
que no usa un esquema de filas y columnas utilizado en la mayoría de los
sistemas de base datos tradicionales.
18
En lugar de eso, las bases de datos no relacionales usan un modelo de
almacenamiento optimizado para los requerimientos específicos de los tipos
de datos a almacenar en ella. Por ejemplo, los datos pueden guardarse como
un dato identificador y su valor, documentos, objetos o documentos JSON,
gráficas, etc. Estos almacenes de datos no usan el modelo relacional, por
ellos el tipo de dato que almacenan y la manera en que se consultan son más
específicos. [13]
Datos de una base de datos relacional se puede representar en una no
relacional, como se muestra en la figura 2.3.
Figura 2.3 Ejemplo de datos en el modelo no relacional.
Fuente: https://aukera.es
MySQL
Es un sistema de gestión de base de datos relacionales, basado en el lenguaje SQL
(lenguaje de consulta estructurado). Este facilita el uso del lenguaje SQL para la
gestión de una base de datos en un servidor [14].
19
El estándar MySQL constituye el software de base de datos libre más popular del
mercado. Es desarrollada, distribuida y costeada por el grupo de empresas MySQL
AB, el cual fue fundado por los creadores de MySQL con el objetivo de perpetuar
esta base de datos. [15]
MySQL es un sistema de gestión de base de datos que ofrece los mecanismos para
añadir, acceder y procesar los distintos datos almacenados en una base de datos.
MySQL ofrece una base de datos relacional en lenguaje SQL, la cual almacena los
datos en tablas de datos separadas almacenadas todas ellas en un mismo espacio
de almacenamiento. [15]
Ofrece unas buenas características de velocidad y flexibilidad. MySQL es software
libre, lo cual significa que cualquiera puede hacer uso del código fuente que
constituye a MySQL para usarlo libremente o incluso modificarlo sin restricciones.
[15]
Los motivos por los que MySQL se ha hecho tan popular, además de lo expuesto
anteriormente, residen en el hecho de que permite crear servidores de bases de
datos cuyas características de velocidad, fiabilidad y facilidad de uso son
extremadamente atractivas y competitivas respecto del resto de soluciones
existentes en el mercado. [15]
HTML
HTML (HyperText Markup Language): apareció por primera vez en 1991 en el
lanzamiento de la Web. Su función es la gestión y organización del contenido. De
esta forma, en HTML se puede organizar texto, enlaces, imágenes, etc. en la
página. [16]
CSS
CSS (Cascading Style Sheets, también conocidas como hojas de estilo): su
propósito es gestionar la apariencia de la página web en cuanto al diseño,
posicionamiento, colores, tamaño de texto de los elementos en esta. Este lenguaje
ha complementado el código HTML desde 1996. [16]
20
PHP
Es un lenguaje que se ejecuta en un servidor, y generalmente resulta en código
HTML para ser interpretado por un navegador web. Además, también cuenta con
las siguientes capacidades [17]:
• Crear, abrir, leer, escribir, cerrar archivos en el servidor
• Utilizar bases de datos
• Procesar datos de formularios
• Enviar y recibir cookies
• Control de acceso de usuarios al sitio web
• Encriptar datos
PHP es lenguaje de scripting que permite generar paginas HTML. A diferencia de
las paginas estáticas de HTML que son útiles para presentar documentos estáticos,
es decir que no son modificables, PHP permite generar una página HTML en forma
dinámica, por ejemplo como resultado de una consulta a una base de datos., o
generar gráficos, o cualquier otra cosa que necesite ser generada en base ciertos
datos que pueden cambiar en el tiempo. PHP, es un lenguaje orientado a
conexiones entre páginas Web y servidores donde se almacenan toda clase de
bases de datos. [18]
Soporta un único "Safe Mode", es decir, un mecanismo de seguridad que permite
que varios usuarios estén corriendo scripts PHP sobre el mismo servidor. Este
mecanismo está basado en un esquema de permisos de ficheros, permitiendo el
acceso a aquellos ficheros que son apropiados por el mismo identificador de usuario
que el del script que está intentando acceder a ese fichero, o bien cuando el fichero
está en el directorio que es propiedad del mismo identificador de usuario que el del
script que está intentando acceder. [18]
PHP es un lenguaje de programación soportado por HTML. La sintaxis está
heredada de C, Java y Perl. Este lenguaje está orientado para los constructores de
páginas Webs, permitiéndoles crear páginas dinámicamente generadas de forma
rápida. [18]
21
JavaScript
JavaScript es un lenguaje de programación de scripts, los cuales se pueden
entender como secuencias de comandos que una computadora puede interpretar.
Cada navegador tiene un intérprete JavaScript, que varía en función del navegador.
Si está utilizando Internet Explorer, el intérprete es llamado JScript (versión 9
intérprete llamado Chakra), en Mozilla Firefox se llama SpiderMonkey y el motor V8
es el de Google Chrome.
Está orientado a objetos, lo cual significa que facilita la creación de variables que
guarden valores complejos, como un objeto con características [7].
JavaScript actualmente es principal lenguaje utilizado en internet, junto con las
páginas web (HTML o XHTML). JavaScript está directamente incluido en la página
web (o en un archivo externo) y mejora una página HTML, añadiendo interacción
del usuario, animación, ayudas a la navegación.
De JavaScript se dice que es un lenguaje del lado del cliente, es decir que los scripts
son ejecutados por el navegador del usuario (cliente). Esto difiere de los llamados
lenguajes de script del lado del servidor que son ejecutadas por el servidor web.
Este es el caso de lenguajes como PHP. [7]
Esto es importante porque el propósito de los scripts del lado del cliente y del lado
del servidor no es el mismo. Un script del lado del servidor se encargará de "crear"
la página web que se envía al navegador. Este entonces mostrará la página a
continuación, ejecutará secuencias de comandos del lado del cliente como
JavaScript. [7]
JavaScript también se puede utilizar para construir aplicaciones. Mozilla Firefox es
el ejemplo más famoso: la interfaz del navegador se crea con una especie de HTML
llamado XUL y JavaScript que se utiliza para animar la interfaz. [7]
Framework
22
El término Framework es utilizado en diferentes aspectos del desarrollo de sistemas
software, no solo en el desarrollo Web. Existen Frameworks para el desarrollo de
aplicaciones médicas, para el desarrollo de juegos, etc. [19].
En general, con el término framework, nos estamos refiriendo a una estructura
software compuesta de componentes personalizables e intercambiables para el
desarrollo de una aplicación. En otras palabras, un framework se puede considerar
como una aplicación genérica incompleta y configurable a la que podemos añadirle
las últimas piezas para construir una aplicación concreta [19].
CodeIgniter
CodeIgniter es un framework para el desarrollo de aplicaciones web con PHP. Esto
significa que cuenta con un conjunto de herramientas para el desarrollo web. Entre
sus características están [20]:
• Bibliotecas para realizar diversas tareas
• Cuenta con una estructura lógica para gestionar los archivos de un proyecto
• Tiene como objetivo hacer más eficiente y sencillo el desarrollo de proyectos,
con un framework ligero.
Su objetivo es permitir el desarrollo de proyectos con mayor rapidez de lo que podría
hacerlo si estuviera escribiendo código desde cero, proporciona un amplio conjunto
de bibliotecas para las tareas más comunes, así como una interfaz simple y una
estructura lógica para acceder a estas bibliotecas. [20]
CodeIgniter permite centrarse creativamente en su proyecto al minimizar la cantidad
de código necesario para una tarea determinada. [20]
CodeIgniter es adecuado para el desarrollo de un proyecto si:
• Se quiere un framework ligero.
• Se necesita un rendimiento excepcional.
• Se quiere compatibilidad con cuentas de hosting estándar que ejecutan una
variedad de versiones y configuraciones de PHP.
• Se necesita un framework que requiera una configuración mínima.
23
• Se quiere un framework que no requiera el uso de la línea de comando.
• Se desea un framework que no requiera reglas de codificación restrictivas.
• No se quiere aprender un lenguaje de plantillas (aunque, si se desea, dispone
de un analizador de plantillas propio).
• Se busca soluciones simples, lejos de la complejidad.
• Se quiere una documentación clara y completa.
Metodología Kanban
Es una metodología de gestión de proyectos creada por Toyota, que se traduce del
japonés como “insignia visual”. Kanban se basa en un sistema de producción que
dispara trabajo solo cuando existe capacidad para procesarlo. El disparador de
trabajo es representado por tarjetas de las cuales se dispone de una cantidad
limitada. Los trabajos pueden ser vistos como actividades de una etapa o la totalidad
de un proyecto. [21]
Este proceso de producción, donde un trabajo se introduce al sistema solo cuando
existe disponibilidad para procesarlo, se denomina pull (tirar) en contrapartida al
mecanismo push (empujar), donde el trabajo se introduce en función de la demanda.
[21]
En el desarrollo de Software, Kanban fue introducido por David Anderson de la
Unidad de Negocios XIT de Microsoft, en 2004, reemplazando el sistema de tarjetas
por un tablero visual. [21]
Esta metodología cuenta con las siguientes tres reglas:
Regla #1: Mostrar el proceso. -
Consiste en la visualización de todo el proceso de desarrollo, mediante un tablero
físico, generalmente, públicamente asequible. [21]
El objetivo de mostrar el proceso, consiste en:
• Entender mejor el proceso de trabajo actual
• Conocer los problemas que puedan surgir y tomar
24
• Mejorar la comunicación entre todos los interesados/participantes del
proyecto
• Hacer los futuros procesos más predecibles.
Un tablero Kanban, se divide en columnas las cuales representan un proceso de
trabajo, como se muestra en la figura 2.4.
Figura 2.4 Ejemplo de tablero Kanban.
Fuente: Desarrollo Ágil con Kanban [21]
La cantidad y nombre de las columnas, varía de acuerdo a las necesidades de cada
equipo y en la mayoría de los casos estas son subdivididas en dos columnas: cola
de espera y en curso.
Regla #2: Limitar el trabajo en curso (WIP, Work In Progress).-
Esto consiste en acordar anticipadamente, la cantidad de ítems que pueden
abordarse por cada proceso (es decir, por columnas del tablero). El principal objetivo
de establecer estos límites, es el de detectar cuellos de botella. Los cuellos de
botella representan el estancamiento de un proceso determinado. [21]
Regla #3: Optimizar el flujo de trabajo.
Esto se hace mediante los siguientes cálculos.
25
Midiendo el tiempo que el ciclo completo de ejecución del proyecto demanda (por
ejemplo, cantidad de días desde el inicio del análisis hasta el fin del deploy según
el ejemplo del tablero en la figura 2.4), se obtiene el CycleTime.
Al dividir, el CycleTime por el WIP, se obtiene el "rendimiento de trabajo",
denominado Throughput, es decir, la cantidad de ítems que un equipo puede
terminar en un determinado período de tiempo (Throughput = CycleTime/WIP). [21]
Con estos valores, la optimización del flujo de trabajo consistirá en la búsqueda de:
Minimizar el CycleTime Maximizar el Throughput Lograr una variabilidad mínima
entre CycleTime y Throughput. [21]
IDE
Un Entorno de Desarrollo Integrado (IDE) es una aplicación visual que sirve para la
construcción de aplicaciones a partir de componentes. Por lo general todas ellas
cuentan con los siguientes elementos:
• Una o más ‘paletas’ para mostrar como iconos los componentes disponibles;
• Un ‘lienzo’ o ‘contenedor’ en el cual se colocan los componentes y se
interconectan entre sí;
• Editores específicos para configurar y especializar los componentes;
• Visores (browsers) para localizar componentes de acuerdo a ciertos criterios
de búsqueda;
• Directorios de componentes;
• Acceso a editores, interpretes, compiladores y depuradores para desarrollar
nuevos componentes;
• Y finalmente, acceso a algunas herramientas de control y gestión de
proyectos, esenciales para grandes proyectos software.
Ejemplos de IDEs son Visual Studio de Microsoft, VisualAge de IBM o VisualCafe
de Symantec, complementados con lenguajes de configuraci´on como VBScript y
JavaScript. [22]
Visual Studio Code
26
Visual Studio Code es un editor de código ligero, pero de gran poder disponible para
Windows, macOS y Linux. Cuenta con un soporte integrado para diversos lenguajes
de programación populares, entre los que está JavaScript. Además, tiene un gran
número de extensiones para otros lenguajes, como PHP. [23]
Librería
En informática, una librería es un conjunto de implementaciones funcionales
codificadas en un lenguaje de programación, que ofrece una interfaz definida para
la funcionalidad que se utiliza.
A diferencia de un programa ejecutable, el comportamiento que implementa una
biblioteca no espera ser utilizada de forma autónoma, sino que su fin es ser utilizada
por otros programas. [24]
PhpSpreadsheet
PhpSpreadsheet es una librería escrita en código PHP puro, y proporciona un
conjunto de funcionalidades que facilitan el leer desde y escribir en diferentes
formatos de archivos de hojas de cálculos, como Excel y LibreOffice Calc. [25]
Apache HTTP Server
También llamado solamente “Apache”, es un software de servidor web libre, de
plataforma cruzada y de código abierto.
Es una implementación de un servidor HTTP (Web) desarrollada con el fin de
proporcionar un servidor HTTP de calidad comercial que sea robusto, libre y con un
gran número de funcionalidades. [26]
XAMPP
XAMPP es una distribución de Apache completamente gratuita y fácil de instalar
que contiene MariaDB, PHP y Perl. El paquete de instalación de XAMPP ha sido
diseñado para ser increíblemente fácil de instalar y usar. [27]
El objetivo de XAMPP es crear una distribución fácil de instalar para desarrolladores
que se están iniciando en el mundo de Apache. [28]
27
Adobe XD
Es un programa con el cual se puede crear diagramas funcionales, diseños,
prototipos y presentaciones para web, móvil, etc. de manera eficiente y organizada.
Sirve como herramienta para el diseño de aplicaciones y páginas web. [29]
GitHub
GitHub es una plataforma de alojamiento de código para el control de versiones y
colaboración.
Permite alojar código de proyectos en repositorios, los cuales pueden contener
archivos de texto, imágenes, videos, hojas de cálculos, o cualquier tipo de archivo.
[30].
Paperless
Debido a que el presente trabajo cuenta con similitudes con el tema de las “oficinas
sin papel”, también conocidas como “paperless”, es relevante mencionar las
ventajas de implementarlas, pues la solución propuesta del sistema de registros
proporcionará beneficios similares. Estas se mencionan a continuación:
Aumento de la productividad: la localización y búsqueda de los documentos es más
rápida y precisa. El usuario trabaja directamente con el documento en pantalla,
eliminado así ́ los tiempos de localización, recuperación, re-archivo y sus costos
asociados. Además, al facilitar el procesamiento paralelo de la información
contenida en los documentos, el usuario no debe esperar a que otra persona
termine con ellos para consultarlos. [31]
Mejor aprovechamiento de los espacios: el espacio necesario para el
almacenamiento de documentos físicos se reduce drásticamente. Como
consecuencia de estos cambios organizativos, la oficina sin papel se presenta como
una solución eficaz para el ahorro de superficie. [31]
Mejor aprovechamiento de la jornada laboral: con la solución propuesta en este
trabajo se ahorra el tiempo en la búsqueda y ordenamiento de los registros físicos,
28
al igual que facilitar otros procesos. Una oficina ordenada y sin papeles permite
encontrar la información que se necesita en el momento en que se necesita. [31]
Mejor acceso a la información: una oficina ordenada disminuye las posibilidades de
que se pierdan documentos. Además, se puede controlar el acceso al archivo por
niveles de seguridad preestablecidos. [31]
Mejor calidad del servicio ofrecido: se puede responder en el acto a las demandas
de documentos, pudiendo enviarse una copia de los mismos inmediatamente, o
brindando acceso remoto al sistema. Preservación de los documentos originales: se
eliminan los riesgos de deterioro de los documentos producido por el uso. [31]
Disminución de los gastos de impresión y de papel: los recursos dedicados a la
compra de papel, tóner e impresoras aumentan cada año y pueden ser destinados
a otras áreas. [31]
Los beneficios son claros, resumiendo, se logra una mejor organización de procesos
y servicios con ahorros y ganancias para las empresas y además, ciudadanos,
empresas y otras entidades se consideran comprometidas con el medio ambiente.
[31]
2.1.2 Trabajos relacionados
En la actualidad, existen muchos sistemas similares al explicado en el
planteamiento del problema de la presente tesina. No obstante, no hay ninguno
idéntico al sistema propuesto en esta tesina, debido a que es específicamente
hecho para el departamento, y diseñado a la medida con los requerimientos
obtenidos.
A pesar de esto, existen algunos que cumplen con funciones similares, como los
que a continuación se mencionan:
- SISTEMA DE INFORMACION PARA EL CONTROL, SEGUIMIENTO Y
MANTENIMIENTO DEL EQUIPAMIENTO HOSPITALARIO [32]
Este fue desarrollado como tesis por Víctor Hugo Chávez Gómez en 2010 para
la Universidad Ricardo Palma en Lima, Perú. En esta, Chávez desarrollo un
29
sistema para la gestión de mantenimientos del Departamento de Ingeniería del
Hospital Central de la Fuerza Aérea del Perú.
La problemática no es muy distinta a la planteada en esta tesina, no obstante,
la solución es distinta. En la tesis de Chávez se utilizan Oracle Forms y un
enfoque con tecnologías ágiles.
Cuenta con una interfaz gráfica para la gestión de los mantenimientos, e
igualmente utiliza base de datos.
- Sistema computarizado para el apoyo del mantenimiento predictivo en centrales
termoeléctricas de la Comisión Federal de Electricidad (SIIDMP) [33]
- Este fue desarrollado por Sergio Aranda A., Raúl García M., Francisco Poujol
G., Carlos Cháirez C. y Nely Domínguez M. Pretende ser de utilidad en la
predicción y planeamiento de mantenimientos. De manera precisa, El SIIDMP
es una herramienta computacional que tiene como objetivo principal apoyar al
personal relacionado con el mantenimiento y operación de la central para que
optimicen la aplicación de las inspecciones, mantenimientos y sus costos
asociados, así como hacer más eficiente la operación de los equipos y
componentes en vigilancia, aumentando su confiabilidad a través de las
herramientas proporcionadas para realizar el análisis y diagnóstico del
comportamiento operativo.
La arquitectura del SIIDMP es del tipo cliente-servidor y para su diseño e
implantación se empleó Windows NT 4.0 como sistema operativo, SQL Server
7.0 como servidor y administrador de la base de datos, Visual C++ para los
programas de extracción de datos, Visual Basic 6.0 para la codificación de los
programas de aplicación e Interfaz Hombre-Máquina (IHM).
La diferencia con el propuesto en la actual tesina es que no aprovecha las
ventajas de las nuevas tecnologías y está más enfocado a un control para el
departamento de operaciones, que para el departamento de instrumentación y
control. Además, las problemáticas difieren en el alcance: mientras que el
SIIDMP propone un control profundo en la planeación y gestión de
mantenimientos, el propuesto en la tesina actual pretende servir como
30
herramienta para los técnicos y jefes del departamento de instrumentación y
control.
31
Capítulo III Diseño y Desarrollo
32
3.1 Diseño
Debido a que el sistema de registros de mantenimiento propuesto será
desarrollado únicamente por una persona, el uso de metodologías complejas resulta
innecesario.
Por lo tanto, para el desarrollo del sistema se optó por utilizar un proceso de
desarrollo lineal de software en conjunto con aspectos de la metodología KANBAN,
la cual es útil para conocer todas las actividades que se requieren llevar a cabo en
un proyecto y conocer el estado y progreso del desarrollo del mismo de manera
clara.
El desarrollo lineal de software que se utilizará consiste en:
• Obtener requerimientos de quienes serán los usuarios del sistema. Esto con
el propósito de conocer las funcionalidades y características con las que debe
contar el sistema. Algunos de los que se pueden mencionar son la
generación de PDF de registros de mantenimiento y tipos de usuario con
diferentes permisos.
• Diseñar el sistema con los requerimientos obtenidos. Principalmente para
tener una planeación del sistema antes de comenzar. Entre las cosas que se
diseñan está la base de datos, los módulos y la manera en que se navegará
entre los módulos. Se podrán hacer cambios a estos en el desarrollo de ser
necesario.
• Desarrollar el sistema. En el cual se crearán los módulos tanto en estructura
como funcionalidad, al igual que la base de datos.
• Pruebas y correcciones. Donde se prueban los módulos y funcionalidades, y
se corrigen de ser necesario.
Por otro lado, el aspecto principal a utilizar de KANBAN es su tablero, en el cual se
colocarán actividades sobre el sistema de registros tales como módulos,
funcionalidades importantes como la generación de PDF, etc. Con esto se podrá
visualizar el flujo de trabajo, y las actividades pendientes en todo momento.
33
Otra característica importante que se pretende utilizar es la posibilidad de
personalizar el tablero. No obstante, la única modificación a las columnas es la
adición de una columna para colocar las actividades pendientes por probar.
3.2 Desarrollo
A continuación, se explicarán los instrumentos utilizados, el desarrollo del sistema
y las pruebas para comprobar la veracidad de la hipótesis.
3.2.1 Herramientas
Para el desarrollo y pruebas del sistema de registros se tienen los siguientes
instrumentos y sujetos:
Instrumentos de desarrollo
Para el desarrollo del sistema de registros se hará el uso de:
• Equipos de cómputo
Estos cuentan con el sistema operativo Windows 10 y 4 GB de
memoria RAM. Serán utilizados para el desarrollo y pruebas del
sistema.
• IDE
o Visual Studio Code
Se elige este entorno de desarrollo debido a su rendimiento y porque
cuenta con un gran número de herramientas y extensiones que permiten
personalizar y agilizar el desarrollo de software.
• Lenguajes de programación
o PHP
o JavaScript
Estos serán los lenguajes de programación que serán utilizados,
principalmente porque son soportados por los equipos con los que se
pretende utilizar el sistema. Además, existen librerías y frameworks que
serán útiles en el desarrollo de funcionalidades requeridas en el sistema.
34
• Herramientas web
o HTML
o CSS
Serán utilizados para el desarrollo de la estructura y diseño de los
módulos del sistema.
• Framework
o CodeIgniter
Elegido por las herramientas que provee como funciones y el manejo de
datos de sesión. Hace que el desarrollo de software sea fácil y que tenga
una estructura de archivos organizada.
• Librerías
o PhpSpreadsheet
Esta librería será utilizada para la funcionalidad de generar archivos PDF.
Permite ingresar los datos de la base de datos a archivos Microsoft Excel,
para posteriormente generar un archivo PDF del mismo. Se elige esta
librería porque genera archivos PDF respetando los bordes de las celdas
en los archivos Excel, lo cual es útil al generar archivos PDF de los
registros de mantenimiento.
• Otros programas
o XAMPP.
Para crear un servidor local en el cual probar el sistema de manera
sencilla.
o Adobe XD.
Para el diseño de módulos.
Sujetos de prueba
Las personas a quien se aplica la prueba y encuesta son los técnicos del
departamento de instrumentación y control de la central termoeléctrica José Aceves
Pozos, quienes serán usuarios finales del sistema.
35
Instrumentos de prueba
Para llevar a cabo la prueba de eficiencia se utiliza un cronómetro para medir el
tiempo. Igualmente se requiere del formato físico de registros, una pluma y un
equipo de cómputo con el sistema de registros.
Para la encuesta únicamente se utilizará un equipo de cómputo con la encuesta
propuesta en archivos Microsoft Office Word, en los que se pedirá a los técnicos
contestar la encuesta.
3.2.2 Desarrollo del sistema
Utilizando el desarrollo lineal mencionado en el diseño, se realizó lo siguiente:
Se obtuvieron los requisitos teniendo pláticas con los técnicos del departamento
sobre lo que esperan del sistema. Por razones de confidencialidad, no es posible
mostrarlos, no obstante, consiste en una lista de requisitos donde se mencionan
funcionalidades importantes tales como la generación de PDF y la el diseño de las
pantallas y formularios.
El diseño de las diferentes partes del sistema se llevó a cabo y resultó en:
• Diseños de módulos como el que se puede ver en la figura 3.1.
• Un diseño de base de datos que no se puede mostrar por cuestiones de
confidencialidad, no obstante, se puede mencionar que cuenta con tablas
para usuarios, para cada tipo de instrumento y de sus registros de
mantenimiento.
• Un diagrama del flujo de los módulos que se muestra en la figura 3.2.
37
Figura 3.2 Diagrama del flujo de módulos.
Fuente: el autor
Se desarrollaron los módulos y funcionalidades. Dentro de los que se pueden
mostrar están: la pantalla de inicio de sesión (ver figura 3.3), pantalla de inicio de un
técnico (ver figura 3.4), formulario para agregar nuevo instrumento (ver figura 3.5) y
las vistas de registros de mantenimiento por orden de trabajo (ver figura 3.6) y por
tipo de instrumento (ver figura 3.7).
38
Figura 3.3 Módulo de inicio de sesión.
Fuente: el autor
Figura 3.4 Módulo de inicio de técnico.
Fuente: el autor
39
Figura 3.5 Módulo para agregar registro de mantenimiento.
Fuente: el autor
Figura 3.6 Módulo de tabla de registros por orden de trabajo.
Fuente: el autor
40
Figura 3.7 Módulo de tabla de registros por tipo de instrumento.
Fuente: el autor
En el desarrollo se utilizó la estructura de archivos de CodeIgniter (ver figura 3.8)
para navegar a través de los archivos.
Figura 3.8 Estructura de archivos de CodeIgniter
Fuente: el autor
Dentro de esta se trabajó principalmente en modelos, vistas y controladores, que se
encuentran dentro de la carpeta application (ver figura 3.9). Dentro de las vistas se
41
utilizó código HTML, JavaScript, CSS y PHP, mientras que para modelos y
controladores se utilizó únicamente PHP.
Figura 3.9 Contenido de la carpeta application de CodeIgniter.
Fuente: el autor
Muchos de estos archivos son extensos, pero simples. Es por ello que solamente
se menciona una descripción breve de estos a continuación:
• Las vistas cuentan con una estructura HTML, estilizada con CSS y con
pequeñas funcionalidades tal como validaciones en JavaScript. Incluyendo
algo de código PHP para cargar las vistas con datos como son los datos de
usuario.
• Los modelos únicamente cuentan con funciones para comunicarse con la
base de datos y devolver los valores consultados o ingresar y actualizar
ciertos valores.
• Los controladores, por lo general, se encargan de preparar la vista a cargar
y mandar los datos a ingresar en ellas, al mismo tiempo de utilizar las
funciones del modelo para hacer consultas y mandar datos para insertar o
actualizar en la base de datos.
No obstante, algunas otras funciones en los controladores son para contar con
funcionalidades más específicas que no requieren una vista. Tal es el caso con la
42
generación de PDF, cuyo código se presentará a continuación con comentarios que
aclaren su funcionamiento:
public function GenerarPDF(){
//Se establece el timezone y se le da el nombre de archivo
date_default_timezone_set('America/Chihuahua');
$nombrearchivo = 'Archivo' . date("Y-m-d H_i_s");
$editFile2 = APPPATH . $nombrearchivo . '.xlsx';
try {
//Se carga el helper para asignar los valores de la BD
$this->load->helper('HelperDePDF_helper');
//Se obtiene el id del instrumento y el tipo de instrumento
$idregistro = urldecode($this->uri->segment(3, 'ninguno'));
$tipodispo = urldecode($this->uri->segment(4, 'ninguno'));
if ($idregistro == 'ninguno' || $tipodispo == 'ninguno') {
//Se cierra la ventana en caso de no tener datos válidos
echo "<script type='text/javascript'>";
echo "window.close();";
echo "</script>";
echo "No se hizo el query";
}
$tablaregi = $this->obtenerTabla($tipodispo, 'registro');
43
$tabladisp = $this->obtenerTabla($tipodispo, 'dispositivos');
//Se obtienen los datos de la base de datos
$query = $this->ParaPdf_model->obtenerDatos($tablaregi, $tabladisp,
$idregistro);
if (is_array($query)) {
foreach ($query as $row) :
//Se elige el formato en Excel a llenar con los datos
if ($tabladisp == 'dispositivostransmisores')
$editFile = APPPATH . "RegiCali_Transmisores.xlsx";
if ($tabladisp == 'dispositivosindicadores')
$editFile = APPPATH . "RegiCali_Indicadores3.xlsx";
if ($tabladisp == 'dispositivosanalizadores')
$editFile = APPPATH . "RegiCali_Analizadores5.xlsx";
if ($tabladisp == 'dispositivosinterruptores')
$editFile = APPPATH . "RegiCali_InterruptoresX.xlsx";
if ($tabladisp == 'dispositivosvalvulasservo')
$editFile = APPPATH .
"RegiCali_ValvulasServomotores2.xlsx";
if ($tabladisp == 'dispositivoscontroladores')
$editFile = APPPATH . "RegiCali_Controladores3.xlsx";
if ($tabladisp == 'dispositivosregistradores')
44
$editFile = APPPATH . "RegiCali_Registradores3.xlsx";
//Se carga el formato elegido como variable
$sSheet = PhpOffice\PhpSpreadsheet\IOFactory::load($editFile);
$worksheet = $sSheet->getActiveSheet();
$worksheet->getPageMargins()
->setLeft(0.1)
->setRight(0.1)
->setTop(0.1)
->setBottom(0.1)
->setHeader(0);
/* Se utilizan las funciones del helper para cargar los datos
a la variable ($sSheet), según el tipo de instrumento */
if ($tabladisp == 'dispositivostransmisores')
CargarCamposAExcel_Transmisores($sSheet, $row);
if ($tabladisp == 'dispositivosindicadores')
CargarCamposAExcel_Indicadores($sSheet, $row);
if ($tabladisp == 'dispositivosanalizadores')
CargarCamposAExcel_Analizadores($sSheet, $row);
if ($tabladisp == 'dispositivosinterruptores')
CargarCamposAExcel_Interruptores($sSheet, $row);
45
if ($tabladisp == 'dispositivosvalvulasservo')
CargarCamposAExcel_ValvServo($sSheet, $row);
if ($tabladisp == 'dispositivoscontroladores')
CargarCamposAExcel_Controladores($sSheet, $row);
if ($tabladisp == 'dispositivosregistradores')
CargarCamposAExcel_Registradores($sSheet, $row);
//Se coloca el logo de la empresa en el formato.
$drawing = new
\PhpOffice\PhpSpreadsheet\Worksheet\Drawing();
$drawing->setName('logocfe');
$drawing->setDescription('logocfe');
$drawing->setPath(APPPATH . "logocfe.png");
$drawing->setCoordinates('C2');
$drawing->setWorksheet($sSheet->getActiveSheet());
//Se guarda el archivo como archivo Microsoft Excel
$writer = new \PhpOffice\PhpSpreadsheet\Writer\Xlsx($sSheet);
$writer->save('application\\' . $nombrearchivo . '.xlsx');
/* Se carga el archivo, se prepara su header y se guarda
como PDF y posteriormente se elimina el anterior */
46
$sSheet2 =
PhpOffice\PhpSpreadsheet\IOFactory::load($editFile2);
$writer2 = new
\PhpOffice\PhpSpreadsheet\Writer\Pdf\Mpdf($sSheet2);
header('Content-Type: application/pdf');
header('Content-Disposition: attachment;filename="' .
$nombrearchivo . '.pdf"');
header('Cache-Control: max-age=0');
header('Cache-Control: max-age=1');
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
header('Cache-Control: cache, must-revalidate');
header('Pragma: public');
$writer2->save("php://output");
if (is_writable($editFile2)) {
unlink($editFile2);
}
break;
endforeach;
} else {
//Se cierra la ventana en caso de no tener datos válidos
echo "<script type='text/javascript'>";
echo "window.close();";
47
echo "</script>";
echo "No se hizo el query";
}
/* Se atrapan errores y elimina archivos temporales en caso de ser
interrumpido el proceso */
} catch (Exception $e) {
echo 'Excepción capturada: ', $e->getMessage(), "\n";
} finally {
if (is_writable($editFile2)) {
unlink($editFile2);
}
}
}
Sobre las pruebas y correcciones únicamente se puede mencionar que las pruebas
son llevadas a cabo una vez desarrollado el módulo o funcionalidad, y se
posteriormente se corrige.
Con respecto a los aspectos utilizados de la metodología Kanban:
• Se creó un repositorio con el sistema a GitHub (ver figura 3.10).
• Posteriormente, se creó un nuevo proyecto en GitHub y se eligió la opción
“Basic KanBan”, como se ve en la figura 3.11.
• Después, únicamente se agregó una nueva columna llamada
“Test/Correcciones” (ver figura 3.12) y se añadieron las actividades del
sistema al tablero (ver figura 3.13).
48
Figura 3.10 Repositorio del sistema en GitHub.
Fuente: https://github.com
Figura 3.11 Creación de nuevo proyecto en el repositorio.
Fuente: https://github.com
49
Figura 3.12 Creación de nuevo columna en tablero.
Fuente: https://github.com
Figura 3.13 Tablero con actividades.
Fuente: https://github.com
El tablero se utilizó principalmente para tener claro todas las actividades pendientes
y conocer el progreso del proyecto.
3.2.3 Pruebas de solución
Además del sistema propuesto como solución, se llevará a cabo una prueba
y una encuesta con el fin de recolectar datos que comprueben la validez de la
50
hipótesis en ambos de los factores mencionados en ella: eficiencia y comodidad en
el proceso de hacer un registro.
La prueba de eficiencia consiste en comparar el tiempo que toma hacer un registro
de mantenimiento en su formato físico con el tiempo que toma hacerlo con el
sistema propuesto como solución.
La encuesta es breve (ver figura 3.14), con el objetivo principal de obtener la opinión
de los usuarios respecto a la comodidad de realizar un formato físico y utilizando el
sistema. Con estos datos se podrá calcular un promedio sobre la comodidad del
usuario final con el sistema.
Figura 3.14 Encuesta para evaluar comodidad del sistema.
Fuente: el autor
51
Resultados y discusiones
A continuación, se mostrarán los resultados obtenidos al llevar a cabo las
pruebas propuestas en el capítulo anterior.
Las pruebas fueron llevadas a cabo teniendo 6 técnicos del departamento como
sujetos. Únicamente se utilizó el módulo para agregar un registro de mantenimiento
en ambas pruebas. Por razones de confidencialidad, se optó por numerar a los
sujetos en lugar de nombrarlos.
Los resultados de la encuesta se presentan en la siguiente tabla.
Tabla 1. Resultados de encuesta de comodidad
Sujeto Valoración de comodidad
Registro físico Sistema de registros
Sujeto 1 4 5
Sujeto 2 4 3
Sujeto 3 2 4
Sujeto 4 5 5
Sujeto 5 3 5
Sujeto 6 4 3
Promedio 3.6667 4.1666
Fuente: el autor.
El promedio obtenido en esta prueba indica que los sujetos se sienten más cómodos
utilizando el sistema en el proceso de realizar un registro de mantenimiento.
Los resultados anteriores fueron plasmados una gráfica de barras (ver figura 3.15).
52
Figura 3.15. Gráfica de resultados de comodidad
Fuente: el autor.
A partir de la gráfica se percibe que, a pesar de ser una herramienta nueva, los
sujetos de prueba consideran el sistema de registros ligeramente más cómodo que
el formato físico.
Por otro lado, los resultados de la prueba de eficiencia se presentan en la siguiente
tabla
Tabla 2. Resultados de prueba de eficiencia
Sujeto Tiempo (minutos)
Registro físico Sistema de registros
Sujeto 1 12.2 7.3
Sujeto 2 22.9 15.6
Sujeto 3 14.2 11.2
Sujeto 4 18.3 10.1
Sujeto 5 11.5 14.7
Sujeto 6 18.5 11.6
53
Promedio 16.2666 11.75
Fuente: el autor.
En esta prueba, el promedio del tiempo requerido para realizar un registro de
mantenimiento en el sistema de registros es menor al que se requiere para un
registro físico.
Los resultados fueron plasmados en una gráfica de barras (ver figura 3.16).
Figura 3.16. Gráfica de resultados de tiempo
Fuente: el autor.
La información de la gráfica anterior indica que utilizando el sistema de registros
como herramienta para realizar los registros, se utilizará menos tiempo. Incluso si
54
solo son algunos segundos, representa un cambio de gran importancia dado que es
común realizar registros de múltiples instrumentos.
A partir de esto se realizaron los siguientes cálculos
16.2666 𝑚𝑖𝑛 − 11.75 𝑚𝑖𝑛 = 4.5166 𝑚𝑖𝑛
11.75
16.2666= 0.7223 → 72.23%
100 − 72.23 = 27.77 %
Realizando una resta entre ambos promedios se obtiene que se utilizan 4.5 minutos
menos en promedio al realizar un registro utilizando el sistema de registros.
Además, comparando ambos promedios, se obtiene que utilizando el sistema de
registros el proceso se realiza en 72.23% del tiempo que toma en un registro físico,
por lo tanto, el sistema hace que el proceso se realice 27.77% más rápido.
Mediante las pruebas se demuestra que con el sistema de registros propuesto el
proceso se realizará en menos tiempo y realizarlo será más cómodo para los
técnicos del departamento.
55
Conclusiones
A partir de los resultados se concluye que utilizando el sistema de registros
se tendrá más eficiencia en el proceso de realizar registros de mantenimiento, lo
cual incrementaría la productividad del departamento. Por otro lado, realizar dichos
registros será más cómodo para los técnicos, lo cual permite que usen menos
energía y tiempo en este proceso.
A pesar de que los resultados mostrados no indican una gran diferencia en cuestión
de tiempo, a medida que los técnicos utilicen el sistema para la captura de registros
de mantenimiento, se ganará más experiencia en su uso y como resultado el tiempo
en que se realiza este proceso puede decrecer y la comodidad puede aumentar.
La utilización tecnologías web para este sistema permitirá que sea integrado en un
sistema web interno de la empresa, lo cual hará que el acceso al sistema sea
cómodo para los técnicos y operadores que ingresen a él.
Además de la ventaja del tiempo y la comodidad, las otras funcionalidades del
sistema representarían una gran ventaja para otras actividades del departamento y
de la empresa, principalmente en la accesibilidad y resguardo de los registros de
los registros de mantenimiento, puesto que se podrá acceder a todos los registros
a través del sistema y, al tener la información en base de datos, se reducirá en gran
medida la posibilidad de perder la información y hacer respaldos de la misma será
más fácil.
En caso de ser implementado, el sistema representará una herramienta de gran
utilidad para el departamento.
56
Bibliografía
[1] CFE. Libro Blanco. “Sistema de Reducción de Emisiones a la Atmósfera de la
CT José Aceves Pozos (Mazatlán).” [Online]. Available:
http://159.16.244.43:90/LB%20Reducci%C3%B3n%20de%20emisiones/SISTEMA
%20REDUCCION%20EMISIONES%20A%20LA%20ATMOSFERA%20CT%20JO
SE%20ACEVES%20POZOS%20MAZATLAN_Parte1.pdf
[2] CFE. Quiénes somos [Online]. Available:
https://www.cfe.mx/acercacfe/Quienes%20somos/Pages/conceptocfe.aspx
[3] CFE. Misión y Visión [Online]. Available:
https://www.cfe.mx/inversionistas/InformacionAdministrativa/Pages/MisionVision.a
spx
[4] M. A. Tejeda (2011). Introducción Software [Online]. Available:
https://www.uaeh.edu.mx/docencia/P_Presentaciones/prepa4/informatica/Software
_1.pdf
[5] Colegio de Michoacán. Internet [Online]. Available:
https://www.colmich.edu.mx/computo/files/internet.pdf
[6] Escuela Superior de Comercio “Lib. Gral. San Martín” (2014). Internet - Intranet
– Extranet [Online]. Available:
http://test.esupcom.unr.edu.ar/bv_tics/biblioteca/apuntes_catedra/apuntes/tercero_
internet.pdf
[7] R. Menéndez-Barzanallana. JAVASCRIPT [Online]. Available:
https://www.um.es/docencia/barzana/DAWEB/Lenguaje-de-programacion-
JavaScript-1.pdf
[8] B. Márquez, J. Zulaica. “Implementación de un reconocedor de voz gratuito a el
sistema de ayuda a invidentes Dos-Vox en español”. Tesis profesional. Licenciatura
57
en Ingeniería en Sistemas Computacionales, UDLAP. Cholula, Puebla, México a 12
de enero de 2004. Available:
http://catarina.udlap.mx/u_dl_a/tales/documentos/lis/marquez_a_bm/capitulo5.pdf
[9] EduMac. Desarrollo Web PHP, MySQL [Online]. Available:
https://www.edumacgdl.com.mx/cursoDesarrolloWeb.php
[10] R. Camps, L. Casillas, D. Costal, M. Gibert, O. Pérez. Software libre Bases de
datos. Primera edición. Universitat Oberta de Catalunya. Eureca Media, SL. 2005.
Available: https://www.uoc.edu/pdf/masters/oficiales/img/913.pdf
[11] A. Gutiérrez. BASES DE DATOS [Online]. Available:
https://www.aiu.edu/cursos/base%20de%20datos/pdf%20leccion%201/lecci%C3%
B3n%201.pdf
[12] G. Asato. Bases de Datos Relacionales Principios de Diseño y Normalización
[Online]. Available:http://www.pirna.com.ar/files/pirna/GPIP-103-bdr_gis.pdf
[13] Microsoft (2018, febrero, 11). Non-relational data and NoSQL [Online].
Available:https://docs.microsoft.com/en-us/azure/architecture/data-guide/big-
data/non-relational-data
[14] M. Rouse (2015). MySQL [Online]. Available:
https://searchdatacenter.techtarget.com/es/definicion/MySQL
[15] A. Barroso (2005, septiembre). INSTALACIÓN DE UNA PLATAFORMA PARA
PRUEBA DE SERVICIOS WEB XML SOBRE LA J2ME. Capitulo 4 Base de Datos
MySQL [Online]. Available:
http://bibing.us.es/proyectos/abreproy/11096/fichero/Memoria%252F04+Cap%C3
%ADtulo+4+Base+de+Datos+mySQL.pdf+
[16] R. Barzanallana. Lenguajes de programación HTML y CSS [Online]. Available:
https://www.um.es/docencia/barzana/DAWEB/Lenguaje-de-programacion-HTML-
1.pdf
58
[17] J. Pavón (2014). PHP Introducción al lenguaje PHP [Online]. Available:
https://www.fdi.ucm.es/profesor/jpavon/web/33-PHP.pdf
[18] Fundación Escuela Latinoamericana de Redes (2006). PHP [Online]. Available:
http://www.eslared.org.ve/walcs/8vaeslared/download/track2/php.pdf
[19] J. J. Gutiérrez. ¿Qué es un framework web? [Online]. Available:
http://www.lsi.us.es/~javierj/investigacion_ficheros/Framework.pdf
[20] CodeIgniter (2018). Manual en Español [Online]. Available:
http://www.codeigniter.xyz/CodeIgniter_3_1_9_Manual_Esp.pdf
[21] Universidad Miguel Hernández (2016). Desarrollo Ágil con Kanban [Online].
Available:
http://umh2818.edu.umh.es/wp-content/uploads/sites/884/2016/03/Desarrollo-
A%CC%81gil-con-Kanban.pdf
[22] L. Fuentes, J. M. Troya, A. Vallecillo. Lección 1 Desarrollo de Software Basado
en Componentes [Online]. Available:
http://www.lcc.uma.es/~av/Docencia/Doctorado/tema1.pdf
[23] Visual Studio Code. Getting Started [Online]. Available:
https://code.visualstudio.com/docs
[24] J. Ferrer. Desarrollo de Interfaces. Madrid, España. RA-MA, S. A. 2015
[25] PhpSpreadsheet. Welcome to PhpSpreadsheet's documentation [Online].
Available:
https://phpspreadsheet.readthedocs.io/en/latest/
[26] Apache. About Apache [Online]. Available:
http://httpd.apache.org/ABOUT_APACHE.html
[27] Apache Friends. ¿Qué es XAMPP? [Online]. Available:
59
https://www.apachefriends.org/es/index.html
[28] Apache Friends. Acerca de [Online]. Available:
https://www.apachefriends.org/es/about.html
[29] Adobe. Trabajemos juntos con XD [Online]. Available:
https://www.adobe.com/mx/products/xd.html
[30] GitHub (2016). Hello World [Online]. Available:
https://guides.github.com/activities/hello-world/
[31] S. D. Orantes, A. Zavala, G. Vázquez. Administración de una oficina sin papeles
segura y personalizada para PYMES en México. Centro de Investigación en
Computación y Sección de Estudios de Posgrado e Investigación de la Escuela
Superior de Ingeniería Mecánica y Eléctrica. Instituto Politécnico Nacional. Ciudad
de México, México. 2014. Available:
http://www.iiisci.org/journal/CV$/risci/pdfs/CA666XX14.pdf
[32] V. H. Chávez. SISTEMA DE INFORMACION PARA EL CONTROL,
SEGUIMIENTO Y MANTENIMIENTO DEL EQUIPAMIENTO HOSPITALARIO.
Proyecto de tesis. Facultad de ingeniería E. A. P. de ingeniería informática.
Universidad Ricardo Palma. Lima, Perú. 2010.
[33] S. Aranda, R. García, F. Poujol, C. Cháirez, N. Domínguez. “Sistema
computarizado para el apoyo del mantenimiento predictivo en centrales
termoeléctricas de la Comisión Federal de Electricidad”. Boletín IIE, vol. 26, pp. 70-
71, marzo, 2002.
60
Glosario
Módulo
Una parte de un sistema que cumple con una funcionalidad. En el caso de este
trabajo, el término es utilizado para referirse a las pantallas y funcionalidades
programadas de las mismas.
Metodología de desarrollo
Serie de pasos e indicaciones que es utilizado como guía para la planeación,
desarrollo y colaboración entre los miembros de un equipo en la realización de un
sistema o proyecto.
Repositorio
En el caso de este trabajo, el término es utilizado para referirse una copia del código
fuente de un sistema resguardado en línea.
Encuesta
Serie de preguntas realizadas a un grupo específico de personas con el fin de
obtener datos.
Eficiencia
En el caso de este trabajo, el término es utilizado para referirse a la rapidez con la
cual se lleva a cabo una actividad.
CFE
Siglas para Comisión Federal de Electricidad, empresa mexicana encargada de
generación, transmisión, control y comercialización de energía eléctrica.
Sistema
Dentro del documento, se utiliza esta palabra para referirse a cualquier sistema
informático. Estos se pueden definir como el conjunto de hardware, software y
desarrolladores que tienen como tarea el almacenamiento y procesamiento de
información.
61
Implementación
Dentro del documento, se utiliza el término para referirse al proceso en el cual un
sistema es instalado para su uso por parte de los usuarios.