i
PONTIFICIA UNIVERSIDAD CATÓLICA DEL ECUADOR SEDE SANTO DOMINGO Dirección Académica – Escuela de Sistemas
Portada DISEÑO Y PROPUESTA DE UNA METODOLOGÍA DE DESARROLLO DE SOFTWARE PARA EL ÁREA DE PROGRAMACIÓN DE LA PONTIFICIA UNIVERSIDAD CATÓLICA DEL ECUADOR, SEDE SANTO DOMINGO PUCE SD
Disertación de grado previa la obtención del título de Ingeniero de Sistemas y Computación.
Línea de investigación: Estudio, Diseño e Implementación de Software.
Autor: FAUSTO ROBERTO SOTO JARAMILLO
Asesor: MG. ANDRADE SALAZAR MILTON TEMISTÓCLES
Santo Domingo – Ecuador Abril, 2015
ii
PONTIFICIA UNIVERSIDAD CATÓLICA DEL ECUADOR SEDE SANTO DOMINGO Dirección Académica – Escuela de Sistemas
HOJA DE APROBACIÓN
DISEÑO Y PROPUESTA DE UNA METODOLOGÍA DE DESARROLLO DE SOFTWARE PARA EL ÁREA DE PROGRAMACIÓN DE LA PONTIFICIA UNIVERSIDAD CATÓLICA DEL ECUADOR, SEDE SANTO DOMINGO PUCE SD
Línea de investigación: Estudio, Diseño e Implementación de Software.
Autor: FAUSTO ROBERTO SOTO JARAMILLO
Milton Temistocles Andrade Salazar, Mg. f. DIRECTOR DE LA DISERTACIÓN DE GRADO Adrián Rolando Cevallos Dueñas, Mg. CALIFICADOR
f.
Margoth Elisa Guaraca Moyota, Ing. CALIFICADOR
f.
Rodolfo Sirilo Córdova Galvez, Mg. DIRECTOR DE LA ESCUELA DE SISTEMAS
f.
iii
DECLARACIÓN DE AUTENTICIDAD Y RESPONSABILIDAD
Yo, Fausto Roberto Soto Jaramillo portador de la cédula de ciudadanía No. 1722421029 declaro que los resultados obtenidos en la Investigación que presento como informe final, previo la obtención del Grado de INGENIERO DE SISTEMAS Y COMPUTACIÓN son absolutamente originales, auténticos y personales.
En tal virtud, declaro que el contenido, las conclusiones y los efectos legales y académicos que se desprenden del trabajo propuesto de investigación y luego de la redacción de este documento son y serán de mi sola y exclusiva responsabilidad legal y académica.
Fausto Roberto Soto Jaramillo C.I 1722421029
iv
DEDICATORIA El presente trabajo quiero dedicar primeramente a mi padre celestial, a mi querida madre que luch贸 para que pueda estudiar, a mis abuelos por haberme cuidado y al resto de mi familia, los cuales me han brindado todo su apoyo para que pueda culminar esta disertaci贸n de grado. Fausto Soto
v
AGRADECIMIENTO Este trabajo de investigación se llevó a cabo gracias al mejoramiento continuo que la PUCE SD requiere en sus departamentos de investigación, como lo es el departamento de Dirección de Tecnologías de la Información (DTI).
Agradecer, a mi familia que ha sido mi sustento durante todo mi proceso de estudios. Al Mg. Milton Andrade, mi Director de tesis, por guiarme en el desarrollo de mi disertación. Fausto Roberto Soto Jaramillo
vi
RESUMEN El objetivo de este trabajo es el plantear una propuesta de una metodología de desarrollo de software para el área de programación de la Pontificia Universidad Católica del Ecuador Sede Santo Domingo, llamada DTI (Dirección de Tecnología de la Información). Para ello se realizó una investigación y análisis situacional en cuál se evidenció la falta de una metodología de desarrollo de software en el que consten procedimientos que permitan un control adecuado de los procesos realizados y faciliten el desarrollo de software. Se determinó que la mejor metodología de desarrollo de software ágil es la XP (Programación Extrema), ya que su estructura y características permiten que se adapte mejor al tipo de trabajo que utilizan las instituciones y empresas que están realizando continuamente sistemas o a su vez modificando su estructura. Y en caso de proyectos de largo alcance y tiempo se estableció la metodología tradicional RUP debido a su adaptabilidad en diferentes niveles de aptitud y diferentes tamaños de proyectos. Con la implementación de la metodología XP y RUP se optimizarán los procesos y el tiempo en el desarrollo de las aplicaciones que se realicen en el área de software; a la vez que se optimizará la administración de las mismas.
vii
ABSTRACT The objective of this work is to establish a proposal of a methodology of development of software in Programming area of Pontificia Universidad Cat贸lica del Ecuador, Sede Santo Domingo, called DTI (Information Technology Department). To do this, it was carried out a research and a situational analysis in which it provided evidence of lack of a methodology of development of software in which has procedures that permit an adequate control of processes executed and facilitate a development of software. It was determined that the better methodology of development of agile software is XP (Extreme Programming), due to its structure and features permit to be better adapted to the kind of work used by institutions and enterprises that are continuously developing systems or at the same time modifying their structure. And in a case of long-term and time projects, it was established a RUP traditional methodology because of its adaptability in different proficiency levels and different sizes of projects. With implementation of XP and RUP methodology it will be optimized processes and time in developing applications that are carried out in the software area; at the same time it will be optimized the management of them.
viii
TABLA DE CONTENIDOS Portada……… .............................................................................................................. i Hoja de aprobación ...................................................................................................... ii Declaración de autenticidad y responsabilidad ........................................................... iii Dedicatoria… .............................................................................................................. iv Agradecimiento ............................................................................................................ v Resumen……. ............................................................................................................. vi Abstract……. ............................................................................................................. vii Tabla de contenidos................................................................................................... viii Índice de ilustraciones ................................................................................................ xii Índice de tablas .......................................................................................................... xiv Índice de anexos ......................................................................................................... xv
I INTRODUCCIÓN ................................................................................................... 1
II PLANTEAMIENTO DEL PROBLEMA............................................................. 3
2.1
Antecedentes del problema de investigación .......................................... 3
2.2
Delimitación del Problema de Investigación. ......................................... 4
2.3
Justificación de la Investigación. ............................................................ 5
2.4
Objetivos de la Investigación. ................................................................. 6
2.4.1
Objetivo General. .................................................................................... 6
2.4.2
Objetivos Específicos. ............................................................................ 7
ix
III MARCO REFERENCIAL. ................................................................................. 8 3.1
Revisión de la literatura o fundamentos teóricos. ................................... 8
3.1.1
Ingeniería de Software. ........................................................................... 8
3.1.2
Metodología. ........................................................................................... 9
3.1.2.1
Metodologías de Desarrollo de Software................................................ 9
3.1.2.2
Cronología de Metodologías de Desarrollo de Software. ..................... 11
3.1.2.3
Clasificación de las metodologías......................................................... 12
3.1.2.3.1.
Metodologías Tradicionales. ................................................................. 12
3.1.2.3.2.
Metodologías Ágiles. ............................................................................ 13
3.1.3
Ciclo de vida del software. ................................................................... 16
3.1.3.1
Procesos primarios del ciclo de vida del software. ............................... 16
3.1.4
Modelos para el Desarrollo de Software............................................... 17
3.1.4.1
Modelos Genéricos de Desarrollo de Software. ................................... 18
3.1.4.1.1.
Modelo en Cascada. .............................................................................. 18
3.1.4.1.2.
Modelo de Prototipos. ........................................................................... 19
3.1.4.1.3.
Modelo de Desarrollo Evolutivo........................................................... 20
3.1.4.1.4.
Modelo en Espiral. ................................................................................ 21
3.1.4.1.5.
Modelo de desarrollo basado en componentes. .................................... 22
3.1.4.1.6.
Modelo de métodos formales. ............................................................... 23
3.2
Investigaciones o experiencias empíricas vinculadas con el problema de investigación. ........................................................................................ 23
3.3
Hipótesis del trabajo. ............................................................................ 24
IV METODOLOGÍA DE LA INVESTIGACIÓN. ............................................... 25 4.1
Diseño/Tipo de investigación. .............................................................. 25
x
4.1.1
Contexto. ............................................................................................... 25
4.1.2
Tipo de la investigación. ....................................................................... 26
4.1.3
Diseño de la investigación. ................................................................... 26
4.1.4
Métodos de investigación. .................................................................... 27
4.2
Determinación de la Población/Universo. ............................................ 31
4.2.1
Población. ............................................................................................. 31
4.2.2
Muestra. ................................................................................................ 31
4.3
Determinación de la muestra. ............................................................... 32
4.4
Tipos de fuentes de información. .......................................................... 32
4.5
Técnicas e Instrumentos de recogida de datos. ..................................... 33
4.6
Propuestas de metodologías de desarrollo de software para el DTI. .... 34
4.6.1
Propuesta de una metodología RUP. .................................................... 34
4.6.1.1
Herramientas a utilizar para aplicar RUP. ............................................ 34
4.6.1.1.1.
Rational Rose. ....................................................................................... 34
4.6.1.2
Aplicación de RUP. .............................................................................. 36
4.6.1.2.1.
Modelado del negocio. .......................................................................... 36
4.6.1.2.2.
Definición de los requerimientos. ......................................................... 41
4.6.1.2.3.
Modelo del sistema. .............................................................................. 42
4.6.1.2.4.
Diseño e implementación del sistema. .................................................. 43
4.6.2
Propuesta de una metodología XP. ....................................................... 44
4.6.2.1
Herramientas a utilizar para aplicar XP. ............................................... 45
4.6.2.1.1.
Sprintometer.......................................................................................... 45
4.6.2.2
Pasos de la metodología XP.................................................................. 46
4.6.2.3
Fases de la metodología XP. ................................................................. 48
4.6.2.3.1.
Primera Fase: Planificación del Proyecto. ............................................ 48
xi
4.6.2.3.2.
Segunda Fase: Diseño. .......................................................................... 50
4.6.2.3.3.
Tercera Fase: Codificación. .................................................................. 51
4.6.2.3.4.
Cuarta Fase: Pruebas. ............................................................................ 52
V RESULTADOS ..................................................................................................... 54 5.1
Discusión y análisis de resultados. ....................................................... 54
5.2
Conclusiones. ........................................................................................ 57
5.3
Recomendaciones. ................................................................................ 58
Fuentes de referencia.................................................................................................. 59 Anexos……… ........................................................................................................... 61
xii
ÍNDICE DE ILUSTRACIONES Ilustración 1
Principios de Manifiesto Ágil ........................................................ 15
Ilustración 2
Modelo en Cascada ........................................................................ 19
Ilustración 3
Modelo de Prototipos ..................................................................... 20
Ilustración 4
Modelo Incremental ....................................................................... 21
Ilustración 5
Modelo en Espiral .......................................................................... 22
Ilustración 6
Modelo de desarrollo basado en componentes .............................. 22
Ilustración 7
Modelo de métodos formales......................................................... 23
Ilustración 8
Diagrama de casos de uso del negocio .......................................... 38
Ilustración 9
Diagrama de Actividades de Casos de Uso ................................... 39
Ilustración 10
Diagrama de Actividades – revisar expediente.............................. 40
Ilustración 11
Diagrama de clases del modelo de objetos .................................... 41
Ilustración 12
Diagrama de casos de uso por paquetes ........................................ 43
Ilustración 13
Diseño de una BD .......................................................................... 44
Ilustración 14
Proceso de la Metodología XP ...................................................... 45
Ilustración 15
Fases de la Metodología XP .......................................................... 53
Ilustración 16
Diagrama de Actividades - Solicitar reportes ................................ 63
Ilustración 17
Diagrama de Actividades - Revisar expediente de equipo ............ 64
Ilustración 18
Diagrama de Actividades - Solicitar registro ................................. 65
Ilustración 19
Diagrama de Actividades - Solicitar registro de software ............. 66
Ilustración 20
Diagrama de Actividades - Realizar control interno ..................... 67
Ilustración 21
Diagrama de Actividades - Solicitar historial de incidencias ........ 68
Ilustración 22
Control Interno............................................................................... 69
Ilustración 23
Gestionar Historial de incidencias ................................................. 70
Ilustración 24
Registro de control de acceso ........................................................ 70
xiii
Ilustraci贸n 25
Diagrama de Clases ....................................................................... 71
Ilustraci贸n 26
Dise帽o de una BD .......................................................................... 72
xiv
ÍNDICE DE TABLAS Tabla 1
Actores del negocio .............................................................................. 37
Tabla 2
Trabajadores del negocio ...................................................................... 38
Tabla 3
Actores del sistema ............................................................................... 42
Tabla 4
Matriz Selección de metodología tradicional ....................................... 56
Tabla 5
Matriz de Selección de metodología ágil .............................................. 56
Tabla 6
Historias de Usuario - autenticación ..................................................... 73
Tabla 7
Historias de Usuario - inventario de activos ......................................... 74
Tabla 8
Historias de Usuario - selección de préstamos ..................................... 74
Tabla 9
Tareas de Usuario - diseño interfaz ...................................................... 75
Tabla 10
Tareas de Usuario - listado de préstamos ............................................. 75
Tabla 11
Historias de Usuarios - Administrador ................................................. 76
Tabla 12
Historias de Usuario - secretaría ........................................................... 76
Tabla 13
Tareas .................................................................................................... 77
Tabla 14
Requerimientos ..................................................................................... 78
Tabla 15
Descripción de los Riesgos ................................................................... 80
Tabla 16
Análisis de Riesgos ............................................................................... 82
Tabla 17
Criterio de Valoración de Probabilidad ................................................ 83
Tabla 18
Impuesto del Riesgo.............................................................................. 83
Tabla 19
Exposición del Riesgo .......................................................................... 83
Tabla 20
Prioridad del Riesgo.............................................................................. 83
Tabla 21
Exposición del Riesgo .......................................................................... 84
xv
ÍNDICE DE ANEXOS Anexo 1
Comparación entre las metodologías tradicionales y las ágiles. ........... 61
Anexo 2
Entrevista .............................................................................................. 62
Anexo 3
Ejemplo de Análisis de un proyecto con metodología RUP ................. 63
Anexo 4
Ejemplo de Análisis Funcional y de Riesgos de un proyecto con ........... metodología XP .................................................................................... 73
I INTRODUCCIÓN
Las metodologías de desarrollo de software desde su aparición, se las considera como una herramienta de gran ayuda para los desarrolladores de software y en la actualidad para las empresas e instituciones que poseen departamentos de sistemas. Su función principal es la de agilizar y mejorar los procesos existentes.
Para que una metodología de desarrollo de software se la considere flexible, debe permitir que el encargado de un proyecto cubra las necesidades del mismo, mediante la selección adecuada de los procesos, evitando la realización de actividades innecesarias y acentuando las que resulten más significativas.
Este proyecto busca brindar a la Universidad, específicamente al Departamento de Tecnología de la Información (DTI), una optimización en el control de los cambios realizados en un proyecto de software, ya que todos los procesos realizados actualmente en el departamento no siguen una metodología específica que optimice sus recursos. Por lo que se propone establecer dos metodologías, dependiendo del tiempo de desarrollo y alcance del proyecto. Si el proyecto de desarrollo de algún software requiere de mucho tiempo por su complejidad se propondrá una metodología tradicional como la RUP y si a su vez, el tiempo y alcance del proyecto es relativamente corto se propondrá una metodología ágil como la XP (Programación Extrema).
1
2
La estructura del documento inicia con el planteamiento del problema que formaliza la idea de la investigación para determinar los alcances y objetivos. Posteriormente se desarrolla una parte que contiene los conceptos y definiciones de las teorías relevantes al tema en estudio especificando las fuentes bibliográficas, luego se procede a realizar una investigación de campo en el DTI para detectar, analizar y seleccionar las metodologías más adaptables a su trabajo. Con la implementación de la metodología XP y RUP se optimizarán los procesos, la administración y el tiempo en el desarrollo de las aplicaciones que se realicen en el área de software del DTI.
II PLANTEAMIENTO DEL PROBLEMA.
2.1 Antecedentes del problema de investigación
Desde el aparecimiento del software se ha procurado a desarrollarlo mediante metodologías que ajusten el proceso de desarrollo, por lo cual se crearon las metodologías pesadas o tradicionales y las metodologías ágiles. El desarrollo de los sistemas tradicionales de ciclo de vida se inició en la década de 1960 para desarrollar sistemas de negocio para las grandes empresas. La idea primaria era la de seguir el desarrollo de los sistemas de información de una manera estructurada y metódica, mediante cada una de las etapas del ciclo de vida.
Uno de los pasos más importantes dados en la industria del software fue aquel en el que se cristalizó el modelo en cascada, el cual fue determinante para la formulación del análisis estructurado.
Posteriormente los centros de investigación de empresas, Universidades entre otros, se vieron en la necesidad de optimizar los procesos de desarrollo de software por lo que surgen las metodologías de desarrollo de software ágiles o Programación Extrema. Esta metodología nació con el fin de reemplazar a las viejas metodologías de desarrollo como el famoso modelo en Cascada o Waterfall. Una de sus principales características es la de responder a los cambios más que seguir estrictamente un plan. 3
4
Planificar el trabajo a realizar es muy útil y las metodologías ágiles consideran actividades específicas de planificación a corto plazo.
Nuestro país posee Universidades que en la actualidad constan de centros de investigación de tecnología, los cuales desarrollan sus propios sistemas mediante metodologías de desarrollo de software. Entre las principales se encuentra la ESPOL de Quito y la Yachay conocida como Ciudad del Conocimiento.
2.2 Delimitación del Problema de Investigación.
En la actualidad las grandes instituciones académicas que se encuentran en constante expansión, se ven en la necesidad de optar por estrategias que les permitan mejorar los procesos de desarrollo de software en el área de investigación de programación.
Hay un gran número de factores que repercuten en la persona que trabaja dentro de un entorno de desarrollo software. Los cambios en el sistema operativo, el lenguaje de programación, la organización del proyecto, o los estándares establecidos para los diferentes aspectos del ciclo de vida de un proyecto pueden influir tanto en el trabajador como en la cantidad de trabajo que puede realizar.
La productividad, cómo una medida cuantitativa de la cantidad de trabajo que puede ser realizada por una persona, se puede alterar de distintas maneras, alguna de ellas tan simple como, por ejemplo, enseñar a todos los implicados en el trabajo a escribir a máquina. Este hecho, sin ir más lejos, podría tener un mayor impacto en la
5
productividad que el de introducir unas nuevas herramientas software o técnicas de diseño.
Por todos estos factores, el uso de una metodología de desarrollo de software es tan importante para la institución donde se la implante como para los trabajadores que la ejecuten, ya que facilita el tiempo de desarrollo, minimiza el fallo de errores y reduce los procesos.
Debido a todos estos inconvenientes la Pontificia Universidad Católica del Ecuador sede Santo Domingo, se ha visto en la necesidad de utilizar una metodología de desarrollo de software para la optimización de sus procesos. Por lo que se determinó el estudio y diseño de dos metodologías de desarrollo de software que se adapten mejor al tipo de trabajo; una metodología tradicional en caso de un proyecto de largo plazo o una metodología ágil en caso de un proyecto de corto plazo.
2.3 Justificación de la Investigación.
La implementación de una metodología de desarrollo de software en el área de programación de la PUCE SD es una necesidad, por motivo que no existe una estructuración en la manera de implementar o modificar un sistema. Los procesos no tienen un seguimiento estructurado como lo deben tener las instituciones de prestigio.
Los principales beneficios de tener una metodología que se adapte a las necesidades de la universidad, es precisamente eso, la adaptabilidad a procesos existentes pero
6
con un mejor funcionamiento, facilitará la corrección de errores ya que al estar trabajando con una plataforma metodológica tenemos panorama a inspeccionar cada uno de los procesos ya estructurados que proporciona este tipo de metodologías.
Otras de las principales ventajas de contar con una metodología de desarrollo son:
•
La visión del producto, todas las personas deben conocer lo que el equipo está tratando de hacer, como debe de ser el producto final, las bases de la estrategia del producto y cuando el producto será entregado.
•
Plan de desarrollo, un documento con un plan para organizar los requisitos y cuestiones relacionadas con la calidad. Los ítems de este plan deben ser lo suficientemente detallados para que los desarrolladores de software puedan desarrollar sus tareas de codificación de un modo no ambiguo. Un proceso para añadir y modificar el documento se debe especificar, como mínimo para mantener un histórico de los cambios.
•
Métricas para evaluar la calidad, este proceso no es tan solo para encontrar fallos, produce indicadores de la robustez del producto y cuanto se aproxima a las especificaciones iniciales.
2.4 Objetivos de la Investigación.
2.4.1 Objetivo General.
Elaborar una propuesta de una metodología de desarrollo de software para el departamento de Dirección de Tecnologías de la Información (DTI) de la PUCE SD
7
en el período 2013 para la optimización del alcance y tiempo de desarrollo de software.
2.4.2 Objetivos Específicos.
•
Realizar un análisis de los procesos existentes en el DTI y evaluarlos.
•
Seleccionar un número de metodologías ágiles y tradicionales para su estudio.
•
Identificar un conjunto de criterios para la comparación de las metodologías.
•
Documentar una propuesta en base a la metodología seleccionada.
III MARCO REFERENCIAL.
3.1 Revisión de la literatura o fundamentos teóricos.
3.1.1 Ingeniería de Software.
En la construcción y desarrollo de proyectos se aplican métodos y técnicas para resolver los problemas, la informática aporta herramientas y procedimientos sobre los que se apoya la ingeniería de software con el fin de mejorar la calidad de los productos de software, aumentar la productividad y trabajo de los ingenieros del software, facilitar el control del proceso de desarrollo de software y suministrar a los desarrolladores las bases para construir software de alta calidad en una forma eficiente. (Alvarez, 2007)
Según la IEEE: La ingeniería de software es la aplicación de un enfoque sistemático, disciplinado y cuantificable al desarrollo, operación, y mantenimiento del software.
Es el estudio de un esquema sistemático que se rige disciplinadamente al desarrollo, operación y mantenimiento de software. Abarca ciencias de la computación, matemáticas, entre otras ciencias.
8
9
En 2004, la U. S. Bureau of Labor Statistics (Oficina de Estadísticas del Trabajo de Estados Unidos) contó 760 840 ingenieros de software de computadora.
3.1.2 Metodología.
Según el autor (Gutierrez, 2011) define: Es el conjunto de procedimientos, técnicas, herramientas y un soporte documental que beneficia a los desarrolladores a realizar un nuevo software.
Una metodología es la agrupación de técnicas, procedimientos y documentos que facilitan a los desarrolladores en la realización de un nuevo software. Puede guiarse en uno o varios modelos de ciclo de vida, en otras palabras el ciclo de vida determina lo que hay que obtener a lo largo del desarrollo del proyecto pero no como realizarlo.
3.1.2.1 Metodologías de Desarrollo de Software.
En la década de 1970 aparecen modelos formales para explicar el proceso de software, como el conocido Modelo en Cascada. Los procesos que siguen el Modelo en Cascada se encuentran divididos en diferentes etapas, las cuales no pueden estar traslapadas.
Estas etapas son:
•
Requisitos de sistema.
•
Requisitos de software.
10
•
Análisis.
•
Diseño.
•
Codificación.
•
Pruebas.
•
Puesta en marcha.
El desarrollo iterativo e incremental ha estado presente por mucho tiempo en la aplicación de la ingeniería. En 1976 Tom Gilgs discute la práctica de la “gestión de proyectos evolutiva”, introduce por primera vez el término “evolución”.
Según (Gilbs, 2006) define: “Evolución es una técnica para producir la apariencia de estabilidad. Un sistema complejo tendrá más éxito si es implementado en pequeños pasos, y si cada paso tiene una clara medida de logro, así como la posibilidad de "retiro" a un paso exitoso anterior, en caso de fallo. Además existe la oportunidad de recibir alguna retroalimentación del mundo real antes de entregar todos los recursos destinados a un sistema, y corregir posibles errores de diseño…”
A medida que evolucionaba la Ingeniería de Software, se establecieron metodologías más formales de aplicación del diseño iterativo e incremental. Durante la década de 1990 el Desarrollo Iterativo e Incremental tuvo gran acogida en la comunidad de software, a través de varias formas, por ejemplo, el prototipado rápido, Desarrollo Rápido de Aplicaciones o RAD y el Proceso Unificado de Rational o RUP.
11
3.1.2.2 Cronología de Metodologías de Desarrollo de Software.
En la década de 1960 se originó el desarrollo de los sistemas tradicionales de ciclo de vida para trabajar en los sistemas de negocios de las grandes empresas de esa época. Lo principal era seguir el desarrollo de los sistemas de información estructurada y metódicamente, reiterando cada una de las etapas del ciclo de vida.
En 1970: •
Programación estructurada desde 1969.
•
Programación estructurada Jackson desde 1975.
En 1980: •
Structured System Analysis and Methodology (SSADM) desde 1980.
•
Structured Analysis and Desing Technique (SADT) desde 1980.
•
Ingeniería de la información (IE/IEM) desde 1981.
En 1990: •
Rapid application development (RAD) desde 1991.
•
Programación orientada a objetos (OOP) a lo largo de la década de los 90’s.
•
Virtual finite state machine (VFSM) desde 1990.
•
Dynamic System Development Method desarrollado en UK desde 1995.
•
Scrum (desarrollo), en la última parte de los 90’
Nuevo milenio: •
Programación extrema desde 1999.
12
•
Enterprise Unified Process (EUP) extensiones RUP desde 2002.
•
Rational Unified Process (RUP) desde 2003.
•
Constructionist desings methodology (CDM) desde 2004 por Kristinn R. Thórisson.
•
Agile Unified Process (AUP) desde 2005 por Scott Ambler.
3.1.2.3 Clasificación de las metodologías.
Las metodologías se clasifican según su diversidad de propuestas y diferencias en el grado de detalle. Se pueden clasificar de diferentes maneras, si tomamos como criterio las notaciones utilizadas para especificar artefactos producidos en actividades de análisis y diseño, podemos dividirlas en dos grupos:
•
Metodologías Estructuradas.
•
Metodologías Orientadas a Objetos.
Mientras que, por otra parte si consideramos su filosofía de desarrollo, aquellas metodologías con mayor énfasis en la planificación y control del proyecto, en especificación precisa de requisitos y modelado, reciben el nombre de: •
Metodologías Tradicionales o Pesadas.
•
Metodologías Ágiles.
3.1.2.3.1. Metodologías Tradicionales.
Estas metodologías imponen una disciplina de trabajo sobre el proceso de desarrollo de software, con el fin de conseguir un software más eficiente. Para ello se hace
13
énfasis en la planificación total de todo el trabajo a realizar y una vez que está todo detallado, comienza el ciclo de desarrollo del producto de software. (Sommerville, 2006)
Se enfocan especialmente en el control del proceso, mediante una rigurosa definición de roles, actividades, artefactos, herramientas y notaciones para el modelado y documentación detallada.
Entre las principales metodologías tradicionales o pesadas podemos citar: •
RUP (Rational Unified Procces).
•
MSF (Microsoft Solution Framework).
•
Win-Win Spiral Model.
•
Iconix.
3.1.2.3.2. Metodologías Ágiles.
Según (Martinez, 2011): El desarrollo ágil de software refiere a métodos de ingeniería del software basados en el desarrollo iterativo e incremental, donde los requisitos y soluciones evolucionan mediante la colaboración de grupos autoorganizados y multidisciplinarios.
Debido a la sociedad actual se ha adaptado un manifiesto ágil de las metodologías tradicionales, en otras palabras, tener la capacidad de proveer respuestas rápidas y ser adaptables al cambio. Estas dos cualidades, siempre han sido deseables, pero en el entorno de negocio actual resultan indispensables. Este requerimiento de agilidad en
14
las empresas, gobiernos y cualquier otra organización provoca que el software también deba ser desarrollado de manera ágil.
Las necesidades de un cliente pueden sufrir cambios importantes del momento de contratación de un software al momento de su entrega; y es mucho más importante satisfacer estas últimas que las primeras. Esto requiere procesos de software diferentes que en lugar de rechazar los cambios sean capaces de incorporarlos.
Los procesos ágiles son una buena elección cuando se trabaja con requisitos desconocidos o variables. Si no existen requisitos estables, no existe una gran posibilidad de tener un diseño estable y de seguir un proceso totalmente planificado, que no vaya a variar ni en tiempo ni en dinero. En estas situaciones, un proceso adaptativo será mucho más efectivo que un proceso predictivo. Por otra parte, los procesos de desarrollo adaptativos también facilitan la generación rápida de prototipos y de versiones previos a la entrega final, lo cual agradará al cliente.
Las metodologías ágiles proporcionan una serie de pautas y principios junto a técnicas pragmáticas que puede que no curen todos los males pero harán la entrega del proyecto menos complicada y más satisfactoria tanto para los clientes como para los equipos de entrega. En la Ilustración 1 se muestran los principios que rigen el desarrollo ágil.
Entre los principales principios del desarrollo ágil están: •
Bienvenida a los cambios.
•
Comunicación cara a cara.
15
•
La simplicidad es esencial.
•
Entregas frecuentes de software.
Ilustración 1 Principios de Manifiesto Ágil
Fuente: (Martinez, 2011) Elaborado por: Fausto Soto
Entre las metodologías ágiles más destacadas hasta el momento se pueden nombrar: •
XP (Extreme Programming).
•
Scrum.
•
Crystal Clear.
•
DSDM (Dynamic Systems Development Method).
•
FDD (Feature Driven Development).
•
ASD (Adaptive Software Development).
•
XBreed.
•
Extreme Modeling.
En el anexo 1 se muestra una comparación entre las metodologías tradicionales y las ágiles.
16
3.1.3 Ciclo de vida del software.
De acuerdo a la IEEE 1074: Una aproximación lógica a la adquisición, el suministro, el desarrollo, la experiencia y el mantenimiento del software.
De acuerdo a la ISO 12207-1: Un marco de referencia que contiene los procesos, las actividades y las tareas involucradas en el desarrollo, la explotación y el mantenimiento de un producto de software, abarcando la vida del sistema desde la definición de los requisitos hasta la finalización de su uso.
El ciclo de vida de software determina el estado de las fases mediante las cuales se maneja un proyecto de desarrollo de software.
3.1.3.1 Procesos primarios del ciclo de vida del software.
Los procesos primarios en el ciclo de vida del software son: •
Adquisición, proceso global que sigue el adquiriente para obtener el producto.
•
Suministro, proceso global que sigue el suministrador para proporcionar el producto.
•
Desarrollo, proceso empleado por el suministrador para el diseño, construcción y pruebas del producto.
17
•
Operación, proceso seguido por el operador en el “día a día” para el uso del producto.
•
Mantenimiento, proceso empleado para mantener el producto, incluyendo tanto los cambios en el propio producto como en su entorno de operación.
•
Documentación, actividades empleadas para registrar información específica empleada por otros procesos.
•
Aseguramiento de la calidad, actividades empleadas para garantizar de forma objetiva que el producto y los procesos son conformes a los requisitos documentados y a las planificaciones.
•
Verificación, actividades empleadas para verificar el producto.
•
Validación, actividades empleadas para validar el producto.
•
Reuniones de revisión, empleadas por las dos partes para evaluar el estado del producto y de las actividades.
•
Auditorías, actividades para determinar que el proyecto cumple con los requisitos, planes y contratos.
•
Resolución de problemas, actividades para analizar y resolver problemas relativos al proyecto, sea cual sea su fuente y naturaleza.
3.1.4 Modelos para el Desarrollo de Software.
“Para resolver los problemas reales de una industria, un ingeniero de software o un equipo de ingenieros debe incorporar una estrategia de desarrollo que acompañe al proceso, métodos y capas de herramientas” (Rosell, 2007).
18
Un modelo para el desarrollo de software es una representación abstracta de un proceso. Cada modelo representa un proceso desde una perspectiva particular y así proporcione información parcial sobre el proceso.
Una organización podría variar su modelo de proceso para cada proyecto, según: •
La naturaleza del proyecto.
•
La naturaleza de la aplicación.
•
Los métodos y herramientas a utilizar y los controles y entregas requeridas.
3.1.4.1 Modelos Genéricos de Desarrollo de Software.
Los Modelos de Desarrollo de software se clasifican en: •
Modelo de Cascada.
•
Prototipos.
•
Desarrollo Evolutivo e Incremental.
•
En Espiral.
•
Desarrollo basado en componentes y Métodos formales.
3.1.4.1.1. Modelo en Cascada.
Este modelo sugiere un enfoque sistemático, secuencial, para el desarrollo de software que comienza en un nivel de sistemas y progresa con el análisis, diseño, codificación, pruebas y mantenimiento.
19
Ilustración 2 Modelo en Cascada
Fuente: http://modelo-cascada.blogspot.com/ Elaborado por: Fausto Soto
3.1.4.1.2. Modelo de Prototipos.
El paradigma de construcción de prototipos comienza con la recolección de requisitos. El desarrollador y el cliente encuentran y definen los objetivos globales para el software, identifican los requisitos conocidos y las áreas del esquema en donde es obligatoria más definición. (Pressman, 2006)
Según (Pressman, 2006) aconseja: “Cuando el cliente tiene una necesidad legítima, pero está desorientado sobre los detalles, el primer paso es desarrollar un prototipo”.
20
Se trata de un modelo que se acopla a proyectos de poco tiempo, usando los programas adecuados y no se debe utilizar demasiados recursos.
Ilustración 3 Modelo de Prototipos
Fuente: http://ingsoft2013.blogspot.com/ Elaborado por: Fausto Soto
3.1.4.1.3. Modelo de Desarrollo Evolutivo.
El modelo incremental es la combinación del modelo en cascada con la filosofía interactiva de construcción de prototipos.
Según (Pressman, 2006) aconseja: “El modelo incremental entrega el software en partes pequeñas, pero utilizables, llamadas incrementos. En general, cada incremento se construye sobre aquel que ya ha sido entregado”.
El desarrollo incremental es particularmente útil cuando la dotación de personal no está disponible para una implementación completa en la fecha límite que se haya
21
establecido para el proyecto. Los primeros incrementos se pueden implementar con menos personas.
Ilustración 4 Modelo Incremental
Fuente: http://modelosevolutivosprocesosoftware.blogspot.com/2013/05/modelo-incremental.html Elaborado por: Fausto Soto
3.1.4.1.4. Modelo en Espiral.
El modelo en espiral, propuesto originalmente por Boehm, es un modelo de proceso de software evolutivo que conjuga la naturaleza iterativa de construcción de prototipos con los aspectos controlados y sistemáticos del modelo lineal secuencial. Proporciona el potencial para el desarrollo rápido de versiones incrementales del software. En el modelo espiral, el software se desarrolla en una serie de versiones incrementales. Durante las primeras iteraciones, la versión incremental podría ser un modelo en papel o un prototipo. Durante las últimas iteraciones, se producen versiones cada vez más completas del sistema diseñado. (Rosell, 2007)
Este modelo se conforma en una espiral, en el cual cada iteración representa un conjunto de actividades, comenzando por el bucle interior.
22
Ilustraci贸n 5 Modelo en Espiral
Fuente: http://www.codejobs.biz/es/blog/2013/06/01/modelo-de-proceso-evolutivo Elaborado por: Fausto Soto
3.1.4.1.5. Modelo de desarrollo basado en componentes.
El modelo de desarrollo basado en componentes incorpora muchas de las caracter铆sticas del modelo en espiral y exige un enfoque iterativo para la elaboraci贸n del software. Sin embargo, este modelo configura aplicaciones desde componentes preparados de software.
Ilustraci贸n 6 Modelo de desarrollo basado en componentes
Fuente: http://www.paginasprodigy.com/escomino/Sinapsys/sinapsysMetodologia.htm Elaborado por: Fausto Soto
23
3.1.4.1.6. Modelo de métodos formales.
“En ingeniería de software un método formal es un camino a la construcción y análisis de modelos matemáticos que permitan una automatización del desarrollo de sistemas informáticos”. (Michael G. Hinchey, 2010)
El modelo de métodos formales está formado por un conjunto de actividades que conducen a la especificación matemática del software de computadora. Permiten que un ingeniero en sistemas especifique, desarrolle y verifique un sistema basado en computadora aplicando una notación rigurosa y matemática.
Ilustración 7 Modelo de métodos formales
Fuente: http://quintomodelos.blogspot.com/ Elaborado por: Fausto Soto
3.2 Investigaciones o experiencias empíricas vinculadas con el problema de investigación.
En este tiempo de desarrollo tecnológico, las empresas grandes en general que poseen un área de sistemas se ven en la necesidad de implementar una estructuración de pasos a seguir para la realización de sus diferentes actividades.
El área de sistemas en las empresas se ha convertido en una de las fuentes principales para alcanzar un óptimo desarrollo, por lo que la mayoría de empresas han optado por la implementación de una metodología que agilice la realización de los procesos.
24
Particularmente la empresa Mundialo Ltda, Distribuidora de telefonía móvil de la empresa Claro, buscaba diferentes medios para agilizar sus procesos, uno de ellos del área de sistemas. Mediante una investigación en dicha compañía, se optó por una metodología que se adapte a los procesos existentes y que disminuyera el tiempo de realización de los mismos. La metodología seleccionada fue la XP, ya que ésta debido a su tipo de ejecución nos permitía no solo agilizar el trabajo sino que también nos permitió mejorarlo en base a su estructura de revisión continua y pequeñas mejoras en cada proceso. En otras palabras, no solo realizaba más rápido el trabajo, sino que también lo mejoraba a la vez.
La metodología XP es muy adaptable a las empresas debido a su forma de trabajo continuo del desarrollador con el cliente.
3.3 Hipótesis del trabajo.
Con la implementación de la metodología XP y RUP se optimizarán los procesos, la administración y el tiempo en el desarrollo de las aplicaciones que se realicen en el área de software del DTI.
IV METODOLOGÍA DE LA INVESTIGACIÓN.
El marco metodológico describe el modo de cómo se realiza nuestra investigación para la determinación de la metodología de desarrollo de software que mejor se adapte al trabajo del área de software del DTI, describiendo cada método, técnica e instrumento que se utilizó en el proyecto para obtener el conocimiento necesario.
4.1 Diseño/Tipo de investigación.
4.1.1 Contexto.
La investigación se desarrolla desde un punto de vista metodológico dentro del paradigma interpretativo, el cual trata de analizar e interpretar la realidad en un contexto y tiempo definido, mediante descripciones y detallados registros, de manera que posteriormente, en base a los antecedentes e investigaciones se tomen decisiones que mejoren los procesos de desarrollo de software del DTI en el campo de software.
La Pontificia Universidad Católica del Ecuador sede Santo Domingo, trabaja en forma normal y responsable de acuerdo a la ley de Educación, por lo que sus departamentos
de investigación deben estar en
constante modernización,
específicamente el área de software.
De acuerdo a la estructura del proyecto de investigación, se empieza a seguir los pasos correspondientes para empezar a aplicar los instrumentos de recolección de
25
26
datos para la investigación. En primera instancia se solicita autorización del departamento de Dirección Académica representada por el Dr. Marcos Santibáñez, por el Director de Escuela, el Ing. Carlos Gamarza y el por la persona encargada de la administración del DTI, el Ing. Franklin Carrasco, para realizar el “Diseño y propuesta de una Metodología de desarrollo de software para el área de programación de la Pontificia Universidad Católica del Ecuador, Sede Santo Domingo PUCE SD”.
Para el levantamiento de información en el DTI área de programación de la PUCE – SD; se realizó una entrevista al Ing. Franklin Carrasco encargado de la administración de éstos departamentos de investigación, donde se recopila, las necesidades y beneficios de poseer una metodología de desarrollo de software.
4.1.2 Tipo de la investigación.
El tipo de investigación que posee esta disertación es proyectiva, la cual consiste en el diseño y estudio de alguna metodología de desarrollo de software para el área de software del DTI en la PUCE SD.
De esta misma manera el trabajo tiene un enfoque cualitativo porque identifica el problema que existe en el DTI, obteniendo la información directamente de las personas involucradas.
4.1.3 Diseño de la investigación.
La investigación posee como objetivo principal recopilar información sobre la manera en que el equipo de programadores del DTI desarrolla algún software y que
27
necesidades existen para agilizar su procedimiento, con la finalidad de optimizar los procesos que conlleva la realización de un programa.
Toda investigación tiene un propósito, por tal razón se hace necesario la planificación o el diseño de los procesos que darán lugar al cumplimiento de los objetivos del estudio; en la presente investigación se procedió a seleccionar o desarrollar el diseño de investigación que se adapta a lo establecido en la guía propuesta por la PUCE SD.
Esta investigación tiene un diseño no experimental que posee las siguientes características: •
Es exploratoria debido a que se realiza a empresas que hayan implementado este tipo de proyecto para así mejorar los conocimientos referentes al tema de la disertación.
•
Es descriptiva, porque se detalla las características de algunas metodologías seleccionadas mediante la recopilación, comparación, análisis e interpretación de los datos específicos para la toma de decisiones.
4.1.4 Métodos de investigación.
Según (Luis, 2007) : “Es una especie de brújula en la que no se produce automáticamente el saber, pero que evita perdernos en el caos aparente de los fenómenos, aunque solo sea porque nos indica como no plantear los problemas y como no sucumbir en el embrujo de nuestros prejuicios predilectos”.
28
No se poseen reglas comunes ni precisas para la realización de una investigación en cuanto a una metodología. Por tal razón, se considera la siguiente metodología en la realización de este trabajo, los cuales ayudarán a explicar de manera general, los métodos más conocidos y prácticos de investigación.
Se determinó en este caso los siguientes métodos como los que mejor se adaptan para llevar la presente investigación:
•
Analítico
“Se distinguen los elementos de un fenómeno y se procede a revisar ordenadamente cada uno de ellos por separado. La física, la química y la biología utilizan este método; a partir de la experimentación y el análisis de gran número de casos se establecen leyes universales. Consiste en la extracción de las partes de un todo, con el objeto de estudiarlas y examinarlas por separado, para ver, por ejemplo las relaciones entre las mismas”. (Luis, 2007)
El Método analítico es aquel método de investigación que consiste en la desmembración de un todo, descomponiéndolo en sus partes o elementos para observar las causas, la naturaleza y los efectos. El análisis es la observación y examen de un hecho en particular. Es necesario conocer la naturaleza del fenómeno y objeto que se estudia para comprender su esencia. Este método nos permite conocer más del objeto de estudio, con lo cual se puede: explicar, hacer analogías, comprender mejor su comportamiento y establecer nuevas teorías.
29
Permitió realizar un estudio detallado de todas sus características generales y particulares, para luego definir los diferentes conceptos y componentes en el campo investigativo, así como considerar cada una de las variable motivo de estudio.
Se procedió a utilizar este método para analizar la forma en que el DTI trabaja y determinar sus ventajas y desventajas. A partir de esto se realizó un estudio de las posibles metodologías de desarrollo de software que optimizarán sus trabajos cotidianos.
•
Sintético
“Es un proceso mediante el cual se relacionan hechos aparentemente aislados y se formula una teoría que unifica los diversos elementos. Consiste en la reunión racional de varios elementos dispersos en una nueva totalidad, este se presenta más en el planteamiento de la hipótesis. El investigador sintetiza las superaciones en la imaginación para establecer una explicación tentativa que someterá a prueba”. (Luis, 2007)
Es un proceso de razonamiento que tiende a reconstruir un todo, a partir de los elementos distinguidos por el análisis; se trata en consecuencia de hacer una explosión metódica y breve, en resumen. En otras palabras debemos decir que la síntesis es un procedimiento mental que tiene como meta la comprensión cabal de la esencia de lo que ya conocemos en todas sus partes y particularidades.
Este método ayudó en la realización del análisis del trabajo investigativo, desde sus partes principales hasta sus secundarias para luego llegar a realizar la reconstrucción en una sola unidad de análisis de los procesos que se efectúan en el DTI.
30
•
Inductivo
“Es el razonamiento que, partiendo de casos particulares, se eleva a conocimientos generales. Este método permite la formación de hipótesis, investigación de leyes científicas, y las demostraciones. La inducción puede ser completa o incompleta”. (Luis, 2007)
Este método de igual manera permitió realizar el análisis de los contenidos establecidos en el proyecto, que principalmente es la determinación de una metodología de desarrollo de software, desde sus particularidades para luego realizar una visión global del rumbo de la investigación, tanto en el diagnóstico como en el proceso en general.
•
Deductivo
“El método deductivo consiste en la totalidad de reglas y procesos, con cuya ayuda es posible deducir conclusiones finales a partir de unos enunciados supuestos llamados premisas si de una hipótesis se sigue una consecuencia y esa hipótesis se da, entonces, necesariamente, se da la consecuencia”. (Bunge, 2006)
Este método consiste en encadenar conocimientos que se suponen verdaderos de manera tal, que se obtienen nuevos conocimientos, es decir, obtener nuevas proposiciones como consecuencias lógicas de otras anteriores.
Permitió realizar el reconocimiento de datos, el análisis y contenidos investigados sobre el proyecto desde aspectos más generales para luego determinar sus detalles en el marco teórico del proyecto de investigación. Se lo aplicó al momento de determinar la metodología de desarrollo de software que mejor se adapte al DTI.
31
•
Estadístico
“Un genio es alguien que descubre identidades entre hechos contradictorios”. Ernesto Sábato
La estadística es un método científico que enseña los procedimientos lógicos, prácticos y útiles a seguir para recolectar, elaborar, analizar, interpretar y presentar datos del fenómeno, expresados en detalle o síntesis a través del número, cuadro, y gráfico, con sus correspondientes notas explicativas.
Se lo aplicó en la representación de los datos analizados en la tabla de resultados, permitiéndonos una mejor visión en la tabulación, ya que los datos fueron representados en forma cuantitativa y cualitativa.
4.2 Determinación de la Población/Universo.
4.2.1 Población.
Es un conjunto de todos los elementos que estamos analizando, acerca de los cuales intentamos determinar sus conclusiones y observaciones.
4.2.2 Muestra.
Es una parte de la población a estudiar que sirve para representarla.
32
Para poder calcular la muestra no se aplica la fórmula ya que la población consta de cuatro personas que son: El administrador general del DTI y tres desarrolladores de software. Por lo tanto la muestra es igual a la población por ser muy pequeña.
4.3 Determinación de la muestra.
Es una parte de la población a estudiar que sirve para representarla.
Para poder calcular la muestra no se aplica la fórmula ya que la población consta de cuatro personas que son: El administrador general del DTI y tres desarrolladores de software. Por lo tanto la muestra es igual a la población por ser muy pequeña.
4.4 Tipos de fuentes de información.
Es toda información relacionada con nuestro trabajo que nos sirve como apoyo para la elaboración de la propuesta y diseño de una metodología de software. Para el desarrollo de la metodología de investigación se seleccionó fuentes primarias como: •
Bibliográficas, dan a conocer el lugar, sitio Web, o libro de donde se saca la información, aportando la página exacta de donde es recopilada. En este caso se utilizaron libros y páginas web para la recopilación de información referente a este proyecto.
•
Hemerográficas, son textos o consultas donde puedes obtener datos, en este proyecto se utilizaron: entrevistas personales, tesis y disertaciones de grado.
33
4.5 Técnicas e Instrumentos de recogida de datos.
Las investigaciones en general necesitan técnicas de investigación que permite recopilar información y observar directamente el objeto de estudio. Para la investigación de este trabajo se realizó la siguiente técnica:
•
La entrevista.
Según (Pelachano, 2007) definen: “Es una relación directa entre personas por la vía oral, que se plantea unos objetivos claros y prefijados, al menos por parte del entrevistador, con una asignación de papeles diferenciales, entre el entrevistador y el entrevistado, lo que supone una relación asimétrica”.
La entrevista es una técnica de investigación que tiene como objetivo la interrogación verbal que se le realiza a la muestra seleccionada con la finalidad de obtener información necesaria para una investigación.
Las fases en la elaboración de una entrevista son: •
Describir los objetivos de la entrevista.
•
Muestreo de las personas a entrevistar.
•
Planificación del desarrollo de la entrevista.
Se empleó para obtener información mediante una serie de preguntas verbales con respuestas explícitas o detalladas en un tiempo determinado, tuvo su aplicación en el momento del diagnóstico del trabajo investigativo, proporcionando datos que nos ayudaron a establecer las bases para la propuesta de la metodología de desarrollo de software para el DTI.
34
En el anexo 2 ver el cuestionario de preguntas empleadas en la entrevista.
4.6 Propuestas de metodologías de desarrollo de software para el DTI.
4.6.1 Propuesta de una metodología RUP.
Se propone la utilización de la metodología de desarrollo de software RUP, en caso de que la población aumente a un número considerable en el DTI y se desee desarrollar proyectos a largo alcance.
4.6.1.1 Herramientas a utilizar para aplicar RUP.
Para la construcción de sistemas y a causa del auge de las metodologías se han elaborado herramientas que facilitan el trabajo a los desarrolladores y automatizan en gran parte del proceso. Además mejoran la calidad de los desarrollos y aumentan la productividad de los equipos de trabajo. Por lo cual, se ha optado por utilizar Rational Rose y agilizar el proceso de desarrollo de sistemas en el DTI.
4.6.1.1.1. Rational Rose.
Actualmente, muchas empresas se han extendido a la adquisición de herramientas CASE (Ingeniería Asistida por Computadora), con el fin de automatizar los aspectos claves de todo el proceso de desarrollo de un sistema, desde el inicio hasta el final.
35
Rational Rose es una herramienta CASE que da soporte al modelado visual mediante UML ofreciendo distintas perspectivas del sistema. Realiza soporte al Proceso Unificado de Rational para el desarrollo de los proyectos de software, desde la etapa de Ingeniería de Requerimientos hasta la etapa de pruebas. (Kendall, 2008)
Para cada una de estas etapas existe una herramienta que ayuda en la administración de los proyectos.
Rose es la herramienta de Rational para la etapa de análisis y diseño de sistemas. (Kendall, 2008)
•
Modelado de Negocios.
•
Captura de Requisitos (parcial).
•
Análisis y Diseño (completo).
•
Implementación (como ayuda).
•
Control de cambio y gestión de configuración.
Rational Rose muestra un diseño manejado por modelos que redundan en una mayor productividad de los desarrolladores, admitiendo el lenguaje de modelado UML y técnicas de modelado de objetos (OMT). También favorece el diseño centrado en casos de uso y enfocado al negocio que genera un software de mayor calidad. Utiliza un lenguaje estándar común a todo el equipo de desarrollo que facilita la comunicación. Posee capacidades de ingeniería inversa. Con Rational Rose el modelo y código permanece sincronizado en todo el ciclo de desarrollo. Además se encuentra disponible en múltiples plataformas.
36
4.6.1.2 Aplicación de RUP.
Al utilizar la metodología RUP en el desarrollo de un sistema se deben seguir los flujos de trabajo en los que se han agrupado las actividades.
Pasos para aplicar la metodología RUP: 1.- Modelado del negocio. 2.- Definición de los requerimientos. 2.1.- Definir requisito. 2.2.- Análisis. 2.3.- Diseño. 2.4.- Implementación. 2.5.- Prueba e integración. 3.- Modelo del Sistema. 4.- Diseño e implementación del Sistema
4.6.1.2.1. Modelado del negocio.
Es una técnica que permite comprender los procesos de negocio de la organización y se desarrolla en dos pasos:
•
Confección de un modelo de casos de uso del negocio que identifique los actores y casos de uso del negocio que utilicen los actores.
•
Desarrollo de un modelo de objetos del negocio compuesto por trabajadores y entidades del negocio que juntos realizan los casos de uso del negocio.
37
Modelo de casos de uso del negocio, o CUN describe los procesos de una empresa en términos de casos de uso y actores del negocio en correspondencia con los procesos del negocio y los clientes, respectivamente. El modelo de casos de uso presenta un sistema la perspectiva de su uso y esquematiza cómo proporciona valor a sus usuarios. Este modelo permite a los modeladores comprender mejor qué valor proporciona el negocio a sus actores.
Este modelo es definido a través de tres elementos: el diagrama de casos de uso del negocio, la descripción de los casos de uso del negocio y el diagrama de actividades.
Un actor del negocio es cualquier individuo, grupo, entidad, organización, máquina o sistema de información externos; con los que el negocio interactúa. Lo que se modela como actor es el rol que se juega cuando se interactúa con el negocio para beneficiarse de sus resultados.
Los actores del negocio se listan a continuación:
Tabla 1 Actores del negocio Actores
Justificación
Directivo
Solicita registros de los controles que se realizan en la entidad.
Responsabilidad
de
informática general (RSIG)
seguridad
Solicita expedientes de equipos, registros de controles, registros de software instalados entre otros resultados de procesos en cuestión. Es el principal beneficiado con los resultados del negocio.
Fuente: (http://ceds.nauta.es/Catal/Products/caselist2.htm) Elaborado por: Fausto Soto
38
Diagramas de casos de uso del negocio, para comprender los procesos de negocio se elabora el diagrama de casos de uso del negocio en el que aparece cada proceso del negocio relacionado con su actor.
Ilustración 8 Diagrama de casos de uso del negocio
Fuente: (http://ceds.nauta.es/Catal/Products/caselist2.htm) Elaborado por: Fausto Soto
Trabajadores del negocio, un trabajador del negocio es una abstracción de una persona o personas, una máquina o un sistema automatizado, que actúa en el negocio realizando una o varias actividades, interactuando con otros trabajadores del negocio y manipulando entidades del negocio. Representa un rol.
Tabla 2 Trabajadores del negocio Trabajadores
Justificación
Responsables de seguridad informática del
Encargado de realizar los diferentes registros y
área
controles que se llevan a cabo en el proceso del negocio
Informático General
Encargado de actualizar el registro de incidencias
Usuario
Es el responsable
de
las tecnologías,
el
responsable de realizar el control interno a la PC Fuente: (http://ceds.nauta.es/Catal/Products/caselist2.htm) Elaborado por: Fausto Soto
39
Casos de Uso, representa la forma en como un cliente (Actor) opera con el sistema en desarrollo, adem谩s de la forma, tipo y orden en como los elementos interact煤an (http://users.dcc.uchile.cl/~psalinas/uml/casosuso.html)
Ilustraci贸n 9 Diagrama de Actividades de Casos de Uso
Fuente: (http://wiki.monagas.udo.edu.ve/index.php/Metodolog%C3%ADas_SCRUM_y_XP) Elaborado por: Fausto Soto
Diagrama de Actividades, es un grafo que contiene los estados en que puede hallarse la actividad a analizar. Cada estado de la actividad representa la ejecuci贸n de una sentencia de un procedimiento, o el funcionamiento de una actividad en un flujo de trabajo.
En resumen describe el proceso que explora el orden de las actividades que logran los objetivos del negocio.
40
Ilustración 10 Diagrama de Actividades – revisar expediente
Fuente: (Kendall, 2008) Elaborado por: Fausto Soto
Diagrama de clase del modelo de objetos, un modelo de objetos del negocio es un modelo interno a un negocio. Describe como cada caso de uso del negocio es llevado a cabo por parte de un conjunto de trabajadores que utilizan un conjunto de entidades del negocio y unidades de trabajo.
Una entidad del negocio representa algo, que los trabajadores toman, examinan, manipulan, crean o utilizan en un caso de uso del negocio. El diagrama de clases del
41
modelo de objeto, es un artefacto que se construye para describir el modelo de objetos del negocio, que en este caso se muestra a continuación. (Kendall, 2008)
Ilustración 11 Diagrama de clases del modelo de objetos
Fuente: (http://ceds.nauta.es/Catal/Products/caselist2.htm) Elaborado por: Fausto Soto
4.6.1.2.2. Definición de los requerimientos.
Requerimientos funcionales, permiten expresar una especificación más detallada de las responsabilidades del sistema que se propone. Ellos permiten determinar, de una manera clara, lo que debe hacer el mismo. (Kendall, 2008)
Requerimientos no funcionales, especifican cualidades, propiedades del sistema; como restricciones del entorno o de la implementación, rendimiento, dependencias de la plataforma, etc. (Kendall, 2008)
Los requerimientos no funcionales del sistema propuesto son los siguientes:
42
•
Requisitos de interfaz.
•
Requerimientos de seguridad.
•
Requerimientos de software.
•
Requerimientos de hardware.
4.6.1.2.3. Modelo del sistema.
Modelo de casos de uso del sistema, el modelo de casos de uso permite que los desarrolladores del software y los clientes lleguen a un acuerdo sobre los requisitos, es decir, sobre las condiciones y posibilidades que debe cumplir el sistema. Describe lo que hace el sistema para cada tipo de usuario.
Actores del sistema, un actor no es más que un conjunto de roles que los usuarios de Casos de Uso desempeñan cuando interaccionan con estos Casos de Uso. Los actores representan a terceros fuera del sistema que colaboran con el mismo. Una vez que hemos identificado los actores del sistema, tenemos identificado el entorno externo del sistema.
Tabla 3 Actores del sistema Actores Administrador
Justificación Es el encargado de gestionar las cuentas de los usuarios del sistema, realizar el control interno, gestionar los codificadores y los cuestionarios, dar bajas técnicas a equipos y gestionar los componentes de los mismos.
Encargado
Es el encargado de realizar alguna función. En este caso de gestionar los datos de las PC.
Fuente: (http://ceds.nauta.es/Catal/Products/caselist2.htm) Elaborado por: Fausto Soto
43
Casos de uso del sistema, la forma en que interactúa cada actor del sistema con el sistema se representa con un Caso de Uso. Los Casos de Uso son “fragmentos” de funcionalidad que el sistema ofrece para aportar un resultado de valor para sus actores. De manera más precisa, un Caso de Uso especifica una secuencia de acciones que el sistema puede llevar a cabo interactuando con sus actores, incluyendo alternativas dentro de la secuencia.
Ilustración 12 Diagrama de casos de uso por paquetes
Fuente: (http://ceds.nauta.es/Catal/Products/caselist2.htm) Elaborado por: Fausto Soto
4.6.1.2.4. Diseño e implementación del sistema.
Una implementación según (Reynoso, 2007) es: “Una implementación es la instalación de una aplicación informática, realización o la ejecución de un plan, idea, modelo científico, diseño, especificación, estándar, algoritmo o política”.
44
El diseño de sistemas se define como el proceso de aplicar ciertas técnicas y principios con el propósito de definir un dispositivo, un proceso o un sistema, con suficientes detalles como para permitir su interpretación y realización física.
Diseño de la Base de Datos, debido a la importancia de los datos manejados en los módulos es necesario realizar un buen diseño de la información almacenada.
Ilustración 13 Diseño de una BD
Fuente: (Kendall, 2008) Elaborado por: Fausto Soto
En el anexo 3, ver un ejemplo de diagramas de la metodología RUP.
4.6.2 Propuesta de una metodología XP.
Se propone una metodología de desarrollo de software XP, en caso de que el grupo de trabajo se mantenga de pocas personas y se desarrolle proyectos a corto plazo.
45
Ilustración 14 Proceso de la Metodología XP
Fuente: (http://wiki.monagas.udo.edu.ve/index.php/Metodolog%C3%ADas_SCRUM_y_XP) Elaborado por: Fausto Soto
Según (Sommerville I. , 2006) La Programación Extrema (XP) es posiblemente el método ágil más conocido y ampliamente utilizado. El nombre fue acuñado por Beck (Beck 2000) debido a que el enfoque fue desarrollado utilizando buenas prácticas reconocidas, como el desarrollo iterativo, y con la participación del cliente en niveles extremos.
4.6.2.1 Herramientas a utilizar para aplicar XP.
4.6.2.1.1. Sprintometer.
Sprintometer es una aplicación simple y fácil de usar en el desarrollo ágil de proyectos. Es una herramienta para la gestión y el seguimiento de XP y Scrum. Con el fin de simplificar el intercambio de datos con programas externos todas las hojas de cálculo en Sprintometer se pueden exportar a Microsoft Excel, también se puede utilizar el formato XML para los archivos locales. (Kendall, 2008)
46
Algunas de las principales características de este software son: •
Seguimientos de proyectos con XP y Scrum.
•
Moderno y fácil de usar con una interfaz estilo Microsoft Office 2007.
•
Aumento de información en los gráficos.
•
Seguimiento separado de desarrollo y pruebas.
•
Seguimiento de iteraciones (Sprint) en equipos de composición variable.
•
Predicción de la desviación prevista de la iteración de la fecha de finalización.
•
Asignación de recursos a tareas e historias de usuarios.
•
Exportación para Microsoft Excel de todos los gráficos y las hojas de cálculo.
•
Exportación / Importación de los datos del proyecto en formato XML.
4.6.2.2 Pasos de la metodología XP.
Según (Sommerville I. , 2006) la metodología XP o Programación Extrema se divide en los siguientes pasos: •
Planificación Incremental, los requerimientos se registran en tarjetas de historias y las historias a incluir en una entrega se determinan según el tiempo disponible y su prioridad relativa.
Los desarrolladores de software dividen estas historias en tareas de desarrollo: •
Entregas Pequeñas, el mismo conjunto útil de funcionalidad que proporcione valor de negocio se desarrolla primero. Las entregas del sistema son frecuentes e incrementalmente añaden funcionalidad a la primera entrega.
47
•
Diseño Sencillo, Solo se lleva a cabo el diseño necesario para cumplir los requerimientos actuales.
•
Desarrollo previamente probado, Se utiliza un sistema de pruebas de unidad automatizado para escribir pruebas para nuevas funcionalidades antes de que estas se implementen.
•
Refactorización, Se espera que todos los desarrolladores refactoricen el código continuamente tan pronto como encuentren posibles mejoras en el código.
Para conservar el código sencillo y mantenible. •
Programación en Parejas, los desarrolladores trabajan en parejas, verificando cada uno el trabajo del otro proporcionando la ayuda necesaria para hacer siempre un buen trabajo.
•
Propiedad Colectiva, las parejas de desarrolladores trabajan en todas las áreas del sistema, de modo que no desarrollen islas de conocimiento y todos los desarrolladores posean todo el código. Cualquiera puede cambiar cualquier cosa.
•
Integración Continua, en cuanto acaba el trabajo en una tarea, se integra en el sistema entero.
Después de la integración, se deben pasar al sistema todas las pruebas de unidad. •
Ritmo Sostenible, no se consideran aceptables grandes cantidades de horas extras, ya que a menudo el efecto que tienen es que se reduce la cantidad del código y la productividad a medio plazo.
•
Cliente Presente, debe estar disponible al equipo de la XP un representante de los usuarios finales del sistema (el cliente) a tiempo completo. En un proceso de la programación externa, el cliente es miembro del equipo de desarrollo y es
48
responsable de formular al equipo los requerimientos del sistema para su implementación.
4.6.2.3 Fases de la metodología XP.
Según (Beck, 2006) las fases de la metodología XP son:
4.6.2.3.1. Primera Fase: Planificación del Proyecto.
Historias de Usuario, el primer paso de cualquier proyecto que siga la metodología X.P es definir las historias de usuario con el cliente. Las historias de usuario tienen la misma finalidad que los casos de uso pero con algunas diferencias: Constan de tres o cuatro líneas escritas por el cliente en un lenguaje no técnico sin hacer mucho hincapié en los detalles; no se debe hablar ni de posibles algoritmos para su implementación ni de diseños de base de datos adecuados, etc. Son usadas para estimar tiempos de desarrollo de la parte de la aplicación que describen. También se utilizan en la fase de pruebas, para verificar si el programa cumple con lo que especifica la historia de usuario. Cuando llega la hora de implementar una historia de usuario, el cliente y los desarrolladores se reúnen para concretar y detallar lo que tiene que hacer dicha historia.
El tiempo de desarrollo ideal para una historia de usuario es entre una y tres semanas. En este caso los desarrolladores de software del DTI realizarán estas historias de usuarios con las personas de otros departamentos que requieran algún sistema informático.
49
Release Planning, después de tener ya definidas las historias de usuario es necesario crear un plan de publicaciones, en inglés "Release plan", donde se indiquen las historias de usuario que se crearán para cada versión del programa y las fechas en las que se publicarán estas versiones. Un "Release plan" es una planificación donde los desarrolladores y clientes establecen los tiempos de implementación ideales de las historias de usuario, la prioridad con la que serán implementadas y las historias que serán implementadas en cada versión del programa. Después de un "Release plan" tienen que estar claros estos cuatro factores: los objetivos que se deben cumplir (que son principalmente las historias que se deben desarrollar en cada versión), el tiempo que tardarán en desarrollarse y publicarse las versiones del programa, el número de personas que trabajarán en el desarrollo y cómo se evaluará la calidad del trabajo realizado.
En esta etapa los desarrolladores de software del DTI planearán los tiempos y alcance del tipo de sistema informático solicitado.
Iteraciones, todo proyecto que siga la metodología XP se ha de dividir en iteraciones de aproximadamente 3 semanas de duración. Al comienzo de cada iteración los clientes deben seleccionar las historias de usuario definidas en el "Release planning" que serán implementadas. También se seleccionan las historias de usuario que no pasaron el test de aceptación que se realizó al terminar la iteración anterior. Estas historias de usuario son divididas en tareas de entre 1 y 3 días de duración que se asignarán a los programadores.
50
La Velocidad del Proyecto, es una medida que representa la rapidez con la que se desarrolla el proyecto; estimarla es muy sencillo, basta con contar el número de historias de usuario que se pueden implementar en una iteración; de esta forma, se sabrá el cupo de historias que se pueden desarrollar en las distintas iteraciones. Usando la velocidad del proyecto controlaremos que todas las tareas se puedan desarrollar en el tiempo del que dispone la iteración. Es conveniente reevaluar esta medida cada tres o cuatro iteraciones y si se aprecia que no es adecuada hay que negociar con el cliente un nuevo "Release Plan".
Programación en Parejas, la metodología X.P. aconseja la programación en parejas pues incrementa la productividad y la calidad del software desarrollado.
Reuniones Diarias, es necesario que los desarrolladores se reúnan diariamente y expongan sus problemas, soluciones e ideas de forma conjunta. Las reuniones tienen que ser fluidas y todo el mundo tiene que tener voz y voto.
4.6.2.3.2. Segunda Fase: Diseño.
Diseños Simples, la metodología X.P sugiere que hay que conseguir diseños simples y sencillos. Hay que procurar hacerlo todo lo menos complicado posible para conseguir un diseño fácilmente entendible e implementable que a la larga costará menos tiempo y esfuerzo desarrollar.
Glosarios de Términos, usar glosarios de términos y una correcta especificación de los nombres de métodos y clases ayudará a comprender el diseño y facilitará sus posteriores ampliaciones y la reutilización del código.
51
Riesgos, si surgen problemas potenciales durante el diseño, X.P sugiere utilizar una pareja de desarrolladores para que investiguen y reduzcan al máximo el riesgo que supone ese problema.
Funcionabilidad extra, nunca se debe añadir funcionalidad extra al programa aunque se piense que en un futuro será utilizada. Sólo el 10% de la misma es utilizada, lo que implica que el desarrollo de funcionalidad extra es un desperdicio de tiempo y recursos.
Refactorizar, refactorizar es mejorar y modificar la estructura y codificación de códigos ya creados sin alterar su funcionalidad. Refactorizar supone revisar de nuevo estos códigos para procurar optimizar su funcionamiento. Es muy común rehusar códigos ya creados que contienen funcionalidades que no serán usadas y diseños obsoletos.
4.6.2.3.3. Tercera Fase: Codificación.
Como ya se dijo en la introducción, el cliente es una parte más del equipo de desarrollo; su presencia es indispensable en las distintas fases de X.P. A la hora de codificar una historia de usuario su presencia es aún más necesaria. No olvidemos que los clientes son los que crean las historias de usuario y negocian los tiempos en los que serán implementadas. Antes del desarrollo de cada historia de usuario el cliente debe especificar detalladamente lo que ésta hará y también tendrá que estar presente cuando se realicen los test que verifiquen que la historia implementada cumple la funcionalidad especificada.
52
La codificación debe hacerse ateniendo a estándares de codificación ya creados. Programar bajo estándares mantiene el código consistente y facilita su comprensión y escalabilidad.
4.6.2.3.4. Cuarta Fase: Pruebas.
Uno de los pilares de la metodología X.P es el uso de test para comprobar el funcionamiento de los códigos que vayamos implementando. El uso de los test en X.P es el siguiente:
•
Se deben crear las aplicaciones que realizarán los test con un entorno de desarrollo específico para test.
•
Hay que someter a test las distintas clases del sistema omitiendo los métodos más triviales.
•
Se deben crear los test que pasarán los códigos antes de implementarlos; en el apartado anterior se explicó la importancia de crear antes los test que el código.
•
Un punto importante es crear test que no tengan ninguna dependencia del código que en un futuro evaluará.
•
Como se comentó anteriormente los distintos test se deben subir al repositorio de código acompañados del código que verifican.
•
Test de aceptación. Los test mencionados anteriormente sirven para evaluar las distintas tareas en las que ha sido dividida una historia de usuario.
•
Al ser las distintas funcionalidades de nuestra aplicación no demasiado extensas, no se harán test que analicen partes de las mismas, sino que las pruebas se realizarán para las funcionalidades generales que debe cumplir el programa especificado en la descripción de requisitos.
53
Ilustración 15 Fases de la Metodología XP
Fuente: (http://wiki.monagas.udo.edu.ve/index.php/Metodolog%C3%ADas_SCRUM_y_XP) Elaborado por: Fausto Soto
En el anexo 4, Ejemplo de análisis de un proyecto XP.
V RESULTADOS
5.1 Discusión y análisis de resultados.
Para el desarrollo de aplicaciones informáticas, cualquier empresa que sea seria y que necesite optimizar gastos operativos; es necesario hacer uso de metodologías de desarrollo de software que nos servirán para mejorar los procesos inherentes al desarrollo de estas aplicaciones.
Para poder seleccionar entre las varias metodologías de desarrollo de software existentes en el mercado; se obtuvo información tanto de empresas dedicadas a desarrollo de software en la parte práctica; y de distintos libros, y páginas Web en la parte teórica. Para ello se deben analizar algunas variables que nos llevarán a la toma de decisión, de con que metodología de desarrollo se va a trabajar. Lógicamente para ello hay que analizar fundamentalmente el tiempo y la envergadura de la aplicación a desarrollar.
•
Identificación de variables para la evaluación de las metodologías a ser utilizadas en el desarrollo de software.
“Para construir o elegir una metodología se han de considerar unos requisitos deseables, que se mencionan a continuación”.
54
55
•
La metodología debe ajustarse a los objetivos.
•
La metodología debe cumplir el ciclo entero de desarrollo de software.
•
La metodología debe integrar distintas fases del ciclo de desarrollo.
•
La metodología debe incluir la realización de validaciones.
•
La metodología debe soportar la determinación de la exactitud del sistema a través del ciclo de desarrollo.
•
La metodología debe funcionar en un entorno dinámico orientado al usuario.
•
La metodología debe especificar claramente los responsables de los resultados.
•
La metodología debe poder emplearse en un entorno amplio de proyectos de software.
•
La metodología debe estar soportada por herramientas CASE.
•
La metodología debe contener actividades conducentes a mejorar el proceso de desarrollo de software.
Mediante la respectiva investigación se pudo determinar el grado de importancia para la selección de una metodología:
Se la determinó por medio de puntuaciones del 1 al 5 en donde los valores más altos representan mayor valoración, en base a tres parámetros: vista del sistema como algo cambiante, tener en cuenta la colaboración entre los miembros del equipo y características más específicas de la propia metodología como son simplicidad, excelencia técnica, resultados, adaptabilidad, etc.
Matriz de selección de metodología tradicional.
56
Tabla 4 Matriz Selección de metodología tradicional RUP Factores clave de éxito Puntuación La metodología debe ajustarse a
MSF Puntuación
2
2
3
3
3
2
3
3
2
2
13
12
los objetivos. La metodología debe cumplir el ciclo entero de desarrollo de software. La metodología debe integrar distintas fases del ciclo de desarrollo. La metodología debe incluir la realización de validaciones. La metodología debe soportar la determinación de la exactitud del sistema a través del ciclo de desarrollo. Fuente: Investigación por el autor Elaborado por: Fausto Soto
Matriz de selección de metodología ágil.
Tabla 5 Matriz de Selección de metodología ágil XP
SCRUM
Factores clave de éxito
Puntuación
Puntuación
La metodología debe ajustarse a
4
3
3
3
3
3
4
3
3
3
17
15
los objetivos. La metodología debe cumplir el ciclo entero de desarrollo de software. La metodología debe integrar distintas fases del ciclo de desarrollo. La metodología debe incluir la realización de validaciones. La metodología debe soportar la determinación de la exactitud del sistema a través del ciclo de desarrollo. Fuente: Investigación por el autor Elaborado por: Fausto Soto
57
De acuerdo a la matriz de evaluación de metodologías se determinó que la mayor puntuación se presentó en los procesos de desarrollo ágil. Esto obedece a que actualmente las instituciones y empresas buscan optimizar en tiempo y alcance el desarrollo de software.
Dentro de las metodologías de desarrollo ágil, los procesos que obtuvieron la mayor ponderación es la XP, sin embargo esta metodología es aplicada para proyectos con diferencias de duración, es decir la XP es para proyectos cortos y que se deseen implementar con rapidez.
Dentro de las metodologías convencionales o tradicionales la que obtuvo mayor puntuación es la RUP debido a su adaptabilidad en diferentes niveles de aptitud y diferentes tamaños de proyectos.
5.2 Conclusiones.
•
Las metodologías de desarrollo de software continúan evolucionando y actualizándose por lo que cada vez se adecúan o cubren de mejor manera las necesidades y requerimientos de los proyectos de esta índole.
•
Se identificaron distintas metodologías usadas para el desarrollo de software, con sus respectivas características, obteniendo las ventajas y desventajas que cada una de ellas presentan para evaluarlas y elegir las adecuadas.
•
Es necesario implementar una metodología de desarrollo de software en el DTI para la optimización de sus procesos.
58
•
Los factores a ser evaluados en cada metodología pueden ser elaborados por el grupo de desarrollo en función a las características que puede tener un proyecto en específico.
5.3 Recomendaciones.
•
Si el número de personal encargado para el desarrollo de software es pequeño, la metodología a ser aplicada debería ser una de tipo ágil como la XP que se adapta más a grupos pequeños mientras que, si el número de personal encargado para el desarrollo de software es grande y su alcance y tiempo son extensos, la metodología a ser aplicada debería ser una de tipo tradicional o pesada como la metodología RUP.
•
Se recomienda capacitar a los Desarrolladores de Software en las dos metodologías a utilizar en el DTI.
•
Es factible seguir cada uno de los pasos de la metodología a utilizar en un proyecto de desarrollo de software, para evitar errores y agilizar el proceso.
59
FUENTES DE REFERENCIA
Bibliografias
•
Alvarez, J. (2007). Ingeniería de Software. España: CENGAGE Learning.
•
Beck, K. (2006). Metodología XP. New York: Mc Graw Hill Companies. Inc.
•
Bunge, M. (2006). La investigación científica. México: Pearson Prentice Hall.
•
Gilbs, T. (2006). Software Metrics. New York.
•
Gutierrez, D. (2011). Métodos de Desarrollo de Software.
•
Jacobson, K. (2008). Proceso Unificado. EEUU: Companies. Inc.
•
Kendall, K. &. (2008). Analisis Y Diseño De Sistemas. México: Pearson Educación Hispanoramericana S.A.
•
Luis, L. C. (2007). Método e hipótesis científicas. España: Creaciones Copyright, S. L.
•
Martinez, G. (2011). Coding, quality check and documentation .
•
Michael G. Hinchey, J. P. (2010). Formal Methods. In Philip A. Laplante (ed.).
•
Pelachano, S. y. (2007). Malaga: Vértice.
•
Pressman. (2006). Modelos de Proceso. EEUU
•
Reynoso, C. (2007). Métodos Heterodoxos en Desarrollo de Software. Madrid: DYKINSONG, S.L. Melendez Valdés, 61- 28015 Madrid.
•
Rosell, B. (2007). Modelos del proceso del software.
•
Sommerville, I. (2006). Ingeniería del software. Madrid.
60
Lincografías
•
Anónimo.
Recuperado
el
28
de
Octubre
de
2010,
de
http://ceds.nauta.es/Catal/Products/caselist2.htm. (s.f.). •
Patricio Salinas. Casos de Uso (Use Case). Recuperado el 30 de febrero de 2009, de http://users.dcc.uchile.cl/~psalinas/uml/casosuso.html. (s.f.).
•
Wikipedia.
Recuperado
el
14
de
noviembre
de
2007,
de
http://wiki.monagas.udo.edu.ve/index.php/Metodolog%C3%ADas_SCRUM_y_ XP.(s.f.) •
Software Engineering Institute. Recuperado el 23 de marzo del 2007, de http://www.sei.cmu.edu/cmm/obtain.cmm.html. (s.f.).
61
ANEXOS
Anexo 1 Comparación entre las metodologías tradicionales y las ágiles. Metodologías Ágiles
Metodologías Tradicionales
Basadas en heurísticas provenientes de prácticas de producción de código.
Basadas en normas provenientes de estándares seguidos por el entorno de desarrollo.
Especialmente preparados para cambios durante
Cierta resistencia a cambios.
el proyecto. Impuestas internamente (Por el equipo).
Impuestas externamente.
Proceso menos controlado, con pocos principios.
Proceso
mucho
más
controlado,
con
numerosas políticas y normas. No existe contrato tradicional o al menos es
Existe un contrato prefijado.
bastante flexible. El cliente es parte del equipo de desarrollo.
El cliente interactúa con el equipo de desarrollo mediante reuniones.
Grupos pequeños (<10 integrantes) y trabajando
Grupos grandes y posiblemente distribuidos.
en el mismo sitio. Pocos artefactos, más artefactos.
Pocos roles, más roles.
Pocos roles.
Más roles.
Menos énfasis en la arquitectura del software.
La arquitectura del software es esencial y se expresa mediante modelos.
62
Anexo 2 Entrevista
PONTIFICIA UNIVERSIDAD CATÓLICA DEL ECUADOR SEDE SANTO DOMINGO ESCUELA DE SISTEMAS Entrevista
OBJETIVO: El motivo de la entrevista es obtener información sobre la forma en que el DTI gestiona sus trabajos y proyectos cotidianamente.
Entrevista realizada al encargado del DTI. 1.- ¿Cuántas personas trabajan en el àrea de software del DTI? 2.- ¿Qué metodología utilizan en el desarrollo de sus proyectos? 3.- ¿Qué proyectos de desarrollo de software están realizando actualmente? 4.- ¿Por qué se dio el requerimiento de la implementación de una metodología de desarrollo de software para el DTI? 5.- ¿En qué beneficiaría la implementación de una metodología de desarrollo de software en el DTI?
63
Anexo 3 Ejemplo de Análisis de un proyecto con metodología RUP
Diagrama de Actividades del Caso de Uso
Ilustración 16 Diagrama de Actividades - Solicitar reportes
Fuente: (Kendall, 2008) Elaborado por: Fausto Soto
64
Ilustraci贸n 17 Diagrama de Actividades - Revisar expediente de equipo
Fuente: (Kendall, 2008) Elaborado por: Fausto Soto
65
Ilustraci贸n 18 Diagrama de Actividades - Solicitar registro
Fuente: (Kendall, 2008) Elaborado por: Fausto Soto
66
Ilustraci贸n 19 Diagrama de Actividades - Solicitar registro de software
Fuente: (Kendall, 2008) Elaborado por: Fausto Soto
67
Ilustraci贸n 20 Diagrama de Actividades - Realizar control interno
Fuente: (Kendall, 2008) Elaborado por: Fausto Soto
68
Ilustraci贸n 21 Diagrama de Actividades - Solicitar historial de incidencias
Fuente: (Kendall, 2008) Elaborado por: Fausto Soto
69
Prototipos – diseños de Pantalla Ilustración 22 Control Interno
Fuente: (Kendall, 2008) Elaborado por: Fausto Soto
70
Ilustraci贸n 23 Gestionar Historial de incidencias
Fuente: (Kendall, 2008) Elaborado por: Fausto Soto
Ilustraci贸n 24 Registro de control de acceso
Fuente: (Kendall, 2008) Elaborado por: Fausto Soto
71
Ilustraci贸n 25 Diagrama de Clases
Fuente: (Kendall, 2008) Elaborado por: Fausto Soto
72
Ilustraci贸n 26 Dise帽o de una BD
Fuente: (Kendall, 2008) Elaborado por: Fausto Soto
73
Anexo 4 Ejemplo de Análisis Funcional y de Riesgos de un proyecto con metodología XP
Módulos del proyecto: •
Módulo de Autenticación
•
Módulo de Inventario
•
Módulo de Préstamo y Devolución
•
Módulo de Seguridad y Administración
•
Módulo de Reportes
Historias de Usuario. Tabla 6 Historias de Usuario - autenticación
Historia de Usuario Número: 1
Usuario: Secretaria o Encargado
Nombre historia: Verificación de autenticación (estudiante) Prioridad en negocio: Alta
Riesgo en desarrollo: Alta
Puntos estimados: 4
Iteración asignada: 1
Programador responsable: Por Asignar Descripción: Se verifica o autentica si la persona que solicita el préstamo se encuentre matriculado en la PUCE SD y por lo tanto conste en la base de datos.
Fuente: Por el autor Elaborado por: Fausto Soto
74
Tabla 7 Historias de Usuario - inventario de activos
Historia de Usuario Número: 2
Usuario: Secretaria o Encargado
Nombre historia: Inventario de activos disponibles en la BD (estudiante) Prioridad en negocio: Alta
Riesgo en desarrollo: Baja
Puntos estimados: 3.5
Iteración asignada: 1
Programador responsable: Por Asignar Descripción: Accede a la base de datos mostrando los activos disponibles para la realización del préstamo.
Observaciones:
Fuente: Por el autor Elaborado por: Fausto Soto
Tabla 8 Historias de Usuario - selección de préstamos
Historia de Usuario Número: 3
Usuario: Secretaria o Encargado
Nombre historia: Selección de préstamos a procesar (estudiante) Prioridad en negocio: Alta
Riesgo en desarrollo: Baja
Puntos estimados: 3.5
Iteración asignada: 1
Programador responsable: Por Asignar Descripción: Accede a la interfaz de préstamos y se verifica si existe el producto, en caso de existir se procede al proceso de préstamo.
Observaciones:
Fuente: Por el autor Elaborado por: Fausto Soto
75
Tabla 9 Tareas de Usuario - diseño interfaz
Tarea Número tarea: 1
Número historia: 3
Nombre tarea: Diseño interfaz selección de préstamo Tipo de tarea : Desarrollo
Puntos estimados: 0.5
Fecha inicio: 02/06/14
Fecha fin:
02/06/14
Programador responsable: Por Asignar Descripción: Se diseñara una ventana que muestre un listado con los todos los activos. Se deberá habilitar además de los botones habituales un botón para seleccionar el préstamo y otro para mostrar los artículos. Por lo tanto, también se diseñará otra ventana que se abrirá a partir de está en el cual se mostrarán los artículos que tiene asociados un préstamo o en concreto. Fuente: Por el autor Elaborado por: Fausto Soto
Tabla 10 Tareas de Usuario - listado de préstamos
Tarea Número tarea: 2
Número historia: 2
Nombre tarea: Listado de todos los préstamos de la BD Tipo de tarea : Desarrollo
Puntos estimados: 0.5
Fecha inicio: 03/06/14
Fecha fin: 04/06/14
Programador responsable: Por Asignar
Descripción: Se muestran en el dw apropiado todos los préstamos que actualmente se encuentren en la BD así como el estado en el que se encuentra cada préstamo: completo/incompleto, en el almacén Si/No. Se habilitarán dos botones. Uno para mostrar los artículos de un préstamo determinado. Fuente: Por el autor Elaborado por: Fausto Soto
76
Tabla 11 Historias de Usuarios - Administrador
Historia de Usuario Número: 4
Usuario: Administrador o Superusuario
Nombre historia: Seguridad y Administración de datos Prioridad en negocio: Alta
Riesgo en desarrollo: Alta
Puntos estimados: 3.5
Iteración asignada: 2
Programador responsable: Por Asignar Descripción: Existirá restricción de usuarios según su rol.
Observaciones:
Fuente: Por el autor Elaborado por: Fausto Soto
Tabla 12 Historias de Usuario - secretaría
Historia de Usuario Número: 5
Usuario: Secretaria o Encargado
Nombre historia: Reportes Prioridad en negocio: Alta
Riesgo en desarrollo: Baja
Puntos estimados: 3.5
Iteración asignada: 2
Programador responsable: Por Asignar Descripción: Se imprimirán reportes según la necesidad del usuario. Observaciones:
Fuente: Por el autor Elaborado por: Fausto Soto
77
Release Planning.
Nombre de la tarea
Tabla 13 Tareas Comienzo
Fin
ANÁLISIS
Lun 17/06/14
Lun 24/06/14
Mar 25/06/14
Vie 25/07/14
Lun 28/07/14
Lun 26/08/14
Mar 27/08/14
Mar 03/09/14
Mie 04/09/14
Mar 17/09/14
Planteamiento del problema
Requerimientos(Historias
de
Usuario) Selección de Herramientas
DISEÑO Diseño de Diagrama de Objetos Diseño de Diagrama de Base de Datos Diseño de Diagrama de Clases Diseño
de
Diagrama
de
Interfaces IMPLEMENTACIÓN Codificación del software
Pruebas
INSTALACIÓN Instalación de equipos
Instalación del sistema
EVALUACIÓN Manual Técnico
Manual de Usuario
Fin del proyecto Fuente: Por el autor Elaborado por: Fausto Soto
78
Tabla 14 Requerimientos N° 1
REQUERIMIENTOS
RESPONSABLES
El sistema funcionara en cualquier plataforma mediante la
Analista y Desarrolladores
Web 2
El sistema debe ser desarrollado bajo HTML5, lenguaje de
Analista y Desarrolladores
programación PHP 3
El gestor de base de datos será POSTGRE SQL
Analista y Desarrolladores
4
El sistema utilizara RUBY RAIS como framework
Jefe de Proyecto
5
El sistema utilizara la librería FPDF para los reportes
Desarrolladores
necesarios 6
El sistema utilizara iconos de acceso rápido
Desarrolladores
7
Entregar manuales (Usuario y Técnico), script BDD
Jefe de Proyecto
8
El sistema debe ser parametrizable
Analista y Desarrolladores
9
Validar los tipos de datos en cada formulario
Sistema
10
El sistema debe controlar el acceso al sistema (login)
Sistema
11
El sistema tendrá un menú principal
Desarrolladores
12
Las contraseñas de usuarios de sistema serán encriptados
Sistema
13
El sistema debe permitir al administrar usuarios
Administrador
14
El sistema debe administrar las dependencias con sus
Administrador
respectivos usuarios 15
El sistema permite administrar el inventario de artículos
Administrador
16
El sistema facilita en el préstamo de los artículos
Administrador
17
El Sistema debe llevar un historial de los movimientos de
Sistema
items similar a un kardex 18
Visualizar lista negra
19
Visualizar
prestamos
Administrador realizados
durante
un
periodo
Administrador
determinado 20
Visualizar el historial de entregas de los artículos
Administrador
21
El sistema debe permitir crear reportes
Administrador
Fuente: Por el autor Elaborado por: Fausto Soto
79
Diseño. Riesgo del Proyecto Amenaza el plan de proyecto
Ejemplos: Los posibles riesgos son del presupuesto, planificación, recursos, personal.
Consecuencia: Retraso en la planificación
Riesgo técnico Amenaza la calidad del software.
Ejemplos: Mal idea de los requerimientos, utilización de aplicaciones o herramientas obsoletas.
Consecuencia: Insatisfacción del Cliente.
Riesgo de Negocio Amenaza la factibilidad del Software
Consecuencia: Construir un producto y no cumpla la meta de la empresa, perder presupuesto construir un producto que nadie quiera usar y perder el apoyo de alta gerencia.
80
IDENTIFICACIÓN
Tabla 15 Descripción de los Riesgos DESCRIPCIÓN DEL CATEGORÍA
CONSECUENCIA
RIESGO R1
Mal diseño de la BDD
RP
Retraso en la entrega del Proyecto
R2
Falta de información por
RT
parte de los usuarios R3
Retraso en el análisis del Proyecto
Equipos de actualizados
RT
Construcción del programa en
la
plataforma
inadecuada R4
Interfaces no adecuados
RT
Difícil manejo para los usuarios
R5
Usuarios finales se rehúsan
RN
a usar el sistema R6
Perdida de sistema en venta
Cambio de jefe de proyecto
RN
Demora en el desarrollo del sistema
R7
Inconformidad
en
las
RT
salidas de información R8
Reestructurar nuevamente el sistema
Mala planificación en el
RP
Demora en el análisis
RP
Realizar
tipo de desarrollo R9
Inconformidad
en
desarrolladores R10
la
codificación
Inadecuado ambiente de
RP
trabajo R11
mal
No
cumplir
con
los
requerimientos
Mala distribución de tareas
RP
Sistema sin concordancia
RT
No facilitar la información
a los desarrolladores R12
Falta de experiencia en el manejo de Herramientas
de la forma adecuada
CASE R13
Desinterés
en
actualizar
componentes
RT
Sistema obsoleto
RT
Pérdida
de
programación R14
El sistema no cumple con los
requerimientos
del
de
Tiempo
y
Recursos
cliente R15
EL
sistema
parametrizado totalidad
no en
está su
RT
No concuerda con los parámetros
81
R16
Interfaces
del
utilizan
sistema
colores
RT
muy
por
el
usuario al ver colores que
fogosos. R17
Inconformidad
afectan a la vista
Falta de experiencia en la
RP
herramienta de desarrollo
Pérdida
de
Tiempo
y
Recursos
del sistema R18
Salida de mensajes que no ajustan
con
RP
los
No
cumple
con
los
requerimientos
requerimientos especificados R19
Poco conocimiento con el
RP
gestor de la base de datos
Capacitación al personal y pérdida
de
recursos
y
tiempo R20
Utilización
de
muchos
componentes
en
RT
los
El usuario no entiende muy bien la aplicación
formularios R21
El sistema se demora al cargar
el
RT
formulario
mal
administradas a la base de
principal R22
Conexiones
datos
El sistema no cuenta con
RP
Falta de análisis
RP
Falta de documentación y
excepciones R23
El sistema no tiene el versiona miento adecuado
R24
Los
formularios
análisis y
RT
componentes del sistema no
tienen
el
Pérdida
de
Tiempo
Recursos
tamaño
apropiado R25
La seguridad en el sistema
RT
Fácil ingreso al sistema
RN
Sistema sin concordancia
y permisos de acceso no están
controlados
correctamente R26
La validación de datos en los formularios del sistema no
se
correctamente Fuente: Por el autor Elaborado por: Fausto Soto
realizan
y
82
Tabla 16 An谩lisis de Riesgos Probabilidad Impacto
Identificaci贸n %
Valor
Probabilidad
Valor
Impacto
1
15
1
Baja
2
Moderado
2
70
3
Alta
4
3
75
3
Alta
4
30
1
5
60
6
Exposici贸n del riesgo Valor
Exposici贸n 2
Baja
Critico
12
Alta
4
Critico
12
Alta
Baja
1
Bajo
1
Baja
2
Media
2
Moderado
4
Media
30
1
Baja
1
Bajo
1
Baja
7
40
2
Media
2
Moderado
4
Media
8
25
1
Baja
2
Moderado
2
Baja
9
35
2
Media
2
Moderado
4
Media
10
40
2
Media
1
Bajo
2
Baja
11
30
1
Baja
1
Bajo
1
Baja
12
70
3
Alta
2
Moderado
6
Alta
13
65
2
Media
2
Moderado
4
Media
14
20
1
Baja
4
Critico
4
Media
15
20
1
Baja
2
Moderado
2
Baja
16
15
1
Baja
1
Bajo
1
Baja
17
75
3
Alta
3
Alto
9
Alta
18
70
3
Baja
2
Moderado
6
Alta
19
50
2
Media
3
Alto
6
Alta
20
20
1
Baja
1
Bajo
1
Baja
21
45
2
Media
2
Moderado
4
Media
22
55
2
Media
2
Moderado
4
Media
23
60
2
Media
3
Alto
6
Alta
24
20
1
Baja
1
Bajo
1
Baja
25
60
2
Media
3
Alto
6
Alta
26
45
2
Media
2
Moderado
4
Media
Fuente: Por el autor Elaborado por: Fausto Soto
83
Tabla 17 Criterio de Valoración de Probabilidad RANGO DE PROBABILIDAD DESCRIPCIÓN
VALOR
1% - 33%
Baja
1
34% - 66%
Media
2
67% -100%
Alta
3
Fuente: Por el autor Elaborado por: Fausto Soto
Impuesto
Impacto en costo
Tabla 18 Impuesto del Riesgo Retraso Impacto técnico
Bajo
<1%
1 semana
Valor
Ligero impacto en el desarrollo
1
del SW Moderado
<5%
2 semanas
Moderado
impacto
en
el
2
Severo impacto en el desarrollo
3
desarrollo del SW Alto
<10%
1 mes
del SW Crítico
>10%
>1 mes
Proyecto no puede ser
4
Fuente: Por el autor Elaborado por: Fausto Soto
EXPOSICIÓN RIESGO
Tabla 19 Exposición del Riesgo VALOR
COLOR
Baja
1o2
Verde
Media
3o4
Amarillo
Alta
mayor a 6
Rojo
Fuente: Por el autor Elaborado por: Fausto Soto
Proba/ Impacto
Tabla 20 Prioridad del Riesgo Bajo 1 Moderado 2
Alto 3
Critico 4
Alta =3
3
6
9
12
Media = 2
2
4
6
8
Baja =1
1
2
3
4
Fuente: Por el autor Elaborado por: Fausto Soto
84
Tabla 21 Exposición del Riesgo PROBABILIDAD IMPACTO EXPOSICIÓN 3
4
12
3
4
12
3
3
9
3
2
6
2
3
6
2
3
6
2
2
4
2
2
4
2
2
4
2
2
4
2
2
4
1
4
4
1
4
4
1
3
3
1
2
2
1
2
2
1
2
2
1
2
2
1
2
2
1
2
2
1
2
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
Fuente: Por el autor Elaborado por: Fausto Soto