Propuesta de un modelo de análisis para estimación del tamaño del software y gestión de costos y riesgos a partir de requerimientos funcionales Sandra Patricia Forigua sforigua@javeriana.edu.co, Oscar Arturo Ballesteros oscar.ballesteros@javeriana.edu.co Abstract. This paper describes the whole process followed to make this model. First you can find the methods that we consider the most important in the field of software size measurement, cost management and risk management. In the second part, there are the concepts developed to explain the proposed model, there are charts that explain the steps needed to be followed in order to use this model, and the justification of the choice of the different methods used in this model. In the third part there is the study case and the results obtained from the application of this model to the study case and in the final part of this paper you will find the conclusion of this work. Palabras claves: metodología, gestión, modelo, técnicas, proyectos de desarrollo de software, proyectos de TI, estimación de tamaño del software. Estimación del tamaño del software TABLA 1: DESCRIPCIÓN DE MODELOS DE ESTIMACIÓN DEL TAMAÑO DEL SOFTWARE Metodología Descripción Conteo de Líneas de Código Este método toma las líneas de código necesarias para la construcción de un sistema como medida de su tamaño. Conteo Por número de Bloques Este método toma como medida del tamaño de un sistema, el número de funciones que éste contiene. Estimación basada en la estadística Este método divide, el sistema en componentes, para así realizar las estimaciones sobre cada uno de ellos. Estimación Por Puntos de Función Se basa en la funcionalidad del sistema, mas no en el producto del desarrollo, para realizar su estimación se deben determinar los componentes de puntos de función para el sistema y clasificarlos según su dificultad. I. INTRODUCCIÓN Este artículo contiene la descripción de los conceptos, fundamentos y procesos involucrados en el desarrollo de un modelo que facilite la estimación del tamaño del software así como de la gestión de costos y riesgos. Inicialmente se podría decir que este trabajo integra los estudios y análisis efectuados en torno a los temas de estimación del tamaño del software y la gestión de costos y riesgos de un proyecto de desarrollo, esto con el fin de establecer criterios, principios y requisiciones específicos para la escogencia de la metodologías y técnicas que hacen parte del modelo. Intervienen en el modelo ciertos elementos utilizados para redefinir las metodologías que lo constituyen en respuesta al entorno y caracterización de los proyectos de TI en Colombia [1]. Por último, cabe resaltar la base de los requerimientos de la cual parte el modelo. Dicha base define algunos de los conceptos, decisiones y procedimientos que se desarrollarán en cualquiera de los pasos que lo constituyen. Gestión de costos TABLA 2: DESCRIPCIÓN DE MODELOS DE GESTIÓN DE COSTOS Metodología Descripción Costos por Analogía Se estima el costo del proyecto basándose en el costo de proyectos similares ya realizados. Precio a Ganar Se ajusta el precio del proyecto para mejorar la propuesta más económica realizada, con el fin de ganar el proyecto. COCOMO Modelo empírico para la estimación del esfuerzo y costo del desarrollo de un sistema de software, se basa en el uso de multiplicadores de esfuerzo. SLIM Se basa en la distribución de poder hombre, se usa la ecuación de software, en donde se relaciona, el tiempo de entrega, factores ambientales, en los cuales se refleja la capacidad de desarrollo de la compañía II MODELOS Y MÉTODOS EXISTENTES A continuación se listan y describen los métodos más utilizados en la actualidad para la estimación del tamaño del software PROPUESTA CONCEPTUAL DE LA ESTIMACIÓN DE TAMAÑO DEL SOFTWARE Gestión de riesgos TABLA 3: DESCRIPCIÓN DE MODELOS DE GESTIÓN DE RIESGOS Proceso PMBok® 2000 SEI - Método Continuos Risk Management IEEE Descripción Se plantea un análisis de las ventajas y desventajas de cada uno de los métodos para la estimación del tamaño del software Estándar que utiliza el conocimiento, herramientas y técnicas para resolver posibles problemas del proyecto. TABLA 4: VENTAJAS Y DESAVENTAJAS DE LOS MÉTODOS PARA LA ESTIMACIÓN DEL TAMAÑO DEL SOFTWARE Proporciona una guía compuesta por principios, conceptos y funciones para la toma de decisiones entorno a riesgos que deben ser evaluados continuamente. Establece una norma para el desarrollo de planes de gestión del riesgo constituidos por el uso de formatos. Esta norma no establece técnicas exactas para ser usadas en los planes de proyecto. De acuerdo con la fuente [3] el modelo de gestión de riesgos más utilizado en la actualidad contiene los elementos que se ilustran en la fig. 1: Metodología Conteo Líneas Código de de Conteo numero Bloques Por de Ventaja Desventaja -Se basa en el producto del desarrollo de software. -Dependiente del lenguaje de programación. -Fácil Conteo -Dependiente de Programadores. -Se Basa en el producto de la construcción del Software. -Dependiente del lenguaje de programación. Fácil conteo. Estimación basada en la estadística -Disminuye la incertidumbre, dividiendo el sistema en componentes. -Se basa en un proceso estadístico, que ofrece un grado de seguridad. III PROPUESTA CONCEPTUAL DEL MODELO Esta sección se concentra en contrastar los conceptos y definiciones especificados en el estado del arte, concernientes a la estimación del tamaño del software, la gestión de costos y riesgos, con las bases (evaluaciones de las metodologías, estudios estadísticos de proyectos de software en Colombia, principios y requisiciones de las metodologías, delimitaciones, etc.) para definir la propuesta del modelo. A continuación se exponen los conceptos, metodologías, técnicas y procedimientos que basados en el estado del arte del trabajo sustentarán, más adelante, los pasos que contiene el modelo contenidos para la estimación del software y la gestión de costos y riesgos. los -Si no se cuenta con datos históricos, las estimaciones serán poco confiables. -El método requiere un tiempo para converger en buenas estimaciones. Estimación Por Puntos de Función -Al depender de la funcionalidad del sistema, su aplicación se puede realizar desde la definición de los requerimientos del sistema. -Es posible que no se encuentren todos los componentes necesarios, lo que daría una estimación equivocada. Estimación Por Puntos de Objeto -Se basa en la funcionalidad del sistema a construir, lo cual hace a esta metodología adecuada para fases tempranas del proyecto. -No es muy usada la metodología. -Fácil Utilización. FIGURA 1 MODELO DE GESTIÓN DE RIESGOS MÁS ACEPTADO EN LA ACTUALIDAD [3] Dependiente de desarrolladores. los -No es muy adecuada para sistemas que requieren algoritmos complicados, y pocas pantallas y reportes. PROPUESTA CONCEPTUAL DE LA GESTIÓN DE COSTOS Se plantea un análisis de las ventajas y desventajas de cada uno de los métodos para la gestión de costos: TABLA 5: VENTAJAS Y DESAVENTAJAS DE LOS MÉTODOS PARA LA GESTIÓN DE COSTOS o Metodología Ventajas Desventajas Costos por Analogía Si se cuenta con buena información histórica de proyectos pasados, se pueden obtener estimaciones bastante acertadas. Se requiere información histórica de proyectos para realizar la estimación. Parkinson Se tienen en cuenta las necesidades del cliente. La estimación obtenida, muy seguramente este muy alejada, del costo real del proyecto, lo cual puede ocasionar perdidas. La estimación se realiza de una manera muy sencilla. La estimación muy probablemente estará incorrecta, y el costo real estará muy alejado de la realidad. o o Precio Ganar a COCOMO SLIM Se basa en la evaluación de factores de esfuerzo del proyecto, lo que hace que en la estimación se incluyan varios factores que inciden en el costo del proyecto. Predisposición por parte del equipo de la gestión ante la utilización de fórmulas matemáticas. Usa factores del proyecto y producto, para realizar la estimación, estos factores inciden en el costo del proyecto. Predisposición por parte del equipo de la gestión ante la utilización de fórmulas matemáticas. . PROPUESTA CONCEPTUAL DE LA GESTIÓN DE RIESGOS La figura 2 muestra los criterios que se tuvieron en cuenta para el planteamiento de una metodología de gestión de riesgos del modelo: Agilidad Todos los riesgos relacionados con los proyectos de desarrollo deben ser identificados, analizados priorizados y revisados siguiendo un plan de gestión de riesgos. Como consecuencia de los constantes cambios, la lista de los riesgos y la información relacionada con su estado actual e historia reciente , deben ser mantenidos en una Base de Datos de Riesgos de Proyecto separada. La información contenida en la Base de Datos de Riesgos debe ser utilizada para acrecentar la información contenida en una Base de Datos de Riesgos Organizacional. FIGURA 3 REQUISICIONES PARA UNA METODOLOGÍA DE GESTIÓN DE RIESGOS [5] IV MODELO PROPUESTO La propuesta de este modelo establece que los pasos que se deben seguir para la estimación del tamaño y la gestión de costos y riesgos son: PASO I – Definir los requerimientos funcionales Este proceso comprende desde el conocimiento de los requerimientos funcionales del proyecto hasta su especificación utilizando la plantilla propuesta por la IEEE1. PASO II: Estimar el tamaño del software El proceso que comprende la estimación del tamaño del software en el modelo se muestra en la figura 4 junto con las razones por las cuales fue seleccionada esta metodología. PASO III: Gestionar los costos Las actividades que comprende el paso para la gestión de costos del modelo se muestran en la figura 5 junto con las razones por las cuales fue seleccionada esta metodología. PASO IV: Gestionar los riesgos Participación necesaria PRINCIPIOS BÁSICOS DE LA GESTIÓN DE RIESGOS Reconocimiento de la necesidad de gestionar Potenciar la comunicación Las fases mostradas en la figura 5 corresponden a cada uno de los pasos de la metodología para la gestión de riesgos que se propone. En seguida de ésta se explican las razones por las cuales se escogió esta metodología. Paso V: Finalizar la gestión Una vez culmine la fase de gestión del riesgo los resultados de la ejecución de los pasos modelo materializados en los formularios diligenciados del 1 FIGURA 2 PRINCIPIOS BÁSICOS DE LA GESTIÓN DE RIESGOS [4] IEEE Software Requirements Specification Template. Página consultada [Mayo 2005]. Disponible en Internet: <http:// www.computing.dcu.ie/~roconnor/modules/ca326/srs _template.doc> mismo, deben ser tratados y almacenados en un repositorio de información relacionada con la planeación del proyecto. GESTIÓN DE COSTOS A continuación se muestran las metodologías propuestas de estimación del tamaño del software y gestión de costos y riesgos para el modelo. ESTIMACIÓN DEL TAMAÑO DEL SOFTWARE FIGURA 5 METODOLOGÍA PARA LA GESTIÓN DE COSTOS FIGURA 4 METODOLOGÍA PARA LA ESTIMACIÓN DEL TAMAÑO RAZONES POR LA CUALES SE ESCOGIÓ ESTA METODOLOGÍA DE GESTIÓN DE COSTOS En cuanto a la metodología de estimación se escogió la metodología de puntos de función, debido a las siguientes consideraciones. - Se puede usar adecuadamente en cualquier etapa del proyecto, así no se conozcan muchos aspectos sobre el mismo. - Se basa en la funcionalidad del software a implantar. - Al basarse en la funcionalidad es independiente del lenguaje. - Es fácil de aprender, y luego que se hace es muy práctica esta metodología. - Es de rápida aplicación, ya que sólo se identifican componentes funcionales, lo cual en muchos sistemas no es muy complicado. - Es una metodología fácilmente aplicable en el entorno colombiano, debido a su facilidad de uso y curva de aprendizaje. RAZONES POR LA CUALES SE ESCOGIÓ ESTA METODOLOGÍA DE GESTIÓN DE COSTOS Para el caso de la metodología para la realización de la gestión de costos, se tienen varios pasos, en los cuales se identificaron 2 metodologías para esta gestión, la primera se encarga de la estimación del costo del proyecto y presupuesto del mismo, la segunda se encarga del control del presupuesto; estos pasos son indispensables para cualquier proyecto. A continuación se explica el por qué de la elección de estas metodologías. COCOMO II Esta metodología se escogió para la estimación del costo y presupuesto, ya que la estimación del costo se realiza sobre cada requerimiento, lo que al estimar el costo de todos los requerimientos provee un presupuesto del proyecto por requerimiento. Este método se eligió debido a las siguientes razones. - Está basada en factores de costo, es decir para su estimación además de las características del software a realizar, se basa en otros factores como los de personal, equipos, etc. - Utiliza muchos factores de costo, que generan una muy buena estimación. - Consiste en 3 modelos separados los cuales son aplicables en diferentes etapas del proyecto. Análisis de Valor Ganado. Esta metodología se encarga de realizar control al presupuesto del proyecto, a través de diversas métricas, las cuales son de gran uso actualmente. A continuación se listan los aspectos por los cuales se eligió está metodología. - ofrecidos a sus clientes. Los siguientes son los requerimientos implementados: 1. Un cliente podrá consultar las direcciones IP que tenga disponibles. 2. El sistema debe generar las direcciones IP disponibles de un cliente de acuerdo con su plan de pago. 3. Un cliente podrá cambiar el nombre de su dirección IP 4. Un cliente podrá eliminar el nombre de su dirección IP 5. El sistema deberá notificar al cliente el número de cada una de las direcciones IP que tenga adscritas. 6. El sistema deberá verificar la existencia de una dirección IP de un cliente. 7. El administrador del sistema podrá consultar los logs de la aplicación. Compara diversos factores, para obtener de esta manera una visión más realista del estado proyecto. Las métricas que usa no son muy complicadas, lo cual las hace de fácil utilización. La metodología es apta para cualquier tipo de proyecto, sin importar su tamaño. GESTIÓN DE RIESGOS RESULTADOS DE LA APLICACIÓN DEL MODELO ESTIMACION DEL TAMAÑO FIGURA 6 METODOLOGÍA DE GESTIÓN DE RIESGOS RAZONES POR LA CUALES SE ESCOGIÓ ESTA METODOLOGÍA DE GESTIÓN DE RIESGOS - - - Una de las razones fundamentales es que cubre la totalidad de las fases que en las que se desarrollan los métodos de gestión de riesgos en la actualidad (ver Tabla 3 y Fig. 1). De acuerdo con las requisiciones para una metodología de riesgos cabe resaltar la necesidad de aprendizaje que todo el proceso puede y debe generar entorno a la identificación y manejo de los riesgos. Des esta manera, la base de datos de los riesgos puede convertirse en una base de aprendizaje de riesgos en donde se recopilen aspectos relacionados con su estado. De acuerdo con la caracterización de los proyectos de TI en Colombia realizada en este trabajo, es clara la necesidad de mantener una comunicación abierta entre los miembros del equipo de proyecto. La comunicación se debe generar también en esta parte de gestión de riesgos y no sólo en las fases del modelo de desarrollo establecido. Esta metodología demostró gran exactitud a la hora de comparar los resultados obtenidos al final del proyecto, cuando se conoció el tamaño final del mismo. Al igual se demostró que la técnica es muy fácil de usar y no requiere de de mucho tiempo para su aplicación, ni de mucho entrenamiento. GESTION DE COSTOS Para el caso de estas 2 metodologías sólo se pudo aplicar una, esto debido a que por parte de la organización que realizó dicho proyecto no contaba con información histórica sobre el desempeño de los costos durante el proyecto, pero por el otro lado se realizó una estimación bastante acertada del costo total del proyecto. GESTIÓN DE RIESGOS Para la gestión de riesgos, el plan que se realizó y los riesgos que se identificaron, algunos fueron los que se presentaron a lo largo del proyecto, y los planes de mitigación que se generaron fueron considerados útiles, para el manejo de los riego en esta clase de proyectos. VI. CONCLUSIONES 1. V CASO DE ESTUDIO DESCRIPCIÓN DEL PROYECTO Desarrollo para un ISP (Proveedor de servicios en Internet) con el fin de ampliar la gama de servicios 2. Se logró desarrollar un modelo para la estimación del tamaño del software y la gestión de costos y riesgos de un proyecto de desarrollo tomando como base los requerimientos funcionales del mismo. El modelo propuesto se encuentra fundamentado en la utilización de diversas metodologías y técnicas para la estimación 3. 4. 5. 6. 7. 8. 9. del tamaño y gestión de costos y riesgos de un proyecto de software, extraídas como resultado del estudio sobre diversas fuentes de información relacionadas con el tema. Se establecieron criterios para la clasificación de las metodologías encontradas para la estimación del tamaño y gestión de costos y riesgos de un proyecto de desarrollo, llevando a cabo para este fin un marco comparativo entre dichas metodologías. Adicionalmente a la definición de los criterios fue posible establecer requisiciones y principios básicos sobre los cuales debe basarse una metodología de gestión de riesgos y algunas técnicas involucradas en este mismo proceso. Se establecieron metodologías y técnicas específicas asociadas con la estimación del tamaño y gestión de costos y riesgos de un proyecto de software que responden a los criterios ya definidos. Las metodologías y técnicas especificadas con base en los criterios definidos, constituyen la base del modelo propuesto para la estimación de tamaño y gestión de costos y riesgos de un proyecto de desarrollo de software. Es una finalidad del modelo suministrar un marco básico de metodologías y técnicas basadas en el uso de herramientas de fácil acceso que faciliten, a su vez, el proceso de estimación y gestión de costos y riesgos en un proyecto de desarrollo. La aplicación práctica del modelo a través de un caso de estudio permitió validar experimentalmente algunos de los pasos que constituyen el mismo, generando una adecuada gestión de costos y riesgos de acuerdo con los criterios especificados. La validación experimental del modelo presentó algunas limitaciones como resultado de algunas restricciones de la empresa donde se desarrollo el caso de estudio, por tanto algunos pasos del modelo tuvieron que ser adaptados de acuerdo con otros anteriores que si se lograron aplicar de manera practica. almacenamiento y cálculo de los datos en un mismo entorno. 2. Ampliar la aplicación práctica del modelo en empresas a gran escala, con el fin de obtener nuevos resultados que complementen el caso de estudio presentado en este trabajo y exploren nuevas experiencias con el fin de sugerir mejoramientos a los procesos y conceptos propuestos para la estimación y gestión de proyectos de software. 3. Complementar el modelo a través de la propuesta de una metodología para la estimación y control de calendario. 4. Se sugiere el desarrollo de un estudio más profundo acerca del estado de las pymes colombianas con respecto a las áreas de estimación y gestión de proyectos, con el fin de extender la aplicación del modelo teniendo en cuenta nuevas necesidades y requerimientos de las empresas aparte de las mencionadas e identificadas en este trabajo. REFERENCIAS [1] A. Cueto, “V Encuesta de gerencia de proyectos”. Asociación colombiana de ingenieros de sistemas. 2007 [2] S. Maniasi, “Un Modelo para la identificación en base a taxonomías”. Global Software Group. Argentina, 2005. [3] M. Carr, S. Konda, I. Monarca, F. Carol Ulrich, C.F. Walker, “Taxonomy-Based Risk Identification”, SEI, 1993. [4] MSF Risk Management Discipline v.1.1., Microsoft Solutions Framework, Seattle 2002. [5] Managing Software Project Risk. 2004. Tasscsolutions. VII. TRABAJOS FUTUROS Con la realización de este trabajo se abrieron varias perspectivas para enriquecer el modelo propuesto en este trabajo de grado, las cuales generarían un modelo mucho mas robusto y apropiado para las organizaciones desarrolladoras locales. A continuación se expresan algunas de las ideas para la realización de trabajos de grado futuros. 1. Implementar una herramienta computacional de apoyo al modelo que incluya todas apoye todos los pasos propuestos por éste y facilite al usuario el [6]. Cocomo II Model Definition Manual, COCOMO, 1999. [7]. Handbook of software engineering & knowledge engineering, World Scientific Publishing Co, 2002. [8]. Function Points Analysis Training Course, Longstreet Consulting Inc, 2004. [9]. Software Engineering Project Management, IEEE Computer Society, 2003. [10]. Rita's Course in a Book for Passing the PMP Exam, PMP exam prep, 2002.