Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular

Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito

Vehicular

OPCIÓN I

TESIS PROFESIONAL Presenta: Joshua Alexander Vergara Martínez

Asesora:

Mtra. Ramona Evelia Chávez Valdez

Co-Asesora:

M. en C. María Isabel Sáenz Rodríguez

Ingeniería Informática

Villa de Álvarez, Col., a 17 de Agosto de 2018

1

Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular

Índice de figuras

Figura 1 Frameworks ...... 18 Figura 2 Metodología PUA ...... 27 Figura 3 Modelo de casos de uso ...... 30 Figura 4 Modelo de requisitos ...... 31 Figura 5 Modelo de clases ...... 32 Figura 6 Modelo de datos ...... 33 Figura 7 Modelo de datos ...... 34 Figura 8 Modelo de Interfaces ...... 35 Figura 9 Modelo de componentes ...... 36 Figura 10 Modelo de despliegue ...... 37 Figura 11 Iniciar sesión ...... 38 Figura 12 Catálogo de usuarios ...... 39 Figura 13 Catálogo de clientes ...... 40 Figura 14 Catálogo de colores ...... 41 Figura 15 Catálogo de dependencia ...... 42 Figura 16 Catálogo de grúa ...... 43 Figura 17 Catálogo de línea ...... 44 Figura 18 Catálogo de marca ...... 45 Figura 19 Catálogo de operador ...... 46 Figura 20 Catálogo tipo de línea...... 47 Figura 21 Catálogo de traslado ...... 48 Figura 22 Registro de vehículo ...... 49 Figura 23 Salidas de vehículos ...... 50 Figura 24 Reporte por dependencia ...... 51 Figura 25 Reporte corte de caja ...... 52

2

Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular

Agradecimientos

Le agradezco a Dios por haberme acompañado y guiado a lo largo de mi carrera, por ser mi fortaleza en los momentos de debilidad y por brindarme una vida llena de aprendizajes, experiencias y sobre todo felicidad.

Le agradezco a mi asesora de tesis la Mtra. Ramona Evelia Chávez Valdez, por la orientación y ayuda que me brindó para la realización de esta tesis, por su apoyo y amistad que me permitieron aprender mucho más que lo estudiado en el proyecto.

Le doy gracias a mis padres Jorge y Guillermina por apoyarme en todo momento, por los valores que me han inculcado, y por haberme dado la oportunidad de tener una excelente educación en el transcurso de mi vida.

A Marleny, por haberme apoyado en las buenas y en las malas, sobre todo por su paciencia.

Agradezco infinitamente al Instituto Tecnológico de Colima todas las facilidades otorgadas y la autorización de trabajar y estudiar. Esto me permitió adquirir nuevos conocimientos. Y además a todos mis profesores de la licenciatura en Ingeniería Informática que me enseñaron tanto de la profesión como de la vida, impulsándome siempre a seguir adelante.

3

Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular

Resumen Esta tesis presenta la importancia de la selección de las tecnologías de programación en el desarrollo del software, aplicado a un caso de estudio que gestiona los procesos de depósito vehicular de la empresa Grúas El Mezquite. El objetivo es sistematizar los servicios de depósito y almacenamiento de vehículos, resguardo de vehículos particulares, traslado de vehículos particulares y traslado de vehículos asegurados; además de generar el recibo de pago, y los reportes de ingresos. Se trata de una investigación documental combinada con una investigación aplicada que resuelve un problema del contexto mediante el uso del Proceso Unificado Ágil. Se revisa el alcance de las tecnologías de programación y la orientación que tienen a las plataformas de escritorio, web o móviles. Se explica el contexto del caso de estudio y por qué Java es adecuado para el desarrollo del proyecto. Como resultado se tiene la presentación del desarrollo tecnológico que atiende el caso de estudio describiendo las funcionalidades definidas por el cliente.

4

Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular

Índice Capítulo 1 Introducción ...... 8 1.1 El contexto del problema ...... 8 1.2 Revisión de la literatura ...... 9 1.3 Planteamiento de la solución del problema ...... 10 1.4 Justificación ...... 10 1.5 Objetivos ...... 11 1.6 Hipótesis ...... 11 1.7 Metas ...... 12 1.8 Métodos y herramientas ...... 12 Capítulo 2 Marco teórico ...... 14 2.1 Software ...... 14 2.2 Sistema de información ...... 14 2.3 Tecnología de programación ...... 15 2.4 Tipos de tecnologías de programación ...... 17 Escritorio ...... 17 Web ...... 20 Móviles ...... 22 Capítulo 3 Metodología...... 25 3.1 Investigación documental ...... 25 3.2 El Proceso Unificado Ágil ...... 26 3.3 Tecnologías de programación ...... 28 Capítulo 4 Resultados ...... 30 4.1 Modelo de casos de uso...... 30 4.2 Modelo de requisitos ...... 31 4.3 Modelo de clases ...... 32 4.4 Modelo de datos ...... 33 4.5 Modelo de interfaces ...... 35 4.6 Modelo de componentes ...... 36 4.7 Modelo de despliegue ...... 37 4.8 El producto de TI ...... 38 Iniciar sesión ...... 38 Catálogo de usuarios ...... 39 Catálogo de clientes ...... 40 Catálogo de colores ...... 41

5

Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular

Catálogo de dependencia ...... 42 Catálogo de grúas ...... 43 Catálogo de línea ...... 44 Catálogo de marcas ...... 45 Catálogo de operadores ...... 46 Catálogo de tipo de línea ...... 47 Catálogo de traslado ...... 48 Registro de vehículo ...... 49 Salida de vehículo ...... 50 Reporte de entradas por dependencia ...... 51 Reporte de corte de caja ...... 52 4.9 Valoración de la hipótesis ...... 52 Capítulo 5 Conclusiones y recomendaciones ...... 55 Capítulo 6 Referencias ...... 57

6

Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular

Capítulo 1 Introducción

7

Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular

Capítulo 1 Introducción

Una fase fundamental en el desarrollo de software es la codificación, esta se refiere a traducir los algoritmos de una aplicación que ya han sido diseñados previamente, para que se traduzcan con un lenguaje de programación específico; es decir, las acciones definidas en los algoritmos hay que convertirlas a instrucciones. Para codificar un algoritmo hay que conocer la sintaxis del lenguaje al que se va a traducir. Sin embargo, independientemente del lenguaje de programación en que esté escrito un programa, será su algoritmo el que determine su lógica. Entendemos un algoritmo como lo describe (Joyaner & Ignacio, 2011) “Procedimiento para realizar un problema en el que se indican las acciones o instrucciones a ejecutar y el orden para efectuarlas.”, y la lógica “constituye una herramienta para el análisis de los razonamientos o argumentaciones generados por la mente humana”, (Fernández & Sáez, 1987). En todo desarrollo de software es importante valorar las diferentes tecnologías de programación vigentes, para utilizar la más adecuada al proyecto que pretende realizarse. Debido a la importancia que representa la elección acertada de una tecnología de programación, a lo largo de esta tesis encontrará la información necesaria sobre las diversas tecnologías de programación, se explicará el por qué se utiliza cada de acuerdo a sus características, así como una comparativa entre las diferentes tecnologías que son de acceso libre. Así pues, el objetivo es mostrar la importancia de seleccionar las tecnologías de programación tomando en cuenta el contexto de la organización, priorizando el entorno, la viabilidad y la seguridad del software resultante. 1.1 El contexto del problema

