We are currently moving our web services and information to Canada.ca.

The Treasury Board of Canada Secretariat website will remain available until this move is complete.



An Enhanced Framework for the Management of Information Technology Projects

PPTO-PD-001 Estimate Software Product Size - Best Procedure

January 2000
Chief Information Officer Branch
Treasury Board of Canada Secretariat



1. Introduction

1.1 Purpose

This procedure is an activity in the Project Planning Process (PPTO-PS-002). It uses the requirements to calculate a functional size measure which is converted to source lines of code (KSLOC). The size estimate is input into other activities in the Project Planning Process, namely, Estimate Project Resources/Schedule Basic Procedure.

1.2 Scope

This document is applicable to any Information Management/Information Technology (IM/IT) project that is delivering software.

Ensure that all assumptions, constraints and rationale (i.e. decisions) are documented in the Project Plan.

1.3 Roles

Everyone in the organisation has a role to perform in this procedure.

Everyone in the organisation has a role to perform in these processes.

Role Description/Responsibilities
Project Leader (PL) This is the person appointed by the sponsoring department to be accountable for all external and internal aspects of a capital project.
http://www.tbs-sct.gc.ca/pubs_pol/dcgpubs/TBM_122/abkglos-eng.asp
Project Manager (PM) This is a person formally appointed to manage a project with specific accountability for achieving defined project objectives within allocated resources. A project manager has access to, and a formally defined relationship with, the project leader to which the specific project has been assigned. 
http://www.tbs-sct.gc.ca/ pubs_pol/dcgpubs/TBM_122/abkglos-eng.asp
Project Team Member (PTM) Software engineer or writer assigned to a project

Responsible for completing project tasks, providing input to plans, and providing status

Project Management Office (PMO) This is a distinct and temporary organisational unit led by the project manager tasked to administer a project. It consists of assigned full or part-time members of the sponsoring department and, when appropriate, representatives of participating departments working together in accordance with any interdepartmental agreements or memorandums of understanding. 
http://www.tbs-sct.gc.ca/ pubs_pol/dcgpubs/TBM_122/abkglos-eng.asp
Quality Assurance (QA ) Responsible for support of quality assurance activities.
Configuration Management (CM) Responsible for support of configuration management activities.

1.4 Definitions and Acronyms

Algorithm (1) A finite set of well-defined rules for the solution of a problem in a finite number of steps; for example, a complete specification of a sequence of arithmetic operations for evaluating sine x to a given precision. [IEEE-STD-610]

(2) Any sequence of operations for performing a specific task. [IEEE-STD-610]

(3) An algorithm is defined as the set of rules which must be completely expressed in order to solve a significant computational problem [Capers Jones]
Inputs Inputs are screens or forms through which human users of an application or other programs add new data or update existing data. If an input screen is too large for a single normal display and flows over onto a second screen, the set counts as 1 input. Inputs that require unique processing are what should be considered. [Capers Jones]
Inquiries Inquiries are screens which allow users to interrogate a application and ask for assistance or information, such as HELP screens. [Capers Jones]
Interface Interfaces are files shared with other applications such as incoming or outgoing tape files, shared databases and parameter lists. [Capers Jones]
Master files Data files are logical collections of records which the application modifies or updates. [Capers Jones]
Outputs An output results in the generation of derived data. [Garmus, Herron]

Outputs are screens or reports, which the application produces for human use of for other programs. Note that outputs requiring separate processing are the units to count: In a payroll application, an output that created 100 cheques would still count as 1 output [Capers Jones]

Refer to Enhanced Management Framework Lexicon.

Refer to Enhanced Management Framework Acronyms.

Refer to Enhanced Management Framework Web Links.

1.5 References

1.5.1 Traceability

This procedure was designed to satisfy the SEI Software Capability Maturity goals for Level 2 Key Practice: Software Project Planning.

1.5.2 Policies

Treasury Board Secretariat Policies:

The policies above are located at the following URL:

http://www.tbs-sct.gc.ca/pubs_pol/dcgpubs/TBM_122/siglist-eng.asp

