Tải bản đầy đủ (.pdf) (40 trang)

Software Engineering (phần 7) ppt

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.91 MB, 40 trang )

' ; ; .
.
1 I ! , :
l
t i- .)l ,, ,
,'
1, I Q** t u A p T : R a * Reusabilip, Porlobilip, and Inferoperabillt
1 -1 . i: :
'
rl ' section
.
However- it soon was realized that oLE also was a partial solution to the '
r 1 I1
! Iarger problem of interoperability. Microsoft next developed the Component Object
.
I è
I i ! I Model (COM ), a further step toward achieving the overall goal of interoperability'
,
;l ' ! fi
t was shipped in May 1993 as part of OLE 2.0. The term OLE then was1 j 2 i COM rs
I tl ' ! used to denote anything built using CoM-based technology. The full name, Objectl
! ;t i unking and Embedding
,
no Ionger made sense in this new context, so the name oLE' I j ; ! l
was transformed from a three-letter acronym (TLA) into a name in its own right. Ink 1 i ! !
11 ; 1996, Microsoft started using the termAcrïvcx in connection with its lnternet-relatedl i
hnologies. However. the term Acr/pcx soon became aIl but synonymous with OLE 'l tec
.
I l !l j ! i
n its second meaning of CoM -related technology. A distributed version of COM was
1 i ! l ed in 1996 to support interoperability on distributed platforms


. ,, ' re easl j i
'
! ; The underlying technology supporting interoperability is COM . Suppose that '
11 i J software component Q supplies services to component P; that is
,
P is a client of Q.I i i
,! p i P and Q can interact in a number of different ways. lf F and Q are parts of the same
11 ' P can invoke Q
.
On the other hand, if F and Q are in different processes' i 1 l : WOCCSS,
l I r 1 nlnning On the same machine
,
then P and Q can communicate via some form of '!
:
. !p E interprocess communication. But if the different processes are running on different
k ' machines in a network, then a remote process call (RPC) can be used. The idea behindi
!1.
j ë COM is to use a common mechanism for all situations in which one component
'
i
'
l i - '
.
j t ; j provides services to another component. Every piece of the software is implemented
: ' i ' as a COM component (Microsoft terms this an object)
.
Each component has oneI I 1. : ; :
l ''
,
I j !

,
or more interfaces, each of which supports one or more functions (these are termed
'
j ' y ''
'
''
'
'
.
k j ! methods). To utilize a COM component, a client calls the COM library, specifying the
i sj $ ) class of the component (every COM component is an instance of a specific class) and
'! ' 1 1 the specihc interface of the component
. The COM library then instantiates a COM! I
'
5 i component of that class and returns a pointer to the chosen interface
. The client now .l
i ; can invoke a function of that interface.
'
l '!
i
COM terminology as specifiedby M icrosoft is somewhatconfusing, in that COM

j
l I is notyetobjectoriented. A COM object indeed is an instance of aclass, but COM doesl
i t support inheritance (Section 7
.
8). COM therefore is objea based (Wegner, 1992)k ! no
I but not object oriented. Component Object Model Extension (COM+) was shippedi
j with Windows 2000. COM+, like its predecessor, also is object based. However,i
l future versions of COM may well be object oriented.) '

.
: .
'
.
i i1 1
:
11 j 1 *a@.Q Z@RBAl
-
l1
li ! i :9 th
e object Management Group (oMG), a consortium of currently about. 11 2 ln 19 ,
1 i i 800 vendors of object-oriented technology, was set up with the aim of develop-
.
! :! i
.
:; ( ing a common architecture for object-oriented systems. Specihcally, the Common
; ' i ' object Request Broker Architecture (CORBA) supports the interoperability of soft
-
.
; j 'I
'
; : ware applications running on different machines within a distributed environment!
: 1 (oMG, 19991. That is, CORBA supports interoperability across vendors, networks,
'
I
.
.
1 languages, and operating system s. OM G standards are recognized by the International
'
I

7 Organization for Standards, so CO RBA is an international standard architecture for
'
1 j' object
-
oriented systems.1
*
j
'
! jI .
'
1
'
I :!
r i:
'
;
.
1 t l
T
'
l '
-
Please purchase Image To PDF Converter on to remove this message, thank you.
.
j : '
)
'
;
. .
! .

':
1 . j E
FUTURE TRENDS IN INTEROPERABILITY Q*S 7 ja.M
,
y
'
j '
.
The heart of CORBA is an object request broker (ORB), which allows a client to j ' I 'J
invoke a method of an object, irrespective of where in the distributed system the objeet ' j.
' hat supports interoperability, and i ! jlis located
. The term middleware describes software t
' ORB has been called the é'mother of all client/server middleware'' korfali, Harkey, and i l!
.
1Edwards
, l 9961. Inprise Visibroker and lona ORBIX are two of the many CORBA I
' implementations currently available. ! (
1'
.
j ,
r tl i
- I
.
Ie
.1@.a to-pAplxo t@M ANp Z@ RRA k I
$
t )
Superficially, both COM and CORBA provide equivalent suppol't for interoperability. g
However, there are numerous significant differences between the two. For brevity, we :
considerjust three differences here. )

One key difference is a consequence of the fact that COM is a product of Mi- i j '
.
crosoft, the world's largest computer organization. whereas CORBA is an interna- i
.
j :
'
tional standard developed by software professionals from Iiterally hundreds of differ-E
j
ent computer organizations. As a results CORBA ORB products currently are imple- i
'
mented on a wider variety of different platforms than COM. Furthermore, CORBA l : )
isms, whereas l iis deEned to be independent of underlying communications mechan
:!COM '
s communication mechanism is a proprietary M icrosoft product. Consequently, ' l '
)
it is hard to use COM w ith legaey software that uses a different communieations @ '
!
hanism. 1mec
I. I
.
A second difference relates to integration of COTS software (Section 2. l ). Mi- ! . i
crosoft supplies at least 80 percent of such software. The ease with which Microsoft I :
be integrated into M icrosoft-proprietary COM is a clear advan- l l ,COTS software can
j j
. 1
I
tage over the more convoluted m ethods currently needed to integrate COTS software r
'
j .into a ColtBA-based product
.

