Sie sind auf Seite 1von 14

Chapter 7

1. Software Project Management (SPM)


The term SPM is a combination of three different terms.
Software: Set of programs available to the computer e.g.; OS, MS Project.
Project: Set of interrelated activities to complete software.
Management: Planning, monitoring and control.
Project Management Institute (PMI) of USA (http://www.pmi.org/) has defined the term
project management as follows.
Project Management: The application of knowledge, skills and tools on project
activities to complete a project in order to meet or exceed the stakeholders needs or
expectations from the project.

2. Categories of the Project


There are two main categories of the project (Shelly, Cashman, Rosenblatt 2001).

 Discretionary
 Non-Discretionary

Discretionary Projects
The projects that have the factor of choice are called discretionary projects. It can be
explained by providing example either from business organization or SW house point of
view. Business example could be a new report requested by the end user or there are so
many projects required by UET, such as online registration system or online exam
generation system or online timetable scheduling system. It is up to the UET management
starts developing any of the projects first or later. The SW house have stabilized from
9/11 incident. The Net Sol and Cresssoft SW house were severely damaged after 9/11.
Their major projects were seized after the 9/11. They don’t have money to pay even the
salaries of the emoloyess. Net Sol and Cressoft have now recovered from that situation.
They have international projects now in USA and in the European market. Major SW of
the Net Sol Company is the leasing SW. Net Sol management is in a phase of
discretionary to pick a project from the market other than that they are dealing.

Non-Discretionary
The projects that have no choice from implementation point of view are called non-
discretionary projects. It can also be explained by providing examples either from
business organization or Software house point of View. Business example could be a new
report demanded by government regulations or UET was trying to get the recognition
from the Pakistan Engineering Council (PEC). Any new information acquired by the PEC
in which UET was not working is an example of non-discretionary project. There are few
non-discretionary projects are predictable, such as updates to payroll, tax percentage and

1
changes in the insurance processing system. Net Sol software house during the phase of
recovery was in a phase of non-discretionary because they cannot refuse any project. Any
project from the market was vital for them to circulate the flow of money.

3. Types of Projects
There are three main types of projects (Pressman 2005)

 Simple
 Average
 Complex

Simple Project
A new project that is similar to previously completed project is called a simple project
e.g. Net Sol software house is dealing in leasing software. A new leasing project will be a
simple project for Net Sol. Adam software house is dealing in hospital management
systems. A new hospital management project will be a simple project for Adam software
house.

Average Project
A new project that have few functions similar to previously completed projects and few
new functions never been developed will be called an average project.

Complex Project
A new project has such functionalities never been done by the software house will be a
complex project.

4. Feasibility Assessments
There are four types of feasibility assessments.

 Economic
 Technical
 Operational
 Schedule

Economic feasibility is composed of estimating project benefits and costs. There are two
main types of project benefits.

 Tangible benefits
 Intangible benefits

Tangible benefits are those that are measure able in terms of monetary values. Tangible
benefits of a project could bring cost reduction, error reduction, opening new market,
sales opportunities, improvement of management planning and control. How much cost
will be reduced in terms of overtime, staff and resources reduction? The Intangible
benefits of a project could bring efficiency, performance, quality, employee’s moral and
company goodwill.

2
The most popular software project cost estimation methods among all are as follows.

 Line Of Code (LOC)


 Function Point (FP)
 Backing Firing
 Constructive Cost Model 1 (COCOMO 1)
 Constructive Cost Model 2 (COCOMO 2)
 New Line of Code (LOC)

Line Of Code (LOC)


The LOC method used history of previous similar software projects and develops a
matrix to have rough estimation of the current software project cost. The example of a
matrix is shown below.
Project Lines Effort in Person Cost in $ Pages of Errors Defects People
title of Code Month (pm) K (1000) DOC
A 13000 24 170 300 150 25 5
B 20000 25 175 350 175 35 7
C 40000 30 200 500 200 50 10
Table 8.1

Efforts are calculated in person month such as for project A we have five people and
effort require to complete that project is 24 person month (pm). It means that five people
have to spend effort in a month to complete the project equivalent to 24 people. There are
so many problems with LOC method such as:

 It is language dependent method. For example, if the previous projects are


developed using COBOL, C and C++ programming languages that are strictly
hard coded languages and the current projects is going to be developed using VB
6.0 that is a Rapid Application Development tool then estimated project cost will
be totally inaccurate relying on the number of lines written because of the
differences in the programming languages.
 The above mentioned matrix for the current project can only be seen after the
implementation of the software which is too late from estimation purposes.
 There is no direct way to calculate the current software cost.

Function Point
The functionality of the software is used as a matrix to calculate the project cost using the
FP method. The formula to calculate the FP is:

3
FP = UFC * TCF
UFC = Un-adjustable Function Count
TCF = Technical Complexity Factors

UFC used a complexity factor, which is selected based on the nature of project such as
simple, average, and complex projects. The weight or co-efficient of complexity factor is
assigned and multiplied to number of: user inputs, outputs, user inquiries, files and
external interfaces. The optimistic, realistic and pessimistic approach is used to count the
inputs, outputs, enquires, files and external interfaces. The formula to calculate the
estimated count is:

(Optimistic + 4 * Realistic + Pessimistic)


6

Estimated Count Complexity Factor


Simple Average Complex
No. of User Inputs * 3 4 6
No. of User Outputs * 4 5 7
No. of Inquires * 3 4 6
No. of Files * 7 10 15
No. of interfaces * 5 7 10
Table 8.2

The UFC is equivalent to summation calculated after multiplying the total count of
inputs, outputs, inquire, files and interface screens multiplied by the desired complexity
factor simple or average or complex depending upon the nature of the project.

TCF is calculated as:


TCF = 0.65 + 0.01 * ∑ Fi (F1 to F14)
∑ Fi = 14 questions are mentioned below and graded between 0-5

Zero means not applicable and five means it is essential for project. The question’s grades
are summed and multiplied with 0.01 and then added with 0.65 to calculate the TCF. The
fourteen questions are as follows.

F1: Does the system require reliable backup recovery?


F2: Are there distributed processing functions?
F3: Is performance critical?
F4: Will the system run in an existing heavily utilized operational
environment?
F5: Does the system require online data entry?
F6: Does the online data entry require the input transactions to be built over
multiple screens or operations?
F7: Are the master files updated online?
F8: Are the inputs, outputs, files and inquires complex?
F9: Is the code designed to be reusable?

4
F10: Are the conversions and installations included in the design?
F11: Is the system designed for multiple installations in different organizations?
F12: Is the internal processing complex?
F13: Are data communications required?
F14: Is the application designed to facilitate change and ease of use by the user?

Example 8.1
Figure 8.1 below indicates estimation inputs, outputs, inquiries, files and external
interface for software. Figures 8.2 indicates F1-F14 values.
Figure 8.1
Optimistic Realistic Pessimistic Average complexity factor
No. of Inputs 18 22 28 4
No. of Outputs 14 17 24 5
No. of Inquiries 14 20 26 4
No. of Files 6 6 7 10
No. of Interfaces 4 4 5 7
Figure 8.2
F1=3
F2=3
F3=0
F4=4
F5=4
F6=4
F7=5
F8=3
F9=5
F10=4
F11=3
F12=4
F13=4
F14=4
∑ F1 - F14 = 50
Calculate the number of FP. If the organizational productivity for systems of this type is
7 FP / month & labor rate is $ 4000/month then compute cost / FP, total estimated project
cost and estimated effort in Person Month (pm)
Solution
FP=UFC * TCF
UFC=Estimated count [(Optimistic + 4 * Realistic + Pessimistic) / 6] * complexity factor

No. of Inputs = (18 + 4 * 22 + 28) / 6 = 22.33 * 4 =89.32


No. of Outputs = (14 + 4 * 17 + 24) / 6 = 17.66 * 5 =88.30
No. of Inquiries = (14 + 4 * 20 + 26) / 6 = 20 * 4 =80
No. of Files = (6 + 4 * 6 + 7) / 6 = 6.16 * 10 =61.60
No. of Interfaces = (4 + 4 * 4 + 5) / 6 = 4.16 * 7 =29.12
__________

5
UFC=348.34
TCF = 0.65 + 0.01 * ∑ F1-F14
∑ F1-F14 =50
Therefore TCF = 0.65 + 0.01 * 50 = 1.15

Therefore FP = 348.34 * 1.15 = 400.59

Cost / FP = (Labor rate / month) / Productivity


Labor rate = $4000 / month
Productivity = 7 FP / month
Cost / FP = $4000 / month / 7 FP/ month
=$571.42
Total Project cost = Cost / FP * FP
= 571.42 * 400.59 = $228905.13
Effort in Person Month = (Total Project cost) / (Labor rate / month)
=228905.13 / 4000 = 57 Person month

Advantages of FP method
1. It is more accurate and efficient method to calculate software project cost than
LOC.
2. Provides a direct way to measure the project cost.
3. FP method is also used to measure the cost per FP and effort in person month.
4. It can be used with other cost estimation techniques such as Back Firing and
COCOMO methods.
Disadvantages of FP method
1. Very subjective while calculating the UFC in terms of user inputs, outputs,
inquires, files and interfaces.
2. Very subjective while answering the fourteen questions graded during the
estimation of TCF.
3. Rely on the expert in terms of accuracy.

Backing Firing Method


A method called backing firing method in order to measure line of codes of the software
project using the FP method had been devised. It provides us a matrix between the
programming language used to develop the project and the Source Line Of Code
(SLOC)/Function Point (FP).

Programming Language SLOC/FP

6
C++ 64
COBOL 106
Delphi 18
HTML 14
VB 6.0 32
SQL 12
JAVA 46
Table 8.3

This method measures the total lines of code by multiplying the FP method with the
constant SLOC / FP value for the programming language used to develop the project.
Backing firing method incorporates the advantages of LOC and FP methods.

Example 8.2
An information system has 25 data entry, 15 output, 10 inquiries, 20 files and 5 interface
screens. The project has an average complexity. The summation of TCF 14 questions is
54. Calculate FP and LOC if the proposed language to the information system project is
JAVA.
14 Questions values:
F1=4
F2=4
F3=2
F4=4
F5=4
F6=4
F7=5
F8=3
F9=5
F10=4
F11=3
F12=4
F13=4
F14=4
∑ F1 - F14 = 54

Solution

Estimated count Average complexity factor


No. of Inputs 25 4
No. of Outputs 15 5
No. of Inquiries 10 4
No. of Files 20 10
No. of Interfaces 5 7

7
FP = UFC * TCF
UFC = Estimated count * complexity factor

No. of Inputs = 25 * 4 = 100


No. of Outputs = 15 * 5 = 75
No. of Inquiries = 10 * 4 = 40
No. of Files = 20 * 10 = 200
No. of Interfaces =5*7 = 35
_________

UFC = 450

TCF = 0.65 + 0.01 * ∑ F1-F14


∑ F1-F14 = 54
Therefore TCF = 0.65 +0.01 * 54 = 1.19

Therefore FP = 450 * 1.19 = 535.50

Conversion factor for JAVA language = 46

There LOC = 535.5 * 46 = 24633

CONSTRUCTIVE COST MODEL 1 (COCOMO1)


Barry Boehm has devised COCOMO1 in 1981 to measure the software project costs.
COCOMO1 has three modes and mode is chosen according to the nature of projects

 ORGANIC
 EMBEDED
 SEMI-DETACHED

Organic Mode
Effort = 2.4 * (size in KLOC) ^1.05
^ denoting the power
Time to Develop = 2.5 * (Effort) ^0.38

Example 8.3
A project estimation size is 33200 LOC and it is accounting software. Calculate the effort
in person month and total time to develop it with the number of people required to
complete the project.
Solution
The software project is about accounting software therefore basic COCOMO version and
organic is used.
Size = 33200 LOC = 33.2 KLOC
Effort = 2.4 * (size in KLOC) ^1.05

8
Time to develop = 2.5 * (Effort) ^0.38
Effort = 2.4 * (33.2) ^1.05 = 95 person month
Time to develop = 2.5 * (95) ^0.38 =14.1 month

Total number of people needed = Effort / Total time to develop


= 95 / 14.1 = 7 people

CONSTRUCTIVE COST MODEL 2 (COCOMO2)


Barry Boehm also introduced COCOMO2 in 1996 because COCOMO1 was not able to
cope the modern object oriented development. COCOMO1 is no more used in the
Software industry but only used for academic and research purposes.

NOP = OP * [(100 - % reuse) / 100]


OP = Estimated count * Complexity factor

Estimated Count Complexity Factor


Simple Average Complex
No. of Screen * 1 2 3
Reports * 2 5 8
No. of Components * 1 1 10
Table 8.4

COCOMO2 USED another matrix about the developer’s experience, software


development environment maturity to measure the productivity of the software house.
The effort in person month can be calculated by dividing the NOP with the productivity.

Developer Experience Very Low Low Nominal High Very High


Software development Very Low Low Nominal High Very High
Environment maturity
Productivity 4 7 13 25 50
Nm

COCOMO II Exercise
A project has 24 screens, 16 reports and 80 components will be used during its
development. It is an average project in terms of software complexity. The project has
70% reused component development. The developer experience and environment
maturity are nominal. The software house labor rate is $4000/month. Calculate NOP,
effort and total project cost.
Solution
OP = 24 * 2 + 16 * 5 + 80 * 1 =208

Reuse of component = 70% = 0.7

9
NOP = 208 *[(100 – 0.7)] / 100] = 206.544
Productivity = 13

