Estimación del esfuerzo de desarrollo de software Dr. Cuauhtémoc López Martín [email protected] [email protected] De acuerdo con el Programa Nacional de la Industria del Software (2002), el 90% de las empresas desarrolladoras mexicanas no tienen procesos formales para registrar, dar seguimiento y controlar aspectos mensurables durante el proceso de desarrollo de sus productos. Una de las actividades más críticas en la administración de proyectos de software es la estimación del esfuerzo de desarrollo, actividad que incluso ha sido identificada como uno de los tres grandes desafíos de la ciencia computacional. El esfuerzo de desarrollo es definido como la cantidad de tiempo requerido por un conjunto de personas para diseñar, codificar, probar y ejecutar otras actividades de apoyo relacionadas directamente con la obtención de un producto de software Con el antecedente de que una sola técnica para estimar el esfuerzo de desarrollo de software no es la mejor para todas las situaciones, una cuidadosa comparación de los resultados de diversos enfoques es lo más adecuado para generar estimaciones más realistas. Recientemente, las técnicas de aprendizaje de máquina tales como la lógica difusa, algoritmos genéticos, redes neuronales y razonamiento basado en casos, se han sumado a aquellas tradicionales de juicio experto y a las algorítmicas. Con ello, se intenta encontrar nuevos modelos que mejoren las estimaciones y, como consecuencia, contribuyan a una mejor planeación de proyectos de software, actividad considerada como una de las áreas clave de proceso del CMM (modelo en el cual el gobierno federal ha establecido sus metas al 2010). Palabras clave: Estimación del esfuerzo de desarrollo de software, proceso de software, métricas de software, estadística inferencial, modelos de regresión, diseño de experimentos, lógica difusa, algoritmos genéticos, redes neuronales, razonamiento basado en casos.