ANALISIS DISEÑO E IMPLEMENTACIÓN DE UN...
Transcript of ANALISIS DISEÑO E IMPLEMENTACIÓN DE UN...
1
ANALISIS DISEÑO E IMPLEMENTACIÓN DE UN SISTEMA DE
INFORMACIÓN PARA LA GESTIÓN DE ALQUILER Y MANTENIMIENTO DE
VEHICULOS.
YESID ORDUZ NAVARRETE
UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS.
FACULTAD DE INGENIERÍA.
PROYECTO CURRICULAR DE INGENIERÍA DE SISTEMAS.
BOGOTÁ.
2016
2
ANALISIS DISEÑO E IMPLEMENTACIÓN DE UN SISTEMA DE
INFORMACIÓN PARA LA GESTIÓN DE ALQUILER Y MANTENIMIENTO DE
VEHICULOS.
YESID ORDUZ NAVARRETE
Proyecto de Pasantía para optar al título de
Ingeniero de Sistemas.
Director Interno:
Ing. Joaquín Javier Meza
Docente Universidad Distrital.
Director Externo:
Ing. Hals Rodríguez Santamaría.
UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS.
FACULTAD DE INGENIERÍA.
PROYECTO CURRICULAR DE INGENIERÍA DE SISTEMAS.
BOGOTÁ.
2016
3
Tabla de contenido INTRODUCCIÓN………………………………………………………...2
1. FORMULACIÓN DEL PROBLEMA………………….………………....3
1.1.Descripción del Entorno……………………….…….….….………….3
1.2. Definición del Problema……………………………….…..………….3
2. JUSTIFICACION……………………………………………..…….….….4
2.1. Justificación Operativa……………………………………..…..……..4
2.2. Justificación Académica………………………………...…...……….5
3. OBJETIVOS…………………………………………………..…...………6
3.1. OBJETIVO GENERAL…………………………….…...……………6
3.2. OBJETIVOS ESPECÍFICOS……………………..…………………..6
4. ALCANCES Y LIMITACIONES…………………………………………7
4.1. ALCANCES…………………………………………………………..7
4.2. LIMITACIONES………………………………………...……………8
4.3.PARTICIPANTES EN EL PROYECTO………………..…………….8
5. MARCO REFERENCIAL….……………………………………………..9
5.1. Conceptos Relacionados con el Diseño de la Aplicación…......….…..9
5.1.1. Patrones de Diseño……………………………………….…..……..9
5.1.2. Ventajas de los patrones………………………………….………10
5.1.3. Modelo Vista Controlador……………………………..…………11
5.1.4. Arquitectura De Tres Capas…………………………..………….14
5.2.MARCO TEÓRICO…..………………………………….….……….16
5.2.1. FRAMEWORK………………………………………....…………16
5.2.2. Arquitectura……………………………………………...…………18
5.2.2.1. Modelo……….…………………………………………………..18
5.2.2.2. Vista……………………………………………….……………..18
5.2.2.3. Controlador……………………………………..………………..18
5.2.3. Estructura…………………………………………………………..19
5.2.3.1. Lógica………………………………………………..…………..19
5.2.4. Framework Laravel………………………….……….……………20
5.2.4.1. Componentes De Laravel……………….………………...……..21
5.2.4.2. Arquitectura Laravel……………………………………..….…..22
5.2.4.2.1. Ciclo De Vida De Una Solicitud……………………..……..…22
5.2.4.2.2. Estructura De La Aplicación………………………..…………23
5.2.4.2.3. Serviceproviders (Proveedores De Servicio)………….....……24
5.2.4.2.4.ServiceContainer……………………………………....……….25
5.2.4.2.5. Contratos (Contracts)………………….…………………..…..26
5.2.4.2.6. Facade………………………………..………………….……..27
5.5.5. Características De Laravel……………………………...………….27
6. DISEÑO METODOLOGICO…………………….……………….…..…29
6.1.Conocimiento Global de la Empresa…………….…………………..29
6.1.1.Reseña Histórica………………………………………………..….29
6.1.2. Objetivos de la organización……………………………...……….30
6.1.3. Definición de la Actividad de la Empresa…………………………31
6.1.4. Misión…………………………………………………………….32
6.1.5. Evaluación de la Misión……………………………….…………32
4
6.1.6. Matriz DOFA………………………………………..……………33
7. DESARROLLO DE SOFTWARE………………………….……………34
7.1. Fases Del Proyecto…………………………………………..………34
7.1.1. Fase de Inicio………………………….……….……………..……34
7.1.2. Modelado del Sistema………………….……..….…………….….34
7.1.3. Escenarios………………………….……….…………….…….….35
7.1.4. Fase de Elaboración……….……………….……..…………….….37
7.1.4.1 Actores Del Sistema………………….…………………………..38
7.1.4.2.Especificaciones De Casos De Uso………………….…………..40
8. MODELOS DE ANALISIS Y DISEÑO…………………………...…….43
8.1. Clases conceptuales………………………………………………….44
8.2. Modelo Entidad – Relación……………………………...…………..45
8.2.1. Diccionario de datos…………………………………...…………..46
8.3. Modelo de despliegue………………………………..………………54
8.4. Modelo vista controlador…………………………………………….55
8.5. Fase de construcción….……………………………………….....….56
8.5.1. Interfaces………..…...……………………………………...……..57
8.5.1.1. Interfaz de ingreso de usuarios al sistema……………………….57
8.5.1.2. Interfaz gestionar conductor…………………………………..…58
8.5.1.3. Interfaz gestionar vehículo…………………………………..…..58
8.5.1.4. Interfaz ver facturas…………………………………………..….59
8.5.1.5. Interfaz registrar daño de vehículo…………………..…………..59
8.5.1.6. Interfaz solicitud de alquiler……………………………………..60
8.5.1.7. Interfaz agendar vehículo………………………………………..60
8.5.1.8. Interfaz ingresar cliente…………………………...……………..61
8.5.1.9. Interfaz ingresar vehículo a taller………………………………..61
8.5.1.10. Interfaz entregar vehículo……………………………………....62
8.5.1.11.Interfaz registrar arreglo de vehículo……………………..…….62
8.5.2. Interfaces definitivas…………………………………………...….63
8.5.2.1. Interfaz de ingreso al sistema……………………………………63
8.5.2.2. Interfaz para cambiar el password……………………………....64
8.5.2.3. Interfaz de cambio de password…………………………………65
8.5.2.4. Interfaz de inicio del sistema…………………………………....65
8.5.2.5. Interfaz formulario de ingreso de solicitud……………………..66
8.5.2.6. Detalle de solicitud…………………………………………..….67
8.5.2.7. Interfaz lista de chequeo de salida de vehículo………………….68
8.5.2.8. Interfaz lista de chequeo de entrega de vehículo…………….….70
8.5.2.9. Interfaz de factura sin novedades…………………………..……72
8.5.2.10. Interfaz de factura con novedades……………………………...73
8.5.2.11. Interfaz de visualización de facturas generadas………………..74
8.5.2.13. Interfaz de visualización de vehículos………………………....74
8.5.2.14. Interfaz de visualización de clientes…………………………...75
8.5.2.15. Interfaz actualización de los datos de clientes………………....75
8.5.2.16. Interfaz de registro de nuevos clientes…………………………76
9. CONCLUSIONES………………………………………………………..77
10. BIBLIOGRAFIA…………………………………………...…………….78
5
INTRODUCCIÓN
Este trabajo de pasantía es realizado en la empresa ORION TECHNOLOGIES que
se dedica al desarrollo de soluciones en sistemas, esta empresa convoco a
estudiantes de último semestre de Ingeniería de Sistemas interesados en realizar
su trabajo de grado en la modalidad de pasantía, llevando a cabo el proceso de
selección de la persona idónea para realizar el proyecto. Las actividades que se
dispusieron fueron bajo la dirección del Ingeniero coordinador del proyecto en la
empresa.
En este proyecto se diseñó e implemento una aplicación para el manejo de alquiler
de vehículos en una empresa de transportes (TRANSPORTES ZAMBRANO) para
la empresa ORION TECHNOLOGIES.
Este sistema consiste en un software para manejar los procesos de alquiler y
mantenimiento de vehículos, haciendo modelado, integración, monitoreo y control
de los procesos operativos llevados a cabo por los actores que intervienen en cada
una de las capas del negocio.
Se Utilizó la metodología basada en los principios de Análisis y diseño orientado a
objetos, también la metodología RUP de diseño y desarrollo de software establecido
en UML para realizar el análisis de requerimientos, diseñar y elaborar casos de uso,
prototipos, para su posterior desarrollo.
6
1. FORMULACIÓN DEL PROBLEMA
1.1. Descripción del Entorno
TRANSPORTE ZAMBRANO es una empresa dedicada al servicio de transporte
fluvial, terrestre de pasajeros y carga, también se dedica al alquiler de vehículos,
con más de 10 años de experiencia prestando sus servicios en la zona del
Magdalena medio, siempre ha pensado en la satisfacción de los clientes; teniendo
proyectado expandir sus servicios a nivel nacional.
Al ser fundada TRANSPORTE ZAMBRANO se propuso dos metas principales
ofrecer un excelente servicio y crecer, pero después de diez años el desarrollo y
crecimiento no ha sido el planeado, debido a factores que afectan a la mayoría de
las empresas de este sector como la competencia, problemas económicos y de
orden público del país, etc.; en ese tiempo trabajando la empresa no se había
preocupado por al manejo de su información y procesos, los cuales son llevados de
forma casi manual y sin ninguna estructura que facilite su registro, control y
búsqueda cuando sea requerido.
1.2. Definición del Problema
En el momento de comenzar con el proyecto la empresa venía realizando su trabajo
de la misma forma que lo hacía cuando fue fundada hace 10 años, es decir llevando
toda la información y registros de forma manual, las bases de datos de sus clientes
y proveedores estaban registradas en libros lo que impedía llevar un control total de
sus operaciones, el control de los alquileres, así como todos los datos que tienen
que ver y se desprenden de cada operación realizada. Desde la parte administrativa
no se había reconocido la importancia que tiene poder acceder a la información de
7
forma rápida y eficiente, esta imposibilidad que tenía la empresa dificultaba que
tuviera una operación eficiente.
A pesar de tener una estructura organizativa relativamente simple los procesos
administrativos, y operativos que efectúa no lo son, no contaba con ningún sistema
de información con el que pudiera hacer un seguimiento continuo de la información
que era actualizada constantemente en las áreas administrativas y operativas, lo
cual permitía factores de riesgo en la obtención de los objetivos organizacionales.
La ausencia de algún sistema le da paso a que se presenten y repitan los problemas
que siempre ha tenido la empresa, no poder controlar la gran cantidad de
información diversa que se maneja esto genera retardos, mala toma de decisiones
y acciones a nivel táctico y operativo, que van en deterioro del cumplimiento de los
objetivos que tiene la empresa.
2. JUSTIFICACION
2.1. Justificación Operativa
Se justifica la implementación de un software para el manejo del alquiler de
vehículos para la empresa Transportes Zambrano el cual permitirá, una vez
desarrollado en su totalidad y en óptimo funcionamiento, entre otros beneficios la
automatización de la actividad principal de la empresa coordinando las funciones y
procedimientos de personas y sistemas, mejora continua en la ejecución de
procesos al facilitar el acceso a la información, facilita la cooperación directa y el
compromiso conjunto de los empleados en la realización de sus labores.
Proporciona una disponibilidad mayor de la información en el momento justo que es
requerida alcanzando un control efectivo de las actividades de la empresa, eliminar
la dificultad de recopilar la información en lugares distantes, evitado errores pérdidas
8
de tiempo y recursos en los procedimientos que se llevan a cabo además de su
mejoramiento continuo.
Por tal motivo, es necesario que la empresa, cuente con este sistema, que permite
controlar identificar, evaluar y manejar de manera efectiva el proceso de alquiler de
vehículos; minimizando los inconvenientes que han impedido su crecimiento.
2.2. Justificación Académica
El proyecto recogió las herramientas de conocimiento adquiridas durante el
transcurso la carrera, en particular de aquellas áreas relativas al desarrollo de
software, métodos, procedimientos, y aquellas que tienen que ver con el diseño y
modelado de Software para manejo de procedimientos en arquitectura web de tres
capas, procurando una adaptación de esos modelos académicos a las condiciones
y particularidades propias del entorno de la empresa.
En ese aspecto se ubica también la motivación principal del trabajo en el sentido de
entendimiento y responsabilidad que como estudiante participé del proyecto posee
frente al objetivo, realizándolo a través de la pasantía como modalidad de trabajo
de grado
9
3. OBJETIVOS
3.1. OBJETIVO GENERAL
Diseñar desarrollar e implementar una aplicación computacional mediante
framework libre y PHP software que permita el manejo y gestión del alquiler de
vehículos sobre infraestructuras livianas, minimizando los procesos y
procedimientos actuales.
3.2. OBJETIVOS ESPECÍFICOS
Realizar el análisis de procesos que se llevan a cabo en Transporte
Zambrano.
Unificar las actividades del negocio y coordinar las acciones y procedimientos
de personas y sistemas en torno al trabajo.
Facilitar búsqueda rápida de los datos fundamentales para el desarrollo diario
de las actividades del negocio.
Aumentar la cooperación directa y el compromiso conjunto de los
trabajadores de la empresa en el paso para la optimización de los procesos
operativos del negocio.
Implementar una solución que facilite el procesamiento de las entradas de
información rápidamente, así como la codificación de acuerdo a las
necesidades.
10
Aumentar el nivel de rendimiento en todas las operaciones del negocio para
garantizar la satisfacción del cliente.
4. ALCANCES Y LIMITACIONES
A continuación, se especifican los alcances del proyecto teniendo en cuenta el
tiempo, el área que va a ocupar y la formulación del problema.
4.1. ALCANCES
Los alcances son:
Definir los diagramas de flujo para la empresa.
Generar los modelos de análisis y diseño del software para manejar los
alquileres de vehículos y el mantenimiento de los mismos en Transportes
Zambrano.
Diseñar la base de datos para el software de sistema de información
Diseñar una interfaz gráfica amigable para los usuarios del software
Tomar la información desde las fases de moldeamiento o implementación e
introducir cambios de ser necesario en los procesos.
11
4.2. LIMITACIONES
Las limitaciones son:
Debe contemplarse las implicaciones de los siguientes puntos críticos:
La solución será compatible con los equipos de la empresa.
La solución debe adaptarse a la normativa de protección de
información, seguridad en las trasmisiones de datos, etc.
No será un Sistema que permita establecer Normatividad ni Estatutos.
No permitirá realizar análisis contable ni financiero de la empresa.
El Sistema no se aplicará Directamente a la Gestión de calidad,
Aunque permite ajustar los procesos como parámetros de la
normatividad ISO 9001.
4.3. PARTICIPANTES EN EL PROYECTO
Se incluye el personal que designó empresa Orion Technologies para supervisar
el desarrollo de proyecto además de los partícipes directos, revisores, director
interno u otros participantes que se estimen convenientes para proporcionar los
requisitos y validar el sistema.
Director interno: Ingeniero Joaquín Javier Meza docente de la Universidad
Distrital acompañamiento durante todo el desarrollo y avance del proyecto
12
Director externo: Ingeniero Hals Rodríguez Santamaría designado por la
empresa para supervisar y asesorar en todo el desarrollo del proyecto.
Analista de Sistemas. El perfil establecido es: Ingeniero en Informática con
conocimientos de UML, labor que llevo a cabo el pasante Yesid Orduz
Analistas - Programadores. Con experiencia en el entorno de desarrollo del
proyecto, con el fin de que los prototipos puedan ser lo más cercanos posibles
al producto final. Este trabajo realizado por el pasante Yesid Orduz.
Ingeniero de Software. El perfil establecido es: Alumno que pertenezca al
Proyecto Curricular de ingeniería de Sistemas realizando labores de gestión
de requisitos, gestión de configuración, documentación y diseño de datos.
Labor realizada por le pasante Yesid Orduz.
5. MARCO REFERENCIAL
5.1. Conceptos Relacionados Con El Diseño De La Aplicación
5.1.1. Patrones de Diseño
El diseño es un modelo del sistema, realizado con una serie de principios y técnicas,
que permite describir el sistema con el suficiente detalle como para ser
implementado. Pero los principios y reglas no son suficientes, en el contexto de
diseño se puede observar que los diseñadores e ingenieros de software tienen
esquemas y estructuras de solución que usan numerosas veces en función del
contexto del problema.
El patrón es un esquema de solución que se aplica a un tipo de problema, esta
aplicación del patrón no es mecánica, sino que requiere de adaptación y matices.
Los patrones se clasifican según el propósito para el que han sido definidos:
13
Creacionales: solucionan problemas de creación de instancias. Nos ayudan a
encapsular y abstraer dicha creación.
Estructurales: solucionan problemas de composición (agregación) de clases y
objetos.
De Comportamiento: soluciones respecto a la interacción y responsabilidades entre
clases y objetos, así como los algoritmos que encapsulan.
Según el ámbito se clasifican en patrones de clase y de objeto:
Catálogo de patrones de diseño de Gamma et al. (1994)
5.1.2. Ventajas de los patrones
La clave para la reutilización es anticiparse a los nuevos requisitos y cambios, de
modo que los sistemas evolucionen de forma adecuada. Cada patrón permite que
algunos aspectos de la estructura del sistema puedan cambiar independientemente
de otros aspectos. Facilitan la reusabilidad, extensibilidad y mantenimiento.
Un patrón es un esquema o micro arquitectura que supone una solución a
problemas (dominios de aplicación) semejantes (aunque los dominios de problema
pueden ser muy diferentes e ir desde una aplicación CAD a un cuadro de mando
14
empresarial). Interesa constatar una vez más la vieja distinción entre dominio del
problema (donde aparecen las clases propias del dominio, como cuenta, empleado,
coche o beneficiario) y el dominio de la solución o aplicación (donde además
aparecen clases como ventana, menú, contenedor o listener). Los patrones son
patrones del dominio de la solución.
También conviene distinguir entre un patrón y una arquitectura global del sistema.
Por decirlo en breve, es la misma distancia que hay entre el diseño de un
componente (o módulo) y el análisis del sistema. Es la diferencia que hay entre el
aspecto micro y el macro, por ello, en ocasiones se denomina a los patrones como
"microarquitecturas".1
En resumen, un patrón es el denominador común, una estructura común que tienen
aplicaciones semejantes. Esto también ocurre en otros órdenes de la vida. Por
ejemplo, en nuestra vida cotidiana aplicamos a menudo el esquema saludo-
presentación-mensaje-despedida en ocasiones diversas, que van desde un intento
de ligar hasta dar una conferencia (si todavía no cree que existan patrones o que
no son útiles intente ligar con el esquema despedida-mensaje-presentación-saludo,
a ver qué ocurre).
5.1.3. Modelo Vista Controlador
Para el diseño de aplicaciones con sofisticadas interfaces se utiliza el patrón de
diseño Modelo-Vista-Controlador. La lógica de un interfaz de usuario cambia con
más frecuencia que los almacenes de datos y la lógica de negocio. Se trata de
realizar un diseño que desacople la vista del modelo, con la finalidad de mejorar la
reusabilidad. De esta forma las modificaciones en las vistas impactan en menor
medida en la lógica de negocio o de datos.
___________________________
1Tomado de: http://inggabrielrodriguezmolinares.blogspot.com.co/2012/03/patrones-de-desarrollo-de-
software.html
15
Elementos del patrón:
Modelo: datos y reglas de negocio
Vista: muestra la información del modelo al usuario
Controlador: gestiona las entradas del usuario
http://revistatelematica.cujae.edu.cu/index.php/tele/article/viewFile/15/10
Un modelo puede tener diversas vistas, cada una con su correspondiente
controlador. Un ejemplo clásico es el de la información de una base de datos, que
se puede presentar de diversas formas: diagrama de tarta, de barras, tabular, etc.1
El modelo es el responsable de:
o Acceder a la capa de almacenamiento de datos. Lo ideal es que el
modelo sea independiente del sistema de almacenamiento.
o Definir las reglas de negocio (la funcionalidad del sistema). Un ejemplo
de regla puede ser: "Si la mercancía pedida no está en el almacén,
consultar el tiempo de entrega estándar del proveedor".
o Llevar un registro de las vistas y controladores del sistema.
o Si se está ante un modelo activo, notificar a las vistas los cambios que
en los datos pueda producir un agente externo (por ejemplo, un fichero
___________________________
1Tomado de: revistatelematica.cujae.edu.cu/index.php/tele/article/viewFile/15/10
16
batch que actualiza los datos, un temporizador que desencadena una
inserción, etc).
El controlador es responsable de:
o Recibir los eventos de entrada (un clic, un cambio en un campo de
texto, etc.).
o Contener las reglas de gestión de eventos, del tipo "SI Evento Z,
entonces Acción W". Estas acciones pueden suponer peticiones al
modelo o a las vistas. Una de estas peticiones a las vistas puede ser
una llamada al método "Actualizar ()". Una petición al modelo puede
ser "Obtener tiempo de entrega (nueva orden de venta)".
Las vistas son responsables de:
o Recibir datos del modelo y la muestra al usuario.
o Tener un registro de su controlador asociado (normalmente porque
además lo instancia).
o Poder dar el servicio de "Actualización ()", para que sea invocado por
el controlador o por el modelo (cuando es un modelo activo que
informa de los cambios en los datos producidos por otros agentes).
Un ejemplo de MVC con un modelo pasivo (aquel que no notifica cambios en los
datos) es la navegación web, que responde a las entradas del usuario, pero no
detecta los cambios en datos del servidor.
17
http://revistatelematica.cujae.edu.cu/index.php/tele/article/viewFile/15/10
Pasos:
El usuario introduce el evento.
El Controlador recibe el evento y lo traduce en una petición al Modelo
(aunque también puede llamar directamente a la vista).
El modelo (si es necesario) llama a la vista para su actualización.
Para cumplir con la actualización la Vista puede solicitar datos al Modelo.
El Controlador recibe el control.
5.1.4. Arquitectura De Tres Capas
La programación por capas es una arquitectura cliente-servidor en el que el objetivo
primordial es la separación de la lógica de negocios de la lógica de diseño; un
ejemplo básico de esto consiste en separar la capa de datos de la capa de
presentación al usuario.
La ventaja principal de este estilo es que el desarrollo se puede llevar a cabo en
varios niveles y, en caso de que sobrevenga algún cambio, solo se ataca al nivel
requerido sin tener que revisar entre código mezclado. Un buen ejemplo de este
método de programación sería el modelo de interconexión de sistemas abiertos.
18
Además, permite distribuir el trabajo de creación de una aplicación por niveles; de
este modo, cada grupo de trabajo está totalmente abstraído del resto de niveles, de
forma que basta con conocer la API que existe entre niveles.
En el diseño de sistemas informáticos actual se suelen usar las arquitecturas
multinivel o Programación por capas. En dichas arquitecturas a cada nivel se le
confía una misión simple, lo que permite el diseño de arquitecturas escalables (que
pueden ampliarse con facilidad en caso de que las necesidades aumenten).1
Capas y niveles
1. Capa de presentación: la que ve el usuario (también se la denomina "capa
de usuario"), presenta el sistema al usuario, le comunica la información y
captura la información del usuario en un mínimo de proceso (realiza un
filtrado previo para comprobar que no hay errores de formato). También es
conocida como interfaz gráfica y debe tener la característica de ser
"amigable" (entendible y fácil de usar) para el usuario. Esta capa se comunica
únicamente con la capa de negocio.
2. Capa de negocio: es donde residen los programas que se ejecutan, se
reciben las peticiones del usuario y se envían las respuestas tras el proceso.
Se denomina capa de negocio (e incluso de lógica del negocio) porque es
aquí donde se establecen todas las reglas que deben cumplirse. Esta capa
se comunica con la capa de presentación, para recibir las solicitudes y
presentar los resultados, y con la capa de datos, para solicitar al gestor
de base de datos almacenar o recuperar datos de él. También se consideran
aquí los programas de aplicación.
3. Capa de datos: es donde residen los datos y es la encargada de acceder a
los mismos. Está formada por uno o más gestores de bases de datos que
realizan todo el almacenamiento de datos, reciben solicitudes de
almacenamiento o recuperación de información desde la capa de negocio.
___________________________
1Tomado de: http://www.academia.edu/10102692/Arquitectura_de_n_capas
19
Todas estas capas pueden residir en un único ordenador, si bien lo más usual es
que haya una multitud de ordenadores en donde reside la capa de presentación
(son los clientes de la arquitectura cliente/servidor). Las capas de negocio y de datos
pueden residir en el mismo ordenador, y si el crecimiento de las necesidades lo
aconseja se pueden separar en dos o más ordenadores. Así, si el tamaño o
complejidad de la base de datos aumenta, se puede separar en varios ordenadores
los cuales recibirán las peticiones del ordenador en que resida la capa de negocio.
5.2. MARCO TEÓRICO
Con el fin de alcanzar cada uno de los objetivos propuestos, se plantea una
metodología basada en: RUP (Rational Unified Proccess) la cual utiliza UML como
lenguaje de Modelado
Es preciso destacar que de acuerdo a la filosofía de RUP (y de todo proceso iterativo
e incremental), todos los artefactos son objeto de modificaciones a lo largo del
proceso de desarrollo, con lo cual, sólo al término del proceso podríamos tener una
versión definitiva y completa de cada uno de ellos.
5.2.1. FRAMEWORK
La palabra inglesa "framework" (infraestructura, armazón, marco) define, en
términos generales, un conjunto estandarizado de conceptos, prácticas y criterios
para enfocar un tipo de problemática particular que sirve como referencia, para
enfrentar y resolver nuevos problemas de índole similar1.
En el desarrollo de software, un framework o infraestructura digital, es una
estructura conceptual y tecnológica de soporte definido, normalmente con artefactos
o módulos concretos de software, que puede servir de base para la organización y
desarrollo de software. Típicamente, puede incluir soporte
___________________________
1Tomado de: https://es.wikipedia.org/wiki/Framework
20
de programas, bibliotecas, y un lenguaje interpretado, entre otras herramientas,
para así ayudar a desarrollar y unir los diferentes componentes de un proyecto.
Representa una arquitectura de software que modela las relaciones generales de
las entidades del dominio, y provee una estructura y una especial metodología de
trabajo, la cual extiende o utiliza las aplicaciones del dominio
Los frameworks tienen como objetivo principal ofrecer una funcionalidad definida,
auto contenida, siendo construidos usando patrones de diseño, y su característica
principal es su alta cohesión y bajo acoplamiento. Para acceder a esa funcionalidad,
se construyen piezas, objetos, llamados objetos calientes, que vinculan las
necesidades del sistema con la funcionalidad que este presta. Esta funcionalidad,
está constituida por objetos llamados fríos, que sufren poco o ningún cambio en la
vida del framework, permitiendo la portabilidad entre distintos sistemas.
Frameworks conocidos que se pueden mencionar por ejemplo son Spring
Framework, Hibernate, donde lo esencial para ser denominados frameworks es
estar constituidos por objetos casi estáticos con funcionalidad definida a nivel grupo
de objetos y no como parte constitutiva de estos, por ejemplo en sus métodos, en
cuyo caso se habla de un API o librería. Algunas características notables que se
pueden observar:
La inversión de control: en un framework, a diferencia de las bibliotecas, el
flujo de control no es dictado por el programa que llama, sino por el mismo.21
La funcionalidad o comportamiento predeterminado: un marco tiene un
comportamiento predeterminado. Este comportamiento por defecto debe ser
un comportamiento útil, definido e identificable.
Su extensibilidad: un marco puede ser ampliado para proporcionar una
funcionalidad específica. El frame, en general, no se supone que deba ser
modificado, excepto en cuanto a extensibilidad. Los usuarios pueden ampliar
sus características, pero no deben ni necesitan modificar su código.
5.2.2. Arquitectura
21
Dentro de este aspecto, podemos basarnos en el modelo–vista–controlador o MVC
(Controlador => Modelo => Vista), ya que debemos fragmentar
nuestra programación. Tenemos que contemplar estos aspectos básicos en cuanto
a la implementación de nuestro sistema:
5.2.2.1. Modelo
Este miembro del controlador maneja las operaciones lógicas, y de manejo de
información (previamente enviada por su ancestro), para resultar de una forma
explicable y sin titubeos. Cada miembro debe ser meticulosamente llamado, con su
correcto nombre y en principio, con su verdadera naturaleza: el manejo de
información, su complementación directa.
5.2.2.2. Vista
Al final, a este miembro de la familia le corresponde dibujar, o expresar la última
forma de los datos: la interfaz gráfica que interactúa con el usuario final del
programa (GUI). Después de todo, a este miembro le toca evidenciar la información
obtenida hasta hacerla llegar al controlador. Solo (e inicialmente), nos espera
demostrar la información.
5.2.2.3. Controlador
Con este apartado podemos controlar el acceso (incluso todo) a nuestra aplicación,
y esto puede incluir: archivos, scripts, y/o programas; cualquier tipo de información
que permita la interfaz. Así, podremos diversificar nuestro contenido de forma
dinámica, y estática (a la vez); pues, solo debemos controlar ciertos aspectos (como
se ha mencionado antes).
22
5.2.3. Estructura
Dentro del controlador, modelo o vista, se pueden manejar datos, y depende de
cada uno cómo interpretar y manejar esos datos. Se sabe que el único dato de una
dirección estática web es: conseguir un archivo físico en el disco duro o de Internet,
etcétera e interpretado o no, el servidor responde.
El modelo, al igual que el controlador y la vista, maneja todos los datos que se
relacionen consigo (solo es el proceso medio de la separación por capas que ofrece
la arquitectura MVC). Y solo la vista, puede demostrar dicha información. Con lo
cual ya se ha generado la jerarquía de nuestro programa: Controlador, Modelo y
Vista.
5.2.3.1. Lógica
Al parecer, debemos inyectar ciertos objetos dentro de sus parientes en esta
aplicación, solo así compartirán herencia y coherencia en su aplicación.
Rápidamente, para una aplicación web sencilla debemos establecer estos objetos:
Una base (MVC)
23
Controlador: este debe ser capaz de manejar rutas, archivos, clases,
métodos y funciones.
Modelo: es como un script habitual en el servidor, solo que agrupado
bajo un 'modelo' reutilizable.
Vista: como incluyendo cualquier archivo en nuestra ejecución, muy
simple.
Un sistema
Ruteador: con él podemos dividir nuestras peticiones sin tantas
condicionales.
Cargador
5.1.4. FRAMEWORK LARAVEL
Para la implementación del sistema se trabajara directamente con Laravel un
Framework desarrollado para implementar aplicaciones en PHP.
Laravel es un framework de código abierto para desarrollar aplicaciones y servicios
web con PHP 5. Su filosofía es desarrollar código PHP de forma elegante y simple,
evitando el "código espagueti". Fue creado en 2011 y tiene una gran influencia de
frameworks como Ruby on Rails, Sinatra y ASP.NET1
Laravel tiene como objetivo ser un framework que permita el uso de una sintaxis
elegante y expresiva para crear código de forma sencilla y permitiendo multitud de
funcionalidades. Intenta aprovechar lo mejor de otros frameworks y aprovechar las
características de las últimas versiones de PHP.2. Gran parte de Laravel está
formado por dependencias, especialmente de Symfony, esto implica que el
desarrollo de Laravel dependa también del desarrollo de sus dependencias
___________________________
1Tomado de: http://cayab.com.mx/laravel-framework-para-php/
24
5.1.4.1. COMPONENTES DE LARAVEL
Lo basico: El framework posee lo que ya imaginamos: Router, Models,
Layouts, Views, Controllers, etc. Para los templates utiliza un engine propio
que se llama Blade, que tiene algunos helpers copados.
Artesano: Cliente de consola que permite ejecutar comandos propios del
framework. Es muy versátil, potente e incluso nos permite extenderlo creando
nuestras propias tareas para que estén disponibles desde este cliente.1.
Compositor: Esto permite modificar y agregar los paquetes que queramos
incluso permitiéndonos generar paquetes nuestros, configurarlos en el
composer son e incluirlos en nuestra aplicación con un composer update. Tal
es el uso y los beneficios de Composer que Laravel utiliza muchos paquetes
de otros frameworks como Symfony (Artisan es una extensión de su consola)
entre otros..
Migraciones: Lo que incorpora Laravel es la posibilidad de llevar un control
de versiones también de nuestra base de datos. Esto, combinado con un
sistema de seeding nos permite tener nuestra aplicación descargada y
funcionando en unos pocos comandos.
Recursos: se incorpora el concepto de resource permitiéndonos programar
nuestros controladores como si fueran un API Rest y que sean consumidos
de la misma forma. Es decir que para agregar un elemento hacemos
un POST /resource, para obtener un listado un GET /resource, para obtener
un elemento GET /resource/{id}, etc. Esto nos permite liberar y consumir
nuestra aplicación como un API sin tener que modificar nada, y dándonos la
posibilidad de integrarla y de que sea integrada por otros sistemas.
ORM: Object-Relational Mapping para nuestra base de datos. Nos permite
interactuar con nuestra base de datos como si cada tabla fuera un Modelo,
respetando más fielmente la división MVC.
25
5.1.4.2. ARQUITECTURA LARAVEL
5.1.4.2.1. CICLO DE VIDA DE UNA SOLICITUD
El punto de entrada de todas las peticiones a una aplicación Laravel es el
archivo public/index.php. Todas las peticiones son dirigidas a este archivo por la
configuración del servidor web (Apache / Nginx). El archivo index.php no contiene
mucho código. Más bien, es un simple punto de entrada para cargar el resto del
framework.1
El archivo index.php carga la definición del autoloader generado por Composer y
luego retorna una instancia de la aplicación de Laravel desde el
script bootstrap/app.php.
HTTP / Console Kernels
A continuación, la petición de entrada es enviada al núcleo HTTP o bien al núcleo
de consola, dependiendo del tipo que sea dicha petición de entrada a la aplicación.
Estos dos núcleos son el lugar central por el pasan todas las peticiones.
El núcleo HTTP extiende de la clase Illuminate\Foundation\Http\Kernel, que define
un array de configuraciones de arranque que serán lanzadas antes de que la
petición sea ejecutada.
Service Providers
Los service providers son la clave del arranque de una aplicación Laravel. Se crea
una instancia de la aplicación, se registran los service providers y se interpreta la
solicitud con la aplicación ya arrancada.
De forma predeterminada, el AppServiceProvider está casi vacío. Este provider es
un buen lugar para añadir los elementos de arranque de la aplicación e incluso
___________________________
1Tomado de: http://laraveles.com/docs/5.0/lifecycle
26
bindings del service container. Por supuesto, para aplicaciones grandes, puedes
crear varios service providers más específicos.
5.1.4.2.2. ESTRUCTURA DE LA APLICACIÓN
La estructura por defecto de la aplicación Laravel está destinada a proporcionar un
buen punto de partida tanto para aplicaciones grandes como para aplicaciones
pequeñas. Aun así, se puede de organizar la aplicación. Laravel no impone casi
ninguna restricción respecto a donde se encuentra una clase en el proyecto,
siempre y cuando Composer sea consciente de ella para poder cargarla al arrancar
de la aplicación.
El directorio raíz
El directorio raíz de una nueva instalación nueva de Laravel contiene una serie de
directorios:
El directorio app, contiene el código base de tu aplicación.
La directorio bootstrap contiene unos archivos que arrancar el marco de trabajo y
configuran carga automática, así como una carpeta de caché que contiene algunos
archivos de marco para la optimización del rendimiento de arranque genera.
El directorio config, como su nombre indica, contiene todos los archivos de
configuración de tu aplicación.
El directorio resources contiene sus puntos de vista , los activos brutos ( LESS,
SASS , CoffeeScript ) , y los archivos de localización .
El directorio storage contiene plantillas compiladas de Blade, sesiones basadas en
archivos, archivos de caché y otros archivos generados por el framework.
27
El directorio tests contiene pruebas de sus pruebas automatizadas. Un ejemplo es
el de PHPUnit fuera de la caja.
El directorio vendor contiene sus dependencias del compositor.
El directorio de la aplicación
El directorio app viene con una variedad de directorios adicionales, tales
como Console, Http, y Providers. Piensa en los directoriosConsole y Http como
proveedores de un API al "core" de la aplicación. El protocolo HTTP y CLI son
mecanismos (pasarelas) para interactuar con tu aplicación, pero en realidad no
contienen lógica de la aplicación. El directorio Console contiene todos tus
comandos de Artisan, mientras el directorio Http contiene tus controladores, filtros y
peticiones.
5.1.4.2.3. SERVICE PROVIDERS (PROVEEDORES DE SERVICIO)
Los proveedores de servicios son el centro de toda la configuración de arranque de
Laravel. Tu propia aplicación, al igual que todos los servicios del núcleo de Laravel,
también tiene su configuración de arranque mediante proveedores de servicios.
Writing Service Providers
Todos los proveedores de servicios extienden de la
clase Illuminate\Support\ServiceProvider. Esta clase abstracta requiere que al
menos definas el método register en tu proveedor. Dentro del método register, sólo
se debe obligar a las cosas en el contenedor de servicios
Registrar proveedores
Todos los proveedores están registrados en el archivo de
configuración config/app.php. Este archivo contiene un array de proveedores del
28
cual puedes obtener un listado de nombres de tus proveedores de servicios. Por
defecto, este array también incluye un conjunto de proveedores de servicios del
núcleo de Laravel. Estos proveedores inicializan los componentes del núcleo de
Laravel, tales como el proveedor de correos, colas, caché y otros.
Proveedores diferidos
Laravel compila y almacena una lista de todos los servicios ofrecidos por
proveedores de servicios diferidos, junto al nombre de su clase proveedora del
servicio. Entonces, sólo cuando se intenta resolver alguno de estos servicios,
Laravel carga el proveedor de servicio.
5.1.4.2.4. SERVICE CONTAINER
El contenedor de servicios laravel es una poderosa herramienta para la gestión de
las dependencias de la clase y la realización de la inyección de dependencia. La
inyección de dependencia es una frase de fantasía que en esencia significa esto:
dependencias de clase se " inyecta" en la clase a través del constructor o , en
algunos casos , los métodos de "ajuste " .
Binding (enlazar)
Casi todos los enlaces de container de servicio se registrarán dentro de los
proveedores de servicios; Sin embargo, no hay necesidad de obligar a las clases en
el recipiente si no dependen de ninguna interfaces. El contenedor no necesita ser
instruido cómo construir estos objetos, ya que se puede resolver de forma
automática este tipo de objetos "concretas" que utilizan los servicios de reflexión de
PHP.
Binding A Singleton
29
El método Singleton se une a una clase o interfaz en el container que sólo debe ser
resuelto de una vez, y luego esa misma instancia será devuelto en llamadas
posteriores en el container
Binding Instances
Podrías enlazar una instancia de un objeto existente al container utilizando el
método instance. Se retornará esa misma instancia en llamadas posteriores al
container
Enlazando (binding) interfaces a implementaciones
Una de las características del service container es su capacidad para enlazar una
interfaz a una implementación determinada.
Binding contextual
En ocasiones puedes tener dos clases que utilizan la misma interfaz, pero quieres
inyectar implementaciones diferentes a cada clase. Por ejemplo, cuando nuestro
sistema recibe un nuevo Pedido, podemos querer lanzar un evento vía PubNub en
lugar de Pusher. Laravel provee una simple y fluida interfaz para definir este
comportamiento
5.1.4.2.5. CONTRATOS (CONTRACTS)
Los Contracts de Laravel son un conjunto de interfaces que definen los principales
servicios proporcionados por el framework. Por ejemplo,
a Illuminate\Contracts\Queue\ define los métodos necesarios para poner en cola
trabajos, mientras que Illuminate\Contracts\Mail\Mailer contract define los métodos
necesarios para el envío de correo electrónico.
Cada Contract tiene una implementación correspondiente proporcionada por el
framework. Por ejemplo, laravel proporciona una implementación de cola con una
30
variedad de conductores, y una implementación de cliente de correo que es
alimentado por SwiftMailer .
Todos los Contract de Laravel se encuentran en su propio repositorio de GitHub.
Esto proporciona un punto de referencia rápida para todos los contratos disponibles,
así como un paquete único, disociada que pueden ser utilizados por los
desarrolladores de paquetes.
5.1.4.2.6. FACADE
Fachadas proporcionan una interfaz de "estática" a las clases que están disponibles
en la aplicación del contenedor de servicios . Laravel incluye muchas fachadas, las
"fachadas" de laravel sirven Como un "Proxy estático" para clases subyacentes en
el contenedor de servicios, proporcionando el beneficio de una sintaxis concisa y
expresiva, Manteniendo mayor estabilidad y flexibilidad que los métodos
tradicionales estáticos.
En el contexto de una aplicación Laravel, una facade es una clase que provee
acceso a un objecto desde el contenedor. El mecanismo que hace que esto funcione
es la clase Facade. fachadas de laravel , y cualquier fachadas personalizadas que
cree , se extenderán a la clase
5.1.5. CARACTERÍSTICAS DE LARAVEL
Modularidad: Laravel se ha construido utilizando más de 20 librerías
diferentes fuertemente integradas con el gestor de dependencias Composer
Testeabilidad: construido para facilitar el testeo, Laravel tiene con varios
asistentes (helpers) que ayudan a visitar las rutas de testeo, navegando por
el HTML resultante para asegurar que los métodos que se llaman desde las
diferentes clases sean correctos, e incluso a impersonar a los usuarios.
31
Enrutamiento (routing): Laravel proporciona una extrema flexibilidad en la
definición de las rutas de la aplicación. Inspirado en la filosofía de los micro-
frameworks Sinatra y Silex. Todavía más, es posible adjuntar funciones de
filtro que se ejecuten en rutas específicas.
Gestor de configuración: frecuentemente la aplicación se ejecutará en
diferentes entornos, esto quiere decir que tanto la base de datos como
credenciales o dominios serán diferentes si se ejecutan el local en el entorno
de test o en los servidores de producción. Laravel nos permite definir
configuraciones separadas para cada uno de los entornos.
Confeccionador de consultas y ORM (Object Relational Mapper): cuando
se instala Laravel viene con un constructor de consultas, este nos permite
lanzar consultas a la base de datos con una sintaxis PHP de métodos
enlazados, en lugar de tener que escribir la SQL completa. Además
proporciona un ORM y una implementación de Registro Activo
(ActiveRecord) llamado Eloquent, que permite definir modelos
interconectados. Estos componentes son compatibles con bases de datos
tales como PostgreSQL, SQLite, MySql, MS SQL Server.
Confeccionador esquema, migraciones y repoblaciones: inspirado por la
filosofía Rails, estas características permiten definir un esquema de base de
datos dentro de PHP y mantener un registro de los cambios para así ayudar
en la migración de base de datos. Las repoblaciones (Seeding) permiten
poblar las tablas seleccionadas de una base de datos una vez realizada la
migración para de esta forma rellenar con datos las tablas.1
Motor de plantillas: Laravel viene con Blade, un lenguaje ligero de plantillas
con el cual se pueden crear diseños anidados con bloques predefinidos en el
que el contenido se inserta dinámicamente. Además Blade guarda en caché
los archivos generados.
Email: con la clase Mail que es un derivado de la librería SwiftMailer, Laravel
proporciona una forma muy sencilla de enviar e-mails, con contenido HTML
y adjuntos.
___________________________
1Tomado de: http://www.bcnbit.com/laravel-4-resumen-para-principiantes-parte-i/
32
Autenticación: Laravel viene con las herramientas para crear en toda web
un formulario de registro, autenticación e incluso envio de contraseñas a
usuarios que no la recuerden.
Redis: es un sistema de almacenamiento clave-valor en memoria que tiene
fama de ser extremadamente rápido.
Colas: Laravel se integra con diversos servicios de colas, tales como
Amazon SQS o IronMQ, para permitir el aplazamiento de tareas que son muy
intensivas en recursos, así por ejemplo podemos enviar una gran cantidad
de e-mails ejecutando esta tarea en segundo plano en lugar de hacer que el
usuario espere delante de la pantalla.
6. DISEÑO METODOLOGICO
6.1. Conocimiento Global De La Empresa
6.1.1. Reseña Histórica
Fundada en el año 2004, Transportes Zambrano con más de 10 años de combinada
experiencia de nivel profesional para transportar carga y pasajeros y en los últimos
5 años también con el alquiler de vehículos prestando un servicio bueno a sus
clientes. La empresa ofrece los servicios de un equipo de conductores y mecánicos
expertos, además de los funcionarios administrativos personas con experiencia y
compromiso de ofrecer el mejor servicio a sus clientes.
Desde su creación la empresa ha venido mejorando poco a poco sus procesos y
servicios, cuenta entre sus clientes a empresas de varios sectores que avalan su
calidad y cumplimiento. Aplican sus conocimientos para ofrecer un servicio que
responde a necesidades específicas. Además de especializarse en los sectores
empresariales ya que está avalada por el ministerio de transporte.
Estructura organizativa
33
Tomado organigrama Transportes Zambrano
6.1.2. Objetivos de la Organización
Objetivos de TRANSPORTES ZAMBRANO
Cumplir las responsabilidades individuales para fortalecer la imagen
institucional.
Desarrollar con efectividad las tareas encomendadas
Emprender actuaciones bajo criterios de discerniendo ético en la gestión
institucional
Se entregan resultados de calidad en base a la planificación institucional
Desarrollar con efectividad las tareas encomendadas
Demostrar vocación de servicio y sentido de pertenencia frente a la
entidad, ejerciendo el liderazgo necesario para dar cumplimiento a los
objetivos de la organización, respetando el medio ambiente.
Aplicar la cultura de calidad en el servicio, ofreciendo una amplia
cobertura, que permita responder efectivamente frente a las exigencias
del mercado de un mundo globalizado.
Gerente
Subgerente
cordinador mantenimiento
cordinador alquiler
cordinador de transporte
conductores
Tesoreria Contaduria Secretaria
34
Cooperación permanente y continua en el desarrollo en los procesos de la
organización y en las relaciones interpersonales con los clientes y
usuarios.
6.1.3. Definición de la Actividad de la Empresa
TRANSPORTES ZAMBRANO es una empresa dedicada al transporte de
mercancías y personas, se dedica a ofrecer a sus clientes los servicios de transporte
de pasajeros, carga y alquiler de vehículos de acuerdo con las necesidades
específicas de cada uno de ellos, también tiene proyectado ampliar más su parque
automotor para ofrecer un mejor servicio. Su actividad principal es el transporte de
personas, de ahí se desprenden otras actividades relacionadas como el transporte
de mercancía y el alquiler de vehículos.
6.1.4. Misión
TRANSPORTE FLUVIAL ZAMBRANO & H S.A.S, es una empresa de Transporte
Fluvial y Terrestre de personal, que cuenta con un equipo humano de óptima calidad
que trabaja siempre pensando en la satisfacción de nuestros clientes, ofrecemos
los mejores servicios buscando siempre la excelencia para llegar a un nivel de
servicio que nos permite alcanzar un desarrollo integral como persona y como
empresa.
Participamos activamente en el desarrollo socio-económico de la región,
convirtiéndonos en aliados estratégicos de nuestros clientes, proporcionando
soluciones a medida de sus necesidades.
Así garantizamos un desempeño industrial y comercial exitoso en medio de una
competencia cada vez más fuerte.
35
6.1.5. Evaluación de la Misión
Clientes “…trabaja siempre pensando en la satisfacción de nuestros
clientes” – puede ser cualquier cliente no limite su población
objetivo
Producto o
servicio
“…proporcionando soluciones a medida de sus necesidades”
– Soluciones tecnológicas de acuerdo al negocio del cliente
Mercado Cualquier empresa o persona que quiera una solución
tecnológica para su negocio.
Tecnología No aplica
Interés por la
supervivencia,
crecimiento y
rentabilidad
“…buscando siempre la excelencia para llegar a un nivel de
servicio que nos permite alcanzar un desarrollo integral como
persona y como empresa.” se evidencia el interés de
sobrevivir al mercado cambiante y globalizado, también el
interés por crecer teniendo rentabilidad.
Filosofía “…ofrecemos los mejores servicios buscando siempre la
excelencia” – Apoyar a sus clientes a la consecución de los
objetivos de negocio propios ofreciendo calidad en el servicio.
Concepto de sí
misma
No Aplica
Interés por la
imagen pública
“Participamos activamente en el desarrollo socio-económico
de la región, convirtiéndonos en aliados estratégicos de
nuestros clientes” – Preocupación por la región donde trabaja
y la imagen ante sus clientes
Interés por el
empleado
No Aplica
6.1.6. Matriz DOFA
Esta sección tiene como objetivo conocer cuáles son las fortalezas y debilidades
dentro de la empresa, identificar que amenazas y oportunidades que presentan
en su contexto. Con esto obtendremos una claridad de las necesidades actuales
en la empresa
36
Herramientas utilizadas desactualizadas Amplia experiencia en el sector
Demoras en la atención
Cumplimiento de las necesidades del
cliente
Falta de seguimiento a los procesos Personal idóneo
Reconocimiento de los clientes
Oportunidades Debilidades Fortalezas
Conocer mucho más los
requerimientos del cliente
* Incentivar la generación de evaluación
de desempeño por parte del cliente y
documentar los resultados
* Hacer seguimiento de procesos en todos
los niveles
Estar actualizados con las herramientas
usadas
* Identificar futuros requerimientos del
cliente con anterioridad para realizar
propuestas de innovación
Hacer seguimiento de cada cliente
mediante herramientas actualizadas
Aprovechar las herramientas
tecnologías
Crecimiento de la población y
empresas en el sector
Atención personalizada al
cliente
Amenazas
Evaluación de desempeño por
parte del cliente
* Hacer seguimiento de procesos para
evitar demoras
* Provocar participación activa en los
espacios de socialización y capacitación
de los empleados en la retroalimentación
de la empresa donde se propongan ideas
de mejora
* generar estrategias de comercialización
para competir en el mercado
* tener en cuenta con anterioridad los
cambios en el mercado
Hacer evaluación y proyección de costos
con más anterioridad
Costo de la gasolina
Competencia de nuevas
empresas grandes y pequeñas
Situación de orden público de la
zona
7. DESARROLLO DE SOFTWARE
7.1. FASES DEL PROYECTO
A continuación se indican y describen cada uno de las fases a seguir en el proyecto.
Esta lista constituye la configuración de RUP desde la perspectiva de artefactos, y
que utilizaremos para este proyecto.
37
Es preciso destacar que de acuerdo a la filosofía de RUP (y de todo proceso iterativo
e incremental), todos los artefactos1 son objeto de modificaciones a lo largo del
proceso de desarrollo, con lo cual, sólo al término del proceso podríamos tener una
versión definitiva y completa de cada uno de ellos.
7.1.1. Fase de Inicio
En esta fase se desarrolló el Análisis de requerimientos: se estudian los requisitos
del sistema y se desarrollan, detallando los casos generales y los especiales, los
cuales se evaluarán dentro de la oficina de Orion Technologies para posibles
ajustes. Esta etapa contempla, por supuesto, Casos de uso del Sistema,
Secuencias y Colaboraciones, se hizo un refinamiento del Plan de Desarrollo del
Proyecto, la aceptación del cliente / usuario del artefacto Visión y el Plan de
Desarrollo marcaron el final de esta fase.
7.1.2. Modelado del Sistema
El modelado del negocio se basa en los diagramas principales de modelo de casos
de uso del negocio para cada cliente del Sistema.
La empresa interactúa con distintos elementos externos, entre los que se identifican
el Cliente (persona entidad encargada de hacer los pedidos), el vendedor (persona
encargada de las ventas), el proveedor (persona o entidad que provee los insumos)
y el técnico (se encarga de ensamblar y reparar equipos).
7.1.3. Escenarios Gerente
1 Se define como artefacto un producto de una iteración en el ciclo de desarrollo en la metodología RUP:
desde un código software hasta documentos técnicos.
40
7.1.4. Fase de Elaboración
En esta fase se analizan los requisitos y se desarrolla un prototipo de arquitectura
(incluyendo las partes más relevantes y / o críticas del sistema). Al final de esta fase,
todos los casos de uso correspondientes a requisitos que serán implementados en
la primera versión de la fase de Construcción deben estar analizados y diseñados
(en el Modelo de Análisis / Diseño). La revisión y aceptación del prototipo de la
arquitectura del sistema marca el final de esta fase..
7.1.4.1. Actores Del Sistema
Un actor es una persona, sistema o dispositivo que interactúa con el sistema,
iniciando, recibiendo los resultados o participando en algunas de las acciones de un
caso de uso. Por lo general representa un rol. Los actores utilizados para las
especificaciones definidas a partir de los siguientes numerales son:
PERFIL 1 Gerente
Descripción Persona previamente seleccionada, encargada de:
Ingresar nuevos conductores al sistema
Agregar nuevo vehículo al stock
Consultar las facturas de arreglos de vehículos.
Hacer consultas de información variada.
Gerencia de la empresa
Comentarios Ninguno
41
Actor perfil 1
Actor perfil 2
Actor perfil 3
PERFIL 2 Secretaria
Descripción Persona previamente seleccionada, encargada de:
Ingresar solicitud de alquiler
Recibir solicitudes de alquiler.
Elaborar la facturas de venta
Responder emails.
Atender solicitudes de los clientes
Consultar información l acerca de los insumos en el
inventario
Ingresar clientes nuevos
Comentarios Ninguno
PERFIL 3 Cliente
Descripción Persona, encargada de:
Solicitar productos al vendedor
Hacer el pago de sus pedidos.
Comentarios Ninguno
PERFIL 3 Coordinador
Descripción Persona previamente seleccionada, encargada de:
Coordinar las labores de su área
Entregar vehículos
Recibir vehículos
Comentarios Ninguno
PERFIL 3 Mecánico
42
7.1.4.2. Especificaciones De Casos De Uso
Las especificaciones de casos de uso están divididas según el subsistema al que
pertenezcan:
UC-01 Solicitar alquiler
Descripción El sistema recibe el requerimiento del alquiler por parte del cliente.
Precondición ninguna.
Secuencia Normal
Paso Acción 1 El cliente hace la solicitud del alquiler.
2 El cliente del sistema entra a la opción de menú: crear nueva solicitud de alquiler
3 El cliente entra toda la información correspondiente a la solicitud.
Descripción Persona o entidad, previamente seleccionada encargada de:
Reparar vehículos
Prevenir daños
Registrar daños
Registrar reparación
Responder por garantías.
Dar asesorías técnicas
Comentarios Ninguno
PERFIL 3 Supervisor taller
Descripción Persona o entidad, previamente seleccionada encargada de:
Supervisar ingreso de vehículos
Supervisar salida de vehículos
Agregar empresas
Comentarios Ninguno
43
4 Termina el proceso de mostrarle al cliente la Creación exitosa de la solicitud.
Pos condición El sistema queda listo para ingresar nueva solicitud Excepciones paso Acción
4 El vehículo no está disponible.
3 En caso de que falte información al ingreso del, el Sistema informará al Cliente que falta ingresar un Campo.
Rendimiento Paso Tiempo
4 30 segundos
Comentarios ninguna
UC-02 Consultar solicitud de alquiler
Descripción El sistema la consulta.
Precondición El solicitante es un Actor PERFIL1 el cual esta previamente validado en el sistema.
Secuencia Normal
Paso Acción 1 El sistema verifica el Perfil del Solicitante. 2 El usuario del sistema entra a la opción de menú: consultar 3 Termina el proceso de mostrarle al usuario la información
Pos condición El sistema queda listo para ingresar nueva búsqueda Excepciones paso Acción
3 Información no disponible.
Rendimiento Paso Corta De Tiempo
4 2 segundos
Comentarios ninguna
UC-03 Agendar vehículo
Descripción El sistema agenda un vehículo Precondición Solicitud de alquiler
Secuencia Normal
Paso Acción 1 El usuario del sistema ingresa al módulo de agenda vehículo .
2 El usuario del sistema entra a la opción de menú: crear nueva solicitud de alquiler
3 El sistema muestra al usuario la Creación exitosa.
Pos condición El sistema queda listo para ingresar nueva solicitud Excepciones paso Acción
1 Solicitud previa de alquiler
Rendimiento Paso Tiempo
4 30 segundos
Comentarios ninguna
44
UC-04 Facturar servicio
Descripción El sistema realiza la factura por el pago de un servicio.
Precondición Solicitud de alquiler.
Secuencia Normal
Paso Acción 1 El usuario del sistema ingresa al módulo de facturación.
2 El usuario del sistema ingresa los datos solicitados
3 Termina el proceso de mostrarle al usuario la Creación exitosa de la factura.
Pos condición El sistema queda listo para ingresar nueva solicitud Excepciones paso Acción
1 Solicitud de alquiler.
Rendimiento Paso Tiempo
4 30 segundos
Comentarios ninguna
UC-05 Lista de chequeo recepción de vehículo
Descripción El usuario ingresa el estado de un vehículo que llega.
Precondición ninguna
Secuencia Normal
Paso Acción 1 El usuario del sistema ingresa al módulo de ingresar vehículo .
2 El usuario del sistema ingresa los datos solicitados del vehículo
3 Termina el proceso de mostrarle al usuario el ingreso exitoso del vehículo.
Pos condición El sistema queda listo para ingresar nueva solicitud Excepciones paso Acción
1 Vehículo no registrado .
Rendimiento Paso Tiempo
4 15 minutos
Comentarios ninguna
UC-06 Consultar daños de vehículo
Descripción El usuario consulta los daños registrados de un vehículo Precondición El Vehículo debe haber ingresado previamente
Paso Acción
45
Secuencia Normal
1 El usuario del sistema ingresa al módulo de buscar vehículo .
2 El usuario del sistema ingresa los datos solicitados del vehículo
3 Termina el proceso de mostrarle al usuario la información correspondiente al vehículo buscado.
Pos condición El sistema queda listo para ingresar nueva solicitud Excepciones paso Acción
1 Vehículo no registrado .
Rendimiento Paso Tiempo
4 15 segundos
Comentarios ninguna
UC-07 Registrar daños de vehículo
Descripción El usuario ingresa los daños de un vehículo Precondición El Vehículo debe haber ingresado previamente
Secuencia Normal
Paso Acción 1 El usuario del sistema ingresa al módulo de buscar vehículo .
2 El usuario del sistema ingresa los datos solicitados del vehículo
3 Termina el proceso con el registro de la información correspondiente al vehículo buscado.
Pos condición El sistema queda listo para ingresar nueva solicitud Excepciones paso Acción
1 Vehículo no registrado .
Rendimiento Paso Tiempo
4 15 segundos
Comentarios ninguna
8. MODELOS DE ANALISIS Y DISEÑO
A continuación se presentan los modelos definidos en RUP como modelo de datos
y modelo de análisis / diseño. Constará de un diagrama de clases en el que se
muestran tan sólo las clases generadas a partir de los casos de uso incorporados a
la aplicación hasta la segunda iteración de la fase de construcción, y de un modelo
de datos (modelo relacional) donde se muestran las entidades que participan en las
relaciones definidas en él.
46
8.1. Clases conceptuales
Diagrama de Clases
Modelo de dominio
En este modelo de clases podemos ver los objetos del dominio del problema, o sea
objetos que tienen una equivalentes al área de la aplicación. Así es como el usuario
debe identificar los todos los conceptos, las relaciones entre todas las entidades
comprendidas en el ámbito del dominio del problema, y podemos identificar los
atributos.
Es importante aclarar que aquí no se trata de un conjunto que corresponden a
clases software, u objetos software con compromisos.
Diagrama realizado con ArgoUML
48
8.2.1. Diccionario de datos
Alquiler
Column name DataType Primary
Key Not Null
Unique Index
Binary Column
Unsigned Data
Auto Incremental
Default
idalquiler INT(11) ✔ ✔ ✔
fechainicio DATETIME ✔
fechafin DATETIME ✔
costo FLOAT ✔
estado TINYINT(4) ✔
clientes_idclientes INT(11) ✔
Aseguradora
Column name DataType Primary
Key Not Null
Unique Index
Binary Column
Unsigned Data
Auto Incremental
Default
idaseguradora INT(11) ✔ ✔ ✔
aseguradora VARCHAR(45) NULL
Checklist
Column name DataType Primary
Key Not Null
Unique Index
Binary Column
Unsigned Data
Auto Incremental
Default
vehiculos_alquiler_idvehiculosalquiler
INT ✔
item_checklist_iditem INT ✔
calificacion TINYINT
fecha_calificacion DATETIME
idchk INT ✔ ✔
observacion VARCHAR(45)
49
Clientes
Column name DataType Primary
Key Not Null
Unique Index
Binary Column
Unsigned Data
Auto Incremental
Default
idclientes INT(11) ✔ ✔ ✔
nombres VARCHAR(45) ✔
apellidos VARCHAR(45) ✔
documento INT(11) ✔
telefono VARCHAR(45) ✔
correo VARCHAR(45) NULL
cargo VARCHAR(45) ✔
empresas_idempresa INT(11) ✔
usuarios_Idusuario INT(11) ✔
detalle_mantenimiento
Column name DataType Primary
Key Not Null
Unique
Index
Binary Column
Unsigned Data
Auto Incremental
Default
iddetallemantenimiento INT(11) ✔ ✔ ✔
costo INT(11) ✔
Id_mecanico INT(11) ✔
mantenimiento_idmantenimiento
INT(11) ✔
mecanicos_idmecanico INT(11) ✔
tipo_mantenimiento_idtipo_mantenimiento
INT ✔
detalle_partes
Column name DataType Primary Key
Not Null
Unique
Index
Binary Colum
n
Unsigned Data
Auto Incremental
Default
detalle_mantenimiento_iddetallemantenimiento
INT(11) ✔ ✔
partes_vehiculo_idPartes_Vehiculo
INT(11) ✔ ✔
observacion TEXT ✔
imagen_antes VARCHAR(100)
correctivo VARCHAR(100)
imagen_despues VARCHAR(100)
50
empleados
Column name DataType Primary
Key Not Null
Unique Index
Binary Column
Unsigned Data
Auto Incremental
Default
idempleado INT(11) ✔ ✔ ✔
nombres VARCHAR(45) ✔
apellidos VARCHAR(45) ✔
documento INT(11) ✔
telefono INT(11) ✔
fecha_nacimiento DATE ✔
correo VARCHAR(45) ✔
licencia VARCHAR(45) ✔
contacto_emergencia VARCHAR(45) ✔
Estado_civil_idEstado_civil INT(11) ✔
tiposangre INT(11) ✔
tipolicencia VARCHAR(4) ✔
eps_ideps INT(11) ✔
empresas
Column name DataType Primary
Key Not Null
Unique Index
Binary Column
Unsigned Data
Auto Incremental
Default
idempresa INT(11) ✔ ✔ ✔
razonsocial VARCHAR(45) ✔
NIT VARCHAR(45) ✔
representante VARCHAR(45) ✔
telefono VARCHAR(45) ✔
correo VARCHAR(45) ✔
eps
Column name DataType Primary
Key Not Null
Unique Index
Binary Column
Unsigned Data
Auto Incremental
Default
ideps INT(11) ✔ ✔ ✔
eps VARCHAR(45) ✔
especialidad
Column name DataType Primary
Key Not Null
Unique Index
Binary Column
Unsigned Data
Auto Incremental
Default
51
idEspecialidad INT(11) ✔ ✔ ✔
Especialidad VARCHAR(45) NULL
estado
Column name DataType Primary
Key Not Null
Unique Index
Binary Column
Unsigned Data
Auto Incremental
Default
idestado INT(11) ✔ ✔ ✔
estado VARCHAR(45) ✔
mantenimiento
Column name DataType Primary
Key Not Null
Unique Index
Binary Column
Unsigned Data
Auto Incremental
Default
idmantenimiento INT(11) ✔ ✔ ✔
Fecha_ingreso DATE ✔
Fecha_entrega DATE ✔
vehiculos_idvehiculo INT(11) ✔
taller_idtaller INT(11) ✔
estado INT
seguros
Column name DataType Primary
Key Not Null
Unique Index
Binary Column
Unsigned Data
Auto Incremental
Default
idSeguros INT(11) ✔ ✔ ✔
Fecha_expedicion DATETIME ✔
Fecha_caducidad DATETIME ✔
Radicado VARCHAR(45) ✔
aseguradora_idaseguradora INT(11) ✔
tipo_seguro_idtipo_seguro INT(11) ✔
vehiculos_idvehiculo INT(11) ✔
marca
Column name DataType Primary
Key Not Null
Unique Index
Binary Column
Unsigned Data
Auto Incremental
Default
idmarca INT(11) ✔ ✔ ✔
marca VARCHAR(45) ✔
mecanicos
52
Column name DataType Primary
Key Not Null
Unique Index
Binary Column
Unsigned Data
Auto Incremental
Default
idmecanico INT(11) ✔ ✔ ✔
nombre VARCHAR(45) ✔
apellido VARCHAR(45) NULL
migrations
Column name DataType Primary
Key Not Null
Unique Index
Binary Column
Unsigned Data
Auto Incremental
Default
migration VARCHAR(255) ✔
batch INT(11) ✔
municipio
Column name DataType Primary
Key Not Null
Unique Index
Binary Column
Unsigned Data
Auto Incremental
Default
idmunicipio INT(11) ✔ ✔ ✔
municipio VARCHAR(45) ✔
partes_vehiculo
Column name DataType Primary
Key Not Null
Unique Index
Binary Column
Unsigned Data
Auto Incremental
Default
idpartes_vehiculo INT(11) ✔ ✔ ✔
nombre_parte VARCHAR(60) ✔
periodicidad_mantenimiento INT
rol
Column name DataType Primary
Key Not Null
Unique Index
Binary Column
Unsigned Data
Auto Incremental
Default
idrol INT(11) ✔ ✔ ✔
rol VARCHAR(45) ✔
sobrecosto
Column name DataType Primary
Key Not Null
Unique Index
Binary Column
Unsigned Data
Auto Incremental
Default
vehiculos_alquiler_idvehiculosalquiler INT ✔ ✔
monto INT ✔
tipo_sobrecosto_idtipo_sobrecosto INT ✔ ✔
solicitud
Column name DataType Primary
Key Not Null
Unique Index
Binary Column
Unsigned Data
Auto Incremental
Default
idsolicitud INT(11) ✔ ✔ ✔
fechainicio DATE ✔
fechafinal DATE ✔
53
alquiler_idalquiler INT(11) ✔
tiene_conductor TINYINT ✔
modoentrega TINYINT ✔
modorecepcion TINYINT ✔
taller
Column name DataType Primary
Key Not Null
Unique Index
Binary Column
Unsigned Data
Auto Incremental
Default
idtaller INT(11) ✔ ✔ ✔
nombre VARCHAR(45) NULL
telefono VARCHAR(45) ✔
direccion VARCHAR(45) ✔
NIT VARCHAR(45) ✔
representantelegal VARCHAR(45) ✔
especialidad_idEspecialidad INT(11) ✔
municipio_idmunicipio INT(11) ✔
tipo_seguro
Column name DataType Primary
Key Not Null
Unique Index
Binary Column
Unsigned Data
Auto Incremental
Default
idtipo_seguro INT(11) ✔ ✔ ✔
tipo_seguro VARCHAR(45) NULL
tipo_sobrecosto
Column name DataType Primary
Key Not Null
Unique Index
Binary Column
Unsigned Data
Auto Incremental
Default
idtipo_sobrecosto INT ✔ ✔
tipo_sobrecostocol VARCHAR(45) ✔
tipovehiculo
Column name DataType Primary
Key Not Null
Unique Index
Binary Column
Unsigned Data
Auto Incremental
Default
idtipo INT(11) ✔ ✔ ✔
tipovehiculo VARCHAR(45) NULL
54
tipovehiculo_por_solicitud
Column name DataType Primary
Key Not Null
Unique Index
Binary Column
Unsigned Data
Auto Incremental
Default
tipovehiculo_idtipo INT(11) ✔ ✔
solicitud_idsolicitud INT(11) ✔ ✔
numero VARCHAR(45) ✔
usuarios
Column name DataType Primary
Key Not Null
Unique Index
Binary Column
Unsigned Data
Auto Incremental
Default
Idusuario INT(11) ✔ ✔ ✔
username VARCHAR(32) ✔
password VARCHAR(64) ✔
email VARCHAR(320) ✔
rol_idrol INT(11) ✔
vehiculos
Column name DataType Primary
Key Not Null
Unique Index
Binary Column
Unsigned Data
Auto Incremental
Default
idvehiculo INT(11) ✔ ✔ ✔
matricula VARCHAR(45) ✔
modelo VARCHAR(45) ✔
capacidad VARCHAR(45) ✔
cilindraje VARCHAR(45) ✔
chasis VARCHAR(45) ✔
costocomercial VARCHAR(9) ✔
imagen VARCHAR(45) ✔
tipo_vehiculo_idtipo INT(11) ✔
marca_idmarca INT(11) ✔
color_idcolor INT(11) ✔
consumo VARCHAR(45)
vehiculos_alquiler
Column name DataType Primary
Key Not Null
Unique Index
Binary Column
Unsigned Data
Auto Incremental
Default
55
vehiculos_idvehiculo INT(11)
alquiler_idalquiler INT(11) ✔
modoentrega TINYINT
modorecepcion TINYINT
empleados_idempleado INT(11)
tiene_conductor TINYINT ✔
kilometrajeinicial FLOAT ✔
kilometrajefinal FLOAT
idvehiculosalquiler INT ✔ ✔ ✔
vehiculos_estado
Column name DataType Primary
Key Not Null
Unique Index
Binary Column
Unsigned Data
Auto Incremental
Default
vehiculos_idvehiculo INT(11) ✔
estado_idestado INT(11) ✔
fecha DATE ✔
idve VARCHAR(45) ✔ ✔
56
8.3. Modelo de despliegue
Este es un diagrama estructurado que muestra la arquitectura del sistema desde el
punto de vista de la distribución de los artefactos del software en los destinos de
despliegue.
El diagrama muestra la configuración de nodos de procesamiento en tiempo de
ejecución y las instancias de componentes y objetos que se encuentran dentro de
esos nodos. Los componentes representan manifestaciones de ejecución de
unidades de código.
Diagrama realizado con ArgoUML
57
8.4. Modelo vista controlador
Ese modelo se compone de tres componentes que son: el modelo, la vista y el
controlador, es decir, por un lado define elementos para la representación de la
información, y por otro lado para la interacción del usuario, esto permite separar
los componentes del software dependieno de su trabajo que realizan.
El Modelo: En esta capa se trabaja con los datos, y contiene las peticiones para
acceder y actualizar el estado de la información. Los datos están guardados en
la base de datos, entonces en esta capa tendremos todas las funciones que
accederán a las tablas y realizan las ordenes selects, updates, inserts, etc.
La Vista: es la representacion visual de los datos, interpreta el codigo de la
aplicación en las interfaces de usuario En la vista generalmente trabajamos con
los datos, sin embargo, no se realiza un acceso directo a éstos. Las vistas
requerirán los datos a los modelos y ellas se creará la salida, tal como la
aplicación requiera.
El Controlador: Esta es la capa que sirve de conexión entre las vistas y los
modelos, respondiendo a los eventos que puedan solicitarse para generar las
necesidades de nuestra aplicación. Desde esta capa no se manipulan
directamente datos, ni se muestra ningún tipo de salida, sino lo que hace es
servir de enlace entre los modelos y las vistas para implementar las diversas
necesidades del desarrollo.
58
Diagrama realizado con ArgoUML
8.5. Fase de construcción
Durante la fase de construcción se terminan de analizar y diseñar todos los casos
de uso, refinando el Modelo de Análisis / Diseño. Se codifica el sistema detallado
previamente, en base al análisis y diseño realizado en las fases anteriores, esta
etapa es la más importante ya que se creará la base de datos y se desarrollarán los
diferentes módulos para el Sistema, el producto se construye en base a 2
iteraciones, cada una produciendo una versión a la cual se le aplican las pruebas y
se valida con el cliente / usuario. Se comienza la elaboración de material de apoyo
al usuario.
59
8.5.1. Interfaces
A continuación se presentan los prototipos de las interfaces gráficas de usuario
diseñadas para demostrar la funcionalidad de la aplicación. Cabe Citar que se
presentan únicamente los prototipos de interfaces de usuario al cliente además
incluyen funcionalidades de una futura segunda fase de construcción del sistema.
Los modelos y diseños de las interfaces prototipo y finales son propiedad de la
empresa ORION TECNOLOGIES.
8.5.1.1. Interfaz de ingreso de usuarios al sistema
65
8.5.2. Interfaces definitivas
Las siguientes interfaces corresponden a los diseños finales aprobados por el
cliente, este diseño posee una funcionalidad mejorada significativamente en cuanto
a su usabilidad. Cabe anotar que por pedido del cliente para esta fase no se
contempla el trabajo con roles para cada actividad, por lo tanto en esta primera fase
todo el proceso de alquiler lo realiza un solo usuario.
8.5.2.1. Interfaz de ingreso al sistema
Mediante esta interfaz el usuario puede ingresar al sistema escribiendo su email y
password y presionando el botón login. El usuario puede dar clic en el link olvidaste
tu password, para ir a la interfaz de recuperación de clave.
66
8.5.2.2. Interfaz para cambiar el password
En esta interfaz el usuario ingresa su dirección de correo y presiona el botón de
enviar contraseña al correo. El sistema enviara un correo con el link de recuperación
de password.
Email de recuperación de password
El sistema enviará un correo con el link de recuperación de password.
67
8.5.2.3. Interfaz de cambio de password
Interfaz que ve el usuario cuando ingresa al link que es enviado al correo electrónico
para recuperación de contraseña.
8.5.2.4. Interfaz de inicio del sistema
En esta nueva interfaz se presenta un calendario el cual muestra los agendamientos
de vehículos que están activos y pendientes, y por lo tanto las fechas de
disponibilidad para hacer un nuevo agendamiento, también se puede navegar por
cualquier fecha para verificar la disponibilidad.
68
8.5.2.5. Interfaz formulario de ingreso de solicitud
Al dar clic en una fecha disponible el sistema desplegara un formulario para realizar
una nueva solicitud de agendamiento de un vehículo. El usuario ingresa los datos
referentes a dicha solicitud como son: fecha de solicitud, fecha de entrega, nombre
del cliente, tipo de vehículo solicitado y demás. También hay un botón donde se
puede ver la factura generada para dicha solicitud. Al dar clic en guardar solicitud la
solicitud quedara generada la factura.
69
8.5.2.6. Detalle de solicitud
Al dar clic sobre una solicitud ya agendada el usuario observara una interfaz donde
se presentan todos los detalles de una solicitud en curso.
70
8.5.2.7. Interfaz lista de chequeo de salida de vehículo
Mediante esta interfaz se verifica el estado de cada vehículo que va a ser entregado
a un cliente. El usuario da clic sobre la casilla de verificación del ítem
correspondiente a verificar para darlo como revisado y aprobado.
71
Si al dar clic en el botón verificar no se ha aprobado algún ítem de la lista, el vehículo
no se puede dar por aprobado para entrega al cliente y se mostrara el respectivo
mensaje de lista de chequeo no aprobada.
En caso de que la lista de chequeo haya sido aprobada en su totalidad el sistema
mostrara una interfaz de lista aprobada.
72
8.5.2.8. Interfaz lista de chequeo de entrega de vehículo
Mediante esta interfaz se verifica el estado de cada vehículo que va a ser recibido
de un cliente. El usuario da clic sobre la casilla de verificación del ítem
correspondiente a verificar para darlo como revisado y aprobado.
Si al dar clic en el botón verificar no se ha aprobado algún ítem de la lista, el vehículo
no se puede dar por aprobado para ser recibido y se generara una factura por los
73
cobros adicionales generados, además se mostrara el respectivo mensaje de lista
de chequeo no aprobada.
En caso de que la lista de chequeo haya sido aprobada en su totalidad el sistema
mostrara una interfaz de lista aprobada sin generar cobros adicionales.
74
8.5.2.9. Interfaz de factura sin novedades
Una vez que se haya validado la lista de chequeo de entrega de vehículo, el usuario
podrá generar la factura.
75
8.5.2.10. Interfaz de factura con novedades
Si algún ítem de la lista de chequeo no fue aprobado la factura mostrara los ítems
a pagar de la lista de chequeo no aprobados.
76
8.5.2.11. Interfaz de visualización de facturas generadas
Se puede observar un listado histórico de las facturas generadas para los clientes.
8.5.2.12.
8.5.2.13. Interfaz de visualización de vehículos
Aquí se puede ver el listado de los vehículos registrados en el sistema.
77
8.5.2.14. Interfaz de visualización de clientes
Este es un listado de los clientes registrados en la base de datos, también se puede
actualizar la información de un cliente.
8.5.2.15. Interfaz actualización de los datos de clientes
El usuario podrá actualizar los datos de un cliente dando clic en el link actualizar de
a la interfaz anterior.
78
8.5.2.16. Interfaz de registro de nuevos clientes
El usuario podrá registrar los datos de un nuevo cliente dando clic en el botón de
nuevo cliente.
79
9. CONCLUSIONES
Es importante para toda empresa realizar un proceso de evaluación y gestión
de los procesos que desarrolla. Gracias a esta reingeniería de procesos, la
organización TRANSPORTES ZAMBRANO pudo encontrar nuevas
oportunidades para, no sólo optimizar tiempo y recursos en los mismos, sino
encontrar nuevos modelos de negocio.
Los modelos de negocio actuales requieren estar apoyados en las
tecnologías de la información y comunicaciones (TICS), pero estas requieren
a su vez, para una adecuada implementación y despliegue en la
organización, métodos sistemáticos y ciclos de vida basados en ingeniería
de software, acordes con el tipo de solución tecnológica a desplegar. En el
caso particular del sistema de información objeto de estudio del presente
documento, se eligió un patrón arquitectónico (Modelo Vista Controlador), el
cual soporta toda una solución tecnológica basada en patrones de diseño
bajo un lenguaje orientado a objetos de última generación (PHP 5.2), y
tecnologías cliente (Javascript , CSS, HTML5).
De acuerdo a los resultados obtenidos se puede concluir que se debe
impulsar actualización de los datos antiguos en el nuevo sistema de
información para poder obtener un beneficio adecuado con la herramienta
implementada, acorde con el modelo de negocio que persigue la
organización.
Es completamente recomendable la implementación de software sistema de
información en cualquier empresa que desee estar en crecimiento continuo
80
10. BIBLIOGRAFÍA
PRESSMAN, Roger S. Ingeniería de Software, un enfoque práctico. Mc Graw Hill, 2010.
Erich Gamma. Patrones de diseño. Pearson 1° Edición 2003
Luke Welling, Laura Thomsom. Desarrollo Web con PHP y MySql. Pearson 3° Edición 2005
Chris Pitt. PRO PHP MVC (professional apress). Apress 1edición.
Martin Bean. Laravel 5 Essentials. Packt Publishing 2015.
Chuck Heintzelman. Laravel 5.1 Beauty: Creating Beautiful Web Apps in Laravel 5.1. Createspace; Edición: 1 2015.
Kyrnin Jennifer. Bootstrap in 24 Hours, Sams Teach Yourself. SAMS DIV OF PEARSON; Edición 1 2015
Collection 5974: Designing, Deploying, and Managing a Network Solution for a Small- and Medium-Sized Business
Building Web Objects Applications. Jesse Feiler. McGraw-Hill Osborne Media. Nov 01, 2001
UML y Patrones. 2ª Edición. Craig Larman. Prentice Hall. 2003
http://www.elserver.com/conociendo-laravel-el-framework-que-revoluciono-php/
https://es.wikipedia.org/wiki/Programacion_por_capas
http://codehero.co/laravel-4-desde-cero-estructura-del-proyecto/
http://laraveles.com/docs/5.1/lifecycle
http://www.bcnbit.com/laravel-4-resumen-para-principiantes-parte-i/
http://revistatelematica.cujae.edu.cu/index.php/tele/article/viewFile/15/10
http://blog.devacademy.la/post/94202131491/tutorial-laravel-introducci%C3%B3n-y-conceptos