SlideShare a Scribd company logo
1 of 10
Resource Estimation for Objectory Projects
Gustav Karner
Objective Systems SF AB
Torshamnsgatan 39, Box 1128
164 22 Kista
email: gustav@os.se
September 17, 1993

Abstract
In order to estimate the resources needed to develop a
software system with the Objectory process, one would like
to have a model which predict the total amount of resources
early in the developing process. The model described in this
article will help you to do a prediction like that.

1. Introduction
Objectory, see Jacobson I., Christerson M., Jonsson P. and
Övergaard G. (1992), is a well defined process for
developing industrial object oriented applications. The
process is built of four different main processes which are:
•

Requirements Analysis

•

Construction

•

Testing

2. Function Points
Function Points (FP) is a common model for estimations,
proposed by Albrecht (1979). It is useful when you want to
estimate man hours in an early phase, when you only have
the specifications.
The model counts the number and complexity of (in order to
estimate the size of the system):
1.

Inputs, the number of different commands the software
will accept.

2.

Outputs, how many types of information it can generate.

3.

Inquiries, how many different sorts of question a user
can ask the system.

4.

Files, how many it can cope with simultaneously.

5.

Interfaces, the number of links it can have with other
software.

Robustness Analysis

•

software with the Objectory process. The model is based on
the Function Points.

It would be of great value if a prediction of the resources
needed for these processes for a specific project could be
done early in the developing process e.g. after the
requirements analysis. With such an early estimation, one
could more easily plan and predict for the rest of the project.
When a project is set up it is very important to know, in
advance, how much resources is needed for the project to be
completed. This kind of knowledge will help us to estimate
the cost and the lead time for the project. It will also help to
plan the use of the resources. These estimations should of
course be available as soon as possible in the project.
This paper will initially survey a model for making early
estimations called Function Points. It will then present a
model for making early estimations when developing

Every one of these items are given a value as simple, average
or complex with different weights ( W i ). The Unadjusted
Function Count (UFC) is:
5

UFC = ∑ n i * W i
i =1

where n i is the number of items of variety
for the number of items 1, items 2 etc.. and
of i .

i where i stands
W i is the weight
These are later adjusted with a technical factor which
describes the size of the technical complexity involved in the
development and implementation of the system. The TCF is
computed as:
n

TCF = C1 + C2 ∑ Fi
i=1

where

C1 = 0.65
C 2 = 0.01
Fi is the factors valued from 0 to 5. 0 if it is irrelevant and 5
if it is essential.

The Use Case Points (UCP) are the product of these three
factors. The UCPs gives an estimation of the size of the effort
to develop the system which can be mapped to man hours 1 to
complete various phases of Objectory or complete the whole
project.
The Use Case Points can also be mapped to for example the
number of classes or LOC and from that estimate man hours
needed with help from a model like the COCOMO model.
The reason to do so is that the COCOMO model does not
approximate the mapping as linear.
The weights in this article are a first approximation by people
at Objective Systems.

The Function Points are finally:

FP = UFC* TCF

3.1 UUCP - Unadjusted Use Case Point

When analysing the result we must have a statistical value
from previous measures of how many Lines Of Code (LOC)
a function point will need to be constructed. This value is
multiplied with the number of function points of the system
and we get the total amount of LOC needed. Typically one
Function Point is 110 lines of COBOL code. This resulting
value maybe used together with the COCOMO model, see
Boehm (1981), to estimate the resources needed.

To compute the UUCPs judge every actor if it is a simple,
average or complex with help from Table 1 and every use
case with help from Table 2. Only concrete actors and use
cases are counted.

This model has been very popular recently. One of this
model's greatest advantages is that it does not require a
specific way of describing the system, for example a specific
design method. The model has been criticised and some
weakness has been noted, see Symons (1988). Some
disadvantages is that function points cannot be computed
automatically, it is not objective since you have to make
many subjective decisions. This is because every input,
output, inquire, file and interfaces must be valued as simple,
average or complex and the technical factors must be valued
by a human too. Furthermore it does not take into account
any personnel factors.

Complexity

Definition

SIMPLE

An actor is simple if it represents 1
another system with a defined
application programming
interface.

AVERAGE

An actor is average if it is:

2

1. An interaction with another
system through a protocol
2. A human interaction with a
line terminal.
COMPLEX

3. Use Case Points
Our model Use Case Points is inspired by Function Points
but with the benefit of the requirements analysis in the
Objectory process. It starts with measuring the functionality
of the system based on the use case model in a count called
Unadjusted Use Case Point (UUCP). Technical factors involved in developing this functionality are assessed, similar
to the Function Points. The last step in the estimation is
however not from the Function Points and it is a new factor
called Environmental Factor proposed by the author. This
factor seems to be very important according to experienced
Objectory users.

Weight

An actor is complex if it interacts 3
through a graphical user
interface.

Table 1 Weighted actors.

Complexity

Definition

Weight

SIMPLE

A use case is simple if it has 3 or
less transactions including
alternative courses. You should
be able to realise the use case
with less than 5 analysis objects.

5

1

The first approach is an approximation that within a given
interval from 2 000 to 20 000 man hours the map can be done
linear.
AVERAGE

COMPLEX

A use case is average if it has 3
to 7 transactions including
alternative courses. You should
be able to realise the use case
with 5 to 10 analysis objects.

UUCP = ∑ ni * Wi
i =1

where

n i is the number of items of variety i .

If we do not have more information about the implementation
project environment and the environment we can use the
UUCP for our estimation. Otherwise we will adjust the
UUCP to get a better estimation.

1

End user efficiency (on-line).

1

F4

Complex internal processing.

1

F5

Reusability, the code must be able to
reuse in other applications.

1

Installation ease.

0.5

F7

Operational ease, usability.

0.5

F8

Portability.

2

Changeability.

1

F10

6

Application performance objectives,
in either response or throughput.

F9

We sum the weights of the actors and the use cases together
to get the UUCP.

2

F6

Table 2 Weighted use cases.

Distributed systems.

F3

A use case is complex if it has
15
more than 7 transactions
including alternative courses.
The use case should at least need
10 analysis objects to be realised.

F1
F2

10

Concurrency.

1

F11

Special security features.

1

F12

Provide direct access for third parties

1

F13

Special user training facilities

1

Table 3 Factors contributing to complexity.

3.2 TCF - Technical Complexity Factor

Fi is a factor which is rated on a scale 0, 1, 2, 3, 4 and 5. 0

The UUCP is weighted with the technical complexity factor
(TCF), which vary depending on how difficult the system
will be to construct. The TCF is nearly the same as for
Function Points, the differences are that we have added some
and removed some of the factors and we have weighted the
factors differently based on experience in Objectory projects.

means that it is irrelevant and 5 means it is essential. If the
factor is not important nor irrelevant it will have the value 3.
If all factors have the value 3 the TCF ≈ 1.

Symons (1988) define a criterion for a technical factor:

We weight the UCP with the Environmental Factor (EF)
which help us to estimate how efficient our project is. This
factor is on the same form as the technical factor.

"A system requirement other than those concerned with
information content intrinsic to and affecting the size of the
task, but not arising from the project environment"
The constants and weights are proposed by Albrecht (1979)
but C 1 is decreased from 0.65 to 0.6 to fit with the numbers
of factors. The TCF is computed like this:

3.3 EF - Environmental Factor

The constants are early estimations. They seem to be
reasonable, based on interviews with experienced Objectory
users at Objective Systems.
8

TCF = C 1 + C 2 ∑ Fi * W i

13

EF = C1 + C2 ∑ Fi * Wi

i =1

where

where

C1 = 1.4

C1 = 0.6

C 2 = -0.03

C 2 = 0.01

and

i =1

and

Fi
Fi

Factors Contributing to Complexity

Wi

Factors contributing to efficiency

Wi
F1

Familiar with Objectory

1.5

4.1 The Measurements

F2

Part time workers

-1

Data from 3 projects is used to validate the approach above.
Let us call these projects A, B and C.

F3

Analyst capability

0.5

F4

Application experience

0.5

Project A

F5

Object oriented experience

1

F6

Motivation

1

F7

Difficult programming language

-1

The project developed an information system for operation
support of performance management in telecommunication
networks. A quite well defined project with only a few
people who was newcomers to Objectory, but they were very
motivated.

F8

Stable requirements

2

Table 4 Factors contributing to efficiency.

Fi is a factor which is rated on a scale 0, 1, 2, 3, 4 and 5. 0
means that it is irrelevant and 5 means it is essential. If the
factor is not important nor irrelevant it will have the value 3.
If all factors have the value 3 the EF ≈ 1.
3.4 The Result and Analysis
Finally the Use Case Points is calculated as:

UCP = UUCP * TCF * EF .
Based on the calculated UCPs we look at statistics from
earlier projects to see how much resources is needed per
UCP. After that we multiply the number of UCP for our
project with the Mean Resources needed per UCP (MR). We
also use the Standard Deviation of the MR (SDMR) to see
how good the estimations are.
Different MR and SDMR can be used for different Objectory
processes (for example specific MR and SDMR for the
robustness analysis) instead of the whole development. We
also can have different statistics for different application
domains, for example one for technical applications and one
for MIS applications, to get a better estimation.
The analysis of the result is approximated as linear. This
seems to be a good enough approximation for most of the
projects. The institution tells us that the curve should be
exponential since large projects typically have a lower
productivity in general.
// More tomorrow!!

4. Projects Estimated
The model has been applied on a few projects of various size.
The result is presented in this chapter.

Unadjusted Use Case Points:
Number of Actors: 5 average actors
Number of Use Cases: 10 average use cases
UUCP = 110
Technical Complexity Factor:
All the factors have the default value 3.
TCF = 1
Environmental Factor:
Familiar with the method = 1.
Motivation = 5.
Stable requirements = 4.
Rest of the factors have the default value 3.
EF = 0.975
UCP = UUCP * TCF * EF = 107.25
Resources Used:
Man Hours to complete the project: 2150 h.
MR project A = 2150 / 107.25 ≈ 20.0

Project B
The project developed a LAN management system. The
requirements were unstable. The developers had no previous
experience of Objectory.
Unadjusted Use Case Points:
Number of Actors: 5 average actors
Number of Use Cases: 50 average use cases
UUCP = 510
Technical Complexity Factor:
All the factors have the default value 3.
TCF = 1
Environmental Factor:
Familiar with the method = 1.
Stable requirements = 1.
Rest of the factors have the default value 3.
EF = 1.175
UCP = UUCP * TCF * EF ≈ 599.25
Resources Used:
Man Hours to complete the project: 12 500 h.

We can see from the plot that one UCP need 10000/540 ≈ 20
man hours to be completed.

MR project B = 12 500 / 599.25 ≈ 20.9

The linear approximation gives us:

y = α + β (x − x ), x =
Project C
The project developed a telecommunication system. The
team did not know much about Objectory.
Unadjusted Use Case Points:
Number of Actors: 5 average actors
Number of Use Cases: 15 average use cases
UUCP = 160

1
x ≈ 298.2
n∑ i

α * = y ≈ 6.683
β* =

∑ (x − x )(y − y ) ≈ 0.01981
∑ (x − x )
i

i

2

i

y = 6.683 + 0.01981(x − 298.2) = 0.01981x + 0.7769
Q0 = ∑[y i − α * − β *(x i − x )]2 ≈ 54.64

Technical Complexity Factor:
All the factors have the default value 3.
TCF = 1

s=

Environmental Factor:
Familiar with the method = 1.
Application experience = 5.
Stable requirements = 2.
Difficult programming language = 5
Object oriented experience = 2.
Rest of the factors have the default value 3.
EF = 1.175

Q0
≈ 7.392
n−2

t-distribution with the probability that the values will be
within the interval of 90 % gives us

t α / 2 (n − 2) = t 0.05 (1) = 6.31
the interval for

α:

s
= 4.268
n
I α = ( α * ±t 0. 05 (1) * d) ≈ 6.683 ± 7.348 ⇒
d=

UCP = UUCP * TCF * EF ≈ 188.0
Resources Used:
Man Hours to complete the project: 5400 h.

[−0.665,14.03]

MR project C = 5400 / 188 ≈ 28.7

the interval for

β:

s

4.2 The Result

d=

