importancia de las tecnologías de programación sistema

59
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

Upload: others

Post on 16-Oct-2021

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Importancia de las Tecnologías de Programación Sistema

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

Page 2: Importancia de las Tecnologías de Programación Sistema
Page 3: Importancia de las Tecnologías de Programación Sistema

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

Page 4: Importancia de las Tecnologías de Programación Sistema

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.

Page 5: Importancia de las Tecnologías de Programación Sistema

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.

Page 6: Importancia de las Tecnologías de Programación Sistema

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

Page 7: Importancia de las Tecnologías de Programación Sistema

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

Page 8: Importancia de las Tecnologías de Programación Sistema

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

Page 9: Importancia de las Tecnologías de Programación Sistema

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.

Page 10: Importancia de las Tecnologías de Programación 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

Page 11: Importancia de las Tecnologías de Programación Sistema

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

Page 12: Importancia de las Tecnologías de Programación Sistema

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

Page 13: Importancia de las Tecnologías de Programación Sistema

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.

Page 14: Importancia de las Tecnologías de Programación Sistema

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

Page 15: Importancia de las Tecnologías de Programación Sistema

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.

Page 16: Importancia de las Tecnologías de Programación Sistema

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

Page 17: Importancia de las Tecnologías de Programación Sistema

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.

Page 18: Importancia de las Tecnologías de Programación Sistema

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.

Page 19: Importancia de las Tecnologías de Programación Sistema

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.

Page 20: Importancia de las Tecnologías de Programación Sistema

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.

Page 21: Importancia de las Tecnologías de Programación Sistema

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

Page 22: Importancia de las Tecnologías de Programación Sistema

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).

Page 23: Importancia de las Tecnologías de Programación Sistema

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.

Page 24: Importancia de las Tecnologías de Programación Sistema

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).

Page 25: Importancia de las Tecnologías de Programación Sistema

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

Page 26: Importancia de las Tecnologías de Programación Sistema

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.

Page 27: Importancia de las Tecnologías de Programación Sistema

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:

Page 28: Importancia de las Tecnologías de Programación Sistema

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.

Page 29: Importancia de las Tecnologías de Programación Sistema

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).

Page 30: Importancia de las Tecnologías de Programación Sistema

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

29

Capítulo 4. Resultados

Page 31: Importancia de las Tecnologías de Programación Sistema

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

Page 32: Importancia de las Tecnologías de Programación Sistema

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

Page 33: Importancia de las Tecnologías de Programación Sistema

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

Page 34: Importancia de las Tecnologías de Programación Sistema

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

Page 35: Importancia de las Tecnologías de Programación Sistema

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

Page 36: Importancia de las Tecnologías de Programación Sistema

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

Page 37: Importancia de las Tecnologías de Programación Sistema

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

Page 38: Importancia de las Tecnologías de Programación Sistema

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

Page 39: Importancia de las Tecnologías de Programación Sistema

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

Page 40: Importancia de las Tecnologías de Programación Sistema

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

Page 41: Importancia de las Tecnologías de Programación Sistema

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

Page 42: Importancia de las Tecnologías de Programación Sistema

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

Page 43: Importancia de las Tecnologías de Programación Sistema

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

Page 44: Importancia de las Tecnologías de Programación Sistema

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

Page 45: Importancia de las Tecnologías de Programación Sistema

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

Page 46: Importancia de las Tecnologías de Programación Sistema

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

Page 47: Importancia de las Tecnologías de Programación Sistema

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

Page 48: Importancia de las Tecnologías de Programación Sistema

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

Page 49: Importancia de las Tecnologías de Programación Sistema

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

Page 50: Importancia de las Tecnologías de Programación Sistema

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

Page 51: Importancia de las Tecnologías de Programación Sistema

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

Page 52: Importancia de las Tecnologías de Programación Sistema

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

Page 53: Importancia de las Tecnologías de Programación Sistema

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

Page 54: Importancia de las Tecnologías de Programación Sistema

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.

Page 55: Importancia de las Tecnologías de Programación Sistema

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

Page 56: Importancia de las Tecnologías de Programación Sistema

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.

Page 57: Importancia de las Tecnologías de Programación Sistema

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

56

Capítulo 6. Referencias

Page 58: Importancia de las Tecnologías de Programación Sistema

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

Page 59: Importancia de las Tecnologías de Programación Sistema

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.