Centro de Investigación en Matemáticas, A.C. Temas Selectos de Programación Avanzada II (Temas Selectos de Ingeniería de Software) Reporte Final Métricas de Procesos de Software Maestría en Ciencias de la Computación Guanajuato, Guanajuato. 05 de
Contenido Contenido 2 Introducción 3 Estado del Arte 4 Conclusiones 5 Bibliografía 6 2
Introducción En la primera parte del curso se habló de Procesos de Software y de los modelos o estándares que existen, y de cómo una compañía desarrolladora de software se debe de adecuar a ellos. Todo lo anterior con la finalidad de que la empresa tenga una mejora continua y por ende la calidad de sus productos sea mayor. Al tocar estos temas se vio la necesidad de medir procesos de software, sin embargo, no se mencionó que tipo de medidas y a qué procesos se pueden aplicar dichas medidas. En este proyecto se habla básicamente de dos aspectos de las Métricas en Procesos de Software, el primer tema a tratar es sobre algunos tipos de métricas de procesos existentes y el segundo tema es sobre cómo se puede implementar un programa de métricas a una compañía. La motivación personal para realizar esta investigación, es que ahora quiero profundizar un poco más en temas relacionados con la ingeniería de software y en cuestiones de métricas de procesos creo que existe un gran campo de acción. Además, me gustaría realizar un trabajo futuro relacionado con este tema y los conocimientos adquiridos siempre van a ser de gran utilidad. La selección de los artículos no fue fácil. Primero busqué en Internet (como se sugirió) bajo las frases clave: Software Process Metrics, Software Process Quality y Software Process Improvement. Una vez que tenía aproximadamente veinte artículos que aparentemente se relacionaban con el tema comencé a leer los abstracs para enterarme un poco más de que se trataban. De ahí seleccioné once de los cuales sólo me sirvieron nueve para este proyecto. Las frases clave fueron muy generales, esto fue porque al principio no tenía mucha idea de lo que realmente estaba buscando y traté de abarcar lo más que pude. Conforme fui leyendo los artículos y refinando el tema me di cuenta de lo que realmente necesitaba, por eso la reducción en número de artículos leídos. De los artículos reportados en la Bibliografía Extendida la clasificación que adopté es: 1. Muy Relevante 2. Relevante 3. Informativo Tuve varias dificultades al buscar los artículos, al principio no sabía exactamente los límites del tema y tampoco sabía exactamente que buscar. Lo anterior se debió a que no tengo conocimiento previo profundo sobre estos temas y hubo muchos términos que me causaron confusión. Hubo algunas definiciones que confundí y pensé que el artículo era de utilidad y hasta que avancé en las lecturas me di cuenta de lo que era y ahí fue cuando realmente definí los artículos que me servían para el proyecto. Por lo anterior, tal vez no hice la mejor selección de artículos pero a pesar de todo creó que logré formar un repositorio de artículos que son buenos como introducción a este tema. 3
Estado del Arte 4
Conclusiones Sobre este tema, hay que notar que existe poco material bibliográfico que se enfoque puramente a métricas de software en todos sus aspectos. Y por eso, creo que hay gran campo de investigación en la definición de atributos candidatos a medir en un proceso de software. Además, se debe de investigar más sobre los riesgos de implementar un programa de métricas en diversos tipos de compañías desarrolladoras de software. Asimismo, hay que ser cuidadoso en la implementación de procesos de métricas dentro de las compañías y tener como objetivo hacer que todo el personal entienda de la importancia de ellas, si no, se corre el riesgo de introducir un proceso burocrático más, que sólo servirá de estorbo en el desarrollo natural del proceso. Este proyecto me ha servido de muchas maneras, la primera es para entender un poco más el concepto de procesos de software, porque es importante tener un programa de métricas en una compañía y entender la necesidad de métodos formales para el desarrollo de procesos. Los conocimientos adquirido me sirven de base para realizar trabajos futuros, esto último es interés personal. También, me he dado cuenta que sigue siendo un reto adaptar a una empresa un proceso de métricas porque al final cada compañía desarrolla su propia forma de definir y usar métricas. Finalmente, ahora comprendo que los procesos de desarrollo de software son, por naturaleza, irrepetibles y que dependen de seres humanos; por lo tanto siempre debemos de tener en cuenta esto para saber que esta actividad siempre va a estar sujeta a fallas y restricciones; aún cuando existan medidas, métricas y todo tipo de planeaciones. 5
Bibliografía 1. Jakob H. Iversen & Karlheinz Kautz, The Challenge of Metrics Implementation. 23rd Information Systems Research Seminar in Scandinavia (IRIS 23) 2. Laurie Honour Werth, Lecture Notes on Software Process Improvement Software Engineering Institute, CMU/SEI-93-3M-8, Feb. 1993 3. Terence L. Woodings & Gary A. Bundell, A framework for software project metrics Proceedings of the ESCOM 2001, April 2001, London, pp. 77-86. 4. Fabrizio Riguzzi, A Survey of Software Metrics, Technical Report DEIS-LIA- 96-010, Serie LIA n. 17, Univesità di Bologna, Luglio 1996. 5. Maurizio Morisio, A methodology to measure the software process. Proceedings of the 7th Annual Oregon Workshop on Software Metrics, Silver Falls, Oregon, June 1995. 6. G. Boetticher, K. Srinivas & D. Eichmann, A Neural Net-Based Approach to Software Metrics Fifth International Conference on Software Engineering and Knowledge Engineering, San Francisco, CA, June 16-18, 1993, pages 271-274. 7. Ivica Crnkovic, Magnus Larsson & Frank Lüders, Software Process Measurements using Software Configuration Management. In Proceedings of 11th European Software Control and Metrics Conference, IEEE Computer Society, 2000 8. Stephen G. MacDonell & Andrew R. Gray, Software Process Engineering for Measurement Driven Software Quality Programs Realism and Idealism. Proceedings of ACOSM'96, Melbourne. 9. Mark C. Paulk, Applying SPC to the Personal Software Process In 10th International Conference on Software Quality, 2000. 6