Treasury Board of Canada
Secretariat	Secrétariat du Conseil du Trésor 
du Canada	

Enhanced Management Framework
Estimate Software Product Size
Basic Procedure

Document Revision Draft 1.0
Date of Issue: January 2000

Process Owner: Enhanced Management Framework

PPTO-PD-001

Table of Contents
1.	Introduction	1
1.1	Purpose	1
1.2	Scope	1
1.3	Roles	1
1.4	Definitions and Acronyms	2
1.5	References	3
1.6	Inquiries	4
2.	Procedure	5
2.1	Entry Criteria	5
2.2	Procedure Map	5
2.3	Inputs	7
2.4	Activities	9
2.5	Outputs	12
2.6	Verification and Validation	12
2.7	Exit Criteria	12
2.8	Metrics	13
2.9	Records Control Table	13
2.10	Controlled Documents Table	13
Annex A – Lexicon	14
Annex B – Acronyms	15
Annex C – Flowcharting Symbols	16
Annex D – Bibliography	17
Annex E – Document Change Control	18
Annex F –Project Estimates Formula(s) Documentation for Software Product Size – Sheet 1	19

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.
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.publiservice.tbs-sct.gc.ca/pubs_pol/dcgpubs/TBM_122/ABKGLOS_e.html
	
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.publiservice.tbs-sct.gc.ca/pubs_pol/dcgpubs/TBM_122/ABKGLOS_e.html	
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.publiservice.tbs-sct.gc.ca/pubs_pol/dcgpubs/TBM_122/ABKGLOS_e.html 	
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:
•	Capital Plans - Glossary
•	Management of Major Crown Projects
•	Procurement Review Policy
•	Project Management
•	Project Approval
The policies above are located at the following URL:
http://www.publiservice.tbs-sct.gc.ca/pubs_pol/dcgpubs/TBM_122/siglist_e.html
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
1.5.9	Training
For further information on training:
Go to www.cio-dpi.gc.ca/emf-cag/index_e.asp
1.5.10	Tools
For further information on tools:
Go to http://www.cio-dpi.gc.ca/emf/Publications/SoftwareToolsReport/stf_e.html 
1.6	Inquiries
For further information on this procedure:
Go to www.cio-dpi.gc.ca/emf-cag/index_e.asp
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.  

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.
•	Function Points   http://www.ifpug.org/
•	Canada Customs and Revenue Agency strongly recommends the use of Function Points
•	Source Lines of Code (SLOC)
•	Mark II UKSMA.CO.UK
•	COSMIC  
•	COSMICON.com
•	http://www.lrgl.uqam.ca  
•	3D Function Points
•	Feature Points www.spr.com
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

		
Parallelograms represent inputs and outputs to or from a process/procedure.		

		
Rectangles represent individual process/procedure activities.  	Diamonds represent important decision points in the process/procedure.	

		
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)