The result is that there seems to be a correlation between
UCPs and resources needed to finish a project. In figure 1
you can see the UCP plotted against the number of man hours
for the projects mentioned here.

I α = (β * ±t 0.05 (1) * d) ≈ 0.01981 ± 0.1250 ⇒
[−0.1052,0.1448]

∑ (x i − x )2

≈ 0.01981

The intervals are much too wide to tell us anything. That is
because the number of measured projects were too few.

Th o u s a n d s o f
ma n h o u rs
P ro ject B
14
12

5. Conclusions

10
8
6

² ma n h o u rs =
10 0 0 0

P ro ject C

4
2

P ro ject A
10 0

200

² TS T = 5 40
300

40 0

500

600

U s e Ca s e P o in ts
(U CP )

Figure 1 Man hours as a function of UCPs.

We don not know if the model for estimating Objectory
projects based on the use case model and some adjustments
for technical and environmental factors works. That is
because we have a too few projects to measure from so far.
The work will continue with metrics from many more
projects, because we still believe that this model could work
a an estimation method.
6. Further Work
More data from projects need to be gathered, to adjust the
model, weights and the constants. Objective Systems will
have a database where everybody who is using Objectory in a
project can send their data based on experience.
Anonymously will be guaranteed if requested. Please, send
an email to magnus@os.se with the form in appendix A filled
in.

References
Albrecht A. J. (1979). Measuring application development
productivity. Proc. of IBM Applic. Dev. Joint
SHARE/GUIDE Symposium, Monterey, CA, 1979, pp. 8392.

Boehm B. W. (1981). Software engineering economics:
Prentice-Hall, New York, 1981.

Jacobson I., Christerson M., Jonsson P. and Övergaard G.
(1992). Object-Oriented Software Engineering: AddisonWesley.

Symons C. R. (1988). Function Point Analysis : Difficulties
and improvements. IEEE Transactions on Software
Engineering, Vol. SE-14, No. 1. Jan. 1988.
Appendix A: Metrics Used to Adjust the Estimation Model
Actors
Complexity

Definition

SIMPLE

An actor is simple if it represents
another system with a defined
application programming
interface.

AVERAGE

Number of

An actor is average if it is:
1. An interaction with another
system through a protocol
2. A human interaction with a
line terminal.

COMPLEX

An actor is complex if it interacts
through a graphical user
interface.

Uses Cases
Complexity

Definition

SIMPLE

A use case is simple if it has 3 or
less transactions including
alternative courses. You should
be able to realise the use case
with less than 5 analysis objects.

AVERAGE

A use case is average if it has 3
to 7 transactions including
alternative courses. You should
be able to realise the use case
with 5 to 10 analysis objects.

COMPLEX

A use case is complex if it has
more than 7 transactions
including alternative courses.
The use case should at least need
10 analysis objects to be realised.

Technical Complexity Factor

Number of
(If you can not fill in this factors for any reason use the default value 3 for every factors)

Fi

Factors Contributing to Complexity

F1

Distributed systems.

F2

Application performance objectives,
in either response or throughput.

F3

End user efficiency (on-line).

F4

Complex internal processing.

F5

Reusability, the code must be able to
reuse in other applications.

F6

Installation ease.

F7

Operational ease, usability.

F8

Portability.

F9

Changeability.

F10

Concurrency.

F11

Special security features.

F12

Provide direct access for third parties

F13

Special user training facilities

0..5

Environmental Factor
(If you can not fill in this factors for any reason use the default value 3 for every factors)

Fi

Factors contributing to efficiency

F1

Familiar with Objectory

F2

Part time workers

F3

Analyst capability

F4

Application experience

F5

Object oriented experience

F6

Motivation

F7

Difficult programming language

F8

Stable requirements

0..5

Resources used
Process

Man Hours
Karner   resource estimation for objectory projects
Karner   resource estimation for objectory projects

More Related Content

What's hot

Python algorithm efficency
Python algorithm efficencyPython algorithm efficency
Python algorithm efficencyToniyaP1
 
Interior Dual Optimization Software Engineering with Applications in BCS Elec...
Interior Dual Optimization Software Engineering with Applications in BCS Elec...Interior Dual Optimization Software Engineering with Applications in BCS Elec...
Interior Dual Optimization Software Engineering with Applications in BCS Elec...BRNSS Publication Hub
 
Data Abstraction (Chapter 1)
Data Abstraction (Chapter 1)Data Abstraction (Chapter 1)
Data Abstraction (Chapter 1)LeulTewolde
 
On the Performance of the Pareto Set Pursuing (PSP) Method for Mixed-Variable...
On the Performance of the Pareto Set Pursuing (PSP) Method for Mixed-Variable...On the Performance of the Pareto Set Pursuing (PSP) Method for Mixed-Variable...
On the Performance of the Pareto Set Pursuing (PSP) Method for Mixed-Variable...Amir Ziai
 
Optimization problems and algorithms
Optimization problems and  algorithmsOptimization problems and  algorithms
Optimization problems and algorithmsAboul Ella Hassanien
 
Data Structures - Lecture 1 [introduction]
Data Structures - Lecture 1 [introduction]Data Structures - Lecture 1 [introduction]
Data Structures - Lecture 1 [introduction]Muhammad Hammad Waseem
 
Algorithm and Data Structures - Basic of IT Problem Solving
Algorithm and Data Structures - Basic of IT Problem SolvingAlgorithm and Data Structures - Basic of IT Problem Solving
Algorithm and Data Structures - Basic of IT Problem Solvingcoolpie
 
02 intel v_tune_session_02
02 intel v_tune_session_0202 intel v_tune_session_02
02 intel v_tune_session_02Vivek chan
 
1.1 the introduction of design and analysis of algorithm
1.1 the introduction of design and analysis of algorithm1.1 the introduction of design and analysis of algorithm
1.1 the introduction of design and analysis of algorithmMohammed khaja Jamaluddin
 
Intel Cluster Poisson Solver Library
Intel Cluster Poisson Solver LibraryIntel Cluster Poisson Solver Library
Intel Cluster Poisson Solver LibraryIlya Kryukov
 
Algorithmic problem solving
Algorithmic problem solvingAlgorithmic problem solving
Algorithmic problem solvingPrabhakaran V M
 
