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
11. BIBLIOGRAFÍA........................................................................................................58
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
IMAGEN 12. Base de datos Turismo………………………………………………….57
LISTA TABLAS
TABLA 1. Libro de actividades………………………………………………………..42
TABLA 2. Costos por perfil profesional………………………………………………42
TABLA 3. Costos Generales…………………………………………………………..43
TABLA 4. Actividades, tiempos y costos……………………………………………..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.
3 de 1.000
2. DEFINICIÓN DE LAS LÍNEAS DE INTERVENCIÓN
Desarrollo de software y sistemas de informació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.
El RUP marco de procesos de Rational Method Composer proporciona:
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.
Gestión de bases de datos.
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 dividir 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
T1. Levantamiento de requerimientos
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
T19. Generación manual de usuario
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
T19. Generación manual de usuario
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
Fuente: DOITLAB
TABLA 3. Costos Generales
Fuente: DOITLAB
TABLA 4. Actividades, tiempos y costos
Fuente: DOITLAB
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
Fuente: http://info-bonedjosu.wikispaces.com/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
Se adjunta ANEXO 6. Módulo de valoración GELLA.
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
Fuente: elaboración propia
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.
11. BIBLIOGRAFÍA
(s.f.).
Introducción a los sistemas de bases de datos . (2001). Pearson Educación .
Agiles, P. (s.f.). proyectosagiles.org. Recuperado el 22 de Marzo de 2013, de
http://www.proyectosagiles.org/que-es-scrum)
Aguilera López, P. (2008). Informática 4o E.S.O. Editex.
Brito, N. (2009). Manual de desarrollo web con Grails. Imaginaworks Software
Facto.
Centro de estudios siperurocenter . (2005). De Informatica Bloque Especifico.
España.
científicas, C. s. (2006). La Información especializada en Internet: directorio de
recursos de interés académico y profesional. Madrid: CSIC-Dpto. de
Publicaciones.
Cobo, A. (2005). PHP y MySql Tegnologias para el desarrollo de aplicaciones web.
España.
G.Quintana. (2008). Aprende SQL.
Hernández Orallo, E. (s.f.). El lenguaje unificado de modelo (UML). 6.
IBM. (s.f.). International Business Machines.
IBM International Business Machines. (s.f.). IBM . Recuperado el 22 de Marzo de
2013, de http://www-01.ibm.com/software/awdtools/rup/
Luján Mora, S. (2012). Programación de aplicaciones web: Historia, principios
básicos y clientes web. San Vicente (Alicante): Editorial Club Universitario.
Minera, F. (s.f.). Desarrollador Web. Buenos aires: Manuales Users.
PMP. (2004). Overview of the PMBOK.
Postgres. (s.f.). Postgres . Recuperado el 22 de Marzo de 2013, de
http://www.postgresql.org.es/sobre_postgresql
Roger S, P. (2002). Ingenieria del software, Un enfoque practico.
Sánchez Maza, M. Á. (2012). JavaScript. España: Innovación Y Cualificación.
Software Engineering Institute . (s.f.). SEI. Recuperado el 22 de Marzo de 2013, de
http://www.sei.cmu.edu/tsp/
Sommerville, I. (2005). Ingenieria del Software . Madrid .
Vértice, E. (2009). Diseño básico de páginas web en HTML. España: Equipo
Vértice.
Xhafa, F. (454). Aplicaciones distribuidas en Java con tecnologia RMI. Madrid:
Delta publicaciones.
Top Related