An Accurate FFPA-PSR Estimator Algorithm and Tool for Software Effort Estimation

Software companies are now keen to provide secure software with respect to accuracy and reliability of their products especially related to the software effort estimation. Therefore, there is a need to develop a hybrid tool which provides all the necessary features. This paper attempts to propose a hybrid estimator algorithm and model which incorporates quality metrics, reliability factor, and the security factor with a fuzzy-based function point analysis. Initially, this method utilizes a fuzzy-based estimate to control the uncertainty in the software size with the help of a triangular fuzzy set at the early development stage. Secondly, the function point analysis is extended by the security and reliability factors in the calculation. Finally, the performance metrics are added with the effort estimation for accuracy. The experimentation is done with different project data sets on the hybrid tool, and the results are compared with the existing models. It shows that the proposed method not only improves the accuracy but also increases the reliability, as well as the security, of the product.


Introduction
Software effort estimation plays a vital role in the software project management, since it is the base for many activities like planning, scheduling, and tracking the software projects [1]. The accurate and reliable effort estimation is very important for project managers [2]. If the estimation is not properly calculated then it may result in the failure of the software project [3]. The system security is another important challenge in today's competitive world [4]. The previous research work of the authors showed that performance metrics mainly help in the improvement of the accuracy and the fuzzy-based function point analysis is used to overcome the uncertainty in the effort estimation [5].
One of the most needed requirements in the software company is to estimate the effort in the earlier phase of development process. The various software evaluation metrics and methods are available; as the software systems grow in size, it is really difficult to estimate the effort in accurate way. Additionally, software project estimation is vulnerable to attack. So it is needed to provide a reliable and secure estimation method.
The aim of this work is to provide an estimator model called FFPA-PSR (fuzzy-based function point analysis with performance metrics, security, and reliability factors) which attempts to help in improving the accuracy and reliability of the estimation in secured fashion. This work intends the utilization of concepts from fuzzy logic to classify the attributes in the estimation by framing the new fuzzy rules. This research also introduces the new factors like product security, reliability in the existing value adjustment factors. The performance metric factors are also appended to make the estimation model more accurate automated tool. The main advantage of this tool is to estimate the accurate effort with reliability and security in the automated way. Accurate effort is more important, because most of the software failures in the IT sectors are due to inaccuracy and insecure estimation which leads to huge difference in the expected and actual budget.

Materials and Methods
There are many fuzzy-based approaches and other related methods which are proposed to estimate the accurate effort. Therefore, only a few approaches are discussed here. The work [6] suggested ambiguous and linguistic inputs of software cost estimation. The work [7] noted that homogeneous data set results in better and more accurate effort estimates, while the irrelevant and disordered data set results in lesser accuracy. The paper [8] proposed a fuzzy logic based framework for managing the imprecision and uncertainty problem. The work [9] proposed a methodology combining the neurofuzzy technique and SEER-SEM that can function with various algorithmic models. The work [10] proposed Enhancing Software Sizing Adjustment Factors. Their results showed that the enhancement achieved good accuracy. The work [11] proposed an improved analogy-based approach based on extensive dimension weighting. Their results empirically evaluated the accuracy and reliability improvements of the project efforts.
The work [12] suggested that the modification of standard function point complexity weights system can reduce the ambiguity in the effort estimation.
The work [13] demonstrated that the effort estimation done by applying the soft computing technique is powerful in solving real world application with imprecise and uncertain information.
The similarities between these studies are that they all focus on the data sets or the initial phase of the estimation but do not concentrate on the development phase of the effort. Many methods use the fuzzy logic to handle imprecision in the data sets. Some methods concentrate only on accuracy but do not focus on performance factors. Few methods suggested security factor for product security. In this paper, the authors decided to concentrate on all these issues.

FFPA-PSR Algorithm and Model
The proposed model named as fuzzy-based function point analysis with performance metrics, security, and reliability factors (FFPA-PSR) is based on the FFPA-PSR algorithm which is given in Table 1. The structure of the developed model is shown in Figure 1. The input of this model is the software size. The output is the estimated effort of the software. There are four major steps in the estimator model: (1) fuzzy inference system, (2) precision value, (3) extended FPA calculation, and (4) effort estimation.