1.5.3 Standards

Annex A – Flowcharting Symbols

1.5.4 Processes

PPTO-PS-002 Project Planning Process

PPTO-PS-003 Project Tracking and Oversight Process

PEER-PS-001 Peer Review Process

1.5.5 Procedures

PPTO-PD-002 Estimate Project Resources/Schedule Basic Procedure

1.5.6 Guidelines

Not applicable at this time.

1.5.7 Templates

PPTO-TM-001 Process/Procedure Template

PPTO-TM-002 Project Plan Template

PPTO-TM-003 Project Estimates Template

1.5.8 Checklists

PPTO-CK-001 Project Management Checklist



2. Procedure

2.1 Entry Criteria

The following entry criteria describe the input's state, an event, or an expired amount of time, which is required before this procedure can begin.

Details of Entry Criteria
  • Approved Business Case
  • Approved Project Charter
  • Approved Set of Requirements
  • Initial Project Plan

2.2 Procedure Map

The overall procedure flow given below shows the interaction and flow among the activities. More details about the activity steps can be found in 2.4 Activities.

Procedure Map

2.3 Inputs

The following inputs are used in this procedure Where they don't exist, identify any associated risks.

Input Detail of Inputs and Remarks Ref.
Business Case The identification and justification of an IM/IT project that relates the IM/IT project to program priorities and the measurable improvements in program performance.
  • Identifies the opportunity
  • Describes the added value
  • Describes the IM/IT solution
  • Identifies the indicators to measure improvements in program performance
EMF Business Case Guideline
Project Charter An agreement between technical and business groups defining:
  • Partners & external stakeholders
  • Project management framework
  • Roles, responsibilities, accountabilities and activities
  • Management commitments
  • Empowerment framework
EMF Project Charter Template
Initial Project Plan Living agreement between the technical and business groups describing in greater detail the:
  • What: interim and final deliverables
  • Why: purpose and objectives
  • Where: scope
  • Who: roles, responsibilities, accountabilities
  • How: managerial and technical processes, supporting plans
  • When: schedule estimates
  • How much: resource estimates
Document what detail is known.

PPTO-TM-002
 
  • The above document decisions made to date that will affect the risks, constraints, assumptions and estimates.
 
Requirements
  • Requirements should be documented in accordance with the methodologies used.
 
Enterprise Database
  • Actuals from previous IM/IT projects for comparison and verification of the planning process
 

2.4 Activities

Use your organisation's standards, estimation methods, tools and techniques to estimate software product size.

Here is a partial list of industry standards for estimating software size.

If your organisation has no standard method, use the following method as an interim solution until your organisation selects a method to estimate software size.

The following activities are performed in this procedure. Document all assumptions, risks, constraints, etc. in the Project Plan.

No. Activities Action by Detail of Activities and Remarks Ref.
1 Calculate Functional Size Measure

 

Document the assumptions used to calculate functional size measurement.

PM - Count and enter the following elements into the Count Column:

  - inputs
  - outputs
  - master files
  - inquiries
  - interfaces

- algorithm – optional to use where algorithms are heavily used (PKI) and project managers choose to document separately.
- Each Count (1A) is automatically multiplied by its corresponding Weight (1B) generating a Total for each row
- The Functional Size Measure (1C) automatically sums the row totals

Counting Guidelines:

- Application Programming Interface (API) calls to Commercial Off-the-Shelf (COTS) and other reused software are counted as interfaces.

- Functions are associated with logical groups or screens of data rather than individual data parameters.

- Ensure that the requirements/functions are not counted multiple times when described in multiple locations.

- Error messages are generally counted as one output and one Master file.
Annex F

PPTO-TM-003

2 Determine Problem Complexity

Document the assumptions used to determine problem complexity.
PM - Assess the complexity of algorithms and calculations using the description that best describes your software

- Select and enter the Problem Complexity Adjustment (2B) from the table (2A)

- This number is automatically multiplied by the Functional Size Measure (1C) to produce the Problem Complexity (2C)
PPTO-TM-003
3 Determine Data Complexity

