PONTIFICIA UNIVERSIDAD CATÓLICA DEL PERÚ
FACULTAD DE CIENCIAS E INGENIERÍA
HERRAMIENTA PARA GESTION DE PROYECTOS BASADA EN
XPDL PARA EL PROYECTO COMPETISOFT
Análisis y Diseño
Tesis para optar por el Título de Ingeniero Informático, que presenta los bachilleres:
Anita Yesenia Silva Lazo
Sara Mirella Villegas Ortega
ASESOR: Abraham Eliseo Dávila Ramón
2011
RESUMEN
En el ambiente de negocios de hoy, más que nunca las organizaciones dependen
del buen resultado de sus proyectos para estar en condiciones de alcanzar una
multitud de objetivos; desde objetivos estratégicos hasta las mejoras operacionales
diarias.
El mundo en la actualidad está cambiando a velocidades inusitadas y las
organizaciones deben reaccionar rápidamente abordando proyectos que las ayuden
a alcanzar nuevos objetivos. La gestión de proyectos basada en una metodología
ordenada, sistemática y rigurosa facilita el trabajo en los proyectos que enfrentan
cada día las empresas y sus administradores. El adecuado conocimiento y
aplicación de alguna metodología para la gestión de proyectos permite crear un
ambiente de trabajo propicio y con menor variabilidad para obtener resultados
efectivos.
XPDL (XML Process Definition Language) es un lenguaje para la definición de un
flujo de trabajo propuesto por la WfMC (Workflow Management Coalition). El
objetivo de este lenguaje es proporcionar marco de referencia estándar que permita
la importación y exportación de las definiciones de procesos.
El presente trabajo de tesis presenta el desarrollo de una herramienta software
basada en el lenguaje XPDL, la cual fue concebida con el propósito de realizar el
seguimiento y control de cualquier tipo de proyecto de software, gestionando su
avance, plazos, esfuerzos, recursos y ofreciendo la información necesaria sobre
cada elemento para su administración oportuna, permite crear la instancia de una
metodología a través de una interfaz grafica, así como apoyar con el manejo de
otros elementos críticos en los proyectos informáticos como es la gestión de la
configuración.
Cabe resaltar que el presente proyecto es parte del componente de desarrollo de
herramientas que viene realizando el Grupo de Investigación y Desarrollo en
Ingeniería de Software y Sistemas de Información de la PUCP como parte del
Proyecto COMPETISOFT (Mejora de Procesos para Fomentar la Competitividad de
la Pequeña y Mediana Industria de Software de Ibero América).
DEDICATORIA
A Dios, que me dio la fuerza y salud para todo lo emprendido.
A mis padres y hermana, Victoria, Agustín y Sofía quienes me enseñaron desde
siempre a luchar para alcanzar mis metas, por el apoyo y los buenos consejos.
A todos mis verdaderos amigos que están siempre conmigo y me fortalecen con su
amistad. A Sara, Evelyn y Carlos por apoyarme en cada momento y por lograr
juntos este objetivo.
Anita Silva Lazo
A Dios, por permitirme llegar a este momento tan especial en mi vida.
A mis padres, Natalia y Luis por ser los pilares mas importantes de mi vida que día
a día me demuestran su amor, cariño y apoyo para seguir adelante.
A quien siempre me ha acompañado en cada uno de mis sueños, mi hermana
Liliana.
A todos mis amigos y en especial a Anita, Evelyn y Carlos por brindarme su apoyo y
por lograr juntos el presente trabajo.
Sara Villegas Ortega
AGRADECIMIENTOS
A la Pontifica Universidad Católica del Perú y en especial a la Facultad de Ciencias
e Ingeniería que nos dieron la oportunidad de formar parte de ellas.
Un agradecimiento muy especial al Ing. Abraham Dávila, nuestro asesor, por su
amistad, apoyo, dedicación y orientación para el desarrollo del presente trabajo de
tesis y llegar a la culminación del mismo.
A toda las personas que de una forma o de otra nos brindaron su apoyo para la
realización del presente trabajo.
RECONOCIMIENTOS
El presente trabajo está enmarcado dentro del proyecto 506AC0287
COMPETISOFT (Mejora de Procesos Para Fomentar la Competitividad de la
Pequeña y Mediana Industria de Software de Ibero América) del programa CYTED
(Ciencia y Tecnología para el Desarrollo), parcialmente financiado por PUCP- VRI -
2009-0008 PYMESOFT: Incremento de la productividad de pymes desarrolladoras
de software: determinación de patrones de problemas y soluciones en un contexto
de mejora de procesos (COMPETISOFT Perú 2da Fase) y con el apoyo del
Departamento de Ingeniería de la Pontificia Universidad Católica del Perú.
Índice General
Introducción 1
Capitulo 1: Generalidades 3
1.1. Gestión de Proyectos. 3
1.1.1. Definición de proyectos 3
1.1.2. Definición de Gestión de proyectos. 5
1.1.3. Problemática de los proyectos. 6
1.1.4. Procesos según PMI. 9
1.2. Proyectos Informáticos 11
1.2.1. Procesos Principales. 11
1.2.2. Procesos de Apoyo. 13
1.2.3. Procesos Organizativos. 13
1.3. Gestión de la Configuración del Software (GCS) 14
1.3.1. Definición de la Gestión de la Configuración del Software. 14
1.3.2. Conceptos en Gestión de la Configuración del Software. 17
1.4. RUP 18
1.5. Lenguaje XPDL. 21
1.6. Proyecto COMPETISOFT 23
1.6.1. COMPETISOFT- CYTED. 24
1.6.1.1. Modelo de procesos (MoProSoft) 24
1.6.2. COMPETISOFT- PUCP. 28
1.6.3. COMPETISOFT- PUCP Tools. 29
1.7. Revisión de Productos. 34
1.7.1. Tecnológico 34
1.7.2. Descripción y Sustentación de la solución 40
1.7.3. Características principales de la herramienta propuesta 41
Capítulo 2: Análisis 44
2.1. Requerimientos Funcionales. 44
2.2. Requerimientos No Funcionales 48
2.3. Definición de la metodología utilizada para el Proyecto 48
2.4. Análisis de la Solución 50
2.4.1. Actores del sistema 50
2.4.2. Casos de Uso 51
2.5. Diagrama de Clases de Análisis 63
2.6. Restricciones del proyecto 66
2.6.1. Definición de Metodología de Desarrollo usada en la herramienta 66
2.6.2. Gestión de Configuración 68
2.7. Administración de proyectos 69
2.8. Administración de proyectos específicos 71
2.9. Gestión de la Configuración 72
Capitulo 3: Diseño 74
3.1. Arquitectura de la Solución 74
3.1.1. Patrón de Diseño Modelo Vista Controlador 77
3.1.2. Subsistemas del Software 78
3.1.3. Diagrama de Clases de Diseño 80
3.1.4. Diagrama de Secuencia 83
3.2. Diseño de Interfaz Gráfica 93
3.2.1. Criterios para el diseño de la interfaz gráfica 93
3.2.2. Estructura general del sitio 94
3.2.3. Diseño de prototipos del sistema 95
Capitulo 4: Observaciones, conclusiones y recomendaciones 115
4.1. Observaciones 115
4.2. Conclusiones 117
4.3. Recomendaciones 118
Bibliografía 119
ANEXOS
A. Diagrama de Casos de Uso.
B. Diagrama de Clases Análisis.
C. Diccionario de Datos Clases Análisis.
D. Diagrama de Clases Diseño.
E: Diagrama de Secuencia.
F. Plan de Pruebas del Sistema EACS Project Manager.
G. Pruebas integrales del Sistema EACS Project Manager.
Índice de Figuras
Figura 1.1. Estadísticas de proyectos de software [Standish Group, 2009]. ........................... 8
Figura 1.2. Grupos de Procesos en la Gestión de Proyectos ................................................ 11
según PMI [Adaptado por EACS]. ......................................................................................... 11
Figura 1.3. Estructura de la norma técnica peruana [Francisco Ruiz, 2007]. ........................ 12
Figura 1.4. Grafo de evolución de versiones [SWEBOK, 2004]. ........................................... 18
Figura 1.5. Los flujos de trabajo en cada una de las fases e iteraciones del RUP
[JACOBSON, 2000] ............................................................................................................... 20
Figura 1.6. Modelo de Referencia de Procesos [MOPROSOFT]. ......................................... 27
Figura 1.7. Relación entre las 3 herramientas del proyecto COMPETISOFT PUCP ............ 31
Figura 2.1. Diagrama de Casos de uso de la herramienta EACS Project Manager.............. 52
Figura 2.2. Diagrama de Clases de Análisis. ......................................................................... 64
Figura 2.3. Grafico con los conceptos principales usados en EACS Project Manager ......... 73
Figura 3.1. Diagrama de capas de la herramienta. ............................................................... 75
Figura 3.2. Esquema del patrón MVC. ................................................................................... 78
Figura 3.3. Diagrama de Componentes de la Aplicación. ..................................................... 79
Figura 3.4. Diagrama de Clases de Diseño – Proyectos. ...................................................... 81
Figura 3.5. Diagrama de Clases de Diseño – Actividades. ................................................... 82
Figura 3.6. Diagrama de Clases de Diseño – Artefactos. ...................................................... 83
Figura 3.7. Diagrama de Secuencia Carga Inicial. ................................................................ 84
Figura 3.8. Diagrama de Secuencia para Registrar Proyecto. .............................................. 86
Figura 3.9. Diagrama de Secuencia para Registrar Actividades. .......................................... 87
Figura 3.10. Diagrama de Secuencia para Ingresar Horas Trabajadas en las Actividades. . 89
Figura 3.11. Diagrama de Secuencia para Registrar Artefactos. .......................................... 91
Figura 3.12. Diagrama de Secuencia para Crear Versión Artefacto. .................................... 92
Figura 3.13. Cabecera para las páginas del sistema ............................................................ 94
Figura 3.14. Mapa de Navegación del sistema...................................................................... 95
Figura 3.15. Pantalla Ingreso al Sistema. .............................................................................. 96
Figura 3.16. Pantalla Proyectos. ............................................................................................ 96
Figura 3.17. Pantalla Nuevo Proyecto. .................................................................................. 97
Figura 3.18. Pantalla Mis Actividades. ................................................................................... 98
Figura 3.19. Pantalla Ver Horas Trabajo. .............................................................................. 99
Figura 3.20. Pantalla Usuarios. ............................................................................................ 100
Figura 3.21. Pantalla Nuevo Usuario. .................................................................................. 100
Figura 3.22. Pantalla Empresas. .......................................................................................... 101
Figura 3.23. Pantalla Nueva Empresa. ................................................................................ 102
Figura 3.24. Pantalla Reportes. ........................................................................................... 103
Figura 3.25. Pantalla Reporte Detallado del Proyecto. ........................................................ 103
Figura 3.26. Pantalla Reporte Esfuerzo. .............................................................................. 105
Figura 3.27. Pantalla Listado de Personal del Proyecto. ..................................................... 106
Figura 3.28. Pantalla Listado de Actividades. ...................................................................... 107
Figura 3.29. Pantalla Nueva Actividad. ................................................................................ 108
Figura 3.30. Pantalla Ver Artefactos por Actividad. ............................................................. 108
Figura 3.31. Pantalla Listado de Artefactos. ........................................................................ 109
Figura 3.32. Pantalla Nuevo Artefacto. ................................................................................ 110
Figura 3.33. Pantalla Descarga Artefacto. ........................................................................... 111
Figura 3.34. Pantalla Reservar Artefacto. ............................................................................ 111
Figura 3.35. Pantalla Subir Artefacto. .................................................................................. 112
Figura 3.36. Pantalla Versiones del Artefacto...................................................................... 113
Figura 3.37. Pantalla Diagrama de Gantt. ........................................................................... 114
Índice de Códigos
Código 1.1. Estructura definición de procesos [MJS]. ........................................................... 32
Código 1.2. Estructura de las actividades definidas en una metodología [MJS]. .................. 33
Código 1.3. Estructura de los artefactos definidos en una metodología [MJS]. .................... 34
Código 2.1. XPDL de la Metodología - JAMESA. .................................................................. 67
Código 2.2. XPDL de las Actividades - JAMESA................................................................... 67
Código 2.3. XPDL de los Artefactos - JAMESA. .................................................................... 67
Código 2.4. XPDL para administrar los Artefactos. ............................................................... 68
Código 2.5. XPDL para administrar las Versiones de los Artefactos. ................................... 69
Índice de Tablas
Tabla 1.1. Comparación de MoProSoft con otros modelos. .................................................. 24
Tabla 1.2. Características de las herramientas existentes en el mercado. ........................... 35
1
Introducción
Un proyecto se define según el Instituto de Gestión de Proyectos (PMI de sus siglas
en inglés de Project Management Institute), como un esfuerzo temporal y único que
se realiza para lograr un objetivo, este objetivo puede ser un producto, servicio o
resultado. En general se puede decir que la realización de uno o más proyectos
puede cambiar el status-quo de una organización y que un producto puede ser el
esfuerzo de una sola persona o bien de varios miles de individuos y durar unos
pocos días o tomar varios años; los proyectos pueden involucrar a una sola unidad
de una organización o bien pueden traspasar las fronteras organizacionales. Por
tanto, en proyectos no triviales una mala planificación o ejecución puede ocasionar
grandes pérdidas para las organizaciones involucradas.
Las empresas relacionadas a las tecnologías de información (TI) realizan
principalmente sus actividades basadas en proyectos informáticos de diversos
tipos, que van desde proyectos de construcción de software a proyectos de
implantación de grandes productos comerciales; pasando por una gama variada de
posibilidades. Las empresas de TI, ejecutan los proyectos sea para clientes internos
en su propia organización o clientes externos.
2
La realidad del sector de TI, en cuanto a la gestión de proyectos, es deficiente pero
puede ser mejorado con la adopción de buenas prácticas y el soporte de
herramientas adecuadas.
La realidad del sector de TI también se puede mejorar con la adopción de modelos
de procesos que han sido previamente probados y que ayude a la realización de la
mejora continúa. Este último hecho es una tendencia hoy en el mundo informático
con modelos como CMMI, ITIL, MoProSoft, ISO9000, etc.
En el mercado existen diversas soluciones para el manejo de proyectos, sin
embargo la mayoría están focalizadas en estos aspectos específicos de la gestión y
no integradas a otros productos para el análisis y mejora de los procesos
involucrados en los proyectos informáticos.
El proyecto EACS Project Manager (las iniciales de los autores) es una iniciativa
para la construcción de una herramienta que soporte en principio las tareas usuales
de la gestión de un proyecto informático e integre la gestión de la Configuración
para facilitar el trabajo de los equipos de desarrollo.
El presente trabajo está enmarcado dentro del proyecto COMPETISOFT (mejora de
procesos para fomentar la competitividad de la pequeña y mediana industria de
software de Iberoamérica) del programa CYTED (Ciencia y Tecnología para el
Desarrollo) y apoyado parcialmente por la Dirección de Gestión de Investigación
(2009-0008 PYMESOFT) y el Departamento de Ingeniería de la Pontificia
Universidad Católica del Perú.
Este documento presenta el análisis y diseño de la herramienta EACS Project
Manager, para Gestión de Proyectos basado en XPDL, dentro de la plataforma PS-
PUCP y que se complementa con la tesis de Evelyn Ocampo Moreno y Carlos
Gonzáles Cajahuanca que presentan la construcción, pruebas e integración.
3
Capitulo 1: Generalidades
En este capítulo se presenta los aspectos básicos necesarios para entender el
desarrollo del proyecto EACS Project Manager. Se cubren los temas de Gestión de
Proyectos, Proyectos Informáticos, el Lenguaje XPDL, el proyecto COMPETISOFT-
PUCP y la revisión de proyectos existentes.
Este capítulo se ha desarrollado de manera conjunta con Evelyn Ocampo Moreno y
Carlos Gonzáles Cajahuanca, quienes realizaron la tesis complementaria, el cual se
presenta en ambos documentos para comprender el contexto en el que se
desarrolla el Proyecto.
1.1. Gestión de Proyectos.
En esta sección se presentan aspectos relacionados a la gestión de proyectos,
definición de proyectos, problemática de los proyectos y procesos según el PMI.
1.1.1. Definición de proyectos
Existen diversas definiciones de proyectos, a continuación citaremos algunas de
ellas:
4
Proyecto es un esfuerzo temporal que se lleva a cabo para crear un producto,
servicio resultado único. Completar con éxito un proyecto significa cumplir con
los objetivos dentro de las especificaciones técnicas, los costos y los plazos
establecidos. Un proyecto tiene un propósito único, algo que no ha sido
realizado de la misma manera anteriormente y es, por lo tanto, único y distinto
[PMBOK, 2008].
Proyecto es un trabajo no repetitivo, que ha de planificarse y realizarse según
unas especificaciones técnicas determinadas, y con objetivos de costos,
inversiones y plazos prefijados. También se define un proyecto como un trabajo
de volumen y complejidad considerables, que ha de realizarse con la
participación de varios departamentos de la empresa y tal vez también con la
colaboración de terceros [BOVERI, 1990].
Proyecto es una operación de envergadura y complejidad notables, de carácter
no repetitivo, que se acomete para realizar una obra de importancia [PEREÑA,
1996].
Los proyectos tienen las siguientes características:
Son temporales, definen un comienzo y un final, es decir una duración finita.
Temporal no necesariamente significa de corta duración; muchos proyectos
duran varios años. En cada caso, sin embargo, la duración de un proyecto es
limitada. Los proyectos no son esfuerzos continuos. Además lo temporal no es
aplicable generalmente al producto, servicio o resultado creado por el proyecto
[PMBOK, 2008].
Crean productos entregables únicos. Productos entregables son productos,
servicios o resultados [PMBOK, 2008].
Se elaboran gradualmente, ésta es una característica de los proyectos que
acompaña a los conceptos de temporal y único. La elaboración gradual
significa desarrollar en pasos e ir aumentando mediante incrementos [PMBOK,
2008].
Tienen como finalidad alcanzar su objetivo y luego concluirlo. El proyecto
concluye cuando se alcanzan sus objetivos específicos o éste se cancela
[PMBOK, 2008].
Son importantes y que suponen un esfuerzo notable para la entidad que lo
acomete porque requiere inversiones cuantiosas [PEREÑA, 1996].
Pueden involucrar una sola persona o varios miles.
Pueden involucrar a distintas áreas de una organización.
5
Se planifican, ejecutan y controlan.
Cuentan con un patrocinador, quien es la persona o grupo que proporciona los
recursos financieros, en efectivo o en especie, para el proyecto [PMBOK,
2008].
Todo proyecto está destinado a finalizar en un plazo predeterminado,
consistiendo dicha finalización en la entrega de un producto [PEREÑA, 1996].
El proyecto está en continua evolución y se caracteriza por un notable
dinamismo derivado de su carácter de operación inusual tendente a crear algo
nuevo [PEREÑA, 1996].
Algunos proyectos suponen un fuerte riesgo, económico o de otra naturaleza,
estando sometidos a contingencias difícilmente dominables e incluso azarosas
[PEREÑA, 1996].
1.1.2. Definición de Gestión de proyectos.
Existen diversas definiciones de gestión de proyectos, a continuación citaremos
algunas de ellas:
La Gestión de Proyectos es la aplicación de conocimientos, habilidades,
herramientas y técnicas a las actividades de un proyecto para cumplir con los
requisitos del mismo. Se logra mediante la aplicación e integración adecuadas
de los 42 procesos de la dirección de proyectos, agrupados lógicamente, que
conforman los 5 grupos de procesos.
Los grupos de procesos de la gestión de proyectos son: inicio, planificación,
ejecución, seguimiento y control, y cierre. Dirigir un proyecto por lo general
implica:
- Identificar requisitos.
- Abordar las diversas necesidades, inquietudes y expectativas de los
interesados según se planifica y efectúa el proyecto.
- Equilibrar las restricciones contrapuestas del proyecto que se
relacionan, entre otros aspectos, con: el alcance, la calidad, el
cronograma, el presupuesto, los recursos y el riesgo.
El proyecto específico influirá sobre las restricciones en las que el director del
proyecto necesita concentrarse.
La relación entre estos factores es tal que si alguno de ellos cambia, es
probable que al menos otro se vea afectado. Por ejemplo, un adelanto en el
6
cronograma a menudo implica aumentar el presupuesto, a fin de añadir
recursos adicionales para completar la misma cantidad de trabajo en menos
tiempo. Si no es posible aumentar el presupuesto, se puede reducir el alcance
o la calidad, para entregar un producto en menos tiempo por el mismo
presupuesto. Los interesados en el proyecto pueden tener opiniones diferentes
sobre cuáles son los factores más importantes, lo que crea un desafío aún
mayor. Cambiar los requisitos del proyecto puede generar riesgos adicionales.
El equipo del proyecto debe ser capaz de evaluar la situación y equilibrar las
demandas a fin de entregar un proyecto exitoso [PMBOK, 2008].
La Gestión de Proyectos es un conjunto de métodos y técnicas de gestión que,
inspirados por el sentido común y el rigor profesional, están encaminadas a
mejorar, definir, planificar, impulsar y controlar las operaciones. La gestión de
proyectos representa un todo completo y coherente. No se trata de tomar una
terminología vistosa ni de aplicar esporádicamente técnicas puntuales o
instrumentos parciales. Si se quiere obtener un efecto perceptible y duradero
en la calidad de la gestión, hay que adoptar una metodología en su conjunto,
prestando especial atención a los aspectos culturales y de fondo pero sin
descuidar los de naturaleza operativa e instrumental.
Un pilar de la gestión profesional del proyecto es el empleo de técnicas de
gestión conocidas a un terreno “sui generis”, pero variando sensiblemente la
forma de aplicar dichas técnicas y poniendo el énfasis en ciertos puntos que
son especialmente sensibles en las operaciones discontinuas.
La correcta Gestión de los Proyectos será una inversión de máxima
rentabilidad al evitar caer en todo ese conjunto de causas de fracaso o
ineficacia. Como es lógico, no se puede considerar la metodología de gestión
como un fin en sí misma, sino como una ayuda encaminada a facilitar la
consecución de los resultados [PEREÑA, 1996].
1.1.3. Problemática de los proyectos.
En la actualidad un alto porcentaje de proyectos en tecnologías de información y
comunicación tienen fracasos financieros, debido a la mala dirección de los mismos
o a que los actores perdieron el horizonte al momento de poner en práctica sus
planes de acción.
7
Información reciente sobre la gerencia de proyectos de TI muestra que [STANDISH
GROUP, 2009]:
El mundo gasta casi $10 trillones en proyectos de toda clase.
Más de 16 millones de personas están involucradas en proyectos en el mundo.
Tom Peters considerado por muchos el padre de la administración moderna y
de la innovación aplicada en su obra 50 claves para la dirección de proyectos
dice: “Para ganar hoy debemos dominar el arte del proyecto”.
Un estudio realizado por Standish Group analizó el desarrollo de 8000 proyectos de
software, realizados por 350 empresas diferentes y concluyó que solamente el 32%
de los proyectos fueron exitosos y el 24% fueron cancelados antes de su
terminación, costando billones de dólares.
El estudio identificó como principales causas de los problemas:
Especificaciones y requerimientos cambiantes o incompletos.
Deficiencias en la aplicación de procesos y desconocimiento del ciclo de vida
del proyecto.
Falta de involucramiento de usuarios.
Falta de recursos.
Expectativas no realistas.
Falta de soporte ejecutivo.
Falta de planificación.
Falta de gestión de las tecnologías de la información.
Desconocimiento tecnológico.
Los criterios para determinar el éxito de un proyecto son:
Sin desviaciones en las fechas previstas.
Sin desviaciones en los costos estimados.
Que el producto final cubra las expectativas y necesidades del cliente.
Que funcione correctamente.
Los factores que afectan el éxito de los proyectos según Baker, Murphy y Fisher,
citados por McManus [MCMANUS, 2003], quienes estudiaron 650 proyectos en los
Estados Unidos son los siguientes:
Compromiso con el proyecto en el establecimiento de cronogramas,
presupuestos y objetivo de desempeño técnicos.
8
Frecuente retroalimentación de la organización patrocinadora.
Compromiso del cliente y del patrocinador, comprometido en el establecimiento
de cronogramas, presupuestos y objetivos de desempeño técnicos.
Estructura de la organización adecuada al equipo del proyecto.
Participación del equipo del proyecto en la determinación del cronograma y los
presupuestos.
Entusiasmo del patrocinador.
Deseo del patrocinador de crear las capacidades internas.
Cambios de personal durante el proyecto.
Falta de una adecuada identificación de riesgos.
Falta de seguimiento periódico del proyecto, control de la planificación y
revisiones para corregir las desviaciones.
La Figura 1.1 muestra las estadísticas de proyectos de software según estudios
realizados por Standish Group.
Figura 1.1. Estadísticas de proyectos de software [Standish Group, 2009].
Algunas de las deficiencias frecuentes en gestión de proyectos son: [PEREÑA,
1996]
Ausencia total de planificación, lo que hace que las diversas tareas se vayan
acometiendo desordenadamente y a medida que se presentan dificultades.
9
Pese a que cada responsable actúa con celeridad cuando se le encarga algo,
el proyecto acumula retrasos por falta de planificación y por la dificultad
existente de tomar decisiones.
Las decisiones se toman en órganos colectivos, faltando una cabeza que de
unidad e impulse el desarrollo del proyecto.
Los plazos son enormemente dilatados.
Las deficiencias de gestión no sólo desembocan en grandes problemas de
plazo sino en defectos de calidad que obligan a cancelar el proyecto.
1.1.4. Procesos según PMI.
El Project Management Institute (PMI) es una asociación sin fines de lucro, líder en
la Industria de la Gerencia de Proyectos, dedicada al progreso y fomento de su
aplicación efectiva a través de la práctica. Fundada en 1969 en Pensilvania,
Estados Unidos de Norteamérica, actualmente está presente en 172 países, con
más de 420,000 miembros y profesionales certificados, organizados en 250
Capítulos [PMI].
Entre sus principales objetivos se encuentran formular estándares profesionales,
generar conocimiento a través de la investigación, y promover la Gestión de
Proyectos como profesión a través de sus programas de certificación.
La Guía del PMBOK es un estándar en la gestión de proyectos desarrollado por el
Project Management Institute (PMI). PMI considera la norma como una referencia
fundamental en el ámbito de la dirección de proyectos para sus certificaciones y
programas de desarrollo profesional.
El PMBOK es una colección de procesos y áreas de conocimiento generalmente
aceptadas como las mejores prácticas dentro de la gestión de proyectos.
El PMBOK en un estándar reconocido internacionalmente que provee los
fundamentos de la gestión de proyectos que son aplicables a un amplio rango de
proyectos, incluyendo construcción, software, ingeniería, etc.
El PMBOK reconoce 5 grupos de procesos básicos y 9 áreas de conocimiento
comunes a casi todos los proyectos. Los conceptos básicos son aplicables a
proyectos, programas y operaciones.
10
Los cinco grupos de procesos básicos son: [PMBOK, 2008]
Iniciación: aquellos procesos realizados para definir un nuevo proyecto o una
nueva fase de un proyecto ya existente, mediante la obtención de la
autorización para comenzar dicho proyecto o fase.
Planificación: aquellos procesos requeridos para establecer el alcance del
proyecto, refinar los objetivos y definir el curso de acción necesario para
alcanzar los objetivos para cuyo logro se emprendió el proyecto.
Ejecución: aquellos procesos realizados para completar el trabajo definido en el
plan para la dirección del proyecto a fin de cumplir con las especificaciones del
mismo.
Seguimiento y Control: aquellos procesos requeridos para dar seguimiento,
analizar y regular el progreso y el desempeño del proyecto, para identificar
áreas en las que el plan requiera cambios y para iniciar los cambios
correspondientes.
Cierre: aquellos procesos realizados para finalizar todas las actividades a
través de todos los grupos de procesos, a fin de cerrar formalmente el proyecto
o una fase del mismo.
En la Figura 1.2 se muestran los cinco grupos de procesos en la gestión de
proyectos según PMI.
Los procesos se traslapan e interactúan a través de un proyecto o fase. Los
procesos son descritos en términos de: Entradas (documentos, planes, diseños,
etc.), Herramientas y Técnicas (mecanismos aplicados a las entradas) y Salidas
(documentos, productos, etc.).
Las nueve áreas del conocimiento mencionadas en el PMBOK son:
Gestión de la Integración del Proyecto.
Gestión del Alcance del Proyecto.
Gestión del Tiempo del Proyecto.
Gestión de los Costos del Proyecto.
Gestión de la Calidad del Proyecto.
Gestión de los Recursos Humanos del Proyecto.
Gestión de las Comunicaciones del Proyectos.
Gestión de los Riesgos del Proyecto.
Gestión de Adquisiciones del Proyecto.
11
Figura 1.2. Grupos de Procesos en la Gestión de Proyectos
según PMI [Adaptado por EACS].
1.2. Proyectos Informáticos
Los proyectos informáticos de acuerdo al objetivo que se sigue se pueden clasificar
principalmente en proyectos de desarrollo o proyectos de implantación. En
particular en los proyectos de desarrollo de software se ejecutan diversos procesos,
la Norma Técnica Peruana 12207 agrupa las actividades en procesos principales,
procesos de apoyo y procesos organizativos [NTP-ISO/IEC 12207:2006] y los
agrupa como se muestra en la Figura 1.3.
1.2.1. Procesos Principales.
Son los procesos para iniciar o llevar a cabo el desarrollo, operación o
mantenimiento del software.
Los procesos principales son: [NTP-ISO/IEC 12207:2006]
Proceso de adquisición.
Proceso de suministro.
Proceso de desarrollo.
Proceso de operación.
Proceso de mantenimiento.
12
Considerando estos grupos, se desarrolla el proceso de desarrollo, por ser de
mayor interés para ésta tesis.
El proceso de desarrollo contiene las actividades para el análisis de requisitos,
diseño, codificación, integración, pruebas, e instalación y aceptación relativas al
software. El desarrollador selecciona y realiza, o presta apoyo, a las siguientes
actividades de acuerdo con un contrato.
Figura 1.3. Estructura de la norma técnica peruana [Francisco Ruiz, 2007].
Este proceso consta de las siguientes actividades:
Implementación del proceso.
Análisis de los requerimientos del sistema.
Diseño de la arquitectura del sistema.
Análisis de los requerimientos software.
Diseño de la arquitectura del software.
Diseño detallado del software.
13
Codificación y pruebas del software.
Integración del software.
Pruebas de calificación del software.
Instalación del sistema.
Pruebas de calificación del sistema.
Instalación del software.
Soporte a la aceptación del software.
1.2.2. Procesos de Apoyo.
Un proceso de apoyo es el que apoya a otro proceso como parte esencial del
mismo, con un propósito bien definido y contribuye al éxito y calidad del proyecto de
software. Un proceso de apoyo se emplea y ejecuta por otro proceso, según sus
necesidades [NTP-ISO/IEC 12207:2006].
Los procesos de apoyo son: [NTP-ISO/IEC 12207:2006]
Proceso de documentación.
Proceso de gestión de la configuración.
Proceso de aseguramiento de la calidad.
Proceso de verificación.
Proceso de validación.
Proceso de revisión conjunta.
Proceso de auditoría.
Proceso de solución de problemas.
1.2.3. Procesos Organizativos.
Se emplean por una organización para establecer e implementar una infraestructura
constituida por procesos y personal asociado al ciclo de vida y para mejorar
continuamente esta infraestructura. Se usan habitualmente fuera del ámbito de
proyectos y contratos, contribuye a la mejora de la organización [NTP-ISO/IEC
12207:2006].
Los procesos organizativos son: [NTP-ISO/IEC 12207:2006]
Proceso de gestión.
Proceso de infraestructura.
Proceso de mejora de proceso.
Proceso de recursos humanos.
14
Proceso de gestión de activos.
Proceso de gestión del programa de reutilización.
Proceso de ingeniería del dominio.
Considerando estos grupos, se desarrolla el proceso de gestión, por ser de mayor
interés para ésta tesis.
El proceso de gestión contiene las actividades genéricas y tareas que pueden ser
empleadas por cualquier parte que tenga que gestionar sus respectivos procesos.
El gerente es responsable de la gestión del producto, gestión del proyecto y gestión
de las tareas de los procesos aplicables, tales como el de adquisición, suministro,
desarrollo, operación, mantenimiento o soporte.
Este proceso consta de las siguientes actividades:
Inicio y definición del alcance.
Planificación
Ejecución y evaluación.
Finalización.
1.3. Gestión de la Configuración del Software (GCS)
A continuación se revisan diversas definiciones de GCS, sus aspectos funcionales,
los beneficios de su aplicación y se definen los conceptos básicos de esta
disciplina.
1.3.1. Definición de la Gestión de la Configuración del Software.
Existen diversas definiciones de Gestión de Configuración del Software, citaremos
algunas de las más importantes:
El proceso de Gestión de Configuración es aplicar procedimientos técnicos y
administrativos a lo largo del ciclo de vida del software para: identificar, definir y
establecer la línea base de los elementos software en un sistema: controlar
modificaciones y emisiones de los elementos: registrar e informar del estado de
los elementos y peticiones de modificación: asegurar la completitud,
15
consistencia y corrección de los elementos: y controlar el almacenamiento,
manipulación y entrega de los elementos [NTP-ISO/IEC 12207:2006].
Este proceso consta de las siguientes actividades:
- Implementación del proceso.
- Identificación de la configuración.
- Control de la configuración.
- Determinación del estado de la configuración.
- Evaluación de la configuración.
- Gestión de releases y entrega.
La Gestión de la Configuración es el arte de identificar, organizar y controlar las
modificaciones que sufre el software que construye un equipo de
programación. La meta es maximizar la productividad minimizando los errores
[BAB, 1986].
La Gestión de la Configuración es una disciplina de gestión que permite
controlar formalmente la evolución del software, garantizando la viabilidad en el
desarrollo y en el producto y la trazabilidad en el producto [BRYAN-SIEGEL,
1984].
La Gestión de Configuración del Software es una actividad de autoprotección
que se aplica a lo largo del proceso de ingeniería de software. Como el cambio
se puede producir en cualquier momento, las actividades de GCS sirven para
(1) identificar el cambio, (2) controlar el cambio, (3) garantizar que el cambio se
implementa adecuadamente y (4) informar del cambio a todos aquellos a los
que le interese [PRESSMAN, 1998].
La Gestión de la Configuración, es la disciplina que permite identificar la
configuración del sistema en diferentes puntos del tiempo. La implementación
de esta disciplina parte de unos lineamientos administrativos para identificar los
artefactos (ítems) que van a entrar al control de configuración y técnicos para
seleccionar las herramientas de apoyo al control de versiones [SWEBOK,
2004].
16
Gestión de la Configuración es el proceso de identificar y definir los elementos
en el sistema, controlando el cambio de estos elementos a lo largo de su ciclo
de vida, registrando y reportando el estado de los elementos y las soluciones
de cambio, y verificando que los elementos sean correctos y completos [IEEE
Std. 729-1983].
Gestión de la Configuración es una disciplina que aplica conceptos técnicos y
administrativos para identificar y documentar características funcionales y
físicas de un ítem de configuración, controlar cambios en características,
registrar y reportar procesamiento de cambios y estado de la implementación,
verificar adecuación con requerimientos especificados [IEEE Std. 828-1998].
El Instituto de Gestión de la Configuración (Institute of Configuration Management)
[CMII] proporciona la siguiente definición: Gestión de la Configuración es el proceso
de administrar los elementos físicos y los procesos gestionando la información
sobre ellos, incluyendo cambios, y asegurando la conformidad en cada caso. El
ámbito de la Gestión de Configuración incluye toda la información que puede
impactar en la seguridad, la calidad, la planificación, el costo, el beneficio o el
entorno.
El énfasis de la Gestión de configuración esta en:
(1) acomodar el cambio,
(2) optimizar la reutilización de los estándares y mejores prácticas,
(3) asegurar que todos los requerimientos se mantengan claros, concisos y
válidos,
(4) comunicar (1), (2) y (3) a cada usuario de manera exacta y precisamente y
(5) verificar que los resultados sean conformes en cada caso.
El Modelo de Capacidad y Madurez (CMMI, del inglés Capability Maturity Model
Integration), promueve la mejora continua desde (1) hasta (5).
El Cuerpo de Conocimiento de la Ingeniería de Software [SWEBOK 2004] define las
siguientes actividades de la gestión de configuración:
Administración del proceso de gestión de configuración de software
- Contexto y restricciones
- Planificación y Seguimiento
Identificación de la configuración del software
- Ítems a ser controlados
17
- Versiones del software
- Línea base del software
Control de la configuración
- Proceso para cambio
Contabilidad del estado de la configuración
- Información y reportes
Auditorias de la configuración
- Control líneas base
Gestión de liberación y entrega del software
- Definición y pautas
1.3.2. Conceptos en Gestión de la Configuración del Software.
A continuación definimos algunos de los conceptos más importantes en GCS.
Elementos de Configuración de Software o Artefacto: Son todos los productos
utilizados en el proyecto, documentos, código fuente, imágenes, manuales, etc,
cuya evolución interna se desea controlar.
Checkin: Acción acontecida cuando una copia local modificada de un artefacto
es integrada al repositorio, esta actualización del artefacto produce
generalmente una nueva versión del mismo.
Checkout: Acción acontecida cuando se crea una copia local de un artefacto
desde el repositorio, se puede utilizar una versión específica o por defecto la
versión vigente del artefacto, esta copia local se realiza generalmente para
realizar cambios o modificaciones sobre la copia.
Bloqueo: La posibilidad de que varios usuarios necesiten realizar
modificaciones sobre un mismo artefacto, produciría conflictos de versiones. El
bloqueo sobre un artefacto se realiza para evitar estos conflictos, de esta forma
es posible que un solo usuario realice modificaciones sobre un artefacto a la
vez.
Trazabilidad: La posibilidad de crear versiones de un mismo artefacto, hace
necesario la posibilidad de seguir la traza en el histórico de las versiones para
conocer la dependencia entre los artefactos.
Soporte a equipos: Posibilidad de que el equipo de trabajo tenga acceso al
repositorio y facilite la integración de los artefactos y sus cambios.
Versión: es una instancia de un elemento de configuración. La creación y
sucesivas modificaciones de los elementos de configuración pueden ser
visualizadas en un grafo de evolución, como el que se muestra en la Figura 1.4.
18
Los elementos de software evolucionan conforme un proyecto de software
progresa. Una versión es un elemento particular identificado y especificado.
Puede ser tomado como un estado de la evolución del elemento [SWEBOK,
2004].
Revisión: es una nueva versión de un elemento que es propuesta para
reemplazar a la versión anterior del elemento [SWEBOK, 2004].
Variante: es una nueva versión de un elemento que será añadida a la
configuración sin reemplazar a la configuración anterior [SWEBOK, 2004].
Figura 1.4. Grafo de evolución de versiones [SWEBOK, 2004].
1.4. RUP
El Proceso Unificado de Rational (RUP, del inglés Rational Unified Process) es un
proceso de desarrollo de software y junto con el Lenguaje Unificado de Modelado
UML, constituye una de las herramientas más utilizadas para el análisis,
implementación y documentación de sistemas orientados a objetos [JACOBSON,
2000].
RUP es un proceso de desarrollo de software, es una forma disciplinada de asignar
tareas y responsabilidades en una empresa de desarrollo (define quién está
haciendo qué, cuándo lo hace y cómo alcanzar cierto objetivo, en este caso el
desarrollo de software [KRUCHTEN]), cuyo objetivo es asegurar la producción de
software de calidad dentro de plazos y presupuestos predecibles. Dirigido por casos
de uso, centrado en la arquitectura, iterativo (mini-proyectos) e incremental
(versiones).
19
RUP tiene 3 importantes características [MELOCHE, 2002]:
Manejo de Casos de Uso: el proceso emplea casos de uso para manejar el
proceso de desarrollo desde el inicio hasta el despliegue.
Centrado en la arquitectura: el proceso busca entender el más significante
aspecto estático y dinámico en términos de arquitectura de software. La
arquitectura está en función de las necesidades del usuario y es capturada en
el núcleo de los casos de uso.
Iterativo e incremental: el proceso reconoce que es práctico dividir largos
proyectos en medianos y pequeños proyectos. Cada pequeño proyecto
comprende una iteración que resulta en un incremento. Una iteración podría
abarcar todos los flujos en el proceso. Las iteraciones son planeadas usando
los casos de uso.
Fases de RUP
El ciclo de vida de RUP, como se conoce al trazado de las actividades de desarrollo
en el tiempo, está dividido en cuatro fases: inicial, elaboración, construcción y
transición.
A continuación se describen los objetivos de cada una de las fases [LARMAN,
2003].
Inicio: alcanzar un acuerdo entre todos los interesados respecto a los objetivos
del ciclo de vida para el proyecto, generando el ámbito del proyecto, el caso de
negocio, síntesis de arquitectura posible y el alcance del proyecto.
Elaboración: establecimiento de la línea base para la arquitectura del sistema y
proporcionar una base estable para el diseño y el esfuerzo de implementación
de la siguiente fase, mitigando la mayoría de los riesgos tecnológicos.
Construcción: completar el desarrollo del sistema basado en la línea base de la
arquitectura.
Transición: garantizar que el software está listo para entregarlo a los usuarios.
Flujos de Trabajo
En RUP se definen nueve flujos de trabajo distintos, separados en dos grupos.
Flujo de Trabajo del Proceso, las etapas de esta sección son:
Modelado de negocio.
Requisitos.
Análisis y Diseño.
20
Implementación.
Pruebas.
Despliegue.
Flujo de Trabajo de Soporte: En esta parte nos encontramos con las siguientes
etapas:
Gestión del cambio y configuraciones.
Gestión del proyecto.
Entorno.
Beneficios fuentes [LARMAN, 2003]
Lograr gobernabilidad en tecnologías de información, mediante control y
monitoreo en el ciclo de vida del desarrollo de software.
Reducir la redundancia e incrementar la productividad.
Promover el uso y re uso de activos en la organización.
Mitigar riesgos en proyectos estratégicos de la organización.
Unir al equipo de trabajo, simplificando su operación y monitoreo.
Eliminar ambigüedades en la comunicación del equipo de trabajo.
Generar calidad en los productos de trabajo.
Automatizar de manera efectiva sus áreas de desarrollo.
En la Figura 1.5 se muestra los flujos de trabajo y las fases de RUP.
Figura 1.5. Los flujos de trabajo en cada una de las fases e iteraciones del RUP
[JACOBSON, 2000]
21
En resumen, la meta de RUP es: [KRUCHTEN, 1999]
Asegurar la producción de un software de alta calidad que reúna las
necesidades de los usuarios finales dentro de un plan y un presupuesto
predecible.
Proveer un enfoque disciplinado para asignar tareas y responsabilidades dentro
del desarrollo del sistema.
Proveer un camino metódico, sistemático para desarrollar, diseñar y validar una
arquitectura.
Reducir en gran medida el riesgo que representa la construcción de sistemas
complejos, porque evoluciona de forma incremental partiendo de sistemas más
pequeños en los que ya se tiene confianza.
1.5. Lenguaje XPDL.
XPDL es un lenguaje para la definición de un flujo de trabajo, posee un formato de
archivo basado en XML que puede ser usado para intercambiar modelos de
procesos de negocio entre distintas herramientas y que utiliza la notación grafica
BPMN para la definición de un flujo de trabajo. Dicho lenguaje puede ser usado
para almacenar o intercambiar modelos de procesos entre distintas herramientas
[XPDL].
Los conceptos básicos que son la base de XPDL versión 1.0 fueron formulados por
la WfMC (Workflow Management Coalition) y las compañías que desarrollaban
herramientas de administración de procesos de negocio y del flujo de trabajo. Estos
conceptos fueron incorporados en un meta-modelo y detallados en un glosario; los
cuales fueron utilizados en la especificación de las diversas interfaces para los
conceptos que formaban parte de un sistema del flujo de trabajo [BPMI].
La primera versión del lenguaje estándar de intercambio denominado WPDL
(Workflow Process Definition Language) fue publicada por la WfMC en 1994 [BPMI],
este lenguaje define la pieza esencial de la administración de procesos, el
intercambio de las definiciones de procesos entre diversas herramientas y también
distintos vendedores.
En Octubre del 2002 fue lanzado oficialmente el XPDL 1.0, este se basó en la
combinación del WPDL en el flujo de trabajo y herramientas de BPMN. XPDL
22
mantuvo la semántica utilizada en WPDL pero definió una nueva sintaxis usando el
esquema XML. Sin embargo, ni WPDL ni XPDL 1.0 propusieron una representación
gráfica específica para el modelado de procesos a pesar que el metamodelo
subyacente para un proceso estaba conformado por actividades (nodos) y caminos
conectores entre ellos (transacciones).
XPDL, estándar que tiene por objetivo el archivo de los diagramas de procesos y el
intercambio o portabilidad de estos entre distintas herramientas. Es un formato de
archivo XML que representa el “dibujo” de la definición del proceso. Contiene el
tamaño y las coordenadas X e Y del nodo. Tiene un concepto de líneas que
señalan el camino a seguir. Los nodos y las líneas tienen atributos que pueden
especificar información ejecutable tales como roles, descripción de actividades,
temporizadores, llamadas a web services, etc. XPDL 2.0 contiene extensiones para
ser capaz de representar todos los aspectos del BPMN (BP Modeling Notation)
[XPDL_DOCS].
El objetivo de XPDL es proporcionar un lenguaje formal que permita la importación
y exportación de las definiciones de procesos tanto a nivel gráfico y semántico entre
una gran variedad de herramientas que hagan uso del mismo lenguaje. Esto ofrece
una manera estándar para representar procesos de tal manera que puedan ser
importados/exportados por cualquier aplicación que implemente el estándar [XPDL].
XPDL, especifica un formato de diseño de los procesos, permite una representación
gráfica de los procesos incluyendo coordenadas X e Y para cada nodo
implementado. Además, los nodos pueden especificar atributos tales como roles,
descripción de actividades, temporizador, llamadas a servicios Web, etc. Suele ser
preferido cuando se trata de implementar procesos o workflows con interacciones
humanas [XPDL].
El 3 de octubre del 2005 fue lanzado XPDL versión 2.0, esta versión contempla los
conceptos de diagramado propuestos por BPMN (Business Process Managment
Notation) y ofrece un meta-modelo extendido que unifica XPDL Y BPMN.
La Object Management Group, Inc. (OMG) junto con la Bussiness Process
Modeling Initiative(BPMI), han desarrollado una notación, denominada BPMN
[BPMN_DOCS], para el modelado de procesos de negocio, BPMN define una
notación para la definición de procesos de negocio, lo que es una plataforma
23
independiente con respecto a definiciones específicas (por ejemplo XPDL) de
procesos de negocio. Esta notación define una representación abstracta para la
especificación de procesos de negocio que se ejecutan dentro de una empresa.
Partiendo de un modelo BPMN se puede obtener, mediante la transformación, la
definición de un proceso de negocio en un lenguaje específico.
BPMN fue desarrollado por BPMI (Business Process Managment Intiative) con la
finalidad de adoptar las técnicas empleadas en las herramientas de
esquematización, así como unificar y extender los gráficos utilizados en ellas para
expresar la semántica de los procesos. BPMN 1.0 fue lanzado en mayo del 2004,
BPMN modela tanto la secuencia de actividades como los datos o mensajes
intercambiados entre los distintos participantes [BPMN].
BPMN es un estándar de notación de proceso, es decir, define la forma gráfica de
diseñar, modelar y construir un proceso, así como los diferentes objetos que se
pueden utilizar para tal efecto. La característica principal y más destacable del
estándar BPMN es que es un tipo de notación común entre las personas de negocio
y los técnicos, construyendo un lenguaje común para intentar unir estos dos
mundos [BPMN].
1.6. Proyecto COMPETISOFT
Es un esfuerzo iberoamericano que busca la competitividad de la industria
desarrolladora de software a través del establecimiento de modelos de calidad en el
proceso software.
COMPETISOFT tiene como objetivo desarrollar un marco metodológico común
ajustado a la realidad socio-económica de las organizaciones desarrolladoras de
software iberoamericanas, orientado a la mejora continua de sus procesos.
Este proyecto utiliza un modelo de procesos, un modelo de evaluación y un modelo
de mejora siendo los modelos MoProSoft, EvalProsoft y Agile SPI los que han sido
tomados como base respectivamente.
En esta sección se presentará COMPETISOFT-CYTED el proyecto en la PUCP
(COMPETISOFT-PUCP) y en particular COMPETISOFT-PUCP tools.
24
1.6.1. COMPETISOFT- CYTED.
El Proyecto Competisoft se ha desarrollado sobre la base de los siguientes
modelos: MoProSoft, EvalProsoft.y Agile SPI.
1.6.1.1. Modelo de procesos (MoProSoft)
Es un modelo que fomenta la estandarización de su operación a través de la
incorporación de buenas prácticas basadas en los modelos y estándares
reconocidos internacionalmente, tales como ISO 9001:2000, CMM-SW, ISO/IEC
15504, PMBOK entre otros, la comparación con estos modelos y estándares se
muestra en la Tabla 1.1
Características ISO 9000:2000 CMM-SW ISO 15540 MoProSoft
1. Para SW. NO SI SI SI
2. Comprensible. NO NO SI SI
3. Procesos. NO SI SI SI
4. Práctico. NO NO NO SI
5. Mejora de procesos orientada al
objetivo de negocio. NO NO SI SI
6. Evaluación con vigencia. SI NO NO NO
7. Aplicable como norma. SI NO NO NO
Modelos
Tabla 1.1. Comparación de MoProSoft con otros modelos [MOPROSOFT, 2003].
La adopción del modelo permite elevar la capacidad de las organizaciones que
desarrollan o mantienen software para ofrecer servicios con calidad y alcanzar
niveles internacionales de competitividad. MoProSoft es también aplicable en áreas
internas de desarrollo de software de las empresas de diversos giros. Actualmente
MoProSoft es una norma mexicana [MOPROSOFT, 2003] y norma técnica peruana.
Las principales características de MoProSoft son: [MOPROSOFT, 2003]
Pocos procesos que abarcan todos los niveles de una organización: directivo,
gerencial y operativo.
Procesos integrados como una red de comunicación.
Definición explícita de roles responsables por las actividades de cada proceso y
la capacitación requerida.
Definición explícita del propósito, objetivos específicos, indicadores, metas
cuantitativas y mediciones para cada proceso.
Definición explícita de productos de entrada, salida e internos de cada proceso
y sus características mínimas.
25
Definición de flujos de trabajo con las actividades, tareas, roles involucrados y
productos generados.
Existencia de una Base de Conocimiento de la organización en la cual se
resguardan todos los productos generados, se administran y se consultan de
acuerdo con los mecanismos definidos.
Definición de las actividades para recaudar lecciones aprendidas y usarlas en
proyectos futuros.
Definición de un mecanismo específico para la reacción a las situaciones
excepcionales durante el desarrollo de las actividades.
Definición explícita de las actividades de verificación, validación y pruebas para
fomentar la calidad de los productos.
Definición explícita de guías de ajuste que sugieren la adaptación de los
procesos a las necesidades de las organizaciones, sin perder de vista el
cumplimiento de los objetivos de los procesos.
Los objetivos y metas cuantitativas son las que guían a los demás procesos y
proyectos y son los que se evalúan para conocer cuantitativamente la
efectividad de los procesos de la organización.
Las sugerencias de mejora a los procesos se identifican y se reportan a los
responsables de gestión de procesos.
Los procesos del modelo pueden ser ajustados con base al contexto de la
organización.
El propósito de contar con un modelo de estas características es apoyar a la
industria de software a incrementar la productividad a un nivel donde la calidad de
los productos de software será la consecuencia natural de la madurez en los
procesos de las organizaciones.
MoProSoft proporciona a las pequeñas y medianas empresas desarrolladoras de
software, un modelo basado en las mejores prácticas internacionales con los
siguientes beneficios:
Mejora la calidad del software producido por la empresa que adopta el modelo.
Eleva la capacidad de las organizaciones para ofrecer servicios con calidad y
alcanzar niveles internacionales de competitividad.
Integra todos los procesos de la organización y mantiene la alineación con los
objetivos estratégicos.
Inicia el camino a la adopción de los modelos ISO 9001 o CMMI.
26
Sirve para implantar un programa de mejora continua.
Facilita la selección de proveedores.
Permite obtener acceso a las prácticas de ingeniería de software de clase
mundial.
Estructura de MoProSoft
El modelo pretende apoyar a las organizaciones en la estandarización de sus
prácticas, en la evaluación de su efectividad y en la integración de la mejora
continua. Sintetiza las mejores prácticas en un conjunto pequeño de procesos que
abarcan las responsabilidades asociadas a la estructura de una organización que
son: la Alta Dirección, Gestión y Operación [MOPROSOFT].
MoProSoft es un modelo integrado donde las salidas de un proceso están
claramente dirigidas como entradas a otros; las prácticas de planeación,
seguimiento y evaluación se incluyeron en todos los procesos de gestión y
administración; por su parte los objetivos, los indicadores, las mediciones y las
metas cuantitativas fueron incorporados de manera congruente y práctica en todos
los procesos; las verificaciones, validaciones y pruebas están incluidas de manera
explícita dentro de las actividades de los procesos; y existe una base de
conocimientos que resguarda todos los documentos y productos generados.
MoProSoft tiene tres categorías de procesos: Alta Dirección, Gestión y Operación
que corresponden a la estructura organizacional de las empresas de software,
como se muestra en la Figura 1.6
A continuación se describen las categorías de procesos:
1. Alta Dirección (DIR): Categoría de procesos que aborda las prácticas de Alta
Dirección relacionadas con la gestión del negocio. Proporciona los lineamientos a
los procesos de la Categoría de Gerencia y se retroalimenta con la información
generada por ellos [MOPROSOFT].
Los elementos de entrada y salida de esta categoría son:
Misión, Visión y Valores.
Objetivos y la forma de medirlos, estrategias.
Procesos con sus indicadores y metas.
Cartera de proyectos.
27
Estructura organizacional y estrategia de recursos.
Presupuesto.
Plan de comunicación con el cliente.
Proceso de mejora continúa.
Figura 1.6. Modelo de Referencia de Procesos [MOPROSOFT].
2. Gestión (GES): Categoría que aborda la práctica de gestión de procesos,
proyectos y recursos en función de los lineamientos establecidos por la alta
dirección. Proporciona los elementos para el funcionamiento de los procesos de la
categoría de operación. Recibe y evalúa la información generada por estos y la
comunica a la alta dirección [MOPROSOFT].
Esta categoría es compuesta por los siguientes elementos:
Definir los elementos de los procesos, calendario y mediciones de procesos.
Plan operativo de bienes, servicios e infraestructura, capacitación de recursos
humanos y ambiente de trabajo.
Plan de manejo de riesgos.
Asignar responsables a proyectos.
Implementación de procesos.
Reporte de mediciones y sugerencias de mejoras.
Plan de evaluación.
28
3. Operación (OPE): Categoría de procesos que aborda las prácticas de los
proyectos de desarrollo y mantenimiento de software. Esta categoría realiza las
actividades de acuerdo a los elementos proporcionados por la Categoría de
Gerencia y entrega a ésta la información y productos generados [MOPROSOFT].
Esta categoría es compuesta por los siguientes elementos:
Definir el protocolo de entrega y tiempo estimado para cada actividad.
Calcular costo estimado del proyecto.
Documentar y realizar las actividades del plan de proyecto, el plan de
desarrollo y evaluar su cumplimiento.
Cierre del contrato.
Generar reporte de mediciones sugerencias de mejora.
1.6.2. COMPETISOFT- PUCP.
Actualmente, el proyecto COMPETISOFT (Proyecto CYTED # 3789) involucra a 13
países (entre los cuales se encuentra el Perú) y más de 100 investigadores.
En el Perú, las empresas vienen introduciendo distintos marcos de referencia para
la mejora de sus procesos, sin embargo estos no calzan con las distintas realidades
que se presentan en las empresas peruanas, por lo que el Perú se convierte en un
escenario propicio para implantar un marco metodológico orientado a las pequeñas
y medianas empresas como el que propone COMPETISOFT.
COMPETISOFT- PUCP es un proyecto desarrollado por el Grupo de Investigación y
Desarrollo en Ingeniería de Software de la Pontificia Universidad Católica del Perú
(GIDIS-PUCP), el cual tiene como objetivo principal implantar un modelo de mejora
de procesos de software en empresas dedicadas a este rubro en el Perú,
planteándose las siguientes metas:
Desarrollar herramientas de apoyo para la implantación del modelo de mejora.
Desarrollar instrumentos de evaluación diagnóstica para COMPETISOFT.
Evaluar el nivel de empresas peruanas según este modelo.
Desarrollar mapeo de procesos entre modelos para apoyar a las empresas a
elegir sus respectivos caminos de mejora.
El conjunto de proyectos que forman parte de COMPETISOFT-PUCP se
encuentran categorizados de la siguiente forma:
29
Plataforma para gestión de procesos: mejorar la gestión de procesos,
metodologías y sus evoluciones en las empresas, utilizando un lenguaje de
definición de procesos (XPDL y BPMN) a través de una plataforma en Internet
que soporte la definición, administración, evolución, evaluación y auditoria de
procesos.
Procesos de mejora en empresas: mejorar la productividad de empresas
desarrolladoras de software bajo el enfoque de adhesión a un modelo de
referencia de procesos (MoProSoft). Este componente del proyecto se realiza a
través de Action-Research, entre empresas y el equipo COMPETISOFT-
PUCP. El esquema de trabajo implica que un estudiante entrenado en el
modelo participe en una empresa como un practicante.
Mapeo de modelos de procesos: determinar la correspondencia entre modelos
de procesos referenciales más importantes respecto del nuevo modelo; para
determinar el grado en que este nuevo modelo se alinea a los modelos
existentes. El trabajo se realizará a través de un estudio comparado entre
distintos modelos de referencia y evaluación a procesos.
Dentro de la primera categoría se encuentra el proyecto PS-PUCP, proyecto que
congrega un conjunto de herramientas que permiten reflejar y manejar los procesos
de una organización, evaluar dichos procesos en base a marcos de referencia y
proveer una auditoria a través del monitoreo y mediciones en todos los pasos de un
proceso.
1.6.3. COMPETISOFT- PUCP Tools.
El presente proyecto forma parte de una serie de herramientas desarrolladas por el
Grupo de Investigación y Desarrollo en Ingeniería de Software (GIDIS) en el
proyecto COMPETISOFT- PUCP Tools.
Los proyectos que se ejecutan son:
Proyecto para la definición de procesos (MJS Process Designer): Permite
definir procesos de una organización para posteriormente construir
metodologías en base a los procesos definidos, se ha tenido que realizar
extensiones al lenguaje XPDL para realizar la definición de las metodologías.
Esta herramienta será desarrollada por el grupo COMPETISOFT – JAMESA.
30
Proyecto para la gestión de proyectos (EACS Project Manager): Permite
administrar proyectos y gestionar la configuración, los proyectos se basan en la
metodología definida en XPDL por el Proyecto para la Definición de Procesos.
Las actividades y artefactos que se generen en el proyecto también hacen
referencia a las actividades y artefactos definidos en la metodología. Esta
herramienta será desarrollada por el grupo COMPETISOFT – EVANCASA.
Proyecto para la evaluación de procesos (LMB Process Audit)): Permite realizar
una evaluación de los procesos definidos a través de los proyectos realizados y
artefactos almacenados de dicho proyecto y usando la metodología definida
por el tipo de proyecto. Es una herramienta basada en el lenguaje XPDL y será
desarrollada por el grupo COMPETISOFT – LIMEBO.
En la Figura 1.7 se muestra la relación entre las 3 herramientas del proyecto
COMPETISOFT-PUCP Tools. La presente herramienta se integrará a las
herramientas: MJS Process Designer y herramienta LMB Process Audit.
La herramienta MJS Process Designer se encargará de generar una metodología
en base a los procesos definidos en la organización evaluada en lenguaje XPDL.
La herramienta EACS Project Manager utilizará las metodologías generadas para
implementar los proyectos, además las actividades y artefactos del proyecto podrán
estar relacionados con las actividades y artefactos provenientes de la metodología.
La herramienta LMB Process Audit utilizará las metodologías y proyectos para
realizar la evaluación y auditoría de las actividades y artefactos, de esta forma se
realizará una comparación entre las actividades y artefactos de la metodología con
los implementados en los proyectos.
31
Figura 1.7. Relación entre las 3 herramientas del proyecto COMPETISOFT PUCP
32
Los siguientes códigos corresponden a la tesis desarrollada por el grupo
COMPETISOFT – JAMESA y la explicación de la estructura y los “tags” se
encuentran en detalle en dicha la tesis [MJS].
En el Código 1.1 se muestra la estructura de definición de procesos en la cual se
define la metodología a seguir en el desarrollo del proyecto. Una metodología se
compone de un conjunto de actividades, estas al relacionarse de forma adecuada
se transforman en un flujo de procesos.
Código 1.1. Estructura definición de procesos [MJS].
33
En el Código 1.2 se muestra el conjunto de actividades definidas en la metodología
asignada al proyecto, sirven para determinar el flujo del proceso de desarrollo del
proyecto, cada actividad define una serie de artefactos a utilizar.
Código 1.2. Estructura de las actividades definidas en una metodología [MJS].
34
En el Código 1.3 se muestra los artefactos definidos en la metodología asignada al
proyecto, sirven para definir los artefactos reales dentro del proyecto, los cuales
serán utilizados para la administración del repositorio.
Código 1.3. Estructura de los artefactos definidos en una metodología [MJS].
1.7. Revisión de Productos.
En esta sección se presenta un breve resumen con las características más
importantes de algunas de las herramientas de Gestión de proyectos que existen en
el mercado así como las características más importantes de la herramienta
propuesta.
1.7.1. Tecnológico
En la Tabla 1.2 se muestra las características más importantes de algunas
herramientas de gestión de proyectos existentes en el mercado.
Características de las herramientas que existen en el mercado:
Microsoft Project (o MSP)
Es un software de administración de proyectos diseñado, desarrollado y
comercializado por Microsoft para asistir a administradores de proyectos en el
desarrollo de planes, asignación de recursos a tareas, dar seguimiento al progreso,
administrar presupuesto y analizar cargas de trabajo [MSPROJECT].
Características:
Almacena la información del proyecto incluyendo fechas, recursos,
asignaciones, duraciones, relaciones entre tareas, secuencias de tareas,
calendarios y más.
35
Características
M
S
P
ro
je
c
t
B
-K
IN
P
R
O
J
E
C
T
M
O
N
IT
O
R
B
U
G
T
R
A
C
K
K
P
L
A
T
O
d
o
tP
ro
je
c
t
P
R
IM
A
V
E
R
A
Administración de Tareas
Retroalimentación de Tareas
Calendarios
Reportes Financieros
Plantillas de Proyectos
Administración de Recursos
Habilidades de los Recursos
Impresión de Reportes y
Documentos
Administración de Artefactos
Notificaciones vía correo
electrónico
*
Sistema en Línea
*
Tabla 1.2. Características de las herramientas existentes en el mercado.
*: característica disponible en MS Project Server.
Calcula la información incluyendo fechas, programaciones, costos, duraciones,
rutas críticas, valor ganado, variaciones y más.
Presenta las vistas de la información que se está recuperando. Se pueden
especificar las vistas, las tablas, los filtros, los grupos, los campos o informes,
dependiendo del aspecto que el modelo del proyecto necesite mostrar.
Diagramas de Gantt e informes.
Configuración de los recursos y asignaciones de los mismos a las tareas.
Comparación de las variaciones entre la información de la tarea planeada y
real.
B-KIN PROJECT MONITOR
Es una herramienta Web comercial que permite monitorizar proyectos, tareas,
programas, personas, en general todos los aspectos y componentes de un proyecto
36
en forma distribuida. Permite también utilizar la herramienta de prueba gratuita por
30 días previa inscripción [B-KIN].
Características:
En línea, permite la administración de proyectos bajo un entorno distribuido, la
herramienta se encuentra alojada en el servidor de B-kin. La herramienta no se
vende, simplemente se cobra una mensualidad por derecho de uso.
Entorno web: aplicación 100% programada para ser utilizada vía Internet. Se
trabaja siempre mediante un navegador (Internet Explorer o Firefox) desde
cualquier lugar con acceso a Internet.
Multiproyecto, permite realizar varios proyectos a la vez y formar grupos.
Integración e-mail: Notificaciones a terceros vía mail de acciones y tareas.
Recepción automática de mails
Colaborativo, permite el flujo de información mediante foros y documentos
compartidos dentro de cada proyecto.
Permite generar una amplia gama de reportes para la revisión permanente y
actualizada de los proyectos y tareas. Así mismo los reportes permiten ser
exportados a formatos PDF, HTML, Microsoft Project y Microsoft Excel.
Módulos complementarios:
Mi BPM: Permite a todos los integrantes del equipo informar sobre la
dedicación de horas de trabajo en los distintos proyectos que se encuentren
asignados.
B-kin Work Report: Permite asignar tareas desde el exterior de la
organización (por ejemplo: tareas de soporte técnico por terceros).
Aplicaciones complementarias:
B-kin Content Manager: Permite administrar los documentos asociados al
proyecto, noticias, foros y crear el portal Web del proyecto.
B-kin Web Galleries: Permite alojar un espacio Web para compartir noticias,
foros y documentación con clientes o personal externo a la organización.
BUGTRACK
Es una herramienta Web comercial que permite administrar proyectos bajo un
entorno distribuido, la herramienta es alquilada mensualmente para su uso y existen
37
dos ediciones: Estándar y Profesional (permite realizar reportes y administrar
repositorios de documentos).
La herramienta permite el seguimiento de un proyecto de software y los posibles
errores de código [BUGTRACK].
Características:
En línea, permite el acceso Web a la herramienta las 24 horas y los 365 días
del año, solo se necesita conexión a Internet.
Permite reportar nuevos errores del proyecto, para la posterior revisión de
estos.
Notificaciones vía correo electrónico cuando se realicen cambios sobre el
proyecto o nuevas notificaciones de errores.
Permite el versionamiento del proyecto.
Administración de roles y acceso por cada proyecto.
Seguridad, todos los enlaces están encriptados bajo seguridad SSL (Secure
Socket Layer).
Exportación de registros para una revisión fuera de línea.
Web-query, permite la ejecución de consultas y la exportación de datos hacia
otras herramientas.
Integración con CVS, Subversión y Microsoft Visual Source Safe. Permitiendo
de esta forma que los miembros del proyecto tengan siempre la versión
correcta del proyecto.
Proyectos compartidos, permite compartir el proyecto con otras compañías que
tengan suscripción con BUGtrack.
KPLATO
Es una herramienta gratuita de escritorio de gestión de proyectos perteneciente a
KOffice (office suite de KDE) [KPLATO].
Características:
Permite mostrar el costo planificado del proyecto a una fecha determinada.
Permite la organización de las tareas mediante en una estructura de división
del trabajo (WBS).
Los recursos son organizados por medio en una estructura de desglose de
recursos (RBS).
38
Los costos son organizados en una estructura de desglose de costos (CBS).
Generación de Diagramas GANTT: tareas dependientes, nombre de la tarea,
recursos asignados, tareas críticas.
Cuadros de dialogo para crear y corregir el proyecto, diversos tipos de tareas,
los calendarios, los recursos, los costos y el progreso del proyecto.
Características no incluidas
No permite restringir las tareas, si ya se había ingresado una tarea no puede
validarse si esta existía.
Revisión en línea.
DotPROJECT
Es una herramienta Web de código abierto para la administración de proyectos. No
existe una empresa encargada de la herramienta debido a que es mantenido por un
grupo de voluntarios y usuarios.
El software es libre de descargarse desde la página Web de la herramienta, la
empresa que desee utilizar la herramienta debe encargarse de hospedarlo en un
servidor de aplicaciones [DOTPROJECT].
Características:
Administración de usuarios, clientes y empresas.
Jerarquía de lista de tareas
Administración de repositorio de archivos.
Permite generar un Calendario en base a los tiempos registrados en las tareas.
Permite asignar recursos no humanos (oficinas, equipamiento, entre otros) a un
proyecto.
Permite la creación de foros de discusión dentro de cada proyecto para
distribuir información y discutir temas relativos al proyecto del foro.
Permite almacenar archivos dentro de un proyecto permitiendo un versionado
básico de los mismos.
Primavera Project Planner
Es el producto más importante de Primavera System Inc, empresa líder de software
de programación de proyectos desde 1982 y, los proyectos de mayor complejidad a
39
nivel mundial se realizan con este software. En octubre del 2008 Oracle adquirió
Primavera System [PRIMAVERA].
Características:
Incorpora todos los elementos necesarios para garantizar un adecuado control
y seguimiento de los proyectos.
Permite la gestión de múltiples proyectos de gran tamaño.
Permite crear grupos de proyectos, dispone de herramientas para realizar
planificaciones y de nivelaciones avanzadas que pueden realizarse de forma
manual o automática. Todo ello dentro de un entorno multiusuario, donde cada
participante puede tener acceso a todo el proyecto o sólo a las partes
deseadas mediante las capas.
La comunicación de los planes entre los diferentes usuarios se realiza
mediante correo electrónico o a través de páginas Web. Esta herramienta
dispone de todas las características de gestión de proyectos que se puedan
necesitar, por complicado que sea el proyecto.
Integra un módulo para gestión de contratos de proyectos, Expedition, y una
herramienta de seguimiento y control de proyectos, Sure Track Project
Manager. Además, esta suite permite la integración con los sistemas ERP más
utilizados en las empresas, como SAP, Oracle, Baan y People Soft.
La aplicación dispone de una opción en la que permite seleccionar el idioma en
el que se desea trabajar, entre otros el castellano. Los informes, calendarios,
etc. aparecerán en el idioma especificado. Sin embargo no puede decirse que
exista realmente una versión en castellano de la aplicación, pues las barras de
menús y los campos seguirán apareciendo en inglés.
Tiene un poderoso acceso Web por todos los usuarios y a todos los proyectos
simultáneamente.
Manejo fácil de Gantt (herramienta gráfica cuyo objetivo es mostrar el tiempo
de dedicación previsto para diferentes tareas o actividades a lo largo de un
tiempo total determinado)
Los principales módulos funcionales de este producto, en constante desarrollo, son:
Cliente Windows orientado a los que ejecutan funciones de programación y/o
control, elaboran cronogramas etc.
40
Cliente Web o My Primavera orientado a los administradores de proyectos o
Project Managers, directivos, ingenieros y técnicos a pie de obra así como a la
realización de análisis del portafolio.
Módulo Contract Manager para controlar los aspectos administrativos y
contractuales de los proyectos.
1.7.2. Descripción y Sustentación de la solución
En esta sección se presenta la definición del producto en base a las necesidades
detectadas en el mercado y definidos en el proyecto COMPETISOFT-PUCP.
Como resultado del análisis de la situación actual, se diseñó la herramienta EACS
Project Manager en busca de satisfacer las necesidades señaladas en capítulos
anteriores. A pesar de existir una gran variedad de herramientas en el mercado, no
se encontró ninguna que abarque el proceso de instanciar una metodología ya
definida por algún proceso, manejo de sus actividades, artefactos de estas
metodologías y gestión de la configuración haciendo uso de un lenguaje formal.
La presente herramienta forma parte del proyecto PS-PUCP la cual se integrará a
las herramientas: MJS Process Designer la que se encargará de generar una
metodología en base a los procesos definidos en la organización evaluada, y
herramienta LMB Process Audit que utilizará las metodologías definidas y los
proyectos registrados para realizar la evaluación, de esta forma se realizará una
comparación entre las actividades y artefactos de la metodología con los
implementados en los proyectos.
Otra de las bondades que la herramienta brinda al usuario es la posibilidad de crear
un proyecto en base a una metodología ya definida en algún proceso. A este
proceso se le denomina crear la instancia de una metodología que consiste en
extraer de la metodología sus actividades y artefactos pertenecientes a un proceso
o marco de referencia con la finalidad de asociarlas a una o más actividades o
artefactos del proyecto creado.
La gestión de la configuración de los artefactos creados en el proyecto tiene un
papel fundamental en la correcta gestión y administración de los proyectos dentro
de una organización. En el módulo de Gestión de la Configuración, el usuario podrá
crear y administrar versiones de los artefactos definidos en el sistema a lo largo del
tiempo.
41
La herramienta EACS Project Manager se desarrollará en plataforma Web para
facilitar la distribución de la aplicación y el acceso de los usuarios desde cualquier
ubicación. Para ello, se utilizará un repositorio de datos común, en el cual se
registrarán versiones de los artefactos manejados por las empresas que tengan
acceso a la aplicación.
EACS Project Manager será desarrollada de tal forma que se pueda integrar a un
conjunto de herramientas de administración de procesos que abarque a todos los
miembros del proyecto PS-PUCP.
La herramienta será desarrollada usando el lenguaje XPDL para el manejo de los
procesos. Con ello, se logra contar con una herramienta que además de satisfacer
las necesidades del usuario, también asegure su interoperabilidad con otras
herramientas que manejen el mismo lenguaje.
1.7.3. Características principales de la herramienta propuesta
Cuando se tiene un proyecto, es necesario tener un control de los recursos, tanto
materiales, humanos y del tiempo. Siempre la necesidad de conocer el avance y
estado de los proyectos que se desarrollan es importante, de otra forma se
propician retrasos, desorganización y por ende pérdidas económicas en el proyecto.
La herramienta propuesta ofrecerá el seguimiento y control de cualquier tipo de
proyecto de software, gestionando su avance, plazos, esfuerzos, recursos
y ofreciendo la información necesaria sobre cada elemento.
Las principales características que la herramienta propuesta contiene, se
mencionan a continuación:
Definir y actualizar un proyecto, actividades, tiempos y recursos.
Permite gestionar múltiples proyectos.
Crear la instancia de una metodología, asociando un proyecto a una
metodología ya definida por algún proceso.
Clasificar los proyectos según una categorización definida por el usuario para
agruparlos o sólo identificarlos.
Permite registrar recursos que participan en determinado proyecto.
Las actividades son las tareas que realizan las personas involucradas en cada
proyecto y éstas tienen las siguientes características:
42
Permite registrar actividades y sus dependencias.
Permite asociar una o más actividades de una metodología ya seleccionada
con una actividad creada en el proyecto.
Registrar el avance de las actividades conforme se desarrollan.
Permite visualizar las actividades agrupadas por las actividades padre a la que
fueron relacionadas.
Mostrar el listado de las actividades del usuario, las cuales pueden ser filtradas
por diferentes criterios de búsqueda.
Permite registrar el esfuerzo realizado por cada usuario para las actividades
seleccionadas.
Permite visualizar las actividades asignadas a un miembro del equipo,
mostrando que actividades son futuras, las que deberían haber empezado y
actividades que les faltan para acabar en diferentes colores, con lo que
permitirá al usuario detectarlas a tiempo. El color rojo indica las actividades
cuyo tiempo transcurrido es mayor o igual al 80% del tiempo programado; si el
tiempo transcurrido ha superado el tiempo programado, esta actividad se
encuentra retrasada. El color anaranjado indica las actividades cuyo tiempo
transcurrido es mayor o igual al 40% y menor o igual al 80% del tiempo
programado. El color azul indica las actividades cuyo tiempo transcurrido es
menor al 40% del tiempo programado.
Los artefactos son todos los elementos producidos en un proyecto y tienen las
siguientes características:
Permite por cada proyecto crear un repositorio para gestionar los artefactos
que se utilicen en el proyecto.
Permite asociar uno o más artefactos de una metodología ya seleccionada con
un artefacto creado en el proyecto.
Permite asociar una o más actividades del proyecto con un artefacto creado en
el proyecto.
Permite gestionar las versiones de los archivos, las cuales son almacenadas en
el repositorio, que controla la creación de nuevas versiones.
El usuario podrá subir y descargar los archivos de acuerdo al acceso registrado
manteniendo la integridad de los elementos.
El usuario podrá reservar y liberar los artefactos de acuerdo al acceso
registrado manteniendo la integridad de los elementos.
Permite evaluar y ejecutar los cambios a estos elementos de forma controlada.
43
Entre otras características encontramos:
Permite registrar empresas.
Permite registrar usuarios al sistema.
Permite validar accesos a los diferentes proyectos.
Permite generar diferentes tipos de reportes.
Permite generar un diagrama de Gantt, en el cual se podrá visualizar el tiempo
programado, las fechas de iniciación y terminación para las diferentes
actividades a lo largo de un tiempo total determinado.
44
Capítulo 2: Análisis
El presente capítulo presenta los aspectos más relevantes de la etapa de análisis,
partiendo de los requerimientos funcionales y no funcionales asociados al sistema,
la definición de requisitos del software (casos de uso y especificaciones) y el
diagrama de clases de análisis.
2.1. Requerimientos Funcionales.
Los requerimientos funcionales definen las funciones que el sistema será capaz de
realizar. Describen las transformaciones que el sistema realiza sobre las entradas
para producir salidas, describen servicios o funciones.
Proyectos
1. El sistema permite el registro, modificación y visualización de proyectos.
2. El sistema permite realizar la búsqueda de proyectos por diferentes filtros.
3. El sistema permite mostrar la relación de proyectos registrados, los cuales
pueden ser ordenados por diferentes criterios.
45
4. El sistema permite crear la instancia de una metodología, asociándola a un
proyecto. Las metodologías ya se encuentran definidas previamente en base a
procesos definidos.
5. El sistema permite ingresar las fechas de inicio y fin referenciales para la
planificación del proyecto, así como administrar los usuarios de un determinado
proyecto.
Actividades
1. El sistema permite el registro y modificación de las actividades.
2. El sistema permite la visualización de los artefactos correspondientes a las
actividades de los proyectos registrados.
3. Las actividades pueden ser registradas de forma independiente o dependiente
de otra actividad del mismo proyecto.
4. El sistema permite mostrar la relación de actividades registradas, las cuales
pueden ser ordenadas por diferentes criterios y se muestran agrupadas por las
actividades padre a la que están asociadas en forma de cascada.
5. El sistema permite asociar las actividades de un proyecto con una o varias
actividades de la metodología elegida para el proyecto.
6. El sistema permite registrar al usuario responsable de la actividad, este usuario
debe ser uno de los registrados para el proyecto,
7. El sistema permite el ingreso de las horas estimadas de las actividades.
8. El sistema permite ingresar el progreso de las actividades, que a su vez
actualizan el avance del proyecto.
9. El sistema permite realizar la búsqueda de todas las actividades asignadas de
un usuario por diferentes filtros.
10. El sistema permite mostrar la relación de actividades que está desarrollando un
usuario asignado como parte del equipo en el proyecto.
11. El sistema permite visualizar la diferencia que existe entre las actividades de un
usuario por colores según la fecha final de cada actividad, de esta manera las
tareas más cercanas a vencerse o vencidas se mostrarán en color rojo, las que
todavía faltan por vencerse (falta más del 20% pero menos de 60% del tiempo
para terminar) se mostrarán en anaranjado y las que faltan por vencerse (más
del 60% del tiempo para terminar) en azul.
12. El sistema permite registrar el número de horas de esfuerzo realizado por el
usuario por cada actividad a la que se encuentra asignado.
13. Permite mostrar la relación de actividades asignadas a un usuario de un
proyecto determinado, mostrando que actividades son futuras, las que deberían
46
haber empezado, las atrasadas y las que inician en el tiempo en diferente
formato, con lo que permitirá al usuario detectarlas a tiempo.
Artefactos
1. El sistema permite crear un repositorio por cada proyecto para gestionar sus
propios artefactos.
2. El sistema permite mostrar la relación de artefactos registrados, los cuales
pueden ser ordenados por los siguientes criterios: nombre y estado.
3. El sistema permite asociar el artefacto de un proyecto con uno o varios
artefactos de la metodología elegida para el proyecto.
4. El sistema permite asociar el artefacto de un proyecto con una o varias
actividades del proyecto.
5. El sistema permite a los usuarios cargar cualquier tipo de archivo que hayan
estado trabajando en su estación local como artefacto del proyecto. Los
archivos cargados generarán una versión inicial del artefacto.
6. El usuario que desee utilizar los artefactos del repositorio, deberá descargar la
versión actual del repositorio (sincronización) a su estación de trabajo local
previa validación de sus privilegios.
7. El sistema brindará acceso de modificación a un solo usuario. Si otro usuario
desea modificar el artefacto, deberá esperar que el usuario que bloqueo el
artefacto lo cargue (desbloqueo) al repositorio para visualizar los cambios que
este ha realizado.
8. El sistema creará una nueva versión del artefacto en cada cambio y carga al
repositorio.
9. El sistema permite mostrar la relación de versiones de artefactos registrados,
los cuales pueden ser ordenados por diferentes criterios, lo que permite la
trazabilidad en el histórico de las versiones para conocer la dependencia que
existe entre los artefactos.
10. El sistema permite la descarga de cualquiera de las versiones del artefacto, por
defecto se descarga la versión actual.
11. El sistema permite cambiar la versión vigente de los artefactos.
Usuarios
1. El sistema permite el registro, modificación y eliminación de usuarios del
sistema, así como, la asignación de roles y perfiles a los usuarios, cada usuario
podrá ver información de gestión de proyectos y acceder a opciones según sus
permisos.
47
2. El sistema permite realizar la búsqueda de usuarios por diferentes filtros.
3. El sistema permite mostrar la relación de usuarios registrados, los cuales
pueden ser ordenados por diferentes criterios.
Empresas
1. El sistema permite el registro, modificación y eliminación de empresas.
2. El sistema permite realizar la búsqueda de empresas por diferentes filtros.
3. El sistema permite mostrar la relación de empresas registradas, las cuales
pueden ser ordenadas por diferentes criterios.
Seguridad
1. El sistema permite validar el ingreso al sistema mediante un usuario y
contraseña.
Reportes
1. El sistema generará el diagrama Gantt de cada proyecto registrado. El cual
permitirá mostrar las actividades según su distribución de acuerdo al
calendario, de manera tal que se pueda visualizar el usuario responsable, el
periodo de duración de cada actividad, sus fechas de iniciación y terminación e
igualmente el tiempo total requerido para la ejecución de una actividad
determinada.
2. El sistema permite generar reportes de proyectos específicos indicando sus
datos principales, el personal involucrado, las actividades y artefactos de este.
3. El sistema permite mostrar reporte de horas de esfuerzo realizado por los
usuarios.
Cabe mencionar que la herramienta desarrollada tiene solo propósitos académicos
con el fin de demostrar que es posible crear una herramienta que puede integrar el
uso de archivos XPDL como definición de procesos para implementar proyectos y
administrar la gestión de la configuración.
La seguridad ha sido implementada solo a nivel de ingreso del usuario al sistema
mediante un usuario y contraseña, además de la sección de gestión de la
configuración donde se verifica el usuario que reserva un artefacto. No se ha
considerado el registro de bitácora (logs) debido a que la herramienta no ha sido
desarrollada con el fin de uso comercial, por lo que no es necesario almacenar los
48
eventos, excepciones y mensajes en archivos de logs para posteriores
evaluaciones o revisiones.
2.2. Requerimientos No Funcionales
Los requerimientos no funcionales tienen que ver con características que de una u
otra forma puedan limitar el sistema, como por ejemplo, el rendimiento (en tiempo y
espacio), interfaces de usuario, fiabilidad (robustez del sistema, disponibilidad de
equipo), mantenimiento, seguridad, portabilidad, estándares, etc. Estos
requerimientos provienen del proyecto COMPETISOFT- PUCP Tools y definidos
por el equipo JAMESA.
1. El sistema es multiempresarial, multiplataforma, compatible con el navegador
de Internet Explorer 8 y Mozila Firefox 3.6.
2. El servidor Web utilizado es el Tomcat versión 5.5.
3. La arquitectura utilizada es de tres niveles, el patrón de diseño a utilizar es
Modelo-Vista-Controlador, el marco de trabajo a utilizar es SPRING.
4. El lenguaje de programación es JAVA, con IDE NetBeans versión 6.1.
5. Metodología utilizada para el análisis, implementación y documentación de
sistemas orientados a objetos RUP junto con lenguaje Unificado de Modelado
UML.
6. Se utilizan archivos XML para el almacenamiento de datos de cada proyecto.
7. Se utiliza la metodología definida en la estructura de procesos generada por la
herramienta MJS Process Designer.
2.3. Definición de la metodología utilizada para el Proyecto
Para desarrollar el presente proyecto de fin de carrera se empleará el Lenguaje
Unificado de Modelado UML. La elección de este lenguaje de modelado está
basada principalmente por ser la más acorde y utilizada para el análisis,
implementación y documentación de sistemas orientados a objetos.
Asimismo, se tomó como base la metodología RUP (Rational Unified Process) para
definir el proceso de desarrollo del proyecto y el modelo de procesos MoProSoft.
49
RUP pretende implementar las mejores prácticas actuales en ingeniería de software
y tiene los siguientes beneficios:
Desarrollo iterativo del software.
Administración de requerimientos.
Uso de arquitecturas basadas en componentes.
Modelamiento visual del software.
Verificación de la calidad del software.
Control de cambios.
Además, otro punto importante en cualquier desarrollo de software es el
conocimiento adecuado y experiencia en la metodología elegida, siendo esta
también una razón de la elección.
A continuación se presenta la lista de artefactos RUP que formarán parte del
presente proyecto y que se serán necesarios para la obtención del producto final:
Catálogo de requerimientos: Son los requisitos funcionales y no funcionales del
sistema. Es de suma importancia para establecer el alcance y las funcionalidades
del proyecto. Ver sección 2.1 y 2.2.
Diagramas de casos de uso: Son los casos de uso identificados a partir de los
requisitos del sistema. Es de vital importancia para el proyecto ya que es la entrada
principal para la especificación de requisitos, así como poder entender la lógica del
negocio, sus procesos e identificar los actores del sistema. Ver figura 2.1 Diagrama
de casos de uso de la herramienta EACS Project Manager.
Especificación de requisitos de software - ERS: Son las especificaciones de
cada uno de los casos de uso, permitiendo establecer la interacción entre el usuario
y el sistema, así como los flujos básicos, alternativos y excepcionales que debe
tener el sistema. Ver sección 2.4.2
Diagrama de clases de análisis: Presenta un primer diagrama general de las
clases a utilizar en el sistema, es decir muestra un primer bosquejo para el diseño.
Asimismo, se presenta el diccionario de clases. Ver figura 2.2 Diagrama de clases
de análisis.
Diagrama de clases de diseño: Presenta el diagrama de clase de diseño, donde
se aprecia las clases que pertenecen a cada una de las capas del sistema, su
50
interrelación entre ellas y los métodos y atributos de cada una de ellas. Ver sección
3.1.3.
Diagrama de componentes: Presenta la disposición de las partes integrantes de la
aplicación y las dependencias entre los distintos módulos del sistema. Ver figura 3.3
Diagrama de componentes.
Diagrama de secuencias: Presenta las secuencias del sistema, es decir el
conjunto de pasos y la relación entre las diferentes clases del sistema, todo ello
mediante la llamada a métodos e instancias de las clases. Resulta importante para
llevar a cabo una correcta construcción del sistema.
Todos los artefactos descritos se pueden revisar en los anexos del proyecto.
Es importante mencionar que para el control de calidad del producto software será
preciso utilizar el catálogo de pruebas basado en los casos de uso y pruebas
integrales del sistema ver secciones F y G de anexos. El catálogo de pruebas esta
enfocado a verificar la correcta implementación de los flujos básicos y alternativos
presentados en la especificación de casos de uso. Asimismo, las pruebas integrales
del sistema nos servirán para asegurar que todos los componentes operen
correctamente cuando son combinados en la herramienta.
2.4. Análisis de la Solución
Se trata de dar una visión global de la solución propuesta teniendo los siguientes
objetivos en mente: identificar la necesidad que deseamos resolver, establecer la
viabilidad del software propuesto, realizar el análisis técnico de los recursos
disponibles, establecer restricciones técnicas y temporales, elaborar una definición
del sistema que forme el fundamento de todo el trabajo de ingeniería subsiguiente.
2.4.1. Actores del sistema
El software a desarrollar tiene los siguientes actores: jefe de proyectos, usuarios y
administrador de sistemas.
Se presenta una descripción de los mismos a continuación:
51
Jefe de Proyecto: es el encargado de la planificación, ejecución, control y
término de los proyectos dentro del sistema, que estos acaben en el tiempo
planeado, asegurando la correcta ejecución de estos.
Usuario o miembros del equipo: son todas las personas que participan
activamente en un proyecto, cada uno con responsabilidades específicas y
están dirigidos de manera directa o indirecta por el jefe del proyecto.
Administrador del Sistema: es el encargado de administrar los permisos a los
usuarios en el Sistema, además se encarga del mantenimiento de proyectos,
empresas y usuarios.
2.4.2. Casos de Uso
Entre los procesos más importantes que serán soportados por la herramienta se
encuentran la gestión de proyectos de software, crear la instancia de una
metodología, administración de un proyecto específico y la gestión de
configuración.
Los casos de uso especifican la funcionalidad necesaria que permite a cada actor
lograr estos propósitos. En la Figura 2.1 se presenta el diagrama de casos de uso
de la herramienta EACS Project Manager.
El caso de uso mantener proyecto tiene como finalidad la creación de un proyecto.
Para cada proyecto se podrá registrar los datos principales así como asociarle una
metodología definida en un proceso, además de los usuarios que participarán en la
implementación de este a lo largo de su ciclo de vida. Los usuarios se asignarán al
proyecto con un rol determinado asignado por el Jefe de proyecto. El sistema
internamente realiza la creación de un espacio dentro del repositorio del sistema
por cada proyecto creado.
El caso de uso mantener actividades tiene como finalidad la producción de un
elemento entregable. Estos entregables no sólo deben servir para medir el grado de
éxito en el cumplimiento de la actividad, sino que deben ser útiles para el desarrollo
del proyecto mismo. Algunos entregables sirven como productos intermedios y
otros constituyen productos finales del proyecto.
El registro de una actividad se realiza cuando el actor ya concluyó el registro de un
proyecto pudiendo registrar múltiples actividades para un mismo proyecto. Por cada
actividad creada se podrá registrar los datos principales, se podrá asociar una
52
actividad a una o más actividades de una metodología que se haya elegido cuando
se creó el proyecto, así como asignar al responsable que participará en la
implementación de esta a lo largo del proyecto.
Figura 2.1. Diagrama de Casos de uso de la herramienta EACS Project Manager
El caso de uso mantener artefacto tiene como finalidad evaluar y ejecutar los
cambios a los elementos que conforman un proyecto de forma controlada, que
ayuda a mantener el orden en el proyecto lo que contribuye a asegurar la integridad
del software en la operación y consistencia de toda la documentación, lo que por lo
general redundará en la eficiencia y la efectividad de la administración del proyecto.
El registro de un artefacto se realiza cuando el actor ya concluyó el registro de un
proyecto pudiendo registrar múltiples artefactos para un mismo proyecto, por cada
artefacto creado se podrá registrar los datos principales así como asociar un
53
artefacto con una o más actividades del proyecto y con uno o más artefactos de la
metodología que se haya elegido cuando se creó el proyecto.
Se puede cargar y descargar artefactos desde y hacia el repositorio, el cual facilita
el almacenar información de la evolución del sistema (historia) proporcionando
acceso a esta información a todos los demás grupos de la organización, de acuerdo
a los accesos que tenga definidos. Cuando un artefacto es descargado para ser
modificado, no se permitirá que otro usuario lo descargue para el mismo fin, solo
podrán consultarlo. El artefacto podrá ser descargado para ser modificado una vez
que el usuario lo actualice como nueva versión o lo liberé.
El sistema permite mostrar la relación de versiones de artefactos registrados, los
cuales pueden ser ordenados por diferentes criterios, también permitirá la descarga
de cualquiera de las versiones del artefacto, por defecto se descarga la versión
actual. El sistema permite cambiar la versión vigente de los artefactos por otras ya
registradas.
El caso de uso mantener equipo proyecto tiene como finalidad la asignación de
usuarios que participarán dentro del proyecto creado, cada uno tiene un rol definido
dentro de éste, de manera que éstos se dediquen a cumplir los objetivos trazados.
El caso de uso ingresar horas trabajadas en las actividades tiene como finalidad el
registro de horas trabajadas dentro de la actividad a la que han sido designados los
recursos en el proyecto. De esta manera se podrá gestionar las cargas de trabajo
de los usuarios en los diferentes proyectos en los que se encuentran asignados.
El caso de uso mantener usuario tiene como finalidad el registro de usuarios que
participarán en los distintos proyectos según su cargo y perfil registrado en el
sistema.
El caso de uso mantener empresa tiene como finalidad el registro de las empresas
que participarán en los distintos proyectos registrados en el sistema.
A continuación se presentan las especificaciones de los casos de uso más
importantes.
54
Mantener Proyecto.
Caso de uso : Mantener Proyecto
Actor : El Administrador del Sistema y el Jefe del Proyecto.
Descripción : Este caso de uso permite el registro, actualización y
visualización de los datos relacionados a un proyecto dentro
del sistema.
Pre-Condición : Haber iniciado una sesión en el sistema con sus respectivos
nombres de usuario y contraseña.
Flujo de eventos :
1. El usuario selecciona la opción “Nuevo Proyecto”.
2. El sistema muestra un formulario donde se solicita los datos del nuevo proyecto, el
usuario deberá ingresar los siguientes datos:
Código.
Nombre descriptivo.
Empresa.
Estado.
Fecha inicio.
Fecha fin.
Descripción.
Prioridad.
Tipo.
Jefe de Proyecto.
Avance.
Moneda.
Presupuesto.
Seleccionar una metodología ya definida por algún proceso que se adapte
al proyecto que se creará.
3. El usuario ingresa la información solicitada.
4. El usuario selecciona la opción “Grabar”.
5. El sistema valida los datos ingresados.
6. El sistema registra el proyecto asignándole un número consecutivo.
7. El sistema muestra un mensaje informando que se ha registrado un nuevo
proyecto.
Los pasos 1 al 7 son repetidos para cada proyecto nuevo que desee registrarse.
Cuando el usuario termina de registrar proyectos, el caso de uso finaliza.
Post-Condición : El sistema registra un nuevo proyecto.
Flujo alternativo 1 : Se desea actualizar los datos del proyecto.
1. El sistema muestra el listado de proyectos encontrados en el sistema.
2. El usuario selecciona el proyecto a modificar y la opción “Editar”.
3. El sistema muestra la información del proyecto seleccionado.
4. El usuario modifica los atributos del proyecto, excepto el avance el cual es re
calculado por las actividades y selecciona la opción “Grabar”.
5. El sistema valida los datos ingresados.
6. El sistema registra los cambios realizados.
Flujo alternativo 2 : Se desea visualizar los datos del proyecto.
1. El sistema muestra el listado de proyectos encontrados en el sistema.
2. El usuario selecciona el proyecto a visualizar y la opción “Ver”.
3. El sistema muestra un formulario con los datos principales del proyecto
seleccionado.
55
Buscar Proyecto.
Caso de uso : Buscar Proyecto.
Actor : El Administrador del Sistema, el Jefe del Proyecto y usuarios.
Descripción : Este caso de uso permite la búsqueda de proyectos por
diferentes criterios.
Pre-Condición : Haber iniciado una sesión en el sistema con sus respectivos
nombres de usuario y contraseña.
Flujo de eventos :
1. El usuario selecciona la opción “Proyectos”.
2. El sistema muestra un formulario donde se muestran los siguientes filtros de
búsqueda:
Responsable.
Tipo Proyecto.
Empresa.
Estado.
3. El usuario deberá ingresar uno más criterios de búsqueda.
4. El usuario selecciona la opción “Buscar”.
5. El sistema muestra el listado con todos los proyectos que coincidan con los
criterios de búsqueda ingresados.
6. El usuario selecciona el proyecto requerido.
Los pasos 2 al 6 son repetidos para los diferentes criterios con los que se desee
buscar. Cuando el proyecto buscado es encontrado, el caso de uso finaliza.
Post-Condición : El sistema muestra uno o más proyectos encontrados.
Mantener Actividades.
Caso de uso : Mantener Actividades.
Actor : El Jefe del Proyecto y usuarios.
Descripción : Este caso de uso permite el registro y actualización de los
datos relacionados a una actividad de un proyecto específico,
así como mostrar los artefactos registrados de la actividad.
Pre-Condición : El usuario debe haber iniciado una sesión en el sistema con
sus respectivos nombres de usuario y contraseña.
Flujo de eventos :
1. El usuario selecciona la opción “Nueva Actividad”.
2. El sistema muestra un formulario donde se solicita los datos de la nueva actividad,
el usuario deberá ingresar los siguientes datos:
Nombre actividad.
Tipo.
Estado.
Prioridad.
Responsable de la actividad.
Actividad padre.
Progreso.
Horas estimadas.
Fecha inicio.
Fecha final.
Descripción.
Extender: Relacionar Actividad Metodología.
3. El usuario ingresa la información solicitada.
4. El usuario selecciona la opción “Grabar”.
5. El sistema valida los datos ingresados.
6. El sistema registra la actividad asignándole un número consecutivo y la asocia al
proyecto seleccionado.
7. El sistema muestra un mensaje informando que se ha registrado una nueva
actividad.
56
Los pasos del 1 al 7 se repiten mientras el usuario desee registrar una nueva
actividad. Cuando el usuario termina de registrar la actividad, el caso de uso
finaliza.
Post-Condición : El sistema registra satisfactoriamente la actividad asociándola
al proyecto.
Flujo alternativo 1 : Se desea actualizar los datos de la actividad.
1. El sistema muestra el listado de actividades encontradas según el proyecto
seleccionado.
2. El usuario selecciona la actividad a modificar y la opción “Editar”.
3. El sistema muestra la información de la actividad seleccionada.
4. El usuario modifica los datos de la actividad y selecciona la opción “Grabar”.
5. El sistema valida los datos ingresados.
6. El sistema registra los cambios realizados.
Flujo alternativo 2 : Se desea mostrar los artefactos de la actividad registrada.
1. El sistema muestra el listado de actividades encontradas según el proyecto
seleccionado.
2. El usuario selecciona la actividad para mostrar los artefactos registrados y la
opción “Ver Artefactos”.
3. El sistema muestra un formulario con el listado de artefactos asociados a la
actividad seleccionada.
Buscar Mis Actividades.
Caso de uso : Buscar Mis Actividades.
Actor : El Jefe del Proyecto y usuarios.
Descripción : Este caso de uso permite la búsqueda de las actividades de
un usuario por diferentes criterios.
Pre-Condición : Haber iniciado una sesión en el sistema con sus respectivos
nombres de usuario y contraseña.
Flujo de eventos :
1. El usuario selecciona la opción “Mis Actividades”.
2. El sistema muestra un formulario donde se muestran los siguientes filtros de
búsqueda:
Nombre del Proyecto.
Estado Actividad.
Semáforo.
3. El usuario deberá ingresar uno más criterios de búsqueda.
4. El usuario selecciona la opción “Buscar”.
5. El sistema muestra el listado de todas las actividades que coincidan con los
criterios de búsqueda ingresados y se valida que dichas actividades tengan como
responsable al usuario que realiza la búsqueda.
6. El usuario selecciona la actividad requerida.
Los pasos 2 al 6 son repetidos para los diferentes criterios con los que se desee
buscar. Cuando la actividad buscada es encontrada en el sistema, el caso de uso
finaliza.
Post-Condición : El sistema muestra una o más actividades encontradas.
Relacionar Actividad Metodología.
Caso de uso : Relacionar Actividad Metodología.
Actor : El Jefe del Proyecto y usuarios.
Descripción : Este caso de uso permite asociar una actividad con una o más
actividades ya definidas por la metodología instanciada en el
proyecto.
Pre-Condición : Haber ingresado a la creación o edición de alguna actividad.
57
Flujo de eventos :
1. El sistema realiza una búsqueda interna de las actividades que tiene la
metodología seleccionada en el proyecto.
2. El sistema muestra el listado de actividades encontradas.
3. El usuario selecciona una o más actividades de la metodología que desee asociar
a la actividad creada.
4. Si se eligieron actividades de la metodología instanciada, estas se registran
asignándoles el número de la actividad creada y el identificador de la actividad de
la metodología instanciada.
Los pasos 1 al 4 se repiten para cada actividad de la metodología que se desee
buscar.
Mantener Artefacto.
Caso de uso : Mantener Artefacto.
Actor : El Jefe del Proyecto y usuarios.
Descripción : Este caso de uso permite el registro, carga y descarga de los
artefactos, así como la visualización de versiones de estos.
Pre-Condición : El usuario debe haber iniciado una sesión en el sistema con
sus respectivos nombres de usuario y contraseña.
Flujo de eventos :
1. El usuario selecciona la opción “Nuevo Artefacto”.
2. El sistema muestra un formulario donde se solicita los datos del nuevo artefacto, el
usuario deberá ingresar los siguientes datos:
Código artefacto.
Nombre del artefacto a cargar.
Seleccionar el archivo a cargar.
Descripción.
Extender: Relacionar Actividad Artefactos.
Extender: Relacionar Artefactos Metodología.
3. El usuario ingresa la información solicitada.
4. El usuario selecciona la opción “Grabar”.
5. El sistema valida los datos ingresados.
6. El sistema registra el artefacto asignándole un número consecutivo y lo asocia al
proyecto.
7. El sistema muestra un mensaje informando que se ha registrado un nuevo
artefacto.
Los pasos del 1 al 7 se repiten mientras el usuario desee registrar un nuevo
artefacto. Cuando el usuario termina de registrar el artefacto, el caso de uso
finaliza.
Post-Condición : El sistema registra satisfactoriamente el artefacto
relacionándolo a un proyecto específico.
Flujo alternativo 1 : Se desea mostrar las versiones de los artefactos.
1. El sistema muestra el listado de artefactos encontrados según el proyecto. Por
cada artefacto se muestra la relación de actividades en las que ha sido asociado.
2. El usuario selecciona el artefacto que desea mostrar las versiones y la opción
“Versiones”.
3. El sistema muestra un formulario con el listado de las versiones de los artefactos
encontrados.
4. El usuario puede seleccionar la versión del artefacto a descargar y seleccionar la
opción “Descargar”.
5. El usuario puede modificar la versión vigente del artefacto y seleccionar la opción
“Cambiar”.
6. El sistema registra los cambios realizados.
58
Flujo alternativo 2 : Se desea descargar el artefacto.
1. El sistema muestra el listado de artefactos encontrados según el proyecto. Por
cada artefacto se muestra la relación de actividades en las que ha sido asociado.
2. El usuario selecciona el artefacto a descargar y la opción “Descargar”.
3. El sistema muestra la ventana de descarga del artefacto seleccionado.
4. El usuario ingresa la ruta en la cual desea realizar la descarga del artefacto.
5. El sistema valida los datos ingresados.
6. El sistema descarga el artefacto en la ruta ingresada.
Relacionar Actividad Artefactos.
Caso de uso : Relacionar Actividad Artefactos.
Actor : El Jefe del Proyecto y usuarios.
Descripción : Este caso de uso permite asociar un artefacto con una o más
actividades del proyecto.
Pre-Condición : Haber ingresado a la creación o edición de algún artefacto.
Flujo de eventos :
1. El sistema realiza una búsqueda interna de todas las actividades registradas que
pertenecen al proyecto seleccionado.
2. El sistema muestra el listado de actividades encontradas.
3. El usuario selecciona una o más actividades del proyecto que desee asociar al
artefacto creado.
4. Si se eligieron actividades del proyecto, estas se registran asignándoles el número
del artefacto creado y el identificador de la actividad del proyecto seleccionada.
Los pasos 1 al 4 se repiten mientras el usuario desee registrar un nuevo artefacto.
Cuando el usuario termina de registrar el artefacto, el caso de uso finaliza.
Post-Condición : El sistema muestra uno o más artefactos encontrados.
Relacionar Artefacto Metodología.
Caso de uso : Relacionar Artefacto Metodología.
Actor : El Jefe del Proyecto y usuarios.
Descripción : Este caso de uso permite asociar un artefacto con uno o más
artefactos ya definidos por la metodología instanciada en el
proyecto.
Pre-Condición : Haber ingresado a la creación o edición de algún artefacto.
Flujo de eventos :
1. El sistema realiza una búsqueda interna de los artefactos que tiene la metodología
seleccionada en el proyecto.
2. El sistema muestra un listado de los artefactos de la metodología encontrados.
3. El usuario selecciona uno o más artefactos de la metodología que desee asociar al
artefacto creado.
4. Si se eligieron artefactos de la metodología instanciada, estos se registran
asignándoles el número del artefacto creado y el identificador del artefacto de la
metodología instanciada.
Los pasos 1 al 4 se repiten mientras el usuario desee registrar un nuevo artefacto.
Cuando el usuario termina de registrar el artefacto, el caso de uso finaliza.
Post-Condición : El sistema muestra uno o más artefactos encontrados.
Reservar Artefactos.
Caso de uso : Reservar Artefactos.
Actor : El Jefe del Proyecto y usuarios.
Descripción : Este caso de uso permite reservar un artefacto.
Pre-Condición : Haber iniciado una sesión en el sistema con sus respectivos
nombres de usuario y contraseña.
59
Flujo de eventos :
1. El sistema muestra el listado de artefactos encontrados según el proyecto.
2. El usuario selecciona el artefacto a reservar y la opción “Reservar”.
3. El sistema muestra los datos del artefacto a reservar.
4. El usuario selecciona la opción “Reservar”.
5. El sistema valida los datos ingresados.
6. El sistema protege el artefacto y cambia el estado del artefacto a “bloqueado”, así
ningún otro usuario podrá modificarlo, solo consultarlo, registrando la fecha de
reserva y el usuario que realizó dicha acción.
Los pasos 1 al 6 se repiten mientras el usuario desee reservar un artefacto.
Cuando el usuario termina de reservar el artefacto, el caso de uso finaliza.
Post-Condición : El artefacto es reservado satisfactoriamente.
Crear Versión Artefacto.
Caso de uso : Crear Versión Artefacto.
Actor : El Jefe del Proyecto y usuarios.
Descripción : Este caso de uso permite generar una nueva versión del
artefacto.
Pre-Condición : Haber iniciado una sesión en el sistema con sus respectivos
nombres de usuario y contraseña.
Flujo de eventos :
1. El sistema muestra el listado de artefactos encontrados según el proyecto
seleccionado.
2. El usuario selecciona el artefacto que ha reservado previamente y selecciona la
opción “Subir”.
3. El sistema muestra un formulario donde se solicita los datos de la nueva versión
del artefacto, el usuario deberá ingresar los siguientes datos:
Seleccionar el archivo a cargar.
Observaciones.
4. El usuario selecciona la opción “Grabar”.
5. El sistema valida los datos ingresados y que el artefacto tenga el estado
“bloqueado”.
6. El sistema registra la nueva versión del artefacto y cambia el estado del artefacto a
“desbloqueado”, así los demás usuarios podrán reservarlo, registrando la fecha de
generación de la nueva versión y el usuario que realizó dicha acción.
Los pasos 1 al 6 se repiten mientras el usuario desee generar versiones de un
artefacto. Cuando el usuario termina de generar versiones del artefacto, el caso de
uso finaliza.
Post-Condición : Se genera una nueva versión del artefacto.
Flujo alternativo 1 : Se almacenan los artefactos y versiones creadas.
1. El sistema crea un espacio en el repositorio local del proyecto seleccionado por
cada artefacto creado.
2. El sistema almacena por cada artefacto creado sus versiones generadas.
3. El sistema registra las rutas de los artefactos y versiones que son almacenados.
Mantener Usuario.
Caso de uso : Mantener Usuario.
Actor : El Administrador del Sistema.
Descripción : Este caso de uso permite el registro, actualización y
eliminación de los datos relacionados a un usuario del
sistema.
Pre-Condición : El administrador debe haber iniciado una sesión en el sistema
con sus respectivos nombres de usuario y contraseña.
60
Flujo de eventos :
1. El usuario administrador selecciona la opción “Nuevo Usuario”.
2. El sistema muestra un formulario donde se solicita los datos del nuevo usuario, el
administrador deberá ingresar los siguientes datos:
Apellido Paterno.
Apellido Materno.
Nombres.
Perfil.
Cargo.
Estado.
Usuario.
Contraseña.
3. El usuario administrador ingresa la información solicitada.
4. El usuario administrador selecciona la opción “Grabar”.
5. El sistema valida los datos ingresados.
6. El sistema registra el nuevo usuario asignándole un número consecutivo.
7. El sistema muestra un mensaje informando que se ha registrado un nuevo
usuario.
Los pasos del 1 al 7 se repiten mientras el usuario administrador desee registrar
un nuevo usuario al sistema.
Cuando el administrador termina de registrar al usuario ingresado, el caso de uso
finaliza.
Post-Condición : El sistema registra satisfactoriamente al nuevo usuario.
Flujo alternativo 1 : Se desea actualizar los datos del usuario.
1. El sistema muestra el listado de usuarios encontrados en el sistema.
2. El usuario administrador selecciona el usuario a modificar y la opción “Editar”.
3. El sistema muestra la información del usuario seleccionado.
4. El usuario administrador modifica los datos del usuario seleccionado y selecciona
la opción “Grabar”.
5. El sistema valida los datos ingresados.
6. El sistema registra los cambios realizados.
Flujo alternativo 2 : Se desea eliminar los datos del usuario.
1. El sistema muestra el listado de usuarios encontrados en el sistema.
2. El usuario administrador selecciona el usuario a eliminar.
3. El sistema cambia el estado del usuario.
4. El sistema registra el cambio realizado.
Buscar Usuario.
Caso de uso : Buscar Usuario.
Actor : El Administrador del Sistema y el Jefe del Proyecto.
Descripción : Este caso de uso permite la búsqueda de usuarios por
diferentes criterios.
Pre-Condición : Haber iniciado una sesión en el sistema con sus respectivos
nombres de usuario y contraseña.
Flujo de eventos :
1. El usuario selecciona la opción “Usuarios”.
2. El sistema muestra un formulario donde se muestran los filtros de búsqueda:
Apellidos y Nombres.
Perfil.
Cargo.
Estado.
3. El usuario deberá ingresar uno más criterios de búsqueda, o aquellos que
considere necesarios.
4. El usuario selecciona la opción “Buscar”.
61
5. El sistema muestra el listado con todos los usuarios que coincidan con los criterios
de búsqueda ingresados.
6. El usuario administrador selecciona el usuario requerido.
Los pasos 2 al 6 son repetidos para los diferentes criterios con los que se desee
buscar. Cuando el usuario buscado es encontrado, el caso de uso finaliza.
Post-Condición : El sistema muestra el o los usuarios encontrados.
Mantener Empresa.
Caso de uso : Mantener Empresa.
Actor : El Administrador del Sistema.
Descripción : Este caso de uso permite el registro, actualización y
eliminación de los datos relacionados a una empresa del
sistema.
Pre-Condición : El administrador debe haber iniciado una sesión en el sistema
con sus respectivos nombres de usuario y contraseña.
Flujo de eventos :
1. El usuario administrador selecciona la opción “Nueva Empresa”.
2. El sistema muestra un formulario donde se solicita los datos de la nueva empresa,
el administrador deberá ingresar los siguientes datos:
Nombre Empresa.
Correo electrónico.
Numero de teléfono 1.
Numero de teléfono 2.
Fax.
Dirección 1.
Dirección 2.
País.
Código postal.
Dirección Web.
Descripción.
Tipo de empresa.
3. El usuario administrador ingresa la información solicitada.
4. El usuario administrador selecciona la opción “Grabar”.
5. El sistema valida los datos ingresados.
6. El sistema registra la nueva empresa asignándole un número consecutivo.
7. El sistema muestra un mensaje informando que se ha registrado una nueva
empresa.
Los pasos del 1 al 7 se repiten mientras el usuario administrador desee registrar
una nueva empresa al sistema. Cuando el administrador termina de registrar la
empresa, el caso de uso finaliza.
Post-Condición : El sistema registra satisfactoriamente la nueva empresa.
Flujo alternativo 1 : Se desea actualizar los datos de la empresa.
1. El sistema muestra el listado de empresas encontradas en el sistema.
2. El usuario administrador selecciona la empresa a modificar y la opción “Editar”.
3. El sistema muestra la información de la empresa seleccionada.
4. El usuario administrador modifica los datos de la empresa y selecciona la opción
“Grabar”.
5. El sistema valida los datos ingresados.
6. El sistema registra los cambios realizados.
Flujo alternativo 2 : Se desea eliminar los datos de la empresa.
1. El sistema muestra el listado de empresas encontradas en el sistema.
2. El usuario administrador selecciona la empresa a eliminar.
3. El sistema cambia el estado de la empresa.
4. El sistema registra el cambio realizado.
62
Buscar Empresa.
Caso de uso : Buscar Empresa.
Actor : El Administrador del Sistema y el Jefe del Proyecto.
Descripción : Este caso de uso permite la búsqueda de empresas por
diferentes criterios.
Pre-Condición : Haber iniciado una sesión en el sistema con sus respectivos
nombres de usuario y contraseña.
Flujo de eventos :
1. El usuario selecciona la opción “Empresas”.
2. El sistema muestra un formulario donde se muestran los filtros de búsqueda:
Nombre Empresa.
Tipo empresa.
3. El usuario deberá ingresar uno más criterios de búsqueda.
4. El usuario selecciona la opción “Buscar”.
5. El sistema muestra el listado con todas las empresas que coincidan con los
criterios de búsqueda ingresados.
6. El usuario administrador selecciona la empresa requerida.
Los pasos 2 al 6 son repetidos para los diferentes criterios con los que se desee
buscar. Cuando la empresa buscada es encontrada, el caso de uso finaliza.
Post-Condición : El sistema muestra la o las empresas encontradas.
Ingresar Horas Trabajadas en las Actividades.
Caso de uso : Ingresar Horas Trabajadas en las Actividades.
Actor : El Jefe del Proyecto y usuarios.
Descripción : Este caso de uso permite el ingreso de horas trabajadas en las
actividades seleccionadas.
Pre-Condición : El proyecto debe estar creado, así como las actividades que
se realizarán.
Flujo de eventos :
1. El sistema muestra el listado de actividades encontrados en el sistema las cuales
tiene como responsable al usuario que ingreso al sistema.
2. El usuario selecciona la opción “Ver Horas Trabajo” para la actividad seleccionada.
3. El sistema muestra un formulario donde se solicita los siguientes datos:
Fecha.
Número de Horas.
4. El usuario ingresa la información solicitada.
5. El usuario selecciona la opción “Grabar”.
6. El sistema valida los datos ingresados.
7. El sistema muestra un mensaje informando que se ha registrado las horas
trabajadas para la actividad seleccionada.
Los pasos del 1 al 7 se repiten mientras el usuario administrador desee registrar
las horas trabajadas por la actividad seleccionada. Cuando el administrador
termina de registrar las horas trabajadas, el caso de uso finaliza.
Post-Condición : El sistema registra satisfactoriamente el esfuerzo realizado
para la actividad seleccionada.
Mantener Equipo Proyecto.
Caso de uso : Mantener Equipo Proyecto
Actor : El Administrador del Sistema y el Jefe del Proyecto.
Descripción : Este caso de uso permite el registro y eliminación de los
usuarios que forman parte del proyecto.
Pre-Condición : El Administrador o Jefe del Proyecto deben haber iniciado una
sesión en el sistema con sus respectivos nombres de usuario
y contraseña.
63
Flujo de eventos :
1. El usuario selecciona la opción “Personal”.
2. El sistema muestra un formulario donde se solicita los datos del nuevo usuario que
formará parte del proyecto, se deberá seleccionar los siguientes datos:
Nombre del usuario.
Rol del usuario a desempeñar en el proyecto.
3. El usuario administrador o jefe de proyecto selecciona la información solicitada.
4. El usuario administrador o jefe de proyecto selecciona la opción “Agregar
Personal”.
5. El sistema valida los datos ingresados.
6. El sistema registra el nuevo usuario que formará parte del equipo del proyecto
seleccionado.
Los pasos del 2 al 6 se repiten mientras se desee registrar un nuevo usuario que
forme parte el proyecto. Cuando se termina de registrar el equipo del proyecto, el
caso de uso finaliza.
Post-Condición : El sistema registra satisfactoriamente el nuevo usuario que
formará parte del equipo del proyecto.
2.5. Diagrama de Clases de Análisis
A partir de la identificación de los requerimientos del sistema, el diagrama de casos
de uso y el análisis del comportamiento de la herramienta, se ha elaborado el
diagrama de clases de análisis que se considerará para el desarrollo de la
herramienta.
En la Figura 2.2 se presenta el diagrama de clases de análisis de la herramienta
EACS Project Manager. En el anexo C: Diccionario de Datos Diagrama de Clases,
se muestra la descripción detallada de todas las clases involucradas en el sistema a
implementar.
A continuación se detalla la descripción de las principales clases de la herramienta:
BProyecto: clase que representa un proyecto en el sistema. Además de
guardar toda la información del proyecto, se relaciona directamente con la
clase BMetodologia la cual contiene la relación con la metodología definida en
un proceso, BProyectoUsuario la cual contiene la relación del equipo de
trabajo, BEmpresa la cual contiene la relación con la empresa a quien se
realiza el proyecto, BActividad la cual contiene la relación de las actividades y
BArtefacto la cual contiene la relación de los artefactos para el proyecto
seleccionado.
64
Figura 2.2. Diagrama de Clases de Análisis.
65
BActividad: clase que representa a una actividad en el sistema. Además de
guardar la información de las actividades asociadas a un proyecto, se relaciona
directamente con la clase BMetodologiaActividad la cual contiene la relación de
las actividades de la metodología que ha sido asociada al proyecto,
BProyectoUsuario la cual contiene la relación con el usuario responsable,
BArtefacto la cual contiene la relación de los artefactos asociados, además
tiene una relación consigo misma BActividad, la cual contiene la relación entre
las actividades padre e hijas.
BArtefacto: clase que representa a un artefacto registrado en el sistema.
Además de guardar la información de los artefactos asociados a un proyecto,
se relaciona directamente con la clase BMetodologiaArtefacto la cual contiene
la relación de los artefactos de la metodología que ha sido asociada al
proyecto, BActividad la cual contiene la relación de actividades del proyecto a
las que se le asocio el artefacto, BProyectoUsuario la cual contiene la relación
con el usuario que registro y reservo el artefacto y BArtefactoVersion la cual
contiene la relación de versiones del artefacto.
BArtefactoVersion: clase que representa las versiones de un artefacto.
Además de guardar la información de las versiones de los artefactos del
proyecto, se relaciona directamente con la clase BProyectoUsuario la cual
contiene la relación con el usuario que registro la versión del artefacto.
BActividadHoras: clase que representa todo el tiempo en horas que se ha
trabajado la actividad, se relaciona directamente con la clase BProyectoUsuario
la cual contiene la relación con el usuario que ha trabajado la actividad y que
ha ingresado sus horas trabajadas.
BGenTipos: clase que representa de forma genérica algunos tipos y
parámetros utilizados por las demás clases, las clases que heredan de esta
son: TipoProyecto, EstadoProyecto, TipoActividad, EstadoActividad,
TipoEmpresa, PerfilUsuario, EstadoUsuario, CargoUsuario, Moneda, Rol y
Prioridad.
66
2.6. Restricciones del proyecto
Como se indicó el proyecto la herramienta EACS Project Manager es parte del
proyecto COMPETISOFT-PUCP y como tal tiene restricciones de los otros
componentes como:
Definición de la metodología de desarrollo.
Usar XPDL para la definición de las metodologías.
La herramienta LMB Process Audit para la evaluación y auditoria de los
proyectos.
Lenguaje de programación Java.
Tomcat, contenedor de servlets.
Servicio Web, conjunto de protocolos y estándares, para la gestión de
configuración.
Exclusiones del proyecto
Entre las funcionalidades que no serán abordadas por el proyecto se encuentran:
La herramienta no registra un calendario o agenda de eventos y tareas a
realizar en el proyecto.
La herramienta no realiza el cálculo de la ruta crítica, en el cual se calcula las
fechas teóricas de inicio y finalización tempranas y tardías para todas las
actividades
La herramienta no permite establecer la línea base del proyecto.
2.6.1. Definición de Metodología de Desarrollo usada en la herramienta
Para la definición de las plantillas de metodología de desarrollo se utiliza el
componente XPDL del proyecto COMPETISOFT – JAMESA.
Las plantillas de metodología definidas nos ayudan a relacionar las actividades y
artefactos involucrados en esta, con las actividades y artefactos implementados en
el proyecto desarrollado.
En el Código 2.1 se muestra la estructura de la metodología y sus atributos, entre
ellos el estado, la información de la versión así como los procesos involucrados.
67
Código 2.1. XPDL de la Metodología - JAMESA.
En el Código 2.2 se define la estructura de las actividades de la metodología, el tipo
de actividad, las actividades de referencia. Así mismo se define el flujo y orden de
las actividades en la metodología.
Código 2.2. XPDL de las Actividades - JAMESA.
En el Código 2.3 se define la estructura de los artefactos de la metodología, el tipo
de artefacto y el nombre del artefacto. Así como también el propietario del artefacto.
…
Código 2.3. XPDL de los Artefactos - JAMESA.
68
2.6.2. Gestión de Configuración
En la presente sección se revisará las estructuras utilizadas para almacenar los
datos de la gestión de configuración, esta incluye el gestor de los artefactos del
repositorio, los artefactos en sí que son los entes que están compuestos por los
documentos y código fuente generado en las diferentes actividades y las versiones
de cada uno de estos.
Esta información es almacenada en formato XPDL para que posteriormente el
grupo COMPETISOFT – LIMEBO acceda a estos archivos para realizar la
evaluación y auditoria de los proyectos.
En el Código 2.4 se define la estructura de los artefactos para la gestión de la
configuración del proyecto, entre los datos que contiene se encuentran el tipo de
artefacto, la versión actual vigente, el permiso de acceso. También se incluye la
asociación del artefacto con el artefacto de la metodología usada en el proyecto.
Código 2.4. XPDL para administrar los Artefactos.
En el Código 2.5 se define la estructura de las versiones de los artefactos para la
gestión de la configuración del proyecto, entre los datos que contiene se encuentran
69
el número de versión, el estado en el que se encuentra, el usuario que generó la
versión y fecha de creación.
Código 2.5. XPDL para administrar las Versiones de los Artefactos.
2.7. Administración de proyectos
La herramienta EACS Project Manager consta de un módulo de administración de
proyectos, el cual tiene como propósito facilitar la planificación, la realización, la
evaluación y control de todos los proyectos. Se ocupa de los proyectos internos y
externos de la organización.
La herramienta brinda las siguientes funcionalidades:
Permite realizar la búsqueda de proyectos por diferentes filtros: nombre del
responsable, tipo de proyecto, nombre de la empresa y estado del proyecto.
Permite mostrar la relación de los proyectos registrados en el sistema. Se
pueden visualizar y editar los datos del proyecto seleccionado.
Permite realizar la búsqueda de todas las actividades asignadas de un usuario
por diferentes filtros: nombre del proyecto, tipo y estado de la actividad.
70
Permite mostrar la relación de actividades que está desarrollando un usuario
asignado como parte del equipo en el proyecto, prestando especial interés a
aquellas actividades que están sufriendo algún retraso asignándoles un color
diferente a las demás con lo que permitirá al usuario detectarlas a tiempo, de
esta manera las actividades que les quedan menos del 20% del tiempo para
que finalice o se encuentran retrazadas se muestran en color rojo, las
actividades que faltan más del 20% pero menos de 60% del tiempo para
terminar se muestran en color anaranjado y las actividades que faltan más del
60% del tiempo para terminar se muestran en color azul.
Permite registrar las horas de trabajo realizado por el usuario, el cual puede ir
añadiendo la fecha y el número de horas realizadas en la actividad
seleccionada.
Permite realizar la búsqueda de usuarios del sistema por diferentes filtros:
apellidos y nombres, perfiles del sistema, estado del usuario y cargo en el
proyecto.
Permite mostrar la relación de los usuarios registrados en el sistema. Se
pueden editar los datos del usuario seleccionado.
Permite crear un nuevo usuario registrando sus datos principales, así como
asociarle un nombre de usuario y contraseña para su ingreso en el sistema.
Permite realizar la búsqueda de empresas por diferentes filtros: nombre y tipo
de empresa.
Permite mostrar la relación de las empresas registrados en el sistema. Se
pueden editar los datos de la empresa seleccionada.
Permite crear una nueva empresa registrando sus datos principales, así como
asociarle un tipo de empresa.
Permite exportar un documento de desarrollo del proyecto seleccionado en
formato HTML, con los datos más importantes como: datos del proyecto,
actividades, artefactos y recursos.
Permite exportar un documento de esfuerzo en formato HTML mostrando todo
el esfuerzo en número de horas que los miembros del equipo han ido
imputando a lo largo del tiempo en cada actividad.
Permite mostrar la relación de las actividades y sus grupos en forma de
cascada, según la dependencia entras estas.
71
2.8. Administración de proyectos específicos
La herramienta EACS Project Manager consta de un módulo de administración de
proyectos específicos, el cual tiene como propósito establecer y llevar a cabo
sistemáticamente las actividades que permitan cumplir con los objetivos de un
proyecto en tiempo y costos esperados mediante la coordinación y el manejo de los
recursos del mismo.
La herramienta brinda las siguientes funcionalidades:
Permite crear proyectos registrando sus datos principales, así como asociarle
una metodología definida en un proceso, asignarle un jefe de proyecto,
empresa, fecha de inicio y fin estimado y el presupuesto inicial programado.
Permite crear un espacio para almacenar cada proyecto en el repositorio local
del sistema.
Permite mostrar la relación del equipo asignado al proyecto seleccionado. Se
pueden editar los datos del equipo registrado en el proyecto.
Permite asignar miembros al equipo del proyecto, necesarios para la ejecución
del proyecto seleccionado, con sus correspondientes roles.
Permite mostrar la relación de actividades en niveles de dependencia del
proyecto seleccionado, las cuales pueden ser ordenadas por nombre, fecha
inicial, fecha final y estado. Se pueden editar los datos de las actividades
registradas en el proyecto.
Permite crear actividades al proyecto seleccionado, registrando sus datos
principales, así como asociarles las actividades definidas por la metodología
elegida para el proyecto.
Permite agrupar aquellas actividades que compartan características o que se
van a completar en el mismo intervalo de tiempo bajo una actividad padre o
resumen.
Permite asignar un responsable a las actividades creadas.
Permite mostrar la relación de artefactos de la actividad seleccionada, los
cuales pueden ser ordenados por nombre del artefacto.
Permite mostrar la relación de artefactos del proyecto seleccionado, los cuales
pueden ser ordenados por nombre, Por cada artefacto se muestra la relación
de actividades a las que fue asociado.
Permite registrar en el proyecto seleccionado los datos principales de los
artefactos que se desarrollarán, así como cargar al repositorio un artefacto para
72
asociarle las actividades correspondientes del proyecto y relacionar el artefacto
con los artefactos definidos en la metodología que se definió en el proyecto
seleccionado.
Permite descargar, reservar y visualizar los artefactos registrados en el
proyecto.
Permite identificar la actividad en que se estará utilizando a cada uno de los
usuarios y la duración de esa utilización mediante el diagrama de Gantt, de tal
modo que puedan identificarse periodos ociosos innecesarios y se dé también
al jefe de proyecto una visión completa de la utilización de los recursos que se
encuentran bajo su supervisión.
Permite mostrar en un diagrama de Gantt, el porcentaje de avance por cada
actividad mostrando las actividades según su distribución de acuerdo al
calendario, de manera tal que se pueda visualizar el periodo de duración de
cada actividad, sus fechas de iniciación y terminación e igualmente el tiempo
total requerido para la ejecución de una actividad determinada.
2.9. Gestión de la Configuración
La herramienta EACS Project Manager consta de un módulo de gestión de la
configuración, el cual tiene como propósito asegurar la validez y disponibilidad de
las versiones de los artefactos en todas las etapas de vida del software,
manteniendo la integridad de los elementos de trabajo identificando, controlando y
auditando dichos elementos.
En la Figura 2.3 se muestra el flujo de gestión de la configuración usado en la
herramienta EACS Project Manager.
La herramienta brinda las siguientes funcionalidades:
Permite agregar artefactos y sus nuevas versiones al repositorio asignado al
proyecto, creando un espacio por cada artefacto creado dentro del cual se
almacenarán las versiones creadas.
Permite recuperar archivos del repositorio en modo lectura (archivo que no será
editado o modificado).
Permite cambiar el número de versión vigente del artefacto seleccionado.
73
Permite recuperar archivos del repositorio con el propósito de modificarlos,
llamamos a esta operación “check-out”. Dichos archivos serán marcados como
archivos reservados o bloqueados, este archivo no podrá ser modificado por
otro miembro del equipo, el repositorio mantendrá siempre un registro de
nuestro intento de modificar los archivos. Esta copia local se realiza
generalmente para realizar cambios o modificaciones sobre la copia mientras
está bloqueada. El equipo podrá descargar el archivo sin permisos de
modificarlo.
Figura 2.3. Grafico con los conceptos principales usados en EACS Project Manager
Permite subir los archivos modificados al repositorio, llamamos a esta
operación “check-in”. Nuestros archivos de trabajo serán reincorporados o
desbloqueados y la herramienta EACS Project Manager actualizará el
repositorio con las nuevas versiones creadas de los archivos modificados y se
liberarán para que el equipo pueda acceder a estos.
Permite controlar las versiones de los artefactos, mostrando la relación de
versiones creadas del artefacto indicando el número de versión creada, el
nombre del miembro del equipo que realizó el cambio y la fecha de creación de
la nueva versión. El número de versiones que se pueden crear es ilimitado.
Permite descargar las versiones de los artefactos del repositorio al espacio
local del usuario.
74
Capitulo 3: Diseño
En el presente capítulo se describen los diferentes aspectos que se han tenido en
cuenta para diseñar la aplicación. En dicho diseño se modela el sistema y se
incluye la arquitectura, para que soporte todos los requisitos especificados en el
capítulo anterior.
3.1. Arquitectura de la Solución
La arquitectura constituye el diseño a alto nivel de una aplicación, esto implica
subdividir la aplicación en componentes funcionales y particionar estos
componentes en capas. El diseño de la arquitectura de alto nivel es neutral a las
tecnologías utilizadas.
Para la presente tesis se escogió una arquitectura Web basada en una arquitectura
de aplicaciones de tres capas, en donde se separa la presentación, la lógica del
negocio y el controlador, esto asegura una división clara de responsabilidades y
hace que el sistema sea mantenible y extensible.
75
Las capas a considerar son las siguientes:
La capa de presentación es la capa que contiene todo aquello con lo que el
usuario puede interactuar. Además, contiene todos los elementos que
constituyen la interfaz con el usuario, validación de datos de entrada y el
formateo de los datos de salida. Además expone los servicios de la capa de
lógica del negocio a los usuarios. Sabe cómo procesar una petición de cliente,
cómo interactuar con la capa de lógica del negocio, y cómo seleccionar la
siguiente vista a mostrar.
La capa de lógica del negocio es la capa que contiene los objetos y servicios
de negocio de la aplicación. Recibe peticiones de la capa de presentación y
procesa la lógica de negocio basada en las peticiones.
La capa de datos es la capa donde se manejan los mecanismos para manipular
y persistir la información. Esta permite gestionar las consultas, actualizaciones
e inserciones de las entidades del sistema.
En la Figura 3.1 se ilustra la interacción de las capas de la arquitectura planteada.
Figura 3.1. Diagrama de capas de la herramienta.
Respuestas HTTP
JAVA SERVLET - CONTROLADOR
MODELO
VISTA - JSF
DATOS
XML
Objetos
persistentes
Pedidos
SPRING
76
Para lograr este diseño se eligió el patrón MVC (Modelo-Vista-Controlador) que
permite un diseño flexible, escalable y una separación eficiente entre las distintas
capas de una aplicación.
Para la capa de presentación (la vista) se buscaba un marco de referencia
(Framework) que proporcionase una mayor facilidad en la elaboración de pantallas,
mapeo entre los formularios y sus clases en el servidor, la validación, conversión,
gestión de errores y de ser posible, que facilitase también el incluir componentes
complejos (menús, árboles, tablas, pestañas, ajax, etc) de una forma sencilla y
sobre todo fácil de mantener. Para esta capa se ha elegido Java Server Faces
[JSF].
Se pueden utilizar EJB’s [EJB] (Enterprise JavaBeans) o POJO [POJO] (Plain Old
Java Objects) para construir la capa de lógica del negocio. Se decidió desde el
primer momento no emplear EJB’s por su elevado tiempo de desarrollo, además la
herramienta EACS Project Manager es una aplicación Web que no será accedida
remotamente desde otras aplicaciones, motivo por el cual se utilizará POJO.
Los objetos y servicios de negocio existen en la capa de lógica del negocio. Un
objeto de negocio no sólo contiene datos, también la lógica asociada con ese objeto
específico. Los servicios de negocio interactúan con objetos de negocio y
proporcionan una lógica de negocio de más alto nivel. POJO, con la ayuda del
marco de trabajo Spring [SPRING], implementará la capa de lógica del negocio de
la aplicación. Debido a que esta capa tiene acceso a los datos, realiza tareas de
carga y descarga de datos hacia y desde un archivo plano en formato XML [XML].
El controlador es el objeto que proporciona significado a las órdenes del usuario,
actuando sobre los datos representados por el modelo. Cuando se realiza algún
cambio, entra en acción, bien sea por cambios en la información del modelo o por
alteraciones de la vista.
Beneficios de la arquitectura
La principal ventaja de la arquitectura planteada se deriva en la modularidad del
diseño. Cada una de las partes empleadas es intercambiable de forma sencilla y
limpia por otras soluciones disponibles.
Por ejemplo, para la vista se emplea Java Server Faces, pero nada impide emplear
también una aplicación de escritorio mediante Swing o SWT sin tener que tocar ni
77
una sola línea de código de las restantes capas. Es más, nada impediría que se
pudiese disponer de una aplicación con una parte de la capa de presentación en
JSF y otra parte, para otro tipo de usuarios, en Swing, ambas funcionando a la vez
y compartiendo todo el resto del código (lógica de negocio, persistencia, etc).
De igual forma, si se desean cambiar elementos de la capa de datos empleando
otro marco de trabajo para el mapeo diferente del utilizado o sencillamente no
utilizar ninguno, tan sólo serían necesarios cambios en esa capa.
La necesidad de integración con la herramienta de JAMESA, que nos
proporcionaría un archivo XPDL con la definición de la metodología, y
posteriormente con la de LIMEBO, el cual debe recibir la información del proyecto,
sus actividades y artefactos; hace necesario un medio eficaz de intercambio de
datos.
Además debido a que se desea conservar la modularidad en todas las capas es
que se ha diseñado la capa de datos para que utilice archivos XML para el
almacenamiento de la información, ya que este tipo de archivos se utilizan como un
estándar para el intercambio de datos entre aplicaciones.
De la misma manera se podrían sustituir cualquiera de las otras capas. El diseño se
ha hecho reduciendo al mínimo posible las dependencias entre ellas.
3.1.1. Patrón de Diseño Modelo Vista Controlador
El patrón MVC es un patrón de diseño arquitectural recomendado para aplicaciones
interactivas Java.
Entre sus características se tiene que separa los conceptos de diseño, y por lo tanto
disminuye la duplicación de código, la centralización del control y hace que la
aplicación sea más extensible. [MVC]
Los componentes en los que se separan los datos de una aplicación, la interfaz de
usuario y la lógica de control son los siguientes:
Modelo: encapsula los datos y las funcionalidades del negocio. El modelo
incluye todas las funciones necesarias para acceder a los datos guardados en
los archivos XML.
78
Vista: se encarga de mostrar la información recibida al usuario por medio de la
interfaz gráfica de usuario. Así como también notifica al Controlador que se ha
producido algún evento.
Controlador: recibe los eventos de entrada y se encarga de realizar peticiones
de actualización al modelo o a la vista según sea el caso.
La principal ventaja de esta separación reside en la facilidad para realizar cambios
en la aplicación puesto que cuando realizamos un cambio de bases de datos,
programación o interfaz de usuario solo tocaremos uno de los componentes
y podemos modificar alguno de los componentes sin conocer cómo funcionan los
otros.
En la Figura 3.2 se muestra el esquema de funcionamiento que define dicho patrón
en base a las tres capas anteriormente mencionadas.
Figura 3.2. Esquema del patrón MVC.
3.1.2. Subsistemas del Software
A continuación se presentan los componentes principales que se encuentran en la
herramienta EACS Project Manager (Figura 3.3).
A continuación, se detalla la descripción de cada uno de ellos.
Interfaz GUI: contiene los archivos de extensión .jsp que conforman la interfaz
Web con la que interactúa el usuario.
79
Proyectos: contiene las clases que permiten el mantenimiento de proyectos,
actividades, usuarios, empresas, asignar actividades y metodologías.
Gestión de la Configuración: contiene las clases que permiten registrar,
reservar, liberar, cargar y descargar los artefactos de los proyectos.
Manejador de Versiones: contiene las clases que permiten registrar y
controlar las versiones de los artefactos de los proyectos.
Reportes: contiene las clases que permiten la creación y ejecución de los
reportes de la aplicación.
Manejador XML: contiene las clases que permiten la lectura y escritura de los
archivos XML.
Manejador XPDL (Metodologías): permite la creación de metodologías desde
la aplicación MJS Process Designer.
Figura 3.3. Diagrama de Componentes de la Aplicación.
80
3.1.3. Diagrama de Clases de Diseño
A continuación se muestran los diagramas de clases de diseño, basados en las
clases de análisis presentadas anteriormente, que ilustran la interacción entre las
entidades y lógica de negocio.
Las clases de diseño utilizadas en la herramienta EACS Project Manager se
clasifican en:
Tipo Controller: clases que sirven de intermediarias entre las peticiones del
cliente y la lógica del negocio.
Tipo Service: interfaces que contienen toda la funcionalidad referente a la
lógica del negocio del sistema, contienen todos los servicios y sus
correspondientes métodos para trabajar con las entidades. Esta capa contiene
interfaces, por lo que solo se encuentran las definiciones de los métodos a
utilizar. Estos servicios son implementados por clases de tipo ServiceImpl.
Tipo Entity: clases que representan las entidades de negocio utilizadas por el
sistema así como sus correspondientes gestores que los administran.
El servicio llamado serviceLocator es el bean que permanecerá persistente en toda
la aplicación y podrá ser utilizado en cualquier momento en el sistema. A partir de
este único bean podremos incluir atributos que instancien a las clases que nos
servirán para manejar los proyectos, actividades y artefactos. La implementación de
este servicio llamado ServiceLocatorBean es el encargado de iniciar los servicios
de todas las entidades con la que se trabaja en el sistema: usuarios, empresas,
proyectos, actividades, artefactos.
En esta sección se muestran los principales diagramas de clases de diseño del
sistema. El modelo completo de clases de diseño se presenta en el Anexo D:
Diagramas de Clases de Diseño.
En la Figura 3.4 se muestran las clases de diseño implicadas en la búsqueda y
consulta de proyectos, registro de los datos generales del proyecto y registro de
usuarios al proyecto.
En la Figura 3.5 se muestran las clases de diseño implicadas en la consulta de
actividades, registro de los datos generales de las actividades y registro de usuarios
a las actividades.
81
Figura 3.4. Diagrama de Clases de Diseño – Proyectos.
82
Figura 3.5. Diagrama de Clases de Diseño – Actividades.
83
En la Figura 3.6 se muestran las clases de diseño implicadas en la consulta de
artefactos, registro de los datos generales de los artefactos y versiones de estos.
Figura 3.6. Diagrama de Clases de Diseño – Artefactos.
3.1.4. Diagrama de Secuencia
En el diagrama de secuencia se muestra la interacción y los mensajes que se
intercambian entre los objetos que conforman la herramienta según su secuencia
en el tiempo. Con estos diagramas se puede observar la interacción de estos
objetos dentro de un escenario determinado.
Se presentan a continuación la descripción de los principales diagramas de
secuencia. En el anexo E: Diagramas de Secuencia, se presentan los diagramas de
secuencia adicionales de la herramienta EACS Project Manager.
84
Diagrama de Secuencia – Carga inicial
En la Figura 3.7 se muestra el diagrama de secuencia de carga inicial del sistema,
en el cual podemos observar la interacción entre los diferentes componentes
necesarios para realizar la carga inicial de información al sistema.
El proceso de carga inicial comienza cuando se carga el sistema, la aplicación
carga el constructor de la clase ApplicationBean la cual contiene un objeto de tipo
ServiceLocator, en esta clase encontramos todos los servicios que tiene el sistema.
Estos servicios son cargados en la clase ServiceLocatorBean, la cual llama al
constructor de todos los servicios que tiene el sistema, los cuales a su vez llaman a
la clase MotorXML, iniciándose un proceso de lectura de los datos iniciales de sus
respectivos archivos XML obteniendo un gestor por cada tipo de servicio cargado.
Figura 3.7. Diagrama de Secuencia Carga Inicial.
85
Diagrama de Secuencia – Registrar Proyecto
En la Figura 3.8 se muestra el diagrama de secuencia Registrar Proyecto, en el cual
podemos observar la interacción entre los diferentes componentes necesarios para
realizar el registro de proyectos en el sistema.
Este proceso comienza cuando se selecciona la opción “Grabar” del
formRegistrarProyecto, la aplicación envía una petición para realizar el registro a la
clase ApplicationBean la cual contiene un objeto de tipo ServiceLocator, en esta
clase encontramos todos los servicios que tiene el sistema.
Para el registro del proyecto se obtiene del servicio SGenTipos el número de
identificador que tendrá el nuevo proyecto. El servicio SProyecto contiene los
objetos y métodos respectivos para realizar el registro.
Para registrar un nuevo proyecto el SProyecto llama al gestor de proyectos
BGestorProyecto, mediante esta clase logramos que los objetos trabajen con sus
correspondientes datos obteniendo de esta manera la relación de proyectos de tipo
BProyecto a la que agregaremos el nuevo proyecto.
Una vez que el objeto BProyecto esté cargado con los datos ingresados, se iniciará
un proceso en el cual se escribirá la información correspondiente en el archivo
XmListaProyecto a través de la clase MotorXML.
Si el nuevo proyecto tiene relacionados usuarios que forman parte del equipo de
trabajo, se realiza un proceso similar al anterior para su registro y la relación entre
estos se guarda en el archivo XmListaProyectoUsuarios.
Diagrama de Secuencia – Registrar Actividad
En la Figura 3.9 se muestra el diagrama de secuencia Registrar Actividad, en el
cual podemos observar la interacción entre los diferentes componentes necesarios
para realizar el registro de actividades del proyecto y las actividades de una
metodología seleccionada.
Este proceso comienza cuando se selecciona la opción “Grabar” del
formRegistrarActividad, la aplicación envía una petición para realizar el registro a la
clase ApplicationBean la cual contiene un objeto de tipo ServiceLocator.
86
Figura 3.8. Diagrama de Secuencia para Registrar Proyecto.
87
Figura 3.9. Diagrama de Secuencia para Registrar Actividades.
88
Para el registro de las actividades se obtiene del servicio SGenTipos el número de
identificador que tendrá la nueva actividad. Para registrar una nueva actividad el
servicio SActividad llama al gestor de actividades BGestorActividades, obteniendo
de esta manera la relación de actividades de tipo BActividad a la que agregamos la
nueva actividad.
Una vez que el objeto BActividad esté cargado con los datos ingresados, se iniciará
un proceso en el cual se escribirá la información correspondiente en el archivo
XmListaActividad a través de la clase MotorXML.
Si la nueva actividad tiene asociadas actividades de la metodología seleccionada
en el proyecto, se realiza un proceso similar al anterior para su registro y la relación
entre estas se guarda en el archivo XmListaActividad.
Si la nueva actividad tiene relacionados usuarios que forman parte del equipo de
trabajo para esta actividad, se realiza un proceso similar al anterior para su registro
y la relación entre estos se guarda en el archivo XmListaActividadUsuarios.
Diagrama de Secuencia – Ingresar Horas Trabajadas en las Actividades
En la Figura 3.10 se muestra el diagrama de secuencia Ingresar Horas Trabajadas
en las Actividades, en el cual podemos observar la interacción entre los diferentes
componentes necesarios para realizar el registro de horas trabajadas por el equipo
de trabajo.
Este proceso comienza cuando se selecciona la opción “Grabar” del
formRegistrarMisActividades, la aplicación envía una petición para realizar el
registro a la clase ApplicationBean la cual contiene un objeto de tipo
ServiceLocator.
Para el registro de horas trabajadas en las actividades se obtiene del servicio
SGenTipos el número de identificador que tendrá el registro de horas. Para registrar
las horas empleadas en una actividad el servicio SActividadesHoras llama al gestor
de actividades BGestorActividadesHoras, obteniendo de esta manera la relación de
actividades de tipo BActividadHoras a la que agregamos el nuevo registro de horas.
89
Figura 3.10. Diagrama de Secuencia para Ingresar Horas Trabajadas en las
Actividades.
90
Una vez que el objeto BActividadHoras esté cargado con los datos ingresados, se
iniciará un proceso en el cual se escribirá la información correspondiente en el
archivo XmlListaActividadesHoras a través de la clase MotorXML.
Diagrama de Secuencia – Registrar Artefacto
En la Figura 3.11 se muestra el diagrama de secuencia Registrar Artefacto, en el
cual podemos observar la interacción entre los diferentes componentes necesarios
para realizar el registro de artefactos al proyecto así como asociarlos con las
actividades del proyecto y los artefactos de la metodología seleccionada.
Este proceso comienza cuando se selecciona la opción “Grabar” del
formRegistrarArtefacto, la aplicación envía una petición para realizar el registro a la
clase ApplicationBean la cual contiene un objeto de tipo ServiceLocator.
Para el registro de los artefactos se obtiene del servicio SGenTipos el número de
identificador que tendrá el nuevo artefacto y se le coloca como versión vigente
generada. Para registrar un nuevo artefacto el servicio SArtefacto llama al gestor de
artefactos BGestorArtefactos, obteniendo de esta manera la relación de artefactos
de tipo BArtefacto a la que agregamos el nuevo artefacto.
Una vez que el objeto BArtefacto esté cargado con los datos ingresados, se iniciará
un proceso en el cual se escribirá la información correspondiente en el archivo
XmListaArtefacto a través de la clase MotorXML.
Si el nuevo artefacto está relacionado a una o más actividades del proyecto estas
son registradas siguiendo un proceso similar al anterior y la relación entre estos se
guarda en el archivo XmListaArtefactoActividades.
Si el nuevo artefacto tiene asociados artefactos de la metodología seleccionada en
el proyecto, se realiza un proceso similar al anterior para su registro y la relación
entre estos se guarda en el archivo XmListaArtefactoMetodologia.
Diagrama de Secuencia – Crear Versión Artefacto
En la Figura 3.12 se muestra el diagrama de secuencia Crear Versión Artefacto, en
el cual podemos observar la interacción entre los diferentes componentes
necesarios para realizar el registro de la nueva versión del artefacto al proyecto.
91
Figura 3.11. Diagrama de Secuencia para Registrar Artefactos.
92
Figura 3.12. Diagrama de Secuencia para Crear Versión Artefacto.
93
Este proceso comienza cuando se selecciona la opción “Subir” del
formRegistrarArtefacto, la aplicación envía una petición para realizar el registro a la
clase ApplicationBean la cual contiene un objeto de tipo ServiceLocator. Para el
registro de la nueva versión del artefacto se obtiene del servicio SGenTipos el
número de versión que tendrá el nuevo artefacto y se le coloca como versión
vigente generada.
Para registrar la nueva versión del artefacto, agregamos a la relación de versiones
del objeto BArtefacto seleccionado, el objeto BArtefactoVersion creado, el servicio
SArtefacto llama al gestor de artefactos BGestorArtefactos, obteniendo de esta
manera la relación de artefactos de tipo BArtefacto en la cual buscamos el objeto
seleccionado para actualizar su relación de versiones.
Una vez que el objeto BArtefacto esté cargado con los datos ingresados, se iniciará
un proceso en el cual se escribirá la información correspondiente en el archivo
XmListaArtefacto a través de la clase MotorXML.
3.2. Diseño de Interfaz Gráfica
En esta sección se presentan detalles generales sobre el diseño de la interfaz del
sistema para lo cual se detallan las consideraciones que se tendrá al diseñar el
software. Así mismo se presentan los prototipos del sistema.
3.2.1. Criterios para el diseño de la interfaz gráfica
A continuación se describen las consideraciones que se tendrá al diseñar el
software con el objetivo de uniformizar la interfaz gráfica y hacerlo más sencillo y
fácil de manejar.
Todas las páginas elaboradas tendrán en la parte superior un logo y el nombre
que representa al sistema, el nombre del usuario que ha ingresado y además
íconos de enlaces a la página de inicio y a la opción de salir. Además mostrará
el título de la opción a la cual se ha ingresado a través del menú del sistema,
tal como se muestra en la Figura 3.13.
Se manejará una sola ventana principal, que será el contenedor de las
ventanas internas, es decir solo se levantará una ventana para el uso del
sistema.
94
Figura 3.13. Cabecera para las páginas del sistema
La ventana principal tendrá el menú con cada una de las funcionalidades
principales del sistema. Cada funcionalidad principal a su vez contendrá uno o
más accesos a las diferentes ventanas que conforman dichas funcionalidades.
Se incluirá en todas las páginas internas enlaces hacia la página principal
(menú) y opciones de retorno.
En el caso de búsquedas o consultas, se muestra primero etiquetas y cajas de
texto de ingreso de datos y los resultados se mostrarán enseguida, en un
listado de varios ítems, los cuales pueden ser ordenados por diferentes
criterios.
El tipo de letra estándar a utilizar para la presentación de la información es
Arial. El tamaño de las letras de los párrafos será de 10, el tamaño para los
subtítulos será de 12, el tamaño para los títulos será de 14.
Se hará uso de gráficos que reflejen acciones determinadas en los botones.
Se colocarán nombres adecuados a todas las páginas para que el usuario
pueda identificar donde se encuentra en todo momento.
Se mostrarán enlaces de rápido acceso a otras operaciones para facilitar la
navegación del usuario.
Se mostraran pequeñas ventanas de diálogo para confirmar alguna acción o
para informar sobre alguna advertencia, logrando una comunicación entre el
usuario y la aplicación.
3.2.2. Estructura general del sitio
El diseño del sitio Web contará con una jerarquía de menú eficiente para lograr que
el usuario encuentre la información que requiere en el menor tiempo posible.
En la Figura 3.14 se muestra el mapa de navegación que se utilizará en el sistema
a desarrollar.
95
Mantenimiento
Proyectos
Modulo
Proyectos
Modulo
Mis Actividades
Modulo
Usuarios
Modulo
Empresas
Modulo
Reportes
Ver Horas Trabajo
Mantenimiento
Usuarios
Mantenimiento
Empresas
Mantenimiento
Personal
Mantenimiento
Actividades
Mantenimiento
Artefactos
Diagrama
Gantt
Versiones
Descargar
Subir
Reservar
Liberar
Cambio de contraseña
Figura 3.14. Mapa de Navegación del sistema
La estructura jerárquica del sitio Web será clara, de tal forma que permita al usuario
en una próxima navegación encontrar fácilmente la información que busca.
La profundidad de la estructura de navegación del sitio Web no será muy profunda
ya que no contendrá demasiados niveles para llegar a la información requerida.
3.2.3. Diseño de prototipos del sistema
A continuación se presenta los prototipos del sistema. Estos muestran las pantallas
con las que interactuará el usuario para realizar de manera automatizada los
procesos anteriormente descritos.
Pantalla principal
En la Figura 3.15 se muestra el diseño de la pantalla “Ingreso al Sistema”, la cual
permite el ingreso a la herramienta EACS Project Manager. Los usuarios
registrados deben autenticarse con un nombre de usuario y contraseña, que serán
proporcionados por el administrador del sistema.
96
Figura 3.15. Pantalla Ingreso al Sistema.
Proyectos
En la Figura 3.16 se muestra el diseño de la pantalla “Proyectos”, la que contiene
las opciones de “Nuevo Proyecto”, “Buscar” y “Salir”.
Figura 3.16. Pantalla Proyectos.
Al presionar el botón “Nuevo Proyecto” el sistema muestra la pantalla “Nuevo
Proyecto” con los campos vacíos.
Al presionar el botón “Buscar” se realiza la búsqueda de proyectos con los
siguientes criterios de búsqueda: nombre del responsable, tipo proyecto, nombre de
la empresa y estado del proyecto, como resultado de la búsqueda se muestra la
97
relación de proyectos registrados en el sistema. Al presionar el botón “Salir” salimos
del sistema.
Para cada proyecto encontrado se muestra la opción de “Editar”, al seleccionar esta
opción el sistema muestra la pantalla “Editar Proyecto” con los datos del proyecto a
modificar. También se muestra la opción de “Ver”.
Proyectos - Nuevo Proyecto
En la Figura 3.17 se muestra el diseño de la pantalla “Nuevo Proyecto”, ingresando
en el formulario los datos relevantes del proyecto se podrá registrar en el sistema el
nuevo proyecto.
En el campo avance se almacena el porcentaje de avance del trabajo realizado del
proyecto completo, este campo puede ser ingresado manualmente cuando se crea
el proyecto, pero luego es recalculado automáticamente en función al promedio
ponderado del progreso de sus actividades, cada vez que estas son actualizadas.
De forma similar los campos fecha inicio y fecha fin pueden ser ingresados
manualmente al crearse el proyecto pero son recalculados automáticamente
obteniéndose la menor fecha de inicio y la mayor fecha de fin de las actividades del
proyecto.
Figura 3.17. Pantalla Nuevo Proyecto.
98
En esta pantalla se puede relacionar el proyecto creado con una metodología. Las
metodologías ya se encuentran definidas previamente en base a procesos
definidos.
En la pantalla “Editar Proyecto” se actualizan los datos del proyecto que se deseen
modificar. Excepto el campo avance, el cual no es editable.
Al presionar el botón “Grabar” el sistema guarda los datos del proyecto, para
regresar a la pantalla anterior se presiona el botón “Regresar”.
Mis Actividades
En la Figura 3.18 se muestra el diseño de la pantalla “Mis Actividades” la que
contiene los siguientes criterios de búsqueda: nombre del proyecto, estado de la
actividad y semáforo, como resultado de la búsqueda se muestra la relación de
actividades diferenciadas con distintos colores.
Figura 3.18. Pantalla Mis Actividades.
A continuación se detalla el significado de los colores:
Rojo: indica las actividades cuyo tiempo transcurrido es mayor o igual al 80% del
tiempo programado; si el tiempo transcurrido ha superado el tiempo programado,
esta actividad se encuentra retrasada.
Anaranjado: indica las actividades cuyo tiempo transcurrido es mayor o igual al 40%
y menor o igual al 80% del tiempo programado.
99
Azul: indica las actividades cuyo tiempo transcurrido es menor al 40% del tiempo
programado.
Para cada actividad se muestra la opción “Ver Horas Trabajo”.
Mis Actividades – Ver Horas Trabajo
En la Figura 3.19 se muestra el diseño de la pantalla “Ver Horas Trabajo” en la que
el usuario puede registrar el esfuerzo realizado para la actividad seleccionada,
añadiendo la fecha y el número de horas destinadas para su realización, solo los
usuarios responsables de la actividad tienen acceso a ingresar las horas trabajadas
de dicha actividad.
Al presionar el botón “Grabar” el sistema guarda los datos ingresados, para
regresar a la pantalla anterior se presiona el botón “Regresar”.
Figura 3.19. Pantalla Ver Horas Trabajo.
Usuarios
En la Figura 3.20 se muestra el diseño de la pantalla “Usuarios" la que contiene las
opciones de “Nuevo Usuario” y “Buscar”.
Al presionar el botón “Nuevo Usuario” el sistema muestra la pantalla “Nuevo
Usuario” con los campos vacíos.
Al presionar el botón “Buscar” se realiza la búsqueda de usuarios con los siguientes
criterios de búsqueda: apellidos y nombres, perfil, estado y cargo, como resultado
100
de la búsqueda se muestra la relación de usuarios con la siguiente información:
apellidos y nombres, estado, perfil y cargo.
Para cada usuario se muestra la opción de “Editar”, al seleccionar esta opción el
sistema muestra la pantalla “Editar Usuario” con los datos del usuario a modificar.
Figura 3.20. Pantalla Usuarios.
Usuarios – Nuevo Usuario
En la Figura 3.21 se muestra el diseño de la pantalla “Nuevo Usuario” en la cual se
ingresan los siguientes datos del usuario para su registro: apellido paterno, apellido
materno, nombres, perfil, cargo, estado, usuario y contraseña.
Figura 3.21. Pantalla Nuevo Usuario.
101
En la pantalla “Editar Usuario” se actualizan los datos del usuario que se deseen
modificar: apellido paterno, apellido materno, nombres, perfil, cargo, estado, usuario
y/o contraseña.
Al presionar el botón “Grabar” el sistema actualiza los datos del usuario, para
regresar a la pantalla anterior se presiona el botón “Regresar”.
Empresas
En la Figura 3.22 se muestra el diseño de la pantalla “Empresas" la que contiene
las opciones de “Nueva Empresa” y “Buscar”.
Figura 3.22. Pantalla Empresas.
Al presionar el botón “Nueva Empresa” el sistema muestra la pantalla “Nueva
Empresa” con los campos vacíos.
Al presionar el botón “Buscar” se realiza la búsqueda de empresas con los
siguientes criterios de búsqueda: nombre y tipo de empresa, como resultado de la
búsqueda se muestra la relación de empresas con la siguiente información:
nombre, dirección, estado y tipo de empresa.
Para cada empresa se muestra la opción de “Editar”, al seleccionar esta opción el
sistema muestra la pantalla “Editar Empresa” con los datos de la empresa a
modificar.
102
Empresas – Nueva Empresa
En la Figura 3.23 se muestra el diseño de la pantalla “Nueva Empresa” en la cual se
ingresan los siguientes datos de la empresa para su registro: nombre, email,
teléfono 1, teléfono 2, fax, dirección 1, dirección 2, país, departamento, código
postal, URL, tipo y descripción.
En la pantalla “Editar Empresa” se actualizan los datos de la empresa que se
deseen modificar: nombre, email, teléfono 1, teléfono 2, fax, dirección 1, dirección 2,
país, departamento, código postal, URL, tipo y descripción.
Al presionar el botón “Grabar” el sistema actualiza los datos de la empresa, para
regresar a la pantalla anterior se presiona el botón “Regresar”.
Figura 3.23. Pantalla Nueva Empresa.
Reportes
En la Figura 3.24 se muestra el diseño de la pantalla “Reportes”, en la que se refleja
la información que va conformando la vida del proyecto y que nos permitirá trabajar
el día a día y posteriormente comparar con las previsiones realizadas.
Contiene las opciones de “Reporte Detallado del Proyecto” y “Reporte de Esfuerzo”.
Al presionar la opción “Ver” se muestra el reporte del proyecto que ha sido
seleccionado.
103
Figura 3.24. Pantalla Reportes.
Reportes - Reporte Detallado del Proyecto
En la Figura 3.25 “Reporte Detallado del Proyecto”, nos permite visualizar en
formato HTML información importante del proyecto, este reporte presenta las
siguientes secciones:
Figura 3.25. Pantalla Reporte Detallado del Proyecto.
104
Datos de Proyecto: sección donde se muestra el código proyecto, nombre proyecto,
fecha inicio, fecha fin, responsable del proyecto, empresa, estado proyecto, tipo
proyecto, porcentaje de avance y descripción.
Personal del proyecto: sección donde se muestra el nombre y rol del personal que
forma parte del proyecto. También se visualiza las actividades y sub actividades
que tiene el proyecto, así como el personal a cargo de cada una de las actividades,
el porcentaje de avance, la fecha inicio y fecha fin de la actividad.
El campo avance de las actividades padre o resumen se recalcula en función al
avance de las hijas, para esto se realiza un promedio ponderado de los avances de
las actividades hijas y sus tiempos de duración.
El campo avance de las actividades padre o resumen servirán para calcular el
avance del proyecto total, para esto se realiza un promedio ponderado de los
avance de las actividades de primer nivel y sus tiempos de duración.
Artefactos del Proyecto: sección donde se muestra todos los artefactos que tiene el
proyecto, así como la versión vigente del artefacto.
Reportes - Reporte Esfuerzo
En la Figura 3.26 “Reporte Esfuerzo”, nos permite visualizar en formato HTML el
esfuerzo realizado por los usuarios para cumplir con sus actividades designadas,
este reporte presenta las siguientes secciones:
Datos del proyecto: sección donde se muestra los datos básicos del proyecto
seleccionado para el “Reporte de Esfuerzo del Proyecto”: código, nombre, fecha
inicio, fecha fin, empresa, estado y porcentaje de avance.
Listado de actividades del proyecto: sección donde se muestra el listado de
actividades que tiene el proyecto elegido. Para cada actividad se muestran los
datos principales de ésta como: fecha inicio, fecha fin, porcentaje de avance,
responsable de la actividad, horas estimadas y horas reales, estas se calculan en
base a las horas registradas por los mismos responsables del proyecto.
105
Figura 3.26. Pantalla Reporte Esfuerzo.
También se listan a nivel de detalle los usuarios que participaron a lo largo de la
vida de la actividad así como las horas que trabajaron en ésta, estas son en
realidad un resumen y muestran el total de horas trabajadas por usuario, ya que en
realidad los usuarios ingresan las horas trabajadas día a día.
Proyecto – Listado de Personal del proyecto
En la Figura 3.27 se muestra el diseño de la pantalla “Listado de Personal del
proyecto” en la cual se agrega el personal que tendrá el proyecto, es decir, las
personas involucradas en el ciclo de vida del proyecto. Contiene las opciones de
“Agregar Persona” y “Editar”.
Al presionar la opción “Agregar Persona” el sistema realiza la asignación del
personal, se debe seleccionar a la persona y el rol que ocupará dentro del proyecto.
En la pantalla “Editar Personal” se actualizan los datos de la persona asignada al
proyecto.
106
Figura 3.27. Pantalla Listado de Personal del Proyecto.
Proyecto – Listado de actividades
En la Figura 3.28 se muestra el diseño de la pantalla “Listado de Actividades” en la
que se muestra la relación de las actividades en las cuales es responsable un
determinado miembro del equipo del proyecto, en esta pantalla se observa el
nombre, fecha inicio, fecha fin, estado y progreso de cada actividad asignada a un
miembro del equipo.
En la parte superior se visualiza los datos principales del proyecto al cuál se le lista
en la parte posterior las actividades que tiene registradas.
Al presionar el botón “Nueva Actividad” el sistema muestra la pantalla “Nueva
Actividad” con los campos vacíos.
Para cada actividad se muestra la opción de “Editar”, al seleccionar esta opción el
sistema muestra la pantalla “Editar Actividad” con los datos de la actividad a
modificar. También se muestra la opción de “Crear Actividad” y “Ver Artefactos”.
107
Figura 3.28. Pantalla Listado de Actividades.
Proyecto – Nueva actividad
En la Figura 3.29 se muestra el diseño de la pantalla “Nueva Actividad” en la cual
se ingresan los siguientes datos de la actividad para su registro: nombre, estado,
tipo, prioridad, responsable, progreso, actividad padre, fecha inicio, fecha fin,
descripción.
Las actividades creadas pueden ser hijos de una actividad principal o padre. Las
horas que esperamos tome la actividad se almacena en el campo horas estimadas,
cabe resaltar que las horas reales de la actividad se calcularan sumando las horas
de trabajo registradas desde la pantalla “Mis Actividades – Ver Horas Trabajo”.
En el campo progreso se guarda el porcentaje de avance del trabajo realizado en la
actividad, este campo es calculado para las actividades principales en función al
promedio ponderado del progreso de sus actividades hijas.
En esta pantalla se puede asociar la actividad a una o más actividades de una
metodología que se haya elegido cuando se creó el proyecto.
En la pantalla “Editar Actividad” se actualizan los datos de la actividad que se
deseen modificar.
108
Al presionar el botón “Grabar” el sistema actualiza los datos de la actividad, para
regresar a la pantalla anterior se presiona el botón “Regresar”.
Figura 3.29. Pantalla Nueva Actividad.
Proyecto – Ver Artefactos
En la Figura 3.30 se muestra el diseño de la pantalla “Ver Artefactos por actividad”
en la cual se muestra el listado de artefactos que tiene la actividad seleccionada.
Para regresar a la pantalla anterior se presiona el botón “Regresar”.
Figura 3.30. Pantalla Ver Artefactos por Actividad.
109
Proyecto – Listado de artefactos
En la Figura 3.31 se muestra el diseño de la pantalla “Listado de Artefactos” en la
cual se muestra el listado de artefactos que tiene un determinado proyecto. Por
cada artefacto se muestran las actividades que están relacionadas así como su
estado y versión actual.
En la parte superior se visualiza los datos principales del proyecto al cuál se le lista
en la parte posterior los artefactos que tiene registrados.
Al presionar el botón “Nuevo Artefacto” el sistema muestra la pantalla “Nuevo
Artefacto” con los campos vacíos. Para cada artefacto se muestra la opción de
“Versiones”, “Descargar” y “Reservar”.
Figura 3.31. Pantalla Listado de Artefactos.
110
Proyecto – Nuevo Artefacto
En la Figura 3.32 se muestra el diseño de la pantalla “Nuevo Artefacto” en la cual se
ingresan los datos correspondientes a un nuevo artefacto, donde se ingresa el
código y nombre del artefacto, el archivo a cargar y su descripción.
En esta pantalla se puede asociar el artefacto con una o más actividades del
proyecto y con uno o más artefactos de la metodología que se haya elegido cuando
se creó el proyecto.
Al presionar el botón “Grabar” el sistema guarda los datos del artefacto, para
regresar a la pantalla anterior se presiona el botón “Regresar”.
Figura 3.32. Pantalla Nuevo Artefacto.
Proyecto – Descargar Artefacto
En la Figura 3.33 se muestra el diseño de la pantalla “Descargar Artefacto” en la
cual se pueden descargar el artefacto seleccionado al espacio local del usuario.
Proyecto – Reservar Artefacto
En la Figura 3.34 se muestra el diseño de la pantalla “Reservar Artefacto” en la cual
se realiza la reserva del artefacto seleccionado para que otros usuarios no puedan
modificar la información, solo visualizarla. Cuando el artefacto es reservado se
muestran las opciones de “Liberar” y “Subir”.
111
Figura 3.33. Pantalla Descarga Artefacto.
Figura 3.34. Pantalla Reservar Artefacto.
Proyecto – Subir Artefacto
En la Figura 3.35 se muestra el diseño de la pantalla “Subir Artefacto” en la cual se
genera una nueva versión del artefacto seleccionado. Se debe seleccionar el
112
artefacto que se desea subir de una ruta determinada, así como ingresar alguna
observación.
Al presionar el botón “Grabar” el sistema cambia de estado el artefacto así puede
ser modificado por otros usuarios y se registran los datos del usuario que generó la
versión y fecha correspondiente. Para regresar a la pantalla anterior se presiona el
botón “Regresar”.
Figura 3.35. Pantalla Subir Artefacto.
Proyecto – Versiones del Artefacto
En la Figura 3.36 se muestra el diseño de la pantalla “Versiones del Artefacto” en la
cual se visualizan las distintas versiones que tiene el artefacto seleccionado.
Para cada artefacto seleccionado se muestra la opción de “Descargar”, la que
permite descargar la versión del artefacto a su espacio local.
Se puede cambiar la versión vigente del artefacto con la opción “Cambiar”. Para
regresar a la pantalla anterior se presiona el botón “Regresar”.
113
Figura 3.36. Pantalla Versiones del Artefacto.
Proyecto – Diagrama de Gantt
En la Figura 3.37 se muestra el diseño de la pantalla “Diagrama de Gantt” en la cual
se visualizan todas las actividades ingresadas para el proyecto seleccionado.
En el eje horizontal se muestra la escala de tiempo definido en términos de la
unidad más adecuada al proyecto a ejecutar.
En el eje vertical se muestran las tareas que constituyen el proyecto a ejecutar. A
cada tarea se representa por una línea horizontal cuya longitud es proporcional a la
duración en la escala de tiempo (eje horizontal).
Para cada actividad se muestra el usuario responsable, el porcentaje de avance de
la actividad, esta es actualizada por el usuario, por lo que representa el avance real
de la actividad y las fechas de inicio y fin de la actividad.
En el diagrama de Gantt se visualiza las barras de actividades según los colores
para avisar sobre el fin de cada una de ellas, además se indica el porcentaje de
avance. A medida que progresa una tarea, se completa proporcionalmente la barra
que la representa hasta llegar al grado de finalización.
Para cambiar la escala que se muestra en el diagrama, se selecciona las opciones
que aparecen en la parte inferior en la etiqueta formato, podemos visualizar el
diagrama en días, semanas, meses y trimestres.
114
Figura 3.37. Pantalla Diagrama de Gantt.
115
Capitulo 4: Observaciones, conclusiones y recomendaciones
En este capítulo se resumirá las observaciones y conclusiones que se han podido
obtener durante la ejecución del presente trabajo. También se brindará algunas
recomendaciones para trabajos relacionados al mismo tema.
4.1. Observaciones
Las investigaciones y el análisis realizados previos al desarrollo de la
herramienta han permitido identificar los conceptos y herramientas utilizadas
en la actualidad para la administración de proyectos y gestión de la
configuración. Esto permite centrar esfuerzos en las deficiencias o vacíos aun
no cubiertos en esta área con el fin de evitar reinventar conceptos o
herramientas previamente desarrollados.
Las funcionalidades definidas en los requerimientos fueron contempladas
durante la etapa de análisis y diseño del sistema. Esto se comprueba
visualizando los distintos diagramas: de casos de uso, de clases de análisis, de
clases de diseño y de secuencia. Para conseguirlo se ha utilizado el análisis y
diseño orientado a objetos utilizando la metodología de desarrollo de software
del Proceso Unificado apoyado con el lenguaje de modelado UML, que al
116
utilizar un lenguaje gráfico permite modelar sistemas de software de manera
eficiente.
La complejidad de los proyectos hacen imprescindibles que los sistemas de
administración de proyectos puedan gestionar los artefactos involucrados en
los proyectos.
Para la elaboración de los diagramas correspondientes a la etapa de análisis y
diseño de la herramienta se utilizó la librería del IDE Netbeans que integra la
notación gráfica UML. Este último, facilitó la elaboración final de los diagramas
de clases de diseño y secuencia debido a que los atributos y métodos
asociados a las clases eran extraídos directamente del código fuente.
Durante la etapa de análisis se ha estructurado los requerimientos del sistema
de manera que nos facilite su comprensión, su preparación, su modificación y
en general su mantenimiento y por tanto poder resolver aspectos internos del
sistema, profundizar en la funcionalidad y características
Durante la etapa de diseño se ha definido el sistema de tal forma que permitió
dar soporte a todos los requerimientos definidos, incluyendo los no funcionales
y restricciones relacionadas con el lenguaje de programación, componentes
reutilizables y tecnología de interfaz de usuario.
Durante la etapa de diseño se eligió una arquitectura Web basada en el patrón
de diseño MVC. En base a la arquitectura y a los requerimientos funcionales se
elaboraron los prototipos del sistema, los cuales facilitan su mantenimiento y su
posible ampliación en el futuro.
La utilización del marco de trabajo JSF (Java Server Faces) facilitó la creación
de una moderna interfaz de usuario diferente a los clásicos formularios Web, lo
que permitió diseñar una interfaz de usuario amigable.
La utilización de librerías independientes de la tecnología y lenguaje de
programación, facilitó la creación del diagrama de Gantt facilitando su
integración. Esto además es favorecido gracias a que la carga de los datos que
117
se mostrarán en el Gantt se realiza desde un archivo XML estándar que puede
ser generado con cualquier tecnología.
4.2. Conclusiones
Como resultado del trabajo desarrollado a lo largo de todos los capítulos que
componen esta tesis, se detallan a continuación las conclusiones obtenidas según
el alcance establecido al inicio de este documento:
Se logró diseñar una herramienta tecnológica que permite la administración de
proyectos en especial de desarrollo de software, permitiendo establecer y llevar
a cabo sistemáticamente las actividades que permitan cumplir con los objetivos
de un proyecto, llevar un mejor control del ciclo de vida del proyecto, permite la
adecuada y optima asignación de actividades a los equipos de proyecto a partir
de los reportes de carga de trabajo de los mismos.
Se consiguió diseñar una herramienta que permite crear la instancia de una
metodología a través de una interfaz gráfica amigable en entorno Web basada
en el lenguaje XPDL. Las entidades que pueden ser asociadas a una
metodología son: los proyectos, las actividades y los artefactos.
Se puede afirmar que la herramienta EACS Project Manager permite un
mecanismo de gestión del repositorio de los artefactos (gestión de la
configuración) para cada proyecto, permitiendo a los usuarios administrar y
modificar con seguridad los artefactos que se definirán por cada actividad, esta
información ayudará a los administradores a controlar el avance de los
proyectos siguiendo la metodología elegida.
Se puede concluir que la herramienta EACS Project Manager cumple con los
objetivos de acceso descentralizado por parte de los usuarios que hacen uso
de ella. La plataforma Web sobre la cual ha sido construida permite que
cualquier usuario registrado en el sistema pueda acceder a ella desde cualquier
ubicación geográfica.
118
4.3. Recomendaciones
Como resultado del trabajo realizado, se ha podido identificar algunas
recomendaciones que contribuirán a la mejora del proceso para la etapa de análisis
y diseño de la plataforma:
Antes de comenzar con el análisis y diseño se debería contar con la
comprensión precisa y detallada de los requerimientos del sistema.
En el diseño se bosqueja procedimientos de captura de datos, accesos
efectivos al sistema y archivos así como métodos adecuados de codificación y
descodificación de archivos XML para que la implementación lo use.
Según la definición de los requerimientos no funcionales realizados en la etapa
de análisis, es recomendable contar con personas que tengan la experiencia
necesaria en el manejo del lenguaje de programación requerido para que
colaboren eficazmente en el proceso de implementación del sistema.
En el diseño se identificaron aquellos componentes que serán de mayor
utilización durante la implementación del sistema, los cuales fueron evaluados
en partes críticas de la plataforma, lo que contribuyó a la construcción de una
arquitectura estable y sólida.
En el diseño se identificaron aquellos componentes que son parametrizables
los cuales podemos adaptarlos dependiendo de las necesidades del sistema, el
conseguir establecer parámetros que puedan modificarse nos ayuda a lograr
adaptaciones de forma sencilla, en lugar de estar configurando constantemente
las rutas de los archivos de configuración del sistema.
Se recomienda investigar sobre diversas técnicas de estimación de tiempo,
costos, esfuerzo, manejo del valor ganado y manejo de desviaciones.
119
Bibliografía
[BAB, 1986] W. Babich, Software ConFiguration Management, Addison-Wesley, 1986.
[BRYAN-SIEGEL, 1984] W. L. Bryan y S. G. Siegel, Software product assurance.
Techniques for reducing software risks, Elsevier, 1984.
[BOVERI, 1990] Boveri Brown . "Manual de Gestión de Proyectos".
[PEREÑA, 1996] Pereña Brand, Jaime. "Dirección y Gestión de Proyectos".
[PRESSMAN, 1998] Pressman, Roger S. "Ingeniería del software : un enfoque práctico".
[CMII] Model for Configuration Management. Institute of Configuration Management.
[SWEBOK, 2004] Guide to the Software Engineering Body of Knowledge.
[JACOBSON, 2000] Ivar Jacobson, Grady Booch, James Rumbaugh. “El proceso unificado
de desarrollo de software”.
[KRUCHTEN] Philippe Kruchten. “The rational unified process made easy: a practitioner's
guide to the RUP”.
[LARMAN, 2003] Graig Larman. “UML y patrones: una introducción al análisis y diseño
orientado a objetos y al proceso unificado”.
[MELOCHE, 2002] Thomas Meloche. “The Rational Unified Process (RUP)”. En
http://www.menloinnovations.com/freestuff/whitepapers/RationalUnifiedProcess.pdf
[IEEE Std.729-1983] IEEE Standard Glossary of software Engineering Terminology.
The Institute of Electrical and Electronics Engineers, Inc. New York, EEUU.
[IEEE Std.828-1998] IEEE Standard for Software Configuration Management Plans.
The Institute of Electrical and Electronics Engineers, Inc. New York, EEUU.
[PMBOK, 2008] Guía de los Fundamentos para la Gestión de Proyectos (Guía del PMBOK)
Cuarta edición.
[PMI] Project Management Institute (PMI) www.pmi.org, [visitado en Noviembre del 2008]
[MCMANUS, 2003] McManus, John y Wood-Harper, Trevor (2003) "Information Systems
project management: The price of failure", Management Services; May; 47, 5; ABI/INFORM
Global, pp. 16-19
[KRUCHTEN, 1999] P.B. Kruchten: The Rational Unified Process (An Introduction).
[NTP-ISO/IEC 12207:2006] Norma Técnica Peruana NTP-ISO/IEC 12207.
http://www.bvindecopi.gob.pe/normas/isoiec12207.pdf [visitado en Octubre del 2010]
120
[COMPETISOFT, 2006] COMPETISOFT: Proyecto de mejora de procesos para fomentar la
competitividad de la pequeña y mediana industria del software de Iberoamérica, Versión 0.2.
Diciembre 2006.
[BPMI] Business Process Management Initiative. Business Process Modeling Language.
BPMI.org. En http://www.bpmi.org/bpmn-spec.htm, [visitado en Marzo del 2011]
[MOPROSOFT, 2003] Modelo de Procesos para la Industria de Software, MoProSoft V 1.1,
mayo 2003, pp 121
[MOPROSOFT] Oktaba, H., Alquicira, C., Su, A., Martinez, A., Pérez, C., López, F.: Modelo
de procesos para la industria del software.
http://www.e-computacion.net/MoProSoft%20HannaOktaba.ppt#259,2,Contenido [visitado
en Marzo del 2008]
[B-KIN] En http://www.b-kin.com, [visitado en Marzo del 2008]
[BUGTRACK] En http://www.bug-track.com, [visitado en Marzo del 2008]
[KPLATO] En http://www.koffice.org/kplato, [visitado en Marzo del 2008]
[DOTPROJECT] En http://www.dotproject.net, [visitado en Marzo del 2008]
[MSPROJECT] http://www.microsoft.com/project, [visitado en Noviembre del 2010]
[PRIMAVERA] http://www.oracle.com/us/corporate/Acquisitions/Primavera_Systems
[visitado en Marzo del 2011]
[XPDL] En http://www.xpdl.org, [visitado en Julio del 2008]
[STANDISH GROUP, 2009]. En www.standishgroup.com, [visitado en Agosto del 2009]
[MVC] Modelo, Vista y Controlador
En http://es.wikipedia.org/wiki/Modelo_Vista_Controlador, [visitado en Marzo del 2009]
[MJS] Herramienta para Modelado de Procesos: MJS Process Designer. Tesis para optar el
Título de Ingeniero Informático presentada por: Camarena M., Pedreschi J. y Rondón S.
[JSF] En www.java.sun.com/javaee/javaserverfaces, [visitado en Agosto del 2008]
[SPRING] En http://es.wikipedia.org/wiki/Spring_Framework, [visitado en Agosto del 2008]
[POJO] Richardson, Chris. “POJOs in Action”, 1ra edición. Manning Publications.
2006.
[EJB] Monson-Haefel, Richard; Burke, Bill; Labourey, Sacha. “Enterprise JavaBeans”, 4ta
edición. O’Reilly Media, Inc. 2004.
[XML] En http://www.w3.org/standards/xml, [visitado en Octubre del 2008]
[CASTOR] En http://www.castor.org, [visitado en Marzo del 2008]
[EACS] Herramienta para Gestión de Proyectos basada en XPDL para el proyecto
COMPETISOFT – Construcción, Pruebas e Integración.
[BPMN_DOCS] Object Management Group “Business Process Modeling Notation(BPMN)
Specification”. Final Adopted Specification dtc/06-02-
01,http://www.bpmn.org/Documents/OMG Final Adopted BPMN 1-0 Spec06-02-01.pdf,
[visitado en Marzo del 2008]
121
[BPMN] En http://www.bpmn.org/, [visitado en Octubre del 2008]
[XPDL_DOCS] En http://www.club-bpm.com/X.htm, [visitado en Mayo del 2011]