Effort = NOP / Productivity


= 206.544 / 13 = 16 person month.

Labor rate = 4000/month


Productivity = 13 NOP person month

Cost/NOP = Labor rate/productivity


= 4000/13
= 307.69
Cost = 307.69 * 206.544
= 63551.52

New L0C method


Exercise
There are 42,500 LOC for the software project was calculated using backfiring method.
The average productivity is 620 LOC/pm. The labor rate of the software is $8000 per
month. Calculate cost/LOC and total project cost.
Solution
Cost/LOC = Labor rate/productivity
=8000/620
= $ 12.90
Total project cost = LOC * cost/LOC
= 42500 * 12.90
= 548250

Technical Feasibility
Technical feasibility is composed of estimating
 Hardware cost
 Software cost

Operational Feasibility
The operational feasibility is composed of estimating the:
 Operational benefits
 Operational cost

10
Schedule Feasibility
Schedule feasibility is used to display total schedule time vs the activities performed to
complete the project.

The project director calculates the expected cost of each path and evaluates the least cost
path. The formula to calculate the expected cost = path probability * estimated cost.
Project manager used the make-buy decisions based on the following conditions.
Exercise
The decision tree for a software-based system ‘X’:
1. Internal software development from scratch
2. Reuse existing partial experienced component
3. Customized off-the-shelf software
4. Contract to the software house
Calculate the least cost by using by using the decision tree

Simple (0.3)

11
B
$ 380,000

1 $ 450,000
Difficult (0.7)

Build Minor changes (0.4) $ 275,000

Reuse 2
Major changes (0.6)
System X
Buy Simple (0.2)
$ 310,000

3
Difficult (0.8)
Minor changes (0.7)
$ 490,000
Contract to software house Major changes (0.3) $ 210,000

$ 400,000
4
Without changes (0.6)
$ 350,000
With changes (0.4)
$ 500,000
Solution
Expected cost (build) = 0.3 * ($ 380K) + 0.7 * ($ 450K) = $ 429K
Expected cost (reuse) = 0.4 * ($ 275K) + 0.6 * [0.2 * ($ 310K) + 0.8 * (490K)] = $ 382K
Expected cost (buy) = 0.7 * ($ 210K) + 0.3 * ($ 400K) = $ 267K
Expected cost (contract to software house) = 0.6 * ($ 350K) + 0.4 * ($ 500K) = $ 410K

It is clear that expected cost of buying the off-the-shelf software is the least among all
paths.
Example
EVA is called information for a one year project after certain phases

Budgeted Cost of Work Schedule (BCWS) = $ 23,000


Budgeted Cost of Work Perform (BCWP) = $ 20,000
Actual Cost Work Performed (ACWP) = $ 25,000
Budget At Completion (BAC) = $ 120,000

Calculate the following values.

Cost Variance (CV) =?


Schedule Variance (SV) =?

12
Cost Performance Index (CPI) =?
Schedule Performance Index (SPI) =?
Cost Variance At Completion (CVAC) =?
Schedule Variance At Completion (SVAC) =?

Cost Variance = Budgeted Cost of Work Perform - Actual Cost Work Performed
CV = BCWP – ACWP
= 20,000 – 25,000
= -$ 5000

Schedule Variance = Budgeted Cost of Work Perform - Budgeted Cost of Work Schedule
SV = BCWP – BCWS
= 20,000 – 23,000
= -$ 3000

Cost Performance Index=Budgeted Cost of Work Perform / Actual Cost Work Performed
CPI = BCWP / ACWP
= 20,000 / 25,000
= 0.8

Schedule Performance Index=Budgeted Cost of Work Perform / Budgeted Cost of Work Schedule
SPI = BCWP / BCWS
= 20,000 / 23,000
= 0.86

Estimated Cost At Completion = Budget At Completion / Cost Performance Index


ECAC = BAC / CPI
= 120,000 / 0.8
= $ 150,000

Cost Variance At Completion = Budget At Completion - Estimated Cost At Completion


CVAC = BAC – ECAC
= 120,000 – 150,000
= -$ 30,000

Estimated Schedule At Completion = Total duration / Schedule Performance Index


ESAC = Total duration / SPI
= 365 / 0.86
= 424 days= 1 y 2m

Schedule Variance At Completion = Total duration - Estimated Schedule At Completion


SVAC = Total duration – ESAC
= 365 – 424
= -59 days

13
14

Das könnte Ihnen auch gefallen