El contexto de esta tesis tiene como caso de estudio y ámbito Grúas El Mezquite, una empresa dedicada al transporte de vehículos con algún tipo de siniestro, y al depósito de los mismos. Para la gestión de sus operaciones la empresa usaba el software “Depósito de vehículos”, el cual ya no respondía a las necesidades de información. Dicho sistema perdió vigencia en virtud del surgimiento de nuevas tecnologías y, tanto los equipos como la tecnología de programación en la que está implementado fueron rebasadas. El problema estaba principalmente en la necesidad de registrar nuevos procesos y obtener reportes de los mismos, además de incorporar más usuarios al sistema.

8

Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular

1.2 Revisión de la literatura

Las tecnologías de programación han evolucionado, en el año de 1968 se trabajaba con los lenguajes de programación estructurada, mismos que (UNID, 2013) describe como “la formación básica de texto de programación (enunciados de programación) que al ser leídos puedan explicar el funcionamiento de un programa”; después en los años 90 surgieron los lenguajes orientados a objetos que (Deitel & Deitel, 2008) describió como aquellos que “permiten a los programadores de computadoras implementar un diseño orientado a objetos como un sistema funcional”; a la par se incorporaron los lenguajes visuales o gráficos que fueron definidos por (Khvilon, 2004) como lenguajes en los cuales nos es posible separar un código que realiza operaciones muy complejas con su interfaz hacia el usuario además de que Permite integrar elementos propios del sistema operativo. En la actualidad los dos últimos están vigentes y se utilizan conjuntamente. Se encontró que los lenguajes más populares en su momento fueron: En el rubro de lenguajes estructurados (Harbour, 2016) Fortran: 1956, para cálculo científico - estándares: 1966, 1977, 1990, 1997, 2003, 2008 • Cobol: 1960, para aplicaciones de gestión - estándar actual: 2002 • Lisp: 1958, para inteligencia artificial - estandarizado por ANSI en 1994 () - estandarizado por ISO en 1997, actualizado en 2007 (ISLISP) - tiene un dialecto importante llamado Scheme • Basic: 1964, para docencia, interpretado - Visual Basic - Visual Studio 2015 (Microsoft) en virtud de que tenían características como fácil aprendizaje y podían ser leídos en secuencia, desde el comienzo hasta el final sin perder la continuidad. En el rubro de los orientados a objetos (Harbour, 2016) Smaltalk: 1980, para programación orientada a objetos - estandarizado en 1998

C++: 1987, extensión mejorada del C que incorpora programación orientada a objetos - estandarizado en 1998, estandarizado de nuevo en 2003, 2011 y 2014 Java: 1995, para programación orientada a objetos en sistemas distribuidos (red Internet) - versión actual: Java 8 (2014) - ofrecido como software libre en 2007

9

Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular

Ada 95, Ada 2005, Ada 2012: versiones mejoradas del anterior, incluyendo programación orientada a objetos - estandarizado en 1995, 2005 y 2012. Grady Booch autor del método de diseño orientado a objetos (Gervais, 2016) define la programación orientada a objetos como: un método de implementación en el que los programas se organizan como colecciones cooperativas de objetos, cada uno de los cuales representan una instancia de alguna clase y cuyas clases son todos miembros de una jerarquía de clases unidos mediante relaciones de herencia. En el rubro de los visuales, aun cuando Microsoft popularizó en un corto tiempo Visual Basic, Visual C y otros, que seguían siendo estructurados, es con la llegada del paradigma orientado a objetos cuando se da el rompimiento en la generación de los lenguajes visuales; así surge la metodología Model View Controlador (MVC) que permite utilizar los lenguajes visuales a través de la modalidad .NET implementando el paradigma orientado a objetos. Sin embargo, es en los años 1986 y 1993 cuando los lenguajes web y móviles dan origen a la siguiente generación de lenguajes, misma que sigue vigente. 1.3 Planteamiento de la solución del problema

La solución propuesta está basada en una tecnología de programación que responde a las características y necesidades de información de la empresa; se diseñó un sistema que incluye la gestión de los procesos:

 Alta de vehículos  Baja de vehículos  Consulta de vehículos registrados  Reporte de corte de caja  Reporte de salidas por dependencias  Registro de usuarios  Registro de movimiento de usuarios

Los tres últimos se incorporan como nuevos procesos. El sistema se implementó con Java y MySql, a pesar de que no es web, permite el trabajo colaborativo mediante la configuración de una intranet en la empresa.

1.4 Justificación

10

Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular

Para esta tesis, el estudio de las tecnologías de programación aplicada al caso de estudio Gestión de una Empresa de Depósito Vehicular se justifica porque la empresa tiene características de operación particulares por su ubicación geográfica, dichas características motivaron a revisar las características de los lenguajes de programación vigentes a fin de seleccionar el más adecuado al proyecto y a la factibilidad técnica del lugar. Se trata de entregar como solución informática un software que se adapte a las condiciones del lugar y responda a las necesidades de información previendo el largo plazo. Por otro lado, otorga al autor una visión más amplia de los lenguajes de programación y su ámbito de aplicación para considerarlos en futuros desarrollos.

1.5 Objetivos

Objetivo general

 Mostrar la importancia de la selección de las tecnologías de programación en el desarrollo de software de un caso de estudio.

Objetivos específicos:

 Revisar la literatura para mostrar las características de las herramientas de programación vigentes.  Elaborar una comparativa de las tecnologías de programación de acceso libre.  Mostrar el proceso de selección de las herramientas de programación en un caso de estudio.  Mostrar el proceso de elaboración del software para un caso de estudio con énfasis en la metodología de desarrollo y las herramientas de programación utilizadas.  Mostrar el software desarrollado con las herramientas seleccionadas con énfasis en el entorno y la seguridad.

1.6 Hipótesis

Actualmente la programación de sistemas de información demanda utilizar más de una tecnología, ello permite acortar los tiempos de desarrollo y

11

Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular

mejorar los resultados. Un punto importante es elegir las tecnologías de programación en virtud de que esta generalmente da vigencia al software desarrollado; por ello la hipótesis establecida es: Las características de las tecnologías de programación determinan el contexto en que estos deben utilizarse. Esta hipótesis se apoya con las siguientes preguntas: ¿Qué características de los lenguajes de programación se consideran prioritarias al momento de elegirlas? ¿En qué medida las tecnologías de programación determinan la vigencia de un sistema de información?

