A Fuzzy Logic Model Based Upon Reused and New&Changed Code for Software
Development Effort Estimation at Personal Level
Cuauhtemoc Lopez-Martin
Center for Computing Research,
National Polytechnic Institute,
Mexico
cuauhtemoc@sagitario.cic.ipn.mx
Cornelio Yañez-Marquez
Center for Computing Research,
National Polytechnic Institute,
Mexico
cyanez@cic.ipn.mx
Agustin Gutierrez-Tornes
Systems Coordinator, Banamex,
Mexico, D.F.;
ITESM, Mexico,
agustin.tornes@itesm.mx
Abstract
Unless engineers have the capabilities provided by
personal training, they cannot properly support their
teams or consistently and reliably produce quality
products. This paper presents a research aimed to
compare a model based upon Fuzzy Logic with a
Multiple Linear Regression model. From a replicated
experiment using a sample integrated by sixteen
developers and 94 small programs these two models
are derived. A common process as well as inside of a
controlled environment this experiment is based. These
comparisons based upon analysis of variance
(ANOVA), Magnitude of Relative Error (MRE) as well
as Multiple Range Tests show that a Fuzzy Logic model
based on New and Changed code as well as Reused
code can be an alternative for the software
development effort estimation at personal level.
Keywords
Software effort estimation, Fuzzy system model,
Personal software process, Multifactor ANOVA,
1. Introduction
Software engineering estimation techniques are used
for a number of purposes inside of enterprises. These
include (a) budgeting (b) tradeoff and risk analysis (c)
project planning and control, and (d) software
improvement investment analysis [2]. The
consequences of effort overruns are, among others (a)
lack of quality of the deriverables, (b) dissatisfied
customers, and (c) frustrated developers [15].
Accurate and timely prediction of the development
effort and schedule required to develop a software
system is one of the most critical activities in managing
software projects [13][15]. In addition, software
estimation has been identified as one of the three great
challenges for half-century-old computer science [6].
In accordance with the Mexican National Program
for Software Industry Development, the 90% of
software Mexican enterprises do not have formal
processes to record, track and control measurable
issues during the development process [25]. This
statistic implicitly means that in those enterprises the
need for practicing software development effort
estimation exists.
The Capability Maturity Model (CMM) is an
available description of the goals, methods, and
practices needed in software engineering industrial
practice. Enterprises need to understand models as
CMM and know how to apply its principles. Twelve of
the eighteen key process areas of the CMM are at least
partially addressed by the Personal Software Process
(PSP) [11].
Unless engineers have the capabilities provided by
personal training, they cannot properly support their
teams or consistently and reliably produce quality
products [10]. It suggests that the software estimation
activity could start through a personal level approach
by developing small programs as this paper proposes.
Several cost and effort estimation techniques have
been proposed and researched over the last 30 years
[4][20]. These techniques fall into the following three
general categories [20]:
1) Expert judgement: Is a technique widely used,
that aims to derive estimates based upon an expert's
previous experience on similar projects. The means for
deriving an estimate are not explicit and therefore not
repeatable.
2) Algorithmic models: It is today the most popular
in the literature. It attempts to represent the relationship
between effort and one or more of a project's
characteristics. The main cost driver in such a model is
usually taken to be some notion of software size (e.g.
the number of lines of source code as in this paper).
Algorithmic models need calibration to be adjusted to
local circumstances (as it is done in this study).
3) Machine learning: Machine learning techniques
have in recent years been used as a complement or
alternative to the previous two techniques. Fuzzy logic
models are included in this category.
Experience has shown that there is not a best
prediction technique outperforming all the others in
every situation [13]. Hence, no one method or model
should be preferred over all others. The key to arriving
at sound estimates is to use a variety of methods and
Proceedings of the 15th International Conference on Computing (CIC'06)
0-7695-2708-6/06 $20.00 © 2006