Chapter-5: Cost Estimation Tutorial in Software Engineering

Software Engineering

Cost Estimation Tutorial

Cost is s strategic concept in software development for the following reasons:

  1. Project management: Estimating cost is extremely crucial in carrying out project management activities such as scheduling, planning and control.
    1. Feasibility Study: Making investment decisions regarding software projects requires full cost breakdown and analysis .Consequently, identified recurring and one-time  costs are then incorporated in a financial feasibility study in terms of cost-benefit analysis.
    1. Cost reduction: Since software engineering aims to provide cost-effective software solutions to business problems, many process and project related activities are designed or re-engineered to achieve the goal of cost minimization.
    1. Evaluating business performance: Cost is an essential ingredient to calculate many of the financial ratios – explained above- uses to evaluate the financial performance for business firm
    1. Leverage: Cost plays a significant role in both e the operating and the financial leverage in respect of risk and return. Relying on fixed costs as opposed to variable costs can boost the operating leverage while financing with high percentage on debt- based costs may boost the financial leverage.

Cost Estimation

Every year more projects are doomed by poor cost and schedule estimates than by technical, political or organizational problems. It‘s no wonder that so few companies realize that software cost estimating can be a science, not just an art. It has been proven that it is quite applicable to accurately and consistently predict development life cycle costs and schedules for a broad array of software projects.

Though a vast body of knowledge exists today in respect to cost estimation techniques, most of these estimation techniques view cost as a function of complexity whether explicitly or implicitly. In early models, complexity means the project size or the program volume, which can be estimated merely via kilo lines of codes KSLOC. In late models, complexity is determined firstly by inputs, outputs, interfaces, files and queries that the software system needs. Then this complexity is further adjusted via up to 14 different added-complexity factors. Eventually, the final result is converted, through a standard conversion table to KLOC.

In basic cost estimation model the calculation is straightforward. By determining the value of only two variables, total efforts in person-months can be easily calculated. These two variables are :

  • How many thousands of lines of code (KSLOC) your programmers must develop?
  • The effort required per KSLOC (i.e.: Linear Productivity Factor)

Accordingly, multiplying these two variables together will result in the person months of effort required for the project provided that the project is relatively small. Otherwise, another exponential size penalty factor has to be incorporated for larger project sizes. Person-months implies the number of months required to complete the entire project if only one person was to carry out this mission. This underlying concept is the foundation of all of the software cost estimating models especially those originated from Barry Boehm‘s famous COCOMO models.

COCOMO Sample Example

Suppose it is required to build a Web Development system consisting of 25,000 lines of code. How many person months of effort would this take using just this equation if:

  1. The project size was relatively small
  2. The project size was considered large

Answer:

  1. For a relatively small project:

Efforts = Productivity x KSLOC

                                =     3.3 x 25 = 82.5 Person-Months

  • For a large project :

Efforts = Productivity x KSLOCPenalty

= 3.3 x 251.030 = 90.86 Person-Months

It should be  noted , however . that COCOMO formulas   have also different  modes , models and versions up to COCOMOII and the new COCOTS.

Estimating software costs typically involves the following drivers:

  1. Complexity of the software project
  2. Size of the software project 3- Efforts needed to complete the project 4- Time needed to complete the project

5- Risks and uncertainties involved .Yet , the risk driver is still not clearly incorporated in the majority of cost estimation models for software systems .

Despite of several differences, most cost estimation models are more or less based on the following rule:

Complexity € size

(Complexity determines software size in terms of KLOC)

Size € efforts

(KLOC determines efforts in person-months with a given level of productivity and exponential size penalty factor)

Efforts € time

(Effort determines time at a given mode and/or model )

Time € Number of people required

(Time determines people ―well-trained full time software development team‖)

Four standard conversion tables are widely adopted in cost estimation. These tables are shown below.  

Table 1. Common Values for the Linear Productivity Factor

Project TypeLinear Productivity Factor
COCOMO II Default2.94
Embedded Development2.58
E-commerce Development3.60
Web Development3.30
Military Development2.77

Table 2. Typical Size Penalty Factors for Various Project Types

Project TypeExponential Size Penalty Factor
COCOMO II Default1.052
Embedded development1.110
E-Commerce development1.030
Web development1.030
Military development1.072

Table 4. Lines of Code Per Function Point by Programming Language

Function Points Estimations

An alternative to direct KSLOC estimating is through function points, then use a the above standard table called ―Lines of Code Per Function Point by Programming Language” to convert them to KSLOC. Function points was used for the first time by IBM to capture the complexity of the software system in terms of its SRS functionality and the way it interacts with its users.

How Function Points Work?

  1. Estimate the number of external inputs, external interface files, external outputs, external queries and logical internal tables (files).
  2. Use the Function Point Conversion Factor table to get total initial function points .
  3. Initial function points are adjusted via 14 complexity factors to obtain final (adjusted) function points.
  • Use adjusted function points to obtain KSLOC.
  • Use KSLOC to estimate efforts as explained in COCOMO examples above

FP Sample Example

Suppose the requirement specification for the Blood Bank Website Development of the blood bank project has been carefully analyzed and the following estimates have been obtained. There is a need for 11 inputs, 11 outputs, 7 inquiries, 22 files, and 6 external interfaces. Also, assume outputs, queries , files function point attributes are of low complexity and all other function points attributes are of medium complexity.

The complexity adjustment value for factor is significant which is 4.  

Make the following calculations showing the full procedure in details:

  1. What is the FUNCTION POINTS (FP) for the blood bank project
  2. What is the ADJUSTED FUNCTION POINTS (AFP) for the blood bank project? 
  3. 3- What is the approximate number of LOC in the following languages:
    1. “C++” programming language
    1. “Java” Programming language
  4. Calculate the estimated schedule time in person-months assuming that Java is used as the implementation language

Answer

1- Calculating Function Points

FUNCTION POINTS ESTIMATION (1) 
DESCRIPTIONLOWMEDIUMHIGHTOTAL
INPUTSX311X4X644
OUTPUTS11X4X5X744
QUERIES7X3X4X621
FILES22X7X10X15154
PROGRAM INTERFACESX56X7X1042
Total Unadjusted Function Points305

2- Calculating Adjusted Function Points

FUNCTION POINT ESTIMATION (3) 
PROCESSING COMPLEXITY(PC):04
ADJUSTED PROCESSING COMPLEXITY (PCA)0.65+(0.01 *04)= 0.69
TOTAL ADJUSTED FUNCTION POINTS305 * .69 = 210.45
  • Approximate number of LOC for the following languages:
  • “C++” programming language :

LOC = 210.45 x 53 = 11153.85 ~ 11.15 KSLOC

  • “Java” Programming language

LOC = 210.45 x 46 = 9680.7 ~ 9.68 KSLOC

  • Estimated efforts calculation

Efforts = Productivity x KSLOCPenalty = 3.3 x 9.68.030 = 3.532 Person-Months

Chapter 6: Software Testing with example Process

What is Testing? Testing is the process of evaluating a system or its component(s) with the intent to find whether it satisfies the specified requirements or not. In simple words, testing is executing a system in order to identify any gaps, errors, or missing...

Chapter – 4: Project management with Example Procedures.

Project management Software project management is an essential part of software engineering. Projects need to be managed because professional software engineering is always subject to organizational budget and schedule constraints. The project manager‘s job is to...

Frequency Word for IELTS Listening

Frequency Word for IELTS Listening School a. Library  WordSentence1. Shelf 2. Librarian 3. The stacks 4. Return 5. Fine 6. Magazine 7. Copier  8. Overdue  9. Reading room  10. Reference...

You may find interest following article

Chapter 6: Software Testing with example Process

What is Testing? Testing is the process of evaluating a system or its component(s) with the intent to find whether it satisfies the specified requirements or not. In simple words, testing is executing a system in order to identify any gaps, errors, or missing requirements in contrary to the actual requirements. According to ANSI/IEEE 1059 standard, Testing can be...

Chapter – 4: Project management with Example Procedures.

Project management Software project management is an essential part of software engineering. Projects need to be managed because professional software engineering is always subject to organizational budget and schedule constraints. The project manager‘s job is to ensure that the software project meets and overcomes these constraints as well as delivering...

Chapter -3: Agile Software Development Method Process

Agile Software Development Although there are many approaches to rapid software development, they share some fundamental characteristics: The processes of specification, design, and implementation are interleaved. There is no detailed system specification, and design documentation is minimized or generated automatically by the programming environment used to...

Chapter 2: Software processes with various model

Objectives: understand the concepts of software processes and software process models;have been introduced to three generic software process models and when they might be used;know about the fundamental process activities of software requirements engineering, software development, testing, and evolution;understand why processes should be organized to cope with...

Frequency Word for IELTS Listening

Frequency Word for IELTS Listening School a. Library  WordSentence1. Shelf 2. Librarian 3. The stacks 4. Return 5. Fine 6. Magazine 7. Copier  8. Overdue  9. Reading room  10. Reference room  11. Periodical room  12. Study lounge  13. Catalogue  14....

Chapter 8: Gantt chart Project Development in SDLC