¿Las tecnologías de programación deben adaptarse a las características del proyecto o de la empresa?

1.7 Metas

Se tiene como meta describir el cien por ciento las características de los lenguajes de programación a fin de sustentar la selección para la implementación del caso de estudio.

1.8 Métodos y herramientas

Esta tesis tiene inmerso un caso de estudio, lo que da lugar a utilizar por una parte investigación documental para dar sustento formal al tema de tecnologías de programación, e investigación aplicada para resolver el caso de estudio que se presenta. Los pasos a seguir fueron los siguientes:

 Investigación documental, sobre el tema de tecnologías de programación.  Aplicación de la metodología del Proceso Unificado Ágil (PUA) en la solución del caso de estudio para controlar el proceso de ingeniería de software.  Uso de las herramientas como el Enterprise Arquitect Project, Java 8 y WampServer.

12

Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular

Capítulo 2. Marco teórico

13

Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular

Capítulo 2 Marco teórico

En este apartado se presenta el marco teórico que contextualiza el uso de las tecnologías de programación.

2.1 Software

Según (Sommerville, 2005) “Los productos de software se pueden desarrollar para algún cliente en particular o para un mercado general, un sistema de software consiste en diversos programas independientes, archivos de configuración que se utilizan para ejecutar estos programas, un sistema de documentación que describe la estructura del sistema, la documentación para el usuario que explica cómo utilizar el sistema y sitios web que permitan a los usuarios descargar la información de productos recientes.”

El autor (Pressman, 2010) menciona que el software de computadora es el producto que construyen los programadores profesionales y al que después le dan mantenimiento durante un largo tiempo. Incluye programas que se ejecutan en una computadora de cualquier tamaño y arquitectura, contenido presenta a medida que se ejecutan los programas de cómputo e información descriptiva tanto en una copia dura como en formatos virtuales que engloban cualquier medio electrónico. Además, puede tomar varias acepciones: “1) instrucciones (programas de cómputo) que cuando se ejecutan proporcionan las características, función y desempeño buscados; 2) estructuras de datos que permiten que los programas manipulen en forma adecuada la información, y 3) información descriptiva tanto en papel como en formas virtuales que describen la operación y uso de los programas”.

2.2 Sistema de información

Un sistema de información permite el acceso controlado a una gran base de información, como un catálogo de biblioteca, un horario de vuelos o los registros de pacientes en un hospital (Sommerville, 2005).

Laudon (2012), define un sistema de información como los “componentes interrelacionados que trabajan en conjunto para recolectar, procesar, almacenar y diseminar información para soportar la toma de decisiones, la coordinación, el control, el análisis y la visualización en una organización.

14

Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular

2.3 Tecnología de programación

¿Qué es la programación? Según (Bruno, 2006) la programación es el proceso de tomar un algoritmo y codificarlo en una notación, un lenguaje de programación, de modo que pueda ser ejecutado por una computadora.

¿Qué es un algoritmo? (Bruno, 2006) también dice que los algoritmos describen la solución a un problema en términos de los datos requeridos para representar el caso del problema y el conjunto de pasos necesarios para producir el resultado pretendido.

Por otro lado, el autor (Joyanes, 1988) define un algoritmo como una secuencia de instrucciones que representan un modelo de solución para determinado tipo de problema lo que puede resumirse como un conjunto de instrucciones que realizadas en orden conducen a obtener la solución de un problema.

Cabe mencionar que para realizar un programa es conveniente el diseño o definición previa del algoritmo. El diseño de algoritmos requiere creatividad y conocimientos profundos de la técnica de programación. (Joyanes, 1988) menciona también que en la ciencia de la computación y en la programación, los algoritmos son más importantes que los lenguajes de programación o las computadoras ya que el lenguaje de programación es sólo un medio para expresar un algoritmo y una computadora es sólo un procesador para ejecutarlo.

¿Que son los lenguajes de programación? Según (Almagro, 2010) define un lenguaje de programación como un conjunto de reglas o normas que permiten asociar a cada programa correcto un cálculo que será llevado a cabo por un ordenador.

Aunque existen muchos lenguajes de programación y muchos tipos diferentes de computadoras, el primer paso es la necesidad de tener una solución implementada mediante un algoritmo.

Las ciencias de la programación no son el estudio de la programación. La programación, es una parte importante de lo que hace un científico de la computación. La programación es a menudo la manera en la que creamos una

15

Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular

representación para nuestras soluciones. Por tanto, esta representación en un lenguaje y el proceso de crearla se convierte en una parte fundamental de la disciplina.

Las estructuras de control permiten que los pasos algorítmicos sean representados de una manera conveniente, pero sin ambigüedades. Como mínimo, los algoritmos requieren estructuras que lleven a cabo procesamiento secuencial, selección para toma de decisiones e iteraciones para control repetitivo. Siempre y cuando el lenguaje proporcione estas instrucciones básicas, éste puede ser usado para la representación del algoritmo (Miller & Ranum, 2011).

¿Qué son los frameworks?

(Larman, 2010) define una framework como una colección organizada de clases que constituyen un diseño reutilizable para un dominio específico de software. Además, agrega funcionalidad extendida a un lenguaje de programación, proporciona una estructura al código, mejorándolo y haciéndolo más entendible y sostenible, y permite separar en capas la aplicación.

Por su parte (Mackenzie, 2006) dice que framework es el nombre que se le ha dado a una diversidad de componentes y servicios que se combinan para generar un potente entorno de desarrollo.

Herramienta CASE

Según el autor (Sommerville, 2005) la herramienta CASE (Ingeniería del Software Asistida por Computadora) se integra por un amplio conjunto de diferentes tipos de programas que se usan para ayudar dentro de las actividades del proceso de software, como el análisis de requerimientos, el modelado de sistemas, la depuración y las pruebas. Actualmente todos los métodos tienen integrada la tecnología CASE, esta viene como editor para las notaciones utilizadas, módulos de análisis que verifican el modelo del sistema según las reglas del método y generadores de informes que apoyan en la creación de la documentación del sistema. (Sommerville, 2005) explica que las herramientas CASE también incluyen un generador de código automático, este genera código fuente a partir del modelo del sistema y de algunos procesos que se realizan mediante la ingeniería de software.

16

Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular

El autor nos hace una nota muy puntual referente a la aplicación de las herramientas CASE: “La mayoría de los conjuntos de herramientas CASE completos permiten al usuario generar un programa o un fragmento de un programa a partir de la información proporcionada en el modelo del sistema. Las herramientas CASE a menudo soportan diferentes lenguajes para que el usuario pueda generar un programa en C, C++ o Java a partir del mismo modelo de diseño. Debido a que los modelos excluyen detalles de bajo nivel, el generador de código en un banco de trabajo de diseño no puede normalmente generar el sistema completo. Normalmente es necesaria alguna codificación manual para añadir detalles al código generado.”

