Antecedentes
De 50 mil proyectos de software desarrollados entre los años 2003 y 2012, se determinó que sólo el 39% de ellos han sido exitosos. Uno de los factores que determina si un proyecto es exitoso, desafiante o fallido es la etapa de planeación; y, dentro de dicha etapa, la estimación de la duración es un paso decisivo.
En la práctica, la estimación del esfuerzo se emplea para predecir la duración de un proyecto de software; sin embargo, el esfuerzo no se conoce al inicio del proyecto, por lo que no debería utilizarse como variable independiente. En su lugar, los puntos de función ajustados y el tamaño máximo de desarrolladores son seleccionados como variables predictoras de la duración de proyectos de desarrollo de software.
El problema de la estimación de la duración ha sido abordado por otros autores aplicando: redes neuronales, el algoritmo de recocido simulado, y un ensamble de redes neuronales y máquina de soporte vectorial.
Los investigadores tienen el reto de proponer métodos precisos y con buena aceptación en la industria. Por lo anterior, se seleccionó el modelo de Estimación Basada en Analogía (ABE), el cual posee principalmente dos ventajas: 1) poder modelar relaciones complejas y 2) ser muy intuitivo por tanto fácil de aplicar y explicar a otros usuarios.
En el método propuesto, EBAE (Estimación Basada en la Analogía de la Energía), se aplica la selección manual de rasgos, se plantea el uso de una medida de similitud con base en la energía de los patrones, y además se considera un umbral θ para determinar los k casos más cercanos; es decir, k es variable. Por último se ajusta una función lineal a través del método Mínimos Cuadrados Ordinarios (Ordinary Least Squares OLS), considerando variables independientes cuadráticas implícitas.
Objetivo
Aplicar una estimación basada en analogía para la duración del desarrollo de proyectos de software y probar que el modelo es superior a la regresión estadística, a partir de las siguientes hipótesis:
H0:
La precisión de la estimación de la duración con EBAE es estadísticamente igual al 95% de confianza que la precisión obtenida con una regresión estadística, cuando puntos de función ajustados y el tamaño máximo de desarrolladores, son usados como variables independientes.
H1:
La precisión de la estimación de la duración con EBAE es estadísticamente diferente al 95% de confianza que la precisión obtenida con una regresión estadística, cuando los puntos de función ajustados y el tamaño máximo de desarrolladores, son usados como variables independientes.
Método
Tomando como variables independientes: los puntos de función ajustados y el tamaño máximo de desarrolladores, se seleccionó el repositorio internacional de datos ISBSG, y se obtuvo un subconjunto considerando el criterio de más alta calidad (A y B), la plataforma utilizada (mainframe), el lenguaje de programación (3GL) y el tipo de proyecto (nuevo).
Se validaron EBAE y la regresión estadística con el método Leave-One-Out y considerando como medida de error la MAE (Mean Absolute Error).
Resultados
El método EBAE es superior a la regresión estadística con un 95% de confianza utilizando la misma muestra.
Conclusiones
Se aplicó, por primera vez en el estado del arte, la estimación basada en analogía para la duración del desarrollo de proyectos de software con éxito. Ya que la hipótesis alternativa ha sido aceptada, podemos concluir que la ABE propuesta en esta tesis es estadísticamente significativa en favor de la EBAE con un 95% de confianza.
El método propuesto incluye dos aportaciones novedosas. La primera de ellas es la métrica utilizada para seleccionar los k casos más cercanos dentro del modelo ABE, la cual se denomina Distancia Energética y tal como su nombre lo indica se basa en la definición de energía. De acuerdo con la física, la energía es una de las características más descriptivas de un fenómeno u objeto. Pese a que la ingeniería de software no es una rama de la física, la energía de los patrones que representan proyectos de software es una variable interesante para determinar la cercanía con otros proyectos, tanto que además de fungir como métrica, indica una relación que no se encuentra en el mismo espacio que el de las variables independientes, que puede ser explorado para diferentes propósitos. La segunda es el umbral 𝜃, que es un parámetro a través del cual se seleccionan los proyectos más cercanos para estimar la duración de un proyecto de software. Así, a diferencia de lo que ocurre en el modelo ABE original donde el número de proyectos seleccionados es fijo, en el método propuesto sucede que el número de proyectos seleccionados es variable y depende del nuevo parámetro de umbral 𝜃.
El presente trabajo fue dirigido por dos de los autores del trabajo más reciente de estimación de la duración de desarrollo de proyectos de software, donde se propone el método OMARS. Los dos trabajos tienen en común el mismo conjunto y trasformación de datos, rasgos, y métrica.
Como trabajo a futuro se sugiere aplicar el método propuesto en otros bancos de datos de diversas áreas. Por otro lado, el umbral 𝜃 fue ajustado empíricamente, por lo que su valor puede ser determinado con base en la estadística del banco de datos o mediante un algoritmo de optimización. Otro reto sería extender el método para el tratamiento de valores perdidos, valores categóricos y mixtos.
El modelo de regresión estadística, dentro del método propuesto, se ha elegido por la misma razón que se elige al tratar un problema de regresión en cualquier área de la ingeniería: es la primera aproximación para comenzar a caracterizar un fenómeno. En este sentido, el método EBAE, puede ser expresado como un modelo para la eliminación de valores atípicos, i.e., OLS puede ser sustituido por cualquier otro método de regresión o clasificación que opere con datos numéricos.
Abstract
Background
Of 50,000 projects developed between 2003 and 2012, it was determined that
only 39% of them have been successful. One factor that determines whether
a project is successful, challenging or failed is the planning stage; and, the
duration estimation is a decisive step within that stage.
In practice, effort estimation is been used to predict the duration of a software
project. However, at the beginning of the project is not know the effort and it
should not be used as an independent variable. Instead, adjusted function
points and the maximum number of developers are selected as predictor
variables the duration of software development projects.
The problem of duration estimation has been addressed by other authors
applying: neural networks, the simulated annealing algorithm, and an assembly
of neural networks and vector support machine.
The researcher has the challenge of proposing precise methods with good
acceptance in the industry. Therefore, I selected the Analog Based Estimation
(ABE) model, which has two main advantages: 1) being able to model complex
relationships and 2) being intuitive and therefore easy to apply and explain to
other users.
In the proposed method, EBAE (Energy Based Analogy Estimation), it is applied
the manual selection of features, it is raised the use of a measure of similarity
based on the energy of the patterns, in addition a threshold θ is considered to
determine the k nearest neighbor, so k can be variable. Finally, a linear function
is adjusted through the Ordinary Least Squares OLS method, considering
implied quadratic independent variables.
Aim
Apply analogy-based estimation for the duration of the development of
software projects and prove that the model is superior to the statistical
regression, from the following hypotheses:
vii
H0: The precision of the duration estimation with EBAE is statistically equal
to 95% confidence that the precision obtained with a statistical
regression, when adjusted function points and the maximum size of
developers, are used as independent variables.
H1: The precision of the duration estimation with EBAE is statistically different
from 95% confidence from the precision obtained with a statistical
regression, when adjusted function points and the maximum size of
developers are used as independent variables.
Method
Taking as independent variables: the adjusted function points and the
maximum number of developers, the international repository ISBSG was
selected, and a subset was obtained considering the criterion of highest quality
(A and B), the platform used (mainframe), the programming language (3GL)
and the type of project (new).
EBAE and statistical regression were validated with the Leave-One-Out method
and considered as a measure of error MAE (Mean Absolute Error).
Results
The EBAE method is superior to statistical regression with 95% confidence
using the same sample.
Conclusions
It was applied successfully, for the first time in the state of the art, the analogybased
estimation of duration of software development project. Since the
alternative hypothesis has been accepted, I conclude that the EBA proposed in
this thesis is statistically significant in favor of EBAE with 95% confidence.
The proposed method includes two novel inputs. The first one is the metric
used to select the k nearest neighbor within the ABE model, which is called
Energy Distance and as its name indicates, is based on the definition of Energy.
viii
According to physics, energy is one of the most descriptive characteristics of a
phenomenon or object. Although software engineering is not a branch of
physics, the energy of the patterns that represent software projects is an
interesting variable to determine the closeness to other projects, so much so
that besides acting as a metric, it indicates a relation that is not in the same
space than that of independent variables, which can be explored for different
purposes. The second is the threshold θ, which is a parameter through which
the closest projects are selected to estimate the duration of a software project.
The traditional approach where a fixed value of k is selected is replaced by
selecting the threshold of closeness regardless of the number of cases that will
influence the estimation.
The present work was led by two of the authors of the most recent work
estimating the duration of software project development, where the OMARS
method is proposed. In common, the two works have, the same subset and
transformation of data, features, and metrics.
As future work, it is suggested to apply the proposed method in different areas.
On the other hand, the threshold θ was empirically adjusted, so its value can
be determined based on the statistics of the database or by an optimization
algorithm. Another challenge would be extend the method for the treatment of
lost values, categorical and mixed values.
The statistical regression model, within the proposed method, has been chosen
for the same reason that is chosen when dealing with a regression problem in
any area of engineering: it is the first approximation to characterize a
phenomenon. In this sense, the EBAE method can be extended to model for
object selection, i.e., linear regression can be replaced by any other regression
or classification method that operates with numerical data.