Session 14
Session 14
SOFTWARE PROJECT
MANAGEMENT
……
Outsourcing Modelling Structure
Cocomo Model
Software Project Planning
dy − at 2
m(t ) = = 2kate --------- (1)
dt
dy
dt
= manpower utilization rate per unit time
a = parameter that affects the shape of the curve
K = area under curve in the interval [0, ∞ ]
t = elapsed time
Software Project Planning
dy − at 2
m(t ) = = 2kate --------- (1)
dt
On Integration on interval [o, t]
y(0) = 0
y(∞) = k
2a
“td”: time where maximum effort rate occurs
Replace “td” for t in equation (2)
t d2
E = y (t ) = k 1 − e 2 t d2 = K (1 − e −0.5 )
E = y (t ) = 0.3935k
1
a= 2
5
2t d
Software Project Planning
1
Replace “a” with 2
in the Norden/Rayleigh model(eq1)
2t d
. By making this substitution in equation we have
t2
− t2
2K 2t d2 − 2
m(t ) = te K
2t d2 = 2 te 2t d
td
m0 = K e
td
6
Software Project Planning
At time t=td, peak manning m (td) is obtained and denoted by mo.
k
mo =
td e
k = Total project cost/effort in person-years.
td = Delivery time in years
m0 = No. of persons employed at the peak
e = 2.71828
7
Software Project Planning
Example
95
= 32.94 = 33 persons
1.75 1.648
Average rate of software team build up
m0 33
= = = 18.8 persons / year or 1.56 person / month
td 1.75
9
Software Project Planning
Example:
Solution
104/3.5=29p/y
11
Software Project Planning
(b) We know
− at 2
y (t ) = K 1 − e
t = 1 year and 2 months
= 1.17 years
1 1
a= = = 0.041
2t d 2 (3.5)
2 2
12
IIM Rohtak
Additional Information:
•The cost per person per year is $50,000.
•A 5% annual inflation rate increases manpower costs after each
year.
(c) If the project experiences a delay and is completed in 4 years instead of 3 years 6
months, estimate the additional cost incurred due to the delay, given the inflation continues
at 5% annually.
Indian Institute of Management (IIM),Rohtak
IIM Rohtak
=K/Td =600/3.5=171.42 PY
Mo =K/Td*squart(e) =600/3.5*1.648=104 p
Cocomo II screens
http://csse.usc.edu/csse/research/COCOMO_suite/index.html
http://sunset.usc.edu/csse/research/COCOMOII/cocomo_main.html
Cocomo screens
Cocomo screens
Let’s look
deeper at the
Function Type
descriptions…
External Input Count each unique user data or user control input type that (i)
(Inputs) enters the external boundary of the software system being
measured and (ii) adds or changes data in a logical internal
file.
External Output Count each unique user data or control output type that leaves
(Outputs) the external boundary of the software system being measured.
Internal Logical File Count each major logical group of user data or control
(Files) information in the software system as a logical internal file
type. Include each logical file (e.g., each logical group of data)
that is generated, used, or maintained by the software system.
Also, we can
see a value next
to the Change
Multiplier
button.
Note the
multiplier
changed from
53 to 640.
Change the
language once
more to 5’th
Generation.
So using a 5’th
generation level
language would cut
our code base by a
factor of 285 times
according to
Cocomo II’s default
estimation (not
calibrated for your
environment, not
taking into account
other factors).
Change the
language to C++
and change REVL
to 20%…
So now Module2 has F:12783 or, in other words, it’s
based on Function points (the F:) and it has an
equivalent 12,783 lines of code (10,653 + 20% for
volatility).
So how did the 12,783 (or even the 10,653) get calc’d?
Part 1 of the answer is to click on Parameters→
Function Points. You will see the following screen…
So let’s see what part of the calculation we just affected…
So now let’s add a module and use Adaptation and Reuse…
What % of the adapted
software’s design will
change?
% of effort required to
integrate the adapted
software into an
overall product and to
test the resulting
product as compared to
the normal amount of
integration and test
effort for software of
comparable size.
Software Understanding
(SU): Use the table
below to help you come
up with a weighted
average based on three
key areas…
Assessment &
Assimilation (AA): 0 to 8.
Effort to determine
whether
a fully-reused software
module is appropriate to
the application, and to
integrate its description
into the overall product
description
These last two areas have
to deal with automatically
translating code.
Double click on the yellow rectangle under EAF for Module1
This screen will pop-
up. As you click on
any given button top
row button, the
button’s title will
change (Nom,
High,Very High,
Very Low, Low, etc)
AND you will see
the EAF at the
bottom of the screen
change.
I have changed ONLY
the button for RELY to
VHI and by doing so,
the EAF has changed
to 1.26.
So we just increased
the Effort equation by
26%!!!
Note: There are other parameter menus just like the Post-Arch /
Product choices. You can see a list of those above. You can
adjust Function Point weights, EAF factors for Early
Architecture, Scale Factors, the number of hours in a Person
Month, etc.
This is where you set the quantitative measures associated with
your qualitative choices. This is how you calibrate Cocomo II to
fit your environment. You can also save your calibrations as a
separate loadable module.
•If we go back to the main screen and click on Scale Factor, we
see the above Popup screen.
UUCP
Help of
Use Case
Relationship
System boundary:
Actor indicates the scope of your
system. Anything within the
box represents functionality
that is in scope and anything
Use case outside the box is not
Actor: An actor is a person,
organization, or external
system that plays a role in
one or more interactions
with your system
Indian Institute of Management (IIM),Rohtak
IIM Rohtak
system name
system boundary
ATM
System
primary actor 1
Withdraw secondary actor
Money
2
Bank Deposit
Customer Money
Customer
Accounts
role 3 Database
Transfer
Money
association
4
Check
use case Balance
1a
Withdraw from
<<extend>> Check
1
Withdraw
Money
Bank
Customer
<<extend>>
1b
Withdraw from
Customer
Savings
Accounts
Database
1a
Withdraw from
Checking
1
Withdraw
Money
Bank
Customer
1b
Withdraw from
Customer
Savings
Accounts
Database
generalization
3a
Select
<<include>> Accounts
3
Transfer
Money
Bank
Customer
<<include>>
3b
Update Account
Customer
Balances
Accounts
Database
An extend
relationship indicates
that one use case is a
variation of another.
Case :sol
Step 1.2.2 − Repeat for each Actor and get all the Actor Weights.
Unadjusted Actor Weight (UAW) is the sum of all the Actor Weights.
Where,
NSA is the no. of Simple Actors.
NAA is the no. of Average Actors.
NCA is the no. of Complex Actors.
The next steps are to adjust the Unadjusted Use-Case Points (UUCP)
for Technical Complexity and Environmental Complexity.
Step 2.2 − For each of the 13 Factors, assess the project and rate
from 0 (irrelevant) to 5 (very important).
Step 2.3 − Calculate the Impact of the Factor from Impact Weight of
the Factor and the Rated Value for the project as
Step 3.3 − Calculate the Impact of the Factor from Impact Weight
of the Factor and the Rated Value for the project as
Step 3.4 − Calculate the sum of Impact of all the Factors. This gives
the Total Environment Factor (EFactor) as given in the following
table −