2.4 Tipos de tecnologías de programación

Escritorio De acuerdo (Arias, 2015) el software de escritorio es el nombre que damos al software que se ejecuta directamente en la computadora del usuario. Por otro lado, la empresa Microsoft (2018) dice que el desarrollo de escritorio es un término que hace referencia al proceso de escribir software que se ejecutará en equipos estándar, como los equipos de escritorio, portátiles o de uso general. El software en desarrollo puede tratarse de software de sistema para el apoyo del sistema operativo o de software de aplicación. El software de aplicación está diseñado para realizar una tarea única o un conjunto relacionado de tareas e incluye, entre otros, los juegos, los procesadores de texto y las aplicaciones personalizadas para empresas. Tecnologías para desarrollo de escritorio: Java, Python, C#

Java Elisa Viso en su libro Introducción a las ciencias de la Computación en Java (Viso, 2007) menciona que Java es un lenguaje orientado a objetos, cuyo principal objetivo de diseño es que fuera portátil. Las principales características de Java son: simple, robusto y portable lo cual lo vuelve muy adecuado para ajustarse y facilitar el desarrollo de software de calidad, cabe mencionar que los desarrollos de software en java permiten una mantenibilidad mucho mayor que el desarrollo en otros lenguajes, pues por un lado la robustez hace que el código sea mucho más fiable y por otra parte su portabilidad y seguridad vuelven más fácil la descarga de mejoras y actualizaciones. Otro punto a favor de Java es que por sus características su uso es muy adecuado para el desarrollo de aplicaciones para entornos distribuidos como lo es internet o las intranets.

17

Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular

De acuerdo a un estudio realizado por (Shelajev, 2017) se puede observar en la figura 1 que los mejores frameworks o los más recomendados para trabajar con Java son:

Figura 1 Java Frameworks De los anteriores nos enfocaremos en los que más destacan por su facilidad para implementarlos: Spring MVC (González, 2016) menciona que después de su expansión al MVC (Modelo Vista Controlador), Spring siguió evolucionando convirtiéndose en un framework de gran escala de Java para las aplicaciones de Internet, ofreciendo a los ingenieros una poderosa herramienta para el desarrollo de aplicaciones web, así como para proyectos de seguridad. Spring es considerado uno de los mejores frameworks debido a la amplia gama de servicios que ofrece. Además, debido a la gran cantidad de usuarios de Spring la documentación del mismo es muy amplia.

18

Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular

Struts 2 Según (Laffosse, 2010). Otro de los principales frameworks de Java utilizados por gran parte de los ingenieros de software más modernos es el sucesor de Apache Struts 1, su versión número dos. Apache ha entregado a estos un conjunto enorme de herramientas para crear aplicaciones web orientadas a empresas optimizando el proceso de desarrollo desde el inicio hasta el final y el mantenimiento posterior a la entrada en funcionamiento. Tambien considera que Struts es superior a muchos frameworks de acuerdo a la aplicación de validaciones de formularios y la arquitectura global para la gestión de JavaBeans (sin necesidad de utilizar Beans de formularios). Utilizando un enfoque basado en componentes conocidos, quita peso a los desarrolladores a la hora de comunicar los cambios realizados al navegador. Un amplio conjunto de componentes de interfaz de usuario, junto con diversos widgets y controles, permite a los programadores crear aplicaciones más que interesantes en muy poco tiempo. Goggle Web Toolkit (Garcia, 2015) explica que el kit de desarrollo de software GWT ofrece Java y widgets básicos para la construcción de aplicaciones compiladas después de aplicarles JavaScript. Este framework web es considerado como una herramienta dinámica que mejora la productividad de los ingenieros debido a sus APIs , sus buenos valores por defecto, así como su convención sobre la configuración de paradigma. La perfecta integración de Java hace que este sea uno de los frameworks mejor valorados por desarrolladores de todo el mundo. Un conjunto de herramientas poderosas, tales como la inyección de dependencia Spring-powered y diversos complementos, que ofrecen todo lo necesario para crear modernas aplicaciones web. Python (Montoro, 2012) define a Python como un lenguaje de programación de alto nivel, interpretado y multipropósito. En las últimas fechas su utilización ha ido en constante crecimiento y en la actualidad es uno de los lenguajes de programación más empleados para el desarrollo de software. Python nos ofrece grandes ventajas, permite trabajar con diferentes sistemas operativos como Windows, Mac OS y Linux, no tiene un ámbito de desarrollo especifico, y además también puede funcionar en smartphones.

19

Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular

C# (Microsoft, 2017) menciona que C# es un lenguaje con seguridad de tipos y orientado a objetos, que permite a los desarrolladores crear una gran variedad de aplicaciones seguras y sólidas que se ejecutan en .NET Framework .NET. Puede usar C# para crear aplicaciones cliente de Windows, servicios web XML, componentes distribuidos, aplicaciones cliente-servidor, aplicaciones de base de datos y muchas, muchas más cosas. Visual C# proporciona un editor de código avanzado, prácticos diseñadores de interfaz de usuario, un depurador integrado y muchas otras herramientas que facilitan el desarrollo de aplicaciones basadas en el lenguaje C# y .NET Framework.

Web Con base en (Arias & Durango, 2014) se refiere al desarrollo web como aquel desarrollo que implica tanto a las aplicaciones internas de una organización (como una intranet corporativa) como a las aplicaciones para internet. En este caso, además de los conocimientos mencionados en el desarrollo de escritorio, se recomienda estudiar redes de computadoras, con especial énfasis en los protocolos y en el modelo cliente-servidor, y estudio de los lenguajes de marcado ya que los diferentes lenguajes de programación no especifican como representarlo gráficamente, pero tienen la necesidad de presentar la información que procesan. En estos casos, se requiere u aprendizaje de HTML y CSS

PHP (Cobo, 2005) menciona que PHP es un lenguaje interpretado del lado del servidor que surge dentro de la corriente denominada código abierto (open source). Se caracteriza por su potencia, versatilidad, robustez y modularidad. Al igual que ocurre con tecnologías similares, los programas son integrados directamente dentro del código HTML. En este libro se explicará en detalle la sintaxis y el funcionamiento de este lenguaje, de momento se realiza a continuación una breve comparativa con las otras tecnologías del lado del servidor descritas previamente. La principal ventaja de PHP es su carácter multiplataforma.

Laravel

Laravel es un framework muy utilizado en PHP, tiene un diseño extremadamente fácil de aprender y utilizar, además de ser súper rápido para el desarrollo de aplicaciones web, y cuenta con potentes herramientas

20

Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular

necesarias para construir grandes aplicaciones, con un contenedor de controles de inversión, sistema de migración expresiva y el apoyo de las pruebas unitarias estrechamente integrada (Shelajev, 2017).

