What do you mean by cost estimation? Explain different software cost estimation techniques.

Cost Estimation 

- Cost estimation concerned with estimates of effort and time with the project activities. It is the process of predicting the effort required to develop a software system. The cost estimation is usually dependent upon the size estimate of the project, which may use lines of code or function points as metrics. 

- Cost estimation is usually measured in terms of effort. The most common metric used is person months or years (or man-months or years), The effort is the amount of time for one person to work for a certain period of time. 

- For any new software project, it is necessary to know how much it will cost to develop and how much development time will it take. These estimates are needed before development is initiated. 

- There are several different techniques for performing software cost estimation, including expert judgment and algorithmic models. 

- Software cost estimation is the process of predicting the effort required to develop a software system. 

- Estimation is done to answer the following questions:

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


Cost Estimation Techniques

The main cost estimation techniques are:-

1) Algorithm Cost Modeling

- The algorithmic method is designed to provide some mathematical equations to perform software estimation. These mathematical equations are based on research and historical data and use inputs such as Lines of Code (LOC), the number of functions to perform, and other cost drivers such as language, design methodology, skill levels, risk assessments, etc. The algorithmic methods have been largely studied and there are a lot of models have been developed, such as COCOMO.

- Algorithmic cost model can be built by analyzing the cost and attributes of similar projects by using an empirical formula

   Effort = A x SizeB x M, where

   A: depends on organizational practice and type of software that is developed

   B: 1-1.5 reflects disproportionate effort for large projects

    M: reflects the product, process, and people attributes Size: size may be an assessment of code size expressed in function or object points.



2) Expert judgment 

- Expert judgment techniques involve consulting with a software cost estimation expert or a group of experts to use their experience and understanding of the proposed project to arrive at an estimate of its cost. 

- The estimating steps using this method are: 

  • The coordinator presents each expert with a specification and an estimation form.
  • The coordinator calls a group meeting in which the experts discuss estimation issues with the coordinator and each other.
  • Experts fill out forms anonymously
  • The coordinator prepares and distributes a summary of the estimation on an iteration form.
  • The coordinator calls a group meeting, especially focusing on having the experts discuss points where their estimates varied widely. 
  • Experts fill out forms, again anonymously, and steps 4 and 6 are iterated for as many rounds as appropriate.


3) Estimation by analogy 

- Estimating by analogy means comparing the proposed project to a previously completed similar project where the project development information is known. Actual data from the completed projects are extrapolated to estimate the proposed project. 

- This method can be used either at the system-level or at the component level. Estimating by analogy is relatively straightforward. 

- Actually in some respects, it is a systematic form of expert judgment since experts often search for analogous situations so as to inform their opinion.


4.) Parkinson's law

- Parkinson's Law states that work expands to fill the time this method, the cost is determined by available resources rather than assessment.


5) Pricing to win

- In this method, the software cost is estimated to be whatever the customer has available to spend on the project. The estimated effort customer's budget not on the software functionality.

Comments

Popular posts from this blog

Suppose that a data warehouse for Big-University consists of the following four dimensions: student, course, semester, and instructor, and two measures count and avg_grade. When at the lowest conceptual level (e.g., for a given student, course, semester, and instructor combination), the avg_grade measure stores the actual course grade of the student. At higher conceptual levels, avg_grade stores the average grade for the given combination. a) Draw a snowflake schema diagram for the data warehouse. b) Starting with the base cuboid [student, course, semester, instructor], what specific OLAP operations (e.g., roll-up from semester to year) should one perform in order to list the average grade of CS courses for each BigUniversity student. c) If each dimension has five levels (including all), such as “student < major < status < university < all”, how many cuboids will this cube contain (including the base and apex cuboids)?

Suppose that a data warehouse consists of the four dimensions; date, spectator, location, and game, and the two measures, count and charge, where charge is the fee that a spectator pays when watching a game on a given date. Spectators may be students, adults, or seniors, with each category having its own charge rate. a) Draw a star schema diagram for the data b) Starting with the base cuboid [date; spectator; location; game], what specific OLAP operations should perform in order to list the total charge paid by student spectators at GM Place in 2004?

Explain network topology .Explain tis types with its advantages and disadvantges.