This essay has been submitted by a student. This is not an example of the work written by our professional essay writers.
The primary goal of every software development firm is to successfully carry out software projects within time, cost and achieving the required quality.
Charette (2005) identified inaccurate estimation of resources required as one of the main factors of software development failure. There could be numerous reasons for this, but one of the main reasons will be the lack of information available at the early stages of software projects. And this is actually the point where estimates are needed the most.
Due to the lack of information available, estimates at this stage might be affected by guesses made. This is a risk for the software development project and the organization itself. But why are precise estimations needed and so important, even at early stages of projects? In order to answer this question it is necessary to look at a scenario described by Milicic (2004), this scenario is based on the following assumptions:
- A software product firm operating in a competitive market sees a software development project opportunity; swift action is required by the firm, to consider all options in minimal time.
- A project manager is assigned the responsibility of providing upper management with a reasonable estimation of resources requires for the upcoming project. After reasonable consultations and research has been done on the project, an estimate is given to the top management, and project proposal is approved and sent to customer.
- If the cost proposal is sent in to consumer before the other companies also in pursuit for the contract and at a lower expense, the customer decides to employ the hypothetical company.
- In the case that the project manager underestimated the project cost, a disastrous consequence could now jeopardize the entire situation. Employees could be made to work for free due to over commitment from project manager.
- Project expenses begin to exceed the budget and as a result, development is put at risk as the customer begins to consider about cancelling due to rapidly decreasing finances. This is the result of underestimating the cost.
- There is also another possible outcome from negotiating for a contract, lack of software estimation skill can result in an unreasonably high proposal is offered to the customer who will then choose to make use of some of the less expensive companies. Cost overestimation is also disastrous.
Through the research carried out by Vigder and Kark (1994) of the Software Engineering Laboratory (SEL) of the Institute for Information Technology, National Research Council Canada on Software Cost Estimation and Control, certain problems with the cost estimation process and current techniques being used were discovered. Some of such problems included; Problems with Requirements, The Software Process and Process maturity, Monitoring Progress of the project, and Lack of historical Data.
i. Problems with Requirements:
Almost all organizations blame problems with requirements as major reasons for inaccurate cost estimates. The problems sited include; incomplete, incorrect, ambiguous, inconsistent and incomprehensible requirements.
Some of the reasons for problems with requirements included;
- Users do not understand their requirements during early stages of the project.
- Correct and complete requirements for complex systems are impossible to achieve, especially at the early stages.
- Long development time, leading to requirements that are obsolete before the system is delivered.
- Large staff turnover for end users, resulting in changing requirements as new people arrive.
ii. The software Process and Process Maturity:
The software process and process maturity of an organisation also affects its cost estimation processes. An organization cannot achieve accurate estimates it has no clear idea of how it goes about its operational processes. Every development team with good management has developed an efficient software process, even though it might not be formalized, written down, and monitored, this process will be followed by the team.
The state and maturity of any organizations software process, is also a major factor that affects it estimation process.
iii. Monitoring Progress of Project:
There is a need for all software development organizations to monitor the development process and measure progress made in order to be able to control software development costs.
iv. Lack of Historic Data:
Every organization needs information about previous projects in order to carry out accurate estimations for future development projects.
In the case of small organizations working with relatively constant work force and smaller projects, this may be achieved by relying on the knowledge and experience of key people in the organization.
For larger organizations, where the projects are multifaceted and knowledge is distributed among a larger group of people, relying on people's memory is not sufficient. In order to solve this problem of lack of historical data, organizations can maintain a historical database of previous software cost estimates, and previous project performance evaluations.
1.1 PROJECT OBJECTIVES
The objective of this undergraduate dissertation project is to evaluate the COCOMO II model of software estimation, and to propose a model that integrates COCOMO II and Regression Techniques to improve software size and effort estimations based on historical data.
1.2 SCOPE OF PROJECT
- Analysis of the COCOMO II estimation model,
- Design of an integrated COCOMO II and regression model for estimation based on historical database
- Design of a database to keep project data.
1.3 THESIS OUTLINE
The remaining part of this dissertation report will be divided into different main sections as follows; Section 2 reviews related work previously done in the area of software cost estimation models. Section 3 gives a description of the project plan for this dissertation. Section 4 discusses and evaluates the COCOMO II estimation model and the proposed integration with regression techniques. Section 5 gives an analysis of the proposed system. Section 6 gives a description of the system design. Section 7 explains how the system will be implemented. Section 8 recommends possible future work, and Section 9 is a summary and conclusion of this dissertation report.
2 LITERATURE REVIEW & RELATED WORK
Estimating software development effort continues to be a research area gaining so much attention from researchers and practitioners alike due to its complexity and importance. Improving the current estimation models available to project managers or developing better models will allow for more effective estimation, monitoring and control of cost of software development.
According to Elish (2009) software effort estimation techniques can be classified into three broad categories; expert judgement, algorithmic models, and machine learning.
- Expert Judgement:
- Algorithmic Models:
- Machine Learning:
3 PROJECT PLAN
4 COMOMO II ESTIMATION MODEL & INTEGRATION WITH REGRESSION TECHNIQUES
5 SYSTEM ANALYSES
6 SYSTEM DESIGN
7 SYSTEM IMPLEMENTATION
8 FUTURE WORK & ENHANCEMENT
9 SUMMARY AND CONCLUSION
Charette, R. (2005). Why software fails. IEEE Spectrum, 42(9), 42-49.
Milicic, D. (2004), Applying COCOMO II - A Case Study, A Master Thesis School of Engineering Blekinge Institute of Technology, Thesis no: MSE-2004-19, 2004.
Vigder, M.R. & Kark, A.W. (1994), Software Cost Estimation and Control, National Research Council Canada, vol., no. NCR no: 37116, pp.