Laravel, propone una forma de desarrollar aplicaciones web de un modo mucho más ágil. Por ejemplo, en Laravel opcionalmente podemos usar el patrón de diseño MVC (Modelo-Vista-Controlador) tradicional, donde al igual que otros fameworks PHP, el controlador es programado como una clase. Por lo tanto, un Controlador es una clase PHP que dispone de métodos públicos que son el punto de entrada final de una petición HTTP (Request PHP) a nuestra aplicación. Pero, Lavarel propone además una forma distinta y más directa de responder a la solicitud HTTP, que veremos enseguida.

CodeIgniter

CodeIgniter es un framework muy potente que entre sus principales características tiene su velocidad, su sencillez y facilidad de ser aprendido, por lo que resulta ideal para iniciar cualquier proyecto.

CodeIgniter está enfocado al desarrollo de aplicaciones en PHP utilizando el MVC. Este framework permite a los programadores mejorar de forma notoria su velocidad al trabajar, además, solo exige al menos un conocimiento medio de programación en PHP para poder trabajar de forma eficiente (Shelajev, 2017).

Yii Este framework está enfocado al desarrollo de aplicaciones web de código abierto, entre sus principales características se encuentra el desarrollo rápido, almacenamiento en caché, control de acceso basado en roles y la autenticación. Gracias a que su ejecución es de gran velocidad se recomienda para desarrollar aplicaciones de gran tráfico como portales, foros, sistemas de administración de contenidos, Sistemas de comercio electrónico, etc. JavaScript Java Script es un lenguaje de aplicaciones cliente/servidor a través de internet. Se maneja insertado dentro del documento HTML que lo presenta al usuario y no es por ello un programa aparte. Java Script nos permite crear aplicaciones similares a los CGI (Common Gateway Interface). El CGI es un mecanismo que se ha utilizado en los servidores web para implementar las páginas webs activas (JavaScript, 2018).

21

Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular

ASP.Net Microsoft Developer Network (Microsoft, 2017) explica que ASP.Net Es un modelo de desarrollo web unificado que incluye los servicios necesarios para crear aplicaciones web empresariales con un mínimo de código. ASP.NET forma parte de .NET Framework y al codificar las aplicaciones ASP.NET tiene acceso a las clases en .NET Framework. El código de las aplicaciones puede escribirse en cualquier lenguaje compatible con el Common Language Runtime (CLR), entre ellos Microsoft Visual Basic, C#, JScript .NET y J#. Estos lenguajes permiten desarrollar aplicaciones ASP.NET que se benefician del Common Language Runtime.

Móviles (Arias & Durango, 2014) explican que las aplicaciones que se ejecutan en dispositivos tales como teléfonos móviles, smartphones, tabletas y similares son consideradas como móviles. En general, estas aplicaciones requieren un conocimiento profundo del desarrollo de la arquitectura que tiene un dispositivo móvil ya que tiene menor capacidad de memoria y de procesamiento si lo comparamos con el de una computadora ordinaria. Además, los elementos tales como la facilidad de uso son importantes porque un dispositivo móvil es más pequeño y no tiene accesorios para su manipulación como son los ratones y periféricos similares.

Android SDK Se incluyen las herramientas necesarias para dar los primeros pasos programando para esta plataforma: distintas APIs facilitadas por Google tanto para el control de las funciones del dispositivo como para la integración de servicios, un depurador, un emulador para testear las aplicaciones y toda la documentación necesaria para dar tus primeros pasos programando en Android (Shelajev, 2017).

Java ME

Java Platform, Micro Edition (Java ME) (ORACLE, 2018) proporciona un entorno robusto y flexible para aplicaciones que se ejecutan en dispositivos integrados y móviles en Internet of Things: microcontroladores, sensores, gateways, teléfonos móviles, asistentes digitales personales (PDA), TV cajas superiores, impresoras y más.

22

Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular

Java ME incluye interfaces de usuario flexibles, seguridad sólida, protocolos de red incorporados y soporte para aplicaciones en red y fuera de línea que se pueden descargar dinámicamente. Las aplicaciones basadas en Java ME son portátiles en muchos dispositivos, pero aprovechan las capacidades nativas de cada dispositivo.

Python (Montoro, 2012) nos define a Python como un lenguaje de programación de alto nivel, interpretado y multipropósito. En las últimas fechas su utilización ha ido en constante crecimiento y en la actualidad es uno de los lenguajes de programación más empleados para el desarrollo de software. La mayor ventaja que Python puede ofrecer es que no tiene un ámbito de desarrollo especifico, y sus características nos permite trabajar con diferentes sistemas operativos como Windows, Mac OS y Linux, además también puede funcionar en smartphones.

Objetive-C Es un lenguaje de programación sencillo diseñado para permitir la sofisticada programación orientada a objetos. Objective-C extiende el estándar ANSI del lenguaje C, proporcionando sintaxis para definir clases, métodos, así como otras estructuras que promueven la extensión dinámica de clases.

Objective-C es un superconjunto de la versión ANSI del lenguaje de programación C y soporta la misma sinxtaxis que C. Como con código C, puede definir sus ficheros de cabeceras y sus ficheros de código fuente para separar las declaraciones públicas de los detalles de la implementación de su código.

Se puede concluir que el concepto de tecnología de programación considera a los lenguajes y herramientas que permiten codificar un sistema de información; por sus características facilitan y disminuyen el proceso de ingeniería de software y en general suministran un modo notacional para representar tanto el proceso como los datos. Son tan diversos que permiten programar sistemas de información orientados a escritorio, web o móviles (Shelajev, 2017).

23

Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular

Capítulo 3 Metodología

24

Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular

Capítulo 3 Metodología

Esta tesis presenta investigación aplicada en virtud de que resuelve un problema del contexto productivo de la región; según (Lozada, 2014) la investigación aplicada se basa fundamentalmente en los hallazgos tecnológicos de la investigación básica, esta se ocupa del proceso de enlace entre la teoría y el producto. La investigación aplicada busca la generación de conocimiento aplicándola directamente a problemas sociales o productivos. (Paneque, 1998) menciona que si el problema surge directamente de la práctica social y genera resultados que son aplicables dentro del ámbito donde se realizan entonces se considera que la investigación es aplicada. Es obvio, que la aplicación no tiene forzosamente que ser directa en la producción o en los servicios, pero sus resultados se consideran de utilidad para aplicaciones prácticas. La investigación aplicada generalmente tiene relación con el desarrollo tecnológico, según (CONACYT, 2014) se refiere al desarrollo tecnológico como el uso sistemático del conocimiento y la investigación dirigidos hacia la producción de materiales, dispositivos, sistemas o métodos incluyendo el diseño, desarrollo, mejora de prototipos, procesos, productos, servicios o modelos organizativos. Por otra parte, (Airbar, 2001) dice que el desarrollo tecnológico se comprende como una sucesión de invenciones o innovaciones donde cada escalón conduce al siguiente y donde cada artefacto parece haber sido diseñado con el objetivo de llegar a la situación presente mediante aproximaciones sucesivas. Esta tesis está basada en los siguientes pasos:

 Investigación documental, sobre el tema de tecnologías de programación.  Aplicación de la metodología del Proceso Unificado Ágil (PUA) en la solución del caso de estudio para controlar el proceso de ingeniería de software.  Uso de las herramientas como el Enterprise Arquitect Project, Java 8 y WampServer.

