Keywords: Fuzzy logic, cost estimation
INTRODUCTIONSoftware metric refers to the measurement of software attributes which are typically related to the product, the process and the resources of software development [1]. These measurements can be used as parameters in project management models [2] which provide aids to software project managers in the daunting task of managing software projects to avoid problems such as cost overrun and behind the schedule.One of the most extensively researched areas of software measurement is software effort prediction. Software effort prediction models fall into two main categories: algorithmic and non-algorithmic. The most popular algorithmic prediction models include Boehm's COCOMO [3], Putnam's SLIM [4] and Albrecht's Function Point [5]. These models require as inputs, accurate estimate of certain attributes such as line of code (LOC), complexity and so on which are difficult to obtain during the early stage of a software development project. The models also have difficulty in modeling the inherent complex relationships between the contributing factors, are unable to handle categorical data as well as lack of reasoning capabilities [6]. The limitations of algorithmic models led to the exploration of the non-algorithmic techniques which are soft computing based. These include artificial neural network, evolutionary computation, fuzzy logic models, case-based reasoning and so on.Artificial neural network are used in effort estimation due to its ability to learn from previous data [7][8]. It is also able to model complex relationships between the dependent (effort) and independent variables (cost drivers) [7][8].In addition, it has the ability to generalize from the training data set thus enabling it to produce acceptable result for previously unseen data. Most of the work in the application of neural network to effort estimation made use of feed-forward multi-layer Perceptron, Backpropagation algorithm and sigmoid function [7].Despite of these, neural network's limitations in several aspects prevent it from being widely adopted in effort prediction [7]. It is a 'black box' approach and therefore it is difficult to understand what is going on internally within a neural network. Hence, justification of the prediction rationale is tough. Neural network is known of its ability in tackling classification problem. Contrarily, in effort estimation what is needed is generalization capability. At the same time, there is little guideline in the construction of neural network topologies. On the other hand, genetic programming was used in effort estimation by Burgess et al [9] and the use of case-based reasoning in effort estimation can be found in [8]. The work presented here focused on the application of fuzzy logic in effort prediction.