Chapter 4
Software Project Management Plan
SLOC & Function Point Analysis COCOMO
1
How it should go
Requirements
Analysis
Design
Implementation
System Testing
Delivery and Installation
Software Project Management Plan
Software Project:
– All technical and managerial activities required to deliver to the client.
– A software project has a specific duration, consumes resources and produces
work products.
– Management categories to complete a software project:
• Tasks, Activities, Functions
Software Project Management Plan:
– The controlling document for a software project.
– Specifies the technical and managerial approaches to develop the software
product.
– Companion document to requirements analysis document: Changes in either may
imply changes in the other document.
– SPMP part of project agreement.
Project Agreement
Document written for a client that defines:
– the scope, duration, cost and deliverables for the project.
– the exact items, quantities, delivery dates, delivery location.
Can be a contract, a statement of work, a business plan, or a project
charter.
Client: Individual or organization that specifies the requirements and
accepts the project deliverables.
Deliverables (= Work Products that will be delivered to the client):
– Documents
– Demonstrations of function
– Demonstration of nonfunctional requirements
– Demonstrations of subsystems
Project Agreement vs Problem
Statement
Client Manager Project Team
(Sponsor)
Problem
Statement Software Project
Management Plan
Project
Agreement
Software Project Planning
After the finalization of Software Requirment Spsefication (SRS), we would
like to estimate size, cost and development time of the project. Also, in
many cases, customer may like to know the cost and development time
even prior to finalization of the SRS.
In order to conduct a successful software project, we must understand:
– Scope of work to be done
– Software Project Planning
– The risk to be incurred
– The resources required
– The task to be accomplished
– The cost to be expended
– The schedule to be followed
Software Project Planning
Software Project Planning
Fundamental estimation questions
– • How much effort is required to complete an activity?
– • How much calendar time is needed to complete an activity?
– • What is the total cost of an activity?
– • Project estimation and scheduling are interleaved management activities
Software Project Estimation Effort Estimation
– It Is the process of predicting Effort, productivity, time and cost required to
develop software projects.
– It uses Software metrics to estimate size of projects
– Software Metrics refers to measurements relating to computer software
Software Project Planning
Software Project Planning
Software Effort Estimation
– • It Is the process of predicting Effort, productivity, time and cost required to
develop software projects.
– • Effort can be calculated as Staff or Person per day/Week/Month/Year.
– • For small project it is common to use Staff / Weeks while for large project it is
common to use Staff-months
Software Project Planning
The four basic steps in software project estimation are:
– 1) Estimate the size of the development product.
• This generally ends up in either Lines of Code (LOC) , Function Points (FP), or
Constrictive Cost Model (COCOMO)
– 2) Estimate the effort in person/months or person/hours.
– 3) Estimate the schedule in calendar months.
– 4) Estimate the project cost in dollars (or local currency)
Software Project Planning
Effort
– • Effort can be calculated as Staff or Person per day/Week/Month/Year
– • For small project it is common to use Staff-Weeks while for large project it is
common to use Staff-months
– • Example 30 staff-month means that you need 30 staff to finish it in one month
– • For two months you need only 15 staff per month (30/2) you have more time
so you need less people
– • To calculate staff-month in weeks you need to multiply by 4 30*4 = 120 staff-
week; to calculated in years /12 (30/12= 2.5 staff-year)
– • To calculate effort phase percentage (e.g. 10% of total effort) 10% of 30 = 3
staff-month. If for example the phase last for 3 months then you need 1 staff for
each month 3/3)
Software Project Planning
Software Project Planning
Bottom-up and top-down Estamation
– • Bottom-up
• – use when no past project data (from scratch)
• – identify all tasks that have to be done – so quite time-consuming
• – use when you have no data about similar past projects
– • Top-down
• – produce overall estimate based on project cost drivers
• – based on past project data
• – divide overall estimate between jobs to be done
Software Project Planning
Bottom-up estimating
– 1. Break project into smaller and smaller components
– 2. Stop when you get to what one person can do in one/two weeks
– 3. Estimate costs for the lowest level activities
– 4. At each higher level calculate estimate by adding estimates for lower levels
Software Project Planning
Software Project Planning
Activities during Software Project Planning
Software Project Planning
Source Line of Code (LOC)
– • LOC = NCLOC + CLOC
– – NCLOC : non- commented Line of code.
– – CLOC :commented Line of code.
– • KLOC is used to denote thousands of Line of code.
– • Blank lines - not usually counted
Example
– for (i = 0; i < 100; i++); printf("hello"); /* How many lines of code is this? */
– In this example we have:
• • 1 Physical Line of Code (LOC)
• • 2 Logical Lines of Code (LLOC) (for statement and printf statement)
• • 1 comment line
Software Project Planning
Software Project Planning
Software Project Planning
Software Project Planning
Software Project Planning
Example:
– Assume estimated lines of code of a system is: 33,200 LOC, Average
productivity for system of this type is: 620 LOC/person-month, there are 6
developers, and labor rate is: $ 800 per person-month . Calculate the total effort
and cost required to complete the above project.
– Solution
• => Total Effort = Total LOC/Productivity = 33200/620=53.54 ≈ 54 person-months
• => 6 developers Effort = Total Effort/6 = 54/6 = 9 months
• => Total Cost = Total Effort * Labor Rate = 54 * 800 ≈ $43,200,
• OR Total Cost = Effort * Labor Rate * No of developers = 9 * 6 * 800 ≈ $43,200,
Software Project Planning
Translate the number of LOC to assembly (Compiler) language line in order
to make comparisons between programming languages
– e.g.
convert 50,000 LOC system written in C to Java, Assembler level for C = 2.5,
Java = 6
50,000 * 2.5 = 125,000 if written in assembler
125,000 / 6 = 20,833 LOC if written in Java
Software Project Planning
Function Count
– Alan while working for IBM, recognized the problem in size measurement in
the 1970s, and developed a technique (which he called Function Point
Analysis), which appeared to be a solution to the size measurement problem
– The principle of function point analysis (FPA) is that a system is decomposed
into functional units
• Inputs : information entering the system
• Outputs : information leaving the system
• Enquiries : requests for instant access to information
• Internal logical files : information held within the system
• External interface files : information held by other system that is used by the system
being analyzed
Software Project Planning
The five functional units are divided in two categories:
(i) Data function types
– Internal Logical Files (ILF):
• A user identifiable group of logical related data or control information maintained
within the system
– External Interface files (EIF):
• A user identifiable group of logically related data or control information referenced by
the system, but maintained within another system. This means that EIF counted for
one system, may be an ILF in another system.
(ii) Transactional function types
– External Input (EI):
• An EI processes data or control information that comes from outside the system. The
EI is an elementary process, which is the smallest unit of activity that is meaningful to
the end user in the business.
– External Output (EO):
• An EO is an elementary process that generate data or control information to be sent
outside the system.
External Inquiry (EQ): An EQ is an elementary process that is made up to an input-
output combination that results in data retrieval
Software Project Planning
Special features
– Function point approach is independent of the language, tools, or
methodologies used for implementation; i.e. they do not take into consideration
programming languages, data base management systems, processing hardware
or any other data base technology
– Function points can be estimated from requirement specification or design
specification, thus making it possible to estimate development efforts in early
phases of development
– Function points are directly linked to the statement of requirements; any change
of requirements can easily be followed by a re-estimate
– Function points are based on the system user’s external view of the system,
non-technical users of the software system have a better understanding of what
function points are measuring
Counting function points
Functional Units Weighting factors
Low Average High
External Inputs (EI) 3 4 6
External Output (EO) 4 5 7
External Inquiries (EQ) 3 4 6
External logical files (ILF) 7 10 15
External Interface files (EIF) 5 7 10
Table 1 : Functional units with weighting factors
Software Project Planning
The weighting factors are identified for all functional units and multiplied
with the functional units accordingly. The procedure for the calculation of
Unadjusted Function Point (UFP) is given in table shown previous slide.
The procedure for the calculation of UFP in mathematical form is given
below
Where i indicate the row and j indicates the column of Table 1 Wij : It is the
entry of the ith row and jth column of the table 1 Zij : It is the count of the
number of functional units of Type i that have been classified as having the
complexity corresponding to column j.
Software Project Planning
Where CAF is Complexity Adjustment Factor and is equal to [0.65 + 0.01 x
ΣFi]. The Fi (i=1 to 14) are the degree of influence and are based on
responses to questions noted in table 3
Table 3 : Computing function points.
Rate each factor on a scale of 0 to 5.
2 3 4 5
No Incidental Moderate Average Significant Essential
Influence
Number of factors considered ( Fi )
1. Does the system require reliable backup and recovery ? (backup and recovery )
2. Is data communication required ? (Data communications)
3. Are there distributed processing functions ? (Distributed data processing)
4. Is performance critical ? (Performance)
5. Will the system run in an existing heavily utilized operational environment ? (Transaction rate)
6. Does the system require on line data entry ? (On-line data entry)
7. Does the on line data entry require the input transaction to be built over multiple screens or operations ? (Multiple sites)
8. Are the master files updated on line ? (On-line update)
9. Is the inputs, outputs, files, or inquiries complex ? (Complex processing)
10. Is the internal processing complex ? (Operational ease)
11. Is the code designed to be reusable ? (Reusability)
12. Are conversion and installation included in the design ? (Heavily used configuration)
13. Is the system designed for multiple installations in different organizations ? (Installation ease)
14. Is the application designed to facilitate change and ease of use by the user ? ((Facilitate change)
Software Project Planning
Functions points may compute the following important metrics:
– Productivity = FP / persons-months
– Quality = Defects / FP
– Cost = / FP
– Documentation = Pages of documentation per FP
There are standards issued by the International Functions Point User Group
(IFPUG), covering the Albrecht method and the United Kingdom Function
Point User Group (UFPGU), covering the Mark II Function Point Analysis
(MK11) method
An ISO (International Organization for Standardization) standard for
function point method is also being developed
Software Project Planning
Example:
Consider a project with the following functional units:
– Number of user inputs = 50
– Number of user outputs = 40
– Number of user enquiries = 35
– Number of user files = 06
– Number of external interfaces = 04
Assume all complexity adjustment factors and weighting factors are average.
Compute the function points for the project.
Software Project Planning
Example: An application has the following:
– 10 low external inputs, 12 high external outputs, 20 low internal logical files, 15
high external interface files, 12 average external inquiries, and a value of
complexity adjustment factor of 1.10.
What are the unadjusted and adjusted function point count
Software Project Planning
Example: Consider a project with the following parameters.
– (i) External Inputs:
• (a)10 with low complexity (b)15 with average complexity (c)17 with high complexity
– (ii) External Outputs:
• (a) 6 with low complexity (b)13 with high complexity
– (iii) External Inquiries:
• (a) 3 with low complexity (b) 4 with average complexity (c) 2 high complexity
– (iv) Internal logical files:
• (a)2 with average complexity (b)1 with high complexity
– (v) External Interface files:
• (a)9 with low complexity
– In addition to above, system requires
• i. Significant data communication ii. Performance is very critical iii. Designed code may
be moderately reusable iv. System is not designed for multiple installation in different
organizations.
• Other complexity adjustment factors are treated as average.
– Compute the function points for the project.
Relative Cost of Software Phases
Functions points may compute the following important metrics:
Avg productivity is 6.5 FP per person-month
(i.e. 1 person works for 1 month – to develop 6.5 FP)
Avg labor cost is $6000 / month
A project was estimated at 672 Function points
Cost per function point = 6000/6.5 = $923 per function point
Total estimated project cost = $923 * 672 FP = 6,20,256
Total estimated effort = (672 / 6.5) = 103 person / month.
i.e. 103 person will work for 1 month to complete the project.
Or 52 person will work for 2 months to complete the project.
Or 26 person will work for 4 months to complete the project.
Or 13 person will work for 8 months to complete the project.
A project was estimated at 352 Function points. A four person team will be
assigned to this project consisting of an architect, two programmers, and a
tester. The burdened labor rate of the architect is $8,000 per month, the
programmers $6,000 and the tester $5,000. The average productivity for
the team is 8 FP per person month. Compute projected cost.
Calculate number of months
Function points 352
No of function points team can complete in one month 32 (4 people X 8 FPs)
No of months needed to complete 11
Calculate cost per month
Architect 8000 1 $8,000
Programmers 6000 2 $12,000
Tester 5000 1 $5,000
Cost per month $25,000
Total cost (Multiple # of months X Cost per month) $275,000
End of Presentation