Software Estimation Metrics Explained
Software Estimation Metrics Explained
Software Measurement :
There is line : You can't control what you can't measure." — Tom DeMarco
So, software measurement often uses indirect measures to describe things like:
[Link] suitable measures and metrics for the software representation you are working on
(requirements, design, code, test).
[Link] the relevant data (e.g., lines of code, number of modules, number of defects).
[Link] the metrics using formulas.
[Link] the metrics — compare them with standards or past data.
[Link] results — understand what the numbers reveal about the software’s quality, cost,
risk, or schedule.
[Link] action — modify the requirements, design, source code, tests, or even your process if
needed.
The output of measurement is product metrics — quantitative data derived from your
models, code, or test cases.
Always define why you’re measuring something before you start. Collect only useful metrics
— not every possible number.
Software Metrics :
A metric is a quantitative measure derived from measurements. It helps in evaluating a specific attribute of
software.
IEEE Standard Glossary of Software Engineering Terminology defines metric as ―a quantitative measure of
the degree to which a system, component, or process possesses a given attribute.‖
Metrics are the computed values that help analyse that data and make better decisions.
Why Important?
1. Process Metrics
Process metrics measure the efficiency and effectiveness of the software development process.
They help you analyze how well the development activities are being carried out.
Used to monitor and improve the software development process.
Used to detect inefficiencies, bottlenecks, or frequent reworks.
2. Product Metrics
Product metrics are used to measure features or characteristics of the final software product, such as its
size, performance, reliability, and maintainability.
[Link] Metrics
Project metrics deal with the management and progress of the overall project – including resources,
timelines, risks, and costs.
To manage and track the progress of the project. To help in planning, scheduling, and risk management.
Example: Website redesign project planned for 4 months → finished in 5 → shows schedule
slippage.
Eg.. You’re developing an Online Event Registration Portal for your college.
Type of
Focus Area Key Question Answered Example
Metric
Process Software development
How efficiently are we building it? Defect rate, productivity
Metric process
Product Size, usability,
Final software system How good is the software product?
Metric performance
Project Are we on time, within budget, and Cost, team size,
Project management
Metric organized? schedule
Indicator
a) Why estimate?
b) When to estimate?
c) Challenges in estimation:
The size and complexity of requirements give you the first clues about how big the
project will be.
Eg. If the requirement says, ―The system must handle online payments, generate
invoices, support mobile login, and send SMS notifications,‖ → each of these features
adds to the project size.
Meaning:
Done late in the project life cycle, usually after design or partial coding, when more details are
known
At this point, the design is stable, requirements are clarified, and early uncertainties are reduced.
When used:
Advantages:
Disadvantages:
Example:
After design is complete, you calculate LOC = 12,000.
Productivity = 500 LOC / PM
Effort = 12,000 ÷ 500 = 24 PM.
2. Base Estimation
Meaning:
use historical (past-project) data or a project baseline as the reference. You map the current project to
a similar past project and scale the historical numbers for differences (size, complexity).
When used:
Early phases when you have reliable historical projects to compare with (same domain, technology).
Works best when new project is similar to old ones.
Pros / Cons: quick and often more realistic than pure guesswork if you have good historical data; poor if
analog is not actually similar.
Example:
Last ye car’s e-commerce site took 6 months (5 developers).
New project = 20% more features → Estimated duration = 6 × 1.2 = 7.2 months (same team size).
3. Decomposition Estimation
Meaning:
Split the system into smaller work items (modules, functions, tasks), estimate each item and roll up to
the project total. This is the most common practical technique for detailed planning
Two approaches:
When used:
Example:
M1 = 4,600 LOC
M2 = 6,900 LOC
M3 = 8,600 LOC
Total = 20,100 LOC
Productivity = 500 LOC / PM
Effort = 20,100 ÷ 500 = 40.2 PM
Direct Estimation:
Pros:
Cons:
Highly subjective.
Not reliable if you don’t have past data.
Not good for very large or complex systems.
Indirect Estimation
Empirical estimation uses mathematical/statistical models based on data from past projects to
predict the effort, cost, and schedule of a new project.
It relies on real-world project experience and quantitative relationships between software size and
effort.
Key Features:
LOC depends on programming language → FP measures what the software does, not how it’s
coded.
Works well for business applications, MIS systems, and large-scale software.
1. External Inputs (EI) – Data entering the system (forms, screens).user registration form,product
search form,add to cart form
2. External Outputs (EO) – Data leaving the system (reports, messages),confirmation mail,order
summary page,invoice generation.
3. External Inquiries (EQ) – User requests that require a response without updating data,product
availability check,order status check.
4. Internal Logical Files (ILF) – Logical groups of data maintained within the [Link]
data,product backlog,order data
5. External Interface Files (EIF) – Logical groups of data used for reference but maintained by other
[Link] gateway interface,third party shipping service gateway.
Each component is classified as Low, Average, or High complexity with a standard weight table.
In Function Point Analysis, each of the five information domain components has
predefined weighfactors based on its complexity:
A factor that adjust the UFP based on general system characteristics which include
consideration like performance,usability and complexity.
FP=UFP*(0.65+0.01*sum of GSC’s)
GSC- "We’re the system designers. The client has certain needs — each GSC tells us how complex the
system will be. We give ratings to decide how much adjustment is needed for effort estimation."
1. Data Communications
2. Distributed Data Processing
3. Performance
4. Heavily Used Configuration
5. Transaction Rate
6. Online Data Entry
7. End-User Efficiency
8. Online Update
9. Complex Processing
10. Reusability
11. Installation Ease
12. Operational Ease
13. Multiple Sites
14. Facilitate Change
You rate the 14 General System Characteristics (GSCs), each from 0 to 5, and
CALCULATE SUM OF GSC’S.
Then,
VAF=0.65+(0.01×30)
=0.65+0.30=0.95
FP=50×0.95=47.5
FP → LOC Conversion
Formula :
1. Example:
AFP = 300
Language = Java (53 LOC/FP)
6. Advantages
Limitations:
When used:
In the COCOMO (Constructive Cost Model), all software projects are not the same —
they differ greatly in their complexity, constraints, and environment. To make effort
estimation realistic, Barry Boehm divided software projects into three broad categories:
Organic, Semi-Detached, and Embedded.
The type depends mainly on project size, team experience, and project [Link] type has unique
features that affect the effort, time, and cost needed to develop the software.
1. Organic mode :
The Organic mode represents projects that are relatively simple and routine. These projects are
characterized by small, experienced teams working in a familiar domain, solving problems that have
clear solutions.
Requirements are well understood from the start, and there are very few surprises during
development. For instance, a simple payroll system or inventory management software for a small
business falls under the Organic type.
The people involved usually have good experience with the tools and techniques needed, and they
have done similar projects before. Since the team is small and communication is easy, coordination
overhead is minimal.
The environment is stable and there are few constraints, these projects require relatively less effort for
planning and oversight, which is why the effort exponent for Organic mode is low (1.05). This
means effort increases almost linearly with project size
Size: Small to medium projects (up to ~50 KLOC)
Example: A payroll system for a small company, a student management system for a college.
Semi-Detached mode :
The Semi-Detached mode applies to projects that lie between simple and very complex.
In these projects, some parts of the system may be familiar to the team, while other parts are new or
moderately challenging.
The team is usually larger than in Organic mode and is often mixed: some developers have high
expertise, while others may be less experienced or new to the domain. This makes coordination a bit
more complicated, and the project manager must pay attention to communication, integration, and
guidance.
Projects in this category are larger than typical Organic projects and may include parts that require
creative solutions. An example of a Semi-Detached project could be developing a compiler, a
database management system, or a moderately complex embedded system that interfaces with
hardware but does not have extreme real-time or safety-critical requirements.
Since these projects have moderate complexity and some uncertainty, the COCOMO effort exponent
is slightly higher (1.12). This means that as the size of the project increases, the effort grows more
than linearly because managing complexity, integrating components, and ensuring quality take extra
work.
Size: Medium to large projects (~50–300 KLOC)
Example: An inventory control system for a big retail chain, an e-commerce platform with payment
integration.
Embeded Mode :
The Embedded mode is the most complex and demanding type in the COCOMO classification.
Projects in this category have tight constraints, strict performance requirements, and must interact
closely with hardware or other systems.
Often, these projects are developed in environments where failures can have serious consequences —
such as military software, aircraft control systems, medical device controllers, or any real-time
software that must function correctly under strict safety or timing conditions.
Unlike Organic projects, the requirements in Embedded projects can be very strict and may keep
changing due to evolving safety standards or hardware limitations.
The development environment may be less flexible because the software must fit into very specific
hardware configurations with limited resources. Because of this, such projects need large teams of
highly experienced developers, domain experts, and rigorous testing, documentation, and validation at
every stage.
The effort grows rapidly with project size because each increase in functionality often adds many
interdependencies and risks.
In the COCOMO model, the Embedded mode therefore has the highest effort exponent (1.20),
reflecting this steep growth in effort for larger systems.
COCOMO model is still valuable today — it reminds us that not all software projects are equal,
and each type deserves its own planning approach.
Size: Large projects (> 300 KLOC)
Example: Air traffic control systems, spacecraft control software, real-time military applications.
Mode a1 a2 b1 b2
Organic 2.4 1.05 2.5 0.38
Semi-Detached 3.0 1.12 2.5 0.35
Embedded 3.6 1.20 2.5 0.32
These were given by Barry Boehm from historical data.
[Link] (Person-Months)
This is the total effort needed to develop the software — measured in person-months (PM).
Example: 100 PM means 1 person for 100 months
[Link]
After estimating Effort (person-months) and Time (months), you can find productivity:
Eg.1
Mode: Semi-Detached
Lines of Code: 30,000 LOC
So, KLOC = 30
Calculate Effort,Time,
[Link] Effort :
a1=3.0, a2=1.12, b1=2.5, b2=0.35
Effort = a1*(KLOC) exp a2
[Link] Productivity :
Productivity=KLOC/Time (months)
Mode A1 A2 B1 B2 Characteristics
Organic 2.4 1.05 2.5 0.38 Small, simple projects with experienced teams (e.g., payroll system).
Semi-
3.0 1.12 2.5 0.35 Medium complexity, mixed team experience (e.g., compiler).
detached
Complex, real-time systems with strict constraints (e.g., flight control
Embedded 3.6 1.20 2.5 0.32
software).
Eg.1
Given:
Step 1: Effort
Types of COCOMO
1. Basic COCOMO
A quick and rough estimation model that uses only software size (measured in KLOC =
thousands of lines of code) and the project type (Organic, Semi-Detached, or Embedded).
Early stage, when only the approximate size of the project is known
Eg. If a project is estimated to have 30 KLOC and is Semi-Detached, you can directly
compute the effort in person-months.
2. Intermediate COCOMO –
More realistic than Basic COCOMO, as it considers technical and human factors.
3. Detailed COCOMO –
Advantages
Limitations:
Requires accurate size estimation early.
Constants are based on old data — may need calibration for modern tools/languages.
Not ideal for projects with rapidly changing requirements.
So, COCOMO is still direct (because you must first estimate LOC), while FP is indirect because it starts
from functional scope and converts that into LOC and then effort.
Tasks:
1. Effort (Person-Months)
Effort = LOC ÷ Productivity = 25,000 ÷ 500 = 50 PM
2. Development Time (with 5 developers)
Time = Effort ÷ Team Size = 50 ÷ 5 = 10 months
3. Total Cost
Cost = Salary per PM × Effort = ₹45,000 × 50 = ₹22,50,000
(Checks out the same as ₹45,000 × 5 devs × 10 months = ₹22,50,000)
Tasks:
Ans :
1. Effort
Previous productivity = 20,000 LOC / 40 PM = 500 LOC/PM
New Effort = 28,000 ÷ 500 = 56 Person-Months
2. Development Time (6 developers)
Time = Effort ÷ Team Size = 56 ÷ 6 = 9.33 months ≈ 9 months 10 days
3. Total Cost
Cost = Salary × Person-Months = ₹50,000 × 56 = ₹28,00,000 (₹28 lakh)
A web-based online shopping platform has the following Function Point details:
Tasks:
1. UFP
= 40×4 + 25×5 + 20×4 + 8×10 + 5×7
= 160 + 125 + 80 + 80 + 35 = 480
2. AFP
= UFP × VAF = 480 × 1.10 = 528
3. LOC (Java ~50 LOC/FP)
= 528 × 50 = 26,400 LOC (i.e., 26.4 KLOC)
4. Effort via productivity (600 LOC/PM)
Effort = LOC ÷ Productivity = 26,400 ÷ 600 = 44 Person-Months
5. Effort via COCOMO (Semi-Detached)
Effort = a × (KLOC)^b = 3.0 × (26.4)^(1.12) ≈ 117.31 Person-Months
6. Total Cost @ ₹55,000 per PM
Summary:
Project scheduling
Project Scheduling is the process of planning activities, allocating resources, setting timelines, and defining the
sequence of tasks to ensure that the project is completed on time, within budget, and with the required quality
standards.
3. Resource Constraints
Unexpected risks (technical failures, vendor issues, external factors) are not considered.
Lack of contingency or backup plans for emergencies.
5. Ineffective Communication
7. Team Issues
8. Quality Problems
9. Budget Overruns
Unrealistic expectations from clients or management can lead to stress and project failure.
A work breakdown structure (WBS) is a way to organize work into smaller, more manageable
pieces. According to the Project Management Body of Knowledge (PMBOK), WBS is a
―deliverable-oriented hierarchical decomposition of the work to be executed by the team.‖
Work breakdown structure diagrams are a very popular project management tool, typically used
in project management techniques such as the critical path method (CPM) or the Program
Evaluation Review Technique (PERT).
Important term
[Link] :
2. Event (Node)
4. Types of Activities
Critical Path Method (CPM) is a method used in project planning, generally for
project scheduling for the on-time completion of the project.
The project has many paths, but the project finishes only when the longest path is done. That’s why
the longest path is called the critical path. Its duration is the minimum possible time to complete
the project
It is the task/activity that can't be delayed otherwise the completion of the entire
project will be delayed. It must be completed on time before starting the other
dependent tasks.
It tells us the minimum time to complete the project and shows critical tasks (tasks
with zero float).
o Tasks A, B, C, D.
o Tasks B and D can only start after Task A completes.
o Task C is independent.
o If Task A is delayed, B and D are also delayed → A is on the critical path
Eg
A = 4, B = 3, C = 2, D = 5
Dependencies: A → B, A → D, C independent
Paths:
A→B=7
A → D = 9 (longest, critical path)
C=2
Eg.
Let’s assume:
A = 5 days
B = 4 days
D = 6 days
C = 8 days
Now paths:
1. A → D = 5 + 6 = 11 days
2. A → B = 5 + 4 = 9 days
3. C = 8 days (independent)
4. Longest = A → D = 11 days
So Critical Path = A → D
Step-by-Step Example
Project Activities:
Duration
Activity Predecessor
(days)
A - 3
B A 4
C A 2
D B 5
Duration
Activity Predecessor
(days)
E C 3
F D, E 2
1. A → B → D → F = 3 + 4 + 5 + 2 = 14 days
2. A → C → E → F = 3 + 2 + 3 + 2 = 10 days
Conclusion :
A network-based project scheduling technique used when activity durations are uncertain.
Activities are represented as nodes/arrows, showing dependencies.
PERT is used when activity durations are uncertain.
It uses three time estimates for each task:
Time Estimates:
Formula :
Steps:
Example
Activity Predecessor O (days) M (days) P (days)
A - 2 4 6
B A 3 5 9
C A 4 6 8
D B, C 2 3 4
3. Gantt Chart
Steps:
4. Task List
Task ID/Number
Task Name
Start Date
Duration / End Date
Dependencies
Assigned Resources
Status
Advantages:
Fast Tracking :
Definition: Performing activities in parallel (overlapping tasks) that were originally planned in
sequence.
Example: Start coding while design is still being reviewed.
Advantages: Saves time, faster delivery.
Disadvantages: Increases risk of rework and errors if dependent tasks overlap.
Crashing :
Definition: Adding extra resources to critical path activities to finish them faster.
Example: Assigning more developers to coding, or running overtime shifts.
Advantages: Reduces project duration, effective when deadlines are strict.
Disadvantages: Increases cost, may cause resource conflicts.