Propuesta para Trabajo de Grado



Yüklə 435,76 Kb.
səhifə1/10
tarix01.11.2017
ölçüsü435,76 Kb.
#25557
  1   2   3   4   5   6   7   8   9   10


CIS0910IS05

ConstruColectiva:

Guía metodológica para la gestión de proyectos de software

basados en metodologías ágiles, utilizando ambientes de

desarrollo colaborativo. Caso de estudio: GForge

John Eddie Díaz Agudelo

Juan Felipe Olaya Figueroa

PONTIFICIA UNIVERSIDAD JAVERIANA

FACULTAD DE INGENIERIA

CARRERA DE INGENIERIA DE SISTEMAS

BOGOTÁ, D.C.

2010.

CIS0910IS05

ConstruColectiva:

Guía metodológica para la gestión de proyectos de software

basados en metodologías ágiles, utilizando ambientes de

desarrollo colaborativo. Caso de estudio: GForge



Autor(es):

JOHN EDDIE DÍAZ AGUDELO

JUAN FELIPE OLAYA FIGUEROA

MEMORIA DEL TRABAJO DE GRADO REALIZADO PARA CUMPLIR UNO DE LOS REQUISITOS PARA OPTAR AL TITULO DE INGENIERO DE SISTEMAS



Director

MARIA CONSUELO FRANKY



Jurados del Trabajo de Grado

DIEGO FERNANDO MARÍN

MARÍA LUISA LAMPREA ORDOÑEZ

PONTIFICIA UNIVERSIDAD JAVERIANA

FACULTAD DE INGENIERIA

CARRERA DE INGENIERIA DE SISTEMAS

BOGOTÁ, D.C.

ENERO, 2010



PONTIFICIA UNIVERSIDAD JAVERIANA

FACULTAD DE INGENIERIA

CARRERA DE INGENIERIA DE SISTEMAS

Rector Magnífico

Joaquín Emilio Sánchez García S.J.



Decano Académico Facultad de Ingeniería

Ingeniero Francisco Javier Rebolledo Muñoz



Decano del Medio Universitario Facultad de Ingeniería

Padre Sergio Bernal Restrepo S.J.



Directora de la Carrera de Ingeniería de Sistemas

Ingeniero Luis Carlos Díaz Chaparro



Director Departamento de Ingeniería de Sistemas

Ingeniero Germán Alberto Chavarro Flórez



Artículo 23 de la Resolución No. 1 de Junio de 1946

“La Universidad no se hace responsable de los conceptos emitidos por sus alumnos en sus proyectos de grado. Sólo velará porque no se publique nada contrario al dogma y la moral católica y porque no contengan ataques o polémicas puramente personales. Antes bien, que se vean en ellos el anhelo de buscar la verdad y la Justicia”

AGRADECIMIENTOS

A nuestras familias por el apoyo incondicional que nos han brindado desde que iniciamos nuestras carreras profesionales. A Maria Consuelo Franky, por sus incesables sesiones de correcciones a todos los documentos que fueron fruto de este trabajo de grado, y también por sus charlas y anécdotas en la gestión de proyectos de software basados en metodologías ágiles. ¡De verdad, muchas gracias profe!, por ese ánimo en investigar este tema tan asombroso que se tiene en la Ingeniería de Sistemas y por sembrarnos la curiosidad y el interés en el apasionante mundo de las metodologías ágiles. A Miguel Eduardo Torres por su colaboración en la revisión de la guía metodológica y sus consejos para la realización de este trabajo de grado. A Ángela María Suarez por su ayuda brindada en lo referente de las buenas prácticas de redacción y por sus consejos brindados en este tema tan importante. Muchas gracias a todos, este proyecto de grado está dedicado a todos ustedes…

John Eddie Díaz y Juan Felipe Olaya

Contenido

INTRODUCCIÓN 1

I - DESCRIPCIÓN GENERAL DEL TRABAJO DE GRADO 3

I.1. Oportunidad ó Problemática 3



I.1.1. Descripción del contexto 3

I.1.2. Formulación 4

I.2. Descripción del Proyecto 4



I.2.1. Visión global 4

I.2.2. Justificación 5

I.2.3. Objetivo general 5

I.2.4. Objetivos específicos 5

I.2.5. Impacto 6

II - MARCO TEÓRICO 7

II.1. Marco Contextual 7



II.1.1. Ambiente de desarrollo colaborativo (CDE) 7

II.1.2. Metodologías ágiles 7

II.1.2.1. Manifiesto ágil 9

