Desarrollo de Software con UML
Desarrollo de Software con UML Cursada 2004Cursada 2004
Estimating Work with
Estimating Work with
Use Cases
Use Cases
Desarrollo de Software con UML
Desarrollo de Software con UML
Desarrollo de Software con UML
Desarrollo de Software con UML Cursada 2004Cursada 2004
Estimating
Estimating
Work
Work
with
with
Use Cases
Use Cases
We need to forecast
We need to forecast
•
•
How
How
long it
long
it
will
will
take
take
to
to
develop
develop
the
the
system
system
and
and
•
•
How many people will be needed to do it
How many people will be needed to do it
How long it will take a software engineer to accomplish a
How long it will take a software engineer to accomplish a
given task is primarily a function of the complexity of
given task is primarily a function of the complexity of
the problem and the engineer
the problem and the engineer
´
´
s ability
s ability
Desarrollo de Software con UML
Desarrollo de Software con UML Cursada 2004Cursada 2004
Estimating
Estimating
Work
Work
with
with
Use Cases
Use Cases
We need to quantify
We need to quantify
•
•
The
The
complexity
complexity
of
of
the
the
system
system
–
–
Functionality
Functionality
–
–
Technical
Technical
complexity
complexity
•
•
The
The
experience
experience
level
level
of
of
the
the
people
people
on
on
the
the
project
project
•
•
The
The
time
time needed
needed
to
to
produce a unit
produce a
unit
of
of
complexity
complexity
The goal is to arrive at a single number that completely
The goal is to arrive at a single number that completely
characterizes the system and correlates with observed
characterizes the system and correlates with observed
engineer productivity
engineer productivity
Desarrollo de Software con UML
Desarrollo de Software con UML Cursada 2004Cursada 2004
Estimating
Estimating
Work
Work
with
with
Use Cases
Use Cases
Use Case Point Estimator
Use Case Point Estimator
•
•
An
An
estimating
estimating
method
method
by Gustav
by
Gustav
Karner
Karner
of
of
Rational
Rational
Software
Software Corporation
Corporation
–
–
It characterizes the complexity of a system by
It characterizes the complexity of a system by
Use Case Points
Use Case Points
–
–
It is preliminary and should be used to get an idea of the
It is preliminary and should be used to get an idea of the
number of man
number of man
-
-
hours for your project
hours for your project
–
–
It was derived empirically, and the limited amount of
It was derived empirically, and the limited amount of
experimentation to date shows that it applies well in
experimentation to date shows that it applies well in
business applications, e.g., information systems
business applications, e.g., information systems
Desarrollo de Software con UML
Desarrollo de Software con UML Cursada 2004Cursada 2004
Use Case
Use Case Point
Point
Estimator
Estimator
This
This
method
method
involves
involves
the
the
following
following
steps
steps
•
•
Calculating
Calculating
the
the
Unadjusted
Unadjusted
Use Case
Use Case Points
Points
–
–
Weighting
Weighting
Actors
Actors
(UAW) &
(UAW) &
Weighting
Weighting
Use Cases (UUCW)
Use Cases (UUCW)
UUCP
UUCP
=
=
ƒ
ƒ
(
(
UAW
UAW; UUCW
; UUCW) =
) =
UAW +
UAW +
UUCW
UUCW
•
•
Calculating Use Case Points
Calculating Use Case Points
–
–
Weighting
Weighting
Technical
Technical
Factors
Factors
(TCF)
(TCF)
–
–
Weighting
Weighting
Environmental
Environmental
Factors
Factors
(EF)
(EF)
UCP
UCP
=
=
ƒ
ƒ
(
(
UUCP;
UUCP; TCF; EF
TCF; EF) =
) =
UUCP *
UUCP *
TCF * EF
TCF * EF
•
•
Estimating
Estimating
the
the
Number
Number
of
of
Man
Man-
-hours
hours
Man
Man
-
-
hours
hours
=
=
ƒ
ƒ
(
(
UCP
UCP)
)
Desarrollo de Software con UML
Desarrollo de Software con UML Cursada 2004Cursada 2004
An
An
Example
Example
Customer
Customer
Register
Register
Complaint
Complaint
Get
Get
Catalog
Catalog
Get
Get
Status
Status
on
on
Order
Order
Login
Login
Cancel
Cancel Order
Order
Place
Place Order
Order
Return
Return
Product
Product
Run
Run
Sales
Sales Report
Report
Update
Update
Account
Account
Receive
Receive
Back
Back-
-ordered
ordered
items
items
Fill
Fill
and
and
Ship
Ship
Order
Order
Customer
Customer
Support
Support
Manager
Manager
Accounting
Accounting
System
System
Inventory
Inventory
System
System
Customer
Customer
Rep
Rep
Update
Update
Product
Product
Quantities
Quantities
Get
Get
Product
Product
Information
Information
Clerk
Clerk
Shipping
Shipping
Company
Company
<< <<includeinclude>>>>Use Case
Use Case
Diagram
Diagram
Order
Order
Processing
Processing
System
System
<< <<includeinclude>>>> << <<includeinclude>>>> << <<includeinclude>>>> << <<includeinclude>>>> << <<includeinclude>>>>
Desarrollo de Software con UML
Desarrollo de Software con UML Cursada 2004Cursada 2004
Calculating the UUCP
Calculating the UUCP
Weighting
Weighting
Actors
Actors
•
•
Start by considering the actors for the system
Start by considering the actors for the system
determining whether each is simple, average, or
determining whether each is simple, average, or
complex based on its interface
complex based on its interface
Actor Type
Actor Type
Description
Description
Simple
Simple
Another system with a defined Application
Another system with a defined Application
Programming Interface
Programming Interface
Average
Average
Another system interacting through a protocol (e.g.,
Another system interacting through a protocol (e.g.,
TCP/IP) or
TCP/IP) or
A person interacting through a text
A person interacting through a text
-
-
based interface
based interface
(e.g., ASCII Terminal)
(e.g., ASCII Terminal)
Complex
Complex
A person interacting through a Graphical User
A person interacting through a Graphical User
Interface (stand
Interface (stand
-
-
alone or web application)
alone or web application)
Desarrollo de Software con UML
Desarrollo de Software con UML Cursada 2004Cursada 2004
Calculating the UUCP
Calculating the UUCP
Weighting
Weighting
Actors
Actors
(Cont.)
(Cont.)
•
•
Count how many of each actor type you have
Count how many of each actor type you have
•
•
Then multiply each type by a weighting factor
Then multiply each type by a weighting factor
Actor Type
Actor Type
Factor
Factor
Simple
Simple
Average
Average
Complex
Complex
1
1
2
2
3
3
•
•
Finally, add these products together to get a total
Finally, add these products together to get a total
Desarrollo de Software con UML
Desarrollo de Software con UML Cursada 2004Cursada 2004
Calculating the UUCP
Calculating the UUCP
Weighting
Weighting
Actors
Actors
Order
Order
-
-
processing
processing
system
system
•
•
Determining whether each actor is simple, average, or
Determining whether each actor is simple, average, or
complex based on its interface
complex based on its interface
Actor
Actor
Type
Type
Customer
Customer
Complex
Complex
Inventory System
Inventory System
Simple
Simple
Accounting System
Accounting System
Simple
Simple
Customer Service Manager
Customer Service Manager
Average
Average
Customer Rep
Customer Rep
Complex
Complex
Clerk
Clerk
Complex
Complex
Shipping Company
Shipping Company
Average
Average
Desarrollo de Software con UML
Desarrollo de Software con UML Cursada 2004Cursada 2004
Calculating the UUCP
Calculating the UUCP
Weighting
Weighting
Actors
Actors
Order
Order
-
-
processing
processing
system
system
•
•
Count how many of each actor type you have
Count how many of each actor type you have
2 Simple, 2 Average and 3 Complex
2 Simple, 2 Average and 3 Complex
•
•
Then multiply each type by a weighting factor
Then multiply each type by a weighting factor
2 Simple
2 Simple
*
*
1
1
=
=
2
2
2 Average
2 Average
*
*
2
2
=
=
4
4
3 Complex
3 Complex
*
*
3
3
=
=
9
9
•
•
Finally, add these products together to get a total
Finally, add these products together to get a total
Total Actor Weight
Total Actor Weight
=
=
15
15
UAW
UAW
Desarrollo de Software con UML
Desarrollo de Software con UML Cursada 2004Cursada 2004
Calculating the UUCP
Calculating the UUCP
Weighting
Weighting
Use Cases
Use Cases
•
•
For each Use Case determine whether it is simple,
For each Use Case determine whether it is simple,
average or complex
average or complex
Alternatives:
Alternatives:
•
•
Transaction
Transaction
-
-
based or Analysis Class
based or Analysis Class
-
-
based
based
•
•
Count how many of each type of use case type you have
Count how many of each type of use case type you have
•
•
Then, multiply each type by a weighting factor
Then, multiply each type by a weighting factor
•
•
Finally, add these products together to get a total
Finally, add these products together to get a total
Desarrollo de Software con UML
Desarrollo de Software con UML Cursada 2004Cursada 2004
Calculating the UUCP
Calculating the UUCP
Weighting
Weighting
Use Cases
Use Cases
Transaction
Transaction
-
-
based
based
•
•
Determining
Determining
the number of transactions in a use case,
the number of transactions in a use case,
including alternative paths
including alternative paths
•
•
A transaction is an atomic set of activities, which is
A transaction is an atomic set of activities, which is
either performed entirely or not at all
either performed entirely or not at all
Use Case
Use Case
Type
Type
Description
Description
–
–
It has
It has
Factor
Factor
Simple
Simple
3 or fewer transactions
3 or fewer transactions
5
5
Average
Average
4 to 7 transactions
4 to 7 transactions
10
10
Complex
Desarrollo de Software con UML
Desarrollo de Software con UML Cursada 2004Cursada 2004
Order
Order
Processing
Processing
System
System
Name:
Place Order
Place Order
Brief Description
This Use Case describes the process by which orders are entered into the
order-processing system.
…
Flow of Events
Basic Path
1.
The use case begins when the customer selects Place Order in the main screen.
2.
The system displays the Place Order screen.
3.
The customer enters his or her name and address.
4.
The customer enters product codes for products to be ordered.
5.
For each product code entered
a)
Include Get Product Information.
Include Get Product Information.
b) The system adds the price of the item to the total.
end loop
6.
The customer enters credit card payment information.
7.
The customer selects Submit.
8.
The system verifies the information.
9.
The system saves the order as pending –
Include Save Order.
Include Save Order.
10.
10.
Include Update Account.
Include Update Account.
11. The system marks the order as confirmed –
Include Update Order.
Include Update Order.
12. The system returns an order ID to the customer, and the use case ends.
Use Case Documentation
Use Case Documentation
Desarrollo de Software con UML
Desarrollo de Software con UML Cursada 2004Cursada 2004
Order
Order
Processing
Processing
System
System
Name:
Place Order
Place Order
Brief Description
…
Flow of Events
…
Alternative Paths
•
Cancel Placing an Order.
•
Payment not there or bad.
•
Shipping address incomplete.
•
Product code does not match actual products.
•
Product no longer carried.
•
Customer pays by check.
Alternative Path:
Cancel Placing an Order
Cancel Placing an Order
Precondition:
The user did not select Submit.
1.
The alternative begins when the user selects Cancel.
2.
The system discards any entered information.
3.
The system returns to the previous display.
4.
The use case ends.
Use Case Documentation
Use Case Documentation
Desarrollo de Software con UML
Desarrollo de Software con UML Cursada 2004Cursada 2004
Order
Order
Processing
Processing
System
System
Order From Displayed
[ place order selected ]
Enter Name and Address
Give Product Information
[ Product code entered ]
New Total Calculated
[ Product code entered ]
Enter Credit Card Information [ no more product codes ]
Submit Order Marked Pending [ info complete ] Charge Account Order Market Confirmed [ Payment good ] Order ID Displayed
cancel
submit
Cancelable
Actions
Activity
Activity
Diagram
Diagram
(Place
(Place
Order
Order
)
)
Desarrollo de Software con UML
Desarrollo de Software con UML Cursada 2004Cursada 2004
C ustomer
Place Order
Save Order
Update Order
Update Account
Get Product Information
<<include>>
<<include>>
<<include>>
<<include>>
Order
Order
Processing
Processing
System
System
Use Case
Use Case
Context
Context
(Place
(Place
Order
Order
)
)
Desarrollo de Software con UML
Desarrollo de Software con UML Cursada 2004Cursada 2004
Calculating the UUCP
Calculating the UUCP
Weighting
Weighting
Use Cases
Use Cases
Analysis Class
Analysis Class
-
-
based
based
•
•
Watching which analysis classes are used to realize a
Watching which analysis classes are used to realize a
particular use case
particular use case
Use Case
Use Case
Type
Type
Description
Description
–
–
It can be realized with
It can be realized with
Factor
Factor
Simple
Simple
Fewer than 5 analysis classes
Fewer than 5 analysis classes
5
5
Average
Average
5 to 10 analysis classes
5 to 10 analysis classes
10
10
Complex
Complex
More than 10 analysis classes
More than 10 analysis classes
15
15
Desarrollo de Software con UML
Desarrollo de Software con UML Cursada 2004Cursada 2004
Calculating the UUCP
Calculating the UUCP
Weighting
Weighting
Use Cases
Use Cases
Order
Order
-
-
proc
proc
system
system
•
•
Determining whether each use case is simple, average,
Determining whether each use case is simple, average,
or complex
or complex
Use Case
Use Case
Type
Type
Place Order
Place Order
Average
Average
Return Product
Return Product
Average
Average
Cancel Order
Cancel Order
Simple
Simple
Get Status on Order
Get Status on Order
Simple
Simple
Send Catalog
Send Catalog
Run Sales Report
Run Sales Report
Simple
Simple
Register Complaint
Register Complaint
Simple
Simple
Simple
Simple
Fill and Ship Order
Fill and Ship Order
Back
Back
-
-
Ordered Items Received
Ordered Items Received
Average
Average
Average
Desarrollo de Software con UML
Desarrollo de Software con UML Cursada 2004Cursada 2004
Calculating the UUCP
Calculating the UUCP
Weighting Use Cases
Weighting Use Cases
Order
Order
-
-
proc system
proc system
•
•
Count how many of each use case type you have
Count how many of each use case type you have
5 Simple, 4 Average and 0 Complex
5 Simple, 4 Average and 0 Complex
•
•
Then multiply each type by a weighting factor
Then multiply each type by a weighting factor
5 Simple
5 Simple
*
*
5
5
=
=
25
25
4 Average
4 Average
*
*
10
10
=
=
40
40
0 Complex
0 Complex
*
*
15
15
=
=
0
0
•
•
Finally, add these products together to get a total
Finally, add these products together to get a total
Total Use Case Weight
Total Use Case Weight
=
=
65
65
UUCW
UUCW
Desarrollo de Software con UML
Desarrollo de Software con UML Cursada 2004Cursada 2004
Calculating
Calculating
the
the
UUCP
UUCP
Calculating
Calculating
the
the
Unadjusted
Unadjusted
Use Case
Use Case
Points
Points
UUCP
UUCP
=
=
UAW
UAW
+
+
UUCW
UUCW
UUCP
UUCP
Order
Order
-
-
proc
proc
system
system
=
=
15
15
+
+
65
65
=
=
80
80
UUCP provides an idea of the complexity of
UUCP provides an idea of the complexity of
the use cases and interfaces, but
the use cases and interfaces, but
…
…
What about the technical and environmental
What about the technical and environmental
factors?
factors?
Desarrollo de Software con UML
Desarrollo de Software con UML Cursada 2004Cursada 2004
Calculating the UCP
Calculating the UCP
Technical
Technical
Factors
Factors
Technical
Technical
Factor
Factor
Factor Description
Factor Description
Weight
Weight
T1
T1
Distributed System
Distributed System
2
2
T2
T2
Response or throughput performance objectives
Response or throughput performance objectives
1
1
T3
T3
End
End
-
-
user efficiency (on line)
user efficiency (on line)
1
1
T4
T4
Complex internal processing
Complex internal processing
1
1
T5
T5
Code must be reusable
Code must be reusable
1
1
T6
T6
Easy to install
Easy to install
0,5
0,5
T7
T7
Easy to use
Easy to use
0,5
0,5
Desarrollo de Software con UML
Desarrollo de Software con UML Cursada 2004Cursada 2004
Calculating the UCP
Calculating the UCP
Technical
Technical
Factors
Factors
(Cont.)
(Cont.)
Technical
Technical
Factor
Factor
Factor Description
Factor Description
Weight
Weight
T8
T8
Portable
Portable
2
2
T9
T9
Easy to change
Easy to change
1
1
T10
T10
Concurrent
Concurrent
1
1
T11
T11
Includes special security features
Includes special security features
1
1
T12
T12
Provides direct access for third parties
Provides direct access for third parties
1
1
T13
T13
Special user training facilities required
Special user training facilities required
1
1
Desarrollo de Software con UML
Desarrollo de Software con UML Cursada 2004Cursada 2004
Calculating the UCP
Calculating the UCP
Weighting
Weighting
Technical
Technical
Factors
Factors
•
•
Go through Table and rate each factor from 0 to 5
Go through Table and rate each factor from 0 to 5
A rating of
A rating of
0 means
0 means
that the factor is
that the factor is
irrelevant
irrelevant
A rating of
A rating of
5 means
5 means
that the factor is
that the factor is
essential
essential
A rating of
A rating of
3 means
3 means
that the factor is
that the factor is
average
average
•
•
Then multiply each factor´
Then multiply each factor
´s rating (
s rating (TLevel
TLevel) by its weight
) by its weight
•
•
Finally, add these products together to get a total
Finally, add these products together to get a total
(
(TFactor
TFactor)
)
Desarrollo de Software con UML
Desarrollo de Software con UML Cursada 2004Cursada 2004
Calculating the UCP
Calculating the UCP
Weighting
Weighting
Technical
Technical
Factors
Factors
Order
Order
-
-
proc
proc
system
system
Technical
Technical
Factor
Factor
Weight
Weight
TLevel
TLevel
TLevel
TLevel
* Weight
* Weight
Reason
Reason
T1T1 22 11 22 Just ClientJust Client--ServerServer T2
T2 11 33 33 Speed is likely limited by input humanSpeed is likely limited by input human T3
T3 11 55 55 Needs to be efficient Needs to be efficient T4
T4 11 11 11 Easy processingEasy processing
T5
T5 11 00 00 Nice, but laterNice, but later
T6
T6 0,50,5 55 2,52,5 Needs to be easy for nonNeeds to be easy for non--technical technical people people T7
T7 0,50,5 55 2,52,5 Needs to be easy for nonNeeds to be easy for non--technical technical people people T8
T8 22 00 00 Not at this time Not at this time T9
T9 11 33 33 SureSure
T10
T10 11 55 55 Not exactly, but it is multiNot exactly, but it is multi--useruser T11
T11 11 33 33 Simple securitySimple security T12
T12 11 55 55 CustomersCustomers
T13
T13 11 00 00 So easy we donSo easy we don’’t need trainingt need training
TFactor
Desarrollo de Software con UML
Desarrollo de Software con UML Cursada 2004Cursada 2004
Calculating the UCP
Calculating the UCP
Weighting
Weighting
Technical
Technical
Factors
Factors
Order
Order
-
-
proc
proc
system
system
TFactor
TFactor
=
=
∑
∑
(
(
TLevel
TLevel
*
*
Weight
Weight
)
)
=
=
32
32
TCF
TCF
=
=
0,6
0,6
+
+
(
(
0,01
0,01
*
*
TFactor
TFactor
)
)
TCF
TCF
=
=
0,6
0,6
+
+
(
(
0,01
0,01
*
*
32
32
)
)
=
=
0,92
0,92
Desarrollo de Software con UML
Desarrollo de Software con UML Cursada 2004Cursada 2004
Calculating the UCP
Calculating the UCP
Environmental
Environmental
Factors
Factors
Environmental
Environmental
Factor
Factor
Factor Description
Factor Description
Weight
Weight
E1
E1
Familiar with Rational Unified Process
Familiar with Rational Unified Process
1,5
1,5
E2
E2
Application experience
Application experience
0,5
0,5
E3
E3
Object
Object
-
-
oriented experience
oriented experience
1
1
E4
E4
Lead analyst capability
Lead analyst capability
0,5
0,5
E5
E5
Motivation
Motivation
1
1
E6
E6
Stable requirements
Stable requirements
2
2
E7
E7
Part
Part
-
-
time workers
time workers
-
-
1
1
E8
E8
Difficult programming language
Difficult programming language
-
-
1
1
Desarrollo de Software con UML
Desarrollo de Software con UML Cursada 2004Cursada 2004
Calculating the UCP
Calculating the UCP
Weighting
Weighting
Environmental
Environmental
Factors
Factors
•
•
Go through Table and rate each factor from 0 to 5
Go through Table and rate each factor from 0 to 5
For factors E1 through E4
For factors E1 through E4
A rating of 0 means no experience in the subject
A rating of 0 means no experience in the subject
5 means expert; 3 means average
5 means expert; 3 means average
For E5 (Motivation)
For E5 (Motivation)
0 means no motivation for the project;
0 means no motivation for the project;
5 means high motivation
5 means high motivation
For E6 (Stable Requirements)
For E6 (Stable Requirements)
0 means extremely unstable requirements;
0 means extremely unstable requirements;
5 means unchanging requirements
5 means unchanging requirements
For E7 (Part
For E7 (Part
-
-
time Workers)
time Workers)
0 means no part
0 means no part
-
-
time technical staff;
time technical staff;
5 means all part
5 means all part
-
-
time technical staff
time technical staff
For E8 (Programming Language)
For E8 (Programming Language)
0 means easy
0 means easy
-
-
to
to
-
-
use programming language;
use programming language;
5 means very difficult programming language
5 means very difficult programming language
Desarrollo de Software con UML
Desarrollo de Software con UML Cursada 2004Cursada 2004
Calculating the UCP
Calculating the UCP
Weighting
Weighting
Environmental
Environmental
Factors
Factors
•
•
Then multiply each factor´
Then multiply each factor
´s rating (
s rating (ELevel
ELevel) by its weight
) by its weight
•
•
Finally, add these products together to get a total
Finally, add these products together to get a total
(
(EFactor
EFactor)
)
Desarrollo de Software con UML
Desarrollo de Software con UML Cursada 2004Cursada 2004
Calculating the UCP
Calculating the UCP
Weighting
Weighting
Environm
Environm
.
.
Factors
Factors
Order
Order
-
-
proc
proc
system
system
Environm
Environm
.
.
Factor
Factor
Weight
Weight
ELevel
ELevel
ELevel
ELevel
*
*
Weight
Weight
Reason
Reason
E1
E1
1,5
1,5
1
1
1,5
1,5
Most of team unfamiliar
Most of team unfamiliar
E2
E2
0,5
0,5
3
3
1,5
1,5
Most of team are programmers
Most of team are programmers
E3
E3
1
1
3
3
3
3
…
…
OO programmers
OO programmers
E4
E4
0,5
0,5
5
5
2,5
2,5
The leader is really good
The leader is really good
E5
E5
1
1
5
5
5
5
Team is really eager
Team is really eager
E6
E6
2
2
5
5
10
10
We don
We don
’
’
t expect changes
t expect changes
E7
E7
-
-
1
1
0
0
0
0
Not part
Not part
-
-
timers
timers
E8
E8
-
-
1
1
3
3
-
-
3
3
We
We
’
’
re looking at Java
re looking at Java
EFactor
EFactor
=
=
∑
∑
ELevel
ELevel
*
*
Weight
Weight
20,5
20,5
Desarrollo de Software con UML
Desarrollo de Software con UML Cursada 2004Cursada 2004
Calculating the UCP
Calculating the UCP
Weighting
Weighting
Environm
Environm
.
.
Factors
Factors
Order
Order
-
-
proc
proc
system
system
EFactor
EFactor
=
=
∑
∑
(
(
ELevel
ELevel
*
*
Weight
Weight
)
)
=
=
20,5
20,5
EF
EF
=
=
1,4
1,4
+
+
(
(
-
-
0,03
0,03
*
*
EFactor
EFactor
)
)
EF
Desarrollo de Software con UML
Desarrollo de Software con UML Cursada 2004Cursada 2004
Calculating
Calculating
the
the
UCP
UCP
Calculating
Calculating
the
the
Use Case
Use Case
Points
Points
UCP
UCP
=
=
UUCP
UUCP
*
*
TCF
TCF
*
*
EF
EF
UCP
UCP
Order
Order
-
-
proc
proc
system
system
=
=
80
80
*
*
0,92
0,92
*
*
0,785
0,785
=
=
57,77
57,77
UCP provides an idea of the complexity of the
UCP provides an idea of the complexity of the
system adjusted to the technical and environmental
system adjusted to the technical and environmental
factors
factors
Desarrollo de Software con UML
Desarrollo de Software con UML Cursada 2004Cursada 2004
Estimating the Project
Estimating the Project
Estimating
Estimating
Man
Man
-
-
hours
hours
•
•
In general, Karner
In general,
Karner
suggests using
suggests using 20 man
20 man
-
-
hours per UCP
hours per UCP
Man
Man-
-hours
hours
Order
Order
-
-
proc system
proc system
=
=
57,77
57,77
*
*
20
20
= 1155,52
= 1155,52
~ 29 weeks at 40 hours a week, for one person
~ 29 weeks at 40 hours a week, for one person
Taking a small team of 6 persons working full
Taking a small team of 6 persons working full
-
-
time
time
~ 5 weeks of effort
~ 5 weeks of effort
•
•
Add some weeks for working out any team issues
Add some weeks for working out any team issues
–
–
Too many problems of communication or synchronization
Too many problems of communication or synchronization
Desarrollo de Software con UML
Desarrollo de Software con UML Cursada 2004Cursada 2004
Estimating the Project
Estimating the Project
Estimating
Estimating
Man
Man
-
-
hours
hours
•
•
Schneider & Winters suggest
Schneider & Winters suggest a refinement based on
a refinement based on
Environmental Factors
Environmental Factors
–
–
EF factors measure the experience level of your staff and
EF factors measure the experience level of your staff and
the stability of your project.
the stability of your project.
–
–
Any negatives in this area mean that you will have to spend
Any negatives in this area mean that you will have to spend
time training people or fixing problems due to instability.
time training people or fixing problems due to instability.
Desarrollo de Software con UML
Desarrollo de Software con UML Cursada 2004Cursada 2004
Estimating the Project
Estimating the Project
Estimating
Estimating
Man
Man
-
-
hours
hours
•
•
Schneider & Winters suggest a refinement based on EF
Schneider & Winters suggest a refinement based on EF
–
–
Start by Calculating TNEF:
Start by Calculating TNEF:
Count how many of E1 through E6 are below 3 (average
Count how many of E1 through E6 are below 3 (average
level value) and how many in E7 and E8 are above 3.
level value) and how many in E7 and E8 are above 3.
–
–
Then, you have to use:
Then, you have to use:
•
•
20
20
man
man
-
-
hours per UCP
hours per UCP
when TNEF ≤ 2
when TNEF ≤ 2
•
•
28
28
man
man
-
-
hours per UCP
hours per UCP
when 3 ≤ TNEF ≤ 4
when 3 ≤ TNEF ≤ 4
•
•
36
36
man
man
-
-
hours per UCP
hours per UCP
when TNEF ≥ 4
when TNEF ≥ 4
=> In this case, try very hard to change your project
=> In this case, try very hard to change your project
Desarrollo de Software con UML
Desarrollo de Software con UML Cursada 2004Cursada 2004
Calculating the UCP
Calculating the UCP
Weighting
Weighting
Environm
Environm
.
.
Factors
Factors
Order
Order
-
-
proc
proc
system
system
Environm
Environm
.
.
Factor
Factor
Weight
Weight
ELevel
ELevel
ELevel
ELevel
*
*
Weight
Weight
Reason
Reason
E1
E1
1,5
1,5
1
1
1,5
1,5
Most of team unfamiliar
Most of team unfamiliar
E2
E2
0,5
0,5
3
3
1,5
1,5
Most of team are programmers
Most of team are programmers
E3
E3
1
1
3
3
3
3
…
…
OO programmers
OO programmers
E4
E4
0,5
0,5
5
5
2,5
2,5
The leader is really good
The leader is really good
E5
E5
1
1
5
5
5
5
Team is really eager
Team is really eager
E6
E6
2
2
5
5
10
10
We don
We don
’
’
t expect changes
t expect changes
E7
E7
-
-
1
1
0
0
0
0
Not part
Not part
-
-
timers
timers
E8
E8
-
-
1
1
3
3
-
-
3
3
We
We
’
’
re looking at Java
re looking at Java
We have one EF below the average
We have one EF below the average
=> 20 man
=> 20 man
-
-
hours per UCP
hours per UCP
It is below 3
It is below 3
Desarrollo de Software con UML
Desarrollo de Software con UML Cursada 2004Cursada 2004