Fuzzy Inference System.
Software development is a very complex process, there are many factors contributing to development effort, and there exists a complex interaction between the factors. In the function point analysis, five factors are used as input named as External Inputs (EI), External Outputs (EO), External Inquiries (EQ), External Interfaces File (EIF), and Internal Logical Files (ILF). Rating of these factors can be given by linguistic terms such as "simple, " "average, " and "complex. " All these factors are fuzzified to handle the imprecision in the data set and need proper handling of the dependencies among these factors to improve the accuracy [13]. Unfortunately, this is not an easy task in most cases, so the authors propose new fuzzy if-then rules to handle this situation: IF complexity is LOW and the weight is SMALL, THEN the fuzzy function point is SIMPLE; IF complexity is AVERAGE and the weight is MEDIUM, THEN the fuzzy function point is AVERAGE; IF complexity is HIGH and the weight is BIG, THEN the fuzzy function point is COMPLEX.
The Scientific World Journal 3 The outputs of each fuzzy rule are needed to normalize for the required output. This is done by defuzzification, which converts the fuzzy output into a crisp solution by using the following equation: where = Weighted Average and = Peak Value.

Calculating the Precision Value.
Computer performance is characterized by the amount of useful work accomplished by a computer system which is compared to the time and resources used. The performance of any software can be evaluated in measurable, technical terms, using one or more of the following metrics: The formula to determine the precision value is given below: where = factor of each performance metric and = complexity factor.

Effort Calculation.
The traditional value adjustment factor calculation has 14 general system characteristics. Now, 15th and 16th factors named product security and product reliability are added to it. So, the formula for calculation of value adjustment factor (VAF) is modified. Consider VAF = (TDI * 0.01) + 0.65, (3) All the general system characteristic factors including the 15th and 16th factors are rated by the six-point scale (0-5) according to the relevant degree of influence (DI) on application which is given in Table 2.
Then the extended function point count is calculated by multiplying the value adjustment factor with the fuzzified unadjusted function point. Consider Once the precision value and the function point count are calculated, then the enhanced function point count is done by adding the precision value with the extended function point count. Consider

Results and Discussion
The proposed estimator tool (FFPA-PSR) has been developed in Java script under Windows environment and the validation is done by applying different real project data sets. The effort estimation data of ten software projects implemented in 2013 are used for testing. At the same time, actual effort, traditional function point method, and the authors' previously proposed model called fuzzy-based function point method (FFPA-PM) are also used for comparison with the proposed effort. Table 3 is the result of the comparison. Figure 2 shows that the proposed method values are very close to the real values. It obviously means that the accuracy of the proposed method is high, but practically it can be evaluated by using the well-known performance evaluation parameters such as MMRE and PRED which are applied to assess as well as to compare the accuracy of the estimated models. Consider The Prediction Accuracy (PRED) can be calculated as where is the number of projects and is the number of all estimates. Table 3 effort values are used to find the MMRE and PRED calculation. The results show that the proposed model performs better than the existing models in terms of accuracy, showing as lower MMRE value and higher prediction value.   Table 4 shows the performance comparison of the average of project data. In addition, the choice of reliability and security factors has certain influence on the accuracy of the proposed model by 11.76% with the function point model and 2.47% with the authors' previously proposed model (FFPA-PM). Through this experiment and results, it is found that the FFPA-PSR can effectively describe the relative importance of different extended attributes to the FPA, and it significantly enhances the project effort estimation accuracy. Figures 3 and 4 clearly show the improved accuracy of the proposed method in terms of MMRE, PRED, and accuracy.

Conclusion
Software project development requires the sophisticated methods in helping project managers to manage uncertainty and inaccurate effort estimation. In this paper, it has been shown that the automated hybrid tool can be used to estimate the effort accurately of software projects in secured way. Using a sample data sets integrated by ten different domain projects from different developers, the existing models and proposed model were generated and validated. It can be seen that this proposed model provides better results than the previous existing models. This Proposed Model FFPA-PSR tool which controls the imprecision issues in estimation and also provides a secure and reliable effort estimation which is used   in the time critical and mission critical projects. This model also has the ability to handle the incomplete information at the initial stage of the requirement analysis and to determine genuine cause and effect relationship among the factors. The proposed model may also be very useful to estimate the accurate effort within the time and budget frame which is much needed requirement of today's software companies. Therefore, a promising line of future work is to extend this research work by adding risk assessment which helps in risk management of the software projects. This work also can be enhanced by automating the scheduling and tracking of the software projects in the near future.