II.1.2.2. Principios del manifiesto ágil 10

II.1.3. Resultados de la encuesta Agile Adoption Rate Survey Results: February 2008 11

II.1.4. Comparación de los ambientes de desarrollo colaborativo (CDE) 18

II.1.5. Unified Software Development Process (UP) 28

II.2. Marco Conceptual 29



II.2.1. Equipos virtuales 29

II.2.2. Workflow 29

II.2.3. Tracker 30

II.2.4. Ítem 30

II.2.5. Sistema de control de versiones 31

II.2.6. Administración de la configuración del software (SCM) 32

II.2.7. Bug 33

II.2.8. GForge 33

II.2.9. Mailman 33

II.2.10. Stakeholders 34

III - PROCESO 35

III.1. Metodología Propuesta 35

III.2. Desarrollo del Proyecto 38

III.3. Definición de trackers y sus workflows para la gestión de un proyecto de software bajo metodologías ágiles en GForge 50



III.3.1. Tracker 1: Análisis de requerimientos y casos de uso 51

III.3.2. Tracker 2: Planeación del desarrollo del proyecto 52

III.3.3. Tracker 3: Arquitectura y diseño 53

III.3.4. Tracker 4: Desarrollo 54

III.3.5. Tracker 5: Pruebas y proceso de integración 55

III.3.6. Tracker 6: Entrega al cliente y pruebas por parte del cliente 57

III.3.7. Tracker 7: Bugs 58

III.3.8. Tracker 8: Extensiones 59

III.3.9. Tracker 9: Puesta en operación 60

III.4. Reflexión Metodológica 61



IV - RESULTADOS Y RECOMENDACIONES 64

IV.1. Resultados 64




IV.1.1. Evaluación de la guía metodológica 68

IV.2. Recomendaciones 69



V - CONCLUSIONES Y TRABAJOS FUTUROS 69

V.1. Conclusiones 69

V.2. Trabajos Futuros 71

VI - REFERENCIAS Y BIBLIOGRAFÍA 72

VI.1. Referencias 72

VI.2. Bibliografía 77

VII- ANEXOS 78

Anexo 1. Glosario 78

Anexo 2. Formato de Encuesta 78

Anexo 3. Encuesta diligenciada 78



Lista de Tablas

Tabla 1 - Información general de los CDEs 20

Tabla 2 - Herramientas para el público o desarrolladores de los CDEs 24

Tabla 3 – Herramientas para los administradores del proyecto en los CDEs 26

Tabla 4 - Herramientas personales para los desarrolladores que hay en los CDEs 27

Tabla 5 - Relación de los procesos con los roles definidos en la guía metodológica 43

Tabla 6 - Estados del workflow del tracker: Análisis de requerimientos y casos de uso 52

Tabla 7 - Estados del workflow del tracker: Planeación del desarrollo del proyecto 53

Tabla 8 - Estados del workflow del tracker: Arquitectura y diseño 54

Tabla 9 - Estados del workflow del tracker: Desarrollo 55

Tabla 10 - Estados del workflow del tracker: Pruebas y proceso de integración 56

Tabla 11 - Estados del workflow del tracker: Entrega al cliente y pruebas por parte del cliente
58


Tabla 12 - Estados del workflow del tracker: Bugs
59


Tabla 13 - Estados del workflow del tracker: Puesta en operación 61

Tabla 14 - Resultados de los documentos que soportan la guía metodológica 68

Lista de Ilustraciones

Ilustración 1 - Agile software development 8

Ilustración 2 - Iteration release 9

Ilustración 3 - Productividad con las metodologías ágiles 12

Ilustración 4 - Calidad con las metodologías ágiles 13

Ilustración 5 - Satisfacción de los stakeholders con las metodologías ágiles 14

Ilustración 6 - Tasas de éxito en las metodologías ágiles por el nivel de distribución en los miembros del equipo 15

Ilustración 7 - Costo en el desarrollo del sistema con las metodologías ágiles 16

Ilustración 8 - Razones por adoptar las metodologías ágiles 17

Ilustración 9 - Stakeholders de una organización 34

Ilustración 10 - Requerimientos evolutivos e iterativos 44

Ilustración 11 - Cono de incertidumbre 45

Ilustración 12 - Los contratos del proyecto 46

Ilustración 13 - Iteraciones de la metodología propuesta 48

Ilustración 14 - Workflow del tracker: Análisis de requerimientos y casos de uso 51

