Professional Documents
Culture Documents
IEEE Transactions On Software Engineering, Vol. SE-10: Barry Boehm
IEEE Transactions On Software Engineering, Vol. SE-10: Barry Boehm
I. INTRODUCTION
Definitions
The dictionary defmes "economics" as "a social science
concerned chiefly with description and analysis of the produc-
tion, distribution, and consumption of goods and services."
Here is another defInition of economics which I think is more
helpful in explaining how economics relates to software engi-
neering.
Economics is the study of how people make decisions
.in resource-limited situations.
This defInition of economics fIts the major branches of
classical economics very well.
Macroeconomics is the study of how people make decisions
in resource-limited situations on a national or global scale. It
deals with the effects of decisions that national leaders make
on such issues "as tax rates, interest rates, foreign and trade
policy.
102
MASTER KEY
TO SOFTWARE ENGINEERING ECONOMICS
DECISION ANALYSIS TECHNIQUES
USF ST ANOARO
OPT IMII A TlON,
NET VALUE
TECHNIOUFS
(CHAI'TrR5 '0, 1)1
USE ST ANOARD
FIND,
CONSTRAINF n.
USE LESS
OPTIMIZATION
SENSITIVE
HCHNloms
SOLLITION
ICHAPHR '61
USE COST-
BENEFIT (CHI
nrCISION MA~ING
TFCHNIOUFS
ICflAPHRS II, 121
USE FIGURE OF -
M£ RI T rrCHNII)UfS,
C8 Tf CHNIOUES
ICHAPTf R '51
NO
r----------
I
--------,I
USf. PRESENT VALUE TECHNIOllFS TO
WHFN S ARf A MIX OF
CONVERT FUTURE S TO PRESENT S
I PRFsrNT ANI) fUTURE CASH II OWS ICHAPnR 14' I
I I
I WHEN SOME Des INVOLVE USE STATISTICAL DECISION THEORY I
I I
L _____ _
TECHNIOUES (CHAPTERS 19,201
J
Fig. 1. Master key to software engineering economics decision analysis
techniq ues,
106
2DO
Throughput ..-._ _ B-luilcl 01
110
( transactions ) 110
sec 1«1
120
lG11
10
10
40
211
TABLE!
STRENGTHS AND WEAKNESSES OF SOFlWARE
COST-ESTIMATION METHODS
Method Strengths Weaknesses
0 - of people.
_cilia aou_ to RIppon
Query types, cilia lOllIs,
intelligent-termiNI trldloffs,
raponse times
InttrMI clltlltructure,
/ buffer t.ndli"9 technique
1.501
/ Detailed ICheduli"9 algorithms,
error handli"9
Programmer understanding
f 1.2501
of specifications
/'
§ x
.J O.a..
-Irr: 0.67x
0.501
Product Det8iled
0.25x Concept of Requirements design design Accepted
apernion specifications specifications specifications software
Coding: 10 percent
Parameter Testing: 20 percent
Assembly Testing: 30 percent
MM= -33.63
+ 9 .15 (Lack of Requirements) (0-2)
+ 10.73 (Stability of Design) (0-3)
+0.51 (percent Math Instructions)
+0.46 (percent Storage/Retrieval Instructions)
+0.40 (Number of Subprograms)
+ 7.28 (Programming Language) (0-1)
-21.45 (Business Application) (0-1)
+ 13.53 (Stand-Alone Program) (0.1)
+ 12.35 (First Program on Computer) (0-1)
+ 58.82 (Concurrent Hardware Development) (0-1)
+30.61 (Random Access Device Used) (0-1)
118
~~--------------~------------~~----~
Categories
C = Control o
I = Input/output T (aliI
P = Pre/post processor
70 Category ( I
A = Algorithm
D = Data management
T = Time critical processor
Sample range
60 excludes upper and lower
20 percentiles
c·
.9 50
U
..
E
.s
~
1!i 40
0
-
!
s
u
New
30
~_--(AloLo
20
10~
Easy Medium Hard
____________________________________ ~
o 20 40 60 100
Relative degree of difficulty: percent of total
sample experlencong this rate or less
Fig. 4. TRW Wolverton model: Cost per object instruction versus rela-
tive degree of difficulty.
where
constant
K=--:---
t 4d
1.4
1.3
1.2
RELATIVE
EFFORT
MM 1.4
MMNOM
0.7 D.8 1.3
RELATIVE SCHEDULE
T DESIRED/T NOM
0.9
0.8
0.7
The effort multipliers Ii are shown in Table III. This model has
a much more appropriate functional form than the SDC
model, but it has some problems with stability, as it exhibits a
discontinuity at KOSI = 10, and produces widely varying esti-
mates via the I factors (answering "yes" to "fIrst software de-
veloped on CPU" adds 92 percent to the estimated cost).
TABLE III
DOTY MODEL FOR SMALL PROGRAMS·
1-'.
JJ ~
MM = 2.060 I'''''
-.
Factor ~ Yes No
,,,'.
SpeciII diIpIay 1.11 1.00
o.taiIed definition of operatioI. AMP.I ...... 1.00 1.11
a.nge to operatioI. raquiwnenIa 1.05 1.00
,..
~ opIIatiofl 1.33 1.00
CPU memory COI..nint 1.43 1.00
CPU line COIIIInIint 1.33 1.00
RrllIOftwera . . "oped on CPU
",..
1.12 1.00
CcIncuiNnt ".lapiMid of ADP . . . . . 1.82 1.00
TimeIIwa V8I'IUI batch proc .. IllIG. In
deu II opmeid 0.83 1.00
DIMIIoper UIing comput8r at ...,.. f.aIly fa. 1.43 1.00
0.. IIL1PI'*d at aplfatiOilei ... ~I 1.38 1.00
o.u Ilapment comput8r cIIIa.m ttWI WgIIt
~ ~ 1.25 1.00
o..llopmalt at men ttWI one ... fu 1.25 1.00
Progi ..... 8CC.sS to COII1II*r ~.
I:. 1.00
0.10
-"-""0,000 _ .......
Organizational understanding of
product objectives Thorough Considerable General
Experience in working with related
software systems Extensive Considerable Moderate
Need for software conformance
with pre-established require·
ments Basic ConsIderable Full
Need for software conformance
with external interface specifica·
tions Basic ConsIderable Full
Concurrent development of associ·
ated new hardware and opera·
tional procedures Some Moderate Extensive
Need for innovative data processing
architectures. algorithms Minimal Some Considerable
Premium on early completion Low Medun High
Product size range <50 KOSI <300 KOSI All sizes
Examples Batch data Most transaction Large. complex
reduction processing sys· transaction
Scientific tems processing
models New OS. DBMS systems
Business Ambitious inven· AmbitiOUS. very
models tOf)'. production large as
Familiar control AVioniCs
as, compiler Somoie command· Amblhous com·
Simple inven· control mand·control
tory. produc·
tion control
128
TABLE V
COCOMO NOMINAL EFFORT AND SCHEDULE EQUATIONS
TABLE VI
INTERMEDIATE COCOMO SOFTWARE DEVELOPMENT EFFORT
MUL TIPLIERS
Ralings
P,oduct Attribute.
REl Y Requwed software reliability .75 .88 1.00 1.15 1.40
DATA Dala base size .IM 1.00 1.08 1.18
CPLX Producl complexity .70 .85 1.00 1.15 1.30 1.85
Computer Attributes
TIME ExecullOn time constraint 1.00 1.11 1.30 1.66
STOR Main storage constraint 1.00 U16 1.21 1.56
VtRT Virtual machine yolati~tY" .87 1.00 1.15 1.30
TURN Computer turnaround time .87 1.00 1.07 1.15
Personnel Attributes
ACAP Analyst capability 146 1.18 1.00 .86 .71
AEXP Applicalions experience 1.29 1.13 1.00 .91 .82
PCAP Programmer capability 142 1.17 1.00 .86 .70
VEXP Virtual machine experience- 1.21 1.10 1.00 .90
LEXP Programming language expenence 1.14 1.07 1.00 .95
PrOlBCt Attributes
MODP Use 01 modern programming practices 1.24 1.10 1.00 .91 .82
TOOL Use 01 software tools 1.24 1.10 1.00 .91 .83
SeED Rtlquired development schedule 1.23 1.08 1.00 1.D<t 1.10
• For a gNen sollwer. producl. \he underlying VIrtual IMCIww . . . . complex 01 hIt""'ere and IOIIw.a (OS,
DBMS. ale) " cells on 10 eccompI1sh lIS tasks
Coat Driver Very low low Nomln.1 High Very High Extra HIgh
Procb:t attributes
RELY Effect: IItght In· Low••asily rllCOY' Modarata. r8COY8r' High llnenctat Risk 10 human ...
c:onvenience arabl.los... able losses loss
OATA 08 bytes <10 10<~< 100 l00<~<I000 Q;'I000
Prog. OSI P
CPU( See Table 8
eom.a- attributes
TIME < SO'll. use of lOYall· 70% 85% 95..
able execution
time
STOR < SO.. use of 1IYIIiI, 70.. 85.. 95~
able storage
VlRT Major change lOY' Major: 8 months Major: 2 months M8jar.2 . . . .
ery 12 months Minor: 2 -,<S MInor: 1-'< MInor: 2 dllya
Minor: 1 month cu
0
T\JRN Inlerac\lve A_. IumIIroUnd 4-12 hours >12 hours
<4 hours
........ allrllul..
ACAP 15th percentile" 35th percentile 55111 percenIIIe 75th percenlle 80Ih percen\Ie
AE)(P ... months ex· 1 year 3 ytNII'I 8 year. 12 yen
perience
!'CAP 15th percenlila" 35th percentile 55th percentile 75th percenlile 80Ih percenIIIe
VE)(P < 1 month .xp"· 4 months 1 veer 3 ytNII'I
Ilene.
lEXP <1 month exp'" 4 months 1 year 3 years
rienc:e
Project allribules
MOOP No use Beginning use Some .... a-etuse RouIIne ....
TOOl. Basic micropro- Basic mini tools Basic midi/maxi Slrong maxi pIO- Add requn.
eessortools lools lI''''''''*'II. manIS.desIgn.
1. .11oofs ...............
~Ion
.......
ICED 75.. of nomineI 85% 100.. 130.. 180..
·T_,.... _ : .....,."'......,... -'.-..:y. -'10 _ _ _'"
131
TABLE VIII
COCOMO MODULE COMPLEXITY RATINGS VERSUS TYPE OF
MODULE
Oara
Control ComOUIAllOnal Qe,,'C&-deoendent Management
Rabng OperatIons OperaDons Operabons OperabOnS
Vwy low SlraIglltline code EvaluallOn of Simple Simple read. wnte Simple arrays in
WIlt! a few non· ~ .. g•• statements with muI rnemocy
".cad sp!,I,oper. A-B .... C· simple formats
.un: COs. (D-E)
CASes.
IFTHENELSEI.
Simple pnIdi-
CI_
Low Slraightfotw8ld Evaluation of mod- No cognIzance Single file SUbset·
nesting of SP op. arate-ievel ex· neaded of par· ting with no data
_tors. Mostly pressoons. e.g•• lieul., pro. SIrUC\Ure
0- SORT CIIIIOr or 11O cnanges. no 8d-
- - predic:ales (8··2-'.•'A.c, device chIrIc· its. no intermedi-
teristics. 11O .18 files
done.t GETI
PUT IIMII. No
cognizance of
~
NomirIaI Mostly simpla ~ Usa of stancWd 110 PI oca""9 in- MuIti-ftIa input and
ing. Soma inter· math ana stalisti- dudes device singla tile out·
moduta control. cal rouanes. Be- selection. status put. Simple
0aciII0n tables sic I'IIIInXivector chackingand strUCtural
0Q8fa1lOnS error proc:asaing changes. simple
edits
High Hignly nested SP BasIC numanc:aI Operations at SpaaaI' purpose
operators WIth analySIS: mullIY.,· ptIysIcaI 110 SUbroubnel Ie·
many compound oata IntarllOlaoon. I_I (p/1ytiCII tivatad by data
predicates. orainary diffaran- storage addraa stream con-
Queue and stack IiaI equatiOns. Se- lrInSiaoons; tents. ComoIex
control. ConSld· sic truncatIOn. SMks. r£.:.Js. dIII_•.tur·
arabia Intarmo- roundoff can- atel. OpamiZed ong at reconI
duIa control. cerns 110 avertap IIIYBI
Vwy hIgII Reentrant and reo 0itficuJt but SIl'UC' RouDn81 tor IntIII" A genaraIiZad. PI-
c:urIIV8 coding. turad N.A: _ . rupt diagnosis. ramater-dnYen
Fixad-pnanty in· Singular matnx S8IVICIng. mask· fita structunng
tllfTUPl l1and~ng aquaaons. plll'lJll Ing. CommunI- reubne. Fila
difftll'llntlal aqua- ClIIon line budding. com·
DOnS llandIing mand proc:us.
ing.~
opamtZallon
Extra nlCJh Mulhpla resource OifficuIt and un· OevIc:e timmg-de- Highly CQUIlIad.
scIIaduling WIth struc:turec:I N.A.: pendent coding. dynallllC , ....
dynalnlCllly n.gnly accurata mlCl"o-pro. bOnai strUC·
changIng pnon. analySIS of 1IOISy. grammad lUres. Natural
lies. Microcode- stoc:nasllC dala operabOns language data
I_I control management
~SP--IIRI9""'-1CJ
TADLEIX
COCOMO COST DRIVER RATINGS: MICROPROCESSOR
COMMUNICATIONS SOFTWARE
Cost Effort
Driver Situation Rating Multiplier
SOOOr
;!COO
1000
~ soo
~
j
:
~
200,
"S
!.
"~3 lOO~
50
10
TABLE X
SIZE RANGES OF SOFTWARE PRODUCTS PERFORMING
SAME FUNCTION
date is the Thibodeau [52] study performed for the U.S. Air
Force. This study compared the results of several models (the
Wolverton, Doty, PRICE S, and SLIM models discussed earlier,
plus models from the Boeing, SOC, Tecolote, and Aerospace
corporations) with respect to 45 project data points from
three sources.
Some generally useful comparative results were obtained,
but the results were not defmitive, as models were evaluated
with respect to larger and smaller subsets of the data. Not too
surprisingly, the best results were generally obtained using
models with calibration coefficients against data sets with few
points. In general, the study concluded that the models with
calibration coefficients achieved better results, but that none
of the models evaluated were sufficiently accurate to be used
as a defmitive Air Force software cost estimation model.
Some further comparative analyses are currently being con-
ducted by various organizations, using the database of 63 soft-
ware projects in [11], but to date none of these have been
published.
In general, such evaluations play a useful role in model re-
finement. As certain models are found to be inaccurate in cer-
tain situations, efforts are made to determine the causes, and
to refme the model to eliminate the sources of inaccuracy.
Relatively less activity has been devoted to the formulation,
evaluation, and refmement of models to cover the effects of
more advanced methods of software development (prototyp-
ing, incremental development, use of application generators,
etc.) or to estimate other software-related life-cycle costs (con-
version, maintenance, installation, training, etc.). An exception
is the excellent work on software conversion cost estimation
performed by the Federal Conversion Support Center [28].
An extensive model to estimate avionics software support
costs using a weighted-multiplier technique has recently been
developed [49]. Also, some initial experimental results have
been obtained on the quantitative impact of prototyping in
141
REFERENCES
[I] T. K. Abdel-Hamid and S. E. Madnick, "A model of software
project management dynamics," in Proc. IEEE COMPSAC 82,
Nov. 1982, pp. 539-554.
[2] A. J. Albrecht, "Measuring Application Development Productiv-
ity," in SHARE-GUIDE. 1979, pp. 83-92.
[3] J. D. Aron, "Estimating resources for large programming sys-
terns." NATO Sci. Committee, Rome, Italy, Oct. 1969.
[4] J. J. Bailey and V. R. Basili, "A meta-model for software devel-
opment resource expenditures," in Proc. 5th Int. Conf. Software
Eng., IEEE/ACM/NBS, Mar. 1981, pp. 107-116.
[5] V. R. Basili, •'Tutorial on models and metrics for software and
engineering," IEEE Cat. EHO-167-7, Oct. 1980.
[6] V. R. Basili and D. M. Weiss, "A methodology for collecting valid
software engineering data," Univ. Maryland Techno!' Rep. TR-
1235, Dec. 1982.
[7] L. A. Belady and M. M. Lehman, "Characteristics of large sys-
terns," in Research Directions in Software Technology, P. Wegner,
Ed. Cambridge, MA: MIT Press,_1979.
[8] H. D. Benington, "Production of large computer programs," in
Proc. ONR Symp. Advanced Programming Methods for Digital
Computers, June 1956, pp. 15-27.
[9] R. K. D. Black, R. P. Curnow, R. Katz, and M. D. Gray, "BCS
software production data," Boeing Comput. Services, Inc., Final
Tech. Rep., RADC-TR-77-116, NTIS AD-A039852, Mar. 1977.
[10] B. W. Boehm, "Software and its impact: A quantitative assess-
ment," Datamation, pp. 48-59, May 1973.
ell] '--, Software Engineering Economics. Englewood Cliffs; NJ:
Prentice-Hall, 1981.
[12] B. W. Boehm, J. F. Elwell, A. B. Pyster, E. D. Stuckle, and R. D.
Williams, "The TRW software productivity system," in Proc.
IEEE 6th Int. Conf. Software Eng., Sept. 1982.
[13] B. W. Boehm, T. E. Gray, and T. Seewaldt, "Prototyping vs.
specifying: A multi-project experiment," IEEE Trans. Software
Eng., to be published.
[14] R. N. Britcher and J. E. Gaffney, "Estimates of software size from
state machine designs," in Proc. NASA-Goddard Software Eng.
Workshop, Dec. 1982.
(15) W. M. Carriere and R. Thibodeau, "Development of a logistics
software cost estimating technique for foreign military sales,"
General Res. Corp., Rep. CR-3-839, June 1979.
[16] N. S. Coulter, "Software science and cognitive psychology,"
IEEE Trans. Software Eng., pp. 16(~-171, Mar. 1983.
[17] T. DeMarco, Controlling Software Projects. New York: Your-
don, 1982.
148