Design & Analysis of Algorithms Lecture Notes
Design & Analysis of Algorithms Lecture NotesDesign & Analysis of Algorithms Lecture Notes
Design & Analysis of Algorithms Lecture NotesFellowBuddy.com
 
Robust and Tuneable Family of Gossiping Algorithms
Robust and Tuneable Family of Gossiping AlgorithmsRobust and Tuneable Family of Gossiping Algorithms
Robust and Tuneable Family of Gossiping AlgorithmsVincenzo De Florio
 
AN OPTIMAL FUZZY LOGIC SYSTEM FOR A NONLINEAR DYNAMIC SYSTEM USING A FUZZY BA...
AN OPTIMAL FUZZY LOGIC SYSTEM FOR A NONLINEAR DYNAMIC SYSTEM USING A FUZZY BA...AN OPTIMAL FUZZY LOGIC SYSTEM FOR A NONLINEAR DYNAMIC SYSTEM USING A FUZZY BA...
AN OPTIMAL FUZZY LOGIC SYSTEM FOR A NONLINEAR DYNAMIC SYSTEM USING A FUZZY BA...IJCNCJournal
 
Feature Selection Techniques for Software Fault Prediction (Summary)
Feature Selection Techniques for Software Fault Prediction (Summary)Feature Selection Techniques for Software Fault Prediction (Summary)
Feature Selection Techniques for Software Fault Prediction (Summary)SungdoGu
 
SigOpt_Bayesian_Optimization_Primer
SigOpt_Bayesian_Optimization_PrimerSigOpt_Bayesian_Optimization_Primer
SigOpt_Bayesian_Optimization_PrimerIan Dewancker
 
ANN Based Prediction Model as a Condition Monitoring Tool for Machine Tools
ANN Based Prediction Model as a Condition Monitoring Tool for Machine ToolsANN Based Prediction Model as a Condition Monitoring Tool for Machine Tools
ANN Based Prediction Model as a Condition Monitoring Tool for Machine ToolsIJMER
 
Programming using MPI and OpenMP
Programming using MPI and OpenMPProgramming using MPI and OpenMP
Programming using MPI and OpenMPDivya Tiwari
 

What's hot (19)

Python algorithm efficency
Python algorithm efficencyPython algorithm efficency
Python algorithm efficency
 
Interior Dual Optimization Software Engineering with Applications in BCS Elec...
Interior Dual Optimization Software Engineering with Applications in BCS Elec...Interior Dual Optimization Software Engineering with Applications in BCS Elec...
Interior Dual Optimization Software Engineering with Applications in BCS Elec...
 
Data Abstraction (Chapter 1)
Data Abstraction (Chapter 1)Data Abstraction (Chapter 1)
Data Abstraction (Chapter 1)
 
On the Performance of the Pareto Set Pursuing (PSP) Method for Mixed-Variable...
On the Performance of the Pareto Set Pursuing (PSP) Method for Mixed-Variable...On the Performance of the Pareto Set Pursuing (PSP) Method for Mixed-Variable...
On the Performance of the Pareto Set Pursuing (PSP) Method for Mixed-Variable...
 
Optimization problems and algorithms
Optimization problems and  algorithmsOptimization problems and  algorithms
Optimization problems and algorithms
 
Data Structures - Lecture 1 [introduction]
Data Structures - Lecture 1 [introduction]Data Structures - Lecture 1 [introduction]
Data Structures - Lecture 1 [introduction]
 
Algorithm and Data Structures - Basic of IT Problem Solving
Algorithm and Data Structures - Basic of IT Problem SolvingAlgorithm and Data Structures - Basic of IT Problem Solving
Algorithm and Data Structures - Basic of IT Problem Solving
 
02 intel v_tune_session_02
02 intel v_tune_session_0202 intel v_tune_session_02
02 intel v_tune_session_02
 
1.1 the introduction of design and analysis of algorithm
1.1 the introduction of design and analysis of algorithm1.1 the introduction of design and analysis of algorithm
1.1 the introduction of design and analysis of algorithm
 
Intel Cluster Poisson Solver Library
Intel Cluster Poisson Solver LibraryIntel Cluster Poisson Solver Library
Intel Cluster Poisson Solver Library
 
Algorithmic problem solving
Algorithmic problem solvingAlgorithmic problem solving
Algorithmic problem solving
 
mlsys_portrait
mlsys_portraitmlsys_portrait
mlsys_portrait
 
Design & Analysis of Algorithms Lecture Notes
Design & Analysis of Algorithms Lecture NotesDesign & Analysis of Algorithms Lecture Notes
Design & Analysis of Algorithms Lecture Notes
 
Robust and Tuneable Family of Gossiping Algorithms
Robust and Tuneable Family of Gossiping AlgorithmsRobust and Tuneable Family of Gossiping Algorithms
Robust and Tuneable Family of Gossiping Algorithms
 
AN OPTIMAL FUZZY LOGIC SYSTEM FOR A NONLINEAR DYNAMIC SYSTEM USING A FUZZY BA...
AN OPTIMAL FUZZY LOGIC SYSTEM FOR A NONLINEAR DYNAMIC SYSTEM USING A FUZZY BA...AN OPTIMAL FUZZY LOGIC SYSTEM FOR A NONLINEAR DYNAMIC SYSTEM USING A FUZZY BA...
AN OPTIMAL FUZZY LOGIC SYSTEM FOR A NONLINEAR DYNAMIC SYSTEM USING A FUZZY BA...
 
Feature Selection Techniques for Software Fault Prediction (Summary)
Feature Selection Techniques for Software Fault Prediction (Summary)Feature Selection Techniques for Software Fault Prediction (Summary)
Feature Selection Techniques for Software Fault Prediction (Summary)
 
SigOpt_Bayesian_Optimization_Primer
SigOpt_Bayesian_Optimization_PrimerSigOpt_Bayesian_Optimization_Primer
SigOpt_Bayesian_Optimization_Primer
 
ANN Based Prediction Model as a Condition Monitoring Tool for Machine Tools
ANN Based Prediction Model as a Condition Monitoring Tool for Machine ToolsANN Based Prediction Model as a Condition Monitoring Tool for Machine Tools
ANN Based Prediction Model as a Condition Monitoring Tool for Machine Tools
 
