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:
- 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.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 |
|
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.
|
EMF Business Case Guideline |
Project Charter |
An agreement between technical and business groups defining:
|
EMF Project Charter Template |
Initial Project Plan |
Living agreement between the technical and business groups describing in greater detail the:
|
PPTO-TM-002 |
|
||
Requirements |
|
|
Enterprise Database |
|
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
- Software Engineering Research Laboratory
- 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
|
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 |
|
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,
|
2.7 Exit Criteria
Details of Exit Criteria |
|
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) |
- Date modified: