Members BookmarksPolls Fresher Jobs Strange Photos Academic Projects New Member FAQ  



My Profile
Active Members
TodayLast 7 Days more...



Awards & Gifts
Online Exams

Fresher Jobs


Our fresher job section is exclusively for fresh graduates! Find jobs for freshers in major Indian cities including Bangalore, Chennai, Hyderabad, Pune or Kochi

Resources


Find educational articles, blogs, discussion threads and other resources.

Colleges


Find details about any college in India or search for courses.

Advertisements


website counter




Software-Cost Estimation


Posted Date: 26 Apr 2008    Resource Type: Articles/Knowledge Sharing    Category: Computer & Technology

Posted By: CONFIDENCE IS THE COMPANION OF SUCCESS       Member Level: Diamond
Rating:     Points: 6



1.4. Cost Estimation
1.4.1. Definition
Cost estimation is the process of predicting the amount of effort required to build a software system (or) it is to determine how many resources are needed to complete the project. It is in programmer-months (PM).

1.4.2. Measurement of software size

• Lines of code (LOC) - measure of source code program length.
NCLOC is used to represent a non-commented source line of code. Therefore, NCLOC is a measure of the uncommented length. CLOC is used to represent a commented source line of code.

total length (LOC) =[ NCLOC + CLOC] (in terms of KLOC)

KLOC is used to denote thousands of lines of code.


• Function points
Function points (FP) measure size in terms of the amount of functionality in a system. Function points are computed by first calculating an unadjusted function point count (UFC).


Counts are made for the following categories:
1. External inputs – those items provided by the user that describe distinct application-oriented data (such as file names and menu selections)
2. External outputs – those items provided to the user that generate distinct application-oriented data (such as reports and messages, rather than the individual components of these)
3. External inquiries – interactive inputs requiring a response
4. External files – machine-readable interfaces to other systems
5. Internal files – logical master files in the system
i) Unadjusted Function Point Count
The individual function point items are identified and then classified as simple, average, or complex. The weights from Table 1.2a are then assigned to each item and the total is summed. This total is called the unadjusted function points.
Table 1.2a Function point weights.
Weighting Factor
Item Simple Average Complex
External inputs 3 4 6
External outputs 4 5 7
External inquiries 3 4 6
External files 7 10 15
Internal files 5 7 10


Adjusted function point count (FP) = UFC * [ a technical complexity factor (TCF)]

Components of the TCF are listed in Table 1.2b.

Table 1.2b.Components of the technical complexity factor.

F1 Reliable back-up and recovery F2 Data communications
F3 Distributed functions F4 Performance
F5 Heavily used configuration F6 Online data entry
F7 Operational ease F8 Online update
F9 Complex interface F10 Complex processing
F11 Reusability F12 Installation ease





Each component is rated from 0 to 5, where 0 means the component has no influence on the system and 5 means the component is essential. The TCF can then be calculated as:
TCF = 0.65 + 0.01(SUM(Fi))

The factor varies from 0.65 (if each Fi is set to 0) to 1.35 (if each Fi is set to 5). The final function point calculation is:

FP = UFC x TCF

1.4.3. Models
Models are used to estimate cost. It can be categorized as either cost models or constraint models. COCOMO is an example of a cost model and SLIM is an example of a constraint model.
i) Constructive Cost Model (COCOMO)
Boehm derived a cost model called COCOMO (Constructive Cost Model) using data from a large set of projects. The original COCOMO is a collection of three models:
1. a Basic model that is applied early in the project
2. an Intermediate model that is applied after requirements are specified
3. an Advanced model that is applied after design is complete. All three models take the form:
E = aS^b x EAF
where E is effort in person months, S is size measured in thousands of lines of code (KLOC), and EAF is an effort adjustment factor (equal to 1 in the Basic model) (Fenton, 1997). The factors a and b depend on the development mode.

Boehm has defined three development modes:
1. Organic mode – relatively simple projects in which small teams work to a set of informal requirements (ie. thermal transfer program developed for a heat transfer group).
2. Semi-detached mode – an intermediate project in which mixed teams must work to a set of rigid and less than rigid requirements (ie. a transaction processing system with fixed requirements for terminal hardware and software).
3. Embedded mode – a project that must operate within a tight set of constraints (ie. flight control software for aircraft).
1) Basic
The Basic COCOMO model computes effort as a function of program size. The Basic COCOMO equation is:
E = aKLOC^b

The factors a and b for the Basic COCOMO model are shown in Table 1.2c.

Table 1.2c. Effort for three modes of Basic COCOMO.

Mode a b
Organic 2.4 1.05
Semi-detached 3.0 1.12
Embedded 3.6 1.20

2) Intermediate
The Intermediate COCOMO model computes effort as a function of program size and a set of cost drivers. The Intermediate COCOMO equation is:

E = aKLOC^b x EAF

The factors a and b for the Intermediate COCOMO model are shown in Table 1.3d.

Table 1.3d. Effort parameters for three modes of Intermediate COCOMO.

Mode a b
Organic 3.2 1.05
Semi-detached 3.0 1.12
Embedded 2.8 1.20

The effort adjustment factor (EAF) is calculated using 15 cost drivers. The cost drivers are grouped into four categories: product, computer, personnel, and project. Each cost driver is rated on a six-point ordinal scale ranging from low to high importance. Based on the rating, an effort multiplier is determined using Table 1.3e. The product of all effort multipliers is the EAF.







Table 1.3e. Software Development Effort Multipliers.