Programming using MPI and OpenMP
Programming using MPI and OpenMPProgramming using MPI and OpenMP
Programming using MPI and OpenMP
 

Viewers also liked

Ultra Corporation Products
Ultra Corporation ProductsUltra Corporation Products
Ultra Corporation ProductsUltracorporation
 
Why a Paint Color Consultation is Important
Why a Paint Color Consultation is ImportantWhy a Paint Color Consultation is Important
Why a Paint Color Consultation is ImportantPaint America Inc.
 
ppt on " DabbaWallas"
 ppt on " DabbaWallas" ppt on " DabbaWallas"
ppt on " DabbaWallas"TEJVEER RUHIL
 
Mi horario by ana wilson
Mi horario by ana wilsonMi horario by ana wilson
Mi horario by ana wilsonawilson634
 
“Sit back and Watch the Magic Happen”
“Sit back and Watch the Magic Happen”“Sit back and Watch the Magic Happen”
“Sit back and Watch the Magic Happen”Paint America Inc.
 
MAGAZINE IES ALBÈNIZ
MAGAZINE IES ALBÈNIZMAGAZINE IES ALBÈNIZ
MAGAZINE IES ALBÈNIZnoelmaster
 
Bellevue Pressure Washing Company
Bellevue Pressure Washing Company  Bellevue Pressure Washing Company
Bellevue Pressure Washing Company Paint America Inc.
 
The Role of Color in Your Life
The Role of Color in Your LifeThe Role of Color in Your Life
The Role of Color in Your LifePaint America Inc.
 
ntensive Care Medicine Trainees’ experience of Percutaneous Dilatational Trac...
ntensive Care Medicine Trainees’ experience of Percutaneous Dilatational Trac...ntensive Care Medicine Trainees’ experience of Percutaneous Dilatational Trac...
ntensive Care Medicine Trainees’ experience of Percutaneous Dilatational Trac...NHS
 
Methaemoglobinaemia a case study
Methaemoglobinaemia   a case studyMethaemoglobinaemia   a case study
Methaemoglobinaemia a case studyNHS
 
Disciplinary procedures
Disciplinary proceduresDisciplinary procedures
Disciplinary proceduresTEJVEER RUHIL
 

Viewers also liked (15)

Ultra Corporation Products
Ultra Corporation ProductsUltra Corporation Products
Ultra Corporation Products
 
Home Paint Color Consultation
Home Paint Color ConsultationHome Paint Color Consultation
Home Paint Color Consultation
 
Why a Paint Color Consultation is Important
Why a Paint Color Consultation is ImportantWhy a Paint Color Consultation is Important
Why a Paint Color Consultation is Important
 
Referred by a Loyal Client
Referred by a Loyal ClientReferred by a Loyal Client
Referred by a Loyal Client
 
ppt on " DabbaWallas"
 ppt on " DabbaWallas" ppt on " DabbaWallas"
ppt on " DabbaWallas"
 
Mi horario by ana wilson
Mi horario by ana wilsonMi horario by ana wilson
Mi horario by ana wilson
 
“Sit back and Watch the Magic Happen”
“Sit back and Watch the Magic Happen”“Sit back and Watch the Magic Happen”
“Sit back and Watch the Magic Happen”
 
MAGAZINE IES ALBÈNIZ
MAGAZINE IES ALBÈNIZMAGAZINE IES ALBÈNIZ
MAGAZINE IES ALBÈNIZ
 
Garoa morales eskeletoa
Garoa morales eskeletoaGaroa morales eskeletoa
Garoa morales eskeletoa
 
Bellevue Pressure Washing Company
Bellevue Pressure Washing Company  Bellevue Pressure Washing Company
Bellevue Pressure Washing Company
 
The Role of Color in Your Life
The Role of Color in Your LifeThe Role of Color in Your Life
The Role of Color in Your Life
 
ntensive Care Medicine Trainees’ experience of Percutaneous Dilatational Trac...
ntensive Care Medicine Trainees’ experience of Percutaneous Dilatational Trac...ntensive Care Medicine Trainees’ experience of Percutaneous Dilatational Trac...
ntensive Care Medicine Trainees’ experience of Percutaneous Dilatational Trac...
 
Methaemoglobinaemia a case study
Methaemoglobinaemia   a case studyMethaemoglobinaemia   a case study
Methaemoglobinaemia a case study
 
Mutual funds
Mutual  fundsMutual  funds
Mutual funds
 
Disciplinary procedures
Disciplinary proceduresDisciplinary procedures
Disciplinary procedures
 

Similar to Karner resource estimation for objectory projects

Use case point ( Software Estimation Technique)
Use case point ( Software Estimation Technique)Use case point ( Software Estimation Technique)
Use case point ( Software Estimation Technique)Punjab University
 
Chapter 1 Data structure.pptx
Chapter 1 Data structure.pptxChapter 1 Data structure.pptx
Chapter 1 Data structure.pptxwondmhunegn
 
Software estimation techniques
Software estimation techniquesSoftware estimation techniques
Software estimation techniquesTan Tran
 
Loc and function point
Loc and function pointLoc and function point
Loc and function pointMitali Chugh
 
Introduction to Data Structure and algorithm.pptx
Introduction to Data Structure and algorithm.pptxIntroduction to Data Structure and algorithm.pptx
Introduction to Data Structure and algorithm.pptxesuEthopi
 
software effort estimation
 software effort estimation software effort estimation
software effort estimationBesharam Dil
 
Software Engineering Fundamentals in Computer Science
Software Engineering Fundamentals in Computer ScienceSoftware Engineering Fundamentals in Computer Science
Software Engineering Fundamentals in Computer ScienceArti Parab Academics
 
Cs 568 Spring 10 Lecture 5 Estimation
Cs 568 Spring 10  Lecture 5 EstimationCs 568 Spring 10  Lecture 5 Estimation
Cs 568 Spring 10 Lecture 5 EstimationLawrence Bernstein
 
Data Structure and Algorithm chapter two, This material is for Data Structure...
Data Structure and Algorithm chapter two, This material is for Data Structure...Data Structure and Algorithm chapter two, This material is for Data Structure...
Data Structure and Algorithm chapter two, This material is for Data Structure...bekidea
 