Ilustración 15 - Workflow del tracker: Planeación del desarrollo del proyecto 52

Ilustración 16 - Workflow del tracker: Arqitectura y diseño 53

Ilustración 17 - Workflow del tracker: Desarrollo 54

Ilustración 18 - Workflow del tracker: Pruebas y proceso de integración 56

Ilustración 19 - Workflow del tracker: Entrega al cliente y pruebas por parte del cliente 57

Ilustración 20 - Workflow del tracker: Bugs 58

Ilustración 21 - Workflow del tracker: Extensiones 59

Ilustración 22 - Workflow del tracker: Puesta en operación 60

Ilustración 23 - ConstruColectiva Work Breakdown Structure 65

ABSTRACT

This undergraduate final project defines methodological guidelines for the software projects management based on agile methodologies, profiting the advantages offered by the collaborative development environments, like GForge [GForge Group, 2007]. This kind of environments provides the necessary tools to monitor the different activities required during the development of a software project, such as project planning, requirements elicitation, use cases implementation, testing, installation, training and support.



RESUMEN

Este trabajo define una guía metodológica para la gestión de proyectos de software basados en metodologías ágiles, aprovechando las ventajas ofrecidas por los ambientes de desarrollo colaborativo, como GForge [GForge Group, 2007]. Esta clase de ambientes proveen las herramientas necesarias para supervisar las actividades requeridas durante el desarrollo de un proyecto de software, tales como la planeación de un proyecto, levantamiento de requerimientos, implementación, pruebas, instalación, capacitación y soporte.



RESUMEN EJECUTIVO

Luego de la crisis del software en el año 1968, se abrió paso a la creación de una de las disciplinas más relevantes en el área de la computación, esto es, la ingeniería de software, a partir de la cual se originaron procesos que permitirían adelantar un proyecto, con la estimación precisa de tiempo y recursos.

Si bien, desde su creación, las metodologías de software han contribuido a la optimización de los proyectos, aún no han podido alcanzar la meta para la cual fueron creadas, y la razón, como se desprende de los estudios que soportan el presente trabajo, se resume a continuación.

En primer lugar, la mayor causa del fracaso de los proyectos se le atribuye a errores de carácter humano, los cuales en su mayoría se deben a la deficiente comunicación entre los involucrados en el proceso. Esto, sumado con los altos costos derivados de la centralización de la información, que se maneja en forma independiente, provoca fallas que ponen en riesgo la calidad del proyecto.

Empeora el panorama anterior, el hecho de que los gerentes, no manejan con suficiencia las herramientas de desarrollo colaborativo, ya sea porque las desconocen o porque ignoran sus funcionalidades.

Como respuesta a esta neurálgica situación, ConstruColectiva propone para gestionar un proyecto de software, la aplicación de las metodologías ágiles a través de un ambiente de desarrollo colaborativo.

En este entendido, se elaboró una Guía Metodológica, que permite que el gerente conozca el estado en que se encuentra las actividades en curso, y así se logre un apoyo eficaz en el seguimiento del proyecto.

Para iniciar la construcción de la mencionada guía, se realizó una extensa investigación, enfocada principalmente en las metodologías ágiles y los ambientes de desarrollo colaborativo, por esta razón se analizaron diversas fuentes, dentro de las que sobresalen Manifesto for Agile Software Development [Beedle, y otros, 2001]; Agile and Iterative Development: A Manager's Guide, Craig Larman [Larman, 2004];  The unified software development process [Jacobson, Booch, & Rumbaugh, 1999]; Agile RUP: Experiences from the trenches: [Lines, Barnes, Holmes, & Ambler, 2008].

Una vez recopilada la documentación necesaria para soportar el documento líder del trabajo, se consolidaron los pilares bajo los cuales estaría fundamentada la Guía Metodológica y se procedió a realizar la instalación y configuración del ambiente de desarrollo colaborativo GForge, junto con su respectivo manual de instalación.

Cabe señalar, que se escogió la mencionada herramienta, por las ventajas que ofrece a los intereses del proyecto, como se infiere del estudio comparativo llevado a cabo por ConstruColectiva, en el que se toman diversas aplicaciones y se concluye que GForge resulta favorable al proyecto pues se puede descargar e instalar en un servidor de la organización, por esta razón ofrece una mayor confidencialidad, además permite la automatización de los procesos de seguimiento del proyecto y cuenta con licencia GPL (GNU General Public License) [Free Software Foundation, Inc, 2009], que permite el aprovechamiento de los servicios ofrecidos por la herramienta sin generar costos si el número de usuarios no excede de quince.

