Software development involves a number of interrelated factors which affect development effort and productivity. Since many of these relationships are not well understood, accurate estimation of software development time and effort is a difficult problem. The most significant activity in software development is to develop projects within confined time and budget. As accuracy plays a vital role for software system, prediction of effort estimation is one of the critical tasks required for developing software.
Decision making under uncertainty is a critical problem in the field of software engineering. Predicting the software quality or the cost or effort requires high level expertise. AI based predictor models, on the other hand, are useful decision making tools that learn from past projects’ data. Effort estimation is crucial for the control, quality and success of any software development project and it became even more crucial in software development where stakeholders are from different background and interest and there is a huge cultural, linguistic and temporal difference involved between them.
Software Effort estimation techniques fall under the categories of Expert judgment, Algorithmic estimation and Machine Learning. Most estimation models in use or proposed in the literature are based on regression techniques. But, Artificial Intelligence techniques such as artificial neural network (ANN) and case based reasoning have higher potential in creating development effort estimation models. Artificial neural network can provide accurate estimates when there are complex relationships between variables and where the input data is distorted by high noise levels while case based reasoning solves problems by adapting solutions from old problems similar to the current problem. Performance of back propagation artificial neural networks in estimating software development effort and the case based reasoning for development estimation are remarkable.
ANNs are successful in accurately estimating project effort in a large dataset of project data which is likely to have contained considerably high noise typically occurs in project data. The dataset must meet the requirements of sufficient observations for adequate training. The intuitive expectation is that estimation errors will increase as the level of noise in the dataset is increased. The conclusion thus is a conditional affirmation that artificial intelligence models are capable of providing adequate estimation models. Their performance is to a large degree dependent on the data on which they are trained, and the extent to which suitable project data is available will determine the extent to which adequate effort estimation models can be developed.
Performance of different AI algorithms to make an intelligent application for the purpose of predicting cost and time should be evaluated in terms of accuracy, memory used, search time, build time and error rate. This approach helps in the reduction of effort estimation for the efficient development of software. We can build an effort estimation model to predict the effort prior to projects’ development lifecycle. We have to collect process, product and resource metrics from past projects together with the effort values distributed among software life cycle phases, i.e. analysis & test, design & development. We have to use the clustering approach to form consistent project groups and Support Vector Regression to predict the effort.
Moreover, the comparisons of different AI techniques need to be done to decide which AI method is more suitable in which situation. Validated results would confirm the benefits of using AI methods in real life problems. We can attain predicting highly reliable values for future projects. Results would confirm that AI methods gives more accurate effort estimation as compared to the traditional methods of effort estimation.