Software Engineering Economics (CS656)spiral.kaist.ac.kr/wp/2016springcs656/download/CS656_05... ·...
Transcript of Software Engineering Economics (CS656)spiral.kaist.ac.kr/wp/2016springcs656/download/CS656_05... ·...
2016-03-16
1
Software Engineering Economics
(CS656)
Software Engineering Economics
(CS656)
Jongmoon Baik
Economic Analysis - I
2
Economic Analysis I- Performance & Cost Effectiveness Models -
2016-03-16
2
3
Session Objectives
• Present the basic objectives and framework of cost effectiveness analysis and introduce TPS example used to illustrate the economic concepts and techniques
• Introduce some highly useful basic microeconomic concepts
• Productivity functions, economies and diseconomies of scale – in terms of the cost-effectiveness framework
• Discuss various cost-effectiveness decision criteria – fixed budget, minimum requirements, maximum effectiveness/cost ratio, etc.
• Indicate their advantages and difficulties in various software engineering situations
4
Transaction Processing System• Client-server system developed to allow users to access
information of interest across networks
– Input transactions generated on workstations
– Input transactions processed by servers as quickly as possible
– Users may do other work as they wait for their transactions to be processed
– The amount of processing involved is not large
• Users can query databases and perform a variety of functions via the system
S ite A S ite B
In tra n e t
In te rn e t
S ite C
F ire w a ll
2016-03-16
3
5
Example: TPS
• Current TPS is inadequate for growing workload– Decided to employ a multi-processor configuration
– A particular microprocessor: best match for TPS• Speed: 1 million operations per second
• Processor overhead (scheduling, resource mgmt, dispatching, error checking & handling, etc)
– Consume 200 Kops/sec for each processor
– Multi-processor overhead : 80 (N-1) Kops/sec
» Multiple processor scheduling, resource mgmt. etc.
– Decisions on How many processors to buy…
6
Example: TPS Configuration
File Processor
Files
Communications
File
Task controlInitiate/
terminate
Processing
Communications
File
Task controlInitiate/
terminate
Processing
Communications
File
Task controlInitiate/
terminate
Processing
. . . . . . .
Communications
StatusMonitoring
Taskcontrol
Keyboard/display
Communications
Transactions
Front-endprocessor
Transactionprocessor
. . . . .
P1 P2 PN
2016-03-16
4
7
How Many Processors to Buy?
• Performance Parameters– N, number of processors N = ?– S, processor speed (Kops/sec) S = 1000– P, processor overhead (Kops/sec) P = 200– M, multiprocessor overhead factor M = 80– T, transaction processing time (Kops/tr) T = 20
• TPS performance model, E(N) [tr/sec]
8
TPS Performance, E(N)
N E(N)
1 40
2 72
3 96
4 112
5 120
6 120
7 112
8 96
0
20
40
60
80
100
120
140
1 2 3 4 5 6 7 8 9 10 11 12
Number of Processors: N
E(N
) (tr/
sec)
• Major use of Performance Model in SE are to provide the following types of information– Optimal Performance Information– Sensitivity Analysis Information
2016-03-16
5
9
TPS: Optimal Performance
• Maximum E(N)
– When the slope of the curve is zero• The first derivative of E(N) = 0
12120
)]5.4(802001000[5.5)5.5(
5.5160
802001000
2
)2
()(
0
max
max
E
N
NM
MPS
NT
M
T
MPS
dN
NdE
10
Using Derivatives to Find Optimal Points
• Necessary but not a sufficient condition for finding the Maximum (or Minimum) value of a function
• Situations which the derivative may be zero at the points other than maximum, minimum, optimum point
– Multiple maxima or minima
– Points of inflection and saddle points
Multiple Maxima Inflection Saddle Points
2016-03-16
6
11
Sensitivity Analysis - I• Suppose that the assumption of the multi-processor
(80 Kops/sec) overhead is not bourn in practice M = 160?
)6(820
)160960(20
)]1(1602001000[)(
NNNN
NNNE
N E(N)
M=80 M=160
1 40 40
2 72 64
3 96 72
4 112 64
5 120 40
6 120 0
7 112
0
20
40
60
80
100
120
140
0 1 2 3 4 5 6 7
Number of P rocessors
E(N
) (t
r/sec)
M=80
M=160
12
Sensitivity Analysis - II
• More compete sensitivity analysis over M
• Set the rest of parameters as constants
– N = 5, S=1000, P=200, and T=20
MM
MME
20020
)4800(520
)]15(2001000[5)(
0
50
100
150
200
250
0 50 100 150 200 250
M
E(M
) (t
r/se
c)
(80,120)
(160,40)
2016-03-16
7
13
Cost-Effectiveness Model (I)
• N(C) : Cost to add each additional processor
• each parallel processor cost: $400
• 25 identical copies needed: $400 * 25 = $10,000
• If C is measured in $K, N(C) = C/10 T
CMPS
CT
CNMPSCNCE
)]110
([10
)1)(()[()(
N N( C ) E(N)
1 10 40
2 20 72
3 30 96
4 40 112
5 50 120
6 60 120
7 70 1120
20
40
60
80
100
120
140
0 10 20 30 40 50 60 70 80 90 100
Cost C ($K)
E(C
) (tr/sec)
1 2 3 4 5 6 7 8 9 N
14
Cost-Effectiveness Model (II)
• Negotiation of the quantity discount schedule with the processor vendor
Price of first 75 processors
$400 each
Price of processors 76+
$240 each
0
20
40
60
80
100
120
140
0 10 20 30 40 50 60 70 80
Cost C ($K)
E(C
) (tr/
sec)
1 2 3 4 5 6 7 8
N N( C ) E(N)
1 10 40
2 20 72
3 30 96
4 36 112
5 42 120
6 48 120
7 54 112
2016-03-16
8
15
Production Functions:Economies of Scale
16
Which Operating System?
A
(Accept Available OS)
B
(Build New OS)
Cost ($K) 80 180
Multi-processor overhead (M) 80 50
NKNC
NN
NNNN
NNNE
)10($180)(
)17(5.2
)585(2
1
20
50850
20
))1(502001000()(
22
OPTION B:
2016-03-16
9
17
Cost-Effectiveness Comparison : Option A & B
112tr/sec
7
18
Production Function
Achievable output = F (input consumed)
-Assuming only technologically efficient* pairs:
* An input-output combination is technologically efficient if no higher level of output can be obtained using given level of input
X
Output
Input
PF is nonnegative
PF is nondecreasing
2016-03-16
10
19
Segments of Production Function
Output
InputInvestment High Payoff Diminishing Returns
- Investment segment, in which inputs are consumed without a great deal of resulting output
- High payoff segment, in which relatively small incremental inputs result in relatively large increments in output
- Diminishing returns segment, in which additional inputs produce relatively little increase in output
20
Discrete Production Function
• Frequently encountered in Software Engineering– Increases in effectiveness: achieved at discrete levels of input
• TPS example discrete production function– Increase in effectiveness in increments of $10K in cost, corresponding to the
purchase of another processor.
2016-03-16
11
21
Economies & Diseconomies of Scale
22
Economies of Scale
• Factors which make it more efficient to produce large quantities of a product than small quantities
• Achieved in large projects by investing in special-purpose productivity aids– Test tools, diagnostic aids, program library aids,
preprocessors, & postprocessors
– Will be used enough to more than repay their cost
2016-03-16
12
23
Diseconomies of Scale
• Similar to the multiprocessor effect in TPS• More communication overheads to update common information, handling
errors, or resolving the use of shared resources• The more people on a project, the more opportunities to retard the overall
productivity by the factors:– Personality conflicts– Differences in programming philosophy– Conflicts in work habits etc.
• e.g. Interpersonal communication paths (interactions)– N(N-1)/2 where N the number of people
24
Avoiding Diseconomies of Scale- Sources of Software Gold Plating
• Frequently Gold-Plating– Instant response time
– Pinpoint accuracy
– Unbalanced systems
• Usually Not Gold-Plating– Humanized input preprocessor
– Humanized output postprocessor
• Sometimes Gold-Plating– Highly generalized control, data structures
– Sophisticated command languages
– General-purpose utilities
– Automatic trend analysis
– Agents with attitudes– Animated displays– “everything for everybody”
– Modularity & information hiding– Measurement & diagnostic capabilities
2016-03-16
13
25
How to Recognize S/W Gold-Plating
Animated displays
Secondary application functions
User amenities
Main application functions
Natural speech input
Tertiary application functions
Basic application functions
Data management system
Operating System
Investment High-payoff Diminishing returns
Cost of software product
Va
lue
of
so
ftw
are
pro
du
ct
to o
rga
niz
ati
on
26
Avoiding Diseconomies of Scale- Functional Modularity
P11
P12
P13
P21
P22
P23
Trans. in
1
2
Module 1
Module 2
ProcessedTransaction
out
2016-03-16
14
27
Choosing Among Alternatives Decision Criteria
28
Cost Effectiveness Criteria
• Maximum Available Budget
• Minimum Performance Requirement
• Maximum Effectiveness/Cost Ratio
• Maximum Effectiveness-Cost Difference
• Composite Alternatives
2016-03-16
15
29
Maximum Available Budget
Option B
Option A
250
120
180
X
Y
Q
Z
P
E (
tr/s
ec)
200150
40
10050 300
C, $K
30
Minimum Performance Requirements
• If minimum performance req. = 160tr/sec– Go with Option B
• Overly rigorous req. leads to an unsatisfactory commitment– e.g.:125tr/sec $220K (point P)
– Can be handled satisfactorily with 115tr/sec• $130K (point Q)
2016-03-16
16
31
Maximum Effectiveness/Cost Ratio
60
100
80
40
20
120
20 40 60 80 100 120 140
R
L Eff/Cost = 2
K Eff/Cost = 0.93
C, $K
E (
tr/s
ec)
Option A
32
Maximum Effectiveness-Cost Difference
L*
Assume that the value of each transaction = $2K instead of $2.5K
$110K
2016-03-16
17
33
Composite Options
34
Summary – Cost-Effectiveness Analysis• Microeconomic concepts help structure,
resolve software decision problems– Cost-effectiveness– Production functions– Economies of scale– C-E decision criteria
• No single decision criterion dominates others– Each is best for some situations– Need to perform sensitivity analysis:
• Slightly altered situation doesn’t yield bad decision
2016-03-16
18
35
Q & A