- %!PS-Adobe-2.0
- %%Creator: dvips 5.83 (MiKTeX 1.11d) Copyright 1998 Radical Eye Software
- %%Title: gray.dvi
- %%CreationDate: Wed Apr 07 14:35:45 1999
- %%Pages: 5
- %%PageOrder: Ascend
- %%BoundingBox: 0 0 596 842
- %%DocumentFonts: Times-Bold Times-Roman Times-Italic Helvetica-Bold
- %%EndComments
- %DVIPSWebPage: (www.radicaleye.com)
- %DVIPSCommandLine: dvips gray.dvi -o gray.ps
- %DVIPSParameters: dpi=600
- %DVIPSSource: TeX output 1999.04.07:1435
- %%BeginProcSet: tex.pro
- %!
- /TeXDict 300 dict def TeXDict begin /N{def}def /B{bind def}N /S{exch}N
- /X{S N}B /TR{translate}N /isls false N /vsize 11 72 mul N /hsize 8.5 72
- mul N /landplus90{false}def /@rigin{isls{[0 landplus90{1 -1}{-1 1}
- ifelse 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale
- isls{landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div
- hsize mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul
- TR[matrix currentmatrix{dup dup round sub abs 0.00001 lt{round}if}
- forall round exch round exch]setmatrix}N /@landscape{/isls true N}B
- /@manualfeed{statusdict /manualfeed true put}B /@copies{/#copies X}B
- /FMat[1 0 0 -1 0 0]N /FBB[0 0 0 0]N /nn 0 N /IE 0 N /ctr 0 N /df-tail{
- /nn 8 dict N nn begin /FontType 3 N /FontMatrix fntrx N /FontBBox FBB N
- string /base X array /BitMaps X /BuildChar{CharBuilder}N /Encoding IE N
- end dup{/foo setfont}2 array copy cvx N load 0 nn put /ctr 0 N[}B /df{
- /sf 1 N /fntrx FMat N df-tail}B /dfs{div /sf X /fntrx[sf 0 0 sf neg 0 0]
- N df-tail}B /E{pop nn dup definefont setfont}B /ch-width{ch-data dup
- length 5 sub get}B /ch-height{ch-data dup length 4 sub get}B /ch-xoff{
- 128 ch-data dup length 3 sub get sub}B /ch-yoff{ch-data dup length 2 sub
- get 127 sub}B /ch-dx{ch-data dup length 1 sub get}B /ch-image{ch-data
- dup type /stringtype ne{ctr get /ctr ctr 1 add N}if}B /id 0 N /rw 0 N
- /rc 0 N /gp 0 N /cp 0 N /G 0 N /sf 0 N /CharBuilder{save 3 1 roll S dup
- /base get 2 index get S /BitMaps get S get /ch-data X pop /ctr 0 N ch-dx
- 0 ch-xoff ch-yoff ch-height sub ch-xoff ch-width add ch-yoff
- setcachedevice ch-width ch-height true[1 0 0 -1 -.1 ch-xoff sub ch-yoff
- .1 sub]{ch-image}imagemask restore}B /D{/cc X dup type /stringtype ne{]}
- if nn /base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{dup dup
- length 1 sub dup 2 index S get sf div put}if put /ctr ctr 1 add N}B /I{
- cc 1 add D}B /bop{userdict /bop-hook known{bop-hook}if /SI save N @rigin
- 0 0 moveto /V matrix currentmatrix dup 1 get dup mul exch 0 get dup mul
- add .99 lt{/QV}{/RV}ifelse load def pop pop}N /eop{SI restore userdict
- /eop-hook known{eop-hook}if showpage}N /@start{userdict /start-hook
- known{start-hook}if pop /VResolution X /Resolution X 1000 div /DVImag X
- /IE 256 array N 0 1 255{IE S 1 string dup 0 3 index put cvn put}for
- 65781.76 div /vsize X 65781.76 div /hsize X}N /p{show}N /RMat[1 0 0 -1 0
- 0]N /BDot 260 string N /rulex 0 N /ruley 0 N /v{/ruley X /rulex X V}B /V
- {}B /RV statusdict begin /product where{pop false[(Display)(NeXT)
- (LaserWriter 16/600)]{dup length product length le{dup length product
- exch 0 exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false}
- ifelse end{{gsave TR -.1 .1 TR 1 1 scale rulex ruley false RMat{BDot}
- imagemask grestore}}{{gsave TR -.1 .1 TR rulex ruley scale 1 1 false
- RMat{BDot}imagemask grestore}}ifelse B /QV{gsave newpath transform round
- exch round exch itransform moveto rulex 0 rlineto 0 ruley neg rlineto
- rulex neg 0 rlineto fill grestore}B /a{moveto}B /delta 0 N /tail{dup
- /delta X 0 rmoveto}B /M{S p delta add tail}B /b{S p tail}B /c{-4 M}B /d{
- -3 M}B /e{-2 M}B /f{-1 M}B /g{0 M}B /h{1 M}B /i{2 M}B /j{3 M}B /k{4 M}B
- /w{0 rmoveto}B /l{p -4 w}B /m{p -3 w}B /n{p -2 w}B /o{p -1 w}B /q{p 1 w}
- B /r{p 2 w}B /s{p 3 w}B /t{p 4 w}B /x{0 S rmoveto}B /y{3 2 roll p a}B
- /bos{/SS save N}B /eos{SS restore}B end
-
- %%EndProcSet
- %%BeginProcSet: pstricks.pro
- %!
- % PostScript prologue for pstricks.tex.
- % Created 1994/6/23. Source file was pstricks.doc
- % Version 0.93a, 93/03/12.
- % For use with Rokicki's dvips.
- /tx@Dict 200 dict def tx@Dict begin
- /ADict 25 dict def
- /CM { matrix currentmatrix } bind def
- /SLW /setlinewidth load def
- /CLW /currentlinewidth load def
- /CP /currentpoint load def
- /ED { exch def } bind def
- /L /lineto load def
- /T /translate load def
- /TMatrix { } def
- /RAngle { 0 } def
- /Atan { /atan load stopped { pop pop 0 } if } def
- /Div { dup 0 eq { pop } { div } ifelse } def
- /NET { neg exch neg exch T } def
- /Pyth { dup mul exch dup mul add sqrt } def
- /PtoC { 2 copy cos mul 3 1 roll sin mul } def
- /PathLength@ { /z z y y1 sub x x1 sub Pyth add def /y1 y def /x1 x def }
- def
- /PathLength { flattenpath /z 0 def { /y1 ED /x1 ED /y2 y1 def /x2 x1 def
- } { /y ED /x ED PathLength@ } {} { /y y2 def /x x2 def PathLength@ }
- /pathforall load stopped { pop pop pop pop } if z } def
- /STP { .996264 dup scale } def
- /STV { SDict begin normalscale end STP } def
- /DashLine { dup 0 gt { /a .5 def PathLength exch div } { pop /a 1 def
- PathLength } ifelse /b ED /x ED /y ED /z y x add def b a .5 sub 2 mul y
- mul sub z Div round z mul a .5 sub 2 mul y mul add b exch Div dup y mul
- /y ED x mul /x ED x 0 gt y 0 gt and { [ y x ] 1 a sub y mul } { [ 1 0 ]
- 0 } ifelse setdash stroke } def
- /DotLine { /b PathLength def /a ED /z ED /y CLW def /z y z add def a 0 gt
- { /b b a div def } { a 0 eq { /b b y sub def } { a -3 eq { /b b y add
- def } if } ifelse } ifelse [ 0 b b z Div round Div dup 0 le { pop 1 } if
- ] a 0 gt { 0 } { y 2 div a -2 gt { neg } if } ifelse setdash 1
- setlinecap stroke } def
- /LineFill { gsave abs CLW add /a ED a 0 dtransform round exch round exch
- 2 copy idtransform exch Atan rotate idtransform pop /a ED .25 .25
- itransform translate pathbbox /y2 ED a Div ceiling cvi /x2 ED /y1 ED a
- Div cvi /x1 ED /y2 y2 y1 sub def clip newpath 2 setlinecap systemdict
- /setstrokeadjust known { true setstrokeadjust } if x2 x1 sub 1 add { x1
- a mul y1 moveto 0 y2 rlineto stroke /x1 x1 1 add def } repeat grestore }
- def
- /BeginArrow { ADict begin /@mtrx CM def gsave 2 copy T 2 index sub neg
- exch 3 index sub exch Atan rotate newpath } def
- /EndArrow { @mtrx setmatrix CP grestore end } def
- /Arrow { CLW mul add dup 2 div /w ED mul dup /h ED mul /a ED { 0 h T 1 -1
- scale } if w neg h moveto 0 0 L w h L w neg a neg rlineto gsave fill
- grestore } def
- /Tbar { CLW mul add /z ED z -2 div CLW 2 div moveto z 0 rlineto stroke 0
- CLW moveto } def
- /Bracket { CLW mul add dup CLW sub 2 div /x ED mul CLW add /y ED /z CLW 2
- div def x neg y moveto x neg CLW 2 div L x CLW 2 div L x y L stroke 0
- CLW moveto } def
- /RoundBracket { CLW mul add dup 2 div /x ED mul /y ED /mtrx CM def 0 CLW
- 2 div T x y mul 0 ne { x y scale } if 1 1 moveto .85 .5 .35 0 0 0
- curveto -.35 0 -.85 .5 -1 1 curveto mtrx setmatrix stroke 0 CLW moveto }
- def
- /SD { 0 360 arc fill } def
- /EndDot { { /z DS def } { /z 0 def } ifelse /b ED 0 z DS SD b { 0 z DS
- CLW sub SD } if 0 DS z add CLW 4 div sub moveto } def
- /Shadow { [ { /moveto load } { /lineto load } { /curveto load } {
- /closepath load } /pathforall load stopped { pop pop pop pop CP /moveto
- load } if ] cvx newpath 3 1 roll T exec } def
- /NArray { aload length 2 div dup dup cvi eq not { exch pop } if /n exch
- cvi def } def
- /NArray { /f ED counttomark 2 div dup cvi /n ED n eq not { exch pop } if
- f { ] aload /Points ED } { n 2 mul 1 add -1 roll pop } ifelse } def
- /Line { NArray n 0 eq not { n 1 eq { 0 0 /n 2 def } if ArrowA /n n 2 sub
- def n { Lineto } repeat CP 4 2 roll ArrowB L pop pop } if } def
- /Arcto { /a [ 6 -2 roll ] cvx def a r /arcto load stopped { 5 } { 4 }
- ifelse { pop } repeat a } def
- /CheckClosed { dup n 2 mul 1 sub index eq 2 index n 2 mul 1 add index eq
- and { pop pop /n n 1 sub def } if } def
- /Polygon { NArray n 2 eq { 0 0 /n 3 def } if n 3 lt { n { pop pop }
- repeat } { n 3 gt { CheckClosed } if n 2 mul -2 roll /y0 ED /x0 ED /y1
- ED /x1 ED x1 y1 /x1 x0 x1 add 2 div def /y1 y0 y1 add 2 div def x1 y1
- moveto /n n 2 sub def n { Lineto } repeat x1 y1 x0 y0 6 4 roll Lineto
- Lineto pop pop closepath } ifelse } def
- /Diamond { /mtrx CM def T rotate /h ED /w ED dup 0 eq { pop } { CLW mul
- neg /d ED /a w h Atan def /h d a sin Div h add def /w d a cos Div w add
- def } ifelse mark w 2 div h 2 div w 0 0 h neg w neg 0 0 h w 2 div h 2
- div /ArrowA { moveto } def /ArrowB { } def false Line closepath mtrx
- setmatrix } def
- % Modification Denis GIROU (CNRS/IDRIS - France) <Denis.Girou@idris.fr> - 15 Jan. 1997
- % /Triangle { /mtrx CM def translate rotate /h ED 2 div /w ED dup 0 eq {
- % pop } { CLW mul /d ED /h h d w h Atan sin Div sub def /w w d h w Atan 2
- % div dup cos exch sin Div mul sub def } ifelse mark 0 d w neg d 0 h w d 0
- % d /ArrowA { moveto } def /ArrowB { } def false Line closepath mtrx
- % setmatrix } def
- /Triangle { /mtrx CM def translate rotate /h ED 2 div /w ED dup
- CLW mul /d ED /h h d w h Atan sin Div sub def /w w d h w Atan 2
- div dup cos exch sin Div mul sub def mark 0 d w neg d 0 h w d 0
- d /ArrowA { moveto } def /ArrowB { } def false Line closepath mtrx
- setmatrix } def
- /CCA { /y ED /x ED 2 copy y sub /dy1 ED x sub /dx1 ED /l1 dx1 dy1 Pyth
- def } def
- /CCA { /y ED /x ED 2 copy y sub /dy1 ED x sub /dx1 ED /l1 dx1 dy1 Pyth
- def } def
- /CC { /l0 l1 def /x1 x dx sub def /y1 y dy sub def /dx0 dx1 def /dy0 dy1
- def CCA /dx dx0 l1 c exp mul dx1 l0 c exp mul add def /dy dy0 l1 c exp
- mul dy1 l0 c exp mul add def /m dx0 dy0 Atan dx1 dy1 Atan sub 2 div cos
- abs b exp a mul dx dy Pyth Div 2 div def /x2 x l0 dx mul m mul sub def
- /y2 y l0 dy mul m mul sub def /dx l1 dx mul m mul neg def /dy l1 dy mul
- m mul neg def } def
- /IC { /c c 1 add def c 0 lt { /c 0 def } { c 3 gt { /c 3 def } if }
- ifelse /a a 2 mul 3 div 45 cos b exp div def CCA /dx 0 def /dy 0 def }
- def
- /BOC { IC CC x2 y2 x1 y1 ArrowA CP 4 2 roll x y curveto } def
- /NC { CC x1 y1 x2 y2 x y curveto } def
- /EOC { x dx sub y dy sub 4 2 roll ArrowB 2 copy curveto } def
- /BAC { IC CC x y moveto CC x1 y1 CP ArrowA } def
- /NAC { x2 y2 x y curveto CC x1 y1 } def
- /EAC { x2 y2 x y ArrowB curveto pop pop } def
- /OpenCurve { NArray n 3 lt { n { pop pop } repeat } { BOC /n n 3 sub def
- n { NC } repeat EOC } ifelse } def
- /AltCurve { { false NArray n 2 mul 2 roll [ n 2 mul 3 sub 1 roll ] aload
- /Points ED n 2 mul -2 roll } { false NArray } ifelse n 4 lt { n { pop
- pop } repeat } { BAC /n n 4 sub def n { NAC } repeat EAC } ifelse } def
- /ClosedCurve { NArray n 3 lt { n { pop pop } repeat } { n 3 gt {
- CheckClosed } if 6 copy n 2 mul 6 add 6 roll IC CC x y moveto n { NC }
- repeat closepath pop pop } ifelse } def
- /SQ { /r ED r r moveto r r neg L r neg r neg L r neg r L fill } def
- /ST { /y ED /x ED x y moveto x neg y L 0 x L fill } def
- /SP { /r ED gsave 0 r moveto 4 { 72 rotate 0 r L } repeat fill grestore }
- def
- /FontDot { DS 2 mul dup matrix scale matrix concatmatrix exch matrix
- rotate matrix concatmatrix exch findfont exch makefont setfont } def
- /Rect { x1 y1 y2 add 2 div moveto x1 y2 lineto x2 y2 lineto x2 y1 lineto
- x1 y1 lineto closepath } def
- /OvalFrame { x1 x2 eq y1 y2 eq or { pop pop x1 y1 moveto x2 y2 L } { y1
- y2 sub abs x1 x2 sub abs 2 copy gt { exch pop } { pop } ifelse 2 div
- exch { dup 3 1 roll mul exch } if 2 copy lt { pop } { exch pop } ifelse
- /b ED x1 y1 y2 add 2 div moveto x1 y2 x2 y2 b arcto x2 y2 x2 y1 b arcto
- x2 y1 x1 y1 b arcto x1 y1 x1 y2 b arcto 16 { pop } repeat closepath }
- ifelse } def
- /Frame { CLW mul /a ED 3 -1 roll 2 copy gt { exch } if a sub /y2 ED a add
- /y1 ED 2 copy gt { exch } if a sub /x2 ED a add /x1 ED 1 index 0 eq {
- pop pop Rect } { OvalFrame } ifelse } def
- /BezierNArray { /f ED counttomark 2 div dup cvi /n ED n eq not { exch pop
- } if n 1 sub neg 3 mod 3 add 3 mod { 0 0 /n n 1 add def } repeat f { ]
- aload /Points ED } { n 2 mul 1 add -1 roll pop } ifelse } def
- /OpenBezier { BezierNArray n 1 eq { pop pop } { ArrowA n 4 sub 3 idiv { 6
- 2 roll 4 2 roll curveto } repeat 6 2 roll 4 2 roll ArrowB curveto }
- ifelse } def
- /ClosedBezier { BezierNArray n 1 eq { pop pop } { moveto n 1 sub 3 idiv {
- 6 2 roll 4 2 roll curveto } repeat closepath } ifelse } def
- /BezierShowPoints { gsave Points aload length 2 div cvi /n ED moveto n 1
- sub { lineto } repeat CLW 2 div SLW [ 4 4 ] 0 setdash stroke grestore }
- def
- /Parab { /y0 exch def /x0 exch def /y1 exch def /x1 exch def /dx x0 x1
- sub 3 div def /dy y0 y1 sub 3 div def x0 dx sub y0 dy add x1 y1 ArrowA
- x0 dx add y0 dy add x0 2 mul x1 sub y1 ArrowB curveto /Points [ x1 y1 x0
- y0 x0 2 mul x1 sub y1 ] def } def
- /Grid { newpath /a 4 string def /b ED /c ED /n ED cvi dup 1 lt { pop 1 }
- if /s ED s div dup 0 eq { pop 1 } if /dy ED s div dup 0 eq { pop 1 } if
- /dx ED dy div round dy mul /y0 ED dx div round dx mul /x0 ED dy div
- round cvi /y2 ED dx div round cvi /x2 ED dy div round cvi /y1 ED dx div
- round cvi /x1 ED /h y2 y1 sub 0 gt { 1 } { -1 } ifelse def /w x2 x1 sub
- 0 gt { 1 } { -1 } ifelse def b 0 gt { /z1 b 4 div CLW 2 div add def
- /Helvetica findfont b scalefont setfont /b b .95 mul CLW 2 div add def }
- if systemdict /setstrokeadjust known { true setstrokeadjust /t { } def }
- { /t { transform 0.25 sub round 0.25 add exch 0.25 sub round 0.25 add
- exch itransform } bind def } ifelse gsave n 0 gt { 1 setlinecap [ 0 dy n
- div ] dy n div 2 div setdash } { 2 setlinecap } ifelse /i x1 def /f y1
- dy mul n 0 gt { dy n div 2 div h mul sub } if def /g y2 dy mul n 0 gt {
- dy n div 2 div h mul add } if def x2 x1 sub w mul 1 add dup 1000 gt {
- pop 1000 } if { i dx mul dup y0 moveto b 0 gt { gsave c i a cvs dup
- stringwidth pop /z2 ED w 0 gt {z1} {z1 z2 add neg} ifelse h 0 gt {b neg}
- {z1} ifelse rmoveto show grestore } if dup t f moveto g t L stroke /i i
- w add def } repeat grestore gsave n 0 gt { 1 setlinecap [ 0 dx n div ]
- dy n div 2 div setdash } { 2 setlinecap } ifelse /i y1 def /f x1 dx mul
- n 0 gt { dx n div 2 div w mul sub } if def /g x2 dx mul n 0 gt { dx n
- div 2 div w mul add } if def y2 y1 sub h mul 1 add dup 1000 gt { pop
- 1000 } if { newpath i dy mul dup x0 exch moveto b 0 gt { gsave c i a cvs
- dup stringwidth pop /z2 ED w 0 gt {z1 z2 add neg} {z1} ifelse h 0 gt
- {z1} {b neg} ifelse rmoveto show grestore } if dup f exch t moveto g
- exch t L stroke /i i h add def } repeat grestore } def
- /ArcArrow { /d ED /b ED /a ED gsave newpath 0 -1000 moveto clip newpath 0
- 1 0 0 b grestore c mul /e ED pop pop pop r a e d PtoC y add exch x add
- exch r a PtoC y add exch x add exch b pop pop pop pop a e d CLW 8 div c
- mul neg d } def
- /Ellipse { /mtrx CM def T scale 0 0 1 5 3 roll arc mtrx setmatrix } def
- /Rot { CP CP translate 3 -1 roll neg rotate NET } def
- /RotBegin { tx@Dict /TMatrix known not { /TMatrix { } def /RAngle { 0 }
- def } if /TMatrix [ TMatrix CM ] cvx def /a ED a Rot /RAngle [ RAngle
- dup a add ] cvx def } def
- /RotEnd { /TMatrix [ TMatrix setmatrix ] cvx def /RAngle [ RAngle pop ]
- cvx def } def
- /PutCoor { gsave CP T CM STV exch exec moveto setmatrix CP grestore } def
- /PutBegin { /TMatrix [ TMatrix CM ] cvx def CP 4 2 roll T moveto } def
- /PutEnd { CP /TMatrix [ TMatrix setmatrix ] cvx def moveto } def
- /Uput { /a ED add 2 div /h ED 2 div /w ED /s a sin def /c a cos def /b s
- abs c abs 2 copy gt dup /q ED { pop } { exch pop } ifelse def /w1 c b
- div w mul def /h1 s b div h mul def q { w1 abs w sub dup c mul abs } {
- h1 abs h sub dup s mul abs } ifelse } def
- /UUput { /z ED abs /y ED /x ED q { x s div c mul abs y gt } { x c div s
- mul abs y gt } ifelse { x x mul y y mul sub z z mul add sqrt z add } { q
- { x s div } { x c div } ifelse abs } ifelse a PtoC h1 add exch w1 add
- exch } def
- /BeginOL { dup (all) eq exch TheOL eq or { IfVisible not { Visible
- /IfVisible true def } if } { IfVisible { Invisible /IfVisible false def
- } if } ifelse } def
- /InitOL { /OLUnit [ 3000 3000 matrix defaultmatrix dtransform ] cvx def
- /Visible { CP OLUnit idtransform T moveto } def /Invisible { CP OLUnit
- neg exch neg exch idtransform T moveto } def /BOL { BeginOL } def
- /IfVisible true def } def
- end
-
- %%EndProcSet
- %%BeginProcSet: pst-dots.pro
- %!PS-Adobe-2.0
- %%Title: Dot Font for PSTricks
- %%Creator: Timothy Van Zandt <tvz@Princeton.EDU>
- %%Creation Date: May 7, 1993
- 10 dict dup begin
- /FontType 3 def
- /FontMatrix [ .001 0 0 .001 0 0 ] def
- /FontBBox [ 0 0 0 0 ] def
- /Encoding 256 array def
- 0 1 255 { Encoding exch /.notdef put } for
- Encoding
- dup (b) 0 get /Bullet put
- dup (c) 0 get /Circle put
- dup (C) 0 get /BoldCircle put
- dup (u) 0 get /SolidTriangle put
- dup (t) 0 get /Triangle put
- dup (T) 0 get /BoldTriangle put
- dup (r) 0 get /SolidSquare put
- dup (s) 0 get /Square put
- dup (S) 0 get /BoldSquare put
- dup (q) 0 get /SolidPentagon put
- dup (p) 0 get /Pentagon put
- (P) 0 get /BoldPentagon put
- /Metrics 13 dict def
- Metrics begin
- /Bullet 1000 def
- /Circle 1000 def
- /BoldCircle 1000 def
- /SolidTriangle 1344 def
- /Triangle 1344 def
- /BoldTriangle 1344 def
- /SolidSquare 886 def
- /Square 886 def
- /BoldSquare 886 def
- /SolidPentagon 1093.2 def
- /Pentagon 1093.2 def
- /BoldPentagon 1093.2 def
- /.notdef 0 def
- end
- /BBoxes 13 dict def
- BBoxes begin
- /Circle { -550 -550 550 550 } def
- /BoldCircle /Circle load def
- /Bullet /Circle load def
- /Triangle { -571.5 -330 571.5 660 } def
- /BoldTriangle /Triangle load def
- /SolidTriangle /Triangle load def
- /Square { -450 -450 450 450 } def
- /BoldSquare /Square load def
- /SolidSquare /Square load def
- /Pentagon { -546.6 -465 546.6 574.7 } def
- /BoldPentagon /Pentagon load def
- /SolidPentagon /Pentagon load def
- /.notdef { 0 0 0 0 } def
- end
- /CharProcs 20 dict def
- CharProcs begin
- /Adjust {
- 2 copy dtransform floor .5 add exch floor .5 add exch idtransform
- 3 -1 roll div 3 1 roll exch div exch scale
- } def
- /CirclePath { 0 0 500 0 360 arc closepath } def
- /Bullet { 500 500 Adjust CirclePath fill } def
- /Circle { 500 500 Adjust CirclePath .9 .9 scale CirclePath eofill } def
- /BoldCircle { 500 500 Adjust CirclePath .8 .8 scale CirclePath eofill } def
- /BoldCircle { CirclePath .8 .8 scale CirclePath eofill } def
- /TrianglePath {
- 0 660 moveto -571.5 -330 lineto 571.5 -330 lineto closepath
- } def
- /SolidTriangle { TrianglePath fill } def
- /Triangle { TrianglePath .85 .85 scale TrianglePath eofill } def
- /BoldTriangle { TrianglePath .7 .7 scale TrianglePath eofill } def
- /SquarePath {
- -450 450 moveto 450 450 lineto 450 -450 lineto -450 -450 lineto
- closepath
- } def
- /SolidSquare { SquarePath fill } def
- /Square { SquarePath .89 .89 scale SquarePath eofill } def
- /BoldSquare { SquarePath .78 .78 scale SquarePath eofill } def
- /PentagonPath {
- -337.8 -465 moveto
- 337.8 -465 lineto
- 546.6 177.6 lineto
- 0 574.7 lineto
- -546.6 177.6 lineto
- closepath
- } def
- /SolidPentagon { PentagonPath fill } def
- /Pentagon { PentagonPath .89 .89 scale PentagonPath eofill } def
- /BoldPentagon { PentagonPath .78 .78 scale PentagonPath eofill } def
- /.notdef { } def
- end
- /BuildGlyph {
- exch
- begin
- Metrics 1 index get exec 0
- BBoxes 3 index get exec
- setcachedevice
- CharProcs begin load exec end
- end
- } def
- /BuildChar {
- 1 index /Encoding get exch get
- 1 index /BuildGlyph get exec
- } bind def
- end
- /PSTricksDotFont exch definefont pop
-
- %%EndProcSet
- %%BeginProcSet: pst-node.pro
- %!
- % PostScript prologue for pst-node.tex.
- % Created 1994/6/7. Source file was pst-node.doc
- % Version 0.93a/b-97 patch 1, 97/05/09.
- % For use with Rokicki's dvips.
- /tx@NodeDict 400 dict def tx@NodeDict begin
- tx@Dict begin /T /translate load def end
- /NewNode { gsave /next ED dict dup 3 1 roll def exch { dup 3 1 roll def }
- if begin tx@Dict begin STV CP T exec end /NodeMtrx CM def next end
- grestore } def
- /InitPnode { /Y ED /X ED /NodePos { NodeSep Cos mul NodeSep Sin mul } def
- } def
- /InitCnode { /r ED /Y ED /X ED /NodePos { NodeSep r add dup Cos mul exch
- Sin mul } def } def
- /GetRnodePos { Cos 0 gt { /dx r NodeSep add def } { /dx l NodeSep sub def
- } ifelse Sin 0 gt { /dy u NodeSep add def } { /dy d NodeSep sub def }
- ifelse dx Sin mul abs dy Cos mul abs gt { dy Cos mul Sin div dy } { dx
- dup Sin mul Cos Div } ifelse } def
- /InitRnode { /Y ED /X ED X sub /r ED /l X neg def Y add neg /d ED Y sub
- /u ED /NodePos { GetRnodePos } def } def
- /DiaNodePos { w h mul w Sin mul abs h Cos mul abs add Div NodeSep add dup
- Cos mul exch Sin mul } def
- /TriNodePos { Sin s lt { d NodeSep sub dup Cos mul Sin Div exch } { w h
- mul w Sin mul h Cos abs mul add Div NodeSep add dup Cos mul exch Sin mul
- } ifelse } def
- /InitTriNode { sub 2 div exch 2 div exch 2 copy T 2 copy 4 index index /d
- ED pop pop pop pop -90 mul rotate /NodeMtrx CM def /X 0 def /Y 0 def d
- sub abs neg /d ED d add /h ED 2 div h mul h d sub Div /w ED /s d w Atan
- sin def /NodePos { TriNodePos } def } def
- /OvalNodePos { /ww w NodeSep add def /hh h NodeSep add def Sin ww mul Cos
- hh mul Atan dup cos ww mul exch sin hh mul } def
- /GetCenter { begin X Y NodeMtrx transform CM itransform end } def
- /XYPos { dup sin exch cos Do /Cos ED /Sin ED /Dist ED Cos 0 gt { Dist
- Dist Sin mul Cos div } { Cos 0 lt { Dist neg Dist Sin mul Cos div neg }
- { 0 Dist Sin mul } ifelse } ifelse Do } def
- /GetEdge { dup 0 eq { pop begin 1 0 NodeMtrx dtransform CM idtransform
- exch atan sub dup sin /Sin ED cos /Cos ED /NodeSep ED NodePos NodeMtrx
- dtransform CM idtransform end } { 1 eq {{exch}} {{}} ifelse /Do ED pop
- XYPos } ifelse } def
- /AddOffset { 1 index 0 eq { pop pop } { 2 copy 5 2 roll cos mul add 4 1
- roll sin mul sub exch } ifelse } def
- /GetEdgeA { NodeSepA AngleA NodeA NodeSepTypeA GetEdge OffsetA AngleA
- AddOffset yA add /yA1 ED xA add /xA1 ED } def
- /GetEdgeB { NodeSepB AngleB NodeB NodeSepTypeB GetEdge OffsetB AngleB
- AddOffset yB add /yB1 ED xB add /xB1 ED } def
- /GetArmA { ArmTypeA 0 eq { /xA2 ArmA AngleA cos mul xA1 add def /yA2 ArmA
- AngleA sin mul yA1 add def } { ArmTypeA 1 eq {{exch}} {{}} ifelse /Do ED
- ArmA AngleA XYPos OffsetA AngleA AddOffset yA add /yA2 ED xA add /xA2 ED
- } ifelse } def
- /GetArmB { ArmTypeB 0 eq { /xB2 ArmB AngleB cos mul xB1 add def /yB2 ArmB
- AngleB sin mul yB1 add def } { ArmTypeB 1 eq {{exch}} {{}} ifelse /Do ED
- ArmB AngleB XYPos OffsetB AngleB AddOffset yB add /yB2 ED xB add /xB2 ED
- } ifelse } def
- /InitNC { /b ED /a ED /NodeSepTypeB ED /NodeSepTypeA ED /NodeSepB ED
- /NodeSepA ED /OffsetB ED /OffsetA ED tx@NodeDict a known tx@NodeDict b
- known and dup { /NodeA a load def /NodeB b load def NodeA GetCenter /yA
- ED /xA ED NodeB GetCenter /yB ED /xB ED } if } def
- /LPutLine { 4 copy 3 -1 roll sub neg 3 1 roll sub Atan /NAngle ED 1 t sub
- mul 3 1 roll 1 t sub mul 4 1 roll t mul add /Y ED t mul add /X ED } def
- /LPutLines { mark LPutVar counttomark 2 div 1 sub /n ED t floor dup n gt
- { pop n 1 sub /t 1 def } { dup t sub neg /t ED } ifelse cvi 2 mul { pop
- } repeat LPutLine cleartomark } def
- /BezierMidpoint { /y3 ED /x3 ED /y2 ED /x2 ED /y1 ED /x1 ED /y0 ED /x0 ED
- /t ED /cx x1 x0 sub 3 mul def /cy y1 y0 sub 3 mul def /bx x2 x1 sub 3
- mul cx sub def /by y2 y1 sub 3 mul cy sub def /ax x3 x0 sub cx sub bx
- sub def /ay y3 y0 sub cy sub by sub def ax t 3 exp mul bx t t mul mul
- add cx t mul add x0 add ay t 3 exp mul by t t mul mul add cy t mul add
- y0 add 3 ay t t mul mul mul 2 by t mul mul add cy add 3 ax t t mul mul
- mul 2 bx t mul mul add cx add atan /NAngle ED /Y ED /X ED } def
- /HPosBegin { yB yA ge { /t 1 t sub def } if /Y yB yA sub t mul yA add def
- } def
- /HPosEnd { /X Y yyA sub yyB yyA sub Div xxB xxA sub mul xxA add def
- /NAngle yyB yyA sub xxB xxA sub Atan def } def
- /HPutLine { HPosBegin /yyA ED /xxA ED /yyB ED /xxB ED HPosEnd } def
- /HPutLines { HPosBegin yB yA ge { /check { le } def } { /check { ge } def
- } ifelse /xxA xA def /yyA yA def mark xB yB LPutVar { dup Y check { exit
- } { /yyA ED /xxA ED } ifelse } loop /yyB ED /xxB ED cleartomark HPosEnd
- } def
- /VPosBegin { xB xA lt { /t 1 t sub def } if /X xB xA sub t mul xA add def
- } def
- /VPosEnd { /Y X xxA sub xxB xxA sub Div yyB yyA sub mul yyA add def
- /NAngle yyB yyA sub xxB xxA sub Atan def } def
- /VPutLine { VPosBegin /yyA ED /xxA ED /yyB ED /xxB ED VPosEnd } def
- /VPutLines { VPosBegin xB xA ge { /check { le } def } { /check { ge } def
- } ifelse /xxA xA def /yyA yA def mark xB yB LPutVar { 1 index X check {
- exit } { /yyA ED /xxA ED } ifelse } loop /yyB ED /xxB ED cleartomark
- VPosEnd } def
- /HPutCurve { gsave newpath /SaveLPutVar /LPutVar load def LPutVar 8 -2
- roll moveto curveto flattenpath /LPutVar [ {} {} {} {} pathforall ] cvx
- def grestore exec /LPutVar /SaveLPutVar load def } def
- /NCCoor { /AngleA yB yA sub xB xA sub Atan def /AngleB AngleA 180 add def
- GetEdgeA GetEdgeB /LPutVar [ xB1 yB1 xA1 yA1 ] cvx def /LPutPos {
- LPutVar LPutLine } def /HPutPos { LPutVar HPutLine } def /VPutPos {
- LPutVar VPutLine } def LPutVar } def
- /NCLine { NCCoor tx@Dict begin ArrowA CP 4 2 roll ArrowB lineto pop pop
- end } def
- /NCLines { false NArray n 0 eq { NCLine } { 2 copy yA sub exch xA sub
- Atan /AngleA ED n 2 mul dup index exch index yB sub exch xB sub Atan
- /AngleB ED GetEdgeA GetEdgeB /LPutVar [ xB1 yB1 n 2 mul 4 add 4 roll xA1
- yA1 ] cvx def mark LPutVar tx@Dict begin false Line end /LPutPos {
- LPutLines } def /HPutPos { HPutLines } def /VPutPos { VPutLines } def }
- ifelse } def
- /NCCurve { GetEdgeA GetEdgeB xA1 xB1 sub yA1 yB1 sub Pyth 2 div dup 3 -1
- roll mul /ArmA ED mul /ArmB ED /ArmTypeA 0 def /ArmTypeB 0 def GetArmA
- GetArmB xA2 yA2 xA1 yA1 tx@Dict begin ArrowA end xB2 yB2 xB1 yB1 tx@Dict
- begin ArrowB end curveto /LPutVar [ xA1 yA1 xA2 yA2 xB2 yB2 xB1 yB1 ]
- cvx def /LPutPos { t LPutVar BezierMidpoint } def /HPutPos { { HPutLines
- } HPutCurve } def /VPutPos { { VPutLines } HPutCurve } def } def
- /NCAngles { GetEdgeA GetEdgeB GetArmA GetArmB /mtrx AngleA matrix rotate
- def xA2 yA2 mtrx transform pop xB2 yB2 mtrx transform exch pop mtrx
- itransform /y0 ED /x0 ED mark ArmB 0 ne { xB1 yB1 } if xB2 yB2 x0 y0 xA2
- yA2 ArmA 0 ne { xA1 yA1 } if tx@Dict begin false Line end /LPutVar [ xB1
- yB1 xB2 yB2 x0 y0 xA2 yA2 xA1 yA1 ] cvx def /LPutPos { LPutLines } def
- /HPutPos { HPutLines } def /VPutPos { VPutLines } def } def
- /NCAngle { GetEdgeA GetEdgeB GetArmB /mtrx AngleA matrix rotate def xB2
- yB2 mtrx itransform pop xA1 yA1 mtrx itransform exch pop mtrx transform
- /y0 ED /x0 ED mark ArmB 0 ne { xB1 yB1 } if xB2 yB2 x0 y0 xA1 yA1
- tx@Dict begin false Line end /LPutVar [ xB1 yB1 xB2 yB2 x0 y0 xA1 yA1 ]
- cvx def /LPutPos { LPutLines } def /HPutPos { HPutLines } def /VPutPos {
- VPutLines } def } def
- /NCBar { GetEdgeA GetEdgeB GetArmA GetArmB /mtrx AngleA matrix rotate def
- xA2 yA2 mtrx itransform pop xB2 yB2 mtrx itransform pop sub dup 0 mtrx
- transform 3 -1 roll 0 gt { /yB2 exch yB2 add def /xB2 exch xB2 add def }
- { /yA2 exch neg yA2 add def /xA2 exch neg xA2 add def } ifelse mark ArmB
- 0 ne { xB1 yB1 } if xB2 yB2 xA2 yA2 ArmA 0 ne { xA1 yA1 } if tx@Dict
- begin false Line end /LPutVar [ xB1 yB1 xB2 yB2 xA2 yA2 xA1 yA1 ] cvx
- def /LPutPos { LPutLines } def /HPutPos { HPutLines } def /VPutPos {
- VPutLines } def } def
- /NCDiag { GetEdgeA GetEdgeB GetArmA GetArmB mark ArmB 0 ne { xB1 yB1 } if
- xB2 yB2 xA2 yA2 ArmA 0 ne { xA1 yA1 } if tx@Dict begin false Line end
- /LPutVar [ xB1 yB1 xB2 yB2 xA2 yA2 xA1 yA1 ] cvx def /LPutPos {
- LPutLines } def /HPutPos { HPutLines } def /VPutPos { VPutLines } def }
- def
- /NCDiagg { GetEdgeA GetArmA yB yA2 sub xB xA2 sub Atan 180 add /AngleB ED
- GetEdgeB mark xB1 yB1 xA2 yA2 ArmA 0 ne { xA1 yA1 } if tx@Dict begin
- false Line end /LPutVar [ xB1 yB1 xA2 yA2 xA1 yA1 ] cvx def /LPutPos {
- LPutLines } def /HPutPos { HPutLines } def /VPutPos { VPutLines } def }
- def
- /NCLoop { GetEdgeA GetEdgeB GetArmA GetArmB /mtrx AngleA matrix rotate
- def xA2 yA2 mtrx transform loopsize add /yA3 ED /xA3 ED /xB3 xB2 yB2
- mtrx transform pop def xB3 yA3 mtrx itransform /yB3 ED /xB3 ED xA3 yA3
- mtrx itransform /yA3 ED /xA3 ED mark ArmB 0 ne { xB1 yB1 } if xB2 yB2
- xB3 yB3 xA3 yA3 xA2 yA2 ArmA 0 ne { xA1 yA1 } if tx@Dict begin false
- Line end /LPutVar [ xB1 yB1 xB2 yB2 xB3 yB3 xA3 yA3 xA2 yA2 xA1 yA1 ]
- cvx def /LPutPos { LPutLines } def /HPutPos { HPutLines } def /VPutPos {
- VPutLines } def } def
- % DG/SR modification begin - 9 May 1997
- %/NCCircle { 0 0 NodesepA nodeA \tx@GetEdge pop xA sub 2 div dup 2 exp r
- %r mul sub abs sqrt atan 2 mul /a ED r AngleA 90 add PtoC yA add exch xA add
- %exch 2 copy /LPutVar [ 4 2 roll r AngleA ] cvx def /LPutPos { LPutVar t 360
- %mul add dup 5 1 roll 90 sub \tx@PtoC 3 -1 roll add /Y ED add /X ED /NAngle ED
- /NCCircle { NodeSepA 0 NodeA 0 GetEdge pop 2 div dup 2 exp r
- r mul sub abs sqrt atan 2 mul /a ED r AngleA 90 add PtoC yA add exch xA add
- exch 2 copy /LPutVar [ 4 2 roll r AngleA ] cvx def /LPutPos { LPutVar t 360
- mul add dup 5 1 roll 90 sub PtoC 3 -1 roll add /Y ED add /X ED /NAngle ED
- % DG/SR modification end
- } def /HPutPos { LPutPos } def /VPutPos { LPutPos } def r AngleA 90 sub a add
- AngleA 270 add a sub tx@Dict begin /angleB ED /angleA ED /r ED /c 57.2957 r
- Div def /y ED /x ED } def
- /NCBox { /d ED /h ED /AngleB yB yA sub xB xA sub Atan def /AngleA AngleB
- 180 add def GetEdgeA GetEdgeB /dx d AngleB sin mul def /dy d AngleB cos
- mul neg def /hx h AngleB sin mul neg def /hy h AngleB cos mul def
- /LPutVar [ xA1 hx add yA1 hy add xB1 hx add yB1 hy add xB1 dx add yB1 dy
- add xA1 dx add yA1 dy add ] cvx def /LPutPos { LPutLines } def /HPutPos
- { xB yB xA yA LPutLine } def /VPutPos { HPutPos } def mark LPutVar
- tx@Dict begin false Polygon end } def
- /NCArcBox { /l ED neg /d ED /h ED /a ED /AngleA yB yA sub xB xA sub Atan
- def /AngleB AngleA 180 add def /tA AngleA a sub 90 add def /tB tA a 2
- mul add def /r xB xA sub tA cos tB cos sub Div dup 0 eq { pop 1 } if def
- /x0 xA r tA cos mul add def /y0 yA r tA sin mul add def /c 57.2958 r div
- def /AngleA AngleA a sub 180 add def /AngleB AngleB a add 180 add def
- GetEdgeA GetEdgeB /AngleA tA 180 add yA yA1 sub xA xA1 sub Pyth c mul
- sub def /AngleB tB 180 add yB yB1 sub xB xB1 sub Pyth c mul add def l 0
- eq { x0 y0 r h add AngleA AngleB arc x0 y0 r d add AngleB AngleA arcn }
- { x0 y0 translate /tA AngleA l c mul add def /tB AngleB l c mul sub def
- 0 0 r h add tA tB arc r h add AngleB PtoC r d add AngleB PtoC 2 copy 6 2
- roll l arcto 4 { pop } repeat r d add tB PtoC l arcto 4 { pop } repeat 0
- 0 r d add tB tA arcn r d add AngleA PtoC r h add AngleA PtoC 2 copy 6 2
- roll l arcto 4 { pop } repeat r h add tA PtoC l arcto 4 { pop } repeat }
- ifelse closepath /LPutVar [ x0 y0 r AngleA AngleB h d ] cvx def /LPutPos
- { LPutVar /d ED /h ED /AngleB ED /AngleA ED /r ED /y0 ED /x0 ED t 1 le {
- r h add AngleA 1 t sub mul AngleB t mul add dup 90 add /NAngle ED PtoC }
- { t 2 lt { /NAngle AngleB 180 add def r 2 t sub h mul t 1 sub d mul add
- add AngleB PtoC } { t 3 lt { r d add AngleB 3 t sub mul AngleA 2 t sub
- mul add dup 90 sub /NAngle ED PtoC } { /NAngle AngleA 180 add def r 4 t
- sub d mul t 3 sub h mul add add AngleA PtoC } ifelse } ifelse } ifelse
- y0 add /Y ED x0 add /X ED } def /HPutPos { LPutPos } def /VPutPos {
- LPutPos } def } def
- /Tfan { /AngleA yB yA sub xB xA sub Atan def GetEdgeA w xA1 xB sub yA1 yB
- sub Pyth Pyth w Div CLW 2 div mul 2 div dup AngleA sin mul yA1 add /yA1
- ED AngleA cos mul xA1 add /xA1 ED /LPutVar [ xA1 yA1 m { xB w add yB xB
- w sub yB } { xB yB w sub xB yB w add } ifelse xA1 yA1 ] cvx def /LPutPos
- { LPutLines } def /VPutPos@ { LPutVar flag { 8 4 roll pop pop pop pop }
- { pop pop pop pop 4 2 roll } ifelse } def /VPutPos { VPutPos@ VPutLine }
- def /HPutPos { VPutPos@ HPutLine } def mark LPutVar tx@Dict begin
- /ArrowA { moveto } def /ArrowB { } def false Line closepath end } def
- /LPutCoor { NAngle tx@Dict begin /NAngle ED end gsave CM STV CP Y sub neg
- exch X sub neg exch moveto setmatrix CP grestore } def
- /LPut { tx@NodeDict /LPutPos known { LPutPos } { CP /Y ED /X ED /NAngle 0
- def } ifelse LPutCoor } def
- /HPutAdjust { Sin Cos mul 0 eq { 0 } { d Cos mul Sin div flag not { neg }
- if h Cos mul Sin div flag { neg } if 2 copy gt { pop } { exch pop }
- ifelse } ifelse s add flag { r add neg } { l add } ifelse X add /X ED }
- def
- /VPutAdjust { Sin Cos mul 0 eq { 0 } { l Sin mul Cos div flag { neg } if
- r Sin mul Cos div flag not { neg } if 2 copy gt { pop } { exch pop }
- ifelse } ifelse s add flag { d add } { h add neg } ifelse Y add /Y ED }
- def
- end
-
- %%EndProcSet
- %%BeginProcSet: 8r.enc
- % @@psencodingfile@{
- % author = "S. Rahtz, P. MacKay, Alan Jeffrey, B. Horn, K. Berry",
- % version = "0.6",
- % date = "22 June 1996",
- % filename = "8r.enc",
- % email = "kb@@mail.tug.org",
- % address = "135 Center Hill Rd. // Plymouth, MA 02360",
- % codetable = "ISO/ASCII",
- % checksum = "119 662 4424",
- % docstring = "Encoding for TrueType or Type 1 fonts to be used with TeX."
- % @}
- %
- % Idea is to have all the characters normally included in Type 1 fonts
- % available for typesetting. This is effectively the characters in Adobe
- % Standard Encoding + ISO Latin 1 + extra characters from Lucida.
- %
- % Character code assignments were made as follows:
- %
- % (1) the Windows ANSI characters are almost all in their Windows ANSI
- % positions, because some Windows users cannot easily reencode the
- % fonts, and it makes no difference on other systems. The only Windows
- % ANSI characters not available are those that make no sense for
- % typesetting -- rubout (127 decimal), nobreakspace (160), softhyphen
- % (173). quotesingle and grave are moved just because it's such an
- % irritation not having them in TeX positions.
- %
- % (2) Remaining characters are assigned arbitrarily to the lower part
- % of the range, avoiding 0, 10 and 13 in case we meet dumb software.
- %
- % (3) Y&Y Lucida Bright includes some extra text characters; in the
- % hopes that other PostScript fonts, perhaps created for public
- % consumption, will include them, they are included starting at 0x12.
- %
- % (4) Remaining positions left undefined are for use in (hopefully)
- % upward-compatible revisions, if someday more characters are generally
- % available.
- %
- % (5) hyphen appears twice for compatibility with both ASCII and Windows.
- %
- /TeXBase1Encoding [
- % 0x00 (encoded characters from Adobe Standard not in Windows 3.1)
- /.notdef /dotaccent /fi /fl
- /fraction /hungarumlaut /Lslash /lslash
- /ogonek /ring /.notdef
- /breve /minus /.notdef
- % These are the only two remaining unencoded characters, so may as
- % well include them.
- /Zcaron /zcaron
- % 0x10
- /caron /dotlessi
- % (unusual TeX characters available in, e.g., Lucida Bright)
- /dotlessj /ff /ffi /ffl
- /.notdef /.notdef /.notdef /.notdef
- /.notdef /.notdef /.notdef /.notdef
- % very contentious; it's so painful not having quoteleft and quoteright
- % at 96 and 145 that we move the things normally found there down to here.
- /grave /quotesingle
- % 0x20 (ASCII begins)
- /space /exclam /quotedbl /numbersign
- /dollar /percent /ampersand /quoteright
- /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash
- % 0x30
- /zero /one /two /three /four /five /six /seven
- /eight /nine /colon /semicolon /less /equal /greater /question
- % 0x40
- /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O
- % 0x50
- /P /Q /R /S /T /U /V /W
- /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore
- % 0x60
- /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o
- % 0x70
- /p /q /r /s /t /u /v /w
- /x /y /z /braceleft /bar /braceright /asciitilde
- /.notdef % rubout; ASCII ends
- % 0x80
- /.notdef /.notdef /quotesinglbase /florin
- /quotedblbase /ellipsis /dagger /daggerdbl
- /circumflex /perthousand /Scaron /guilsinglleft
- /OE /.notdef /.notdef /.notdef
- % 0x90
- /.notdef /.notdef /.notdef /quotedblleft
- /quotedblright /bullet /endash /emdash
- /tilde /trademark /scaron /guilsinglright
- /oe /.notdef /.notdef /Ydieresis
- % 0xA0
- /.notdef % nobreakspace
- /exclamdown /cent /sterling
- /currency /yen /brokenbar /section
- /dieresis /copyright /ordfeminine /guillemotleft
- /logicalnot
- /hyphen % Y&Y (also at 45); Windows' softhyphen
- /registered
- /macron
- % 0xD0
- /degree /plusminus /twosuperior /threesuperior
- /acute /mu /paragraph /periodcentered
- /cedilla /onesuperior /ordmasculine /guillemotright
- /onequarter /onehalf /threequarters /questiondown
- % 0xC0
- /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla
- /Egrave /Eacute /Ecircumflex /Edieresis
- /Igrave /Iacute /Icircumflex /Idieresis
- % 0xD0
- /Eth /Ntilde /Ograve /Oacute
- /Ocircumflex /Otilde /Odieresis /multiply
- /Oslash /Ugrave /Uacute /Ucircumflex
- /Udieresis /Yacute /Thorn /germandbls
- % 0xE0
- /agrave /aacute /acircumflex /atilde
- /adieresis /aring /ae /ccedilla
- /egrave /eacute /ecircumflex /edieresis
- /igrave /iacute /icircumflex /idieresis
- % 0xF0
- /eth /ntilde /ograve /oacute
- /ocircumflex /otilde /odieresis /divide
- /oslash /ugrave /uacute /ucircumflex
- /udieresis /yacute /thorn /ydieresis
- ] def
-
- %%EndProcSet
- %%BeginProcSet: texps.pro
- %!
- TeXDict begin /rf{findfont dup length 1 add dict begin{1 index /FID ne 2
- index /UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll
- exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]/Metrics
- exch def dict begin Encoding{exch dup type /integertype ne{pop pop 1 sub
- dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get div def}
- ifelse}forall Metrics /Metrics currentdict end def[2 index currentdict
- end definefont 3 -1 roll makefont /setfont cvx]cvx def}def /ObliqueSlant
- {dup sin S cos div neg}B /SlantFont{4 index mul add}def /ExtendFont{3 -1
- roll mul exch}def /ReEncodeFont{/Encoding exch def}def end
-
- %%EndProcSet
- %%BeginProcSet: special.pro
- %!
- TeXDict begin /SDict 200 dict N SDict begin /@SpecialDefaults{/hs 612 N
- /vs 792 N /ho 0 N /vo 0 N /hsc 1 N /vsc 1 N /ang 0 N /CLIP 0 N /rwiSeen
- false N /rhiSeen false N /letter{}N /note{}N /a4{}N /legal{}N}B
- /@scaleunit 100 N /@hscale{@scaleunit div /hsc X}B /@vscale{@scaleunit
- div /vsc X}B /@hsize{/hs X /CLIP 1 N}B /@vsize{/vs X /CLIP 1 N}B /@clip{
- /CLIP 2 N}B /@hoffset{/ho X}B /@voffset{/vo X}B /@angle{/ang X}B /@rwi{
- 10 div /rwi X /rwiSeen true N}B /@rhi{10 div /rhi X /rhiSeen true N}B
- /@llx{/llx X}B /@lly{/lly X}B /@urx{/urx X}B /@ury{/ury X}B /magscale
- true def end /@MacSetUp{userdict /md known{userdict /md get type
- /dicttype eq{userdict begin md length 10 add md maxlength ge{/md md dup
- length 20 add dict copy def}if end md begin /letter{}N /note{}N /legal{}
- N /od{txpose 1 0 mtx defaultmatrix dtransform S atan/pa X newpath
- clippath mark{transform{itransform moveto}}{transform{itransform lineto}
- }{6 -2 roll transform 6 -2 roll transform 6 -2 roll transform{
- itransform 6 2 roll itransform 6 2 roll itransform 6 2 roll curveto}}{{
- closepath}}pathforall newpath counttomark array astore /gc xdf pop ct 39
- 0 put 10 fz 0 fs 2 F/|______Courier fnt invertflag{PaintBlack}if}N
- /txpose{pxs pys scale ppr aload pop por{noflips{pop S neg S TR pop 1 -1
- scale}if xflip yflip and{pop S neg S TR 180 rotate 1 -1 scale ppr 3 get
- ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip yflip
- not and{pop S neg S TR pop 180 rotate ppr 3 get ppr 1 get neg sub neg 0
- TR}if yflip xflip not and{ppr 1 get neg ppr 0 get neg TR}if}{noflips{TR
- pop pop 270 rotate 1 -1 scale}if xflip yflip and{TR pop pop 90 rotate 1
- -1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg
- TR}if xflip yflip not and{TR pop pop 90 rotate ppr 3 get ppr 1 get neg
- sub neg 0 TR}if yflip xflip not and{TR pop pop 270 rotate ppr 2 get ppr
- 0 get neg sub neg 0 S TR}if}ifelse scaleby96{ppr aload pop 4 -1 roll add
- 2 div 3 1 roll add 2 div 2 copy TR .96 dup scale neg S neg S TR}if}N /cp
- {pop pop showpage pm restore}N end}if}if}N /normalscale{Resolution 72
- div VResolution 72 div neg scale magscale{DVImag dup scale}if 0 setgray}
- N /psfts{S 65781.76 div N}N /startTexFig{/psf$SavedState save N userdict
- maxlength dict begin /magscale true def normalscale currentpoint TR
- /psf$ury psfts /psf$urx psfts /psf$lly psfts /psf$llx psfts /psf$y psfts
- /psf$x psfts currentpoint /psf$cy X /psf$cx X /psf$sx psf$x psf$urx
- psf$llx sub div N /psf$sy psf$y psf$ury psf$lly sub div N psf$sx psf$sy
- scale psf$cx psf$sx div psf$llx sub psf$cy psf$sy div psf$ury sub TR
- /showpage{}N /erasepage{}N /copypage{}N /p 3 def @MacSetUp}N /doclip{
- psf$llx psf$lly psf$urx psf$ury currentpoint 6 2 roll newpath 4 copy 4 2
- roll moveto 6 -1 roll S lineto S lineto S lineto closepath clip newpath
- moveto}N /endTexFig{end psf$SavedState restore}N /@beginspecial{SDict
- begin /SpecialSave save N gsave normalscale currentpoint TR
- @SpecialDefaults count /ocount X /dcount countdictstack N}N /@setspecial
- {CLIP 1 eq{newpath 0 0 moveto hs 0 rlineto 0 vs rlineto hs neg 0 rlineto
- closepath clip}if ho vo TR hsc vsc scale ang rotate rwiSeen{rwi urx llx
- sub div rhiSeen{rhi ury lly sub div}{dup}ifelse scale llx neg lly neg TR
- }{rhiSeen{rhi ury lly sub div dup scale llx neg lly neg TR}if}ifelse
- CLIP 2 eq{newpath llx lly moveto urx lly lineto urx ury lineto llx ury
- lineto closepath clip}if /showpage{}N /erasepage{}N /copypage{}N newpath
- }N /@endspecial{count ocount sub{pop}repeat countdictstack dcount sub{
- end}repeat grestore SpecialSave restore end}N /@defspecial{SDict begin}
- N /@fedspecial{end}B /li{lineto}B /rl{rlineto}B /rc{rcurveto}B /np{
- /SaveX currentpoint /SaveY X N 1 setlinecap newpath}N /st{stroke SaveX
- SaveY moveto}N /fil{fill SaveX SaveY moveto}N /ellipse{/endangle X
- /startangle X /yrad X /xrad X /savematrix matrix currentmatrix N TR xrad
- yrad scale 0 0 1 startangle endangle arc savematrix setmatrix}N end
-
- %%EndProcSet
- %%BeginProcSet: color.pro
- %!
- TeXDict begin /setcmykcolor where{pop}{/setcmykcolor{dup 10 eq{pop
- setrgbcolor}{1 sub 4 1 roll 3{3 index add neg dup 0 lt{pop 0}if 3 1 roll
- }repeat setrgbcolor pop}ifelse}B}ifelse /TeXcolorcmyk{setcmykcolor}def
- /TeXcolorrgb{setrgbcolor}def /TeXcolorgrey{setgray}def /TeXcolorgray{
- setgray}def /TeXcolorhsb{sethsbcolor}def /currentcmykcolor where{pop}{
- /currentcmykcolor{currentrgbcolor 10}B}ifelse /DC{exch dup userdict exch
- known{pop pop}{X}ifelse}B /GreenYellow{0.15 0 0.69 0 setcmykcolor}DC
- /Yellow{0 0 1 0 setcmykcolor}DC /Goldenrod{0 0.10 0.84 0 setcmykcolor}
- DC /Dandelion{0 0.29 0.84 0 setcmykcolor}DC /Apricot{0 0.32 0.52 0
- setcmykcolor}DC /Peach{0 0.50 0.70 0 setcmykcolor}DC /Melon{0 0.46 0.50
- 0 setcmykcolor}DC /YellowOrange{0 0.42 1 0 setcmykcolor}DC /Orange{0
- 0.61 0.87 0 setcmykcolor}DC /BurntOrange{0 0.51 1 0 setcmykcolor}DC
- /Bittersweet{0 0.75 1 0.24 setcmykcolor}DC /RedOrange{0 0.77 0.87 0
- setcmykcolor}DC /Mahogany{0 0.85 0.87 0.35 setcmykcolor}DC /Maroon{0
- 0.87 0.68 0.32 setcmykcolor}DC /BrickRed{0 0.89 0.94 0.28 setcmykcolor}
- DC /Red{0 1 1 0 setcmykcolor}DC /OrangeRed{0 1 0.50 0 setcmykcolor}DC
- /RubineRed{0 1 0.13 0 setcmykcolor}DC /WildStrawberry{0 0.96 0.39 0
- setcmykcolor}DC /Salmon{0 0.53 0.38 0 setcmykcolor}DC /CarnationPink{0
- 0.63 0 0 setcmykcolor}DC /Magenta{0 1 0 0 setcmykcolor}DC /VioletRed{0
- 0.81 0 0 setcmykcolor}DC /Rhodamine{0 0.82 0 0 setcmykcolor}DC /Mulberry
- {0.34 0.90 0 0.02 setcmykcolor}DC /RedViolet{0.07 0.90 0 0.34
- setcmykcolor}DC /Fuchsia{0.47 0.91 0 0.08 setcmykcolor}DC /Lavender{0
- 0.48 0 0 setcmykcolor}DC /Thistle{0.12 0.59 0 0 setcmykcolor}DC /Orchid{
- 0.32 0.64 0 0 setcmykcolor}DC /DarkOrchid{0.40 0.80 0.20 0 setcmykcolor}
- DC /Purple{0.45 0.86 0 0 setcmykcolor}DC /Plum{0.50 1 0 0 setcmykcolor}
- DC /Violet{0.79 0.88 0 0 setcmykcolor}DC /RoyalPurple{0.75 0.90 0 0
- setcmykcolor}DC /BlueViolet{0.86 0.91 0 0.04 setcmykcolor}DC /Periwinkle
- {0.57 0.55 0 0 setcmykcolor}DC /CadetBlue{0.62 0.57 0.23 0 setcmykcolor}
- DC /CornflowerBlue{0.65 0.13 0 0 setcmykcolor}DC /MidnightBlue{0.98 0.13
- 0 0.43 setcmykcolor}DC /NavyBlue{0.94 0.54 0 0 setcmykcolor}DC
- /RoyalBlue{1 0.50 0 0 setcmykcolor}DC /Blue{1 1 0 0 setcmykcolor}DC
- /Cerulean{0.94 0.11 0 0 setcmykcolor}DC /Cyan{1 0 0 0 setcmykcolor}DC
- /ProcessBlue{0.96 0 0 0 setcmykcolor}DC /SkyBlue{0.62 0 0.12 0
- setcmykcolor}DC /Turquoise{0.85 0 0.20 0 setcmykcolor}DC /TealBlue{0.86
- 0 0.34 0.02 setcmykcolor}DC /Aquamarine{0.82 0 0.30 0 setcmykcolor}DC
- /BlueGreen{0.85 0 0.33 0 setcmykcolor}DC /Emerald{1 0 0.50 0
- setcmykcolor}DC /JungleGreen{0.99 0 0.52 0 setcmykcolor}DC /SeaGreen{
- 0.69 0 0.50 0 setcmykcolor}DC /Green{1 0 1 0 setcmykcolor}DC
- /ForestGreen{0.91 0 0.88 0.12 setcmykcolor}DC /PineGreen{0.92 0 0.59
- 0.25 setcmykcolor}DC /LimeGreen{0.50 0 1 0 setcmykcolor}DC /YellowGreen{
- 0.44 0 0.74 0 setcmykcolor}DC /SpringGreen{0.26 0 0.76 0 setcmykcolor}
- DC /OliveGreen{0.64 0 0.95 0.40 setcmykcolor}DC /RawSienna{0 0.72 1 0.45
- setcmykcolor}DC /Sepia{0 0.83 1 0.70 setcmykcolor}DC /Brown{0 0.81 1
- 0.60 setcmykcolor}DC /Tan{0.14 0.42 0.56 0 setcmykcolor}DC /Gray{0 0 0
- 0.50 setcmykcolor}DC /Black{0 0 0 1 setcmykcolor}DC /White{0 0 0 0
- setcmykcolor}DC end
-
- %%EndProcSet
- TeXDict begin 39158280 55380996 1000 600 600
- (d:\Users\argray\work\publications\Papers\1999\Fuzzy logic for management (NAFIPS)/gray.dvi)
- @start /Fa 133[29 33 1[50 1[37 21 29 29 1[37 37 37 54
- 21 2[21 37 37 21 33 37 33 1[37 12[42 37 46 1[46 1[50
- 62 2[33 25 2[46 46 1[50 1[46 6[25 37 1[37 5[37 3[25 5[25
- 58 38[{TeXBase1Encoding ReEncodeFont }39 74.7198 /Times-Italic
- rf /Fb 105[37 27[33 37 37 54 37 37 21 29 25 37 37 37
- 37 58 21 37 1[21 37 37 25 33 37 33 37 33 3[25 1[25 1[54
- 1[71 54 1[46 42 50 1[42 54 54 66 46 54 29 25 54 54 42
- 46 54 50 1[54 6[21 37 37 37 37 37 37 37 37 37 2[19 25
- 19 4[25 35[42 3[{TeXBase1Encoding ReEncodeFont }64 74.7198
- /Times-Roman rf
- %DVIPSBitmapFont: Fc cmsy10 10 1
- /Fc 1 121 df<007E0001FFC007C1E00F00701E00383E001C7C000C7C001E7C007EF800
- 7EF8007EF8007EF8003CF80000F80000F800007C00007C00007C00003E00001E00000F00
- 0007800003C00000F00000FC0003FF000F87801F01E03E01F03E00F87C007C7C007CFC00
- 3EF8003EF8001FF8001FF8001FF8001FF8001FF8001F7C001F7C003F3E003E3E003E1F00
- 7C0F807C0780F801E1F000FFC0003F00000F000003C00001E00000F000007800007C0000
- 3E00003E00003E00001F00001F00001F3C001F7E001F7E001F7E001F7E003E78003E3000
- 3E38007C1C00780E00F00783E003FF80007E00184C7ABA25>120
- D E
- %EndDVIPSBitmapFont
- /Fd 134[42 3[46 28 32 2[46 42 46 1[23 2[23 46 42 1[37
- 46 37 1[42 12[55 3[51 65 1[78 3[32 4[60 60 1[60 65[{
- TeXBase1Encoding ReEncodeFont }23 83.022 /Times-Bold
- rf /Fe 82[28 51[46 1[65 46 51 28 46 32 1[51 51 51 74
- 23 2[23 51 51 28 46 51 46 51 46 12[51 55 12[51 1[60 17[46
- 46 2[23 46[{TeXBase1Encoding ReEncodeFont }29 83.022
- /Helvetica-Bold rf /Ff 82[30 50[41 46 3[51 30 36 41 51
- 51 46 51 76 25 2[25 1[46 1[41 51 41 51 46 12[61 1[66
- 2[71 1[86 8[66 66 1[66 11[46 46 46 46 46 2[23 46[{
- TeXBase1Encoding ReEncodeFont }33 91.3242 /Times-Bold
- rf /Fg 107[37 37 24[37 42 42 60 42 42 23 32 28 42 42
- 42 42 65 23 42 23 23 42 42 28 37 42 37 42 37 3[28 1[28
- 51 2[78 60 60 51 46 55 1[46 60 60 74 3[28 60 60 46 51
- 60 55 55 60 3[47 1[23 1[42 42 42 42 42 42 42 42 42 42
- 1[21 28 21 2[28 28 28 1[69 33[46 46 2[{TeXBase1Encoding ReEncodeFont }
- 71 83.022 /Times-Roman rf /Fh 133[32 37 37 55 37 42 23
- 32 32 42 42 42 42 60 23 37 23 23 42 42 23 37 42 37 42
- 42 12[46 42 51 2[60 5[28 3[51 60 55 10[42 42 42 42 42
- 42 42 42 42 1[21 28 21 4[28 36[42 2[{TeXBase1Encoding ReEncodeFont }48
- 83.022 /Times-Italic rf /Fi 133[44 50 1[72 50 55 33 39
- 44 1[55 50 55 83 28 2[28 55 50 33 44 55 44 55 50 12[66
- 1[72 8[39 2[61 2[72 1[72 11[50 50 50 50 50 2[25 33 45[{
- TeXBase1Encoding ReEncodeFont }35 99.6264 /Times-Bold
- rf
- %DVIPSBitmapFont: Fj cmsy10 12 2
- /Fj 2 104 df<0000000FE0000000FFE0000003FC0000000FE00000003FC00000007F80
- 000000FF00000000FE00000001FC00000001FC00000003F800000003F800000003F80000
- 0003F800000003F800000003F800000003F800000003F800000003F800000003F8000000
- 03F800000003F800000003F800000003F800000003F800000003F800000003F800000003
- F800000003F800000003F800000003F800000003F800000003F800000003F800000003F8
- 00000003F800000003F800000003F800000003F800000003F800000003F800000007F000
- 000007F00000000FE00000001FE00000003FC00000007F80000000FE00000007F8000000
- FFE0000000FFE000000007F800000000FE000000007F800000003FC00000001FE0000000
- 0FE000000007F000000007F000000003F800000003F800000003F800000003F800000003
- F800000003F800000003F800000003F800000003F800000003F800000003F800000003F8
- 00000003F800000003F800000003F800000003F800000003F800000003F800000003F800
- 000003F800000003F800000003F800000003F800000003F800000003F800000003F80000
- 0003F800000003F800000003F800000003F800000003F800000001FC00000001FC000000
- 00FE00000000FF000000007F800000003FC00000000FE000000003FC00000000FFE00000
- 000FE0236479CA32>102 D<FE00000000FFE000000007F800000000FE000000007F8000
- 00003FC00000001FE00000000FE000000007F000000007F000000003F800000003F80000
- 0003F800000003F800000003F800000003F800000003F800000003F800000003F8000000
- 03F800000003F800000003F800000003F800000003F800000003F800000003F800000003
- F800000003F800000003F800000003F800000003F800000003F800000003F800000003F8
- 00000003F800000003F800000003F800000003F800000003F800000003F800000003F800
- 000001FC00000001FC00000000FE00000000FF000000007F800000003FC00000000FE000
- 000003FC00000000FFE0000000FFE0000003FC0000000FE00000003FC00000007F800000
- 00FF00000000FE00000001FC00000001FC00000003F800000003F800000003F800000003
- F800000003F800000003F800000003F800000003F800000003F800000003F800000003F8
- 00000003F800000003F800000003F800000003F800000003F800000003F800000003F800
- 000003F800000003F800000003F800000003F800000003F800000003F800000003F80000
- 0003F800000003F800000003F800000003F800000003F800000003F800000007F0000000
- 07F00000000FE00000001FE00000003FC00000007F80000000FE00000007F8000000FFE0
- 000000FE00000000236479CA32>I E
- %EndDVIPSBitmapFont
- /Fk 133[44 50 50 72 50 50 28 39 33 1[50 50 50 78 28 2[28
- 50 50 33 44 50 44 1[44 6[61 4[72 1[55 66 1[55 72 72 89
- 3[33 1[72 2[72 1[66 72 92 9[50 50 6[25 1[25 44[{
- TeXBase1Encoding ReEncodeFont }40 99.6264 /Times-Roman
- rf /Fl 133[53 60 1[86 60 66 40 47 53 1[66 60 66 100 33
- 2[33 66 60 40 53 66 53 1[60 13[66 5[113 80 5[73 1[86
- 86 21[40 45[{TeXBase1Encoding ReEncodeFont }28 119.552
- /Times-Bold rf end
- %%EndProlog
- %%BeginSetup
- %%Feature: *Resolution 600dpi
- TeXDict begin
- %%PaperSize: A4
-
- %%EndSetup
- %%Page: 1 1
- 1 0 bop Black Black Black Black Black -178 374 a Fl(Fuzzy)30
- b(Logic)g(f)m(or)f(Softwar)n(e)h(Metric)g(Models)g(thr)n(oughout)g(the)
- h(De)n(v)o(elopment)f(Life-Cycle)996 690 y Fk(Andre)n(w)24
- b(R.)i(Gray)f(and)f(Stephen)h(G.)g(MacDonell)1173 806
- y(Department)f(of)h(Information)f(Science)750 922 y(Uni)n(v)o(ersity)f
- (of)i(Otago,)f(PO)h(Box)g(56,)g(Dunedin,)f(Ne)n(w)g(Zealand)974
- 1039 y Fj(f)p Fk(agray)p Fj(gf)p Fk(ste)n(v)o(emac)p
- Fj(g)p Fk(@infoscience.otago.ac.nz)p Black 617 1389 a
- Fi(Abstract)-83 1588 y Fh(One)j(pr)l(oblem)f(faced)g(by)g(mana)o(g)o
- (er)o(s)g(who)h(ar)m(e)g(using)f(pr)l(oject)-182 1688
- y(mana)o(g)o(ement)f(models)h(is)i(the)f(elicitation)f(of)h(numerical)g
- (inputs.)-182 1788 y(Obtaining)i(these)i(with)g(any)g(de)m(gr)m(ee)e
- (of)i(con\002dence)e(early)i(in)g(a)-182 1887 y(pr)l(oject)d(is)i(not)e
- (always)h(feasible)o(.)50 b(Related)28 b(to)h(this)g(dif)o(\002culty)e
- (is)-182 1987 y(the)e(risk)i(of)f(pr)m(ecisely)f(speci\002ed)g(outputs)
- g(fr)l(om)h(models)f(leading)-182 2086 y(to)19 b(o)o(ver)m(commitment.)
- 24 b(These)19 b(pr)l(oblems)h(can)e(be)i(seen)f(as)h(the)f(col-)-182
- 2186 y(lective)f(failur)m(e)g(of)g(softwar)m(e)g(measur)m(ements)g(to)g
- (r)m(epr)m(esent)g(the)g(in-)-182 2286 y(her)m(ent)25
- b(uncertainties)h(in)g(mana)o(g)o(er)o(s')f(knowledg)o(e)g(of)i(the)f
- (de)o(vel-)-182 2385 y(opment)e(pr)l(oducts,)j(r)m(esour)m(ces,)g(and)e
- (pr)l(ocesses.)42 b(It)26 b(is)h(pr)l(oposed)-182 2485
- y(that)i(fuzzy)h(lo)o(gic)g(tec)o(hniques)e(can)h(help)h(to)g(o)o(ver)m
- (come)f(some)h(of)-182 2585 y(these)e(dif)o(\002culties)g(by)g(r)m(epr)
- m(esenting)g(the)h(impr)m(ecision)f(in)g(inputs)-182
- 2684 y(and)20 b(outputs,)h(as)h(well)h(as)f(pr)l(o)o(viding)e(a)i(mor)m
- (e)g(e)n(xpert-knowledg)o(e)-182 2784 y(based)k(appr)l(oac)o(h)f(to)i
- (model)g(b)n(uilding)o(.)44 b(The)28 b(use)f(of)g(fuzzy)h(lo)o(gic)-182
- 2883 y(for)k(pr)l(oject)g(mana)o(g)o(ement)e(howe)o(ver)h(should)g(not)
- h(be)g(the)g(same)-182 2983 y(thr)l(oughout)c(the)i(de)o(velopment)e
- (life)j(cycle)o(.)54 b(Dif)o(fer)m(ent)30 b(le)o(vels)h(of)-182
- 3083 y(available)22 b(information)h(and)g(desir)m(ed)h(pr)m(ecision)g
- (sug)o(g)o(est)g(that)g(it)-182 3182 y(can)d(be)h(used)g(dif)o(fer)m
- (ently)f(depending)f(on)h(the)h(curr)m(ent)g(phase)o(,)g(al-)-182
- 3282 y(though)c(a)i(single)g(model)g(can)g(be)g(used)g(for)g
- (consistency)-5 b(.)-182 3614 y Fi(1)o(.)25 b(Intr)n(oduction)-83
- 3831 y Fg(Fuzzy)20 b(logic)f(modeling)f(techniques)h(ha)n(v)o(e)g(been)
- g(sho)n(wn)g(to)h(be)-182 3930 y(a)35 b(useful)g(addition)f(to)h(the)h
- (e)o(xisting)e(statistical)j(and)d(machine-)-182 4030
- y(learning)e(techniques)h(used)g(for)h(modeling)e(softw)o(are)h(de)n(v)
- o(elop-)-182 4129 y(ment)27 b([3)o(].)46 b(Aside)28 b(from)e
- (theoretical)g(reasons)h(preferring)e(fuzzy)-182 4229
- y(logic)19 b(in)h(some)g(circumstances,)e(se)n(v)o(eral)i(papers)f(ha)n
- (v)o(e)g(sho)n(wn)g(f)o(a-)-182 4329 y(v)n(orable)g(empirical)g
- (comparisons)g(supporting)f(its)k(usefulness)d(by)-182
- 4428 y(using)30 b(softw)o(are)g(metric)g(data)g(sets)i(to)e(compare)f
- (the)i(predicti)n(v)o(e)-182 4528 y(accurac)o(y)21 b(of)h(v)n(arious)g
- (techniques)f([2)o(,)i(5,)g(7)o(].)33 b(In)22 b(addition,)g(fuzzy)-182
- 4628 y(logic)h(modeling)f(softw)o(are)h(has)h(been)f(especially)g(de)n
- (v)o(eloped)f(for)-182 4727 y(supporting)c(the)i(project)f(estimation)h
- (process)f([6,)h(7].)-83 4827 y(A)f(recent)f(surv)o(e)o(y)g(of)g(Ne)n
- (w)h(Zealand)e(project)h(managers)g(found)-182 4926 y(them)e(to)i(ha)n
- (v)o(e)e(considerable)f(interest)j(in)f(using)g(fuzzy)f(logic)g(tech-)
- -182 5026 y(niques)h([7].)24 b(This)19 b(surv)o(e)o(y)e(found)g(that)h
- (31)h(out)f(of)g(the)h(44)f(respond-)-182 5126 y(ing)23
- b(information)f(system)j(managers)d(had)i(heard)f(of)h(fuzzy)f(logic)
- -182 5225 y(\(70.5\045\).)36 b(F)o(or)24 b(the)g(36)g(managers)f(who)h
- (were)g(acti)n(v)o(ely)g(in)m(v)n(olv)o(ed)-182 5325
- y(in)33 b(managing)e(de)n(v)o(elopment)f(projects,)35
- b(11)d(\(31\045\))g(were)h(inter)n(-)1974 1389 y(ested)24
- b(in)f(using)h(fuzzy)e(logic)h(techniques,)g(23)h(\(64\045\))e(stated)i
- (that)1974 1489 y(the)o(y)g(w)o(ould)f(need)h(to)h(kno)n(w)e(more)h
- (about)f(the)i(technique)e(before)1974 1588 y(making)30
- b(a)h(decision,)i(and)e(only)g(tw)o(o)g(\(6\045\))g(did)g(not)g(think)f
- (that)1974 1688 y(fuzzy)c(logic)h(techniques)f(w)o(ould)g(be)h(useful)g
- (to)g(them)g(as)h(part)e(of)1974 1787 y(their)20 b(management)e(acti)n
- (vities.)2073 1887 y(In)h(addition)e(to)i(assessing)g(the)g(managers')e
- (perceptions)g(of)h(the)1974 1987 y(w)o(orth)34 b(of)g(fuzzy)f(logic,)k
- (the)d(surv)o(e)o(y)f(also)i(in)m(v)o(estigated)d(which)1974
- 2086 y(adv)n(antages)c(of)h(fuzzy)g(logic)g(were)g(felt)h(to)g(be)f
- (important.)52 b(The)1974 2186 y(three)27 b(choices)f(of)h(being)f
- (able)i(to)f(use)g(e)o(xpert)f(kno)n(wledge,)h(ha)n(v-)1974
- 2286 y(ing)22 b(linguistic)f(inputs,)h(and)f(producing)f(linguistic)h
- (outputs)g(were)1974 2385 y(all)g(rated)e(roughly)f(the)i(same)h
- (\(with)f(19,)f(19,)h(and)f(21)h(respondents)1974 2485
- y(citing)g(each)g(as)g(important)f(respecti)n(v)o(ely\).)2073
- 2585 y(As)32 b(the)f(le)n(v)o(el)f(of)g(commercial)g(interest)g(in)h
- (using)f(this)i(tech-)1974 2684 y(nique)i(\223in)h(anger\224)f(gro)n
- (ws)g(it)i(becomes)e(necessary)g(to)h(pro)o(vide)1974
- 2784 y(well-documented)12 b(and)j(replicable)g(standards)f(for)h(its)i
- (implemen-)1974 2884 y(tation.)23 b(The)16 b(most)h(successful)f(softw)
- o(are)g(metric)g(model)g(for)f(ef)n(fort)1974 2983 y(estimation)i(is)i
- (Function)e(Point)h(Analysis)g([1)o(],)h(and)e(a)i(hallmark)d(of)1974
- 3083 y(this)25 b(has)f(been)f(its)j(carefully)c(documented)g
- (procedures)g(\(in)i(both)1974 3182 y(standards)h(and)h(man)o(y)f
- (publications\),)g(certi\002cation,)i(and)e(w)o(ork-)1974
- 3282 y(shops.)h(While)21 b(it)g(w)o(ould)f(be)h(premature)d(to)j
- (impose)f(such)g(restric-)1974 3382 y(tions)f(on)h(the)f(use)h(of)f
- (fuzzy)g(logic)g(techniques)f(at)i(this)g(early)f(stage)1974
- 3481 y(of)k(its)h(adoption)d(in)i(this)g(\002eld,)h(it)g(does)e(seem)i
- (prudent)d(to)i(outline)1974 3581 y(some)28 b(general)e(sk)o(eleton)i
- (guidelines)e(to)j(encourage)c(the,)30 b(some-)1974 3681
- y(what)g(inconsistent,)h(goals)f(of)g(e)o(xperimentation)c(and)k(rigor)
- -5 b(.)53 b(In)1974 3780 y(this)27 b(paper)m(,)g(the)g(selection)f(of)g
- (input)g(and)g(output)g(precision)g(le)n(v-)1974 3880
- y(els)f(based)f(on)f(the)h(stage)h(of)f(the)g(de)n(v)o(elopment)d(life)
- j(c)o(ycle)g(is)h(dis-)1974 3979 y(cussed.)1974 4212
- y Fi(2.)f(The)i(softwar)n(e)g(de)o(v)o(elopment)f(life-cycle)2073
- 4428 y Fg(Man)o(y)18 b(alternati)n(v)o(e)f(representations)g(ha)n(v)o
- (e)h(been)g(proposed)f(for)1974 4528 y(ho)n(w)23 b(softw)o(are)h(is,)i
- (and)d(ought)g(to)h(be,)h(de)n(v)o(eloped)c([9].)36 b(Dif)n(ferent)1974
- 4628 y(models)26 b(e)o(xist)g(for)g(dif)n(ferent)f(types)h(of)h
- (system,)h(such)e(as)h(object-)1974 4727 y(oriented)20
- b(systems,)j(where)e(the)h(idealized)f(de)n(v)o(elopment)e(process)1974
- 4827 y(is)e(considered)e(by)h(some)h(to)f(be)h(fundamentally)c(dif)n
- (ferent)i(to)i(other)1974 4926 y(types)f(of)h(de)n(v)o(elopment.)k
- (Similarly)-5 b(,)16 b(the)h(use)g(of)g(prototypes)d(\(both)1974
- 5026 y(lo)n(w-)22 b(and)f(high-\002delity\),)f(customer)i(re)n(vie)n
- (ws,)g(and)f(other)h(acti)n(vi-)1974 5126 y(ties)f(may)f(dif)n(fer)f
- (from)g(one)g(or)o(ganization)e(to)k(the)f(ne)o(xt.)2073
- 5225 y(Here)h(we)g(consider)f(only)g(the)h(fundamental)d(phases)j(of)f
- (de)n(v)o(el-)1974 5325 y(opment)f(that)h(are)h(ubiquitous)d(to)j
- (almost)f(all)h(such)f(models)g(found)p Black Black eop
- %%Page: 2 2
- 2 1 bop Black Black -182 83 a Fg(in)22 b(practice)g(and)g(the)g
- (literature.)31 b(Namely)-5 b(,)22 b(the)g(analysis,)h(design,)-182
- 183 y(coding,)36 b(testing,)i(and)c(maintenance)f(phases.)68
- b(Each)35 b(phase)f(is)-182 282 y(brie\003y)14 b(de\002ned)h(belo)n(w)g
- (\(in)g(deliberately)f(v)n(ague)g(terms)i(to)f(encom-)-182
- 382 y(pass)27 b(common)f(usage)h(as)h(widely)e(as)i(possible\).)46
- b(These)27 b(phases)-182 482 y(can)i(also)h(be)f(sho)n(wn)g
- (graphically)f(as)i(in)g(Figure)f(1,)j(which)d(also)-182
- 581 y(indicates)23 b(the)i(common)d(notion)h(of)h(iteration)f(and)h
- (feedback)e(be-)-182 681 y(tween)e(consecuti)n(v)o(e)e(phases.)-182
- 899 y Ff(2.1)o(.)k(Analysis)-83 1118 y Fg(This)33 b(is)h(the)f(\002rst)
- g(stage)g(of)g(the)f(de)n(v)o(elopment)e(process)i(and)-182
- 1217 y(starts)h(with)f(the)g(problem)f(being)g(de\002ned)g(and)h
- (initial)g(user)g(re-)-182 1317 y(quirements)j(being)g(collected.)73
- b(This)37 b(phase)f(can)g(include)g(the)-182 1417 y(construction)15
- b(of)j(simple)g(prototypes)e(used)h(to)h(determine)f(or)g(\002ne-)-182
- 1516 y(tune)25 b(the)h(requirements,)f(b)n(ut)h(should)f(not)h(in)m(v)n
- (olv)o(e)e(an)o(y)i(detailed)-182 1616 y(design)19 b(or)h(real)g
- (coding.)-83 1719 y(V)-9 b(ery)29 b(little)i(information)c(be)o(yond)g
- (the)j(high-le)n(v)o(el)d(functions)-182 1819 y(required)17
- b(of)j(the)f(system)h(is)h(a)n(v)n(ailable)e(this)h(early)f(in)h(the)f
- (project')-5 b(s)-182 1918 y(life-c)o(ycle.)26 b(Unfortunately)-5
- b(,)19 b(this)i(is)i(also)e(the)g(phase)g(where)g(plan-)-182
- 2018 y(ning)27 b(is)i(most)f(crucial)f(in)h(terms)g(of)g(both)f
- (time-to-deli)n(v)o(ery)d(and)-182 2118 y(\002nancial)19
- b(cost)i(estimation.)j(Such)c(information)d(is)k(necessary)f(for)-182
- 2217 y(contract)33 b(ne)o(gotiation)f(\(both)i(inter)n(-)g(and)g
- (intra-or)o(ganizational\))-182 2317 y(and)19 b(strate)o(gic)h
- (planning.)-83 2420 y(In)26 b(this)i(and)e(the)g(ne)o(xt)g(tw)o(o)h
- (stages)g(\(design)e(and)h(coding\))f(the)-182 2520 y(main)e(emphasis)g
- (of)h(softw)o(are)f(metric)g(models)g(is)i(the)f(prediction)-182
- 2619 y(of)19 b(de)n(v)o(elopment)e(ef)n(fort,)h(and)h(from)g(this)h
- (some)g(estimates)g(of)g(cost)-182 2719 y(and)e(duration.)23
- b(While)d(other)e(dependent)f(v)n(ariables)i(can)g(be)g(of)g(in-)-182
- 2819 y(terest,)d(the)g(focus)f(in)h(this)g(paper)f(is)h(with)g(this)g
- (primary)e(application)-182 2918 y(of)19 b(ef)n(fort)f(estimation.)24
- b(Similar)c(ideas)f(can)h(be)f(easily)h(generalized)-182
- 3018 y(for)f(other)h(metric)f(applications.)-182 3236
- y Ff(2.2)o(.)j(Design)-83 3455 y Fg(The)29 b(requirements)e(must)i
- (then)g(be)g(translated)f(closer)h(to)g(the)-182 3554
- y(actual)c(implementation.)37 b(This)26 b(is)g(when)f(the)g(system)g
- (speci\002ca-)-182 3654 y(tions)e(are)g(de)n(v)o(eloped)e(\(for)i(e)o
- (xample,)f(Entity-Relationship)g(Dia-)-182 3754 y(grams,)i(Data)h(Flo)n
- (w)g(Diagrams,)g(Structure)e(Charts,)j(and)e(pseudo)-182
- 3853 y(code)c(routines\).)28 b(Ideally)-5 b(,)20 b(the)i(system)g
- (should)e(be)i(understood)d(to)-182 3953 y(a)k(high)f(de)o(gree)f(at)i
- (this)h(stage,)f(with)g(the)g(coding)e(stage)i(in)m(v)n(olving)-182
- 4053 y(the)d(implementation)e(of)i(the)g(necessary)f(functions.)-182
- 4271 y Ff(2.3)o(.)j(Coding)-83 4490 y Fg(Actual)31 b(source)f(code)g
- (is)i(written)e(during)f(the)i(coding)e(phase)-182 4589
- y(\(including)22 b(visually)i(generated)f(code)h(and)h(automatic)e
- (template)-182 4689 y(code\).)36 b(This)25 b(may)e(also)i(include)f(e)n
- (v)o(er)f(more)h(sophisticated)f(pro-)-182 4788 y(totypes)c(that)h(e)n
- (v)n(olv)o(e)g(\(at)g(least)h(partially\))e(into)h(the)g(\002nal)g
- (system.)-182 5007 y Ff(2.4)o(.)i(T)-8 b(esting)-83 5225
- y Fg(T)i(esting)38 b(can)g(be)g(performed)e(concurrently)f(with)j(de)n
- (v)o(elop-)-182 5325 y(ment,)17 b(or)h(may)g(occur)f(after)h(most)g
- (code)f(has)i(been)e(written.)24 b(When)p Black Black
- Black 2245 88 a
- tx@Dict begin tx@NodeDict begin {10.61989 5.96492 42.59949 21.29974
- 3.14996 } /N@A true /N@M-1-1-1 16 {InitRnode } NewNode end end
- 2245 88 a 32 w @beginspecial @setspecial
- tx@Dict begin STP newpath 0.8 SLW 0. setgray 0.2 true 3.8 neg 5.96492
- neg 38.79948 10.61989 .5 Frame gsave 0.8 SLW 0. setgray 0 setlinecap
- stroke grestore end
-
-
- @endspecial Fg(Analysis)2516 470 y
- tx@Dict begin tx@NodeDict begin {10.61989 5.96492 35.9297 17.96484
- 3.14996 } /N@B true /N@M-1-2-2 16 {InitRnode } NewNode end end
- 2516 470 a 32 w @beginspecial
- @setspecial
- tx@Dict begin STP newpath 0.8 SLW 0. setgray 0.2 true 3.8 neg 5.96492
- neg 32.1297 10.61989 .5 Frame gsave 0.8 SLW 0. setgray 0 setlinecap
- stroke grestore end
-
- @endspecial Fg(Design)2731 853 y
- tx@Dict begin tx@NodeDict begin {10.61989 5.96492 37.04982 18.5249
- 3.14996 } /N@C true /N@M-1-3-3 16 {InitRnode } NewNode end end
- 2731 853
- a 32 w @beginspecial @setspecial
- tx@Dict begin STP newpath 0.8 SLW 0. setgray 0.2 true 3.8 neg 5.96492
- neg 33.24982 10.61989 .5 Frame gsave 0.8 SLW 0. setgray 0 setlinecap
- stroke grestore end
-
- @endspecial Fg(Coding)2956
- 1235 y
- tx@Dict begin tx@NodeDict begin {10.61989 5.96492 36.89966 18.44983
- 3.14996 } /N@D true /N@M-1-4-4 16 {InitRnode } NewNode end end
- 2956 1235 a 31 w @beginspecial @setspecial
- tx@Dict begin STP newpath 0.8 SLW 0. setgray 0.2 true 3.8 neg 5.96492
- neg 33.09966 10.61989 .5 Frame gsave 0.8 SLW 0. setgray 0 setlinecap
- stroke grestore end
-
- @endspecial
- Fg(T)-6 b(esting)3179 1617 y
- tx@Dict begin tx@NodeDict begin {10.61989 3.91994 59.24939 29.6247
- 3.14996 } /N@E true /N@M-1-5-5 16 {InitRnode } NewNode end end
- 3179 1617 a 32 w @beginspecial
- @setspecial
- tx@Dict begin STP newpath 0.8 SLW 0. setgray 0.2 true 3.8 neg 3.91994
- neg 55.44939 10.61989 .5 Frame gsave 0.8 SLW 0. setgray 0 setlinecap
- stroke grestore end
-
- @endspecial Fg(Maintenance)3671 1617 y
- tx@Dict begin gsave STV newpath 0.8 SLW 0. setgray /ArrowA { moveto
- } def /ArrowB { BeginArrow false 0.4 1.4 1.5 2. Arrow EndArrow }
- def /NCLW CLW def tx@NodeDict begin 0.0 0.0 neg 0.0 0.0 0 0 /N@A /N@B
- InitNC { tx@Dict begin /Lineto /lineto load def false pop end /AngleA
- 0. def /AngleB 90. def /ArmA 0.0 def /ArmB 10.0 def /ArmTypeA 0 def
- /ArmTypeB 0 def NCAngle } if end gsave 0.8 SLW 0. setgray 0 setlinecap
- stroke grestore grestore end
- 3671
- 1617 a 3671 1617 a
- tx@Dict begin gsave STV newpath 0.8 SLW 0. setgray /ArrowA { moveto
- } def /ArrowB { BeginArrow false 0.4 1.4 1.5 2. Arrow EndArrow }
- def /NCLW CLW def tx@NodeDict begin 0.0 0.0 neg 0.0 0.0 0 0 /N@B /N@C
- InitNC { tx@Dict begin /Lineto /lineto load def false pop end /AngleA
- 0. def /AngleB 90. def /ArmA 0.0 def /ArmB 10.0 def /ArmTypeA 0 def
- /ArmTypeB 0 def NCAngle } if end gsave 0.8 SLW 0. setgray 0 setlinecap
- stroke grestore grestore end
- 3671 1617 a 3671 1617 a
- tx@Dict begin gsave STV newpath 0.8 SLW 0. setgray /ArrowA { moveto
- } def /ArrowB { BeginArrow false 0.4 1.4 1.5 2. Arrow EndArrow }
- def /NCLW CLW def tx@NodeDict begin 0.0 0.0 neg 0.0 0.0 0 0 /N@C /N@D
- InitNC { tx@Dict begin /Lineto /lineto load def false pop end /AngleA
- 0. def /AngleB 90. def /ArmA 0.0 def /ArmB 10.0 def /ArmTypeA 0 def
- /ArmTypeB 0 def NCAngle } if end gsave 0.8 SLW 0. setgray 0 setlinecap
- stroke grestore grestore end
- 3671 1617
- a 3671 1617 a
- tx@Dict begin gsave STV newpath 0.8 SLW 0. setgray /ArrowA { moveto
- } def /ArrowB { BeginArrow false 0.4 1.4 1.5 2. Arrow EndArrow }
- def /NCLW CLW def tx@NodeDict begin 0.0 0.0 neg 0.0 0.0 0 0 /N@D /N@E
- InitNC { tx@Dict begin /Lineto /lineto load def false pop end /AngleA
- 0. def /AngleB 90. def /ArmA 0.0 def /ArmB 10.0 def /ArmTypeA 0 def
- /ArmTypeB 0 def NCAngle } if end gsave 0.8 SLW 0. setgray 0 setlinecap
- stroke grestore grestore end
- 3671 1617 a 3671 1617 a
- tx@Dict begin gsave STV newpath 0.8 SLW 0. setgray /ArrowA { moveto
- } def /ArrowB { BeginArrow false 0.4 1.4 1.5 2. Arrow EndArrow }
- def /NCLW CLW def tx@NodeDict begin 0.0 0.0 neg 0.0 0.0 0 0 /N@B /N@A
- InitNC { tx@Dict begin /Lineto /lineto load def false pop end /AngleA
- 180. def /AngleB -90. def /ArmA 0.0 def /ArmB 10.0 def /ArmTypeA 0
- def /ArmTypeB 0 def NCAngle } if end gsave 0.8 SLW 0. setgray 0 setlinecap
- stroke grestore grestore end
- 3671 1617 a 3671
- 1617 a
- tx@Dict begin gsave STV newpath 0.8 SLW 0. setgray /ArrowA { moveto
- } def /ArrowB { BeginArrow false 0.4 1.4 1.5 2. Arrow EndArrow }
- def /NCLW CLW def tx@NodeDict begin 0.0 0.0 neg 0.0 0.0 0 0 /N@C /N@B
- InitNC { tx@Dict begin /Lineto /lineto load def false pop end /AngleA
- 180. def /AngleB -90. def /ArmA 0.0 def /ArmB 10.0 def /ArmTypeA 0
- def /ArmTypeB 0 def NCAngle } if end gsave 0.8 SLW 0. setgray 0 setlinecap
- stroke grestore grestore end
- 3671 1617 a 3671 1617 a
- tx@Dict begin gsave STV newpath 0.8 SLW 0. setgray /ArrowA { moveto
- } def /ArrowB { BeginArrow false 0.4 1.4 1.5 2. Arrow EndArrow }
- def /NCLW CLW def tx@NodeDict begin 0.0 0.0 neg 0.0 0.0 0 0 /N@D /N@C
- InitNC { tx@Dict begin /Lineto /lineto load def false pop end /AngleA
- 180. def /AngleB -90. def /ArmA 0.0 def /ArmB 10.0 def /ArmTypeA 0
- def /ArmTypeB 0 def NCAngle } if end gsave 0.8 SLW 0. setgray 0 setlinecap
- stroke grestore grestore end
- 3671 1617 a 3671 1617
- a
- tx@Dict begin gsave STV newpath 0.8 SLW 0. setgray /ArrowA { moveto
- } def /ArrowB { BeginArrow false 0.4 1.4 1.5 2. Arrow EndArrow }
- def /NCLW CLW def tx@NodeDict begin 0.0 0.0 neg 0.0 0.0 0 0 /N@E /N@D
- InitNC { tx@Dict begin /Lineto /lineto load def false pop end /AngleA
- 180. def /AngleB -90. def /ArmA 0.0 def /ArmB 10.0 def /ArmTypeA 0
- def /ArmTypeB 0 def NCAngle } if end gsave 0.8 SLW 0. setgray 0 setlinecap
- stroke grestore grestore end
- 3671 1617 a 2074 1801 a Fe(Figure)22 b(1.)i(Sta)o(g)q(es)f(in)g(a)g
- (g)q(eneric)g(lif)o(e\255c)o(yc)n(le)h(model)p Black
- 1974 2194 a Fg(the)32 b(system)f(is)i(tested)f(metric)f(models)g(may)h
- (be)f(used)h(for)f(esti-)1974 2294 y(mating)18 b(testing)g(ef)n(fort)g
- (or)g(for)g(predicting)f(the)h(number)f(of)h(defects)1974
- 2394 y(remaining.)37 b(This)25 b(phase)g(includes)f(functionality)f
- (and)i(usability)1974 2493 y(testing)d(and)g(in)g(man)o(y)f(cases)i
- (this)g(is)g(the)f(\002rst)h(time)f(the)g(user)g(sees)1974
- 2593 y(the)f(actual)h(system)g(properly)d(e)o(x)o(ecuting.)27
- b(At)22 b(this)g(stage)g(the)g(sys-)1974 2693 y(tem)g(should)e(be)i
- (complete)e(in)i(terms)g(of)f(functionality)f(so)i(a)g(lar)o(ge)1974
- 2792 y(amount)d(of)h(information)d(about)j(it)h(is)g(a)n(v)n(ailable)e
- (for)h(modeling.)1974 3064 y Ff(2.5)o(.)j(Maintenance)2073
- 3336 y Fg(When)30 b(the)g(system)g(is)h(modi\002ed)d(to)i(add)g(ne)n(w)
- f(functionality)1974 3436 y(or)22 b(correct)f(defects)g(after)h(it)h
- (has)f(been)f(released)h(to)g(the)g(customer)1974 3536
- y(some)32 b(estimate)h(of)f(maintenance)f(ef)n(fort)g(may)i(be)f(made.)
- 62 b(Un-)1974 3635 y(lik)o(e)20 b(the)h(ef)n(fort)e(estimates)h(for)g
- (the)g(pre)n(vious)f(four)g(phases,)h(which)1974 3735
- y(can)k(all)i(be)e(combined)f(to)i(gi)n(v)o(e)f(the)h(total)g(for)f
- (the)g(system,)i(ef)n(fort)1974 3834 y(on)i(maintenance)e(is)k(often)d
- (treated)h(separately)-5 b(.)49 b(Estimates)28 b(can)1974
- 3934 y(be)d(made)f(for)g(the)h(entire)g(maintenance)e(process)i(if)g
- (this)g(is)h(suf)n(\002-)1974 4034 y(ciently)e(tri)n(vial,)i(or)f(this)
- g(phase)g(can)f(be)h(treated)g(as)g(a)h(ne)n(w)e(de)n(v)o(el-)1974
- 4133 y(opment)19 b(process)g(itself.)1974 4430 y Fi(3.)29
- b(Adv)o(antages)h(of)f(fuzzy)h(logic)f(f)n(or)g(softwar)n(e)h(met-)2123
- 4547 y(ric)25 b(models)2073 4827 y Fg(Fuzzy)f(logic)g(modeling)f
- (techniques)g(of)n(fer)g(se)n(v)o(eral)h(potential)1974
- 4926 y(adv)n(antages)32 b(o)o(v)o(er)h(more)g(traditional)g(techniques)
- g(for)h(softw)o(are)1974 5026 y(metric)24 b(models.)39
- b(These)24 b(ha)n(v)o(e)g(already)g(been)g(discussed)h(at)g(con-)1974
- 5126 y(siderable)15 b(length)g(in)h(the)g(literature)g(and)f(so)i(are)e
- (only)h(brie\003y)f(men-)1974 5225 y(tioned)20 b(here)h(for)g
- (reference)e(purposes.)27 b(The)21 b(interested)g(reader)f(is)1974
- 5325 y(referred)e(to)j([2)o(,)f(3,)g(5])g(for)g(more)f(detailed)h
- (discussion.)p Black Black eop
- %%Page: 3 3
- 3 2 bop Black Black -182 83 a Ff(3.1)o(.)22 b(Data)h(r)n(equir)n
- (ements)-83 284 y Fg(Fuzzy)15 b(logic)h(allo)n(ws)g(model)e(de)n(v)o
- (elopment)f(with)j(little)h(or)e(e)n(v)o(en)-182 384
- y(no)30 b(data.)57 b(This)31 b(is)h(a)f(considerable)e(boon)h(gi)n(v)o
- (en)f(the)i(problems)-182 483 y(with)25 b(data)h(gathering)d(in)j
- (softw)o(are)f(metrics)g(research)g(and)g(prac-)-182
- 583 y(tice.)53 b(The)29 b(collection)g(of)g(homogeneous)d(data)k(sets)h
- (is)f(compli-)-182 682 y(cated)18 b(by)h(rapidly)f(changing)f
- (technologies)g(and)h(a)i(reluctance)e(for)-182 782 y(inter)n(-or)o
- (ganizational)h(sharing)k(of)g(metrics)h(data.)35 b(Ev)o(en)23
- b(within)g(a)-182 882 y(single)c(or)o(ganization)d(there)j(can)g(be)h
- (considerable)d(pressure)i(from)-182 981 y(programmers)33
- b(and)j(managers)f(against)h(measurement)e(collec-)-182
- 1081 y(tion.)-182 1282 y Ff(3.2)o(.)22 b(Rob)n(ustness)-83
- 1483 y Fg(Softw)o(are)29 b(metric)g(data)g(sets)h(are)f(lik)o(ely)g(to)
- h(contain)e(unusual)-182 1582 y(systems)k(that)h(result)f(from)g(a)g(v)
- n(ariety)g(of)g(causes)g(and)g(may)g(re-)-182 1682 y(duce)24
- b(the)h(generalisability)f(of)g(an)o(y)h(empirically)e(deri)n(v)o(ed)h
- (model)-182 1782 y([8)o(].)k(Some)21 b(of)g(these)g(problems)f(include)
- g(dif)n(ferent)g(de)n(v)o(elopment)-182 1881 y(practices,)d(de)n(v)o
- (eloper)e(learning,)h(and)h(unmeasured)f(\(and)g(perhaps)-182
- 1981 y(unmeasurable\))g(in\003uences.)24 b(By)c(de)n(v)o(eloping)d
- (models)h(with)i(con-)-182 2081 y(siderable)d(e)o(xpert)g(in)m(v)n(olv)
- o(ement,)f(where)h(the)h(model)f(can)h(be)g(inter)n(-)-182
- 2180 y(preted)26 b(and)i(check)o(ed)e(for)h(reasonableness,)h(some)g
- (of)g(the)g(prob-)-182 2280 y(lems)37 b(with)g(non-representati)n(v)o
- (e)c(data)k(corrupting)d(empirically)-182 2379 y(tuned)19
- b(models)g(can)h(be)h(reduced)d(or)i(perhaps)f(e)n(v)o(en)g(a)n(v)n
- (oided.)-182 2580 y Ff(3.3)o(.)f(Or)o(ganizational)e(pr)n(ocess)g(lear)
- o(ning)g(and)i(communi\255)23 2680 y(cation)-83 2881
- y Fg(The)27 b(use)g(of)f(fuzzy)g(logic)h(models)f(pro)o(vides)f(an)i
- (opportunity)-182 2980 y(to)d(learn)g(from)g(the)g(resulting)g(models)g
- (that)g(is)i(less)f(e)n(vident)f(with)-182 3080 y(re)o(gression)j(and)h
- (\(e)n(v)o(en)f(more)h(so\))h(neural)f(netw)o(ork)f(models.)50
- b(A)-182 3180 y(linguistically-based)14 b(model)i(can)h(also)g(be)g
- (seen)g(as)g(a)g(useful)g(com-)-182 3279 y(munication)23
- b(tool.)41 b(F)o(or)25 b(e)o(xample,)h(a)g(programmer)c(pointing)i(out)
- -182 3379 y(that)33 b(comple)o(xity)e(for)i(a)h(particular)e(module)g
- (is)i Fh(very)g(high)e Fg(and)-182 3479 y(may)21 b(need)g(re)n(w)o(ork)
- f(may)h(be)h(considerably)e(more)g(meaningful)g(to)-182
- 3578 y(a)27 b(manager)f(than)h(them)f(stating)i(that)f(the)g(module')-5
- b(s)26 b(c)o(yclomatic)-182 3678 y(comple)o(xity)i(is)k(55.)56
- b(In)30 b(addition,)i(since)f(the)g(models)f(are)g(rela-)-182
- 3777 y(ti)n(v)o(ely)h(easily)h(understood)e(by)i(management)e(there)h
- (is)i(a)g(grater)-182 3877 y(chance)27 b(of)h(management)e(support,)j
- (which)e(is)j(essential)e(for)g(the)-182 3977 y(success)20
- b(of)g(an)o(y)g(metrics)g(program.)-182 4203 y Fi(4)o(.)29
- b(Fuzzy)g(logic)f(models)g(thr)n(oughout)j(the)e(de)o(v)o(elop-)-33
- 4319 y(ment)d(life-cycle)-83 4528 y Fg(One)19 b(of)g(the)g(important)f
- (bene\002ts)h(of)g(fuzzy)f(logic)h(for)f(softw)o(are)-182
- 4628 y(engineering)j(project)i(management)f(is)j(the)f(\003e)o
- (xibility)f(a)n(v)n(ailable)-182 4727 y(in)28 b(terms)g(of)g(the)g
- (types)g(of)g(input)f(and)h(output)f(v)n(ariables.)48
- b(Input)-182 4827 y(v)n(ariables)26 b(can)g(be)h(e)o(xpressed)f(as)h
- (simple)g(fuzzy)f(labels)h(\(a)g Fh(lar)m(g)o(e)-182
- 4926 y Fg(number)15 b(of)i(entities)g(in)g(the)g(data)g(model\),)f
- (fuzzy)g(numbers)g(\()p Fh(about)-182 5026 y(250)28 b
- Fg(entities\),)i(or)f(using)f(precise)h(v)n(alues)f(\()p
- Fh(265)g Fg(entities\).)51 b(Sim-)-182 5126 y(ilarly)-5
- b(,)32 b(the)f(output)e(can)i(be)f(e)o(xpressed)g(in)h(the)f(same)h(w)o
- (ay)-5 b(,)33 b(as)e(a)-182 5225 y(label)20 b(\(a)h Fh(short)h
- Fg(de)n(v)o(elopment)c(time\),)i(fuzzy)g(number)f(\()p
- Fh(about)g(400)-182 5325 y Fg(de)n(v)o(eloper)n(-hours\),)c(or)20
- b(precise)g(v)n(alues)g(\()p Fh(378)f Fg(de)n(v)o(eloper)n(-hours\).)p
- Black Black Black 2093 3 1731 4 v 2091 103 4 100 v 2143
- 73 a Fd(Phase)p 2678 103 V 378 w(Inputs)p 3250 103 V
- 342 w(Outputs)p 3822 103 V 2093 106 1731 4 v 2091 206
- 4 100 v 2143 176 a Fg(Analysis)p 2678 206 V 295 w(fuzzy)g(label)p
- 3250 206 V 205 w(fuzzy)g(label)p 3822 206 V 2093 209
- 1731 4 v 2091 309 4 100 v 2143 279 a(Design)p 2678 309
- V 350 w(fuzzy)g(number)p 3250 309 V 111 w(fuzzy)g(number)p
- 3822 309 V 2093 312 1731 4 v 2091 412 4 100 v 2143 431
- a(Coding)p 2678 412 V 2729 382 a(crisp)h(v)n(alue)g(or)p
- 3250 412 V 3301 431 a(fuzzy)f(number)p 3822 412 V 2091
- 511 V 2678 511 V 2729 482 a(fuzzy)g(number)p 3250 511
- V 3822 511 V 2093 515 1731 4 v 2091 614 4 100 v 2143
- 584 a(T)-6 b(esting)p 2678 614 V 342 w(crisp)20 b(v)n(alue)p
- 3250 614 V 211 w(fuzzy)f(number)p 3822 614 V 2093 618
- 1731 4 v 2091 717 4 100 v 2143 687 a(Maintenance)p 2678
- 717 V 2729 737 a(crisp)h(v)n(alue)p 3250 717 V 211 w(fuzzy)f(number)p
- 3822 717 V 2091 817 V 2143 787 a(\(small)h(project\))p
- 2678 817 V 3250 817 V 3822 817 V 2093 820 1731 4 v Black
- Black 2073 972 a Fe(T)-7 b(ab)o(le)21 b(1.)g(Sug)o(g)q(ested)f(le)o
- (vels)h(of)f(precision)h(acr)n(oss)2073 1072 y(the)39
- b(lif)o(e\255c)o(yc)n(le)g(when)f(estimating)g(de)o(velopment)2073
- 1171 y(eff)n(or)r(t)p Black 2073 1508 a Fg(Perhaps)16
- b(the)h(greatest)f(bene\002t)g(from)g(this)h(approach)d(is)k(that)e
- (the)1974 1608 y(same)29 b(model)g(\(the)g(membership)e(functions)h
- (and)h(rules\))g(can)g(be)1974 1707 y(used)20 b(throughout)d(the)j(de)n
- (v)o(elopment)e(process,)h(simply)h(changing)1974 1807
- y(the)j(le)n(v)o(els)g(of)g(precision)f(as)h(required.)32
- b(This)23 b(has)g(se)n(v)o(eral)g(adv)n(an-)1974 1906
- y(tages)f(o)o(v)o(er)e(multiple)h(model)g(methods)g(including)f(the)i
- (impro)o(v)o(ed)1974 2006 y(consistenc)o(y)i(of)h(predictions,)g
- (centralized)f(model)h(b)n(uilding)f(and)1974 2106 y(implementation,)35
- b(model)d(b)n(uilding)h(ef)n(fort)f(minimization,)k(and)1974
- 2205 y(kno)n(wledge)18 b(gathering)g(o)o(v)o(er)h(the)h(entire)g(de)n
- (v)o(elopment)d(process.)2073 2307 y(The)26 b(follo)n(wing)d
- (subsections)i(discuss)h(the)f(representation)e(of)1974
- 2406 y(independent)35 b(and)h(dependent)g(metric)h(v)n(ariables)f
- (using)h(fuzzy)1974 2506 y(logic.)e(T)-7 b(able)23 b(1)h(and)f(Figure)g
- (2)h(sho)n(w)f(a)h(summary)e(of)i(these)g(sug-)1974 2605
- y(gestions.)2073 2707 y(Where)17 b(a)h(conte)o(xt)e(is)i(necessary)e
- (in)i(the)f(discussion)g(belo)n(w)-5 b(,)16 b(the)1974
- 2806 y(most)27 b(common)e(task)i(for)f(metric)h(models)f(is)i(used.)44
- b(That)27 b(is)h(de-)1974 2906 y(v)o(elopment)18 b(ef)n(fort)g
- (prediction)h(based)g(on)h(system)g(characteristics)1974
- 3006 y(\(including)j(the)j(product,)e(process,)j(and)d(associated)i
- (resources\).)1974 3105 y(The)h Fh(standar)m(d)h Fg(inputs)e(into)h
- (such)g(a)h(model)e(are)h(generally)f(onee)1974 3205
- y(or)e(more)f(size)h(and)g(comple)o(xity)d(measures,)k(with)f(perhaps)e
- (some)1974 3305 y(de)n(v)o(eloper)14 b(producti)n(vity)g(adjustment.)22
- b(De)n(v)o(eloper)15 b(ef)n(fort)g(may)h(be)1974 3404
- y(estimated)i(on)f(the)h(basis)h(of)f(the)g(entire)f(system,)i(a)f
- (speci\002ed)g(com-)1974 3504 y(ponent)26 b(of)g(the)i(system,)h(for)d
- (a)i(particular)e(phase,)i(or)f(for)f(both)h(a)1974 3603
- y(component)18 b(and)h(phase)h(together)-5 b(.)2073 3705
- y(It)23 b(should)f(also)h(be)g(noted,)f(that)h(as)g(the)g(de)n(v)o
- (elopment)d(process)1974 3804 y(is)26 b(enacted,)e(more)g(is)i(kno)n
- (wn)e(about)f(the)i Fh(actual)f Fg(ef)n(fort)g(which)g(is)1974
- 3904 y(generally)30 b(a)i(component)d(of)j(the)f(ef)n(fort)g(being)f
- (estimated.)59 b(As)1974 4004 y(such)34 b(the)h(e)o(xpectation)e(is)i
- (that)g(model)f(performance)e(will)j(im-)1974 4103 y(pro)o(v)o(e)27
- b(roughly)f(monotonically)g(irrespecti)n(v)o(e)i(of)g(the)h(modeling)
- 1974 4203 y(technique)18 b(used.)1974 4415 y Ff(4.1)o(.)23
- b(Analysis)2073 4628 y Fg(The)k(analysis)f(phase)g(is)i(one)e(of)g(the)
- h(most)f(dif)n(\002cult)g(times)h(to)1974 4727 y(mak)o(e)d
- (predictions.)37 b(This)25 b(is)h(because)e(almost)g(all)h(e)o(xisting)
- f(soft-)1974 4827 y(w)o(are)j(metric)g(models)g(assume)h(that)f
- (precise)g(v)n(alues)g(relating)g(to)1974 4926 y(the)f(system)h
- (speci\002cation)f(are)h(a)n(v)n(ailable)f(as)h(independent)d(v)n(ari-)
- 1974 5026 y(ables.)41 b(F)o(or)25 b(e)o(xample,)h(Function)e(Point)h
- (Analysis)h(assumes)g(that)1974 5126 y(the)16 b(numbers)e(of)h(e)o
- (xternal)g(inputs,)h(e)o(xternal)e(outputs,)i(e)o(xternal)e(in-)1974
- 5225 y(quiries,)i(e)o(xternal)e(\002les,)j(and)e(internal)g(\002les)h
- (are)g(all)g(kno)n(wn.)22 b(It)16 b(also)1974 5325 y(requires)j(each)g
- (to)h(be)g(indi)n(vidually)e(rated)i(as)g(simple,)g(a)n(v)o(erage,)e
- (or)p Black Black eop
- %%Page: 4 4
- 4 3 bop Black Black Black Black Black 345 2244 a @beginspecial
- @setspecial
- tx@Dict begin STP newpath 0.8 SLW 0. setgray 0. true 49.7923 234.73512
- 305.86699 64.01866 .5 Frame gsave 0.8 SLW 0. setgray 0 setlinecap
- stroke grestore end
-
- @endspecial @beginspecial @setspecial
- tx@Dict begin STP newpath 0.8 SLW 0. setgray /ArrowA { moveto } def
- /ArrowB { } def [ 56.90549 199.1692 56.90549 227.62195 /Lineto /lineto
- load def false Line gsave 0.8 SLW 0. setgray 0 setlinecap stroke
- grestore end
-
- @endspecial
- @beginspecial @setspecial
- tx@Dict begin STP newpath 0.8 SLW 0. setgray /ArrowA { moveto } def
- /ArrowB { } def [ 99.5846 199.1692 56.90549 199.1692 /Lineto /lineto
- load def false Line gsave 0.8 SLW 0. setgray 0 setlinecap stroke
- grestore end
-
- @endspecial @beginspecial
- @setspecial
- tx@Dict begin STP newpath 0.8 SLW 0. setgray /ArrowA { moveto } def
- /ArrowB { } def [ 78.24504 199.1692 56.90549 227.62195 /Lineto /lineto
- load def false Line gsave 0.8 SLW 0. setgray 0 setlinecap stroke
- grestore end
-
- @endspecial @beginspecial @setspecial
- tx@Dict begin STP newpath 0.8 SLW 0. setgray /ArrowA { moveto } def
- /ArrowB { } def [ 78.24504 227.62195 56.90549 199.1692 /Lineto /lineto
- load def false Line gsave 0.8 SLW 0. setgray 0 setlinecap stroke
- grestore end
-
- @endspecial
- @beginspecial @setspecial
- tx@Dict begin STP newpath 0.8 SLW 0. setgray /ArrowA { moveto } def
- /ArrowB { } def [ 99.5846 199.1692 78.24504 227.62195 /Lineto /lineto
- load def false Line gsave 0.8 SLW 0. setgray 0 setlinecap stroke
- grestore end
-
- @endspecial @beginspecial
- @setspecial
- tx@Dict begin STP newpath 0.8 SLW 0. setgray /ArrowA { moveto } def
- /ArrowB { } def [ 99.5846 227.62195 78.24504 199.1692 /Lineto /lineto
- load def false Line gsave 0.8 SLW 0. setgray 0 setlinecap stroke
- grestore end
-
- @endspecial 817 678 a Fh(Size)345 2244 y
- @beginspecial @setspecial
- tx@Dict begin STP newpath 0.8 SLW 0. setgray /ArrowA { moveto } def
- /ArrowB { } def [ 56.90549 142.26372 56.90549 170.71646 /Lineto /lineto
- load def false Line gsave 0.8 SLW 0. setgray 0 setlinecap stroke
- grestore end
-
- @endspecial @beginspecial
- @setspecial
- tx@Dict begin STP newpath 0.8 SLW 0. setgray /ArrowA { moveto } def
- /ArrowB { } def [ 99.5846 142.26372 56.90549 142.26372 /Lineto /lineto
- load def false Line gsave 0.8 SLW 0. setgray 0 setlinecap stroke
- grestore end
-
- @endspecial @beginspecial @setspecial
- tx@Dict begin STP newpath 0.8 SLW 0. setgray /ArrowA { moveto } def
- /ArrowB { } def [ 78.24504 142.26372 56.90549 170.71646 /Lineto /lineto
- load def false Line gsave 0.8 SLW 0. setgray 0 setlinecap stroke
- grestore end
-
- @endspecial
- @beginspecial @setspecial
- tx@Dict begin STP newpath 0.8 SLW 0. setgray /ArrowA { moveto } def
- /ArrowB { } def [ 78.24504 170.71646 56.90549 142.26372 /Lineto /lineto
- load def false Line gsave 0.8 SLW 0. setgray 0 setlinecap stroke
- grestore end
-
- @endspecial @beginspecial
- @setspecial
- tx@Dict begin STP newpath 0.8 SLW 0. setgray /ArrowA { moveto } def
- /ArrowB { } def [ 99.5846 142.26372 78.24504 170.71646 /Lineto /lineto
- load def false Line gsave 0.8 SLW 0. setgray 0 setlinecap stroke
- grestore end
-
- @endspecial @beginspecial @setspecial
- tx@Dict begin STP newpath 0.8 SLW 0. setgray /ArrowA { moveto } def
- /ArrowB { } def [ 99.5846 170.71646 78.24504 142.26372 /Lineto /lineto
- load def false Line gsave 0.8 SLW 0. setgray 0 setlinecap stroke
- grestore end
-
- @endspecial
- 817 1140 a(Comple)n(xity)345 2244 y @beginspecial @setspecial
- tx@Dict begin STP newpath 0.8 SLW 0. setgray /ArrowA { moveto } def
- /ArrowB { } def [ 56.90549 85.35823 56.90549 113.81097 /Lineto /lineto
- load def false Line gsave 0.8 SLW 0. setgray 0 setlinecap stroke
- grestore end
-
-
- @endspecial @beginspecial @setspecial
- tx@Dict begin STP newpath 0.8 SLW 0. setgray /ArrowA { moveto } def
- /ArrowB { } def [ 99.5846 85.35823 56.90549 85.35823 /Lineto /lineto
- load def false Line gsave 0.8 SLW 0. setgray 0 setlinecap stroke
- grestore end
-
- @endspecial @beginspecial
- @setspecial
- tx@Dict begin STP newpath 0.8 SLW 0. setgray /ArrowA { moveto } def
- /ArrowB { } def [ 78.24504 85.35823 56.90549 113.81097 /Lineto /lineto
- load def false Line gsave 0.8 SLW 0. setgray 0 setlinecap stroke
- grestore end
-
- @endspecial @beginspecial @setspecial
- tx@Dict begin STP newpath 0.8 SLW 0. setgray /ArrowA { moveto } def
- /ArrowB { } def [ 78.24504 113.81097 56.90549 85.35823 /Lineto /lineto
- load def false Line gsave 0.8 SLW 0. setgray 0 setlinecap stroke
- grestore end
-
- @endspecial
- @beginspecial @setspecial
- tx@Dict begin STP newpath 0.8 SLW 0. setgray /ArrowA { moveto } def
- /ArrowB { } def [ 99.5846 85.35823 78.24504 113.81097 /Lineto /lineto
- load def false Line gsave 0.8 SLW 0. setgray 0 setlinecap stroke
- grestore end
-
- @endspecial @beginspecial
- @setspecial
- tx@Dict begin STP newpath 0.8 SLW 0. setgray /ArrowA { moveto } def
- /ArrowB { } def [ 99.5846 113.81097 78.24504 85.35823 /Lineto /lineto
- load def false Line gsave 0.8 SLW 0. setgray 0 setlinecap stroke
- grestore end
-
- @endspecial 817 1629 a Fg(.)12 b(.)g(.)345
- 2244 y @beginspecial @setspecial
- tx@Dict begin STP newpath 0.8 SLW 0. setgray 0. true 113.81097 78.24504
- 241.84831 220.50876 .5 Frame gsave 0.8 SLW 0. setgray 0 setlinecap
- stroke grestore end
-
- @endspecial 1313 524
- a(IF)21 b Fh(size)g Fg(is)g Fh(small)1334 632 y Fg(AND)g
- Fh(comple)n(xity)e Fg(is)i Fh(low)1334 767 y Fg(AND)g(.)12
- b(.)g(.)1334 869 y(THEN)20 b Fh(ef)o(fort)i Fg(is)f Fh(low)1313
- 997 y Fg(IF)g Fh(size)g Fg(is)g Fh(small)1334 1105 y
- Fg(AND)g Fh(comple)n(xity)e Fg(is)i Fh(medium)1334 1239
- y Fg(AND)g(.)12 b(.)g(.)1334 1341 y(THEN)20 b Fh(ef)o(fort)i
- Fg(is)f Fh(low-medium)1313 1475 y Fg(IF)g(.)12 b(.)g(.)345
- 2244 y @beginspecial @setspecial
- tx@Dict begin STP newpath 0.8 SLW 0. setgray /ArrowA { moveto } def
- /ArrowB { } def [ 256.07469 142.26372 256.07469 170.71646 /Lineto
- /lineto load def false Line gsave 0.8 SLW 0. setgray 0 setlinecap
- stroke grestore end
-
- @endspecial @beginspecial
- @setspecial
- tx@Dict begin STP newpath 0.8 SLW 0. setgray /ArrowA { moveto } def
- /ArrowB { } def [ 298.7538 142.26372 256.07469 142.26372 /Lineto /lineto
- load def false Line gsave 0.8 SLW 0. setgray 0 setlinecap stroke
- grestore end
-
- @endspecial @beginspecial @setspecial
- tx@Dict begin STP newpath 0.8 SLW 0. setgray /ArrowA { moveto } def
- /ArrowB { } def [ 266.74446 142.26372 256.07469 170.71646 /Lineto
- /lineto load def false Line gsave 0.8 SLW 0. setgray 0 setlinecap
- stroke grestore end
-
- @endspecial
- @beginspecial @setspecial
- tx@Dict begin STP newpath 0.8 SLW 0. setgray /ArrowA { moveto } def
- /ArrowB { } def [ 266.74446 170.71646 256.07469 142.26372 /Lineto
- /lineto load def false Line gsave 0.8 SLW 0. setgray 0 setlinecap
- stroke grestore end
-
- @endspecial @beginspecial
- @setspecial
- tx@Dict begin STP newpath 0.8 SLW 0. setgray /ArrowA { moveto } def
- /ArrowB { } def [ 277.41425 142.26372 266.74446 170.71646 /Lineto
- /lineto load def false Line gsave 0.8 SLW 0. setgray 0 setlinecap
- stroke grestore end
-
- @endspecial @beginspecial @setspecial
- tx@Dict begin STP newpath 0.8 SLW 0. setgray /ArrowA { moveto } def
- /ArrowB { } def [ 277.41425 170.71646 266.74446 142.26372 /Lineto
- /lineto load def false Line gsave 0.8 SLW 0. setgray 0 setlinecap
- stroke grestore end
-
- @endspecial
- @beginspecial @setspecial
- tx@Dict begin STP newpath 0.8 SLW 0. setgray /ArrowA { moveto } def
- /ArrowB { } def [ 288.08401 142.26372 277.41425 170.71646 /Lineto
- /lineto load def false Line gsave 0.8 SLW 0. setgray 0 setlinecap
- stroke grestore end
-
- @endspecial @beginspecial
- @setspecial
- tx@Dict begin STP newpath 0.8 SLW 0. setgray /ArrowA { moveto } def
- /ArrowB { } def [ 288.08401 170.71646 277.41425 142.26372 /Lineto
- /lineto load def false Line gsave 0.8 SLW 0. setgray 0 setlinecap
- stroke grestore end
-
- @endspecial @beginspecial @setspecial
- tx@Dict begin STP newpath 0.8 SLW 0. setgray /ArrowA { moveto } def
- /ArrowB { } def [ 298.7538 142.26372 288.08401 170.71646 /Lineto /lineto
- load def false Line gsave 0.8 SLW 0. setgray 0 setlinecap stroke
- grestore end
-
- @endspecial
- @beginspecial @setspecial
- tx@Dict begin STP newpath 0.8 SLW 0. setgray /ArrowA { moveto } def
- /ArrowB { } def [ 298.7538 170.71646 288.08401 142.26372 /Lineto /lineto
- load def false Line gsave 0.8 SLW 0. setgray 0 setlinecap stroke
- grestore end
-
- @endspecial 2471 1140 a Fh(Ef)o(fort)-128
- 219 y Fd(Analysis)-10 324 y Fh(size)22 b Fg(=)e(small)-10
- 424 y(.)12 b(.)g(.)-128 574 y Fd(Design)-10 678 y Fh(size)22
- b Fg(=)e(about)f(100)-10 779 y(.)12 b(.)g(.)-128 928
- y Fd(Coding)-10 1032 y Fh(size)22 b Fg(=)e(115)-10 1133
- y(.)12 b(.)g(.)-128 1282 y Fd(T)-8 b(esting)-10 1387
- y Fh(size)22 b Fg(=)e(113)-10 1487 y(.)12 b(.)g(.)-128
- 1653 y Fd(Maintenance)-10 1741 y Fh(size)22 b Fg(=)e(132)-10
- 1842 y(.)12 b(.)g(.)3179 219 y Fd(Analysis)3297 313 y
- Fh(ef)o(fort)22 b Fg(=)f(v)o(ery)e(lo)n(w)3297 424 y(.)12
- b(.)g(.)3179 574 y Fd(Design)3297 668 y Fh(ef)o(fort)22
- b Fg(=)f(about)e(275)3297 779 y(.)12 b(.)g(.)3179 928
- y Fd(Coding)3297 1022 y Fh(ef)o(fort)22 b Fg(=)f(about)e(263)3297
- 1133 y(.)12 b(.)g(.)3179 1282 y Fd(T)-8 b(esting)3297
- 1377 y Fh(ef)o(fort)22 b Fg(=)f(about)e(272)3297 1487
- y(.)12 b(.)g(.)3179 1653 y Fd(Maintenance)3297 1731 y
- Fh(ef)o(fort)22 b Fg(=)f(about)e(119)3297 1842 y(.)12
- b(.)g(.)345 2244 y @beginspecial @setspecial
- tx@Dict begin STP newpath 2.84523 SLW 0. setgray /ArrowA { moveto
- } def /ArrowB { /ArrowBc [ 6 2 roll ] cvx def ArrowBc BeginArrow false
- 0.4 1.4 1.5 2. Arrow EndArrow } def [ 42.67911 145.10916 14.22636
- 145.10916 /Lineto /lineto load def false Line gsave 2.84523 SLW 0.
- setgray 0 setlinecap stroke grestore gsave 1.42262 SLW 1. setgray
- stroke grestore gsave ArrowBc ArrowB pop pop pop pop grestore end
-
- @endspecial
- @beginspecial @setspecial
- tx@Dict begin STP newpath 2.84523 SLW 0. setgray /ArrowA { moveto
- } def /ArrowB { /ArrowBc [ 6 2 roll ] cvx def ArrowBc BeginArrow false
- 0.4 1.4 1.5 2. Arrow EndArrow } def [ 341.43292 145.10916 312.98018
- 145.10916 /Lineto /lineto load def false Line gsave 2.84523 SLW 0.
- setgray 0 setlinecap stroke grestore gsave 1.42262 SLW 1. setgray
- stroke grestore gsave ArrowBc ArrowB pop pop pop pop grestore end
-
- @endspecial Black Black -83
- 2072 a Fe(Figure)27 b(2.)h(Diff)o(erent)f(le)o(vels)g(of)g(input)f(and)
- h(output)f(precision)h(with)f(the)h(same)h(set)f(of)g(member)o(ship)f
- (functions)-83 2172 y(and)d(rules)p Black -182 2505 a
- Fg(comple)o(x.)49 b(Optionally)-5 b(,)29 b(some)g(subjecti)n(v)o(e)f
- (technical)g(comple)o(x-)-182 2605 y(ity)f(f)o(actors)h(can)f(be)h
- (used)f(to)h(further)e(re\002ne)h(the)h(estimated)f(size)-182
- 2705 y(\(which)d(is)j(usually)e(translated)g(into)h(an)g(ef)n(fort)e
- (estimate)i(using)f(a)-182 2804 y(de)n(v)o(eloper)17
- b(hour)i(per)h(function)f(point)g(approach\))f([1)o(].)-83
- 2914 y(Ho)n(we)n(v)o(er)m(,)34 b(in)g(man)o(y)d(cases)j(the)f(numbers)f
- (of)h(these)g(system)-182 3014 y(components,)23 b(and)i(e)n(v)o(en)e
- (more)i(so)g(their)f(speci\002c)i(comple)o(xities,)-182
- 3113 y(are)21 b(not)g(kno)n(wn)f(with)i(an)o(y)f(de)o(gree)f(of)h
- (certainty)g(until)g(the)h(design)-182 3213 y(phase)d(is)h(almost)g
- (\002nished,)f(let)h(alone)f(during)f(the)i(analysis)f(phase)-182
- 3312 y(itself.)66 b(This)35 b(is)g(one)e(area)h(where)f(the)h(natural)f
- (uncertainty)f(of)-182 3412 y(fuzzy)20 b(logic)g(pro)o(vides)g(a)h
- (useful)g(means)f(of)h(representing)e(the)i(ap-)-182
- 3512 y(proximate)i(numbers)g(of)i(components)d(and)j(their)f(a)n(v)o
- (erage)g(com-)-182 3611 y(ple)o(xity)j(\(or)g(whate)n(v)o(er)g(other)g
- (metrics)i(are)f(used\).)48 b(While)29 b(man-)-182 3711
- y(agers)19 b(can)h(try)g(to)g(pro)o(vide)e(precise)i(v)n(alues)f(for)h
- (standard)f(models,)-182 3811 y(such)h(results)h(are)g(unlik)o(ely)e
- (to)i(be)f(tak)o(en)h(seriously)f(gi)n(v)o(en)f(the)i(ob-)-182
- 3910 y(vious)c(guessw)o(ork)g(and)h(there)f(is)i(a)g(natural)e
- (reluctance)g(to)h(pro)o(vide)-182 4010 y(v)n(alues)25
- b(to)h(a)g(le)n(v)o(el)f(of)h(precision)f(be)o(yond)e(the)j(estimator')
- -5 b(s)26 b(capa-)-182 4109 y(bilities.)-83 4219 y(Of)c(course,)g(dif)n
- (ferent)e(models)i(could)f(be)h(used)g(at)h(each)e(phase)-182
- 4319 y(of)38 b(de)n(v)o(elopment)d(with)k(re)o(gression)e(or)h(neural)f
- (netw)o(ork)g(tech-)-182 4418 y(niques.)g(Earlier)24
- b(models)g(could)g(use)h(cate)o(gorical)e(labels)i(for)f(the)-182
- 4518 y(number)18 b(of)h(functions,)g(for)g(e)o(xample.)k(Ho)n(we)n(v)o
- (er)m(,)18 b(this)i(then)g(leads)-182 4618 y(to)c(the)g(problems)f
- (with)h(multiple)f(models)h(that)g(ha)n(v)o(e)g(already)f(been)-182
- 4717 y(discussed)20 b(abo)o(v)o(e)e(in)i Fc(x)p Fg(4.)-83
- 4827 y(Similarly)-5 b(,)29 b(the)e(outputs)g(from)g(softw)o(are)g
- (metric)g(models)g(are)-182 4926 y(usually)34 b(numerical)f(v)n(alues,)
- k(such)e(as)g Fh(5251)e Fg(de)n(v)o(eloper)f(hours.)-182
- 5026 y(This)23 b(can)g(introduce)e(problems)h(with)h(o)o(v)o(er)n
- (-commitment)d(where)-182 5126 y(the)i(estimate)h(becomes)e(a)i
- Fh(sacr)m(ed)g(number)p Fg(.)31 b(When)22 b(the)h(estimate)-182
- 5225 y(is)i(later)g(re)n(vised,)g(perhaps)f(due)g(to)h(more)f(kno)n
- (wledge)f(becoming)-182 5325 y(a)n(v)n(ailable,)17 b(changes)f(can)i
- (be)f(seen)g(as)i(re\003ecting)d(instability)h(in)h(the)1974
- 2505 y(estimation)k(process)g(or)h(the)f(project)g(itself.)33
- b(Increasing)21 b(the)i(esti-)1974 2605 y(mated)j(cost)h(and)f
- (duration)e(is)k(often)d(associated)i(with)f(problem-)1974
- 2705 y(atic)19 b(projects,)f(which)g(could)g(lead)g(to)h(a)g
- (politically-moti)n(v)n(ated)c(re-)1974 2804 y(luctance)i(to)h(update)f
- (estimates)h(as)h(frequently)c(as)k(may)e(be)h(bene\002-)1974
- 2904 y(cial)h(to)g(the)g(or)o(ganization.)j(If)c(estimates)i(were)f
- (instead)f(e)o(xpressed)1974 3004 y(as)31 b(fuzzy)e(labels,)k(such)d
- (as)h(this)g(is)h(a)e Fh(high)g(ef)o(fort)i Fg(project,)g(then)1974
- 3103 y(commitment)f(to)h(precise)h(v)n(alues)f(can)g(be)g(delayed)g
- (until)g(these)1974 3203 y(v)n(alues)23 b(can)h(be)g(estimates)g(with)g
- (enough)e(accurac)o(y)g(to)i(be)g(mean-)1974 3302 y(ingful.)2073
- 3404 y(Of)42 b(course,)k(predictions)40 b(from)g(standard)g(models)h
- (can)g(be)1974 3503 y(rounded)29 b(if)i(this)h(is)g(desired.)57
- b(Ho)n(we)n(v)o(er)m(,)32 b(rounding)c(a)k(v)n(alue)e(to)1974
- 3603 y(the)18 b(nearest)g(thousand)f(hours)g(does)h(not)g(guarantee)f
- (that)h(it)h(will)g(be)1974 3703 y(seen)h(as)h(an)f(estimate)h(plus)f
- (or)g(minus)f(500)h(hours.)2073 3804 y(It)f(is)g(this)g(stage,)f(and)g
- (the)g(follo)n(wing)e(design)i(phase,)g(that)g(seem)1974
- 3904 y(most)30 b(suited)h(to)f(fuzzy)g(logic)g(modeling)f(since)h
- (actual)h(numeri-)1974 4003 y(cal)19 b(v)n(alues)g(are)g(generally)f
- (not)h(a)n(v)n(ailable)f(and)h(e)o(xact)g(estimates)g(of)1974
- 4103 y(ef)n(fort)g(can)h(potentially)f(e)n(v)o(en)g(be)h(harmful.)1974
- 4315 y Ff(4.2)o(.)j(Design)2073 4528 y Fg(During)54 b(design)h(the)g
- (system)g(speci\002cations)f(should)g(be)1974 4628 y(drafted)15
- b(and)g(re)n(vie)n(wed.)22 b(This)17 b(may)e(include)g
- (Entity-Relationship)1974 4727 y(Diagrams)32 b(sho)n(wing)g(the)h
- (numbers)e(of)i(entities,)k(relationships,)1974 4827
- y(and)49 b(elements;)63 b(Data)50 b(Flo)n(w)f(Diagrams)g(sho)n(wing)f
- (the)h(data)1974 4926 y(sources,)17 b(sinks,)g(and)g(\003o)n(ws;)h
- (Functional)e(Decomposition)f(Charts)1974 5026 y(sho)n(wing)j(the)i
- (breakdo)n(wn)d(of)i(the)g(system)h(into)f(actual)h(functions;)1974
- 5126 y(and)d(pseudo-code)d(sho)n(wing)j(the)g(algorithms)f(and)h
- (program)f(logic)1974 5225 y(from)25 b(a)j(higher)d(le)n(v)o(el)h
- (perspecti)n(v)o(e)f([9)o(].)45 b(All)27 b(of)g(these)f(are)h(com-)1974
- 5325 y(monly)19 b(used)h(as)h(part)f(of)f(softw)o(are)h(metric)g
- (models)g([1)o(].)p Black Black eop
- %%Page: 5 5
- 5 4 bop Black Black -83 83 a Fg(Since)22 b(the)f(speci\002cations,)g
- (and)g(thus)g(the)g(measurements,)f(are)-182 183 y(not)j(a)n(v)n
- (ailable)g(in)h(their)g(\002nal)g(form)f(until)g(the)h(end)g(of)f(this)
- i(phase,)-182 282 y(and)18 b(are)i(subject)f(to)g(subsequent)f(changes)
- h(due)f(to)i(the)f(dynamism)-182 382 y(of)h(customer)f(requirements)g
- (or)h(for)g(technical)g(reasons,)g(it)h(mak)o(es)-182
- 482 y(sense)27 b(to)h(represent)e(the)i(measures)f(as)h(approximate)d
- (v)n(alues.)47 b(It)-182 581 y(is)21 b(suggested)e(that)h(fuzzy)f
- (numbers)g(are)h(useful)g(for)f(this)i(purpose,)-182
- 681 y(allo)n(wing)26 b(both)h(the)g(center)g(\(best)g(estimate\))h(and)
- f(the)g(de)o(gree)f(of)-182 780 y(con\002dence)31 b(\(spread\))i(to)g
- (be)h(represented.)63 b(F)o(or)34 b(e)o(xample,)h(the)-182
- 880 y(data)29 b(model)g(comple)o(xity)f(may)h(be)h(assessed)g(as)h
- Fh(about)d(50)i Fg(1-m)-182 980 y(relationships)22 b(or)g
- Fh(very)i(close)f(to)g(55)g Fg(1-m)f(relationships)g(depend-)-182
- 1079 y(ing)d(on)h(the)g(manager')-5 b(s)19 b(con\002dence)g(in)h(the)g
- (estimate.)-83 1179 y(In)33 b(the)g(same)h(w)o(ay)-5
- b(,)36 b(estimates)e(of)f(de)n(v)o(elopment)d(ef)n(fort)i(can)-182
- 1279 y(be)h(made)f(using)h(fuzzy)f(numbers,)i(with)g(an)o(y)e(desired)g
- (le)n(v)o(el)h(of)-182 1379 y(linguistic)43 b(precision.)94
- b(F)o(or)43 b(e)o(xample,)k Fh(appr)l(oximately)42 b(5000)-182
- 1478 y Fg(de)n(v)o(eloper)n(-hours)16 b(or)k Fh(almost)g(e)n(xactly)g
- (5125)f Fg(de)n(v)o(eloper)f(hours.)-182 1688 y Ff(4.3)o(.)k(Coding)-83
- 1897 y Fg(By)e(the)f(coding)e(stage)j(most)f(common)e(metric)i(models)f
- (can)h(be)-182 1996 y(used)27 b(with)h(actual)g(v)n(alues)g(from)e(the)
- i(system)g(speci\002cation)f(and)-182 2096 y(the)d(use)h(of)f(fuzzy)f
- (logic)i(seems)f(less)i(useful.)37 b(At)25 b(this)g(point,)g(us-)-182
- 2196 y(ing)k(e)o(xact)g(v)n(alues)h(as)g(inputs)g(into)f(the)h(model)f
- (seems)h(f)o(ar)g(more)-182 2295 y(sensible)20 b(if)g(the)o(y)g(are)g
- (indeed)f(a)n(v)n(ailable.)-83 2395 y(Ho)n(we)n(v)o(er)m(,)24
- b(some)g(use)h(of)f(fuzzy)f(logic)i(estimates)g(for)f(subjec-)-182
- 2495 y(ti)n(v)o(e)18 b(concepts,)g(such)h(as)g(program)e(comple)o(xity)
- -5 b(,)17 b(can)h(still)i(be)f(used)-182 2595 y([4)o(].)47
- b(Such)28 b(concepts)e(are)i(often)f(captured)f(by)h(a)h(series)g(of)g
- (arbi-)-182 2694 y(trary)22 b(measurements)g(that)i(can)f(be)h(dif)n
- (\002cult)f(to)g(obtain,)g(whereas)-182 2794 y(human)28
- b(e)o(xperts)h(may)g(be)h(able)f(to)h(quickly)f(and)g(accurately)g(as-)
- -182 2894 y(cribe)19 b(a)i(fuzzy)e(v)n(alue)h(to)g(them.)-83
- 2994 y(F)o(ortunately)-5 b(,)19 b(as)k(noted)d(earlier)h(the)h(same)f
- (fuzzy)g(logic)g(model)-182 3093 y(can)28 b(still)j(be)d(used)h(here)g
- (irrespecti)n(v)o(e)e(of)i(the)g(actual)g(precisions)-182
- 3193 y(used.)23 b(Fuzzy)16 b(numbers)f(may)h(still)i(be)f(preferred)d
- (for)i(outputs)g(e)n(v)o(en)-182 3293 y(though)k(e)o(xact)i(inputs)f
- (are)h(being)f(used)h(in)h(order)d(to)j(maintain)e(the)-182
- 3392 y(appearance)d(of)i(uncertainty)-5 b(.)-182 3601
- y Ff(4.4)o(.)22 b(T)-8 b(esting)-83 3811 y Fg(T)i(esting)23
- b(ef)n(fort)f(metric)h(models)f(can)h(depend)f(on)g(either)h(spec-)-182
- 3910 y(i\002cation)j(or)g(code-based)e(measurements,)i(so)h(such)f
- (predictions)-182 4010 y(may)f(be)i(performed)c(using)j(either)g(fuzzy)
- f(logic)h(or)g(crisp)g(v)n(alues)-182 4110 y(depending)c(on)j(a)n(v)n
- (ailability)-5 b(.)38 b(As)26 b(with)f(coding,)g(fuzzy)f(logic)h(es-)
- -182 4209 y(timates)32 b(may)f(be)g(superior)g(to)h(numerical)e
- (estimates)i(for)f(some)-182 4309 y(concepts,)i(such)e(as)h(comple)o
- (xity)-5 b(.)57 b(Again,)33 b(fuzzy)e(numbers)f(for)-182
- 4408 y(outputs)22 b(may)h(be)g(a)h(useful)f(w)o(ay)h(to)f(k)o(eep)g
- (the)h(uncertainty)d(in)j(the)-182 4508 y(estimate)c(clear)-5
- b(.)-182 4717 y Ff(4.5)o(.)22 b(Maintenance)-83 4926
- y Fg(As)30 b(w)o(as)f(mentioned)d(abo)o(v)o(e,)j(maintenance)e
- (projects)h(can)g(be)-182 5026 y(either)f(run)g(as)h(single)g
- (entities,)i(or)d(may)g(be)h(treated)f(as)i(ne)n(w)e(de-)-182
- 5126 y(v)o(elopment)d(projects)i(\(with)g(the)h(other)f(phases)g
- (included)f(within)-182 5225 y(them\).)50 b(The)28 b(choice)g(of)g
- (precision)g(will)i(ob)o(viously)c(depend)h(on)-182 5325
- y(the)20 b(scale)h(of)e(the)i(project.)1974 83 y Fi(5.)j(Conclusions)
- 2073 293 y Fg(Gi)n(v)o(e)16 b(its)h(ability)e(to)h(represent)e(dif)n
- (fering)g(le)n(v)o(els)i(of)f(uncertainty)1974 392 y(for)28
- b(inputs)h(and)f(outputs)h(whilst)g(still)i(basing)d(inference)f(on)i
- (the)1974 492 y(same)h(model,)g(fuzzy)f(logic)g(is)h(well)g(suited)g
- (to)f(a)h(life-c)o(ycle)f(ap-)1974 591 y(proach)d(to)h(softw)o(are)g
- (metric)g(modeling.)45 b(This)27 b(is)h(a)g(unique)e(op-)1974
- 691 y(portunity)i(not)i(pre)n(viously)f(a)n(v)n(ailable)h(from)f
- (standard)h(softw)o(are)1974 791 y(metric)22 b(models)f(that)i(are)f
- (primarily)f(de)n(v)o(eloped)f(using)h(measure-)1974
- 890 y(ments)k(from)g(a)h(single)g(phase)f(in)h(a)g(project')-5
- b(s)25 b(life.)42 b(The)25 b(ensuing)1974 990 y(consistenc)o(y)-5
- b(,)19 b(communicatability)-5 b(,)17 b(and)j(economy)f(mak)o(e)h(this)h
- (an)1974 1090 y(attracti)n(v)o(e)16 b(modeling)g(technique)f(for)i
- (such)g(applications)f(as)i(ef)n(fort)1974 1189 y(estimation.)2073
- 1289 y(The)26 b(other)g(adv)n(antages)f(of)h(data-free)f(\(or)g
- (data-poor\))f(model)1974 1388 y(b)n(uilding,)30 b(more)f(rob)n(ust)g
- (models,)i(and)e(impro)o(v)o(ed)e(communica-)1974 1488
- y(tion)39 b(further)e(enhance)g(the)i(opportunities)e(from)h(using)g
- (fuzzy)1974 1588 y(logic)e(for)g(softw)o(are)h(metrics.)75
- b(W)-7 b(e)38 b(are)e(currently)f(entering)h(a)1974 1687
- y(phase)g(of)g(industrial)g(collaboration)f(with)h(se)n(v)o(eral)g(lar)
- o(ge)g(Ne)n(w)1974 1787 y(Zealand)42 b(commercial)g(or)o(ganizations)f
- (where)i(the)g(ideas)h(dis-)1974 1887 y(cussed)20 b(in)g(this)h(paper)e
- (will)i(be)f(trialed)g(and)g(re\002ned.)1974 2113 y Fi(Refer)n(ences)p
- Black 1974 2314 a Fb([1])p Black 41 w(N.)c(E.)g(Fenton)g(and)h(S.)f(L.)
- f(P\003ee)o(ger)l(.)21 b Fa(Softwar)m(e)c(Metrics:)22
- b(A)16 b(Rigor)m(ous)2102 2405 y(&)j(Pr)o(actical)g(Appr)m(oac)o(h)p
- Fb(.)28 b(PWS,)17 b(1997.)p Black 1974 2524 a([2])p Black
- 41 w(A.)28 b(Gray)g(and)h(S.)d(MacDonell.)57 b(Applications)29
- b(of)f(fuzzy)g(logic)g(to)2102 2615 y(softw)o(are)21
- b(metric)f(models)h(for)f(de)n(v)o(elopment)h(ef)n(fort)f(estimation.)
- 31 b(In)2102 2706 y Fa(Pr)m(oceedings)25 b(of)e(the)h(1997)h(Annual)f
- (meeting)g(of)f(the)h(North)f(Amer)o(-)2102 2798 y(ican)42
- b(Fuzzy)f(Information)h(Pr)m(ocessing)g(Society)g(-)e(N)n(AFIPS'97)p
- Fb(,)2102 2889 y(pages)20 b(394\226399.)h(IEEE,)c(1997.)p
- Black 1974 3007 a([3])p Black 41 w(A.)27 b(Gray)g(and)h(S.)e
- (MacDonell.)53 b(A)27 b(comparison)h(of)f(model)h(b)o(uild-)2102
- 3099 y(ing)j(techniques)g(to)f(de)n(v)o(elop)h(predicti)n(v)o(e)f
- (equations)h(for)f(softw)o(are)2102 3190 y(metrics.)41
- b Fa(Information)25 b(and)f(Softwar)m(e)g(T)-7 b(ec)o(hnolo)o(gy)p
- Fb(,)26 b(39:425\226437,)2102 3281 y(1997.)p Black 1974
- 3399 a([4])p Black 41 w(R.)h(Kilgour)m(,)j(A.)d(Gray)-5
- b(,)30 b(P)-8 b(.)26 b(Sallis,)j(and)f(S.)f(MacDonell.)55
- b(A)28 b(fuzzy)2102 3491 y(logic)d(approach)h(to)e(computer)h(softw)o
- (are)g(source)g(code)g(authorship)2102 3582 y(analysis.)c(In)16
- b Fa(Pr)m(oceedings)g(of)g(the)g(1997)h(International)g(Confer)m(ence)
- 2102 3673 y(on)g(Neur)o(al)g(Information)h(Pr)m(ocessing)f(and)g
- (Intellig)o(ent)g(Information)2102 3765 y(Systems)p Fb(,)i(pages)h
- (865\226868.)h(Springer)o(-V)-8 b(erlag,)18 b(1997.)p
- Black 1974 3883 a([5])p Black 41 w(S.)j(MacDonell)h(and)g(A.)f(Gray)-5
- b(.)35 b(A)21 b(comparison)h(of)g(modeling)g(tech-)2102
- 3974 y(niques)31 b(for)e(softw)o(are)h(de)n(v)o(elopment)h(ef)n(fort)f
- (prediction.)61 b(In)30 b Fa(Pr)m(o-)2102 4066 y(ceedings)39
- b(of)f(the)g(1997)h(International)g(Confer)m(ence)g(on)f(Neur)o(al)2102
- 4157 y(Information)26 b(Pr)m(ocessing)g(and)f(Intellig)o(ent)h
- (Information)f(Systems)p Fb(,)2102 4248 y(pages)20 b(869\226872.)h
- (Springer)o(-V)-8 b(erlag,)18 b(1997.)p Black 1974 4366
- a([6])p Black 41 w(S.)28 b(G.)h(MacDonell)h(and)f(A.)g(R.)f(Gray)-5
- b(.)59 b(Fulsome:)44 b(a)28 b(fuzzy)i(logic)2102 4458
- y(modeling)20 b(tool)f(for)g(softw)o(are)g(metricians.)27
- b(In)19 b(this)g(v)o(olume.)p Black 1974 4576 a([7])p
- Black 41 w(S.)27 b(G.)h(MacDonell,)i(A.)e(R.)f(Gray)-5
- b(,)30 b(and)f(J.)e(Calv)o(ert.)55 b(Fulsome:)42 b(A)2102
- 4667 y(fuzzy)26 b(logic)f(toolbox)h(for)f(softw)o(are)g(metric)g
- (practitioners)g(and)h(re-)2102 4759 y(searchers.)i(Submitted)19
- b(to)g(ICONIP'99.)p Black 1974 4877 a([8])p Black 41
- w(Y)-10 b(.)21 b(Miyazaki,)h(M.)f(T)-5 b(erakado,)22
- b(K.)e(Ozaki,)i(and)f(N.)f(Nozaki.)34 b(Rob)o(ust)2102
- 4968 y(re)o(gresison)25 b(for)e(de)n(v)o(eloping)i(softw)o(are)f
- (estimation)f(models.)42 b Fa(J)n(our)o(-)2102 5060 y(nal)20
- b(of)e(System)i(and)f(Softwar)m(e)p Fb(,)h(27:35\22616,)g(1994.)p
- Black 1974 5178 a([9])p Black 41 w(R.)i(S.)g(Pressman.)38
- b Fa(Softwar)m(e)24 b(Engineering:)31 b(A)22 b(Pr)o(actitioner')m(s)h
- (Ap-)2102 5269 y(pr)m(oac)o(h)p Fb(.)28 b(McGra)o(w-Hill,)18
- b(fourth)h(edition,)g(1997.)p Black Black eop
- %%Trailer
- end
- userdict /end-hook known{end-hook}if
- %%EOF
-