Oo estimation through automation of the predictive object points sizing metric
Oo estimation through automation of the predictive object points sizing metricOo estimation through automation of the predictive object points sizing metric
Oo estimation through automation of the predictive object points sizing metricIAEME Publication
 
Benchmark methods to analyze embedded processors and systems
Benchmark methods to analyze embedded processors and systemsBenchmark methods to analyze embedded processors and systems
Benchmark methods to analyze embedded processors and systemsXMOS
 
operation research notes
operation research notesoperation research notes
operation research notesRenu Thakur
 

Similar to Karner resource estimation for objectory projects (20)

501 183-191
501 183-191501 183-191
501 183-191
 
Use case point ( Software Estimation Technique)
Use case point ( Software Estimation Technique)Use case point ( Software Estimation Technique)
Use case point ( Software Estimation Technique)
 
Chapter 1 Data structure.pptx
Chapter 1 Data structure.pptxChapter 1 Data structure.pptx
Chapter 1 Data structure.pptx
 
Costing ass4
Costing ass4Costing ass4
Costing ass4
 
Cost effort.ppt
Cost effort.pptCost effort.ppt
Cost effort.ppt
 
Software estimation techniques
Software estimation techniquesSoftware estimation techniques
Software estimation techniques
 
Loc and function point
Loc and function pointLoc and function point
Loc and function point
 
Hh3512801283
Hh3512801283Hh3512801283
Hh3512801283
 
COCOMO MODEL
COCOMO MODELCOCOMO MODEL
COCOMO MODEL
 
Introduction to Data Structure and algorithm.pptx
Introduction to Data Structure and algorithm.pptxIntroduction to Data Structure and algorithm.pptx
Introduction to Data Structure and algorithm.pptx
 
software effort estimation
 software effort estimation software effort estimation
software effort estimation
 
Estimation
EstimationEstimation
Estimation
 
Software Engineering Fundamentals in Computer Science
Software Engineering Fundamentals in Computer ScienceSoftware Engineering Fundamentals in Computer Science
Software Engineering Fundamentals in Computer Science
 
Chapter 12
Chapter 12Chapter 12
Chapter 12
 
Cs 568 Spring 10 Lecture 5 Estimation
Cs 568 Spring 10  Lecture 5 EstimationCs 568 Spring 10  Lecture 5 Estimation
Cs 568 Spring 10 Lecture 5 Estimation
 
D017311724
D017311724D017311724
D017311724
 
Data Structure and Algorithm chapter two, This material is for Data Structure...
Data Structure and Algorithm chapter two, This material is for Data Structure...Data Structure and Algorithm chapter two, This material is for Data Structure...
Data Structure and Algorithm chapter two, This material is for Data Structure...
 
Oo estimation through automation of the predictive object points sizing metric
Oo estimation through automation of the predictive object points sizing metricOo estimation through automation of the predictive object points sizing metric
Oo estimation through automation of the predictive object points sizing metric
 
Benchmark methods to analyze embedded processors and systems
Benchmark methods to analyze embedded processors and systemsBenchmark methods to analyze embedded processors and systems
Benchmark methods to analyze embedded processors and systems
 
operation research notes
operation research notesoperation research notes
operation research notes
 

Recently uploaded

Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 

Recently uploaded (20)

Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 