3.1 Investigación documental

Se indagó en fuentes de información confiables la terminología y el contexto de las tecnologías de programación, a fin de identificar las características de los lenguajes y herramientas de programación como base para desarrollar sistemas acordes a las necesidades de la organización y su contexto previendo la vigencia de mediano o largo plazo.

25

Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular

3.2 El Proceso Unificado Ágil

Por tratarse de una metodología que se considera “en serie para lo grande” e “iterativa para lo pequeño (Ambler, 2006), se optó por el Proceso Unificado Ágil (PUA) basada en la metodología Rational Unified Process (RUP) (Pressman, 2010), según la figura 1. Metodología PUA, esta trabaja en dos dimensiones: fases y flujos de trabajo. Las cuatro fases son: Iniciación, Elaboración, Construcción y Transición; cada fase trabaja con las disciplinas de Modelo de negocio, Requerimientos, Análisis y Diseño, Implementación, Pruebas, Despliegue y de manera transversal en cada fase con la Configuración y Administración de cambios, gestión del proyecto y entorno de producción. Cabe destacar que esta metodología es iterativa e incremental. El proceso unificado ágil (PUA) adopta una filosofía “en serie para lo grande” e “iterativa para lo pequeño a fin de construir sistemas basados en computadora. Al adoptar las actividades en fase clásicas del PU — concepción, elaboración, construcción y transición—, el PUA brinda un revestimiento en serie (por ejemplo, una secuencia lineal de actividades de ingeniería de software) que permite que el equipo visualice el flujo general del proceso de un proyecto de software. Sin embargo, dentro de cada actividad, el equipo repite con objeto de alcanzar la agilidad y entregar tan rápido como sea posible incrementos de software significativos a los usuarios finales. Cada iteración del PUA aborda las actividades siguientes:

26

Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular

Figura 2 Metodología PUA

En la primera fase, iniciación, se trabajó básicamente en:

 El modelo el negocio para detectar el proceso que aporta valor a la empresa.  Los requerimientos con el cliente a través de entrevistas y una estancia en sitio para identificar el alcance.  La visión del proyecto en el contexto organizacional.

En la fase de elaboración se definieron las iteraciones necesarias, para:

 Elaborar los modelos de casos de uso y requisitos.  Elaborar los modelos de clases, datos, interfaces y despliegue.  Validar los modelos de clases, de datos e interfaces con el cliente.

En la fase de construcción las actividades se realizaron de acuerdo a las iteraciones que se definieron, así la actividad principal fue:

 Implementar los modelos de clases, datos e interfaces en el lenguaje de programación seleccionado de acuerdo a las funcionalidades priorizadas por el cliente. Así en cada iteración se tuvieron los incrementos programados, mismos que se pusieron en producción.

27

Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular

En la fase de Transición las iteraciones correspondieron con la fase de construcción para poner en prueba las funcionalidades desarrolladas y posteriormente en producción. 3.3 Tecnologías de programación

Considerando las complicaciones de comunicación y conectividad que tiene la empresa se decidió por utilizar: Lenguaje Java 8, este permitió implementar las clases e interfaces necesarias para la operación del sistema. WampServer porque es software libre y permitió tener los elementos necesarios para tener un servidor web, ofrece un sistema operativo, un manejador de base de datos (MySQL), un software para servidor (Apache) y un software de programación script web (PHP generalmente).

28

Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular

Capítulo 4. Resultados

29

Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular

Capítulo 4 Resultados

En este capítulo se presenta el desarrollo del sistema y los resultados obtenidos al aplicar el proceso de ingeniería de software; para este caso de estudio el PUA. Se muestra la arquitectura del sistema y los resultados de la codificación correspondiente. 4.1 Modelo de casos de uso Los casos de uso describen bajo la forma de acciones y reacciones el comportamiento de un sistema desde el punto de vista de un usuario, permiten definir los límites del sistema y las relaciones entre el sistema y el entorno (Kendall, 2005).

En la figura 3 Modelo de casos de uso, se puede observar que el actor usuario es el encargado de llevar a cabo varios procesos para la obtención de información como registrar las entradas y salidas de los vehículos que lleguen al depósito.

Figura 3 Modelo de casos de uso

30

Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular

4.2 Modelo de requisitos Tiene como finalidad comprender el sistema y delimitar su alcance (Pressman, 2010). En la figura 4 Modelo de requisitos se muestran los requisitos necesarios para que el software sea funcional. Tal como permitir la entrada de los vehículos, salida de vehículos, imprimir recibo, asignar privilegios a los usuarios y registrar la venta correspondiente del depósito de vehículo.

Figura 4 Modelo de requisitos

31

Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular

4.3 Modelo de clases Describe la estructura de un sistema mostrando las clases del sistema, sus atributos, operaciones (o métodos), y las relaciones entre los objetos (Rumbaugh, 2005-2007). En la figura 5 Modelo de clases se muestra la clase principal (vehículo) que contiene la información requerida para registrar un vehículo, esta tiene relación con las clases cliente y grúa. La clase grúa contiene los datos de la grúa en la que se realizó el traslado, así como el operador que estuvo a cargo del servicio. A su vez la clase vehículo se relaciona con la clase inventario que contiene información sobre las condiciones en las que llega el vehículo al depósito y esta establece relación con la clase dependencia (autoridad que remite el vehículo).

Figura 5 Modelo de clases

32

Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular

4.4 Modelo de datos Determina la estructura lógica de una base de datos y de manera fundamental determina el modo de almacenar, organizar y manipular los datos (Fossati, 2017). En las figuras 6 y 7 Modelo de datos se muestra como está integrada y organizada la base de datos para que el sistema almacene y recupera los datos eficientemente. La tabla registro es la entidad rectora en la base de datos, ello está relacionada con las entidades vehículo, grúa, operador, servicios, maniobras, dependencia y el usuario. La Tabla de vehículo tiene una relación con las tablas marca, línea, y color para identificar el vehículo.

Figura 6 Modelo de datos

33

Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular

Figura 7 Modelo de datos

34

Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular

4.5 Modelo de interfaces Permite especificar todos los aspectos relacionados con la interfaz que visualiza el usuario (Pressman, 2010). En la figura 8 Modelo de interfaces, se muestra el diagrama de navegación de las diferentes interfaces con las que interactuará el usuario. La primera vista iniciar sesión requerirá de un nombre de usuario y contraseña. Confirmando al usuario, este accede a los permisos que este tiene asignados; al tener acceso al menú puede manipular los datos de los catálogos que estén registrados.