1
Third, CORBA has the advantage of simplicity. COM is one of the most complex
' M icrosoft technoloxies; the documentation for COM is nearly 2000 pages in length,
I '''-'' ''' ''
'
-'''' -
I
q and a developer needs a detailed understanding of Win32 (the Windows API) as : t
: well. Furthermore, developers have indicated that COM has a steep learning curve. i j
.
CORBA on the other hand, is dehned in under 200 pages, and the docum entation for I j!
RBA products is between 200 and 300 pages. i ! j. most CO
CORBA and COM each has its champions and its detractors. lt remains to be ! !i
seen how interoperability will be implemented in future years. ) l I
i
i
I .
l k
j 7 . ''
.
j :
'
8.11 Fuw Rz TRENPS IN INTEROP:RABILITY I :7
' j '.i i C
'
j . . 'The current two major interoperability products are COM (Section 8
. l0. l ) and j 1 .
CORBA (Section 8. 10.2). In the past, a number of apparently strong contenders r (
have fallen by the wayside, notably OpenDoc. However, many other products cur- ; !' ' '
,

rently are available or under development. For example, JavaBeans is a fully portable, : '
l
'
compact, architecturally neutral, and platform-independent application programming !
)
:
.
l
l .
Please purchase Image To PDF Converter on to remove this message, thank you.
1 ; . I
! l I
.
i i - '
' l jI :
'
$
I I 4*l t u A p T : R a . Reusobilip, Porfobilip, ond Inferoperabilipt$
'
1 ! ,
.1 ; ; I
: j 'j 'é 1 interface (API). A bean is a small-scale component. An Enterprise bean is a Iarger-i ! i
aIe component that can be used as a standalone application or integrated into a 41, i , sc
11 1 I software product. Enterprise beans are used primarily for server-side applications in (
:
11i 1 client-server architectures rvalesky
,
19991.I !l 1. !
; I'lae ubiquity of the world w ide web has major interoperability implications.
'

l i 1 '
1 ! 1 one alternative is a single architecture that can integrate client
-
server and Web-basedI - !'
I ! !
g ; i applications. A number of vendors are meeting this need. For example, M icrosoft

l !
!,! t . developed Distributed interNet Architecture (DNA). jIj l 1
, It has been suggested that CORBA is superior in many ways to COM . Never-
1. l ( theless
,
Microsoft is the world's largest computer organization, with the power to jI :l '
l
i de organizations that COM (or its successor at time
of writing, COM +) is the kli 1 ) persua
l I 1 '' appropriate standard for achieving interoperability
.
It is not clear whether CORBA or jI ;
j !
.
q l COM will become the dominant interoperability mechanism or whether some future ci
t ' i l dominate
. Another possibility is bridges between CORBA and COM . jï . product wi1 prel '
i j .i that would allow interoperability between the two competing standards
.
1 ! : : r
'
j i j ! Notwithstanding the rivalry between CORBA and COM supporters, both camps jl : '7
1 ! appear equally enthusiastic about the Extensible Markup Language (XML) (W3C.1 q s rjj

.
20001. XML can be viewed as an extension of Hypertext Markup Language (HTML). jI : - .i
1 j XM L, like HTM L, is a product of the W orld Wide Web Consortium (W 3C), which, I e
l li ? was created in october 1994 to promote interoperability on the world wide web by t
- r ; ii
' developing common protocols. W 3C is an international organization with over 400'
! r a! l I
member organizations from aIl over the world.t! ' i
l
1 j 5 The key point is that XML is a metadata language, that is, a language that can r
i ' ;j
j I be used to specify data. A major goal of XML is to improve the interoperability ofI
-
r't! 1 ! ditferent data sources on the Web. It is likely that XML will play as important a future j
jj $ role in data transmission and manipulation on the Web as HTML does today.
;
'
l i
) I ! i
$ i : k
1 '
.
1 2 k
' '
j 1 l
.
.
S( ' tuApTgp Rzvl:w r
I
.

1 1
j a
j I Reuse is described in Section 8.l . lmpediments to reuse are discussed in Section 8.2. i!t
six reuse case studies are presented in Section 8.3. The impact of the object-oriented1 !
i ; di m on reuse is analyzed in Section 8
.
4. Reuse during the design and implemen- iji Pitfêt VI
I
r , . tation phases is the subject of Section 8.5; the topics covered include frameworks, I! 't l d
terns. and software architecture. The impact of reuse on maintenance is discussed o1 . g Patl
-(1 E in section 8.6. p
' li ? ' p rtability is discussed in section 8
.
7 Portability can be hampered by incom- bO .
(! t '
, ' ' patibilities caused by hardware (Section 8.7. 1), operating systems (Section 8.7.2), ((
' 4 I : i
' I 2 numerical software (section 8.7.3), or compilers (Section 8.7.4). Nevertheless, it is vl 1
i ortant to try to make aIl products as portable as possible (Section 8.8). Ways bï mp!
'
i )
j Cj
j of facilitating portability include using popular high-level languages, isolating the a
; 1 nonportable pieces of a product (Section 8.9. 1). and adhering to language standards a
! l : (section 8
.
9.2). hi 1 i
. I
l ?
'

I ' .' 4 i !
. r ( -i
! 1
t ( I '
. 1
$I
:
Please purchase Image To PDF Converter on to remove this message, thank you.
: i
:
'
.
I !
I:
.
FoR FURTHER READINO a*y i I'
j i j ,: j
'
r- lnteroperability is introduced in Section 8. l0. COM is discussed in Section 8. 10.1, ! ' ' 'I
a CORBA in Section 8.10.2, and they are compared in Section 8. 10.3. The chapter g r
:
l
.
n concludes with a discussion of tkture trends in interoperability, in Section 8. l 1 . ! j
' jj
'
) - 1.
S. ,
. .
i !:(jl ,

i t
'
ft I I
FoR FURTHKR RKAPIN/ ': I
F- r
:0 Further information on the reuse case studies in this chapter can be found in gl an- ; 'j
le ergan and Grasso, 1984 M atsumoto, 1984, 1987., Selby. 1989., Prieto-Dfaz, l 99 l '. ' '1
7
' '
d Toft Coleman, and Ohta, 20001. A l 1 l3r Lim
.
1994, Jézéquel and M eyer, 1997, an ,
re '
,
corporate-level software reuse program at Hewlett-packard is described in gGriss, r
: lW 19931
. Two pilot studies at M otorola are presented in (Joos, 19941. The manage- l
ment of reuse is described in (Lim, 19981. Some warnings regarding reuse are given )
'S in g'rracz. 19951. lFrakes and Fox, l 9951 is a report on industry attitudes toward i j
-' i described in (Isakowitz and 1 i-' reuse. A search scheme for object retrieval and reuse s ,
.
'

! :
,
). Kautfman
, 19961. Ada reuse case studies are outlined in (skazinski, 19941. The cost- j ,
'h effectiveness of reuse is described in gBarnes and Bollinger, 19911 and ways of iden- 'i
;
.

I l jhy tif
ying components for future reuse in (Caldiera and Basili, 1 9911. (Meyer, 1 996a1 l
'0 analyzes the claim that the object-oriented paradigm promotes reuse', four case stud- '1$
ies in reuse and object technology appear in (Fichman and Kemerer, 19971. Reuse l : .
tn i discussed in gpoulin. 19971. (Prieto-Dfaz, 19931 is a status report on l ' 'metr cs are ( j
.
àf reuse
.
Further papers on reuse are to be found in the September l 994 issue of IEEE l , : '
j 're
sojtware. g ! .
! i
A variety of papers on component-based software engineering from the Software 1
ë
'
i
Engineering lnstitute may be tound in gBrown, 19961. Other papers on component- l
ib
ased software engineering are in the September/october 1998 issue of IEEE Soft- ë ' !
ker, 19981, which discusses the testing of component-based t : llvwrc, including gWeyu
-
software. Components for object-oriented business applications are described in
'
(Bohrer, Johnson, Nilsson, and Rubin, 19981. (M ili. Addy, Mili, and Yacoub, l 9991 )
; I Ianalyzes reuse as an engineering discipline
. gszyperski, 19981 is a valuable source of , !
2. information on component-based software. '
rd A good source of information on frameworks is gLewis et al.s 19951. M anag- l
1- ing reuse of object-oriented frameworks is described in (Sparks, Benner, and Faris, j ;
S, l 9961. A framework for building software is discussed in (Schmid, l 9961. The effect ' ji

,
rd of object-oriented frameworks on developer productivity is discussed in (Moser and q I
'S d Wills, 19991 present a development methodology i i
.
Nierstrasz, l 9961. (D ouza an !
,
1- based on object-oriented frameworks and components. The October 1997 issue of 1 : 1 'l
), Communications ofthe ACM contains a number of articles on object-oriented frame- j ! .!
)iS works
, including (Johnson, 19971. An excellent series of articles on frameworks can !i 2 E
's be found in (Fayad andlohnson, 1999., Fayad and Schmidt, 1999., and Fayad, Schmidt, ! :
te and Johnson, 1 9991. The October 2000 issue of Communicatiolls ofthe ACM includes ; 1 . 2
ls articles on component-based frameworks. including gléobryn, 20001, which describes
,'
i !h
ow to model com ponents and fram eworks using UML. !
ë
I
.
)
'
l .
Please purchase Image To PDF Converter on to remove this message, thank you.
.
.
) 7 .: q1 1
,
.
j t g g
.

j t - j j
j ( 2*e t u A p T : R a * Reusobilip, Porlability, and Ingeroperobilip
1 ;
jj i ; Design patterns were put forward by Alexander within the context of architecture g.3
: ! ! gAlexander et al., l 9771. A first-hand account of the origins of pattern theory appears in1
-
jq j j, : , gAlexander, I 9991. The primary work on software design patterns is (Gamma, Helm,
1. Johnson
,
and vlissides, 19951., a newer book is (Vlissides, 19981. Analysis patterns g 4' ;l 1
:
I .
j j I are described in (Coads 19921 and in (Fowler, l 997a1. (Schmidt, l 9951 describes the
15 ' i f design patterns to develop reusable object-oriented communications software
.
'*S
, i
use o
'
jj I j .
-
j ; : i The october 1996 issue ot the Communications of the ACM is a source of many 8.*
j11 j ! articles on patterns, including gcline, l 9961, which describes the advantages and
'i ' ; disadvantages of design patterns
. A rticles on patterns and architectures are to be
I
'
i 1 I ;
1 j I l found in the January/February 1 997 issue of IEEE Software. These include gKerth1
'b l i

1 : j and Cunningham, 19971, which explains the importance of pattern languages, and11 : kMonroe, Kompanek,
.
Melton, and Garlan, l 997., Tepfenhart and Cusiek, 1997) and g
.z1 ; l
'
! I 1 Coplien, 1 9971, all ot which connect architectures, patterns, and objects. Anotheri .
Ii l I paper on the use of design patterns is gcooper
-
19981. Antipatterns are described inl i l l
I I (Brown et al, 19981.2
.
; i f information on software architectures is (Shaw and Gar ! . The or marv source o
: j ' I *
'
*'
.
'
.
q I y Ian, 19961. Articles on sottware architecture can be found in the April 1995 issue
j i E 2 of IEEE Transactions on Software Engineering and the November 1995 issue of: i
J ( ) IEEE Software, especially (Shaw, l 995, and Garlan, Allen, and Ockerbloom, 19951.l '
ii ) ' x
ewer works on software architectures include gBass, Clements, and Kazman, 1998.,I j '
,
i ' ' Hofmeister
, Nord. and Soni 1999. and Bosch, 20001. Software product lines are de-' 1 , .#
j ! ' 1
, : l scribed in (Lai, Weiss, and Parnas, l 999., Jazayeri, Ran. and van der Linden, 2000*,1
;: and Donohoe, 20001.
jj j . Strategies for achieving portability can be tound in (M ooney. l 9901. Portability

ii 1 - i discussed in glohnson and Ritchie
, 19781. With regard to portabilityi E Ot C and UNIX s)
i g.gj
I of Ada products, the reader should consult (Nissen and W allis, 19841.
'
j . :For an overview of interoperability in general and OLE
,
CORBA, and Activex inI
:
è
. I I particular. consult gAdler, l 9951. A comprehensive source of information on interop-
'
1 ! erability is gorfali
.
Harkey. and Edwards, l 9961. An overview of middleware appears, l
l I in (Brown
, 19991. COM is described in (Box, 19981., detailed information is available; i I
I ; from the Microsoft home page, www.microsoh.com. CORBA is described in detail in 3.@
'
k @ tMowbray and zahavi
, l 9951. gl-eppinen, Pulkkinen, and Rautiainen, 19971 is a case
.
l i study in integrating Java and CORBA
. The October 1998 issue of Communications
j . 'ofthe ACM contains a set ot articles on CORBA, including gsiegel
, 19981. A detailedi
.
i ' I treatment of Enterprise JavaBeans is given in tvalesky, 19991.
i I :
El j I :l 1; 1

,
l ' I
,
1 l ;.
'
.
j ) ii
j j j ,: . . . .
!; pE RoekKM s; I i
k rt
'
' : .
'
j : 1 8.1 Distinguish carefully between reusability. portability. and interoperability.
1l
I .j 8.2 A code module is reused
,
unchanged. in a new product. In what ways does this reuse
; r i reduce the overall cost ot the product? ln what ways is the cost unchanged?
l .
1
-
l !I
; .L
'
r
rI i
! l 1
.'
1 C ! '

.
'
J
Please purchase Image To PDF Converter on to remove this message, thank you.
i
'
.
,
1 ;
'
.
I j :
:
'
I
pRosuMs a*@ j l
! . lI
.
(
'
17e 8
.
3 Suppose that a code module is reused with one change, an addition operation is !
.
1n changed to a subtraction
.
What impact does this minor change have on the savings of l
n Problem 8.2? I j i I
IS 3.4 w hat is the influence ot cohesion on reusability? i
!

'
r
'C
i fluence ofcoupling on reusability? ; I3.s what is the ne
. I
ky Ké You have just joined a large organization that manufactures a variety of pollution ' j!
td control products. The organization has hundreds of software products consisting of :
, (:
.
l
le some 95,000 different FORTRAN modules. You have been hired to come up with t jj '
.rh a plan for reusing as many of these modules as possible in future products. What is . j
kd your proposal? ë I
2 Ild I
.
7 consider an automated library circulation system . Every book has a bar code, and
Dr every borrower has a card bearing a bar code. W hen a borrower wishes to check out a
in book the Iibrarian scans the bar codes on the book and the borrower's card
,
and enters I E ! '
5
.
i E
C at the computer terminal. Similarly, when a book is returned, it is again scanned ') 7
r- and the librarian enters R. Librarians can add books (+) to the library collection or i!
le remove them (-). Borrowers can go to a terminal and determine a1l the books in l
f A tbllowed by the author's l '7 the Iibrary by a particular author (the borrower enters =
j'
'
1 11 the books with a specihc title (T= followed by the title), or all the books in a ; 5. name), a g y

8' ticular subject area (S= followed by the subject area). Finally, if a borrower wants r '. par
e-
.
a book currently checked out, the librarian can place a hold on the book so that, when l
!0; i
t is returned- it will be held for the borrower who requested it (H= followed by the 1 I '
J ! number of the book)
. Explain how you would ensure a high percentage of reusable j , :
ty m odules
.
l , ' ,
l I .ty
k 1l.8 You are required to build aproduct for determining whether abank statement is correct.
I . . 1
The data needed include the balance at the beginning of the month', the number, date, j 7 ,in
:
and amount of each check; the date and amount of each deposit; and the balance at the
p- end of the m onth
. Explain how you would ensure that as many modules as possible
rs
of the product can be reused in future products.l
e
in l.9 Consider an automated teller machine (ATM ). The user puts a card into a slot and
enters a four-digit personal identihcation number (PlN). If the PIN is incorrect, the i 5qe
q :
card is ejected. Otherwise, the user may perform the following operations on up to :
d four different bank accounts: I)
'
(i) Deposit any amount. A receipt is printed showing the date, amount deposited. !
and account num ber. è

l 1
(ii) W ithdraw up to $200 in units of $20 (the account may not be overdrawn). ln I l
! k
addition to the money. the user is given a receipt showing the date, amount j
. i
withdrawn, account number, and account balance after the withdrawal. t
- j
.
1
(iii) Determine the account balance. This is displayed on the screen. l ,r
g .
'
er ftlnds betWeen tWO aCCOuntS. Again, the account from which the funds 1 j(iV) Transt j
are transferred must not be overdrawn. The user is given a receipt showing the )
/
'
E
date, amount transferred, and the two account numbers. : ' .
ie i
.
(v) Quit. The card is ejected. j
ë !
l !
k :'
)
'
;
Please purchase Image To PDF Converter on to remove this message, thank you.
!
; t '( (

, .
.
I i i ;
.
I r ; 1 .11
i
'
- r
'
r
'
1'' t ' aso t K A p T z k a . Reusobilip, por'obiliw, and lngeroperobilipl
JI l -t
'
.
hl i
jl j 1. Explain how you would ensure that as many modules as possible of the product can '
,
( t 1, t be reused in future products.' ; !
l i ' ' 8.10 How early in the software life cycle could the developers have eaught the fault in the. j
) t j1
1 i ( Ariane 5 software (Section 8.3.6)? ''
l I ) ! ' .i
(1 ( ( a.1 1 section 8.5.2 states that ''the Raytheon COBOL program Iogic structure of the 1970s
16 i @ is a classical precursor of today's object-oriented application framework
.
'' W hat areè tt i
'
Ir 1 i the implications of this for technology transfer?
.

!11
r j1 1 ; 8
.
12 Explain the role played by abstract classes in the design pattern of Figure 8.3. '- l#
jj p j1 '
8 1 3 Explain how you would ensure that the automated library eireulation system (Probleml ! l @
l ' 8 7) is as portable as possible. .
'
1 -
11 i a 14 sxplain laow you would ensure that the produetthat ehecks whether a bank statement
I g 1 *
l l i is correct (Problem 8.8) is as portable as possible.!
'
i 1 i
'
'
l 1 ,
il i g 1 5 Explain how you would ensure that the software for the automated teller machine) @
11 ! ' (ATM) of Problem 8.9 is as portable as possible.
:
'
I l i . j
I ! ' .t l
g :.1 6 Your organization is developing a real-time control system for a new type of laser that 'I i 1
,
t : l l will be used in cancer therapy. You are in charge of writing two assembler modules.S 1 li ; '
.
How will you instruct your team to ensure that the resulting code will be as portable @) E
,
g ' ; as possible?

.
; , , :
1 1 '
.
'
7
jIE ; : 8.17 You are responsible for porting a 750,000-line COBOL product to your company'si
' k new computer
.
You copy the source code to the new machine, but discover wlaen you. l j
'
1
.
I $
j! i ; try to compile it that every one of the over 15,000 input-output statements has been
l : ! itten in a nonstandard COBOL syntax that the new compiler rejects
.
W hat do you l
: j wrt
d ?) , o now
; J I!
8 18 (Term Project) Suppose that the Broadlands Area Children's Hospital product of l:
. l ( *
'
i ! Appendix A was developed usinz the structured paradiem . W hat oarts of the Droduct
l ' I '*' ''
'
'
* '' ' '*' '''''' ''' '''
,

.
t l eould be reused in future products? Now suppose that the product is developed using!
1 (
.
! the object-oriented paradigm. W hat parts of the product could be reused in future :' '
j - '''
'
'''
.
products?
,
.
j
j j
t i 8.1* (Readings in Software Engineering) Your instructorwill distribute copies of tschricker, '
2
i 20001. For the last 40 years, COBOL has been the most widely used programming :
I $
'
l ' t language. Do you think that that object-oriented COBOL will be equally ubiquitous? l
.
1 $ -l
'
t 1 î! 1
;
2
1 l p k. j j j
y
l i l
!( l I

)
'
' ( 'l :
-'
; t .1 RKFKRKNIES ll i
I ; jt $ ;
l ) q i. ',., .
II j ( tAdaIC. 19971 DoD to Replace Ada Mandate with Software-Enginecring Process, Adalc
. ! j ( News (Summer 1997), Ada Information Clearinghouse, Falls Churchs VA.
l ' tvHmerging Standards for Component Softwarez' IEEE Computer î$ I I îAdler, 1995) R. M. ADLER,
' l t 1 28 (March 1995)
,
pp. 68-77.l!j ( 1
œ
) I1
I i1
t j . 'i .
.
'
j lE
'
i
Please purchase Image To PDF Converter on to remove this message, thank you.
l ::
i
:(
'
I .
.
I

,
'
1 1
) ' 1
-
(
'
ë I
, ! I@
.
1
q . Ie n o * - < r
! 1
i l
t
.
I
âel I Iù ;
!
s I I
.
1
1
*+ . I*
; I* I I I ' ii
i 2
l l
r
i I' j
i

'
1
;;
: i
l 1
) .
;
'
I
, l/s ' i El
: ll l
There is no easy solution to the difficulties of constructing a software product. To put together a large ;r
,
'
ftware product takes time and resources. And, like any other large construction projects careful planning ; ice; SO ;
' hat distinguishes success from j i' at the beginning of the project perhaps is the single most important factor t j
.
b o means is enough. Planning. like testing, mustcontinue throughout 1 :failure. This initial planning, however, y n
1 : 'the software development and maintenance process
. Notwithstanding the need for continual planning, these .l
.
25 activities reach a peak after the specitications have been drawn up but before design activities commence. l h
1 . 'At thi
s point in the process, meaningful duration and cost estimates are computed and a detailed plan for jI
.
leting the project produced. 1 .comp l
j .In this chapter
,
we distinguish these two types of planning, the planning that proceeds throughout the j 2,9:
). k

project and the intense planning that must be carried out once the specifications are complete. jj
1
'
.
E
i i
!.
:@
.
1 Pz ANNIN/ ANp THE 5@F ARE PR@t'$$ !
i
lId
eally. we would like to plan the entire software project at the very beginning of the il
process, then follow that plan until the target software hnally has been delivered to j !
the client. This is impossible, however, because we lack enough information during l
2 2 Ith
e initial phases to be able to draw up a meaningful plan for the complete project. i1
For example, during the requirements phase. any sort of planning (other than just for j
the requirements phase itselt) is futile. 1 :q
'
.
SUPPOSC that the developers have built a rapid prototype (Section 3.3) and the I , r
j 'client feels that the rapid prototype indeed encapsulates the key functionality of the
j : i
target product. lt might seem that at this stage it would be possible to provide reason- i j
I ! .
ably accurate duration and cost estimates for the project. Unfortunately, that is not ' p :
'
q .
è

'
j '
4* I ined in the Prefoce
,
the material of this chapter may be taught in parallel with Part 2. The material of Chopter 9 is required for 1 !
.
As exp a j
the soffware proiect management plan of tiae Case Study (Sections 1 1 . 1 5 and 1 2.8; Problems 1 1 .2O ond 1 1 .2 1 ) ond the Term Proiect , :
(Problem 1 1 . 1 6) ;
: I
257 ii I
t h
'
lI 1
I E
Please purchase Image To PDF Converter on to remove this message, thank you.
-
' i I
I i .1 -
! l !
j l
11 1 asa t u A p T : R * . Plonning ond Es'imoging1
I i !
'
. i ( (
( l ' true. There is a world of difference between the information at the developers' dis-
! i
I p posal at the end of the requirements phase and at the end of the specihcations phase,
(' t . analogous to the difference between a rough sketch and a detailed blueprint
. By theI I k

-
,
!1 j r end of the requirements phase, the developers at best have an informal understanding :J . .
lt ! l of what the client needs. ln contrast, by the end of the specifications phase, at which
l E i time the client signs a document stating precisely what is going to be built
,
the de- '
1 I : .
1 2 j velopers have a detailed appreciation of most (but usually still not aIl) aspects of theI 1
i 1 i target product. This is the earliest point in the process at which accurate duration and1 l l I
cost estimates can be determined.1
,
l jl .
' Nevertheless, in some situations, an organization may be required to producel l
1
1
i l d tion and cost estimates before the specilieations can be drawn up
.
In the worstt ,h : ura
'
!, I ! case, a client may insist on a bid on the basis of an hour or two of preliminary 'I
I ' i .I j discussion. even before a rapid prototype has been constructed. Figure 9. l showsii
! how problematic this can be. Based on a model in gBoehm et al., 20001, it depicts thei1 p ! ;
11 r ; relative range of cost estimates for the various phases of the life cycle. For example,
( ii i 1 suppose that, when a product passes its acceptance test at the end of the integration ::
'
l t t :)
Jt ( phase and is delivered to the client, its cost is found to be $1 million. If a cost estimate
E .1 i l had been made midway through the requirements phase
, it is likely that it would .I !

.
'
l't 1 t have been somewhere in the range ($0.25 millions $4 million). Similarly, if the cost
: 11 l I
'
''
j j estimate had been made midway through the specifications phase the range of likely )l
- -
., . . . - . .
il ' estimates would have shrunk to ($0.5 million, 52 million). Furthermore, if the cost
.
! 1 ' j
? ( : estimate had been made at the end of the specihcations phase, that is, at the earliest ;!
I l I .: ) 1
i
I t iI
I 11 )
j1
.
!
'
i
I i 4
j j
I ' a
1 rT
1 'u
1 œ
I G
j 8 3

F ':l
g)!
GI '
r œu
1 ! j
.
j ! .i 3 2
i ! t I i (ji l
I g': j
,
!- 1. .
.
E'
.
jr) i I
.
1 i t ;
.
i 1 '
.
' I i
'
;
h 1l
)
Requirements Specification Design Implementation Integrationl I ' (Analysis)
l rt t Phase during which cost estimate is made
t I ;
r 1 11
1 ' Flsur. @a Model estimate of relative range of cost estimate for ecch Iife-cycle phase.

p ' ( '
'
t ( '
1
! ;
i p ! -
. )
'
j j j
Please purchase Image To PDF Converter on to remove this message, thank you.
q
'
'
I
I
: I
' j
'
' j
'
M ESTIMATING DURATION AND COST 25@ 1l
; ' l
i
'
'
.
js- possible appropriate time
,
the result probably would have been in the still relatively j
e, wide range of ($0.67 million, $1.5 million). In other words, cost estimation is not an ' i

1
le exact science, for the reasons given in the next section. The data on which this model j j
.
:
lg is based are old, including five proposals submitted to the U.S. Air Force Electronic 1
h S stems Division (Devenny. l 9761, and estimation techniques have improved since ! l) y j
r- that time. Nevertheless, the overall shape of the curve in Figure 9. 1 probably has not . ' '
I 1
le changed overmuch. Consequently, a premature duration or cost estimate. that is, an I
h been signed off by the client, is likely E . 1ld estim ate made before the specihcations ave
; j
to be considerably Iess accurate than an estimate made at the correct time. 1
he assumption 7 l2e We now examine techniques for estimating duration and cost. T
i
'st throughout the remainder of this chapter is that the specihcation phase has been I : !
' jry completed; that is
,
meaningful estimating and planning now can be carried out. p
' .
I
US 1,
. -
Ile
IC
> 1
ln
i
l
j 'it
e @.2 ESTIMATINO p uu Tlox ANp tosT l l

ld ! i 1
t The budget is an integral part of any software project management plan. Before ) 'j,s
ly d velopment com mences
,
the client wants to know how much he or she will have ) : ie
'st ' to pay for the product
.
If the development team underestimates the actual cost, the i
l
:St development organization can Iose money on the project. On the other hand, if the i ' ,I
' developm ent team overestimates
,
then the client may decide that, on the basis of cost- l
.
'
* ''' ) !b
eneht analysis or return on investment, there is no point in having the product built. j
) ) lAlternatively
,
the client may give thejob to another development organization whose 7 (
estimate is more reasonable. Either way, it is clear that accurate cost estimation is à k tI
' Critical. ' F l
'
'
j .ln fact
,
two types of costs are associated with software developm ent. The first ;
.
ri
s the internal cost, the cost to the developers; the second is the external cost, the 1

I 'j Icost to the client. The internal cost includes the salaries of the development teams, ! j
managers, and support personnel involved in the project', the cost of the hardware and : 1 1j ! l
software for developing the product', and the cost of overhead such as rent, utilities, t I lI I
and salaries of senior management. Although the external cost generally is based j ! j j
'
.
) jon the internal cost plus a prolit margin, in some cases economic and psychological l l
factors are im portant. For exam ple, developers who desperately need the work may r ' . '
,
'
i I !be prepared to charge the client the internal cost or less. A different situation arises :
lwhen a contract is to be awarded on the basis of bids
.
The client may reject a bid r ) Il
ithat is signihcantly Iower than all the other bids on the grounds that the quality of the ) jj 'resulting product probably also would be significantly lower
. A developm ent team ,l
( Itherefore may try to come up with a bid that will be slightly
,
but not signiticantly, j ë . j
lower than what they believe will be their competitors' bids. ' ! ll
E
Another important part of any plan is estimating the duration of the project. The l l; 1
client certainly wants to know when the finished product will be delivered. lf the j j
development organization is unable to keep to its schedule, then at best the organiza- ! .1
l ltion Ioses credibility
,
at worst penalty clauses are invoked. In alI cases. the managers
l y
I
.

$ j )l I
, -' jt
i 1t
'
i '
Please purchase Image To PDF Converter on to remove this message, thank you.
l h
- I @ : 1 '7(
.
1
.
i
1
4 ': j ,l . : alo e u .p . . . . . plonnin. ond Esgimo'ino ,
l i E ; '' '' ''-'''' '
.
.
'
I l I
l l ' responsible for the software project management plan have a lot of explaining to do. jI l
.j k , Conversely, if the development organization overestimates the time needed to build
1 i ! the product
,
then there is a good chance that the client will go elsewhere.' I j '
lp i Unfortunately, it is by no means easy to estimate cost and duration requirementsù !
li I accurately
.
Too many variables are involved to be able to get an accurate handle on. j ! E, k
jj r either cost or duration. One big difhculty is the human factor. Over 30 years ago,
I'1 ': i Sackman and co-workers observed diftkrences of up to 28 to l between pairs of

il i i sackman
,
Erikson. and Grant, 19681. lt is easy to try to brush off their. j programmers gl L
.
I y results by saying that experienced program mers always outperform beginners
,
but1' i i s
ackman and his colleagues com pared matched pairs of programmers
.
They observed,' I l l I
.
I i
,
j 1 for example, two programmers with 10 years of experience on similar types of projects ,'
I and measured the tim e it took them to perform tasks Iike coding and debugging
.
Then '
'
I l ! they observed
,
say, two beginners who had been in the profession for the same shortlt l
11 ; i length of time and had similar educational backgrounds
.
Comparing worst and bestl j
. ! . . j
(jut;t sjze, 8 to l in product11 ' : pertormances, they observed ditterences ot 6 to 1 n proi
Ii i execution time
,
9 to l in developm ent time, 1 8 to l in coding tim e, and 28 to 1I i
;11 in debugging time

. A particularly alarming observation is that the best and worst! k
' .
'
,!
i ! performances on one product were by two programmers
,
each of whom had 1 l years
;.
l:' t f
xperience. Even when the best and worst cases were rem oved from saekman! , t o e
I ! : !,
.
,
tj et al. s sample
.
observed ditferences were on the order of 5 to l . On the basis of thesei
.
- jl results
, clearly we cannot hope to estimate software cost or duration with any degree1! : ;
. .
5 ii j '! ot accuracy (unless we have detailed intormation regarding alI the skills of all our
' ' : (
) !1 j employees
,
which is unusual). It has been argued that, on a large project, differencesi
i i individuals tend to cancel out
.
but this perhaps is wishful thinking', the presencei amongI :
-1 ; of one or two very good (or very bad) team members cause marked deviations from
lj1 schedules and signihcantly affect the budget

.
; tl 5 Another human tactor that can affect estimation is that, in a tree country, there q
.
l 1 is no way of ensuring that a critical staff member will not resign during the project. '1
l Time and money then are spent attempting to lill the vacated position and integratej '
.
t
' 1 i the replacement into the team or in reorganizing the remaining team members to
,
l ' compensate for the loss. Either way, schedules slip and estimates come unstuck

II u
nderlying the cost estimation problem is another issue: How is the size of a .i
I i duct to be measured?
'pro i
:
l
p
.
;
.
.
j l ,l k @.Q.l M zvRlts :oR Tu: $I= o: A pRoputT
t l 1 l1 1
q) ' I , !
.'
1. , j The most common metric tor the size of a product is the number of lines of code
.
r t .
.

li , . Two different units commonly are used.
.
Iines of code (LOc) and thousand delivered?
,
1 : :
11 r source instructions (KDSI). Many problems are associated with the use of lines of' i
j . ('1
' code (van der Poel and Schach. 19831.! i
. .1 'L
l i 1 Creation of source code is only a small part of the total software development' j .
1
'
I I effort. It seems somewhat far-fetched that the time required for prototyping
,
i
! h 1 '.
.
: ;
1
$ specitying, planning, designing, implementing, integrating
.
docum enting, and .
'
t 1 .'' '
. testing can be expressed solely as a tunction of the number of Iines of code of
,.
1
1 the tinal product. ,
j '
I 1

I
I !
t t êl !
'
1i
;.
) 1 j r
Please purchase Image To PDF Converter on to remove this message, thank you.
II
'
: . l
l
!
. I
@.a ESTIMATING DuuTloN ANo CosT %*1 ll
I7 :
$
'
j J -1
o. 2. lmplementing the same product in two different languages results in versions (
: ' jld with different numbers of lines of code
. A lso, with languages such as Lisp or
.
(
with many nonprocedural 4GLs, the concept of a line of code is not defined. !
t ' lktS 3
.
It often is unclear exactly how to count lines of code. Should only executable ' !
j 'An
lines of code be counted or data detinitions as well? And should comments be 1

0. counted? If not, there is a danger that programmers will be reluctant to spend h t ('
r I
Of time on what they perceive to be 'bnonproductive'' comm enting
s
but if comments I I j
:ir ted then the opposite danger is that programmers will write reams of ! I Iare coun .
'Ut i ttempt to boost their apparent productivity. Also. what about l i 1comments n an a j
2 ingjob control language statements? Another problem is how changed lines l ' I, count
ltS lines are counted in the course of enhaneing a product to improve l
.
or deleted
' lines of code is decreased. Reuse of '
:
1Sn its performance
,
sometimes the number ot l
'rt code (Section 8
.
I ) also complicates line counting: If reused code is modified, à ; j
tSt how is it counted? And what if code is inherited from a parent class (Section I ,
'Ct 7
.
8):7 In short, the apparently straightforward metric of lines of code is anything 8
t but straightforward to eount
.
1 '
l :7st
-
j !4
. Not a11 the code written is delivered to the client. lt is not uncommon for halt the .

,
Lrs 1
code to eonsist of tools needed to support the development effort. )
an r
5. Suppose that a software developer uses a code generator, such as a report gen- '1
,
'
:se
tor a screen generator, or a graphical user interface (GUI) generator. After a lera ,ee
few minutes ofdesign activity on the part ofthe developer, the tool may generate l ; r
.
ur j
f lines of code. r imany thousands o
es ti
Ice 6. The number of Iines ofcode in the final product can be determined only when the l ,
' basing cost estimation on lines of code h'm product is completely hnished. Theretore, (
- ;
is doubly dangerous. To start the estimation process,the numberof lines of code in ) : )
:re the hnished product must be estim ated. Then, this estim ate is used to estimate the ' i
ct. cost of the product. Not only is there uncertainty in every costing technique, but
tte it the input to an uncertain cost estimator itself is uncertain, namely, the number ;
to of Iines of code in a product that has not yet been built, then the reliability ofthe '
r '
resulting cost estimate is unlikely to be very high. ' r I y
r ; 'a 2
j '
.
Because the number of lines of eode is so unreliable, other metrics must be con- , (
idered. So-called software science gl-lalstead, 19771 proposes a variety of measures ! 1 js l
-of product size. These are derived from the fundamental metrics of software science, ) .

l )
'
j
'
namely, the num ber of operands and operators in the software product and the num- ;
'
unique operands and unique operators. As with lines of code, these numbers i
j
'
lber ot1
C. ' h been completed
,
severely redueing the k $ ican be determined only atter the produd as
ed dies have cast doubt on the validity ! î
predictive power of the metrics. Also, many stu )
of
. .
iof software science lshepperd, l 988a, W eyuker, l 988b, Shepperd and lnce, 19941. 1 l g .
l I jAn alternative approach to estimating the size of a product is the use of m etrics
j j ;
)nt based on measurable quantities that can be determined early in the software process. r
lg For example, van der Poel and Schach put forward the FFP metric for cost estima- t
5
,
j
nd tion of medium-scale data processing products, that is, produets that take between 2 ' C I
of and 10 person-years to complete gvan der Poel and Schach, 19831. The three basic ) !
structural elem ents of a data-processing product are its files, flow s, and processes; t
C j7
'

( ! t
Please purchase Image To PDF Converter on to remove this message, thank you.
'
j
'
.
j '1
1 1:!
*
1
*

I i .1
j .l i l
.
: j 1 j QlQ < H A p T : R @ * plonnlng ond Esiimogingl 1
:i I àI i
!
: j j . the name FFP is an acronym formed from the initial letters of those elements. A
1 I file is defined as a collection of logically or physically related records permanently '
i l ident in the product'
,
transaction and temporary files are excluded. A flow is a dataj res1 ù i
interface between the product and the environment
,
such as a screen or a report. Al 1 l
i ! ! process is a functionally defined logical or arithmetic manipulation of data; examples1
! 1 i include sorting
,
validating, or updating. Given the number of files, Fi

,
flows. Fl, andI i !
I : ; processes, #r, in a product. its size S and cost C are given by!
I I S
=
Fi + F/ + f'r (9.1)I 1 11
c = d x s (v.a)i I
t !j : where J is a constant that will vary from organization to organization
. Constant d is a
11 I measure of the efficiency (productivity) of the software development process within1
.
I I
1, j ! that organization. The size of a product simply is the sum of the number of liles
,.1 1 i flows and
processes, a quantity that can be determined once the architectural design11 ; ! ,
: !' ' is complete
.
The cost then is proportional to the size. the constant of proportionalityi ? i ! :
( jj . d being determined by a least-squares fit to cost data relating to products previously1
developed by that organization. Unlike metrics based on the num ber of lines of code
,
'
l i .E
; 1
'
i' 11 i the cost can be estimated before coding begins.11 i
. li . The validity and reliability of the FFP metric were demonstrated using apurposivei
JI i ;
.:1 sample that covered a range of medium-scale data-processing applications. Unfortu-
11 2 nately

, the metric was never extended to include databases, an essential component'
.
; 1 1 !
'' '
'i ( of many data-processing products.'
, I i'
i 1 i A sim ilar, but independently developed, metric for the size of a product was
'
t'
:
1 developed by Albrecht based on function points tAlbrecht
, 19791. Albrecht's metric1 I
.
; is based on the number of input items, lnp, output items
,
Out, inquiries, lnq, master!
I . files
,
Maf, and interfaces, lnf. In its simplest form the number of function points, F#, ,
j
l is given by the equation :
I
l F# = 4 x lnp + 5 x Out + 4 x lnq + 1 0 x Maf + 7 x lnf (9
.
3) '!
l
1 Because this is a measure of the product's size. it can be used for cost estimation and
I roductivity estimation
.
P.

'
!I 1 Equation (9
.
3) is an oversimplihcation of a three-step calculation. First, the un-i
d ted function points are computed: ', y a jus
'
)
.
.
1 l 1 Each of the components of a product-/rw, Out, lnq. Maf, and lnf must be (<<i l
1 !
classilied as simple, average. or complex (see Figure 9.2). ntlii
-
'

li 1
*
1
*
1
*
1
*
l I ! 2 Each component is assigned a number of function points depending on its level
.
Viî
, ! -
. j ' k
.
For example. an average input is assigned 4 function points

,
as reiected in equa-
t.
1 ! !14 t : tion (9
.
3). but a simple input is assigned only 3, whereas a complex input is
' !1 i ned 6 function points
.
The data needed for this step appear in Figure 9.2. . B(1 , ass g
,
'
.
E
'
'' 1. .
l 1 3
. The function points assigned to each component are then summ ed
,
yielding the(
'
1 k
-
j j I unadjusted function points (&F#).
1 jl second, the technical complexity factor (FcF) is computed. This is a measure of
1 r the effect of 14 technical tactors, such as high transaction rates
,
performance criteria j'uj
1 i f
or example, throughput or response time), and online updating; the complete set of in(l
J factors is shown in Figure 9.3. Each of these 14 factors is assigned a value from 0 coIl /

E I I I .
.
1 :i I ' '
'
k
1 j 1 ; .
Please purchase Image To PDF Converter on to remove this message, thank you.
! I
!
'
i l
. !
i
.
I
'
1
L
'
i 1
ESTIMATING DURATION AND COST Q*3 ! I*4 i
l1
' !'
' l
A j IL
evel of Complexip ' jly '
lLa
Com ponen' Km ple Average Com plex t t
A ; l
ë ! l

ls Input item 3 zt 6 ' l
: l
kd output item zt 5 7 1
! I
Inquiry 3 zt 6 I ! .
: j j >f
ile 7 10 75 ; I 1 'Master1)
'
1 1,Interface 5 7 1 O :
:
l ,.Q)
j j!
,
'
! .;
.
I 'a Flgure @.Q Table of function point values.
! .In
S , qi
in q Data communication : ' 1
'
( jty 2 D
istributed data processing y 1j '
X 3 Ferformance criteria l
. l
.
i 1e
,
I:
. Heavily utilized hardware :l

5. High tronsaction rates l 1le
q !6
. online data entry j E ltl
- j7
.
End-user efficiency 1 k 'nt
j : , 18
.
online updating 1 ë I
j ' Ils 9
. Complex computations l :
ic 1 o. Reusability i
i 2 -Pr 1 1
.
Ease of i nstallation ! : jr
.P, 1 2
.
Ease of operation ! ë I
L i
1 3 . Fortabilify ) I
3) 1 21. ' VQ i nta i na bi I ity '
.
'
'
jld :
Flgure @.a Technical factors for
.
I
function point computation. ; I li
a- 2 Ij

s
I
(dtnot present or no influence'') to 5 (tûstrong innuence throughout''). The resulting 14le
ielding the total degree of influence (Dl). The FCF is then ' !numbers are summed. y
: i
given by ) j j,1 . k
i ta
-
TCF = 0.65 + 0.0 l x Dl (9.4) li
.
i S . ! :
Because D1 can vary from 0 to 70, FCF can vary from 0.65 to l .35. 1 ; E! :
'
I! IThi
rd, F#, the num ber of function points, is given by t
le '1 ! j
F# = &F# x TCF (9.5) ) ' I
i l
E)f Experiments to measure software productivity rates have shown a better fit using ' ; 1
' gia function points than using KDSI
. For example, Jones has stated that he observed errors .
Jf in excess of 800 percent counting KDSI, but only (emphasis addedl 200 percent in ;
0 counting function points (Jones, 19871, a most revealing remark. !
'
, k
k l $
'
.
l l i
'

I !
Please purchase Image To PDF Converter on to remove this message, thank you.
1 : ë
'
(
'
1 1 2 -! )
l ) '. j
I I
19 i aê* t u A p T . R @ @ Planning ond Es#im o#ingl
I ; j i
'
-
-
t
'
tt 1, l -
I Assembler Version Ado VersionI ! -1 l
il : Source code size 70 KDSI 25 KDSI
(
'
I l
à ( Development costs $1 ,043,Q00 $590,0001
E !j ; KDSI per person-
month 0.335 O.2 1 1
1 1 I cost per source statement $1:
.
90 $23.60I i i '
l l ( Function points per person-month 1 .65 2.92
' I E

.
1 ! Cost per function point $3,023 $ 1 , 1 ZO
1 I
1 l ylgwe. @.* comparison of ossembler and Ado products Elones, 1 987).h 1
op (?8z 1E:E.)1 1 ( -
! I : .I 1
'
j 'i l
To show the superiority of function points over lines of code, Jones cites the 'l ' .
i !! ' m Ie shown in Figure 9
.
4 glones, 19871. The same product was coded both in :: exa pii i
: Ada and the results compared. First, consider KDSI per person- 'i assembler and int
'
t
'
i . .
lë @ month. This metric tells us that coding in assembler is apparently 60 percent more
'
1 1: 1! j efhcient than coding in Ada, a fact that is patently false. Third-generation languages
! 1' ! i like Ada have superseded assembler simply because it is much more efticient to'
.
, i r
l f 1 code in a third-generation language
.
Now consider the second metric, cost per source. it
' t ' N te that one A da statement in this product is equivalent to 2
.8 assembler11 : . statement. o
ià 1 I f fji
cjejwy again implies' : statements. Use of cost per source statement as a m easure o e

: I !J
I i that again it is m ore efucient to code in assembler than in Ada
. H owever, when
:
'
I1 t ) function points per person-month is taken as the metric of programming efticiency,I 1
'
I k the superiority of Ada over assembler is reflected clearly.
I i
j On the other hand, both function points and the FFP metric of equations (9. 1) andI
- .
t
I (9.2) suffer from the same disadvantage: Product maintenance often is inaccurately' 1 r d when a product is maintained
,
major changes to the product can be made. measure .1 I
' 1 without changing the number of files. flows, and processes or the number of inputs,
l t uts
.
inquiries. m asterules, and interfaces. Lines of code is no better in this respect.I ou p
! To take an extreme case, it is possible to replace every line of aproduct by acompletely
I different line without changing the total number of lines of code.
.
1 At least 40 variants of and extensions to Albrecht's function points have been '
'
1 ' roposed lMaxwell and yorselius
, 2000). Mk 11 function points were put forwardl p
y,l 1 j' ! b symons to provide a more accurate way of computing the unadjusted function '
1 ' 8 F#) gsymons, 19911. The software is decomposed into a set of componentpoints (&6
1 1 i transactions
, each consisting of an input, a process, and an output. The value of UFP 61) t

(
.
) . then is computed from these inputs, processes. and outputs. Mk 11 function points are
.
, i 1î (
1 ! ; widely used all over the world (Boehm, 1997J.
J ! j ' ': :
t
'
! l !
' j
,
i y tosy Esyl-aylox@
.2.Q :tHNIqu:s o'
.
,
1 2
$
'
I1
Notwithstanding the difhculties with estim ating size, it is essential that software de-:-
1
*
j- 1
*
j : velopers simply do the best they can to obtain accurate estimates of both project
I :
'
!'
y

'
j( j ';
'
.
'
.
I (
'
I .) 'i
( 'lt ;
Please purchase Image To PDF Converter on to remove this message, thank you.
.
i j
'
j:
1
.
l
ESTIMATING DURATION AND C05T Q*5 è 1@.Q
1
ë
'
'
j .
.
: I
duration and project cost, while taking into account as many as possible of the tac- l1
.
tors that can affect their estimates. These include the skill levels of the personnel, j ,
the complexity of the project, the size of the project (cost increases with size, but l

' iliarity of the development team with the application 1 imuch more than linearly), tam )
area, the hardware on which the product is to be run, and availability of CASE tools. 1
Another factor is the so-called deadline ettect. lf a project has to be completed by a ; jI
g ''
certain time, the effort in person-m onths is greater than if no constraint is placed on I .
E j icompletion time
.
: II ! I
From the preceding list, which is by no means comprehensive, clearly estimation ' ; l j' li
s a difhcult problem. A number of approaches have been used, with greater or lesser ; $ j
: : r j
.
SUCCCSS. h l
i '
1 I1
.
'xpee: Judg- en: by Anellgy ln this technique, a number of experts i 1
lh
e are Consulted. An expert arrives at an estimate by com paring the target product to j
i l involved and noting the sim- ! I 'in completed products with which the expel't was act ve y i
j
jn- ilarities and differences. For example, an expert may compare the target product to a l 1
imilar product developed 2 years ago for which the data were entered in batch mode, ! I
)re S j I
es Whereas the target product is to have online data capture. Because the organization !
,
j; :
to is familiar with the type of product to be developed, the expert reduces development j j
.ce time and effort by l 5 percent. However. the graphical user interface (GUI) is some- ! i.;
1I

er what complex; this increases the time and effort by 25 percent. Finally, the target j j
ies . product has to be developed in a Ianguage with which most of the team mem bers are # !
en unfamiliar, thus increasing time by 15 percent and effort by 20 percent. Combining I
' -'- j
ay . these three figures, the expert decides that the target product will take 25 percent more ë
F
'
'''-' '' ''-' ''' j
time and 30 percent more effort than the previous one. Because the previous product ):
l
na took 12 months to complete and required I00 person-months, the target product will r ' I
ly take 15 months and consume l30 person-m onths. ë i'
t Id
e Two other experts within the organization compare the sam e two products. One : yL
. .
j j
gts, concludes that the target product will take l 3.5 months and 140 person-months. The . r'
.
( p 'rct
.
Other com es up with the hgures of I 6 m onths and 95 person-m onths. How can the
' hese three experts be reconciled? One technique is the Delphi tech- ; i $Iy predictions ot t jt .
ique: It allows experts to anive at a consensus without having group meetings, which ' lZ I
I '
ren Can have the undesirable side effect of one persuasive member swaying the group. j q I 'l1
l l 'j .:krd
.
ln this technique. the experts work independently. Each produces an estimate and ) I j j
a rationale for that estimate. These estimates and rationales then are distributed to '' lj i 'on
'

estimation and 8 l
znt all the exoerts. who now oroduce a second estimate. This process ot
.
''
'
' * * j
VP distribution continues until the experts can agree within an accepted tolerance. No 1 I
! ! j 'àre group meetings take place during the iteration process.
Valuation of real estate frequently is done on the basis of expert judgment by j l
Iogy. An appraiser will arrive at a valuation by comparing a house with similar t 1ana 1
houses that have been sold recently. Suppose that house A is to be valued, house B j p, j
next door has just been sold for $205,000, and house C on the next street was sold ! I
; . I3
months ago for $2 1 8,000. The appraiser may reason as follows'. House A has one : 1
1e- more bathroom than house B, and the yard is 5,000 square feet larger. House C is ! 1
I
act approximately the salne size as house A, but its roof is in poor condition. On the l ' '
:
1 .
.
( l j
; l i
7 i
'
I I
.
I ll
I 1t i
:
'

'
Please purchase Image To PDF Converter on to remove this message, thank you.
' l . !
'
l 1 l i( '
'
i
.
'
jj l-j
d
i
'
- k
'
: j ; 2** t H A p T : R @ @ Plonning ond Esfimogingl
i :
'
.
2 j ! other hand, House C has a jacuzzi. After caretul thought, the appraiser may arrive at
'
i l , a figure of $2 l 5,000 for house A.
1 : ! ln the case of sottware products, expert judgment by analogy is less precise
'
1 1 l than real estate valuation
.
Recall that our first software expert claimed that using' 1 t1
familiar Ianguage would increase time by 15 percent and effort by 20 percent.1 j ! an un
I l I Unless the expert has som e validated data from whieh the effect of each difference cani
-

:1 b
e determined (ahighly unlikely possibility), errors induced by what can bedescribed) l j
I : only as guesses will result in hopelessly incorrect costestimates. In addition, unlessthe11 j !r experts are blessed witla total recall (or have kept detailed records), their recollectionsI
1 : ofcompleted products may be sufficiently inaccurate as to invalidate their predictions.'
j 1 Finally
,
experts are human and, therefore, have biases that may affect their predictions.
j i At the same time, the results of estimation by a group of experts should reflect their' j
1 i collective experience', if this is broad enough, the result well may be accurate.
-
1 i l 'I
i 11 i )
1! . i a. BoHom -vp Appeootll one way of trying to reduce the errors resulting
'
Ji i i from evaluating a product as a whole is to break the product into smallercomponents
.
@ l 1 ! '
i j i Estimates of duration and cost are made for each component separately and combinedl
; ! i ; : -j! j E to provide an overall hgure
. This approach has the advantage that estimating costs
: 17 1 i for several smaller components generally is quicker and more accurate than for one
'
t
'
! ! '
ji , , large one. In addition, the estimation process is likely to be more detailed than with
11 large
,
monolithic product. The disadvantage of this approach is that a product is, g one
K

1 l! i ;
more than the sum of its components. .4. i
' j : ;
.
: 1, I with the object-oriented paradigm, the independence of the various classes helps
' '
) $' 1 the bottom-up approach
.
However, interactions amone the various obiects in the nrod-
' I : ' - ''''' * ;l uct complicate the estimation process
.1
1 i 1
I i :
r a. Alsoel:hm ll tos: Es:Im o:I M odels ln this approach, a metric
,
such as
1 function points or the FFP metric
,
is used as input to a model for determ ining product 1
.
l ;
I cost. The estimator computes the value of the metric', duration and cost estimates
I
' then can be computed using the model. On the surface. an algorithmic cost estimation
model is superior to expert opinion, because a human expert, as pointed out previously, i
.
! 4
! j is subject to biases and may overlook certain aspects of both the completed and target
' products. ln contrast, an algorithmic cost estimation m odel is unbiased', every product
is treated the same way. The danger with such a model is that its estimates are only as ,

