Lecture Eight · 10 June 2026
08Lecture Eight

Cost Estimation I —
Size Metrics &
Function Points

"How big is this project?" — the question every estimation method tries, and often fails, to answer.

Instructor
Dr. Zhijiang Chen
Session
No. 08 of 16
Date
10 June 2026
Room
YF302
Duration
110 minutes
Format
Lecture + Counting workshop
Group project briefs released at the end of today's class.
Lecture VIIIAgenda02 / 20
Today's Plan

Count something, then justify the count.

§TopicMinutes
I.Why estimate? Why is it hard?10
II.LOC — uses and abuses10
III.IFPUG Function Points30
IV.Value Adjustment Factor (VAF)10
V.Use-Case Points & modern variants10
Discussion: estimate a famous product10
VI.Estimation biases — and the group project25
HW8, questions5
Part — One
I

Why estimate —
and why we're so bad at it.

§ IWhy estimate04 / 20
The need is unavoidable

Estimates feed every economic model.

Every NPV starts with someone writing a cost number. Without estimation, there is no economics.

  • Plan the work. Schedule, staffing, dependencies.
  • Budget the work. Funding requests, capital allocation.
  • Price the work. Fixed-price contracts, internal chargeback.
  • Manage the work. Track progress vs plan; signal when to escalate.

Estimation accuracy varies wildly — by factors of 2× to 4× in industry studies. Yet estimating is still better than not estimating.

Part — Two
II

LOC —
the original sin
of software estimation.

§ IILines of Code06 / 20
When it works and when it doesn't

LOC: a measure that punishes good code.

Strengths

  • Trivial to count after the fact.
  • Has decades of calibration data.
  • Useful for COCOMO II (Lec 9).

Weaknesses

  • Rewards verbosity. A concise solution scores worse.
  • Language-dependent: 100 lines of Rust ≠ 100 lines of Python.
  • Says nothing about feature value or complexity.
  • In 2026: AI-assisted code-gen breaks the LOC ↔ effort link.

Use LOC as a downstream output (the COCOMO input), not an upstream estimate. Estimating in LOC before any code is written is guessing.

Part — Three
III

Function Points —
size from the
specification, not the code.

§ IIIFP definition08 / 20
IFPUG, 1979

Function Points (FP).

A language-neutral measure of software size, computed from what the system does rather than how it's implemented. Counted from a specification — usable before any code is written.

Five "function types" are counted, then weighted by complexity:

TypeWhat it isWeight range
EI — external inputUser or system data entering the boundary3 / 4 / 6
EO — external outputData sent out of the system (report, response)4 / 5 / 7
EQ — external inquiryA direct read with no derivation3 / 4 / 6
ILF — internal logical fileData the system maintains internally7 / 10 / 15
EIF — external interface fileData referenced, maintained elsewhere5 / 7 / 10
§ IIIWorked count09 / 20
A small library-management module

UFP — a worked example.

FunctionTypeComplexityWeightUFP
Add bookEIaverage44
Search catalogueEQaverage44
Borrow bookEIaverage44
Generate monthly reportEOhigh77
Catalogue (book master)ILFaverage1010
Member rosterILFlow77
Borrowing logILFaverage1010
External vendor catalogue feedEIFaverage77
Total UFP53
Part — Four
IV

VAF —
the adjustment
for context.

§ IVValue Adjustment Factor11 / 20
Fourteen General System Characteristics

VAF — adjusting UFP for system context.

VAF  =  0.65 + 0.01  ×  Σ GSCi  ·  AFP  =  UFP × VAF

14 General System Characteristics, each rated 0 (no influence) through 5 (essential):

data communications · distributed data processing · performance · heavily used configuration · transaction rate · online data entry · end-user efficiency · online update · complex processing · reusability · installation ease · operational ease · multiple sites · facilitate change

For our library module, sum the GSC ratings = 35 → VAF = 0.65 + 0.35 = 1.00 → AFP = 53 × 1.00 = 53 AFP.

Part — Five
V

Use-Case Points —
FP for the
OOP-shaped projects.

§ VUCP13 / 20
Karner, 1993

Use-Case Points (UCP).

Counts actors (weighted by interaction complexity) and use-cases (weighted by number of steps), then adjusts for technical and environmental factors. Designed for projects whose specification lives in UML or modern equivalents.

FP and UCP usually correlate well within a domain. Use whichever fits your team's specification style; pick one and stick to it across the term.

For your group project, choose FP or UCP — not both. Consistency across alternatives matters more than which method you pick.

Discussion10 minutes14 / 20
Estimate a household product
#

How many Function Points is WeChat?

In pairs (4 minutes), enumerate the function types of WeChat as you understand them. Don't try to be exhaustive — pick 15 representative functions. Compute UFP.

  • Where did your two estimates differ most? Which functions were missed?
  • Compare the two teams' totals. Are they within 30% of each other? If not, why?

The exact number doesn't matter. The exercise of negotiating it is what calibrates a team's estimating instincts.

Part — Six
VI

Biases —
and your group project.

§ VIThree biases16 / 20
What goes wrong every time

Three biases your estimate will fight.

Optimism

You imagine the happy path. Reality is a sum of small disasters. Counter: reference-class forecasting.

Anchoring

The first number set the budget; later analysis only nudges it. Counter: estimate before discussing.

Planning fallacy

"This time will be different." It rarely is. Counter: add a 25%–50% buffer; refuse the smaller number.

An estimate WITH bias-correction is an honest estimate. Without it, you are agreeing to a number you do not believe.

§ VIGroup project brief17 / 20
Released today — presented in Lectures 14–15

Group project — what we are asking for.

In teams of 3–4, choose a software product (real or hypothetical). Produce a complete economic analysis containing:

  1. Project description & scope.
  2. Cost estimate using FP or COCOMO II (your choice).
  3. Cash-flow forecast for ≥ 2 alternatives.
  4. NPV, IRR, payback, PI for each alternative.
  5. Sensitivity or risk analysis (Tornado, decision tree, or Monte Carlo).
  6. Bonus: AI cost dimension — tokens, productivity impact.
  7. Final recommendation with stakeholder justification.

Brief, rubric, and team-formation form on the course site. Teams must be registered by Lecture 11.

HomeworkDue Lecture 1018 / 20
Homework 08 — due Friday 12 June

Count your project.

  1. Convert your group-project description into an FP (or UCP) estimate. Show every function and weight.
  2. Apply VAF — describe the GSC ratings you chose.
  3. Bring your AFP count to Lecture 9. We will convert it to KSLOC and effort using COCOMO II.
RecapWhat to remember19 / 20

What today bought you.

  1. LOC is a lagging measure. Use it as COCOMO input, not as a forward-looking estimate.
  2. Function Points let you size a system from its specification — before any code is written.
  3. Bias is the dominant error. A correct method applied through an optimism filter is still wrong.
EndLecture Eight20 / 20
&

Questions & conversation.

Dr. Zhijiang Chen
Software Engineering Economics · Summer 2026
frostburg-state-university.github.io/bju