Figura 8 Modelo de Interfaces

35

Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular

4.6 Modelo de componentes Representa cómo un sistema de software es dividido en componentes y muestra las dependencias entre estos componentes (Sommerville, 2005). En la figura 9 Modelo de componentes se puede observar los componentes que ayudan al sistema a cumplir su función, nuestro componente principal es ventas el cual depende de servicios, vehículos y clientes para registrar los datos correspondientes a la operación.

Figura 9 Modelo de componentes

36

Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular

4.7 Modelo de despliegue Muestra la arquitectura en tiempo de ejecución de un sistema. Esto muestra la configuración de los elementos de hardware (nodos) y muestra cómo los elementos y artefactos del software se trazan en esos nodos (Pressman, 2010). En la figura 10 Modelo de despliegue se muestra que el usuario interactúa con el sistema de gestión de procesos de depósito vehicular por medio de un computador teniendo un servidor local con él sistema.

Figura 10 Modelo de despliegue

37

Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular

4.8 El producto de TI Con base en el desarrollo del Sistema Informático para la Gestión de los Procesos de Depósito Vehicular de “Grúas El Mezquite”, se obtuvieron las siguientes interfaces que permiten al usuario interactuar de una forma amigable con el sistema.

Iniciar sesión En la figura 11 Iniciar sesión es la primera interfaz con la que el usuario interactúa al sistema. Se le solicita Usuario y Contraseña, datos que serán proporcionados por la Administración para control de usuarios. Al validar el usuario el sistema sabe que permisos tiene otorgados.

Figura 11 Iniciar sesión

38

Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular

Catálogo de usuarios En la figura 12 se muestra el catálogo de usuarios. El administrador del sistema tiene los permisos agregar, modificar y eliminar usuarios. Se requiere el nombre del usuario, contraseña y los privilegios que le fueron otorgados por el sistema. Con el fin de mejorar los movimientos que cada usuario tiene.

Figura 12 Catálogo de usuarios

39

Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular

Catálogo de clientes En la figura 13 Catálogo de clientes se puede agregar los datos como Nombre, RFC, Domicilio, Estado, Municipio, Código Postal y correo electrónico para los clientes que tiene crédito en la empresa. Nos permite agregar, modificar, eliminar e imprimir.

Figura 13 Catálogo de clientes

40

Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular

Catálogo de colores En la figura 14 Catálogo de colores se puede agregar nuevos colores, ya que algunos vehículos no tienen pintura uniforme, sino que la cobertura se integra de varios colores. De esta lista de colores se seleccionan la cantidad necesaria para facilitar la ubicación del vehículo.

Figura 14 Catálogo de colores

41

Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular

Catálogo de dependencia En la figura 15 Catálogo de dependencia se puede agregar los nombres de las dependencias que mandan a resguardar al depósito. Nos permite modificar, y eliminar la información guardada, esto con el fin de mejorar la información de los vehículos que la dependencia envió. Al agregar una nueva dependencia esta se guarda con una tarifa (Cobro de traslado de acuerdo al tipo de vehículo) la cual puede modificarse en caso necesario.

Figura 15 Catálogo de dependencia

42

Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular

Catálogo de grúas En la figura 16 Catálogo de grúa se puede agregar las grúas que la empresa tiene. Nos permite modificar, y eliminar la información, esto con el fin de mejorar la información guardada sobre las grúas con las que cuenta la empresa. Para el registro se solicitan datos como: Marca, Tipo, Serie, Placas, Año y número Económico.

Figura 16 Catálogo de grúa

43

Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular

Catálogo de línea En la figura 17 Catálogo de línea se puede agregar los nombres de línea de las marcas registras y el tipo de vehículo que es. Nos permite modificar, y eliminar la información guardada, esto con el fin de mejorar la descripción sobre los vehículos y de esta manera facilitar la búsqueda de los mismos. Para el registro se solicitan datos como: Marca, Tipo y el nombre de la línea.

Figura 17 Catálogo de línea

44

Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular

Catálogo de marcas En la figura 18 Catálogo de marca se puede agregar las marcas de vehículos que existen en el mercado. Nos permite modificar, y eliminar la información guardada, esto con el fin de mejorar la descripción sobre los vehículos y de esta manera facilitar la búsqueda de los mismos.

Figura 18 Catálogo de marca

45

Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular

Catálogo de operadores En la figura 19 Catálogo de operador se puede agregar los operadores que manejan las grúas. Nos permite modificar, y eliminar la información guardada, esto para un mejor control en los servicios realizados, así como el manejo de los equipos de grúa. Para registrar un operador nuevo se solicitan datos como: Nombre, Apellido y Teléfono.

Figura 19 Catálogo de operador

46

Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular

Catálogo de tipo de línea En la figura 20 Catálogo tipo de línea se puede agregar los diferentes tipos de vehículos que existen y agregar la tarifa de estancia de ese tipo. Nos permite modificar, y eliminar la información guardada, esto con el fin de mejorar la descripción sobre los vehículos y de esta manera facilitar su búsqueda.

Figura 20 Catálogo tipo de línea

47

Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular

Catálogo de traslado En la figura 21 Catálogo de traslado se puede agregar las diferentes formas en que el vehículo se puede trasladar al depósito. También se puede modificar, eliminar y mostrar los traslados que están registros.

Figura 21 Catálogo de traslado

48

Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular

Registro de vehículo En la figura 22 Registro de vehículo se muestra la entrada de los vehículos que permite dar de alta un vehículo nuevo o visualizar los vehículos que están registrados. Los datos que se pide para el registro son los siguientes: fecha, hora, marca, línea, placas, estado, serie, color, traslado, dependencia, operador, inventario, número de inventario, llaves, recibo, observaciones, fotos, ubicación, número de grúa, costo y descripción del servicios, costo y descripción de las maniobras.

Figura 22 Registro de vehículo

49

Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular

Salida de vehículo En la figura 23 Salidas de vehículos se muestra las salidas de los vehículos aquí se permite dar de baja un vehículo registrado. Para ubicar el vehículo solo es necesario ingresar el número de placas en la parte superior derecha, al ingresar el número de placas en caso de que el vehículo se encuentre registrado nos desplegará toda la información relacionada a ese número de placas. Es necesario ingresar el número de oficio y fecha. El sistema despliega los costos que el vehículo genero dentro del depósito.

Figura 23 Salidas de vehículos

50

Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular

Reporte de entradas por dependencia En la figura 24 Reporte por dependencia permite visualizar un desglose de los servicios realizados a cada una de las dependencias registradas. Con este reporte se puede tener información detallada de cada dependencia que envío vehículos.

Figura 24 Reporte por dependencia

51

Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular

