ISSN ONLINE(23209801) PRINT (23209798)
R.Akalya, K.Meera IM.ECSE, Department of CSE, KSR Institute for Engineering and Technology Namakkal 637 215, Tamilnadu, India 
Related article at Pubmed, Scholar Google 
Visit for more related articles at International Journal of Innovative Research in Computer and Communication Engineering
Software development involves number of interrelated factors which has its effect on development and productivity of the software project. Software effort estimation is one of the important activities of software development. The precision and reliability of the effort estimation is very important for software industry because both overestimates and underestimates of the software effort are harmful to software companies. Main objective of this paper is to reduce the relative error rate and to improve the accuracy of the effort estimation by using the software effort estimation models. To estimate the effort for the software project, both algorithmic and Nonalgorithmic models has been used. Results from the comparison of algorithmic COCOMO and non algorithmic Trapezoidal membership functions of fuzzy logic have been analysed.
Keywords 

Software Effort Estimation, Software Effort Estimation models, Fuzzy logic membership functions  
INTRODUCTION 

Accurate estimation of software development effort in reality has major implications for the management of software development. As a result, many software effort models [2] for estimating software development effort have been proposed and are in use. There are several techniques in software effort estimation. Each software project uses its required effort estimation model. Depending upon the inputs and the specification needed software model is chosen.  
• Algorithmic Model  
• Expert Judgment Method  
• Estimation by Analogy  
• Non Algorithmic Model  
EFFORT ESTIMATION USING COCOMO MODEL 

In the COCOMO model effort estimation[1] input has been given in the form of size. The size is in the form of Lines of code in direct approach and Function point in indirect approach. The effort required has been calculated for the two kinds of size using the COCOMO model which is the Algorithmic approach. In the similar way NonAlgorithmic approach has been applied to the Function point. Using fuzzy logic membership functions such as and Trapezoidal methods effort is calculated. Then the obtained result has been analysed from these techniques based on relative error. Software project managers are responsible for controlling project budgets so, they must be able to make estimates of how much a software development is going to cost. The principal components of project costs are:  
• Hardware costs.  
• Travel and training costs.  
• Effort costs (the costs of paying software engineers). The dominant cost is the effort cost. This effort can be calculated by using  
• SLOC  
• Function point  
COCOMO estimates are more objective and repeatable than estimates made by methods relying on proprietary models. The most fundamental calculation in the COCOMO model is the use of the Effort Equation to estimate the number of PersonMonths required to develop a project. COCOMO has cost drivers that assess the project, development environment, and team to set each cost driver. The cost drivers are multiplicative factors that determine the effort required to complete your software project. Effort is calculated by,  
Where 'a' and 'b' are empirically determined constants. Size is calculated as function point  
The Effort Adjustment Factor in the effort equation is simply the product of the effort multipliers corresponding to each of the cost drivers. The COCOMO schedule equation predicts the number of months required to complete your software project[4]. The duration of a project is based on the effort predicted by the effort equation:  
Where Effort is the effort from the COCOMO II effort equation SE Is the schedule equation exponent derived from the cost Drivers.  
2.1 Function point calculation:  
In the model caliberation, initially loc has been given as the input to calculate the effort[3]. Then the function point has been converted into loc and that has been used in the calculation. In the function point calculation initial function point has been calculated with the help of data functions and transactional functions. The initial function point is the unadjusted function point.  
The data functions are:  
• Internal Logical File(ILF)  
• External Interface File (EIF)  
The transactional functions are:  
• External Input(EI)  
• External Output(EO)  
• External Inquiry(EI)  
Each function is classified according to its relative functional complexity as low, average or high. The data functions relative functional complexity is based on the number of data element types (DETs) and the number of record element types (RETs). The transactional functions are classified according to the number of file types referenced (FTRs) and the number of DETs. The number of FTRs is the sum of the number of ILFs and the number of EIFs updated or queried during an elementary process. The actual calculation process consists of three steps:  
• Determination of unadjusted function points(UFP)  
• Calculation of value of adjustment factor(VAF)  
• Calculation of final adjusted functional points.  
Function points can be converted to Effort in Person Hours[5]. Numbers of studies have attempted to relate LOC and FP metrics. The average number of source code statements per function point has been derived from historical data for numerous programming languages. Languages have been classified into different levels according to the relationship between LOC and FP. Programming language levels and Average numbers of source code statements per function point are given by Complexity matrix. The unadjusted Functional points are evaluated in the following manner:  
After the calculation of initial fp then the value adjustment factor (VAF) has to be calculated. The VAF calculation is based on the complexities and rating of factor(r).  
The final fp is calculated using the Unadjusted fp and the VAF which gives the adjusted function point. It is calculated as  
This FP has been converted into corresponding LOC by observing the number of FP per LOC. Then the converted SIZE has been given as the input to calculation of effort in COCOMO model.  
FUZZY LOGIC 

