ANALIZAR, DISEÑAR Y DESARROLLAR EL SOFTWARE DE INTERCAMBIO DE INFORMACIÓN SOBRE PLATAFORMA WEB
DIANA LIZETH CARVAJAL PORTILLA DIANA CAROLINA LÓPEZ LÓPEZ
UNIVERSIDAD CATÓLICA DE PEREIRA FACULTAD DE CIENCIAS BÁSICAS E INGENIERÍA INGENIERÍA DE SISTEMAS Y TELECOMUNICACIONES
PEREIRA 2013
ANALIZAR, DISEÑAR Y DESARROLLAR EL SOFTWARE DE INTERCAMBIO DE INFORMACIÓN SOBRE PLATAFORMA WEB
DIANA LIZETH CARVAJAL PORTILLA DIANA CAROLINA LÓPEZ LÓPEZ
INFORME DE PRÁCTICA ACADÉMICA TUTOR
LILIANA MARTÍNEZ RENDÓN INGENIERA DE SISTEMAS
UNIVERSIDAD CATÓLICA DE PEREIRA FACULTAD DE CIENCIAS BÁSICAS E INGENIERÍA INGENIERÍA DE SISTEMAS Y TELECOMUNICACIONES
PEREIRA 2013
TABLA DE CONTENIDO
SÍNTESIS ... 8
INTRODUCCIÓN ... 9
1. PRESENTACIÓN DE LA ORGANIZACIÓN ...10
2. DEFINICIÓN DE LAS LÍNEAS DE INTERVENCIÓN...15
3. DESCRIPCIÓN DEL PROBLEMA ...16
4. JUSTIFICACIÓN DE LA PROPUESTA DE SOLUCIÓN ...17
5. OBJETIVOS ...18
5.1 OBJETIVO GENERAL...18
5.2 OBJETIVOS ESPECÍFICO ...18
6. MARCO TEÓRICO ...19
7. CRONOGRAMA ...35
8. PRESENTACIÓN Y ANÁLISIS DE LOS RESULTADOS ...39
9. CONCLUSIONES ...56
10. RECOMENDACIONES ...57
LISTA IMÁGENES
IMAGEN1. Ruta Crítica………41
IMAGEN 2. Diagrama de flujo……….45
IMAGEN 3. Diagrama entidad relación………..46
IMAGEN 4. Diagrama relacional……….46
IMAGEN 5. Base de datos OPTOCRM……….…47
IMAGEN 6. Diagrama de flujo……….50
IMAGEN 7. Diagrama entidad relación………..51
IMAGEN 8. Diagrama relacional……….52
IMAGEN 9. Base de datos MyCarCV……….52
IMAGEN 10. Diagrama de flujo………...55
IMAGEN 11. Diagrama relacional………...56
LISTA TABLAS
TABLA 1. Libro de actividades………..42
TABLA 2. Costos por perfil profesional………42
TABLA 3. Costos Generales………..43
SÍNTESIS
SÍNTESIS ABSTRACT
En varias empresas enfocadas a la industria del software se trabaja el desarrollo de proyectos con metodologías agiles, las cuales no permiten llevar un ejercicio juicioso de la ingeniería del software y su documentación, trayendo consigo algunos problemas.
Es por esto que el desarrollo de la práctica académica tiene como objetivo llevar un proceso detallado de la metodología propia de la organización enfocada a la ingeniería del software; para el cumplimiento de este objetivo se realizaron actividades tales como: levantamiento de requerimientos, modelado, especificación de la arquitectura, valoración, documentación, desarrollo, pruebas y mantenimiento. En productos existentes y por desarrollar.
In several companies focused on software industry development project working with agile methodologies, which do not permit to carry a judicious exercise of software engineering and documentation, bringing some problems.
That is why the development of academic practice aims to bring a detailed process of the methodology of the organization focused on software engineering, to fulfill this objective were conducted activities such as requirements gathering, modeling, specification of architecture, assessment, documentation, development, testing and maintenance. In existing products and to develop.
Descriptores:
Ingeniería del software, metodologías, MVC (Modelo, Vista, Controlador), requerimientos, arquitectura, lenguajes de programación.
Keywords: Software engineering, methodologies, MVC (Model, View, Controller), requirements, architecture, programming languages.
INTRODUCCIÓN
La ingeniería del software es, según Pressman, “una disciplina que integra el proceso, los métodos, y las herramientas para el desarrollo de software de computadora.” (Pressman R. S., 2004).
Un seguimiento adecuado de esta disciplina permite tener calidad en el proceso y por tanto presumir calidad en el producto. En la organización se sigue una metodología propia. Esta define una serie de actividades como son: levantamiento de requerimientos, modelado, especificación de la arquitectura, valoración, documentación, desarrollo, pruebas y mantenimiento.
Para el cumplimiento de los objetivos propuestos es importante tener clara la metodología, los conceptos fundamentados a la nube como: modelado UML, teoría de requerimientos, componentes de arquitectura, técnicas para dirección de proyectos (método pert), conocimiento en HTML, PHP, Javascript, Ajax, SQL y manejo de bases de datos PostgreSQL.
Los productos a desarrollar están enfocados a la nube ya que el principal objetivo de la organización es impactar el mercado con software que brinde comodidad al usuario e innovación.
La innovación es entendida dentro de la organización como la transformación de los datos en conocimiento mediante analítica avanzada. Busca responder a las necesidades del mercado además de obtener una ventaja competitiva.
Según DOITLAB la analítica avanzada de los datos soporta la gestión inteligente de la información para la toma de decisiones en la inteligencia de negocios y mercados, esto se puede evidenciar en cada uno de los productos gracias a un módulo de estadísticas y reportes ajustado a las especificaciones del cliente, en el cual se presenta información vital para el funcionamiento y crecimiento del negocio.
1. PRESENTACIÓN DE LA ORGANIZACIÓN
Es una empresa de tecnologías de información que brinda soluciones de innovación en Analítica Avanzada de última generación soportadas en la ciencia y conocimiento especializado; fundamenta sus productos y servicios en la investigación y el desarrollo, otorgando un valor agregado a nuestros clientes para la toma asertiva de sus decisiones.
Contamos con un laboratorio de innovación donde nuestro talento humano agrega todo el conocimiento y creatividad para conceptualizar y construir las soluciones de inteligencia que necesitan los hombres de negocios, los administradores públicos, las organizaciones de la sociedad civil y los ciudadanos.
Es parte del cluster Parquesoft, uno de los principales proveedores de soluciones, productos y servicios en tecnologías de la información (Tl) y relacionadas de América Latina.
Actualmente Parquesoft, en su red de parques tecnológicos de software, parquesoft nation, alberga a más de 300 empresas especializadas en la industria del conocimiento, formando una comunidad de más de mil profesionales, desarrollando productos y servicios de conocimiento, especializados en los últimos paradigmas de tecnología de la industria y otros centenares apoyando los procesos de servicios profesionales, administración desarrollo de negocios.
SOLUCIONES POR SECTOR
Inteligencia de negocios y gestión logística
El mundo globalizado ha revolucionado la forma en que las grandes empresas usan plataformas TIC que soporten la gestión inteligente de sus operaciones logísticas integrándolas a plataformas que ya se venían utilizando para la inteligencia de negocios y plataformas CRM. El reto y la oportunidad están en hacer esto posible para también para las PYMEs.
En la búsqueda de la gestión inteligente: - Optimizando la cadena de Suministro
- Analizando el comportamiento del Cliente - Segmentando de forma Inteligente el Mercado
- Incorporando el componente geográfico
Que tenga en cuenta la complejidad de los sistemas involucrados, y haga uso de la información transformándola en conocimiento en la búsqueda del máximo beneficio para las pymes, poniendo a su disposición las tecnologías más robustas de forma flexible, económica y segura.
DOITLAB
Ofrece soluciones de Analítica Avanzada soportando la gestión inteligente de lo información para la toma de decisiones en la inteligencia de negocios y mercados.
Soluciones inteligentes para: - Soluciones data mart
- Sistemas de predicción avanzada - Sistemas de soporte a la decisión - Simulación de mercados
- Segmentación inteligente de mercados - Análisis del comportamiento de cliente - Optimización de la fuerza de ventas
- Modelos de caracterización y clusterización empresarial Territorios inteligentes
Decenas de ciudades alrededor del mundo están implementando tecnologías de información y comunicación -TICS- que soporten la gestión inteligente del territorio.
En la búsqueda dela gestión inteligente: - De la Economía
- De la Movilidad - Del Ambiente - Del Gobierno
- De los servicios al ciudadano
Que tenga en cuenta la complejidad de los sistemas involucrados, y haga uso de la información transformándola en conocimiento en la búsqueda del máximo
beneficio para los ciudadanos, los hombres de negocios y los administradores de lo público.
DOITLAB
Ofrece soluciones de Analítica Avanzada soportando la gestión inteligente de la información para la toma de decisiones en la planeación, participación y gestión del territorio.
Soluciones inteligentes para:
- Planeación, prospectiva y ordenamiento territorial. - Servicios ciudadanos
- Gobierno en línea
- Sistemas de soporte a lo administración pública. - Territorios digitales
- City marketing
Redes eléctricas inteligentes del futuro
En todo el mundo desde EE.UU, Europa, India o China están implementando plataformas TIC que soporten la gestión inteligente de las redes eléctricas del futuro.
En la búsqueda dela gestión inteligente: - Del Mercado de Energía
- Del Planeamiento y la Operación - De la Regulación
- De la Inclusión de Energías Limpias - De los Usuarios
Soportada en avanzados sistemas de adquisición, transmisión y procesamiento de la información de la red en la mira de garantizar la eficiencia del uso de la energía y la sustentabilidad ambiental.
DOITLAB
Ofrece soluciones de Analítica Avanzada soportando la gestión inteligente de la información para la toma de decisiones en la planeación, participación y gestión de las redes eléctricas inteligentes.
Soluciones inteligentes para:
- La gestión activa del usuario.
- La gestión óptima de pérdidas técnicas y no técnicas - La gestión óptima del mantenimiento
- La gestión óptima de activos - Mercados de energías
- La gestión dinámica de la tarifa
- La gestión de la generación distribuida y energías alternativas - La gestión del impacto ambiental de los sistemas eléctricos - La gestión de micro redes o micro áreas
- Ciber seguridad TECNOLOGÍA
La implementación de soluciones a partir de la base de conocimiento se hace posible con la incorporación de las siguientes herramientas tecnológicas:
Modelado avanzado e ingeniería del software:
Un conjunto de herramientas basadas en UML y desarrolladas por DOITLAB, soportan nuestros procesos de ingeniería del software; permitiendo modelar, planear, valorar y administrar los diferentes proyectos de innovación tecnológica.
Computación de alto desempeño
Las innovaciones tecnológicas desarrolladas por DITLAB, son diseñados teniendo en cuenta los elementos de la computación distribuida; de tal forma, que su implementación y ejecución aproveche las ventajas de los sistemas de computación de alto desempeño disponibles en el mundo, o en su defecto
involucre directamente el diseño y montaje de sistemas de computación de alto desempeño según las necesidades de nuestros clientes.
Cloud Computing
Como elemento estratégico DOITLAB, involucra en sus procesos de investigación e innovación tecnológica, los criterios de la computación en la nube, personalizando nuestros productos, para aprovechar la infraestructura y servicios ofrecidos en la actualidad con el fin de llevar nuestras soluciones a quien las necesite, en el momento que se necesiten y en el lugar donde se necesiten.
2. DEFINICIÓN DE LAS LÍNEAS DE INTERVENCIÓN
3. DESCRIPCIÓN DEL PROBLEMA
La empresa DOITLAB se dedica al desarrollo de software a la medida y genera proyectos innovadores, producto de la observación de las necesidades del mercado. Para estos desarrollos la empresa ha trabajado con metodologías agiles que no le permiten llevar un ejercicio juicioso de la Ingeniería del software y su documentación.
Por lo anterior se ven truncados algunos procesos posteriores al desarrollo como el mantenimiento, la adaptabilidad y la reutilización, es por esto que se plantea la reingeniería de productos ya desarrollados y el seguimiento de la metodología propia para el desarrollo de productos pilotos planificados a corto plazo dentro de la organización, estos proyectos apuntan al intercambio de información sobre plataformas web, algunos de ellos son:
ERP para laboratorios industriales, gestión del proceso.
CRM (La administración basada en la relación con los clientes) para empresas dedicadas al cuidado de la salud.
Plataforma de intercambio de información, gestión de procesos automovilísticos.
4. JUSTIFICACIÓN DE LA PROPUESTA DE SOLUCIÓN
Para dar solución al problema anteriormente planteado, se propone el seguimiento detallado de la metodología propia de la organización enfocada a la ingeniería del software. Esto con el objetivo de lograr un resultado de calidad, que de valor agregado al producto y a su vez a la empresa.
La falta de seguimiento de una metodología puede provocar grandes traumatismos dentro de la empresa, situación que puede verse reflejada en sus productos y en los clientes. Situaciones como falta de información para los integrantes de un equipo de trabado que no han estado netamente en el proceso desde el principio, falta de un estándar o guía que oriente al equipo de trabajo en el proceso, dificultades al aplicar conceptos como la reutilización y la herencia por desconociendo de funcionalidades ya existentes en el sistema.
Con el seguimiento de una metodología propia la empresa puede mejorar sus procesos en torno a:
Se conocerá con claridad y exactitud lo que se debe hacer en cada etapa. La documentación permitirá saber que elementos pueden ser reutilizados
de procesos anteriores en la empresa.
Se podrá llegar a una estimación más precisa gracias al seguimiento de cada proceso.
5. OBJETIVOS 5.1 OBJETIVO GENERAL
Apoyar la empresa en el proceso de la ingeniería del software de los productos existentes y por desarrollar.
5.2 OBJETIVOS ESPECÍFICO
Realizar la reingeniería a la plataforma ya creada de intercambio de información orientada a la web, de tal manera que quede detallada la trazabilidad de todo el proceso.
Realizar el levantamiento de requerimientos, análisis, diseño de arquitectura y valoración del ERP para laboratorios industriales basado en gestión de procesos.
Aplicar las etapas de la ingeniería del software al producto piloto catalogado como “Plataforma de intercambio de información, gestión de procesos automovilísticos” apoyados en la metodología propia de la organización. Aplicar las etapas de la ingeniería del software al producto piloto catalogado
como “Plataforma de intercambio de información, gestión de procesos turísticos” apoyados en la metodología propia de la organización.
6. MARCO TEÓRICO
PROYECTOS SOFTWARE
Para las organizaciones es de vital importancia la ejecución con éxito de proyectos ya que dependiendo de esto se abre la posibilidad de introducir nuevos productos o servicios al mercado respondiendo a las cambiantes necesidades de los consumidores, un proyecto es entendido como "un esfuerzo temporal que se lleva a cabo para crear un producto, servicio o resultado único" (PMP, 2004) es Importante aclarar que un proyecto obedece a una secuencia de actividades únicas, complejas y relacionadas entre ellas persiguiendo un propósito o meta. Dentro del contexto software y sus proyectos se obedece a la misma definición aclarando que este producto tiene algunas características diferentes a los productos convencionales, características como la intangibilidad y dependencia del esfuerzo humano, estas condiciones hacen de la gestión de proyectos software una actividad compleja y variable.
Los proyectos de software a menudo son nuevos y tecnológicamente innovadores lo que se significa la ausencia de patrones y modelo para su ejecución y gestión. La gestión de proyectos de software es definida como "el conjunto de actividades consecuentes a lograr que todo el proyecto esté controlado, estimado y con metas medibles y alcanzables". (Roger S, 2002)
La gestión de proyectos estima, controla y analiza es considerada una rama especializada de la ingeniería del software.
REQUERIMIENTOS DEL SOFTWARE
Para la buena ejecución de un proyecto los requerimientos son de vital importancia porque nos dan a entender el problema y ayudan a deslumbrar posibles soluciones, estos son tan significativos para el proyecto y para el proceso que puede ser definidos como ingeniería de requerimientos, esta " trata de establecer lo que el sistema debe hacer, sus propiedades, emergentes, deseadas y esenciales, y las restricciones en el funcionamiento del sistema y los procesos de desarrollo de software" (Sommerville, 2005).
Por lo anterior queda claro que es un proceso de comunicación entre el cliente, los usuarios del software y los desarrolladores del mismo.
(IBM) plantea que “la ingeniería de requerimientos es un enfoque sistémico para recolectar, organizar y documentar los requerimientos del sistema, es también el proceso que establece y mantiene acuerdos, sobre los cambios de requerimientos entre los clientes y el equipo del proyecto”.
Por su valor crucial en el proceso los requerimientos obedecen a un proceso dispendioso y elaborado en el cual las partes deben entender a profundidad las necesidades del cliente, para este proceso (Sommerville, 2005) propones las siguientes actividades:
Descubrimiento de requerimientos: Es el proceso de interactuar con los stakeholders del sistema para recopilar sus requerimientos. Los requerimientos del dominio de los stakeholders y la documentación también se descubren durante esta actividad.
Clasificación y organización de requerimientos: Esta actividad toma la recopilación no estructurada de requerimientos, grupos relacionados de requerimientos y los organiza en grupos coherentes.
Ordenación por prioridades y negociación de requerimientos:
Inevitablemente, cuando existen muchos stakeholders involucrados, los requerimientos entrarán en conflicto. Esta actividad se refiere a ordenar según las prioridades los requerimientos, y a encontrar y resolver los requerimientos en conflicto a través de la negociación.
Documentación de requerimientos: Se documentan los requerimientos y se entra en la siguiente vuelta de la espiral. Se pueden producir documentos de requerimientos formales o informales.
Dentro de la clasificación anteriormente mencionada se puede decir que los requerimientos se pueden y deben catalogar en funcionales, no funcionales de producto y de proceso. De esta manera se pueden llegar a tener requerimientos bien definidos para así llegar a una claridad en las necesidades de los clientes. Siguiendo juiciosamente la ingeniería del software el paso siguiente es la escogencia de una metodología adecuada para el proceso de desarrollo del software.
METODOLOGÍAS
Son una propuesta o guía que acompaña cada uno de los pasos en la ingeniería del software, estos procesos son tomados por (Sommerville, 2005) como “conjunto de actividades que conducen a la creación de un producto software. Los procesos del software son complejos y, como todos los procesos intelectuales y creativos, dependen de las personas que toman decisiones y juicios. Debido a la necesidad de juzgar y crear, los intentos para automatizar estos procesos han tenido un éxito limitado.”
Para la creación de las diferentes metodologías existentes se han tenido en cuenta factores como el grupo de personas que trabajaran en el proyecto, el nivel de seguimiento que el cliente requiere, la rigurosidad deseada entre muchos otros, dentro de las metodologías más reconocidas podemos encontrar a Metrica, PSP, TSP, Scrum y RUP; a continuación se encontraran las definiciones de cada una tomando las apreciaciones de sus creadores:
Métrica: instrumento útil para la sistematización de las actividades que dan soporte al ciclo de vida del software dentro del marco que permite alcanzar los siguientes objetivos:
Proporcionar o definir Sistemas de Información que ayuden a conseguir los fines de la Organización mediante la definición de un marco estratégico para el desarrollo de los mismos.
Dotar a la Organización de productos software que satisfagan las necesidades de los usuarios dando una mayor importancia al análisis de requisitos.
Mejorar la productividad de los departamentos de Sistemas y Tecnologías de la Información y las Comunicaciones, permitiendo una mayor capacidad de adaptación a los cambios y teniendo en cuenta la reutilización en la medida de lo posible.
Facilitar la comunicación y entendimiento entre los distintos participantes en la producción de software a lo largo del ciclo de vida del proyecto, teniendo en cuenta su papel y responsabilidad, así como las necesidades de todos y cada uno de ellos.
Facilitar la operación, mantenimiento y uso de los productos software obtenido (Centro de estudios siperurocenter , 2005).
PSP: metodología diseñada para ayudar a los profesionales del software para que utilizando frecuentemente prácticas sanas de ingeniería del software se llegue a un producto de calidad.
TSP: Equipo de Software Process (TSP) Guías de los Equipos de ingeniería de software. TSP ayuda a las organizaciones a establecer una Práctica de la ingeniería madura y disciplinada, que produzca software Seguro y de calidad en menos tiempo y a menor costo.
TSP se ha aplicado en pequeñas y grandes organizaciones en una variedad de dominios con resultados similares en la primera utilización, incluyendo
• Mejoras en la productividad del 25% o más
• La reducción de costes y variación del cronograma a menos de + / - 10% • Costos de las pruebas y las reducciones de horario de hasta 80%
(Software Engineering Institute ).
Scrum: Scrum es un proceso en el que se aplican de manera regular un conjunto de buenas prácticas para trabajar colaborativamente, en equipo, y obtener el mejor resultado posible de un proyecto. Estas prácticas se apoyan unas a otras y su selección tiene origen en un estudio de la manera de trabajar de equipos altamente productivos.
En Scrum se realizan entregas parciales y regulares del producto final, priorizadas por el beneficio que aportan al receptor del proyecto. Por ello, Scrum está especialmente indicado para proyectos en entornos complejos, donde se necesita obtener resultados pronto, donde los requisitos son cambiantes o poco definidos, donde la innovación, la competitividad, la flexibilidad y la productividad son fundamentales.
Scrum también se utiliza para resolver situaciones en que no se está entregando al cliente lo que necesita, cuando las entregas se alargan demasiado, los costes se disparan o la calidad no es aceptable, cuando se necesita capacidad de reacción ante la competencia, cuando la moral de los equipos es baja y la rotación alta, cuando es necesario identificar y solucionar ineficiencias sistemáticamente o cuando se quiere trabajar utilizando un proceso especializado en el desarrollo de producto. (Agiles).
RUP: IBM Rational Unified Process es un marco de proceso integral que ofrece probadas prácticas de la industria para el software y la entrega e implementación de sistemas y para la gestión eficaz de los proyectos.
IBM Rational Method Composer le permite personalizar fácilmente RUP para satisfacer las necesidades específicas de su proyecto. Le permite seleccionar y desplegar solamente los componentes de proceso que necesita, y luego publicarlo a través de su intranet.
Los procesos basados en las mejores prácticas adoptadas en miles de proyectos en todo el mundo. Evite inventar todo desde cero y la reutilización de los procesos que han tenido éxito para otras organizaciones.
Capacidad de patrones que permiten que los administradores de proyectos para agregar o quitar rápidamente fragmentos reutilizables de procesos que abordan problemas comunes. Porque no hay dos proyectos iguales, los gerentes de proyecto pueden modificar el proceso para atender las necesidades específicas del proyecto.
Listo para usar los procesos de entrega para proporcionar el gerente del proyecto con un punto de arranque rápido para planificar e iniciar un proyecto. Un proceso de entrega proporciona una plantilla inicial del proyecto e identifica los hitos tipo a utilizar en el proyecto, que trabaja para ofrecer productos de cada hito, y qué recursos se necesitan para cada fase.
RUP promueve el desarrollo iterativo y organiza el desarrollo de software y sistemas en cuatro fases, cada una consistente en una o más iteraciones ejecutables del software en esa etapa del desarrollo. (IBM International Business Machines)
Estas metodologías son escogidas según el tipo de proyecto y el equipo de trabajo disponible para él.
LENGUAJE UNIFICADO DE MODELADO UML
Dentro del proceso de análisis y diseño es importante llevar el proyecto bien detallado de tal manera que permita obtener una mayor comprensión del problema y poder expresar al cliente la posible solución en términos que él pueda comprender y retroalimentar el proceso. Esta actividad es llevada cabo apoyados en el Lenguaje Unificado de Modelado UML que surge de la necesidad de un estándar que permitiera hacer de los modelos un lenguaje común para comprendidos por todos los diseñadores.
(Hernández Orallo) “El lenguaje UML tiene una notación gráfica muy expresiva que permite representar en mayor o menor medida todas las fases de un proyecto informático: desde el análisis con los casos de uso, el diseño con los diagramas de clases, objetos, etc., hasta la implementación y configuración con los diagramas de despliegue”.
UML es ante todo un lenguaje. Un lenguaje proporciona un vocabulario y unas reglas para permitir una comunicación. En este caso, este lenguaje se centra en la representación gráfica de un sistema.
Este lenguaje nos indica cómo crear y leer los modelos, pero no dice cómo crearlos. Esto último es el objetivo de las metodologías de desarrollo. Los objetivos de UML son muchos, pero se pueden sintetizar sus funciones:
• Visualizar: UML permite expresar de una forma gráfica un sistema de forma que otro lo puede entender.
• Especificar: UML permite especificar cuáles son las características de un sistema antes de su construcción.
• Construir: A partir de los modelos se pueden construir los sistemas diseñados. • Documentar: Los propios elementos gráficos sirven como documentación del sistema desarrollado que pueden servir para su futura revisión.
Un modelo UML está compuesto por tres clases de bloques de construcción: • Elementos: Los elementos son abstracciones de cosas reales o ficticias (objetos, acciones, etc.)
• Relaciones: relacionan los elementos entre sí.
• Diagramas: Son colecciones de elementos con sus relaciones".
Por medio de UML se pueden crear diagramas como: Casos de uso, Clases, Objetos, Secuencia, Colaboración, Estados, Actividades, Componentes y Despliegue. Estos diagramas permiten especificar las necesidades del cliente (requerimientos funcionales), los sistemas orientados a objetos y os distintos aspectos del sistema a modelar
ARQUITECTURA DE TRES CAPAS Modelo - Vista - Controlador (MVC)
En los sistemas a desarrollar se busca realizar un proceso estructurado, donde se pueda dividir las aplicaciones en tres capas de tal manera que los cambios o errores encontrados se puedan localizar fácilmente ya que sólo impactarían a una
capa en particular. Por este motivo se optó por seguir una arquitectura de tres capas, bajo el Modelo - Vista - Controlador (MVC).
(Xhafa, 454) “Define el modelo vista controlador como un patrón de diseño que permite conseguir un alto grado de modularidad en las aplicaciones, en general, y muy especialmente en la interfaz de usuario. Esencialmente, usando este patrón se puede realizar una clara separación de la aplicación en tres partes independientes que colaboran y se comunican entre sí para realizar la tarea. El objetivo es que los cambios de una de parte impliquen el mínimo de cambio a otras partes del programa”.
Por su parte (Brito, 2009) define cada una de las capas como:
“Modelo, o capa de datos. Contiene los componentes que representan y
gestionan los datos manejados por la aplicación. En el caso más típico, los datos encargados de leer y escribir en la base de datos.
Vista, o capa de presentación. Los componentes de esta capa son responsables de mostrar al usuario el estado actual del modelo de datos, y presentarle las distintas acciones disponibles.
Capa de control. Contendrá los componentes que reciben las órdenes del usuario, gestionan la aplicación de la lógica de negocios sobre el modelo de datos, y determina que vista debe mostrarse a continuación”.
Como se puede ver en las definiciones de las capas se tiene una comunicación constante entre cada una de ellas, donde la capa de control sirve de intermediario entre la vista y el modelo para el procesamiento de la información.
SERVIDOR WEB
Este es uno de los componentes indispensable en el tema de las aplicaciones web ya que sin este no sería posible comprender las solicitudes del usuario y poder entregar a este una respuesta.
Según (Luján Mora, 2012) “el servidor web es un programa que está esperando permanentemente las solicitudes de conexión mediante el protocolo HTTP por parte de los clientes web. La parte servidor de las aplicaciones web está formada por:
Páginas estáticas (Documentos HTML) que siempre muestran el mismo contenido
Recursos adicionales (multimedia, documentos adicionales, etc.) que se pueden emplear dentro de las páginas o estar disponibles para ser descargados y ejecutados (visualizados) en el cliente.
Programas o scripts que son ejecutados por el servidor web cuando el navegador cliente solicita algunas páginas”.
PROTOCOLO HTTP
“Este protocolo permite transportar imágenes, películas flash, o páginas hechas en algún lenguaje. Según (Minera) HTTP (Hyper Text Transfer Protocol, Protocolo de transferencia de hipertexto) es el protocolo más utilizado para enviar y recibir datos por internet. Un navegador web podría denominarse cliente HTTP, mientras que un servidor web sería un servidor HTTP. El modo general de trabajo utilizado por HTTP es el siguiente:
Un cliente HTTP abre una conexión y envía una petición.
El servidor HTTP correspondiente recibe el mensaje y genera otro con la respuesta adecuada, luego cierra la conexión.
Para identificar tanto a un cliente como a un servidor se utilizan direcciones IP o URLs, que se encargan de enmascarar dichas direcciones”.
Debido a estas interconexiones, es posible que en el camino de solicitud o respuesta la información sea interceptada en uno de los puntos intermedios, pudiendo captar contraseñas, números de tarjetas de crédito y cualquier información que navegue entre los puntos.
El HTTP codifica toda la comunicación, de tal manera que sólo el origen y el destino puedan entender y si se intercepta sólo se verá basura. Es importante verificar en la dirección de las páginas que se visiten empiecen con http://
INTERPRETACIÓN DEL SOFTWARE
Para el desarrollo de aplicaciones web las órdenes se puede interpretar de dos maneras, dependiendo de la ubicación del sitio (servidor) y quien lo genera (cliente).
Para el caso de algunos lenguajes de programación como PHP, las instrucciones se ejecutan en el servidor y en JavaScript el cliente es el encargado de ejecutarlas.
En la programación del lado del cliente los programas se almacenan en el servidor, pero al momento de ejecutarlos se hacen en el cliente, permitiendo bajar las cargas en el servidor. En el momento de ejecutar los programas se transmite el código por la red, requiriendo de programas interpretes para que funcione adecuadamente.
En la programación del lado del servidor los programas se almacenan en el servidor y se ejecutan en él, esto hace que el servidor en muchas ocasiones se sobrecargue de trabajo. Cuando se ejecuta el programa, al cliente solo se le envía el resultado de la ejecución, en el momento en que el cliente hace peticiones al programa estas recaen en el servidor, por lo tanto no se necesita hacer instalaciones de algún software adicional en el cliente.
Normalmente ambos lenguajes, los del lado del cliente y los del lado del servidor, interactúan entre sí mediante un instrumento conocido por los usuarios finales como Página Web.
SERVICIOS DE HOSTING
El servicio de hosting es indispensable en este proceso del desarrollo de aplicaciones web, permitiendo un espacio donde almacenar el sitio y hacerlo visible en la nube, además de proporcionar una serie de herramientas para su funcionamiento y gestión como:
Cuentas de correo. Estadísticas.
Seguridad.
Dominios entre otras.
(científicas, 2006) “Los servicios de hosting son prestados por empresas o instituciones con capacidad tecnológica a los editores pequeños sin capacidad para estar presentes en internet. Estos servicios alojan las publicaciones electrónicas de diversos editores en sus servidores y les facilitan las herramientas para su gestión. Prestan así mismo servicios de valor añadido similares a los ofrecidos por los grandes editores. En estos servicios la política de precios es diferente según cada editor”.
DOMINIO
Este servicio en muchas ocasiones viene incluido dentro del hosting, es importante para dar reconocimiento al sitio web a través de un nombre específico, seguido por una extensión como .com, .org, .net, .edu, .info, .es, .tv, .coop entre otros, dependiendo de la naturaleza del sitio.
Según (Aguilera López, 2008), “el nombre de un dominio es el que identifica un sitio dentro de internet. Son dominios, por ejemplo:
www.editex.es www.iberia.es www.microsoft.com www.lastminute.com
Para adquirir un dominio, es necesario comprobar que el nombre elegido está disponible en la extensión deseada. El registro y pago del dominio puede hacerse a través de determinados portales”.
LENGUAJES UTILIZADOS
Para la creación de sitios web es necesario utilizar los siguientes lenguajes que tiene características importantes para estructurar el sitio y dar instrucciones importantes para el adecuado funcionamiento del sistema.
HTML
El HTML se hizo popular debido a su sencillez y facilidad aprendizaje. Este lenguaje no tiene compilador por lo tanto si se presenta algún error este será mostrado en la forma como fue entendido.
Este lenguaje está conformado por etiquetas que le indican cuando hay que poner por ejemplo un texto en cursiva, centrado, negrilla, tamaño específico, separar un párrafo o definir el color de texto, incluir imágenes, videos, sonidos y un sin número de etiquetas que permitirán estructurar la página web.
Según (Vértice, 2009), “HTML es un lenguaje artificial que los ordenadores son capaces de interpretar y diseñado para que los programadores redacten instrucciones que los navegadores ejecutan para originar la página web. Los lenguajes de programación se utilizan para crear programas que especifiquen el comportamiento que debe tener una máquina para expresar algoritmos con precisión, para realizar cálculos complejos, etc.
Las siglas HTML significan HyperText Markup Language (Lenguaje marcado de hipertexto). El hipertexto en una computadora es texto que posee referencias (hipervínculos, links o enlaces) a otros textos. Además de texto el hipertexto puede estar formado por tablas, imágenes u otros elementos.
En esencia, HTML sirve para estructurar documentos (Títulos, párrafos, listas, etc.), pero no describe la apariencia o el diseño de un documento sino que ofrece las herramientas necesarias para dar formato, según las capacidades del servidor web. En el que se almacenan las páginas web y las capacidades del navegador”.
PHP
Es un lenguaje creado bajo el propósito de facilitar el diseño de páginas web dinámicas e interactivas con el usuario, ya que este lenguaje permite consultar y guardar información de diferentes tipos de bases de datos, es te lenguaje es definido como “un lenguaje interpretado del lado del servidor que se caracteriza por su potencia, versatilidad, robustez y modularidad. los programas escritos en PHP son embebidos directamente en el código HTML y ejecutados por el servidor web a través de un intérprete antes de transferir al cliente que lo ha solicitado un resultado en forma de código HTML puro.” (Cobo, 2005).
Generalmente se recomienda la utilización de este lenguaje ya que brinda algunas vventajas considerables, estas son:
Cuanta con una gran comunidad experta en el tema.
Se considera que el proceso de aprendizaje de este lenguaje es relativamente sencillo.
Su rendimiento se considera verdaderamente eficiente.
Open Sourse, se puede modificar el código fuente para ajustarlo a nuestras propias necesidades.
Librerías incluidas: trae un conjunto muy amplio de funciones para ser utilizadas en diferentes tares relacionadas con la web
Portabilidad: PHP está disponible para la mayoría de sistemas operativos existentes. Desde Unix, Linux, Microsoft Windows, MAC.
Soporte para gran variedad de Bases de Datos: PHP tiene soporte para conectarse a una gran variedad de base de datos como: MySQL, PostgreSQL, mSQL, Oracle, dbm, FilePro, HyperWave, Informix, InterBase, Sybase entre otras. Las base de datos hacen que una aplicación sea más robusta y con este soporte la aplicación puede conectarse con facilidad a tu base de datos existente.
La funcionalidad principal de php es la interacción con bases de datos, es por esto que es necesario contar con un sistema de bases de datos y un lenguaje que permita la interacción entre el sistema de bases de datos y los datos propios.
JAVASCRIPT
Debido a la necesidad de interacción con el usuario y la sencillez que se producía con el lenguaje HTML, surgió JavaScript que logro hacer de las páginas web algo más amigable y dinámico, no sólo estar basadas en imágenes, sonido, texto, y unas cuantas cosas más.
(Sánchez Maza, 2012), “JavaScript se presenta como un lenguaje de desarrollo de aplicaciones cliente/servidor a través de internet.
El programa en JavaScript tiene la particularidad de que esta insertado dentro del mismo código HTML, que lo presenta al usuario y no es por ello un programa aparte.
JavaScript fue diseñado para ser un lenguaje de elaboración de script que pudieran incrustarse en archivos HTML, y poder ser interpretado por el navegador. JavaScript es leído por el navegador como código fuente. Fue creado para darle más dinamismo a las páginas web. Las características principales de este lenguaje es que maneja eventos, independiente de la plataforma y está basado en objetos”.
AJAX
Ajax genera un eje diferenciador en los sitios comúnmente diseñados ya que como principal característica es hacer que la interfaz del usuario permanezca visible en todos los procesos y sólo bloquear temporalmente solo una parte que se actualiza dinámicamente al recibir la respuesta del servidor. Además dentro de sus componentes se busca preservar el desarrollo en capas donde es posible divi dir el modelo, la vista y el controlador.
Según (Minera), “la búsqueda de la reducción del tráfico es un hecho permanente una de las técnicas más populares de los últimos tiempos que puede ayudarnos a lograr avances significativos es Ajax (Asynchronous JavaScript And XML). Éste nos proporciona un modelo en el que interviene tecnologías ampliamente conocidas como (X)HTML, CSS, JavaScript, DHTML, DOM, XML y XSLT. Cada tecnología cumple con un rol específico:
La parte de presentación XHTML y CSS
Acceso a contenidos dela página mediante DOM y DHTML. Intercambio de datos con XML o JSON.
Comunicación asíncrona con el servidor mediante XMLHttpRequest.
La asincronia puede definirse como la capacidad que tiene una aplicación de administrar procesos independientes unos de otros, es decir que la actividad del usuario no se interrumpe en su totalidad”.
Dentro de las tareas que se realizan en una aplicación Ajax está la carga de la interfaz de usuario con funciones JavaScript, realizar peticiones al servidor desde estas mismas funciones mediante al implementación del objeto XMLHttpRequest al ejecutar una acción mediante un evento como onClick, onMouseOver, entre otros. Por último actualizar la interfaz con los datos recuperados desde el lado del servidor con algún lenguaje de programación.
HOJAS DE ESTILO (CSS)
A las aplicaciones web se les puede dar diferentes estructuras, colores, tamaños, texto, funcionalidades multimedia como imágenes, videos, música entre otras que pueden ser parametrizados por medio de lenguaje de hojas de estilos como CSS. Esta tarea de diseño puede traer ventajas significativas a quien desarrolla ya que reduce código y se trabaja de manera eficiente, a quienes visitan el sitio ya que con conocimientos en cuestiones de estética se puede hacer algo agradable al usuario, entre otras cosas.
Según (Sánchez Maza, 2012), “Para estructurar el lenguaje HTML aparecieron las denominadas hojas de estilo (CSS) en un intento de separar contenido de estructura en las páginas web. Las CSS son definiciones del espectro con que se presenta un documento al usuario. Esto permite independizar el contenido de una página web de su estructura y de entrada nos da la posibilidad de alterar su aspecto sin necesidad de modificar la página sino tan sólo su estilo.
Las CSS nos permite crear estilos propios o modificar las ya existentes, así se puede redefinir el elemento para que incluya una imagen de fondo, desde ese momento todas las páginas tendrán esa misma imagen de fondo son tocar una sola línea del HTML”.
SQL
Es un lenguaje de consulta estructurado que permite el acceso y la realización de diferentes procesos a bases de datos relacionales, este lenguaje es definido por (G.Quintana, 2008) como “un lenguaje de programación diseñado específicamente para el acceso a Sistemas Gestores de Bases de datos Relacionales, es el más ampliamente utilizado en estos”, este lenguaje es aplicable para el SBD (sistema de bases de datos) Postgres.
POSTGRES
A continuación se presenta la definición oficial de psotgres propia de sus creadores.
PostgreSQL es un sistema de gestión de bases de datos objeto-relacional, distribuido bajo licencia BSD y con su código fuente disponible libremente. Es el sistema de gestión de bases de datos de código abierto más potente del mercado y en sus últimas versiones no tiene nada que envidiarle a otras bases de datos comerciales.
PostgreSQL utiliza un modelo cliente/servidor y usa multiprocesos en vez de multihilos para garantizar la estabilidad del sistema. Un fallo en uno de los procesos no afectará el resto y el sistema continuará funcionando. (Postgres). A continuación algunas definiciones generales sobre sistemas de bases de datos Un sistema de bases de datos es básicamente un sistema computarizado para llevar registros. Es posible considerar a la propia bases de datos como una serie de armario electrónico para archivar; es decir, es un depósito o contenedor de una colección de archivos de datos computarizados. Los usuarios del sistema pueden realizar una
Una variedad de operaciones sobre dichos archivos, como: -- agregar nuevos archivos vacíos a la base de datos -- insertar datos dentro de los archivos existentes -- recuperar datos de los archivos existentes --modificar datos en archivos existentes -- Eliminar datos de los archivos existentes
-- Eliminar archivos existentes de las bases de datos
Es un sistema computarizado cuya finalidad principal es almacenar información y permitir a los usuarios recuperar y actualizar esa información con base en peticiones.
La información en cuestión puede ser cualquier cosa que sea de importancia para el individuo u organización; en otras palabras, todo lo que sea necesario. (Introducción a los sistemas de bases de datos , 2001)
7. CRONOGRAMA
Actividades Enero Febrero Marzo Abril Mayo Junio
1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4
A1. Capacitación en el método pert
A2. Organización de la herramienta de valoración
A3.Plataforma de intercambio de información orientada a la web
T1. Análisis T2. Diagnóstico
T3. Acta de definición de requerimientos T4. Diseño de diagramas de flujo
T5. Documentación diagramas de flujo T6. Diseño de modelo entidad relación T7. Diseño de modelo relacional
T8. Creación de base de datos en el hosting T9. Diseño de arquitectura modular
T10. Documentación de la arquitectura modular T11. Diseño de arquitectura general
T12. Documentación de la arquitectura general T13. Valoración de la plataforma
T14. Acta interna de valoración
A4. Laboratorios industriales basado en gestión de procesos
T2. Acta de definición de requerimientos T3. Análisis
T4. Diseño de arquitectura modular
T5. Documentación de la arquitectura modular T6. Diseño de arquitectura general
T7. Documentación de la arquitectura general T8. Valoración de la plataforma
A5. Plataforma de intercambio de información, gestión de procesos automovilísticos
T1. Levantamiento de requerimientos T2. Acta de definición de requerimientos T3. Análisis
T4. Diseño de diagramas de flujo T5. Documentación diagramas de flujo T6. Diseño de modelo entidad relación T7. Diseño de modelo relacional
T8. Creación de base de datos en el hosting T9. Diseño de arquitectura modular
T10. Documentación de la arquitectura modular T11. Diseño de arquitectura general
T12. Documentación de la arquitectura general T13. Valoración de la plataforma
T14. Diseño de las herramientas de Querying T15. Codificación módulo 1
T16. Codificación módulo 2 T17. Codificación módulo 3 T18. Codificación módulo 4
A6. Plataforma de intercambio de información, gestión de procesos turísticos
T1. Levantamiento de requerimientos T2. Acta de definición de requerimientos T3. Análisis
T4. Diseño de diagramas de flujo T5. Documentación diagramas de flujo T6. Diseño de modelo entidad relación T7. Diseño de modelo relacional
T8. Creación de base de datos en el hosting T9. Diseño de arquitectura modular
T10. Documentación de la arquitectura modular T11. Diseño de arquitectura general
T12. Documentación de la arquitectura general T13. Valoración de la plataforma
T14. Codificación módulo 1 T15. Codificación módulo 2 T16. Codificación módulo 3 T18. Codificación módulo 4
8. PRESENTACIÓN Y ANÁLISIS DE LOS RESULTADOS A1. CAPACITACIÓN EN EL MÉTODO PERT
Para iniciar el proceso de práctica fue importante aprender acerca del método utilizado por la empresa para la dirección de proyectos de software, dicho método es denominado pert. En el proceso DOITLAB brindó la capacitación, donde se aprendió a determinar una ruta crítica que permitirá implementarse en el módulo que estima los tiempos, costos, personas y demás factores en la estimación del software. A continuación se presenta la ruta crítica determinada para proyectos medianos.
IMAGEN1. Ruta Crítica
Fuente: elaboración propia
La documentación realizada en este proceso se encuentra en el APÉNDICE 1. Determinación de la ruta crítica.
A2. ORGANIZACIÓN DE LA HERRAMIENTA DE VALORACIÓN
Se ajustó un módulo de valoración, donde se pueden ver actividades, costos, tiempos y personal necesarios para el desarrollo de proyectos de software. Continuación de presentan las imágenes de las tablas utilizadas en el proceso. TABLA 1. Libro de actividades
Fuente: DOITLAB
TABLA 2. Costos por perfil profesional
TABLA 3. Costos Generales
Fuente: DOITLAB
TABLA 4. Actividades, tiempos y costos
A3. PLATAFORMA DE INTERCAMBIO DE INFORMACIÓN ORIENTADA A LA WEB
T1. Análisis
Para el análisis de la plataforma se estudió a fondo cada una de las funcionalidades del sistema, así como las especificaciones del cliente y el negocio, como resultado de esto se realizaron propuestas de solución donde fue importante elaborar el modelo entidad relación y el relacional con su documentación.
En el siguiente anexo se encuentra el documento con las actividades realizadas. ANEXO 1. Análisis modo técnico OPTO CRM
T2. Diagnóstico
El proceso de diagnóstico se realizó la navegación en la plataforma para determinar fallas y poder realizar las consideraciones necesarias para la solución de dichos inconvenientes.
En la labor se realizó un documento con los pantallazos a evaluar y las posibles soluciones. En el APÉNDICE 2. Diagnóstico del sistema, se encuentra dicho documento
T3. Acta de definición de requerimientos
Los requerimientos para esta plataforma fueron levantados en un formato propio de la institución, en él se detallan por puntos cada uno de las requerimientos y son revisados y aprobados por cada una de las partes.
El método utilizado para esta actividad fue la entrevista directa en este caso con DOITLAB (propia institución) quienes fueron los solicitantes. El acta de levantamiento de requerimientos de este proyecto se adjunta en el APÉNDICE 3. Acta levantamiento de requerimientos.
T4. Diseño diagramas de flujo
En el diseño es importante determinar los distintos módulos que conforman la plataforma para luego realizar los diagramas de flujo que describen su comportamiento.
IMAGEN 2. Diagrama de flujo
Fuente: elaboración propia
T5. Documentación de diagramas de flujo
La documentación y el diseño de los diagramas de flujo se encuentra adjunto en el ANEXO 2. Caso de uso valoración optométrica, ANEXO 3. Caso de uso Análisis técnico, ANEXO 4. Caso de uso Panel de control.
T6. Diseño del modelo entidad relación
Esta labor fue realizada en el proceso de Análisis del modo técnico de operación descrito anteriormente.
IMAGEN 3. Diagrama entidad relación
Fuente: http://laurel.datsi.fi.upm.es
El diagrama entidad relación diseñado para este proyecto se encuentran en el ANEXO 1. Análisis modo técnico OPTO CRM
T7. Diseño de modelo relacional
Esta labor fue realizada en el proceso de Análisis del modo técnico de operación descrito anteriormente.
IMAGEN 4. Diagrama relacional
El diagrama entidad relación diseñado para este proyecto se encuentran en el ANEXO 1. Análisis modo técnico OPTO CRM
T8. Creación de base de datos en el hosting
Una vez definidos los modelos se genera la base de datos en el hosting hostmonster en postgres.
IMAGEN 5. Base de datos OPTOCRM
Fuente: elaboración propia
Los temas 9, 10, 11, 12 se encuentran definidos en el APÉNDICE 4. Documentación arquitecturas
T13. Valoración de la plataforma
Esta valoración fue hecha en el módulo, donde se ajustaron los valores de acuerdo a las características del proyecto. Aquí es donde fue utilizada la ruta crítica presentada anteriormente y fórmulas matemáticas que ayudan a determinar los valores importantes en la estimación de un proyecto de software
Se adjunta ANEXO 5. Módulo de valoración OPTOCRM. T14. Acta interna de valoración
En esta acta se especifican los valores encontrados en todos los procesos anteriores. El acta interna de valoración de este proyecto se adjunta en el APÉNDICE 5. Acta interna de valoración.
A4. LABORATORIOS INDUSTRIALES BASADO EN GESTIÓN DE PROCESOS
T1. Levantamiento de requerimientos
Los requerimientos para esta plataforma fueron levantados en un formato propio de la institución, en él se detallan por puntos cada uno de las requerimientos y son revisados y aprobados por cada una de las partes.
El método utilizado para esta actividad fue la entrevista directa en este caso con el gerente de laboratorios GELLA, solicitante del desarrollo.
T2. Acta de levantamiento de requerimientos
En DOITLAB una vez levantados los requerimientos se deben redactar formalmente. Se adjunta en el APÉNDICE 6. Acta levantamiento de requerimientos.
T3. Análisis
Se hace el análisis de los requerimientos para determinar cuáles serán los alcances de los aplicativos, dentro de este proceso no se generaron diagramas ya que solo fue un ejercicio de estimación.
Los temas 4, 5, 6, 7 se encuentran definidos en el APÉNDICE 7. Documentación arquitecturas
T8. Valoración de la plataforma
Esta valoración fue hecha en el módulo, donde se ajustaron los valores de acuerdo a las características del proyecto. Aquí es donde fue utilizada la ruta crítica presentada anteriormente y fórmulas matemáticas que ayudan a determinar los valores importantes en la estimación de un proyecto de software
A5. PLATAFORMA DE INTERCAMBIO DE INFORMACIÓN, GESTIÓN DE PROCESOS AUTOMOVILÍSTICOS
T1. Levantamiento de requerimientos
Los requerimientos para esta plataforma fueron levantados en un formato propio de la institución, en él se detallan por puntos cada uno de las requerimientos y son revisados y aprobados por cada una de las partes.
El método utilizado para esta actividad fue la entrevista directa en este caso con la empresa DOITLAB quienes solicitan el desarrollo.
T2. Acta de levantamiento de requerimientos
En DOITLAB una vez levantados los requerimientos se deben redactar formalmente. Se adjunta en el APÉNDICE 8. Acta levantamiento de requerimientos.
T3. Análisis
Gracias al levantamiento de requerimientos e investigación acerca de los procesos que se llevan a cabo en los vehículos, se pudo llegar a la concepción de los diferentes que manejará el sistema.
T4. Diseño diagramas de flujo
En el diseño es importante determinar los distintos módulos que conforman la plataforma para luego realizar los diagramas de flujo que describen su comportamiento.
IMAGEN 6. Diagrama de flujo
Fuente: elaboración propia
T5. Documentación de diagramas de flujo
La documentación y el diseño de los diagramas de flujo se encuentra adjunto en el ANEXO 7. Caso de uso taller, ANEXO 8. Caso de uso propietario, ANEXO 9. Caso de uso concesionario.
T6. Diseño del modelo entidad relación
Esta labor se realizó el modelo entidad relación presentado a continuación: IMAGEN 7. Diagrama entidad relación
Fuente: Elaboración propia
T7. Diseño de modelo relacional
Esta labor se realizó el modelo entidad relación presentado a continuación: IMAGEN 8. Diagrama relacional
Fuente: Elaboración propia
T8. Creación de base de datos en el hosting
Una vez definidos los modelos se genera la base de datos en el hosting hostmonster en postgres.
IMAGEN 9. Base de datos MyCarCV
Los temas 9, 10, 11, 12 se encuentran definidos en el APÉNDICE 9. Documentación arquitecturas
T13. Valoración de la plataforma
Esta valoración fue hecha en el módulo, donde se ajustaron los valores de acuerdo a las características del proyecto. Aquí es donde fue utilizada la ruta crítica presentada anteriormente y fórmulas matemáticas que ayudan a determinar los valores importantes en la estimación de un proyecto de software
Se adjunta ANEXO 10. Módulo de valoración MYCARCV
T14. Diseño de las herramientas de querying
Antes del proceso de codificación fue necesario realizar las sentencias SQL que se encuentran en el APÉNDICE 10. Concesionario y APÉNDICE 11. Taller.
A5. PLATAFORMA DE INTERCAMBIO DE INFORMACIÓN, GESTIÓN DE PROCESOS TURÍSTICOS
T1. Levantamiento de requerimientos
Los requerimientos para esta plataforma fueron levantados en un formato propio de la institución, en él se detallan por puntos cada uno de las requerimientos y son revisados y aprobados por cada una de las partes.
El método utilizado para esta actividad fue la entrevista directa en este caso con la empresa DOITLAB quienes solicitan el desarrollo.
T2. Acta de levantamiento de requerimientos
En DOITLAB una vez levantados los requerimientos se deben redactar formalmente. Se adjunta en el APÉNDICE 12. Acta levantamiento de requerimientos.
T3. Análisis
Gracias al levantamiento de requerimientos se pudo llegar a la concepción de los diferentes módulos que manejará el sistema.
T4. Diseño diagramas de flujo
En el diseño es importante determinar los distintos módulos que conforman la plataforma para luego realizar los diagramas de flujo que describen su comportamiento.
IMAGEN 10. Diagrama de flujo
Fuente: elaboración propia
T5. Documentación de diagramas de flujo
La documentación y el diseño de los diagramas de flujo se encuentra adjunto en el ANEXO 11. Caso de uso ofertantes, ANEXO 12. Caso de uso turista.
T7. Diseño de modelo relacional
Esta labor se realizó el modelo entidad relación presentado a continuación: IMAGEN 11. Diagrama relacional
Fuente: Elaboración propia
T8. Creación de base de datos en el hosting
Una vez definidos los modelos se genera la base de datos en el hosting hostmonster en postgres.
IMAGEN 12. Base de datos Turismo
Fuente: elaboración propia
Los temas 9, 10, 11, 12 se encuentran definidos en el APÉNDICE 13. Documentación arquitecturas
T13. Valoración de la plataforma
Esta valoración fue hecha en el módulo, donde se ajustaron los valores de acuerdo a las características del proyecto. Aquí es donde fue utilizada la ruta crítica presentada anteriormente y fórmulas matemáticas que ayudan a determinar los valores importantes en la estimación de un proyecto de software
Se adjunta ANEXO 13. Módulo de valoración turismo
T14. Diseño de las vistas
Antes del proceso de codificación fue necesario realizar las vistas, para tener una idea general de la estructura de la plataforma. En el APÉNDICE 14. Vistas
9. CONCLUSIONES
Al revisar la plataforma de intercambio de información en la web se pudo detectar que no existe actualmente en la empresa un proceso estandarizado para el desarrollo de aplicaciones lo que ocasiona inconvenientes en la calidad del producto y consecuentemente en el mercado del mismo.
Aunque la empresa cuenta con un documento denominado “Manual de
procedimientos de desarrollo”, el mismo es muy básico y no establece todos los lineamientos que deben ser llevados a cabo en un proceso de Ingeniería del software. Lo anterior, dificulta el acoplamiento y entendimiento de grupos de trabajo ocasionando retrasos y en algunos casos pérdidas económicas.
La empresa cuenta con un formato para el levantamiento de los requerimientos de manera reflexiva para lograr un producto de calidad, en el cuál se especifica de manera detallada las funcionalidades de cada una de las partes del software pero no esta formalizado con la documentación de la ingeniería del software.
La empresa cuenta con una plantilla de Excel denominado Módulo de Valoración para la estimación y planeación de proyectos que permite llevar a cabo proyectos de manera responsable y exitosa ya que se tienen algunos valores aproximados sobre los tiempos y los costos pero no está formalizado con la documentación de la ingeniería del software.
Dentro de la Ingeniería del software no se estaba llevando a cabo el diseño, comunicaciones y componentes necesarios para la construcción y ejecución del producto y los mismos hacen parte del proceso llamado arquitectura del software.
La falta de normas y estándares de codificación no permite al equipo de trabajo hacer un ejercicio ordenado donde se puedan obtener algunos beneficios como la reutilización, el fácil entendimiento y en la mayoría de los casos un mantenimiento rápido.
10. RECOMENDACIONES
Se hace necesario que la empresa diseñe un procedimiento formalizado que recopile todos los pasos o lineamientos necesarios para realizar un proceso de Ingeniería del software cuyo alcance debe ir desde el levantamiento de la información hasta la puesta en marcha del software; considerando la formalización como la aprobación de los documentos por parte de los directivos y su correspondiente socialización con los equipos de trabajo encargados de esta función.
Dada la tecnología actual se recomienda que al interior de la empresa se realice un estudio y se automatice la implantación de algunos aplicativos que den apoyo a procesos como la modelación, codificación, gestión y prototipado, esto con el fin agilizar el trabajo del equipo.
Se deben implementar estrategias de comunicación entre el equipo de trabajo y su líder (reuniones periódicas y programadas), donde se puedan dar a conocer los inconvenientes encontrados en el proceso, su incidencia en el desarrollo y planteamiento de alternativas de solución.
El buen seguimiento de la ingeniería del software dentro de la organización permitirá en un futuro tener procesos estandarizados, equipos de trabajo acoplados, desarrollos con precisión y calidad, fácil adaptabilidad y mantenimiento y posteriormente reutilización de código.