Breaking News

IPU BCA/MCA/BTech: Software Engineering - Software Cost Estimation and its Techniques (#csnotes)(#ipumusings)

Software Cost Estimation and its Techniques

Software Engineering
IPU BCA/MCA/BTech: Software Engineering - Software Cost Estimation and its Techniques (#csnotes)(#ipumusings)


Q1: What is Software Cost Estimation?

Answer: Software cost estimation is a continuing activity, which starts at the proposal stage and continues through the lifetime of the project. In the project planning, the estimation of time effort and time with the identified project activities need to be done. Project managers normally ask the following questions in order to estimate all the software project activities.

✓ How much effort is required to complete an activity?
✓ How much calendar time is needed to complete an activity?
✓ What is the total cost of an activity?

Project estimation and scheduling are interleaved management activities. However, some cost estimation may be required to establish a budget for the project or to set a price for the software.

Q2: What are Software Cost Estimation Components?

Answer
Hardware and software costs
Travel and training costs
Effort costs (the dominant factor in most projects)
  • Salaries of engineers involved in the project
  • Social and insurance costs
Effort costs must take overheads into account
  • costs of building, heating, lighting
  • costs of networking and communications
  • costs of shared facilities (e.g library, staff restaurant, etc.)

Q3: What are the factors affect software pricing?
Answer: Estimates are made to discover the cost, to the developer, of producing a software system. There is not a simple relationship between the development cost and the price charged to the customer. Broader organisational, economic, political and business considerations influence the price charged.
Following are the factors that affect software pricing:
Market opportunity
Cost estimate uncertainty
Contractual terms
Requirements volatility
Financial health

Market opportunity
A development organisation may quote a low price because it wishes to move into a new segment of the software market. Accepting a low profit on one project may give the opportunity of more profit later. The experience gained may allow new products to be developed.

Cost estimate uncertainty
If an organisation is unsure of its cost estimate, it may increase its price by some contingency over and above its normal profit.

Contractual terms
A customer may be willing to allow the developer to retain ownership of the source code and reuse it
in other projects. The price charged may then be less than if the software source code is handed over to the customer.

Requirements volatility
If the requirements are likely to change, an organisation may lower its price to win a contract. After the contract is awarded, high prices may be charged for changes to the requirements.

Financial health
Developers in financial difficulty may lower their price to gain a contract. It is better to make a small profit or break even than to go out of business.


Q4: What are Software Cost Estimation techniques?

Answer: There is no simple way to make an accurate estimate of the effort required to develop a software system. Software cost estimation is a continuing activity, which starts at the proposal stage and continues through the lifetime of the project.
  • Initial estimates are based on inadequate information in a user requirements definition.
  • The software may run on unfamiliar computers or use new technology.
  • The people in the project may be unknown
Project cost estimates may be self-fulfilling. The estimate defines the budget and the product is adjusted to meet the budget

There are several different techniques of software cost estimation. These are:

Algorithmic Cost modeling
Expert judgment
Estimation by analogy
Parkinson’s law
Pricing to win
Top-down estimation
Bottom-up estimation


Algorithmic Cost modeling
A model is developed using historical cost information, which relates some software metric to the project cost. An estimate is made of that metric and the model predicts the effort required.

Expert judgment
One or more experts on the software development techniques to be used, and on the application domain, are consulted. They each estimate a project cost and the final cost is arrived at by
consensus.

Estimation by analogy
This technique is applicable when other projects in the same application domain have been completed. The cost of a new project is estimated by analogy with these completed projects.

Parkinson’s law
It states that work expands to fill the time available. In software costing, it means that the cost is determined by available resources rather than by objective assessment.

Pricing to win
The software cost is estimated to be whatever the customer has available to spend on the project. The estimated effort depends on the customer’s budget and not on the software functionality.

Top-down estimation
A cost estimate is established by considering the overall functionality of the project and how that functionality is provided by interacting functions. Cost estimates are made on the basis of logical function rather than component implementation of the function.

Bottom-up estimation
The cost of each component is estimated. All these costs are added to produce a final cost estimate.

Each of the above techniques has benefits and disadvantages. For huge initiatives numerous price estimation techniques must be utilized in parallel and their outcomes compared. If these predict extensively distinctive fees, it implies that the information to be had is insufficient. More records ought to then be sought and the costing system repeated. The system ought to retain until the estimates converge.


Textbooks on Software Engineering and Cost Estimation: