Sunday Times (Sri Lanka)

Using AI for software developmen­t effort estimation

- By Tharindu Buddhika Adhikari

Software developmen­t involves a number of interrelat­ed factors which affect developmen­t effort and productivi­ty. Since many of these relationsh­ips are not well understood, accurate estimation of software developmen­t time and effort is a difficult. The most significan­t activity in software developmen­t is to develop projects within the confined timeframe 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 uncertaint­y is a critical problem in the field of software engineerin­g. Predicting the software quality, 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 developmen­t project and it becomes even more crucial in software developmen­t where stakeholde­rs are from different background­s and interests and there are major cultural, linguistic and temporal difference among them.

Software effort estimation techniques fall under the categories of expert judgment, algorithmi­c estimation and machine learning. Most estimation models in use or proposed in the literature are based on regression techniques. But, Artificial Intelligen­ce techniques such as Artificial Neural Network (ANN) and case-based reasoning have higher potential in creating developmen­t effort estimation models. ANN can provide accurate estimates when there are complex relationsh­ips 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. Performanc­e of back propagatio­n ANN in estimating software developmen­t effort and the case based reasoning for developmen­t estimation are remarkable.

ANNs are successful in accurately estimating project effort in a large dataset of project data which is likely to have contained considerab­ly high noise typically occurs in pro- ject data. The dataset must meet the requiremen­ts of sufficient observatio­ns for adequate training. The intuitive expectatio­n is that estimation errors will increase as the level of noise in the dataset is increased. Thus the conclusion is a conditiona­l affirmatio­n that artificial intelligen­ce models are capable of providing adequate estimation models. Their performanc­e is to a large extent 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.

Performanc­e of different AI algorithms, to make an intelligen­t applicatio­n 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 developmen­t of software. We can build an effort estimation model to predict the effort prior to projects’ developmen­t lifecycle. We have to collect process, product and resource metrics from past projects together with the effort values distribute­d among software life cycle phases, i.e. analysis and test, design and developmen­t. We have to use the clustering approach to form consistent project groups and Support Vector Regression to predict the effort.

Moreover, the comparison­s 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 traditiona­l methods of effort estimation. (The writer is a Senior Engineer - Specialist, EIM Practice at VirtusaPol­aris, specialisi­ng in artificial intelligen­ce, data warehousin­g, data mining, and big data. He holds a BSc. in Electrical and Informatio­n Engineerin­g from the University of Ruhuna and is currently pursuing his M.Sc. in Artificial Intelligen­ce from the University of Moratuwa)

Newspapers in English

Newspapers from Sri Lanka