Fuzzy logic is a methodology, to solve problems which are too complex to be understood quantitatively, based on fuzzy set theory. Use of fuzzy sets in logical expression is known as fuzzy logic. A fuzzy set is characterized by a membership function, which associates with each point in the fuzzy set a real number in the interval [1], called degree or grade of membership[6].  
MEMBERSHIP FUNCTIONS OF FUZZY LOGIC 

Triangular, trapezoidal, parabolic etc. are the membership functions. Fuzzy numbers are special convex and normal fuzzy sets[9], usually with single modal value, representing uncertain quantitative information. Each numerical value of the domain is assigned a specific value and 0 represents the smallest possible value of the membership function, while the largest possible value is 1.In many respects fuzzy numbers depict the physical world more realistically than single valued numbers. Suppose that we are driving along a highway where the speed limit is 80km/hr, we try to hold the speed at exactly 80km/hr, but our car lacks cruise control, so the speed varies from moment to moment. If we note the instantaneous speed over a period of several minutes and then plot the result in rectangular coordinates, we may get a curve that looks like one of the curves shown below.  
MODULES OF TRAPEZOIDAL MEMBERSHIP FUNCTION 

Software Effort Estimation is calculated based on the modules of fuzzy logic membership functions. Membership functions are modularised as follows:  
• Fuzzification  
• Defuzzification  
• Optimization  
FUZZIFICATION 

TPMF gives more continuous transition from one interval to another. μA (x) = Trapezoidal (x, a, b, c, d).Defined by its lower limit a, its upper limit d, and the lower and upper limits of its nucleus or Kernel b and c respectively:  
DEFUZZIFICATION 

The fuzzy results generated cannot be used as such hence it is necessary to convert the fuzzy quantities into crisp quantities for further processing. This can be achieved by using defuzzification process. Defuzzification is the process of producing a quantifiable result in fuzzy logic, given fuzzy sets and corresponding membership degrees. It will have a number of rules that transform a number of variables into a fuzzy result, that is, the result is described in terms of membership in fuzzy sets. The defuzzification is applied to the value that had been obtained from the fuzzification process[7]. The fuzzified output has to be defuzzified into the real number so that it will give the effort that has been needed for the effort estimation.  
OPTIMIZATION 

There are 4 important criterions for assessment of software cost estimation models:  
1. VAF (Variance Accounted For):  
2. Mean absolute Relative Error :  
3. Variance Absolute Relative Error :  
4. Variance Absolute Relative Error :  
Where x = mean x ,E = actual effort, E = estimated effort, f = frequency  
The validation results of the experiments are to be assessed by Mean Absolute Relative Error (MARE) for estimation accuracy. MARE is defined as: for n projects. PRED(N) is the third criteria used for comparison and this reports the average percentage of estimates that were within N percent of the actual values. Prediction at level n ((Pred (n))is defined as the percent of projects that have absolute relative error under n. A model which gives lower Mean absolute Relative Error and higher pred (n) is better than that which gives higher Mean absolute Relative Error and lower pred(n).A model which gives higher VAF is better than that which gives lower VAF. A model which gives higher pred (n) is better than that which gives lower pred(n). A model which gives lower Variance Absolute Relative Error is better than that which gives higher Variance Absolute Relative Error.  
COMPARISON OF EFFORT ESTIMATIONS 

RESULTS AND COMPARISON OF EFFORT ESTIMATION 

CONCLUSION AND FUTURE WORK 

This paper has presented software effort estimation using Fuzzy Logic. By using the Non algorithmic method, the percentage of relative error has been reduced. It is observed that no method or model of estimation should be preferred over all others. The key consists in using a variety of methods and tools in combination, new paradigms offer new implementations over different software projects. By using this extended approach with the standard COCOMO model and fuzzy membership function we can take advantage of the features of neural network, such as learning ability and good interpretability. This study can be extended by integrating with neural networks like neurofuzzy approach.  
Figures at a glance 





References 