: l d as the underlying assumptions
. Forexam ple, underlying the function point modeli #OO
l ! is the assumption that every aspect of a product is embodied in the five quantities on 1
! the right
-
hand side ot equation (9.3) and the 14 technical factors. A further problem: i à
(11 1 è is that a significant amount of subjective judgment often is needed in deciding what
li i ' lues to assign to the parameters of the model
. For exam ple. it frequently is unclear
J
I i ! ' VZ
Tj : I whether a specific technical factor of the function point model should be rated a (
.
i I . 3 or a 4. t
l i M any algorithmic cost estimation models have been proposed
. Some are basedon
I mathem atical theories as to how soltware is developed. Other models are statistically t
l 1 based'
,
large numbers of projects are studied and empirical rules determined from the (2
.
l 1j
I data. Hybrid models incorporate mathematical equations, statistical m odeling, and t
l
'
,
j I
.
( I r
: 1

t t .l
i ? .
Please purchase Image To PDF Converter on to remove this message, thank you.
7 I
'
j
'
t
'
j
' I
p.a ESTIMATING DuRv loN AND CosT 2*7 '1
l
'
'
j
Iat
y
JusT IN tAsz You W ANU P To KNow 1, 'j
ge r
!; . . i j
.
ZOCOMO is an acronym tormed from the first two The phrase COCOMO model should not be used. i I
t' ' i constructive Cost M odel
.
After all, the MO in COCOMO already stands for ' jIetters ot each word n .
Any connection with Kokomo, Indiana, is purely ''model.'' I l
! ( .d
homophonic. I ! j
: : ( tC . ,

j '
as 7
, kl
' 1 1
lS. ' ijI
l.s. ' E i i
' COCOM O which is ' it I
)ir . expert judgment. The most important hybrid model is Boehm s ,
described in detail in the next section. (See the Just in Case You W anted to Know box r i
' discussion of the acronym COCOMO.) ( 'above for a
! lg
i I
s. $ . t .
d @.Q.a IXT:RM:PIAT: t@ t@ M @ d : l
l
S
cocoM o actually is a series ofthree models, ranging from a macroestimation model i l
e y lthat treats the product as a whole to a microestimation model that treats the product
. :Lth I
in detail. In this section, a description is given of intermediate COCOMO, which has è 1i
s
. . . . . .
i:
a middle level ot complexity and detail. COCOMO is descrlbed ln detail in gBoelzm, ! 4 I
!
l98 1 1. an overview is presented in gBoehm, 1984171. 1 'i Is ' rP
I
)
Computing development time using intermediate COCOM O is done in two !d
-

.
) j
stages. First, a rough estimate of the development etfort is provided. Two parameters ) I
have to be estimated: the length ofthe product in KDSI and the product's development r j
.
'
k
mode, a measure ot the intrinsic level of difficulty of developing that product. There t : jaS
.
'
are three modes: organic (small and straighttorward), semidetached (medium sized). I
Ict l
and embedded (complex). t 1 ,.es
' From these two parameters, the nominal ç#i?r/ can be computed. For example, l j 1'on
. . .
l !
it the project is judged essentially straighttorward (organic). then the nominal etfort ( :$l
y, ja tjon 1 l d 11(in pers
on-months) is given by t e equa : j j
;et .
.
r ( : 2
KDSIII 'osperson-months (9.ô) ( l '!:Ict Nominal eftort = 3. x (
,' t ! :
as The constants 3.2 and l .05 are the values that best htted the data on the organic mode ; ) 1
le1 ducts used by Boehm to develop intermediate COCOM O
.
è
.
1 'pro

on ' ! i 1For example
, if the product to be built is organic and estimated to be 12,000 j
, l
rm delivered source statements ( 1 2 KDSI), then the nominal effort is è l l
j i 1 'lat j ()
.j ; .3
.
2 x ( 1 2) ' = 43 person-months l j I
:ar k l
L a (but read the Just in Case You Wanted to Know Box on page 268 tor a comment on Ij 1
'
l 1
.
this value). . ji
on Next, this nominal value must be multiplied by l 5 wftware development e'.#'tpr/ f I
( l .Ll
y multlpliers. These multipliers and their values are given in Figure 9.5. Each multiplier j t
he can have up to six values. For example, the product complexity multiplier is assigned i 1
I
nd the values 0.70, 0.85. 1 .00, 1 . 1 5, 1 .30. or 1.65 according t() whether the developers )f 1.
'
i J
'
: l j'
(
.
; h ! .k
j l l :j !
r
Please purchase Image To PDF Converter on to remove this message, thank you.

' l ; 1
l ( : 1 .l
I . l
.' j /
'
.
il : ' :q
l f i:
'
i k ala t u A p 4 . k @ . planninq ond Es#lmo#ing
i :1 1
-
l ! ,'l J J
us: IN QASZ Y@u W ANT.P To KNowl L
l k
.
l t
.
i l :1
: ( @ne reaction to the value of the nominal effort might product has to go through all the phases oî the life cycle.i
'
1'' l 1 be ''If 43 person
-
months of effort are needed toproduce ln other words, the total effort of 43 person-months is1 y ! ,
i l l l 2 000 delivered source instructions
,
then on average shared among many activities, including coding. As
l 1. i each programmer is turning out fewer than 300 lines retlected in the pie chart of Figure l
.2, module coding'
j 1 ' of code a month-l have written more than that in one on average is only about l 5 percent of the development. I l.

I
l î night.'' effort.
l ' 1 x 3to-line product usually is just that: 3(o3 i
y' 1 l
k lines of code. ln contrast. a maintainable 12,0()0-line1 1
.
, : E
,
1 ? ?1
1 I j' i !
!. I k
; ! l .'
t i t 6 .
; I : rate the project complexity as very low, low, nominal (average). high, very high, or: fl j :
.
1y j . extra high. As can be seen from Figure 9.5, al1 15 multipliers take on the value 1.00
î ' ' j 't j1 i when the corresponding parameter is nominal.
: lk é 1 Boehm has provided guidelines to help the developer determine whether the pa
-
,
:
'
: j l q !
r t: t rameter should indeed be rated nominal or whether the rating is lower or higher
.
For; l i !
.( (( , ; example, consider again the module complexity multiplier. If the control operations
# i! i ' of the m odule essentially consist of a sequence of the constructs of structured pro
-Q
y

1 j k
.
) l , gramming (such as if-ihen-else, do-while, eose), then the eomplexity is rated very
' t ! I
, : i dtpw. lf these operators are nested, then the rating is low. Adding intermodule control
I è d decision tables increases the rating to nominal. If the operators are highly nested,an
'
l ) .' with compound predicates
. and there are queues and stacks, then the rating is high.1
. i
( The presence of reentrant and recursive coding and lixed-priority interrupt handling .$ l
ushes the rating to pcr
.
v high. Finally, multiple resource scheduling w ith dynami-
,
f ( PI
cally changing priorities and microcode-level control ensures that the rating is extra .l
I high. These ratings apply to control operations. A module also has to be evaluatedj 1 from the viewpoint of computational operations, device-dependent operations, and
,
.
j i, data management operations. For details on the criteria for computing each of the '
'
'
t 15 multipliers, refer to LBoehm, 1 98 11.
) ; To see how this works, gBoehm, 1984171 gives the example of microprocessor-
.
ë ! 1 '!
,
based communications processing software for a highly reliable new electronie funds1 j L transfer network
,

with performance, developm ent schedule, and interface require-
'' ! This product fits the description of embedded mod
e and is estimated to be' t l ! ments.
' j . : 10
,000 delivered source instructions ( I 0 KDSI) in length, so the nominal develop-
.
j i '' l
j ! ment effort is given by$1
.
!
.( ,( ; ; Nominal effort = 2.8 x (KDSl)1'20 (p.z)
j j 1 :
l
!
'
(Again, the constants 2.8 and 1.20 are the values that best titted the data on embeddedI1
/ 7
) j : products.) Because the project is estimated to be 10 KDSI in Iength, the nominall
p l effort is
l E
'
i ? 1
,
2: 44 erson-months( 2.8 x (10) = pl k

( )( j- r
$
1 1
. ' j ! ; '
Please purchase Image To PDF Converter on to remove this message, thank you.

E
'
. ;
! 1.!
'
E I?ë1
. :i*
.2 ESAIMATING DURATION AND COST Q*
.
.
-
.
)
'
r 1 l '
.
:
ing l lRo'
l 11
.
1:
very very Exiro r ;
lC
os' Drlvers Low Low Nom lnol High Hlgh High ! '
I '
' I h:
Froduct attributes ! ' i j; .
qequired soffware relicblity 0.75 0.88 1 .OO 1 . 1 5 1 .4O I ' 1 1)(
,
Dotabase size 0.9: 1 .OO 1 .O8 1 . 1 6 ' i i ! !

. . .
: I E i .
Froduct complexity 0.Z0 0.85 1 .0O 1 . 1 5 1 .3O 1 .65 '. . ' 11
'
'
jc
omputer ottributes j j '(
'
Execution time constroint 1 .OO 1 . 1 1 1 .3O 1 .66 l ' '
i I
Main storage constraint 1 .OO 1 .O6 1 .2 1 1 .56 , l ; .
1 I .Vi
rtual mcchine volatilifyw 0.87 1 .OO 1 . 1 5 1 .30 i : ':
j . . #Computer turnaround time 0
.87 1 .OO 1 .0Z 1 . 1 5 j
. )
'
l
Fersonnel ottributes . i 1
Analyst capabilities 1 .46 i . 1 9 1 .OO 0.86 0.71 l I
j
1.
'
A Iicotions experience 1 .29 1 . 1 3 1 ,OO 0.91 0.82 l
j l .PP 1 (I
. Frogrcmmer capability 1 .:2 1 . 1 7 1 .OO 0.86 0.70 t
p I
r Virtual machine experience* 1 .2 1 1 . 1 O 1 .OO 0.90 ' 1 '
;
1

; Frogramming Ianguage experience 1 . 1 zl. 1 .Q7 1 .00 0.95 i $l
j- ' q
roiect attributes F .
l Use of modern programming practices 1
.
2: 1 . 1 O 1 .0O O.9 1 0.82 i jp : 2
l r Use of sohwore tools 1 .2z 1 . 1 O 1 .OO O.9 1 0.83 j l
. t
( t
,
kequired development schedule 1 .23 i .O8 1 .OO 1 .O: 1 . 1 O ! i If
'
I ! :
'
.
'
,
I
I 2 I A'For a given sohware product, the underlying virtuol mochine is lhe complex of hordware and i j
I sohware (operating sysfem, dotabase managemenf system) it cclls on to occomplish its task. ; !
. j'
l
.
L Flgvee *.5 Intermediate COCOMO soffware development effort multipliers (Boehm, 1 98:1:1. j ; @
i
!
'
.
l ' ' (@1 (./8: IEEE
.

) !:
1 1 i2
I! )5
, r
( !
The estimated development effort is obtained by multiplying the nominal effort I 1 ë
h 15 multipliers. The ratings of these multipliers and their values are given in i ' ( !- by t e y
; ! !
s Figure 9.6. Using these values, the product of the multipliers is found to be 1 .35, so j j
.
-
the estimated effort for the project is ! l jl lD i ; )
.
l .35 x 44 = 59 person-months r I '
-
tt !
IThi
s number then is used in additional formulas to determine dollar costs. develop- 1 1
l l
s ment schedules, phase and activity distributions, computer costs. annual maintenance I , j .1
I
costs, and other related items', for details, see gBoehm, l 98 1 1. lntermediate COCOMO l I
j ( li
s a complete algorithm ic cost estimation m odel, giving the user virtually every con- i ' i
1 : i t lan
ning. i 1 )ceivable assistance n projec p
I termediate COCOMO has been validated with respect to a broad sam ple of i 1 '
. n #
r I j.63
projects covering a wide variety of application areas. The results of applying j ; !I

!
: j
.
i j i!
'
I lh
E ;
'
i
' I ! iq I
l
;
Please purchase Image To PDF Converter on to remove this message, thank you.
.
l I
: j l l i:
'
! -
' ' j k
'
' l 1
i i plonning and Eseimaging
.k ; i 2y@ t H A p T E R @ *
).
I l j j .
)
'
I I .
:) l l .! 1 Effort
h

'
1q j Cosi Drivers Situadlon Rofing Muliiplier
1
: ' i Required sohware reliability serious financial consequences of software faulf High 1
. 15 .
.:
1 j j1
l l Dotabase size zo
,
ooo bytes Low 0.94' I
i
'
'
j i Ii
y Product complexity Communications processing Very hîgh 1 ,20 'I
I 1 ))
I j ., Execution time constraint Will use 7O% of ovailable time High 1 . 1 1
''
1 I Main storage constraint z1.5K of 8AK store (70%) High 1 .06 '
,
1 I I
' ' virtrual machine volatility Based on commercial microprocessor hardware Nominal 1 .OO .'
l
I 1
'
j l I Computer turnaround time Two inour average turnaround time Nominal l .OO
'
: 1
l Analyst capabilities Good senior analysts High 0.86 ';E
x

j j y
'ë '11
.
Applications experience Three yeors Nominal 1 .OO
'
1 I I i
'
1
i 1 Frogrammer capability Good senior programmers High 0.8:l
I ! I!
11 ! I Virtual machines experience Six months Low 1 . 1 O
I
J1 ! j Frogramming Ianguage experience Twelve months Nominal 1 .OO' ! I
i 'i Use of modern programming practices Most techniques in use over one year High 0
.
91 .? ; j .
.i
i : )! (
.
Use of sohware tools At basic minicomputer tool Ievel Low 1 . 1 O1. t l!
)1 t . Required development schedule Nine months Nominal 1 .OO
jl '
! ) él
1
i !
i: ' i yIs.r. .
.
o Intermediate cocMo effort multiplier ratings for microprocessor communications sohware (Boehm,. $
'
j j I1

' 1 98z.K. (01(?8z IEEE.) '.j
'
l i' !
T
.
l 'j 1'!
,
1
t l intermediate COCOMO to this sample are that the actual values come within 20 per-
:
i .
1 I f the predicted values about 68 percent of the time
.
Attempts to improve on thisF I . Cent o
l accuracy make little sense because, in most organizations, the input data for interme-1 i diate cocoMo generally are accurate to within only + 20 percent
.
Nevertheless, .:
'
I 1
). j j the accuracy obtained by experienced estimators placed intermediate COCOMO at
,
I 1 the cutting edge of cost estimation research during the 1 980s; no other technique was:
) l consistently as accurate
.
I E
. : The major problem with intermediate COCOMO is that its most important input?
'
j? '
.
is the number of lines of code in the target product. If this estimate is incorrect, then '

! y every single prediction of the model may be incorrect. Beeause ot the possibilityl
! .( : that the predictions ot intermediate COCOMO or any other estimation technique
' L j1 ! j may be inaccurate, management must monitor alI predictions throughout software
l
' i ë development.
I ; è
t i 9
1$ l 'j ' '
' I
r lj @.Q.4 t@t@M @ 11l I
E
'
1 I .
'
; I 'j COCOMO was put forward in 1 98 l . At that time, the only life-cycle model in
'
1 he waterfall model
.
Most software was run on mainframes. Technologiesi I I use was t'
j I
.
I such as client-server and object-orientation essentially were unknown. Accordingly,
! i COCOMO did not incorporate any ot these tactors. However, as newer technolo-2
.
i
(q 1
k !
'
i 7
' ' 1 :@

,
1 .l 1; i 1
'
t # !
.
I ;
Please purchase Image To PDF Converter on to remove this message, thank you.
'
j
'
j
!
*2 ESTIMATING DURATION AND COST QFl q
t
'
'
j $
a
'
E
gies began to become accepted sottware engineering practice, COCOM O started to y
or' j te :become ess accura
. ,Iplier pCOCOMO 11 (B
oehm et al., 20001 is a major revision of the 198 1 COCOMO. 1
j ,j COCOMO 11 can handle a wide variety of modern software engineering techniques. ( j
including object-orientation, the various life-cycle models described in Chapter 3. IM
id prototyping (Section 10.3), fourth-generation languages ( 14.2), reuse (Section 7 irap
30 I I8
.
1), and COTS software (Section 2. 1 ). COCOMO 11 is both iexible and sophisti- : r11

Icated
.
Unfortunately, to achieve this goal, COCOMO 11 also is considerably more : t ):
)t, r j lcomplex that the original COCOMO
.
Accordingly. the reader who wishes to utilize j00
cocoMo 11 should study (Boehm et al 20001 in detail', only an overview of the i 1 I
'
1 l00
major differences between COCOMO 11 and intermediate COCOMO is given here. 1 I
86 First intermediate COCOMO consists of one overall model based on lines of : 1 lt
' j
00 code (KDSI). On the other hand, COCOMO 11 consists of three different models. The T i
86 application composition model, based on object points (similar to function points), ! 1 !I
1 O is applied at the earliest phases. when minimal knowledge is available regarding the : ! t
duct to be built. Then, as more knowledge becomes available, the early design i 100 Pr0
l l
p) model is used; this model is based on function points. Finally, when the developers l '
have maximal information, tbepostarchitecture model is used. This model uses func- I i1 O
!ti
on points or lines of code (KDSI). The output from intermediate COCOM O is a )00
t and size estimate; the output from each of the three models of COCOM O 11 is ! Icos
k
'
a range of cost and size estimates. Thus. if the most likely estimate of the effort is ) j
E then the application composition model returns the range (0.50A', 2.0F), and the l ' r 1' j
.
postarchitecture model returns the range (0.80F, 1 .25F). This reflects the increasing I ,
f the progression of m odels of COCOM O ll. laccuracy o
A second diftkrence lies in the effort model underlying COCOMO: l j) per- s

!
his ffort = a x (sizel'' (9
.
8) ! ! 1n t e
1:rm e
- j
jess, Where a and b are constants. ln intermediate COCOMO, there are three different . i jD ;
f values of the exponent b. depending on whether the mode of the product to be 1
.
l10 at 0
l .
z was built is organic (b = l .05), semi-detached (b = 1 . 12), or embedded (b = 1 .20) . In j )
COCOM O ll, the value of b varies between l .0l and 1 .26, depending on a variety of I lt
1 l
input parameters of the model. These include familiarity with products of that type, process 4 j !#
maturity level (Section 2. l l ), extent of risk resolution (Section 3.6), and degree of j Ithen' !
bility team cooperation (Section 4. l ). j I
ique ' A third difference is the assumption regarding reuse. lntermediate COCOMO ; k I lR l
iLware assumes that the savings due to reuse are directly proportional to the amount of :
l
reuse. COCOM O 11 takes into account that small changes to reused software incur i ; l
l 1 'di
sproportionately large costs (because the code has be understood in detail for even j , j
a small change and because the cost of testing a modilied module is relatively large). t
T .Fourth
.
there now are 1 7 multiplicative cost drivers, instead of 15 in intermediate p i
COCOMO. Seven of the cost drivers are new. such as required reusability in future J t
kl in products, annual personnel turnover, and whether the product is being developed at !
;

I
.
1ies multiple sites
.
!Og r !
ngly, COCOMO 11 has been calibrated using 83 projects from a variety of different I
domains. The model still is too new for there to be many results regarding its accuracy i i jnolo- ;
' ! i
1 -1 'i
1 l h
'
! !l 1
,
l l
I
.
Please purchase Image To PDF Converter on to remove this message, thank you.
' I 7 ! .
t h t .
j :
.
j '
l à
'
'
'
l ë 2y2 t u A p T K p v . plonning ond Esgim oeing
.
! 1 ; 1
I p'

t t I $ .
ï l ' l and
,
in particular, the extent to which it is an improvement over its predecessor
.
the
.
1 l 1 '
j original ( l98 I ) COCOM O.k l
.'t ,1
r
C
.I l t t? l i
i 1 1 i Taxexlxo p uowwox axp tosy zsvl-avzsi @
.
Q.5
.
î I
.
'
.
'
' i
'
i
'
1,
j
'
'

i 1 I i while the product is being developed
,
actual development effort constantly must '
'
t ( be eompared against predictions. For example, suppose that the estimation metric' 2
.
! l . used by the software developers predicted that the specification phase would last1
3 m onths and require 7 person-months of effort. How ever, 4 m onths have gone byi
l 1 and 10 person-months of effort have been expended
,
yet the specification document ''
t I ! :
,
.
1 h by no means is complete. Deviations of this kind ean serve as an early warning that '
'
. 1 '1 something has gone wrong and corrective action must be taken
. The problem couldF. f
s
t 1
,
l ( be that tlae size of the oroduet was seriouslv underestimated or the develooment team
'
'
11 'j ! is not as competent a; it was thought to b-e
.
w hatever the reason, there '
are going to1 l J
.
J

'
:
.
jj l : be serious duration and cost overruns, and management must take appropriate action
I i j to minimize the effects
.
.t l
,
1r l .
' f p Careful tracking of predictions must be done throughout the development pro-
1 i -
f ) I q cesss irrespective of the techniques by which the predictions were made
. Deviations
x
4 1 I1; ; 2 could be due to metrics that are poor predictors
,
inefficient software development, a
:
.
'i l combination of both
.
or some other reason. The important thing is to detect deviations
.
i I I ' ,
! 'j! i 1 early and take immediate corrective action.)
; i .
( i I Now that metrics for estimating duration and cost have been discussed
,
the com-
:

1 I .
t 1 j' ponents of the software project management plan are described.
.i 4
!E I i
j :I'
j ;
c
j tj '
''
.
' j
' ' @.a toM poNzNTs oy A SoF AR: pRoletT :
'
.
1
! ANAOZM KNT p. AN
I .C
1 A software project management plan has three main components: the work to be' t
'
è done
, the resources with which to do it. and the m oney to pay for it all
. ln this section, '.'
-t ! .
j g these three ingredients of the plan are discussed. The terminology is taken from !
l CIEEE 1058.1 , 19871. which is discussed in greater detail in Section 9
.4.
' ! Software developm ent requires resources
.
The major resources required are the! l ( r .
! j people who develop the stlftware, the hardware on which the software is run

,
and the1 ' ' ftware such as operating systems
,
text editors, and version control software 'i SLIPPOK SOi
'
5
I i ' (section 5.7). '
: !! ': 's Llse of resources such as personnel varies with time. Norden has shown rNorden,' 1 E
.
19581 that, for large projects. the Rayleigh distribution is a good approximation of
i ' h that resource consumption
,
Rc., varies with time. t' that ist e w ay , ,'
j 1 F .
1. t -/2/2122
k j J R ( , = p e 0 :jg / < x ( p . 9 )
1l , parameter k is a constant
,
the tim e at which consum ption is at its peak, and e =):
C l'j 1; 2.J 1:2: . . . , the base of xaperian logarithms. A typical Rayleigh curve is shown
: 1; 1' , 1 -
! l I : 7't
.
j - I1
'
,
Please purchase Image To PDF Converter on to remove this message, thank you.
i !E
'
: !

it
'
.
)
'
'
r 21
COMPONENTS OF A SOFTWARE PROJECT M ANAGEMENT PLAN 2F3 1@
.
a 1
E l
i j '
21-1 (2r ' I 1
r 1
! .
; i
(
'
!
'
p . !
' 5 j
I ' j
Resource I
ust consumption : I i
.
# i tlric
r IE !
ast r
' y 1b

y ,1
t . ; lon IJ
hat . l 't
I ' Iu1d ;
jk ( i
am y E lTi
me ) l .1
2k to . 1
I 'ion Flgure @
.
F Royleigh curve showing how resource i I :
consumption varies with time. y j
l jfO- j
j
RnS ) El
à
'
t, a y.i ure 9
.
J. Resource consumption starts small, climbs rapidly to a peak, then ' Iin g
ns f Norden's results ! i7 i ti ated the applicability odecreases at a slower rate
.
Putnam nves g jl
! ,to software development and found that personnel and other resource consumption t
,m- : !
was modeled with some degree of accuracy by the Rayleigh distribution (Putnam, j .
19781. 5 ; I
It therefore is insufhcient in a software plan merely to state that three senior ' ! ; l
ience are required. W hat is needed is l ! lprogrammers with at Ieast 5 years of exper
j j

something like the following'. ; 1 '
j I
ime program- ! i lThree senior programmers with at least 5 years of experience in real
-
t j j!
ming are needed, two to start 3 months after the project commences, the third to start i j ji
6 months after that. Two will be phased out when product testing commences, the j j ir l
third when maintenance begins. ' I E j ,
be 1 ITh
e fact that resource needs depend on time applies not only to personnel but , 11On
, j $also to computer tim e
.
support software, computer hardware, office facilities, and j lOm
!
even travel. Thus the software project management plan will be a function of time. ! I 'I
.The work to be done falls into two categories. First is work thatcontinues through- i i 1th
e j jout the project and does not relate to any specific phase of software development
.
Such 1 ,
the i I
work is termed aprojectfunction. Examples are project management and quality con- '! ! I 'are I
trol. Second is work that relates to a specihc phase in the developm ent of the product', t
i
such work is termed an activity or a task. An activity is a major unit of work that has j
.en, j
precise beginning and ending dates', consumes resources, such as computer time or ; lt of
.
person-days; and results in work products such as a budget, design documents, sched- !
;
'

1
1 ,
ules, source code, or user's manual. An activity, in turn, comprises a set of tasks, a ! j
task being the smallest unit of work subject to management accountability. There are E 1?
.
9) j
three kinds of work in a software project management plan: project functions carried )l4
hroughout the project, activities (major units of work), and tasks (minor units IJ: = on t ji
.wn of work). j 1I
t !.
l IJ1
I '
.
1
( !
Please purchase Image To PDF Converter on to remove this message, thank you.
.
!
'
.
1
i l 1 :$
l .l I k
.
.
. j 1 1
i j g ay* e u A p T z R @ @ plonning ond Eskimo#lng1
.
I
.

$ l 1
i j ) , A critical aspect of the plan concerns completion of work products. The date
1
,
j ! j on whieh a work product is deemed completed is termed a milestone. To determine
4 i 1 whether a work product indeed reached a milestone, it must hrst pass a series ofS i 1
' ' Ilow team members, management, or the client. A typicall ,1 reviews pertormed by te
'
,
j 1 1j l milestone is the date on which the design is completed and passes review
.
Once a (I 1
1 I 1 work product has been reviewed and agreed on. it becomes a baseline and can be1 !
.
'
t
'
,
j ( :, changed only through formal procedures, as described in Section 5.8.2.
.
' I '; ln reality, there is more to a work product than merely the product itself. A work .
'
I) 1 k package deunes notjust the work product but also the staffing requirements, duration,
-
1 1 1 resources. name of the responsible individual, a
x
nd acceptance criteria for the work
(
'
l

i product. M oney of course is a vital component ot the plan. A detailed budget must be
i , worked out and the money allocated
.
as a function of time, to the project functions,
;
j j antj xtjvities.
l I i Th
e issue of how to draw up a plan for software production is addressed next. ':!
!I , :
( ( .!
'
I
.
l ( :
I l ; '
1 1
' 1 ! @.* $oF AR: pRozztT M ANA/EM ENT p. ANI
! .i
; yu m uw o pxI
.
;
' j 1 j j1 1
Figure 9.8 shows the section headings of the software project management plan11
*
,. .
'
!
'
t
'

: 1) # (SPMP) prescribed in IEEE Standard 1058
.
1 (IEEE 1058. 1, l 9871. Although there are .
many other ways of drawing up a SPM P, following the IEEE standard offers distinct
.
.
t @
: advantages. First, it is a standard drawn up by representatives of many major organi-
.
l zations involved in software
. Input came from both industry and universities, and the!
'
1 mem bers of the working group and reviewing team s had m any years of experience ini
I drawing up project management plans. The standard incorporates this experience. A 'i
d advantage is that the IEEE SPMP is designed for use with all types of software: : secon
; products
,
irrespective of size. lt does not impose a specific process model or prescribel I
,
) 1 specific techniques. The plan essentially is a framework, the contents of which are
'
,
I
p tailored by each organization for a particular application area, developm ent team, or
)' ! .
k ; technique. By adhering to this framework on an industrywide basis, the advantages of
q standardization accrue. Eventually, all software personnel will become familiar with
l the IEEE software project management plan format
,
and companies will be saved theI

1 expense of training new hires.
l I kl
I !
i I :
$ p '
'
j ': 'i1 ! @
.
5 IKKK SoF ARE PROJEtT M ANA/EM ENT
; 1 ', I p: xxl
.
t ' '
; l I ' The plan framework itself now is described in detail. The numbers and headings in1
j I t the text correspond to the entries in Figure 9.8. The various terms used have been'j 1 d
efined in section 9.3.i !
'
. :
.
I . I '-I 1
.
.
i l
. k
Please purchase Image To PDF Converter on to remove this message, thank you.

×