El dimensionamiento del software o la estimación del tamaño del software es una actividad en la ingeniería de software que se utiliza para determinar o estimar el tamaño de una aplicación o componente de software con el fin de poder implementar otras actividades de gestión de proyectos de software (como la estimación o el seguimiento). El tamaño es una característica inherente de una pieza de software, al igual que el peso es una característica inherente de un material tangible.
Fondo
El tamaño del software es diferente de la estimación del esfuerzo del software . El tamaño estima el tamaño probable de una pieza de software, mientras que la estimación del esfuerzo predice el esfuerzo necesario para construirlo. La relación entre el tamaño del software y el esfuerzo requerido para producirlo se llama productividad .
Por ejemplo, si un ingeniero de software ha creado una pequeña aplicación de calculadora basada en la web, podemos decir que el esfuerzo del proyecto fue de 280 horas-hombre. Sin embargo, esto no proporciona ninguna información sobre el tamaño del producto de software en sí. Por el contrario, podemos decir que el tamaño de la aplicación es de 5000 LOC (líneas de código) o 30 FP (puntos de función) sin identificar el esfuerzo del proyecto necesario para producirlo.
Métodos funcionales de dimensionamiento de software
Históricamente, la metodología de dimensionamiento de software más común ha sido contar las líneas de código escritas en la fuente de la aplicación. Otro enfoque consiste en realizar una medición de tamaño funcional, para expresar el tamaño de la funcionalidad como un número mediante la realización de un análisis de puntos de función . El método de dimensionamiento original es el IFPUG . El método de dimensionamiento funcional (FSM) IFPUG FPA se ha utilizado con éxito, a pesar de ser menos preciso en la estimación de algoritmos complejos y ser relativamente más difícil de usar que la estimación de líneas de código. Han surgido adaptaciones de la metodología de medición de tamaño funcional original, y estos estándares son: puntos de función COSMIC , puntos de función Mk II , puntos de función Nesma y puntos de función FiSMA. Otras variantes de estos estándares incluyen puntos de función orientados a objetos (OOFP) y variantes más nuevas como puntos de micro función ponderados , que tienen en cuenta la complejidad algorítmica y del flujo de control .
El mejor método de dimensionamiento funcional depende de una serie de factores, incluido el dominio funcional de las aplicaciones, la madurez del proceso de la organización en desarrollo y el grado de uso del método FSM. [1] [2] Hay muchos usos y beneficios de los puntos de función [3] más allá de medir la productividad del proyecto y estimar los proyectos planificados, estos incluyen monitorear el progreso del proyecto y evaluar la cobertura de requisitos de los paquetes comerciales listos para usar (COTS) .
Otros métodos de dimensionamiento de software incluyen el dimensionamiento de software basado en casos de uso, que se basa en contar el número y las características de los casos de uso encontrados en una pieza de software, y la medición de tamaño funcional COSMIC , que aborda el software de dimensionamiento que tiene una cantidad muy limitada de datos almacenados como como sistemas de "control de procesos" y "tiempo real".
Tanto el método IFPUG como los métodos COSMIC son estándares ISO / IEC.
Método de dimensionamiento de software no funcional
El método IFPUG para dimensionar los aspectos no funcionales de un software o componente se llama SNAP, por lo tanto, el tamaño no funcional se mide mediante SNAP Points . El modelo SNAP consta de cuatro categorías y catorce subcategorías para medir los requisitos no funcionales. Los requisitos no funcionales se asignan a las subcategorías relevantes. Cada subcategoría tiene un tamaño y el tamaño de un requisito es la suma de los tamaños de sus subcategorías. El proceso de dimensionamiento SNAP es muy similar al proceso de dimensionamiento de puntos funcionales. Dentro del límite de la aplicación, los requisitos no funcionales se asocian con categorías relevantes y sus subcategorías. Utilizando un conjunto estandarizado de criterios básicos, cada una de las subcategorías se clasifica según su tipo y complejidad; el tamaño de tal requisito es la suma de los tamaños de sus subcategorías. Luego, estos tamaños se suman para dar la medida del tamaño no funcional de la aplicación de software.
Información Adicional
Varios estándares de calidad de software exigen el uso de un método de dimensionamiento válido como parte del ciclo de vida estándar de ingeniería de software de la organización . Por ejemplo, la integración del modelo de madurez de capacidades ( CMMI ) plantea tal requisito. Una organización no puede ser evaluada (certificada) como CMMI nivel 2 o nivel 3 a menos que se utilice adecuadamente el tamaño del software.
Ver también
Referencias
- ^ Directrices sobre cómo elegir un método FSM
- ^ Guía sobre cómo elegir un método de tamaño funcional - Pam Morris Total Metrics - Centro de recursos de punto de función ver ISO / IEC 14143-6: - INGENIERÍA DE SOFTWARE - MEDICIÓN DE SOFTWARE - MEDICIÓN DE TAMAÑO FUNCIONAL - PARTE 6: GUÍA PARA EL USO DE ISO / IEC 14143 SERIES Y NORMAS INTERNACIONALES AFINES
- ^ Usos y beneficios de los recuentos de puntos de función - Pam Morris Total Metrics - Centro de recursos de punto de función , PDF