Cost Driver Description Rating
Very Low Low Nominal High Very High Extra High
Product
RELY Required software reliability 0.75 0.88 1.00 1.15 1.40 -
DATA Database size - 0.94 1.00 1.08 1.16 -
CPLX Product complexity 0.70 0.85 1.00 1.15 1.30 1.65
Computer
TIME Execution time constraint - - 1.00 1.11 1.30 1.66
STOR Main storage constraint - - 1.00 1.06 1.21 1.56
VIRT Virtual machine volatility - 0.87 1.00 1.15 1.30 -
TURN Computer turnaround time - 0.87 1.00 1.07 1.15 -
Personnel
ACAP Analyst capability 1.46 1.19 1.00 0.86 0.71 -
AEXP Applications experience 1.29 1.13 1.00 0.91 0.82 -
PCAP Programmer capability 1.42 1.17 1.00 0.86 0.70 -
VEXP Virtual machine experience 1.21 1.10 1.00 0.90 - -
LEXP Language experience 1.14 1.07 1.00 0.95 - -
Project
MODP Modern programming practices 1.24 1.10 1.00 0.91 0.82 -
TOOL Software Tools 1.24 1.10 1.00 0.91 0.83 -
SCED Development Schedule 1.23 1.08 1.00 1.04 1.10 -

3) Advanced
The Advanced COCOMO model computes effort as a function of program size and a set of cost drivers weighted according to each phase of the software lifecycle. The Advanced model applies the Intermediate model at the component level, and then a phase-based approach is used to consolidate the estimate.




The four phases used in the detailed COCOMO model are: requirements planning and product design (RPD), detailed design (DD), code and unit test (CUT), and integration and test (IT). Each cost driver is broken down by phase as in the example shown in Table 1.3f.

Table 1.3f. Analyst capability effort multiplier for Detailed COCOMO.

Cost Driver Rating RPD DD CUT IT
ACAP Very Low 1.80 1.35 1.35 1.50
Low 0.85 0.85 0.85 1.20
Nominal 1.00 1.00 1.00 1.00
High 0.75 0.90 0.90 0.85
Very High 0.55 0.75 0.75 0.70

Estimates made for each module are combined into subsystems and eventually an overall project estimate. Using the detailed cost drivers, an estimate is determined for each phase of the lifecycle.

ii) SLIM

Putnam developed a constraint model called SLIM to be applied to projects exceeding 70,000 lines of code. Putnam’s model assumes that effort for software projects is distributed similarly to a collection of Rayleigh curves. Putnam suggests that staffing rises smoothly during the project and then drops sharply during acceptance testing. The SLIM model is expressed as two equations describing relation between the development effort and the schedule. The first equation, called the software equation, states that development effort is proportional to the cube of the size and inversely proportional to the fourth power of the development time. The second equation, the manpower-buildup equation, states that the effort is proportional to the cube of the development time.

1) The Norden-Rayleigh Curve

The Norden-Rayleigh curve represents manpower as a function of time. SLIM uses separate Rayleigh curves for design and code, test and validation, maintenance, and management. A Rayleigh curve is shown in Figure 1.11.

Figure 1.11. A Rayleigh curve.

2) The Software Equation
Putnam used some empirical observations about productivity levels to derive the software equation from the basic Rayleigh curve formula. The software equation is expressed as:
Size = CE^1/3( t^4/3)

where C is a technology factor, E is the total project effort in person years, and t is the elapsed time to delivery in years.

3) The Manpower-Buildup Equation

To allow effort estimation, Putnam introduced the manpower-buildup equation:
D = E / t^3

Where D is a constant called manpower acceleration, E is the total project effort in years, and t is the elapsed time to delivery in years.

1.4.4. Automated Tools

Many models are available as automated tools. These tools allow the planner to estimate cost and effort and to perform what if analyses for important project variables.

1) Costar
Costar is an estimation tool developed by Softstar Systems. Costar will produce estimates of a project's duration, staffing levels, effort, and cost based on the original COCOMO or COCOMO II models. Planners can adjust the estimate to arrive at an optimal project plan. The main screen is shown in Figure 1.12.



Figure 1.12. Costar main screen.

2) SLIM
Putnam has extended the SLIM model to include an automated tool. The SLIM tool was developed by Quantitative Software Management. SLIM produces the chart shown in Figure 1.13.




Figure 1.13. SLIM manpower distribution.

3) Checkpoint
Checkpoint is a tool developed by Software Productivity Research. Checkpoint predicts effort at four levels: project, phases, activity, and task. Checkpoint facilitates the comparison of actual and estimated performance to various industry standards included in an internal estimation knowledge base.




Responses

Author: Olufemi    26 Apr 2008Member Level: Diamond   Points : 2
This is a good paper for software professionals and it will go along way to help software developer that are thinking of standing alone or starting their software company in cost estimation of their products. It is a pity that most of the diagram in the presentation are not showing. I hope Mr. Tony will help us so that diagrams will be allowed in our write up.

Olufemi


Author: CONFIDENCE IS THE COMPANION OF SUCCESS    27 Apr 2008Member Level: Diamond   Points : 2
thnks for ur response


Feedbacks      
Popular Tags   What are tags ?   Search Tags  
(No tags found.)

Post Feedback


This is a strictly moderated forum. Only approved messages will appear in the site. Please use 'Spell Check' in Google toolbar before you submit.
You must Sign In to post a response.
Next Resource: Performance Model in Computer Architecture
Previous Resource: Software Testing
Return to Discussion Resource Index
Post New Resource
Category: Computer & Technology


Post resources and earn money!
 
Related Resources


Contact Us    Privacy Policy    Terms Of Use   

SpiderWorks Technologies Pvt Ltd. 2006 - 2007 All Rights Reserved.