Reporte de corte de caja En la figura 25 Reporte corte de caja se permite visualizar el desglose de los cobros realizados durante ciertos periodos de tiempo (día, semana, mes o año).

Figura 25 Reporte corte de caja

4.9 Valoración de la hipótesis

En relación a la hipótesis se considera que se cumple, porque deben valorarse las características de las tecnologías de programación para desarrollar cualquier software y tener en cuenta lo siguiente:  El alcance de la tecnología, en relación al tipo de productos que se pueden generar: de escritorio, web y móvil; y en relación a la plataforma de sistema operativo sobre la que pueden operar.  La vigencia de la tecnología de programación, en relación a estos factores: otras tecnologías de programación similares, la tecnología computacional que existe en el mercado y la tecnología computacional que tiene o puede adquirir la empresa.  Si la tecnología de programación es adecuada a las características de la tecnología computacional que tiene la empresa para garantizar la viabilidad técnica en el corto y mediano plazo.

Para el caso de estudio se seleccionó Java en virtud de que la empresa tiene complicaciones para conectarse a Internet de manera física, sin embargo, el sistema está proyectado para operarse de manera local pero colaborativa a través de la configuración de una Intranet. Cuando las condiciones así lo

52

Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular

permitan, el sistema residirá en la nube, los movimientos se harán en local y las actualizaciones se harán de manera periódica en el servidor de la nube.

53

Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular

Capítulo 5. Conclusiones y recomendaciones

54

Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular

Capítulo 5 Conclusiones y recomendaciones

Se concluye que es importante seleccionar las tecnologías de programación con las cuáles se desarrollará el sistema de información, en virtud de que impacta en lo siguiente:  La vigencia del sistema de información, porque los cambios en la tecnología son muy rápidos y el riesgo de que el hardware y software sea obsoleto aumenta.  El escalamiento del sistema de información en el corto plazo, a fin de ampliarlo en funcionalidades o bien, en cobertura con usuarios remotos.  La viabilidad técnica del proyecto, puesto que deben existir las condiciones de infraestructura tecnológica para operar el sistema de información.  El desempeño del sistema de información, porque consumirá recursos de cómputo cuando el sistema se opera.  La usabilidad del sistema de información, de ello dependerá en gran medida que el sistema sea de fácil aprendizaje por los usuarios finales.

Ante ello es importante hacer un monitoreo tecnológico y valorar las tecnologías de programación disponibles para elaborar software en relación al contexto de la empresa en que operará el sistema de información.

Recomendaciones Dentro de un proyecto amplio como lo fue este, siempre se quiere que haya una mejora continua del mismo; se recomienda ampliar las funcionalidades e incluir: • Control de créditos para aseguradoras • Registro de oficios recibidos de acuerdo a cada dependencia • Reporte por turno • Reporte de servicios por operador • Reporte de servicios por grúa • Desarrollo de sistema web para atención a clientes

También se sugiere, considerar la arquitectura del sistema para trabajar en web una vez que se tengan las condiciones para ello.

55

Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular

Capítulo 6. Referencias

56

Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular

Capítulo 6 Referencias

Airbar, E. (2001). Fatalismo y tecnología: ¿es autónomo el desarrollo tecnológico? UOC, 3.

Almagro, C. U. (2010). Lenguajes de Programación.

Arias, Á. (2015). Createspace Independent.

Arias, Á., & Durango, A. (2014). (C. I. Pub, Ed.)

Bruno, O. R. (2006). Programación y Algoritmia. Alfaomega.

Cobo, Á. (2005). Tecnologías para el desarrollo de. ESPAÑA: DIAZ DE SANTOS.

CONACYT. (2014). Obtenido de www.conacyt.gob.mx: https://www.conacyt.gob.mx/index.php/el- conacyt/desarrollo-tecnologico-e-innovacion

Deitel, P. J., & Deitel, H. M. (2008). CÓMO PROGRAMAR EN JAVA. México: PEARS ON EDUCACIÓN.

Fernández, G., & Sáez, F. (1987). Fundamentos de informática. Madrid: Alianza Editorial, S. A.

Fossati, M. (2017). Introducción a UML: Lenguaje para modelar objetos.

Garcia, E. B. (2015). Obtenido de http://www.jtech.ua.es/jornadas/charlas/presentacionGWT.pdf

Gervais, L. (2016). Recursos informaticos. Barcelona: Editions ENI.

González, G. M. (2016). Aprende a Desarrollar con . IT Campus Academy.

Harbour, M. G. (2016). Programación en Lenguaje Java. Creative Commons.

JavaScript. (2018). Obtenido de https://www.javascript.com/about

Joyaner, L., & Ignacio, Z. (2011). ProGraMaCión En Java 6. algoritmos, programación orientada a objetos.

Joyanes, L. (1988). FUNDAMENTOS DE PROGRAMACION: ALGORITMOS Y ESTRUCTURAS DE DATOS. MCGRAW-HILL INTERAMERICANA.

Kendall, K. E. (2005). Análisis y diseño de sistemas. CIUDAD DE MÉXICO: PEARSON EDUCACIÓN.

Khvilon, E. (2004). Las tecnologías de la informacion .

Laffosse, J. (2010). Struts 2. Eni. Obtenido de http://www.jtech.ua.es/j2ee/publico/struts-2010- 11/wholesite.pdf

Larman, C. (2010). UML y patrones . Redalyc, 503.

Lozada, J. (2014). Investigación Aplicada: Definición. CIENCIAMÉRICA, N° 3, (34-39).

Mackenzie, . (2006). Aprendiendo Visual Basic.

Microsoft. (2017). Obtenido de https://msdn.microsoft.com/es-es/library/4w3ex9c2(v=vs.100).aspx

57

Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular

Miller, B., & Ranum, D. (2011). Problem Solving with algorithms and data structures using python. Franklin, Beedle & Associates Inc.

Montoro, A. F. (2012). Python 3 al descubierto. Mexico: Alfaomega.

ORACLE. (2018). Obtenido de http://www.oracle.com/technetwork/java/embedded/javame/index.

Paneque, R. J. (1998). METODOLOGÍA DE LA INVESTIGACIÓN. La Habana: Editorial Ciencias Médicas.

Pressman, R. (2010). Ingeniería del Software un enfoque práctico. México: Mc Graw Hill.

Rumbaugh, J. (2005-2007). El Lenguaje unificado de modelado: manual de referencia. Pearson Educación.

Shelajev, O. (16 de FEBRERO de 2017). REBELLABS. Obtenido de https://zeroturnaround.com/rebellabs/java-web-frameworks-index-by-rebellabs/

Sommerville, I. (2005). INGENIERÍA DEL SOFTWARE. MADRID: PEARSON EDUCACIÓN.

UNID. (2013). Programación Estructurada.

Viso, E. (2007). Introduccion a las Ciencias de la Computacion en Java. México.

58