Claro lo anterior, se avanzó en la Guía Metodológica, pues se procedió a definir los procesos que harían parte del documento, cada uno con sus correspondientes trackers y workflows; para esto, se consideró apropiado tomar los procesos estándar: planeación del desarrollo del proyecto, levantamiento de requerimientos, diseño, implementación de los casos de uso, pruebas, instalación, capacitación y soporte, y compararlos con los propuestos por los Core Workflows [Jacobson, Booch, & Rumbaugh, 1999] para, a partir de aquí, consolidar los procesos que adecuados a los requerimientos de la propuesta.

Es así como la guía se inicia con el análisis de requerimientos y casos de uso, luego la  planeación del desarrollo, arquitectura y diseño, la etapa de desarrollo, pruebas y proceso de integración, continúa la entrega y pruebas por parte del cliente, bugs, extensiones y por último la puesta en operación. Para finalizar esta etapa, y teniendo consolidada esta estructura, se indicaron los  ítems que harían parte de  cada uno de los trackers.

Acto seguido, teniendo en cuenta los lineamientos y pilares de las metodologías ágiles, se definió la iteración, la cual, para los efectos de la propuesta, se entiende como elaboración y entrega, lo que se aborda de forma clara y detallada en el capítulo Desarrollo del proyecto del presente documento.

Finalizado lo anterior, se inició el procedimiento de registro de la Guía Metodológica, la cual se complementó a través de los siguientes anexos: (i) documentos auxiliares, los cuales corresponden a los ítems y si se requiere a los trackers, (ii) manual de instalación de la guía, (iii) inventario de textos o índice, y (iv) textos de apoyo, que soportan del modelo de gestión.

Culminada la etapa de estructuración y documentación, se dio paso a la etapa de pruebas, esto con la finalidad de determinar la viabilidad y éxito de la Guía Metodológica, para esto, como primera medida, se diseñó una encuesta, cuya finalidad era responder a los objetivos planteados en la presentación del trabajo, por medio de la cual, básicamente se probó la eficacia del trabajo propuesto.

Es así como el experto en software de la reconocida empresa Heinsohn Business Tecnology, Ing. Diego Marín, líder de Calidad, pudo verificar el comportamiento de la herramienta bajo el uso de la guía.

Con la finalidad de obtener otro punto de vista, el Ing. Miguel Eduardo Torres, profesor investigador del área de Ingeniería de Software de la Pontificia Universidad Javeriana, analizó el documento de la guía y extendió dos sugerencias, respecto de las cuales se tomaron las respectivas medidas, esto, en aras de contribuir al mejoramiento de la calidad del  trabajo que se presenta.

Adicional a lo anterior, Ing. María Consuelo Franky, PhD. en Informática, docente investigadora, quien cuenta con 10 años de experiencia en el área de proyectos empresariales de tecnología, realizó seguimiento constante al desarrollo de la Guía Metodológica, y rindió concepto favorable frente a la propuesta considerando además de vital importancia, su implementación como texto ilustrativo en Tópicos avanzados en Ingeniería de Sofware, materia que se dicta en la maestría Ingeniería de Sistemas y Computación de la Pontificia Universidad Javeriana, a partir del primer semestre de 2010.  

Para terminar, luego de observar el comportamiento de la herramienta GForge, bajo la   utilización de la Guía Metodológica para la gestión de Proyectos de Software, se llegó a las siguientes conclusiones:

Si lo que se pretende es lograr la gestión de un proyecto de software de forma ágil, no es absolutamente indispensable acudir a las políticas oficiales establecidas por una determinada organización.  

Bajo este mismo lineamiento, se requiere, la automatización en los procesos de la gestión, pruebas, integración continua, entregas periódicas y funcionales en cada iteración, equipos orgullosos y comprometidos con su trabajo, código de mejor calidad, documentación útil, respuesta frente a cambios en los requerimientos y una atenta colaboración del
cliente.

Por último, un ambiente de desarrollo colaborativo como GForge resulta considerablemente útil para la gestión de los proyectos de software bajo metodologías ágiles porque automatiza los procesos de seguimiento al avance del proyecto y como consecuencia, éste se termina a tiempo, sin exceder el presupuesto estimado, aumenta la calidad del software y


como resultado, se satisfacen los requerimientos del cliente.

Yüklə 435,76 Kb.

Dostları ilə paylaş:
  1   2   3   4   5   6   7   8   9   10




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©muhaz.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin