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