AGRADECIMIENTOS
RESUMEN
La carencia de un software de gestión de refacciones en muchas empresas provoca
retrasos en el trabajo y la producción. El control manual del inventario resulta en
demoras en la administración, modificación, creación o eliminación de refacciones,
afectando la eficiencia operativa y la producción total del producto.
En este proyecto, viendo las carencias que tiene el departamento de mantenimiento en el área
donde se almacenan sus refacciones como lo es el guardar datos en Excel, este método que
tienen es poco usado en las empresas debido a su falta de carencias por ende se desarrolla un
software utilizando herramientas de software libre como C# y MySQL debido a su fiabilidad,
facilidad de aprendizaje y robustez. El software sigue el patrón de arquitectura de capa de
datos y la programación orientada a objetos y emigraremos la base de datos a SQL para que
posteriormente el programa acceda a tal base datos siendo esta una mejora en de gestión de
refacciones en el área de almacén
Contenido
AGRADECIMIENTOS...............................................................................................................1
RESUMEN..................................................................................................................................2
INTRODUCCION.......................................................................................................................4
CAPITULO 1..............................................................................................................................5
1.1 PLANTEAMIENTO DEL PROBLEMA..........................................................................5
1.2 DELIMITACION...............................................................................................................6
1.3 OBJETIVO GENERAL...................................................................................................6
1.4 OBJETIVOS ESPECIFICOS.........................................................................................6
1.5 JUSTIFICACION.............................................................................................................6
CAPITULO 2..............................................................................................................................7
2 MARCO TEORICO............................................................................................................7
2.1 VISUAL STUDIO.........................................................................................................7
2.2 POO (PROGRAMACION ORIENTADA A OBJETOS)...........................................8
2.3 MySQL........................................................................................................................10
2.4 LENGUAJE DE PROGRAMACION C#..................................................................11
2.5 CODIGO QR..............................................................................................................12
INTRODUCCION
Un gran porcentaje de las empresas no cuentan con un software que ayude a la
administración y gestión de refacciones de sus maquinarias del área de Mantenimiento.
El control manual del inventario, modificación, creación o eliminación genera un
retraso en el tiempo de trabajo y a su vez un retraso en la producción total del producto.
Este software fue desarrollado con herramientas de software libre, tales como C#
(lenguaje de programación), MySQL (motor de base de datos).La elección de estas
herramientas se basó en su fiabilidad, fácil curva de aprendizaje, robustez, gratuidad,
elegante diseño y configuración personalizada. El patrón de arquitectura de diseño de
software es el MVC (Modelo – Vista – Controlador) que ayuda a organizar el código de
forma ordenada, dividiendo sus funciones entre cliente y servidor, separando la capa
gráfica, su controlador de eventos y el acceso a la base de datos.
DESCRIPCION DE LA EMPRESA
La empresa Coavis México Sa. de C.V tiene giro automotriz, es una empresa
ensambladora y su producto son los módulos de gasolina para distintas marcas de
coches y modelos como FORD,GM,BMW etc. Es una empresa coreana de nivel
mundial comprometida con su calidad en sus productos.
En el departamento de mantenimiento estoy actualmente como practicante de
mantenimiento y uno de mis trabajos es registrar las refacciones que tenemos en el
almacén de mantenimiento, así como órdenes de compra, creación de layout de las
diferentes áreas.
CAPITULO 1
1.1 PLANTEAMIENTO DEL PROBLEMA
En los últimos años, dentro de la empresa COAVIS MEXICO, ha sido notorio el
desarrollo en infraestructura y tecnología implementada en los últimos años, lo cual se
ha producido de manera sostenida y progresiva permitiendo la incorporación de nuevos
modelos de bomba de Gasolina y Diesel, debido a eso ha aumentado su producción
anual.
La incorporación de nuevos modelos requiere nuevas máquinas e inclusive líneas Main
(una serie de máquinas que cada una es un proceso de ensamble diferente para
posteriormente en la maquina final tener el producto terminado).
Las maquinas son de tipo neumático y requieren distintos tipos de mantenimiento, por
ende, el área de mantenimiento se encarga de comprar las refacciones necesarias para
cada máquina. No hay un sistema que registre el nuevo y el viejo stock de las
refacciones, debido a esto cuando se necesita hacer cambio de una refacción y la
maquina esta en producción, el personal de mantenimiento genera mas tiempo buscando
una refacción y en ocasiones no hay stock, eso genera mucho tiempo muerto para el
área de mantenimiento y afecta gravemente a la producción del turno.
El proyecto se orienta a cubrir esta necesidad dentro de COAVIS MEXICO permitiendo
realizar una rápida gestión y un preciso seguimiento para cada refacción mediante un
sistema de administrador de datos (programa de computadora que se conecte a una base
de datos SQL). De esta manera se reducirá los tiempos muertos en las líneas de
producción debido a mantenimiento.
1.2 DELIMITACION
El sistema de datos abarcara de la gaveta 1 a la 5 que está ubicada en la sala de
refacciones del departamento de mantenimiento.
1.3 OBJETIVO GENERAL
Propuesta de programa de computadora basado en lenguaje C# conectada a una base de
datos SQL que gestione las refacciones en el almacén de mantenimiento.
1.4 OBJETIVOS ESPECIFICOS
Crear una base datos en SQL de las refacciones que se ubican en las gavetas del
1 al 5.
Creación de código backdoor para la conexión entre programa y base de datos
Creación de código de interfaz de aplicación
1.5 JUSTIFICACION
Este proyecto tomo relevancia debido que anteriormente en la empresa COAVIS
MEXICO se había hecho una base datos en Excel de las refacciones con stock y sin
stock del almacén. Este método es obsoleto, ya que el hecho de registrar manualmente
una pieza que se usara o buscar una pieza y sin saberlo no tener stock genera tiempo
muerto en medio de una reparación. Con este proyecto esos tiempos se reducirán
drásticamente.
CAPITULO 2
2 MARCO TEORICO
2.1 VISUAL STUDIO
Microsoft Visual Studio es un entorno de desarrollo integrado (IDE, por sus siglas en
inglés) para Windows y macOS. Es compatible con múltiples lenguajes de
programación, tales como C++, C#, Visual Basic .NET, F#, Java, Python, Ruby y PHP,
al igual que entornos de desarrollo web, como [Link] MVC, Django, etc.
2.1.1 HISOTORIA DE VISUAL STUDIO
La primera vez que Microsoft presentó Visual Studio fue en el año 1997 el cual, incluía
en el mismo paquete muchas de sus herramientas de programación y se llamaba Visual
Studio 5.0. Fue lanzado al mercado en dos ediciones: la edición Profesional y la versión
Enterprise.
Más adelante, en el año 1998, Microsoft lanzó la siguiente versión conocida como
Visual Studio 6.0 que se caracterizaba por ser la última versión que se ejecutaba en la
plataforma Win9x y que además, fue la base para el sistema de desarrollo de Microsoft
durante los 4 siguientes años.
En el año 2002, Microsoft lanzó Visual Studio .NET que produjo un gran cambio ya
que introdujo la plataforma .NET y además, los lenguajes de programación C# y J#.
En el año 2005, se lanzó Visual Studio 2005 comenzando a comercializarse de forma
online y de forma física en tiendas. Incluye mejoras a nivel de lenguajes de
programación y el soporte para plataformas de arquitectura de 64 bits.
Visual Studio es una herramienta de desarrollo muy completa ya que permite tanto a
desarrolladores con años de experiencia como a desarrolladores novatos escribir código
de forma sencilla. Visual Studio ofrece las siguientes características y funcionalidades:
Ofrece opciones para depurar el código, generar perfiles y emitir diagnósticos de
forma fácil.
Permite integración de pruebas.
Permite acceder a un marketplace para instalar extensiones.
Permite utilizar el control de versiones de Git para rastrear y guardar los
cambios en los ficheros.
Permite desarrollar e implementar bases de datos de SQL Server y Azure SQL
fácilmente.
Permite desarrollar extensiones propias.
Permite crear, administrar e implementar aplicaciones de escala de nube en
Azure.
Permite desarrollar tanto aplicaciones nativas como híbridas para Android, iOS
y Windows.
2.2 POO (PROGRAMACION ORIENTADA A OBJETOS)
Estos patrones los organiza en base a dos criterios: propósito (de creación, estructurales y de
comportamientos) y ámbito (clase y objeto).
Figura 1. Patrones de Diseño orientado a objetos
2.2.1 ARQUITECTURAS DE SOFTWARE
La arquitectura de software se refiere a la metodología utilizada para la estructuración y
organización de todos los componentes de un sistema informático con la finalidad de
que su desarrollo se realice en forma organizada, legible y entendible, siguiendo normas
y guías generales que rigen en su diseño y de esta forma procurar la calidad del mismo y
su futura evolución.
2.2.2 ¿QUÉ ES EL PATRÓN MVP?
La arquitectura MVP (Model/View/Presenter) nació a partir del modelo MVC (Model
View Controller), pero decirles que MVC fue usado por Smalltalk a partir de los años
80 y de acá MVP es una mutación si podríamos llamarlo así que nace a partir de MVC.
Es un derivado del patrón Modelo Vista Controlador (MVC) patrón de software,
también se utiliza principalmente para la construcción de interfaces de usuario. MVP es
una interfaz de usuario patrón de diseño de ingeniería para facilitar las pruebas unitarias
automatizadas y mejorar la separación de las preocupaciones en la lógica de
presentación.
La clave del patrón MVP es una estricta regulación de la interacción entre la vista y el
controlador, aunque en el patrón MVP, al controlador se le conoce como presentador.
[Link] MODELO
Es la representación en objetos del negocio y será manipulado desde y hacia la vista,
pero no en forma directa, sino que será el "Presenter" el responsable de hacerlo y de
enlazar a ambos, al "Model" y la "View".
Algunas veces el modelo está dado directamente por la estructura de base de datos y
otras está dado por objetos del tipo entidad que representan al negocio y que serán
persistidos en la base de datos, además es donde se lleva a cabo toda la lógica de
negocio.
Las principales características del Modelo son:
Es toda la lógica de negocio.
El modelo realiza toda la operación lógica de las aplicaciones usando el
dominio.
[Link] VISTA
Son las interfaces de usuario propiamente dichas y contra las que el interacciona. En lo
que es la tecnología .Net ejemplos concretos son las páginas Web con extensión .aspx o
formularios de Windows con extensión .cs.
Cada vista es una clase que implementara una interfaz, esta interfaz posee propiedades
que modelan los datos que serán persistidos y recuperados hacia y desde el modelo por
el "Presenter". Un ejemplo concreto de vista es la clase "WebForm" que implementa la
interfaz "IView".
Otro punto a destacar es que la vista será totalmente pasiva esto significa que todo el
comportamiento básicamente métodos, serán implementados por la clase "Presenter" y
quitados de la vista. Esto permite que las pruebas se centren en el "Presenter" y la
"View" minimizando los riesgos de los problemas sobre la vista.
Las principales características de las Vistas son:
Son las ventanas y controles que forman la interfaz de usuario de la aplicación
en sí.
La vista, que se encarga de mostrar la información al usuario y de interactuar
con él para hacer ciertas operaciones.
La vista no conoce el modelo.
La vista es testearles puesto que está basada en un contrato.
[Link] PRESENTADOR
El "Presenter" tendrá la responsabilidad de implementar el comportamiento que antes
estaba implementado en la propia View. Como un ejemplo concreto, para facilitar la
comprensión, podemos dar el que sigue:
Supongamos el método de atención al evento OnClick de un botón de un formulario el
cual realiza la persistencia de datos desde el formulario a la base de datos, este método
será candidato a ser migrado como un método de la clase "Presenter", luego este método
será invocado desde la vista.
2.2.3¿QUÉ ES EL PATRÓN MVC?
MVC es un patrón de diseño que proviene de las siglas en inglés (Model View
Controller / Modelo Vista Controlador). Una correcta implementación y uso de este
patrón logran separar la lógica de negocios de la interfaz de usuario, resultando en
aplicaciones donde es más fácil modificar tanto la apariencia visual como las reglas de
negocio sin que la otra se vea afectada.
2.2.4 ¿CÓMO FUNCIONA EL PATRÓN MVC?
Las tres partes del patrón de diseño de software MVP se pueden describir de la siguiente
manera:
Modelo: Maneja datos y lógica de negocios.
Vista: Se encarga del diseño y presentación.
Presentador: Es como el Controller de MVC, pero va a estar orquestando todo
lo que sucede. Es como un mesero qué se comunicará con el cocinero (modelo)
para traer lo que pide la vista.
Figura 2 Diagrama del patrón MVC
2.3 MySQL
2.3.1 ¿Qué es MySQL?
Según Oracle (2011), MySQL es un sistema de administración de base de datos
(DBMS) para bases de datos relacionales, multihilo, multiusuario, rápido y fácil de usar.
Ayuda a almacenar datos de forma organizada, usando como estándar el lenguaje SQL.
Puede ser instalado en diferentes plataformas, y puede ser accedido de forma local o
remota. Aunque MySQL es Open Source (Código Abierto en español), lo que significa
que es posible usa y modificar el software de forma gratuita, utilizando licencia GPL
(GNU General Public License), también puede ser adquirida bajo licencia comercial.
Fue programado bajo C y C++.
2.3.2 Características de MySQL
Según Oracle (2011), las características de MySQL son:
Programado en C y C++
Multiplataforma
Posee doble licenciamiento GPL y comercial.
Trabaja en entornos cliente/servidor o incrustados
Gran cantidad de software de contribuciones está disponible para MySQL
Uso de multihilos mediante hilos del kernel.
Proporciona sistemas de almacenamientos transaccionales y no transaccionales
Sistema de reserva de memoria basado en hilos.
Soporta gran variedad de tipo de datos
Desde la versión 5.0 ha ampliado el soporte para operadores, funciones y
cláusulas SQL como vistas, procedimientos almacenados, funciones de
agrupamiento, triggers, unions, joins, etc.
Usa sistema de privilegios y contraseñas para su administración, el cual cuenta
con buen nivel de flexibilidad y seguridad.
Soporte para base de datos con gran cantidad de registros.
Permite hasta 64 índices por tabla.
Soporte para conexiones con memoria compartida.
Amplio soporte para conjunto de caracteres.
Soporte para administración de la base de datos donde se puede realizar tareas
como optimización, reparación, chequeo de tablas, etc.
Es una de las bases con mejor perfomance o rendimiento a nivel transaccional.
Tablas hash en memoria, que son usadas como tablas temporales
Usa GNU Automake, Autoconf, y Libtool para portabilidad
APIs para diferentes lenguajes como C, PHP, Perl, C++, Python, etc.
Fácil instalación y configuración
2.4 LENGUAJE DE PROGRAMACION C#
Es un lenguaje de programación multiparadigma desarrollado por Microsoft, que
evoluciona de la familia de lenguajes C -como su nombre indica- tomando lo mejor de
los lenguajes C y C++ y que se asemeja mucho a lenguajes de alto nivel de abstracción
como Java y JavaScript. Forma parte de la plataforma .NET de Microsoft, una API que
se ha convertido en una de las principales plataformas de desarrollo debido a la facilidad
que ofrece para la construcción de todo tipo de aplicaciones multiplataforma sólidas y
duraderas.
2.4.1 CARACTERISTICAS DE C#
Se caracteriza principalmente por ser un lenguaje de programación orientado a objetos
(POO) polivalente y fácil de aprender. Sin perder potencia original de C, da la
posibilidad de acceder a bajo nivel al núcleo de los sistemas operativos, trabajar con
punteros a memoria e interactuar con elementos físicos de los dispositivos.
La POO se basa en estructurar un programa en piezas simples y reutilizables llamadas
clases para crear instancias individuales a partir de estas también conocidas como
objetos. Buscando, de esta manera, dejar de centrarnos en la lógica pura de los
programas, todo esto nos permite empezar a pensar en objetos y las relaciones o
interacciones que existen entre ellos. Estas características pueden verse como una serie
de ventajas y desventajas del lenguaje de programación C#.
Algunas características son:
Sintaxis sencilla. La sintaxis de C# es muy similar a Java, lo que simplifica al
desarrollador a la hora de escribir código.
Escritura. En C# tienes que declarar los tipos de datos con las variables, además
que estas variables no pueden ser globales. De esta manera se reducen los
errores de compilación. Además, es un lenguaje orientado a objetos, así que
obliga que todos los métodos y propiedades estén dentro de una clase.
Orientación a componentes. Además de ser orientado a objetos, como hemos
dicho antes, es orientado a componentes. Podemos definir propiedades sin
necesidad de crear métodos, como en Java, o usar eventos sin tratar con punteros
a funciones. Escribir código en C# es mucho más sencillo y potente que en otros
lenguajes de programación.
Sistema de tipos unificado. Todos los tipos de datos sencillos de C# derivan de
una clase común llamada [Link]. De esta manera, la conversión de tipos
sólo es compatible entre los tipos más cercanos (números enteros con decimales,
por ejemplo), además de facilitar la creación de colecciones.
CLR (Common Language Runtime). Es el núcleo de .NET, el motor que
ejecuta las aplicaciones programadas en C#, lo que ayuda a la integración del
sistema operativo o dlls externas.
Espacio de nombres. Puedes agrupar o aislar código mediante namespaces,
parecido al package de Java.
Polimorfismo. En C++ se permite la herencia múltiple, pero en C# no, aunque
puedes implementar interfaces. De esta manera se evitan complicaciones y
simplifica la escritura.
Operadores sobrescritos. En C# puedes recodificar un operador, como puede
ser el sumatorio + o el incremento ++.
Bibliotecas. Cualquier compilador de C# viene con un mínimo de biblioteca de
clases disponibles y que puedes usar.
Eliminación de los problemas de DLLs. Aunque puedes crear dlls en .NET, no
te encuentras con la problemática de la sustitución de versiones antiguas de dlls
compartidas con versiones nuevas. Pueden existir diferentes versiones de la
misma dll, simplificando la instalación del softwasre.
Multiplataforma. Actualmente, el lenguaje C# es de código abierto y se ha
utilizado en otros IDEs, como el proyecto Mono o Xamarin, y en múltiples
sistemas operativos, como puede ser OSx o Android.
Integración con otros lenguajes. Cualquier lenguaje que se compile con .NET,
como la nueva versión de visual basic, puede aprovecharse para usar en tu
proyecto.
Mejora en la gestión de memoria. Al igual que Java, en C# dispone de un
recolector de basura que destruye los objetos que no se usan en memoria.
Tratamiento de errores. Cualquier lenguaje de programación moderno utiliza
las excepciones para controlar los posibles errores en el código.
Multihilo. Puedes dividir tu código en múltiples hilos de ejecución, trabajar en
paralelo y sincronizándose al final.
2.5 CODIGO QR
El primer sistema de código QR fue inventado en 1994 por la empresa japonesa Denso
Wave, una subsidiaria de Toyota. Necesitaban una forma de rastrear con precisión los
vehículos y las piezas durante la fabricación. Para ello, investigaron cómo desarrollar un
tipo de código de barras que pudiera codificar kanji, kana y caracteres alfanuméricos.
En este proyecto se almacenará caracteres de datos de piezas,
Los códigos QR (Quick Response Code) son códigos bidimensionales que pueden
almacenar pequeñas cantidades de información, por ejemplo, una URL, y ser leídos
fácilmente con lectores especializados o con casi cualquier dispositivo que cuente con
una cámara de fotos
2.5.1 ¿Qué tipo de información puede almacenarse en los códigos
QR?
Información de contacto (vCard). Nombre, compañía, teléfono, dirección
postal...
Una dirección web (URL). Por ejemplo, al blog, a la web o incluso a tu perfil en
Facebook, Twitter, Linkld, Youtube, etc.
Una dirección de email.
Un mensaje del tipo SMS.
Un número de teléfono para realizar una llamada.
Un texto de hasta 350 caracteres
Parámetros de acceso a una red Wifi.
Datos de un evento para un calendario (día y hora de comienzo/fin, nombre del
evento)
Una Geolocalización para verla en un mapa.
2.5.2 CODIGO QR EN C#
La idea es que crear un objeto QrEncoder que será el encargado de generar el código
QR. Este código QR se almacena en un objeto QrCode, a partir del cual podemos
generar una imagen usando distintos tipos de renderers, en el caso del ejemplo, un
GraphicsRenderer que usa las clases de [Link].