analizar, diseÑar y desarrollar el software de …

57
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

Upload: others

Post on 01-Jul-2022

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ANALIZAR, DISEÑAR Y DESARROLLAR EL SOFTWARE DE …

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

Page 2: ANALIZAR, DISEÑAR Y DESARROLLAR EL SOFTWARE DE …

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

Page 3: ANALIZAR, DISEÑAR Y DESARROLLAR EL SOFTWARE DE …

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

Page 4: ANALIZAR, DISEÑAR Y DESARROLLAR EL SOFTWARE DE …

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

Page 5: ANALIZAR, DISEÑAR Y DESARROLLAR EL SOFTWARE DE …

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

Page 6: ANALIZAR, DISEÑAR Y DESARROLLAR EL SOFTWARE DE …

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.

Page 7: ANALIZAR, DISEÑAR Y DESARROLLAR EL SOFTWARE DE …

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.

Page 8: ANALIZAR, DISEÑAR Y DESARROLLAR EL SOFTWARE DE …

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

Page 9: ANALIZAR, DISEÑAR Y DESARROLLAR EL SOFTWARE DE …

- 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

Page 10: ANALIZAR, DISEÑAR Y DESARROLLAR EL SOFTWARE DE …

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.

Page 11: ANALIZAR, DISEÑAR Y DESARROLLAR EL SOFTWARE DE …

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

Page 12: ANALIZAR, DISEÑAR Y DESARROLLAR EL SOFTWARE DE …

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

Page 13: ANALIZAR, DISEÑAR Y DESARROLLAR EL SOFTWARE DE …

2. DEFINICIÓN DE LAS LÍNEAS DE INTERVENCIÓN

Desarrollo de software y sistemas de información.

Page 14: ANALIZAR, DISEÑAR Y DESARROLLAR EL SOFTWARE DE …

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.

Page 15: ANALIZAR, DISEÑAR Y DESARROLLAR EL SOFTWARE DE …

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.

Page 16: ANALIZAR, DISEÑAR Y DESARROLLAR EL SOFTWARE DE …

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.

Page 17: ANALIZAR, DISEÑAR Y DESARROLLAR EL SOFTWARE DE …

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

Page 18: ANALIZAR, DISEÑAR Y DESARROLLAR EL SOFTWARE DE …

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.

Page 19: ANALIZAR, DISEÑAR Y DESARROLLAR EL SOFTWARE DE …

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.

Page 20: ANALIZAR, DISEÑAR Y DESARROLLAR EL SOFTWARE DE …

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:

Page 21: ANALIZAR, DISEÑAR Y DESARROLLAR EL SOFTWARE DE …

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

Page 22: ANALIZAR, DISEÑAR Y DESARROLLAR EL SOFTWARE DE …

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

Page 23: ANALIZAR, DISEÑAR Y DESARROLLAR EL SOFTWARE DE …

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:

Page 24: ANALIZAR, DISEÑAR Y DESARROLLAR EL SOFTWARE DE …

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://

Page 25: ANALIZAR, DISEÑAR Y DESARROLLAR EL SOFTWARE DE …

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.

Page 26: ANALIZAR, DISEÑAR Y DESARROLLAR EL SOFTWARE DE …

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.

Page 27: ANALIZAR, DISEÑAR Y DESARROLLAR EL SOFTWARE DE …

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

Page 28: ANALIZAR, DISEÑAR Y DESARROLLAR EL SOFTWARE DE …

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.

Page 29: ANALIZAR, DISEÑAR Y DESARROLLAR EL SOFTWARE DE …

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.

Page 30: ANALIZAR, DISEÑAR Y DESARROLLAR EL SOFTWARE DE …

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.

Page 31: ANALIZAR, DISEÑAR Y DESARROLLAR EL SOFTWARE DE …

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.

Page 32: ANALIZAR, DISEÑAR Y DESARROLLAR EL SOFTWARE DE …

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)

Page 33: ANALIZAR, DISEÑAR Y DESARROLLAR EL SOFTWARE DE …

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

Page 34: ANALIZAR, DISEÑAR Y DESARROLLAR EL SOFTWARE DE …

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

Page 35: ANALIZAR, DISEÑAR Y DESARROLLAR EL SOFTWARE DE …

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

Page 36: ANALIZAR, DISEÑAR Y DESARROLLAR EL SOFTWARE DE …
Page 37: ANALIZAR, DISEÑAR Y DESARROLLAR EL SOFTWARE DE …

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.

Page 38: ANALIZAR, DISEÑAR Y DESARROLLAR EL SOFTWARE DE …

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

Page 39: ANALIZAR, DISEÑAR Y DESARROLLAR EL SOFTWARE DE …

TABLA 3. Costos Generales

Fuente: DOITLAB

TABLA 4. Actividades, tiempos y costos

Fuente: DOITLAB

Page 40: ANALIZAR, DISEÑAR Y DESARROLLAR EL SOFTWARE DE …

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.

Page 41: ANALIZAR, DISEÑAR Y DESARROLLAR EL SOFTWARE DE …

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.

Page 42: ANALIZAR, DISEÑAR Y DESARROLLAR EL SOFTWARE DE …

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

Page 43: ANALIZAR, DISEÑAR Y DESARROLLAR EL SOFTWARE DE …

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.

Page 44: ANALIZAR, DISEÑAR Y DESARROLLAR EL SOFTWARE DE …

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.

Page 45: ANALIZAR, DISEÑAR Y DESARROLLAR EL SOFTWARE DE …

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.

Page 46: ANALIZAR, DISEÑAR Y DESARROLLAR EL SOFTWARE DE …

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.

Page 47: ANALIZAR, DISEÑAR Y DESARROLLAR EL SOFTWARE DE …

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

Page 48: ANALIZAR, DISEÑAR Y DESARROLLAR EL SOFTWARE DE …

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

Page 49: ANALIZAR, DISEÑAR Y DESARROLLAR EL SOFTWARE DE …

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.

Page 50: ANALIZAR, DISEÑAR Y DESARROLLAR EL SOFTWARE DE …

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.

Page 51: ANALIZAR, DISEÑAR Y DESARROLLAR EL SOFTWARE DE …

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.

Page 52: ANALIZAR, DISEÑAR Y DESARROLLAR EL SOFTWARE DE …

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.

Page 53: ANALIZAR, DISEÑAR Y DESARROLLAR EL SOFTWARE DE …

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

Page 54: ANALIZAR, DISEÑAR Y DESARROLLAR EL SOFTWARE DE …

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.

Page 55: ANALIZAR, DISEÑAR Y DESARROLLAR EL SOFTWARE DE …

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.

Page 56: ANALIZAR, DISEÑAR Y DESARROLLAR EL SOFTWARE DE …

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.

Page 57: ANALIZAR, DISEÑAR Y DESARROLLAR EL SOFTWARE DE …

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.