Karner resource estimation for objectory projects

  • 1. Resource Estimation for Objectory Projects Gustav Karner Objective Systems SF AB Torshamnsgatan 39, Box 1128 164 22 Kista email: gustav@os.se September 17, 1993 Abstract In order to estimate the resources needed to develop a software system with the Objectory process, one would like to have a model which predict the total amount of resources early in the developing process. The model described in this article will help you to do a prediction like that. 1. Introduction Objectory, see Jacobson I., Christerson M., Jonsson P. and Övergaard G. (1992), is a well defined process for developing industrial object oriented applications. The process is built of four different main processes which are: • Requirements Analysis • Construction • Testing 2. Function Points Function Points (FP) is a common model for estimations, proposed by Albrecht (1979). It is useful when you want to estimate man hours in an early phase, when you only have the specifications. The model counts the number and complexity of (in order to estimate the size of the system): 1. Inputs, the number of different commands the software will accept. 2. Outputs, how many types of information it can generate. 3. Inquiries, how many different sorts of question a user can ask the system. 4. Files, how many it can cope with simultaneously. 5. Interfaces, the number of links it can have with other software. Robustness Analysis • software with the Objectory process. The model is based on the Function Points. It would be of great value if a prediction of the resources needed for these processes for a specific project could be done early in the developing process e.g. after the requirements analysis. With such an early estimation, one could more easily plan and predict for the rest of the project. When a project is set up it is very important to know, in advance, how much resources is needed for the project to be completed. This kind of knowledge will help us to estimate the cost and the lead time for the project. It will also help to plan the use of the resources. These estimations should of course be available as soon as possible in the project. This paper will initially survey a model for making early estimations called Function Points. It will then present a model for making early estimations when developing Every one of these items are given a value as simple, average or complex with different weights ( W i ). The Unadjusted Function Count (UFC) is: 5 UFC = ∑ n i * W i i =1 where n i is the number of items of variety for the number of items 1, items 2 etc.. and of i . i where i stands W i is the weight
  • 2. These are later adjusted with a technical factor which describes the size of the technical complexity involved in the development and implementation of the system. The TCF is computed as: n TCF = C1 + C2 ∑ Fi i=1 where C1 = 0.65 C 2 = 0.01 Fi is the factors valued from 0 to 5. 0 if it is irrelevant and 5 if it is essential. The Use Case Points (UCP) are the product of these three factors. The UCPs gives an estimation of the size of the effort to develop the system which can be mapped to man hours 1 to complete various phases of Objectory or complete the whole project. The Use Case Points can also be mapped to for example the number of classes or LOC and from that estimate man hours needed with help from a model like the COCOMO model. The reason to do so is that the COCOMO model does not approximate the mapping as linear. The weights in this article are a first approximation by people at Objective Systems. The Function Points are finally: FP = UFC* TCF 3.1 UUCP - Unadjusted Use Case Point When analysing the result we must have a statistical value from previous measures of how many Lines Of Code (LOC) a function point will need to be constructed. This value is multiplied with the number of function points of the system and we get the total amount of LOC needed. Typically one Function Point is 110 lines of COBOL code. This resulting value maybe used together with the COCOMO model, see Boehm (1981), to estimate the resources needed. To compute the UUCPs judge every actor if it is a simple, average or complex with help from Table 1 and every use case with help from Table 2. Only concrete actors and use cases are counted. This model has been very popular recently. One of this model's greatest advantages is that it does not require a specific way of describing the system, for example a specific design method. The model has been criticised and some weakness has been noted, see Symons (1988). Some disadvantages is that function points cannot be computed automatically, it is not objective since you have to make many subjective decisions. This is because every input, output, inquire, file and interfaces must be valued as simple, average or complex and the technical factors must be valued by a human too. Furthermore it does not take into account any personnel factors. Complexity Definition SIMPLE An actor is simple if it represents 1 another system with a defined application programming interface. AVERAGE An actor is average if it is: 2 1. An interaction with another system through a protocol 2. A human interaction with a line terminal. COMPLEX 3. Use Case Points Our model Use Case Points is inspired by Function Points but with the benefit of the requirements analysis in the Objectory process. It starts with measuring the functionality of the system based on the use case model in a count called Unadjusted Use Case Point (UUCP). Technical factors involved in developing this functionality are assessed, similar to the Function Points. The last step in the estimation is however not from the Function Points and it is a new factor called Environmental Factor proposed by the author. This factor seems to be very important according to experienced Objectory users. Weight An actor is complex if it interacts 3 through a graphical user interface. Table 1 Weighted actors. Complexity Definition Weight SIMPLE A use case is simple if it has 3 or less transactions including alternative courses. You should be able to realise the use case with less than 5 analysis objects. 5 1 The first approach is an approximation that within a given interval from 2 000 to 20 000 man hours the map can be done linear.
  • 3. AVERAGE COMPLEX A use case is average if it has 3 to 7 transactions including alternative courses. You should be able to realise the use case with 5 to 10 analysis objects. UUCP = ∑ ni * Wi i =1 where n i is the number of items of variety i . If we do not have more information about the implementation project environment and the environment we can use the UUCP for our estimation. Otherwise we will adjust the UUCP to get a better estimation. 1 End user efficiency (on-line). 1 F4 Complex internal processing. 1 F5 Reusability, the code must be able to reuse in other applications. 1 Installation ease. 0.5 F7 Operational ease, usability. 0.5 F8 Portability. 2 Changeability. 1 F10 6 Application performance objectives, in either response or throughput. F9 We sum the weights of the actors and the use cases together to get the UUCP. 2 F6 Table 2 Weighted use cases. Distributed systems. F3 A use case is complex if it has 15 more than 7 transactions including alternative courses. The use case should at least need 10 analysis objects to be realised. F1 F2 10 Concurrency. 1 F11 Special security features. 1 F12 Provide direct access for third parties 1 F13 Special user training facilities 1 Table 3 Factors contributing to complexity. 3.2 TCF - Technical Complexity Factor Fi is a factor which is rated on a scale 0, 1, 2, 3, 4 and 5. 0 The UUCP is weighted with the technical complexity factor (TCF), which vary depending on how difficult the system will be to construct. The TCF is nearly the same as for Function Points, the differences are that we have added some and removed some of the factors and we have weighted the factors differently based on experience in Objectory projects. means that it is irrelevant and 5 means it is essential. If the factor is not important nor irrelevant it will have the value 3. If all factors have the value 3 the TCF ≈ 1. Symons (1988) define a criterion for a technical factor: We weight the UCP with the Environmental Factor (EF) which help us to estimate how efficient our project is. This factor is on the same form as the technical factor. "A system requirement other than those concerned with information content intrinsic to and affecting the size of the task, but not arising from the project environment" The constants and weights are proposed by Albrecht (1979) but C 1 is decreased from 0.65 to 0.6 to fit with the numbers of factors. The TCF is computed like this: 3.3 EF - Environmental Factor The constants are early estimations. They seem to be reasonable, based on interviews with experienced Objectory users at Objective Systems. 8 TCF = C 1 + C 2 ∑ Fi * W i 13 EF = C1 + C2 ∑ Fi * Wi i =1 where where C1 = 1.4 C1 = 0.6 C 2 = -0.03 C 2 = 0.01 and i =1 and Fi Fi Factors Contributing to Complexity Wi Factors contributing to efficiency Wi
  • 4. F1 Familiar with Objectory 1.5 4.1 The Measurements F2 Part time workers -1 Data from 3 projects is used to validate the approach above. Let us call these projects A, B and C. F3 Analyst capability 0.5 F4 Application experience 0.5 Project A F5 Object oriented experience 1 F6 Motivation 1 F7 Difficult programming language -1 The project developed an information system for operation support of performance management in telecommunication networks. A quite well defined project with only a few people who was newcomers to Objectory, but they were very motivated. F8 Stable requirements 2 Table 4 Factors contributing to efficiency. Fi is a factor which is rated on a scale 0, 1, 2, 3, 4 and 5. 0 means that it is irrelevant and 5 means it is essential. If the factor is not important nor irrelevant it will have the value 3. If all factors have the value 3 the EF ≈ 1. 3.4 The Result and Analysis Finally the Use Case Points is calculated as: UCP = UUCP * TCF * EF . Based on the calculated UCPs we look at statistics from earlier projects to see how much resources is needed per UCP. After that we multiply the number of UCP for our project with the Mean Resources needed per UCP (MR). We also use the Standard Deviation of the MR (SDMR) to see how good the estimations are. Different MR and SDMR can be used for different Objectory processes (for example specific MR and SDMR for the robustness analysis) instead of the whole development. We also can have different statistics for different application domains, for example one for technical applications and one for MIS applications, to get a better estimation. The analysis of the result is approximated as linear. This seems to be a good enough approximation for most of the projects. The institution tells us that the curve should be exponential since large projects typically have a lower productivity in general. // More tomorrow!! 4. Projects Estimated The model has been applied on a few projects of various size. The result is presented in this chapter. Unadjusted Use Case Points: Number of Actors: 5 average actors Number of Use Cases: 10 average use cases UUCP = 110 Technical Complexity Factor: All the factors have the default value 3. TCF = 1 Environmental Factor: Familiar with the method = 1. Motivation = 5. Stable requirements = 4. Rest of the factors have the default value 3. EF = 0.975 UCP = UUCP * TCF * EF = 107.25 Resources Used: Man Hours to complete the project: 2150 h. MR project A = 2150 / 107.25 ≈ 20.0 Project B The project developed a LAN management system. The requirements were unstable. The developers had no previous experience of Objectory. Unadjusted Use Case Points: Number of Actors: 5 average actors Number of Use Cases: 50 average use cases UUCP = 510 Technical Complexity Factor: All the factors have the default value 3. TCF = 1 Environmental Factor: Familiar with the method = 1. Stable requirements = 1. Rest of the factors have the default value 3. EF = 1.175 UCP = UUCP * TCF * EF ≈ 599.25
  • 5. Resources Used: Man Hours to complete the project: 12 500 h. We can see from the plot that one UCP need 10000/540 ≈ 20 man hours to be completed. MR project B = 12 500 / 599.25 ≈ 20.9 The linear approximation gives us: y = α + β (x − x ), x = Project C The project developed a telecommunication system. The team did not know much about Objectory. Unadjusted Use Case Points: Number of Actors: 5 average actors Number of Use Cases: 15 average use cases UUCP = 160 1 x ≈ 298.2 n∑ i α * = y ≈ 6.683 β* = ∑ (x − x )(y − y ) ≈ 0.01981 ∑ (x − x ) i i 2 i y = 6.683 + 0.01981(x − 298.2) = 0.01981x + 0.7769 Q0 = ∑[y i − α * − β *(x i − x )]2 ≈ 54.64 Technical Complexity Factor: All the factors have the default value 3. TCF = 1 s= Environmental Factor: Familiar with the method = 1. Application experience = 5. Stable requirements = 2. Difficult programming language = 5 Object oriented experience = 2. Rest of the factors have the default value 3. EF = 1.175 Q0 ≈ 7.392 n−2 t-distribution with the probability that the values will be within the interval of 90 % gives us t α / 2 (n − 2) = t 0.05 (1) = 6.31 the interval for α: s = 4.268 n I α = ( α * ±t 0. 05 (1) * d) ≈ 6.683 ± 7.348 ⇒ d= UCP = UUCP * TCF * EF ≈ 188.0 Resources Used: Man Hours to complete the project: 5400 h. [−0.665,14.03] MR project C = 5400 / 188 ≈ 28.7 the interval for β: s 4.2 The Result d= The result is that there seems to be a correlation between UCPs and resources needed to finish a project. In figure 1 you can see the UCP plotted against the number of man hours for the projects mentioned here. I α = (β * ±t 0.05 (1) * d) ≈ 0.01981 ± 0.1250 ⇒ [−0.1052,0.1448] ∑ (x i − x )2 ≈ 0.01981 The intervals are much too wide to tell us anything. That is because the number of measured projects were too few. Th o u s a n d s o f ma n h o u rs P ro ject B 14 12 5. Conclusions 10 8 6 ² ma n h o u rs = 10 0 0 0 P ro ject C 4 2 P ro ject A 10 0 200 ² TS T = 5 40 300 40 0 500 600 U s e Ca s e P o in ts (U CP ) Figure 1 Man hours as a function of UCPs. We don not know if the model for estimating Objectory projects based on the use case model and some adjustments for technical and environmental factors works. That is because we have a too few projects to measure from so far. The work will continue with metrics from many more projects, because we still believe that this model could work a an estimation method.
  • 6. 6. Further Work More data from projects need to be gathered, to adjust the model, weights and the constants. Objective Systems will have a database where everybody who is using Objectory in a project can send their data based on experience. Anonymously will be guaranteed if requested. Please, send an email to magnus@os.se with the form in appendix A filled in. References Albrecht A. J. (1979). Measuring application development productivity. Proc. of IBM Applic. Dev. Joint SHARE/GUIDE Symposium, Monterey, CA, 1979, pp. 8392. Boehm B. W. (1981). Software engineering economics: Prentice-Hall, New York, 1981. Jacobson I., Christerson M., Jonsson P. and Övergaard G. (1992). Object-Oriented Software Engineering: AddisonWesley. Symons C. R. (1988). Function Point Analysis : Difficulties and improvements. IEEE Transactions on Software Engineering, Vol. SE-14, No. 1. Jan. 1988.
  • 7. Appendix A: Metrics Used to Adjust the Estimation Model Actors Complexity Definition SIMPLE An actor is simple if it represents another system with a defined application programming interface. AVERAGE Number of An actor is average if it is: 1. An interaction with another system through a protocol 2. A human interaction with a line terminal. COMPLEX An actor is complex if it interacts through a graphical user interface. Uses Cases Complexity Definition SIMPLE A use case is simple if it has 3 or less transactions including alternative courses. You should be able to realise the use case with less than 5 analysis objects. AVERAGE A use case is average if it has 3 to 7 transactions including alternative courses. You should be able to realise the use case with 5 to 10 analysis objects. COMPLEX A use case is complex if it has more than 7 transactions including alternative courses. The use case should at least need 10 analysis objects to be realised. Technical Complexity Factor Number of
  • 8. (If you can not fill in this factors for any reason use the default value 3 for every factors) Fi Factors Contributing to Complexity F1 Distributed systems. F2 Application performance objectives, in either response or throughput. F3 End user efficiency (on-line). F4 Complex internal processing. F5 Reusability, the code must be able to reuse in other applications. F6 Installation ease. F7 Operational ease, usability. F8 Portability. F9 Changeability. F10 Concurrency. F11 Special security features. F12 Provide direct access for third parties F13 Special user training facilities 0..5 Environmental Factor (If you can not fill in this factors for any reason use the default value 3 for every factors) Fi Factors contributing to efficiency F1 Familiar with Objectory F2 Part time workers F3 Analyst capability F4 Application experience F5 Object oriented experience F6 Motivation F7 Difficult programming language F8 Stable requirements 0..5 Resources used Process Man Hours