Proposing a hybrid model (EUcPCA) For Software Cost Estimation Based on Qualitative as well as Architectural View in context of Expert Opinion
MUHAMMAD ASIF SALEEM MR. REHAN AHMAD MS. SHAZIA SAQIB MUHAMMAD IDREES
1,3 Faculty of Computer sciences Lahore Garrison university Pakistan,2Department of computer sciences the university of Lahore Pakistan, 4department of computer sciences and the engineering the University of Engineering and t4echnology Lahore, Narowal Campus
Asif.saleem45@yahoo.com,m.rehan109@gmail.com,shaziasaqib@lgu.edu.pk, midrees10@gmail.com
Abstract:
Software cost has a direct impact on the success or failure of the software project. Estimation of Software cost facilitates the determination of the actual price of the software. However, the Cost Estimation (C.E.), is a process of predicting the effort and cost in terms of money and staff required for developing the software system. It is understood that success factor (S.F.) of software project has a directly proportional with estimated cost and its correlation with actual cost. In this work, we have proposed a novel approach for software cost estimation based on qualitative as well architecture view with the context of expert opinion. The proposed model (EUCPCA), expert use case and principal component analysis, cover the limitation and drawback of different software cost estimation models presented by various researchers in the context of software cost estimation. The prosed model is based on three aspects, such as (1) Quantitative Aspect (2) Architectural Aspect (3) Expert opinion. The expert aspect was added based on the first survey related to software cost estimation by visiting ten different software houses. Then the proposed model was evolved on behalf of this survey. Finally, we have validated the proposed model by the second survey result from the concerned ISO certified software houses. The result obtained by model ensures the higher accuracy as compared to any model owing to the convergence of diverse aspect of software cost estimation.
Keywords: Cost Estimation, Fuzzy Logic, Analogy, P.C.A.
Introduction
The software industry is multiplying nowadays, and it can be expected that it will enhance its growth up to double shortly (Jørgensen, 2014). Almost every field like communication technology, global political system, education, outsourcing of work procedures, enhanced working and business models, making work digital have successfully moved towards the software industry for the improvement of their business.
Cost estimation(Rastogi, Dhankhar, & Kakkar, 2014) is a big challenge in software project management. As per different literature survey, it can be said that there is not a single way or model to predict the cost estimation of a software project with accuracy(Qi et al., 2017). Requirement gathered or information received from client or any other source is quite insufficient for accurate cost estimation. Researchers have contributed in this field a lot, but there is still gap in for proposing model which helps in cost estimation and gives suitable ideas for estimating the cost, so in this research our focus will be on proposing model for cost estimation by considering the different aspects to minimize the difference between actual and estimated cost in context of software projects. Proposed model is cross-verified by ISO certified software houses working in Pakistan.
Literature Review
It is very much difficult task to estimate the cost in term of money, time and effort during the software development life cycle(Han, Lu, Jiang, & Li, 2014). But it is very much important to estimate the cost of software accurate because it will help in optimal utilization of resources and managerial task.
The Nelson Estimation Model
In early 1960 the Nelson(Shekhar & Kumar, 2016) and his development team tried to build an estimation model by having consideration of 104 attributes and 169 software projects. This model was taken as base for many cost estimation model which are being used today.
The Boehm Model
Cost Constructive model (COCOMO)(Han et al., 2014) was developed by Boehm in 1981. This model was constructed by making base on 63 software development projects. In this model, it is too much difficult to use estimate equation for finding out person – month required for the project. COCOMO model is complex model, in order to make this complexity lesser, COCOMO projects are divided into different categories or level(Pandey, 2013).
The SLIM (Putnam)
Putnam model(Qi et al., 2017) was developed in late 1970. This model works by using an automated mathematical model for estimating the cost of software, by considering analysis of different software products. SLIM models works on three parameters which are calibration, building, and sizing. In the Calibration model(Owais & Ramakishore, 2016) is make able to denote the past projects from already available databases of the project. In building parameter personal attributes for software, required computer attributes and requirement gathering are made. In the last parameter which is sizing line of code techniques is used for sizing purpose of software.
W.B.S. (Work Breakdown Structure)
As per name of the model, it cleared that this models(Islam, Pathik, Khan, & Habib, 2014) works by breaking up the project into small pieces. In the research (Shekhar & Kumar, 2016) project is divided into smaller components, once a smallest software project component is formed, the estimation of that component may be started by using any of the model i-e analogy based, function points or expert opinion. When estimation of the smallest component is completed, the whole project’s estimation is made by adding up the estimates of a smaller components together.
Expert judgment(Bilgaiyan, Mishra, & Das, 2016) software cost estimation models are based on the experience and knowledge of the experts. In Expert Judgement, no existing data is required for this model only it based on management and recollection of data which may be available already or may not be (Pandey, 2013). This models is used when the concrete and tangible data is not available then it is requested to the experts to use their experience for solving a particular problem at particular stage. Then expert (Han et al., 2014) provides solution by using their expertise and knowledge based on prior projects.by the use of this model we can produce the estimate of cost, time, schedule and quality of the software application.
Analogy’s(Du, Ho, & Capretz, 2015; Wang, Luo, Lin, & Daneva, 2017) works is considered as a comparison based techniques. Like in this model two or than projects with same attributes are matched or compared with each other for producing new estimate. This model is said as most simple but the most powerful model in the whole field of estimating the software cost. This model(Urbanek, Prokopova, Silhavy, & Vesela, 2015) has be used in thousands of an application and classification of task. In this model functionality works as firstly a firm neighbors are defined then the values of these neighbors are used for producing approximation. Estimation can be calculated by taking average of values of historical data. Which are known as analogies? This method is considered as most attractive techniques for cost and effort estimation.
Fuzzy Logic-based Cost Estimation Techniques
Fuzzy logic(Bilgaiyan et al., 2016) based estimation techniques are also known as soft computing techniques. This techniques is now is considered as most embryonic techniques. Due to the usage of this technique, it is observed that error rate is reduced from 32% to 8.4%(Phongpaibul & Aroonvatanaporn, 2015). These techniques are applied at the circumstances where usage or creation of mathematical models becomes impossible or unable to be applied. Software development (Minku & Yao, 2013)is many time characterized by the parameters which purely demonstrate fuzziness. Historical techniques have different issues or problems while estimating the cost of software project. Fuzzy logic technique(Kumari & Pushkar, 2013) or soft computing techniques are considered a solution to most of that techniques issues. In this research (Bilgaiyan et al., 2016) it is concluded that the fuzzy models which are developed by cascading six fuzzy logic controllers gives better estimates. In research (Shekhar & Kumar, 2016)comparison two fuzzy logic techniques are made for software cost estimation.
Artificial neural networks(Kashyap & Misra, 2013) techniques are also considered most suitable when algorithmic models are not suitable to be implemented. In this techniques data from already developed projects is gathered. This data is used for get the model trained. In this way, these techniques (Qi et al., 2017)produces a good estimation results. In this techniques algorithmic parameters adjustment helps in reducing the difference between actual cost estimation values and estimated cost estimation techniques. The model or techniques(Krüger, Fenske, Meinicke, Leich, & Saake, 2016) which gives very less amount of difference in actual and predicted values are considered as most suitable to be used. Selection of model is totally dependent on the nature of the project.
In 1968 Mr. Forrester was working on dynamic systems who formulates a model(Minku & Yao, 2013) with the help of continuously feedback looping. In 1994, Madachy (Shekhar & Kumar, 2016)was become successful in building a dynamic technique in which software development life cycle is evaluated continuously. Major advantage of this approach is that software cost estimation may be improved as the usage of this approach is made applicable. Drawback(Pandey, 2013) in this approach is that system’s level of difficulty may shoot to high level. Which may cause difficulty for understanding, managing and calibrating the system.
In Use Case Point method(Bhardwaj & Rana, 2015; Girasella & Pagin, 2014) is a mechanism which uses the use case diagrams for estimating the cost of object-oriented project. In this model firstly study of the use case diagram and then categorization of the actors or use cases present in the use case diagram as per to the litmus test. Categorization of actors and use cases impose a great impact on the estimated effort. So, in proposed work(Han et al., 2014), all the steps of effort estimation are same for both the approaches except categorization of actors and use cases. We will examine the complexity of actors and use cases manually according to some criteria which may differ from the currently available approaches.
Early Phase Cost Estimation Techniques
Early Phase Cost Estimation(Phongpaibul & Aroonvatanaporn, 2015) (Khalid & Yeoh, 2017) is a new designed software development effort estimation model on expert learning system with few input parameters. Which will be very much helpful in keeping the actual cost likely equal to estimated cost because it is very much important regarding cost point of view. Customers always feel happy or relaxed of the actual cost is equal to estimated cost provided by estimated company. So in order to make it possible a new approach is going to be developed so that cost estimation may be exact up to maximum extent.
Proposed Model
In the proposed model three different models are made hybrid. Main aim of making hybrid was to make a model for software cost estimation errorless. As there are different models for cost estimations are in used as per literature review. But as per market survey conducted it is noticed that in market, not a specialized cost estimation model used. Most of the soft warehouses in software industry uses expert judgment mechanism for estimating cost which do not provide a proper estimation of cost. But as per opinion of software house experts they said that expert’s opinion might produces a cost estimation but it is much flexible to use rather than the other model.
Figure 1: Proposed Methodology |
This proposed model is hybrid of three models namely P.C.A. based model, Expert judgment model, Use case point model. These models are selected for making hybrid because of information received from detail survey and literature study. From these things it was concluded that there are lots of model for cost estimation available but no one model is completely accurate in making estimation of cost of software product. As per survey it comes into knowledge that about 65% projects are underestimated. As per survey conducted from software industry it is resulted that most of the used techniques in industry is expert judgment. Some of results were in favor of as per project. So having brief look on literature study and survey conducted, it is decided to improve the quality of cost estimation. For this purpose hybrid of these three models are made.
Working of model is like that initially requirement document is taken. Then second step is to divide the project into categories. In this model, two categories are considered. First one is Quality related and second one is architecture-related. After making this division separately estimation process are carried out like for quality-related categorization separate estimation technique is made and use case point cost estimation model is selected for this purpose. Second categorization is based on the architecture of project. For this purpose P.C.A. based cos estimation model is used. After getting the values from both categorization third model is used for the values. This model is expert judgment. After taking values from these two models expert judgment is used for separately. Different experts take part in both of categories. After taking experts opinions average points are made. After average taking sum of two average values are taken which is actual cost estimation. In this way different benefits are achieved like removal of biasness of experts, accuracy factor improved, and component-based project cost estimation.
- Steps:
This newly proposed models have multiple steps which will be followed for estimating the cost of software project.
- Obtaining project requirement
- Categorization of project into two phases namely Quality related and Architecture related
- In the Quality-Related Factor Following steps will considered
- Obtain unadjusted actor weight (U.A.W.)
- Determine unadjusted use case weight (UUCW)
- Calculate unadjusted use case points (UUCP) UUCP = U.A.W. + UUCW
- Determine the technical/environmental factor (T.E.F.)
- Compute the adjusted use case point (AUCP) AUCP = UUCP * [0.65 + (0.01 * TEF)]
- Obtaining Pre cost.
As per these steps, single cost value will be made. After receiving these cost values expert judgment techniques will be applied. Different experts will take part in it and will give their cost as per their experience. After that average of these values will made.
(1)
(2)
Now second category Architecture Related will be having following steps.
- Data Preprocessing
- Data reduction Using P.C.A.
- Extracted Key factor and coefficient key matrix
- Constraint solution for Global Software Development
- Obtaining pre-cost.
(3)
(4)
Finalizing cost is last step of the estimation process. In this step pre-cost, 1 and pre-cost 2 are made sum and total cost estimation is generated.
(5)
(6)
In this Equation is a pre-cost 1 and it arrives from a quality-related category and is calculated by taking average of experts opinions. Meanwhile is cost arrives from Architecture related category and this is calculated by taking average of experts opinions? Making sum of and will generate the total cost.
Results and Discussion
For this purpose, ten distinctive software houses were gone by for this study and survey was filled from the group of software project management team of the software houses. For taking opinion for upon model, project management team of software houses were chosen rather than general software developer because as per working structure of software house it is clear mindset that just project management groups are the developed colleagues who can give a legitimate understandings for this model of cost estimation.
For this list of top software houses registered with Pakistan software house association and Pakistan, software export board was compiled. Then this list was shortlisted by a criteria made. Working criteria was that the software house must be having project management team independent. Secondly the software house must be in practice from last ten years. Person from whom questionnaire will be filled will must be having minimum three years of experience in software project management, especially in software cost estimation. As per all these standards we shortlisted ten software houses from huge list of software house
Q1: How cost estimation have impact on division of software projects into quality-related as well as architecture-related attribute?
- 25%
- 50%
- 75%
- 100%
Q2: Decomposition of software project at abstraction level can be categorized into
- Quality-Related
- Architecture Related
- Both A & B
- None Of These
Q3: Estimation of cost for Quality-Related attributes in software project can be calculated in good accuracy by:
- By L.O.C. Model
- By Use case Point model
- By COCOMO II
- All Above
Q4: Architecture Related attribute’s cost of software project can be calculated by the model
- O.C. Model
- Use case Point
- Principal Component Analysis
Q5: How technical factor related to the software project cost estimation
- Project Diversity
- Project Attributes
- Domain diversity
- All of theses
Q6: How Actor wait have impact on quality-related attributes for software project.
- For Cost Estimation
- For Software testing
All above
Q7: Identifying the factors which can have affects development costs before the development starts is compulsory up to:
- 25%
- 50%
- 70%
- 90%
Q8: Contribution of Pre-cost (P.C.) into total cost estimation can be categorized as:
- Initial Cost
- Initial + Predictive Cost
- Supplementary cost
- Total Cost
Q9: How biasness factor can be reduced in expert judgment
- Having Multiple Experts
- Having domain experts
- Having multiple domain experts
- None Of these
Q10: Taking opinions from multiple experts for Global software development is beneficial up to
- 25%
- 50%
- 75%
- 80%
Q11: Feed factor can be evaluated for expert judgment at actual delamination
- 28%
- 50%
- 75%
Q12: Expert Judgement model models can perform quite better result if
- Tangible data should be provided
- Domain-specific experts should be hired
- Panel discussion should be made on project
- None of these
As per results of survey it came to knowledge that proposed model is quite flexible and able to be used in survey.
In First Question, as per opinion of experts from software industry, in proposed model division of project is made into two-factor quality-related and architecture related and in survey 75% cost estimator who took part in this survey was in favor of that.
In second question for this survey maximum members of survey voted in favor of both architectural and qualitative ways.
In second question for this survey maximum members were in favor of selecting Use case point model for quality aspects of cost estimation.
In fourth question maximum members were willing in favor of principal components analysis for architectural aspects of model.
The fifth Question for this survey was how technical factor related to the software project cost estimation
As per survey result, maximum estimator who took part in this survey was willing for all options.
The sixth Question for this survey was identifying the factors which can have affects development costs before the development starts is compulsory up to: As per survey results the maximum estimator who took part in this survey was willing up to 70%.
Seventh Question for this survey Contribution of Pre-cost (P.C.) into total cost estimation can be categorized as As per survey result the maximum estimator who took part in this survey was willing for total cost.
Eight Question for this survey: How biasness factor can be reduced in expert judgment? As per result the maximum estimator who took part in this survey was willing for having multiple domain experts.
Ninth Question for this survey was: Taking opinions from multiple experts for Global software development is beneficial up to? As per survey result, the maximum estimator who took part in this survey was willing for 80%.
Tenth question for this survey: Feed factor can be evaluated for expert judgment at actual delamination: As a result shows maximum estimator who took part in this survey was willing for 80%.
Twelfth Question for this survey was: Expert Judgement model models can perform quite better result if As a result shows maximum estimator who took part in this survey was willing for having multiple specific domain experts.
Conclusion
Software cost estimation is major activity in software project management. The success and failure of software project depends upon the initial cost assumptions we made before the project development starts. Any how different researchers have proposed various model related to software cost estimation, analysis of these models reveals they have limitations and absence of expert opinion that should incorporate to minimize difference in actual and estimated cost. To minimize these limitation that were not answerable by previously presented models, we have proposed a hybrid approach (EUcPCA) that comprises of three different aspects which are architectural aspect, quality aspect, and expert judgment aspect. For these aspects we have used three different software cost estimation models which are Principal component analysis, Use case point, and expert judgment respectively.
Proposed model is validated by making survey of ISO certified software houses. By deeply observing the responses of professionals it is concluded that the proposed model is quite reliable and useful as per software industry of Pakistan. Proposed model is covering all the issues highlighted by the software project cost estimation team in survey one. So it is made sure that proposed software cost estimation model is as per software market needs.
As the limitation of this model is concern, it is observed by the industry and literature experts that the number of iteration in proposed model is high. Due to these issues, this model will take some extra some for calculation of estimated cost. In future work we are going to enhance this model by reducing the number of iteration so that procedural time of model could be reduced.
Reference:
Bhardwaj, M., & Rana, A. (2015). Estimation of Testing and Rework Efforts for Software Development Projects. Asian Journal of Computer Science and Information Technology, 5(5), 33-37.
Bilgaiyan, S., Mishra, S., & Das, M. (2016). A review of software cost estimation in agile software development using soft computing techniques. Paper presented at the 2016 2nd international conference on computational intelligence and networks (CINE).
Du, W. L., Ho, D., & Capretz, L. F. (2015). Improving software effort estimation using neuro-fuzzy model with SEER-SEM. arXiv preprint arXiv:1507.06917.
Girasella, A., & Pagin, F. (2014). An UML-based approach to software development cost estimation. Paper presented at the Proceedings of the 8th ACM/IEEE International Symposium on Empirical Software Engineering and Measurement.
Han, W., Lu, T.-B., Jiang, H., & Li, W. (2014). A study on the improvement of software effort estimation. Paper presented at the 2014 7th International Conference on Control and Automation.
Islam, S., Pathik, B. B., Khan, M. H., & Habib, M. M. (2014). A novel tool for reducing time and cost at software test estimation: An use cases and functions based approach. Paper presented at the 2014 IEEE International Conference on Industrial Engineering and Engineering Management.
Jørgensen, M. (2014). Communication of software cost estimates. Paper presented at the Proceedings of the 18th International Conference on Evaluation and Assessment in Software Engineering.
Kashyap, D., & Misra, A. K. (2013). Software development cost estimation using similarity difference between software attributes. Paper presented at the Proceedings of the 2013 International Conference on Information Systems and Design of Communication.
Khalid, T. A., & Yeoh, E.-T. (2017). Early cost estimation of software reworks using fuzzy requirement-based model. Paper presented at the 2017 International Conference on Communication, Control, Computing and Electronics Engineering (ICCCCEE).
Krüger, J., Fenske, W., Meinicke, J., Leich, T., & Saake, G. (2016). Extracting software product lines: a cost estimation perspective. Paper presented at the Proceedings of the 20th International Systems and Software Product Line Conference.
Kumari, S., & Pushkar, S. (2013). Performance analysis of the software cost estimation methods: a review. International Journal of Advanced Research in Computer Science and Software Engineering, 3(7).
Minku, L. L., & Yao, X. (2013). Ensembles and locality: Insight on improving software effort estimation. Information and Software Technology, 55(8), 1512-1528.
Owais, M., & Ramakishore, R. (2016). Effort, duration and cost estimation in agile software development. Paper presented at the 2016 Ninth International Conference on Contemporary Computing (IC3).
Pandey, P. (2013). Analysis of the techniques for software cost estimation. Paper presented at the 2013 Third International Conference on Advanced Computing and Communication Technologies (ACCT).
Phongpaibul, M., & Aroonvatanaporn, P. (2015). Standardized cost estimation in Thai government’s software development projects. Paper presented at the 2015 International Computer Science and Engineering Conference (ICSEC).
Qi, F., Jing, X.-Y., Zhu, X., Xie, X., Xu, B., & Ying, S. (2017). Software effort estimation based on open source projects: Case study of Github. Information and Software Technology, 92, 145-157.
Rastogi, H., Dhankhar, S., & Kakkar, M. (2014). A survey on software effort estimation techniques. Paper presented at the 2014 5th International Conference-Confluence The Next Generation Information Technology Summit (Confluence).
Shekhar, S., & Kumar, U. (2016). Review of various software cost estimation techniques. International Journal of Computer Applications, 141(11), 31-34.
Urbanek, T., Prokopova, Z., Silhavy, R., & Vesela, V. (2015). Prediction accuracy measurements as a fitness function for software effort estimation. SpringerPlus, 4(1), 778.
Wang, C., Luo, Z., Lin, L., & Daneva, M. (2017). How to Reduce Software Development Cost with Personnel Assignment Optimization: Exemplary Improvement on the Hungarian Algorithm. Paper presented at the Proceedings of the 21st International Conference on Evaluation and Assessment in Software Engineering.