Document the assumptions used to determine data complexity.
PM - Assess the complexity of the data stored and manipulated by the system using the description that best describes your software

- Select and enter the Data Complexity Adjustment (3B) from the table (3A)

- This number is automatically multiplied by the Functional Size Measure (1C) to produce the Data Complexity (3C)

- The Problem Complexity (2C), the Data Complexity (3C) and the Functional Size Measure (1C) are summed to produce the Total Functional Size Measure (3D)
PPTO-TM-003
4 Determine Language Multiplier

Document the assumptions used to determine language multiplier
PM - Determine the language(s) used to develop the software

- Select and enter Language Multiplier (4B) from the table (4A)

- The Language Multiplier is automatically multiplied by the Total Functional Size Measure (3D) and divided by 1000 (to convert to KLOC) to produce the Estimated KSLOC (4C)

Note: For additional languages see the Programming Languages Table at: http://www.spr.com/library/0langtbl.htm

Find the particular language and enter the number from the Average Source Statements Per Function Point (last column)
PPTO-TM-003
5 Determine the Confidence Level

Document the assumptions used to determine confidence level
PM - Evaluate the condition that best describes the specification or other documents describing the software.

- Using the description that best describes your document, select and enter the Confidence Level (5B) from the column (5A)

The Confidence Level is automatically multiplied by the Estimated KSLOC (4C) to produce the Total KSLOC (5C) to arrive at the value for the Confidence Level.
PPTO-TM-003
6 Review Estimate PM - Compare Total KSLOC with projects of similar size in the Enterprise (historical) database. If the size estimate varies dramatically, revisit the Functional Size Measure in activity 1 for omissions or extra counts

- Review the size estimate and the documented assumptions with affected groups and individuals and sign-off

Note: Estimates of less than 30 KSLOC should be viewed with caution as it is almost impossible to provide any real functionality at this level
PPTO-TM-003

PEER-PS-001

2.5 Outputs

The following outputs are produced or modified by the activities in this procedure.

Output Detail of Outputs and remarks Ref.
Software Size
  • Background Information (Assumptions)
  • Use the spreadsheet to calculate the software size estimate
  • Append the spreadsheet to the project plan
  • Document all assumptions, risks, constraints, etc. in the project plan
PPTO-TM-002

PPTO-TM-003

2.6 Verification and Validation

Output Validation See Activity 6 – Review Estimate

To determine if the outputs are within specification,

  • Use the (PEER-PS-001) Peer Review Process and any techniques described in your IM/IT methodology.
  • Use validation techniques referred to in your IM\IT methodology such as testing, demonstration, analysis and inspection.
 

2.7 Exit Criteria

Details of Exit Criteria
  • All affected groups and individuals agree upon the product size estimate and sign-off

2.8 Metrics

Refer to Enhanced Management Framework, Exposure Draft Executive Toolkit, November 22, 1999 for the Project Health Check Dashboard.

2.9 Records Control Table

Not applicable at this time. Populate table if seeking ISO certification. For more information, refer to (PPTO-TM-001) Process/Procedure Template.

Description
(no. and name)
Storage Location Filing / Index Minimum Storage Period
       
       

2.10 Controlled Documents Table

Not applicable at this time. Populate if seeking ISO certification. For more information, refer to (PPTO-TM-001) Process/Procedure Template.

Number Name Revision Date
(or version)
Owner
       
       


Annex A – Lexicon

Refer to the Enhanced Management Framework Lexicon or insert a reference to your organisation's Lexicon.

Annex B – Acronyms

Refer to the Enhanced Management Framework Acronyms or insert a reference to your organisation's Acronyms.

Annex C – Flowcharting Symbols

Flowcharting Symbols  
Parallelograms represent inputs and outputs to or from a process/procedure.  
   
Flowcharting Symbols Flowcharting Symbols
Rectangles represent individual process/procedure activities. Diamonds represent important decision points in the process/procedure.
   
Flowcharting Symbols