Gantt chart Project DevelopmentSchedule (project management) The project scheduleis the tool that communicates what work needs to be performed, which resources of the organization will perform the work and the timeframes in which that work needs to be performed. The project scheduleshould reflect all of the work associated with delivering the project on time....

Chapter 7: Feasibility Analysis in Software Develoment Life Cycle.

Feasibility AnalysisWhat is Feasibility Analysis?? An analysisand evaluation of a proposed project to determine if it (1) is technically feasible, (2) is feasible within the estimated cost, and (3) will be profitable for Organization. Feasibility analysis guides the organization in determining whether to proceed with the project. Feasibility analysis also identifies...

Chapter 6: Data Flow Diagram in Software Development Life Cycle.

Data Flow Diagram What is DFD? A data flow diagram (DFD) is a graphical representation of the "flow" of data through an information system, modelling its process aspects.A DFD is often used as a preliminary step to create an overview of the system, which can later be elaborated.Show users how data moves between different processes in a system. Figure 1: DFD Symbols...

Chapter 5: System request on SDLC

System Request In most organizations, project initiation begins by preparing a  system request. A  system request is a document that describes the business reasons for building a system and the value that the system is expected to provide.The project sponsor usually completes this form as part of a formal system project selection process within the...

Chapter 4: SDLC design Phase

SDLC design Phase DFD (Design Analysis)Architectural DesignUI DesignDatabase DesignProgram DesignArchitectural design (logical)Network designClient –server designClient designServer designCloud ComputingDatabase designER diagramRelational diagramDDL (not now..!!)Program design (physical)Investigating the hardware/software platformPhysical DFDData storageData...

Chapter 3: SDLC and its Life cycle Phases.

What is SDLC? The systems development life cycle (SDLC), also referred to as the application development life-cycle, is a term used in systems engineering, information systems and software engineering to describe a process for planning, creating, testing, and deploying an information system. Career Paths for System Developers Systems Development Life Cycle Building...

Chapter 2: SDLC Key Features For SYSTEMS ANALYST.

Once upon a time, software development consisted of a programmer writing code to solve a problem or automate a procedure. Nowadays, systems are so big and complex that teams of architects, analysts, programmers, testers and users must work together to create the millions of lines of custom-written code that drive our enterprises.To manage this, a number of system...

Chapter 1: System analysis and Design Overview.

System analysis, a method of studying a system by examining its component parts and their interactions. •It provides a framework in which judgments of the experts in different fields can be combined to determine what must be done, and what is the best way to accomplish it in light of current and future needs.  •The system analyst (usually a software engineer or...

Chapter 4: Concept Of Sampling, Quantization And Resolutions

Concept Of Sampling, Quantization And Resolutions Conversion of analog signal to digital signal: The output of most of the image sensors is an analog signal, and we can not apply digital processing on it because we can not store it. We can not store it because it requires infinite memory to store a signal that can have infinite values. So we have to convert an...

Chapter 3: Images and Conversions in Digital Image Process

Images And Conversions There are many type of images, and we will look in detail about different types of images, and the color distribution in them. The binary image The binary image as it name states, contain only two pixel values. 0 and 1. In our previous tutorial of bits per pixel, we have explained this in detail about the representation of pixel values to...

Chapter 2: Concept of Pixel in Digital Image Process

Concept of Pixel Pixel Pixel is the smallest element of an image. Each pixel correspond to any one value. In an 8-bit gray scale image, the value of the pixel between 0 and 255. The value of a pixel at any point correspond to the intensity of the light photons striking at that point. Each pixel store a value proportional to the light intensity at that particular...

Part 6: IELTS Academic Writing Task 1 For Diagram/Graph Vocabulary

Vocabulary to show the sequence: You must write a summary of at least 150 words in response to a specific graph (bar, line, or pie graph), table, chart, or procedure in Writing Task 1 of the IELTS Academic test (how something works, how something is done). This job assesses your ability to choose and report the most important aspects, describe and compare data,...

Part 5: IELTS Academic Writing Task 1 Formal and Informal expressions.

Formal and Informal expressions and words: You must write a summary of at least 150 words in response to a specific graph (bar, line, or pie graph), table, chart, or procedure on the IELTS Academic test (how something works, how something is done). Few more informal expressions with their formal versions are given below. Since IELTS is a formal test, your writing...

Part 4: IELTS Academic Writing Task 1 For Graph Comparison Vocabulary

Vocabulary to represent comparison in graphs: Type Word(s) should be used Similar about / almost / nearly / roughly / approximately / around / just about / very nearly / Just over just above / just over / just bigger / just beyond / just across Just short just below / just beneath / just sort / just under / just a little Much more well above / well above / well...