importancia de las tecnologías de programación sistema
TRANSCRIPT
Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular
1
OPCIÓN I
TESIS PROFESIONAL
Importancia de las Tecnologías de Programación
en el Sistema Gestión de Procesos de Depósito
Vehicular
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
Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular
2
Índice de figuras
Figura 1 Java 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
Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular
3
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.
Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular
4
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.
Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular
5
Í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
Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular
6
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
Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular
7
Capítulo 1 Introducción
Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular
8
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.
Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular
9
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
(common LISP) - 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
Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular
10
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
Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular
11
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
Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular
12
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.
Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular
13
Capítulo 2. Marco teórico
Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular
14
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.
Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular
15
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
Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular
16
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.
Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular
17
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.
Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular
18
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.
Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular
19
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).
Vaadin
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
APIs Java y widgets básicos para la construcción de aplicaciones compiladas
después de aplicarles JavaScript.
Grails
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.
Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular
20
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
Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular
21
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).
Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular
22
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.
Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular
23
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).
Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular
24
Capítulo 3 Metodología
Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular
25
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.
Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular
26
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:
Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular
27
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.
Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular
28
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).
Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular
29
Capítulo 4. Resultados
Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular
30
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
Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular
31
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
Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular
32
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
Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular
33
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
Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular
34
Figura 7 Modelo de datos
Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular
35
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
Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular
36
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
Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular
37
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
Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular
38
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
Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular
39
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
Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular
40
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
Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular
41
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
Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular
42
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
Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular
43
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
Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular
44
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
Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular
45
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
Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular
46
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
Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular
47
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
Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular
48
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
Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular
49
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
Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular
50
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
Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular
51
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
Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular
52
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
Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular
53
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.
Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular
54
Capítulo 5. Conclusiones y recomendaciones
Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular
55
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.
Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular
56
Capítulo 6. Referencias
Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular
57
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 Spring Framework. 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, D. (2006). Aprendiendo Visual Basic.
Microsoft. (2017). Obtenido de https://msdn.microsoft.com/es-es/library/4w3ex9c2(v=vs.100).aspx
Importancia de las Tecnologías de Programación en el Sistema Gestión de Procesos de Depósito Vehicular
58
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.html
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.