Flowcharting Symbols
Flowcharting Symbols
Lines with arrowheads connect symbols to show the progression or direction of the activities. Circles represent connectors when a process/procedure flowchart continues on the next page.

Annex D – Bibliography

Boehm, Barry, Software Engineering Economics, Prentice Hall, New Jersey, 1991.

Garmus, David, Herron, David, Measuring the Software Process: A Practical Guide to Functional Measurements, Yourdon Press, 1996.

Jones, Capers, Applied Software Measurement: Assuring Productivity and Quality, McGraw-Hill, Inc., New York, 1996.

Refer to Enhanced Management Framework Web Links.

Annex E – Document Change Control

This chart contains a history of this documents revision. The document itself should be stored in revision control, and a brief description of each version should be entered in the revision control system. That brief description can be repeated in this section.

Revision Number Date of Issue Author(s) Brief Description of Change
0.1 1999-08-24 EMF/PPTO Initial Draft
0.2 1999-09-06 EMF/PPTO Revised Draft
0.3 1999-09-14 EMF/PPTO Reviewers' Comments
0.4 1999-09-23 EMF/PPTO Spreadsheet Annex Added
1.0 1999-11-09 EMF/PPTO First Draft
1.0 2000-01-18 EMF/PPTO Second Draft
       

Annex F –Project Estimates Formula(s) Documentation for Software Product Size – Sheet 1

1. Functional Size Measure
Elements (1A) Count (1B)Weight Total
Inputs   4 (1A)*(1B)
Outputs   5 (1A)*(1B)
Master Files   7 (1A)*(1B)
Inquiries   4 (1A)*(1B)
Interfaces   7 (1A)*(1B)
Algorithms (Optional)   3 (1A)*(1B)
(1C) Functional Size Measure Sum Column


2. Problem Complexity  
Meaning Description (2A) Entry  
Very Low Simple algorithms and calculations -20%  
Low Majority of simple algorithms and calculations -10%  
Average Algorithms and calculations of average complexity. Use of standard math and statistical routines. Basic matrix and vector operations 0%  
High Some difficult or complex calculations. Basic numerical analysis, multi-variable interpolation, ordinary differential equations, basic truncation and round-off concerns. +10%  
Very High Many difficult algorithms and complex calculations. Difficult numerical analysis, partial differential equations, difficult matrix equations, analysis of noisy data. +20%  
(2B) Problem Complexity Adjustment Choose from Column 2A
(2C) Problem Complexity (1C)*(2B)
3. Data Complexity  
Meaning Description (3A) Entry  
Very Low Simple data with few variables, low complexity -20%  
Low Numerous variables but simple data relationships -10%  
Average Multiple fields. Multiple fields and data interactions 0%  
High Complex file structures and data interactions +10%  
Very High Very complex file structure and data interactions +20%  
(3B) Data Complexity Adjustment Choose from

Column 3A

(3C) Data Complexity (1C)*(3B)
(3D) Total Functional Size Measure (1C) + (2C) + (3C)


4. Language Multiplier

go to: http://www.spr.com/library/0langtbl.htm for Programming Languages Table

Language (4A) Multiplier  
COBOL II 107  
C++ 53  
PowerBuilder 16  
Smalltalk 21  
Program Generator 16  
SQL 13  
Database 40  
Visual Basic 5 29  
(4B) Language Multiplier Choose from Column 4A
(4C)Estimated KSLOC (3D)*(4B)/1000


5. Confidence Level  
Meaning Description (5A) Entry  
Little Known If little is known about the requirements. 2.5  
A lot of to be determined(s) If the requirements are well understood but there is some To Be Determined (TBD) in the documentation describing them. 2.0  
Some to be determined(s) If the requirements are well understood but there is a lot To Be Determined (TBD) in the documentation describing them. 1.5  
No to be determined(s) If the requirements are well understood and there is no To Be Determined (TBD) in the documentation describing them. 1.0  
(5B) Confidence Level Choose from Column 5A
(5C) Total KSLOC (4C)*(5B)
Date modified: