!0.%&.%+( !#$%&'()(mis2010/docs/pdf/PA-chapter06.pdf · Pfleeger and Atlee, Software...

Preview:

Citation preview

!"#$%&'()(

*&+,-.,.-(%"&((/0123&+(

!"#$%&'(&)*++,+$&

-.#//+&0(&123++&

42"&56%7./&

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.2

!0.%&.%+(

8(9&&&:+;%,/&0+2".6.3.,<&8(=&&&:+;%,/&)$%/>%?3+;&

8(@&&&AA&:+;%,/&

8(4&&&B+?$+;+/7/,&AA&:+;%,/;&%/&2"+&C0'&

8(D&&&AA&:+;%,/&)#E+$/;&

8(8&&&A2"+$&:+;%,/&F./;%6+$#7./;&

8(G&&&AA&0+#;H$+I+/2&8(J&&&:+;%,/&:.>HI+/2#7./&

8(K&&&L/M.$I#7./&!<;2+I&5N#I?3+&

8(9O&B+#3PQ%I+&5N#I?3+&

8(99&R"#2&2"%;&F"#?2+$&0+#/;&M.$&S.H&

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.3

!"#$%&'()(456&789&+(

• :+;%,/&?$%/>%?3+;&• ATU+>2P.$%+/2+6&6+;%,/&"+H$%;7>;&• :+;%,/&?#E+$/;&•  5N>+?7./;&#/6&+N>+?7./&"#/63%/,&• :.>HI+/7/,&6+;%,/;&

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.4

):;(*&+,-.(/&%"01030-<(

•  R+&"#V+&#/&#T;2$#>2&6+;>$%?7./&.M&#&;.3H7./&2.&.H$&>H;2.I+$W;&?$.T3+IX&#&;.YZ#$+&#$>"%2+>2H$#3&6+;%,/X&#&?3#/&M.$&6+>.I?.;%/,&2"+&6+;%,/&%/2.&;.YZ#$+&H/%2;&#/6&#33.>#7/,&2"+&;<;2+IW;&MH/>7./#3&$+[H%$+I+/2;&2.&2"+I&

•  \.&6%;7/>2&T.H/6#$<&T+2Z++/&2"+&+/6&.M&2"+&#$>"%2+>2H$+P6+;%,/&?"#;+&#/6&2"+&;2#$2&.M&2"+&I.6H3+P6+;%,/&?"#;+&

•  \.&>.I?#$#T3+&6+;%,/&$+>%?+;&M.$&?$.,$+;;%/,&M$.I&#&;.YZ#$+&H/%2W;&;?+>%]>#7./&2.&%2;&I.6H3#$&6+;%,/&

•  Q"+&?$.>+;;&2#^+/&2.Z#$6;&#&]/#3&;.3H7./&%;&/.2&#;&%I?.$2#/2&#;&2"+&6.>HI+/2#7./&?$.6H>+6&

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.5

):;(*&+,-.(/&%"01030-<(=&>#7%0',.-(

• :+;%,/&6+>%;%./;&#$+&?+$%.6%>#33<&$+V%;%2+6&#/6&$+V%;+6&• B+M#>2.$%/,&• ATU+>7V+_&2.&;%I?3%M<&>.I?3%>#2+6&;.3H7./;&.$&2.&.?7I%`+&2"+&6+;%,/&

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.6

):?(*&+,-.(@',.7,$3&+(

•  *&+,-.($',.7,$3&+(#$+&,H%6+3%/+;&M.$&6+>.I?.;%/,&#&;<;2+IW;&$+[H%$+6&MH/>7./#3%2<&#/6&T+"#V%.$&%/2.&I.6H3+;&

•  Q"+&?$%/>%?3+;&%6+/7M<&2"+&>$%2+$%#&–  M.$&6+>.I?.;%/,&#&;<;2+I&&

–  6+>%6%/,&Z"#2&%/M.$I#7./&2.&?$.V%6+&a#/6&Z"#2&2.&>./>+#3b&%/&2"+&$+;H37/,&I.6H3+;&

•  !%N&6.I%/#/2&?$%/>%?3+;_&–  0.6H3#$%2<&

–  L/2+$M#>+;&–  L/M.$I#7./&"%6%/,&

–  L/>$+I+/2#3&6+V+3.?I+/2&

–  1T;2$#>7./&–  c+/+$#3%2<&

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.7

):;(*&+,-.(/&%"01030-<((A,1&5#'():;(BC#D,.-E(#(=#80.#3&(*&+,-.(@'07&++(

•  L/&2"+&%6+#3&6+;%,/&?$.>+;;X&2"+&6+;%,/&.M&#&;.YZ#$+&;<;2+I&Z.H36&?$.,$+;;&M$.I&"%,"P3+V+3&;?+>%]>#7./&2.&;.3H7./X&H;%/,&#&;+[H+/>+&.M&2.?P6.Z/X&+$$.$PM$++&6+;%,/&6+>%;%./;&$+;H37/,&%/&#&"%+$#$>"%>#3&>.33+>7./&.M&I.6H3+;&

•  d.$&;+V+$#3&$+#;./;&a+(,(X&?..$3<&H/6+$;2..6&.$&>"#/,%/,&$+[H%$+I+/2;X&$+M#>2.$%/,X&"HI#/&+$$.$bX&6+;%,/&Z.$^&$#$+3<&?$.>++6;&6%$+>23<&.$&;I..2"3<&M$.I&$+[H%$+I+/2;&2.&I.6H3+;&

•  R+&;".H36&;%IH3#2+&%6+#3&T+"#V%.$&T<&Z$%7/,&.H$&6.>HI+/2#7./&#;&%M&Z+&"#6&M.33.Z+6&2"+&%6+#3&?$.>+;;&

–  6+>.I?.;%/,&2"+&;.YZ#$+&H/%2&%/2.&I.6H3+;&

–  6+]/%/,&2"+&I.6H3+&%/2+$M#>+;&

–  6+;>$%T%/,&2"+&%/2+$6+?+/6+/>%+;&#I./,&I.6H3+;&

–  6.>HI+/7/,&2"+&%/2+$/#3&6+;%,/;&.M&I.6H3+;&

•  L/;+$2&?3#>+".36+$;&./&#$+#;&Z+&?H2&.eX&#66%/,&/+Z&%/M.$I#7./&./>+&2"+&6+2#%3;&T+>.I+&^/.Z/&

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.8

):?(*&+,-.(@',.7,$3&+(/0123#',%<(

•  /0123#',%<(%;&2"+&?$%/>%?3+&.M&^++?%/,&;+?#$#2+&2"+&V#$%.H;&H/$+3#2+6&#;?+>2;&.M&#&;<;2+IX&;.&2"#2&+#>"&#;?+>2&>#/&T+&;2H6%+6&%/&%;.3#7./&a#3;.&>#33+6&;+?#$#7./&.M&>./>+$/;b&

•  LM&2"+&?$%/>%?3+&%;&#??3%+6&Z+33X&+#>"&$+;H37/,&I.6H3+&Z%33&"#V+&#&;%/,3+&?H$?.;+&#/6&Z%33&T+&$+3#7V+3<&%/6+?+/6+/2&.M&2"+&.2"+$;&

–  +#>"&I.6H3+&Z%33&T+&+#;<&2.&H/6+$;2#/6&#/6&6+V+3.?&

–  +#;%+$&2.&3.>#2+&M#H32;&aT+>#H;+&2"+$+&#$+&M+Z+$&;H;?+>2&I.6H3+;&?+$&M#H32b&&

–  5#;%+$&2.&>"#/,+&2"+&;<;2+I&aT+>#H;+&#&>"#/,+&2.&./+&I.6H3+&#e+>2;&$+3#7V+3<&M+Z&.2"+$&I.6H3+;&

•  Q.&6+2+$I%/+&".Z&Z+33&#&6+;%,/&;+?#$#2+;&>./>+$/;X&Z+&H;+&2Z.&>./>+?2;&2"#2&I+#;H$+&I.6H3+&%/6+?+/6+/>+_&>.H?3%/,&#/6&>."+;%./&

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.9

):?(*&+,-.(@',.7,$3&+(!02$3,.-(

•  QZ.&I.6H3+;&#$+&8-"%3<(702$3&1(Z"+/&2"+<&6+?+/6&#&,$+#2&6+#3&./&+#>"&.2"+$&

•  F00+&3<(702$3&1(I.6H3+;&"#V+&;.I+&6+?+/6+/>+X&TH2&2"+%$&%/2+$>.//+>7./;&#$+&Z+#^&

•  G.702$3&1&I.6H3+;&"#V+&/.&%/2+$>.//+>7./;&#2&#33f&2"+<&#$+&>.I?3+2+3<&H/$+3#2+6&

– Tightly coupled - – many dependencies

– Loosely coupled - – some dependencies

– Uncoupled - – no dependencies

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.10

):?(*&+,-.(@',.7,$3&+(!02$3,.-(H70.8.2&1I(

•  Q"+$+&#$+&I#/<&Z#<;&2"#2&I.6H3+;&>#/&T+&6+?+/6+/2&./&+#>"&.2"+$_&–  Q"+&$+M+$+/>+;&I#6+&M$.I&./+&I.6H3+&2.&#/.2"+$&

–  Q"+&#I.H/2&.M&6#2#&?#;;+6&M$.I&./+&I.6H3+&2.&#/.2"+$&

–  Q"+&#I.H/2&.M&>./2$.3&2"#2&./+&I.6H3+&"#;&.V+$&2"+&.2"+$&

• F.H?3%/,&>#/&T+&I+#;H$+6&#3./,&#&;?+>2$HI&.M&6+?+/6+/>+&

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.11

):?(*&+,-.(@',.7,$3&+((!02$3,.-J(K<$&+(0>(!02$3,.-(

• F./2+/2&>.H?3%/,&• F.II./&>.H?3%/,&

• F./2$.3&>.H?3%/,&•  !2#I?&>.H?3%/,&

• :#2#&>.H?3%/,&– TIGHT COUPLING!

– LOOSE COUPLING!

– LOW COUPLING!

– Content coupling

– Common coupling

– Control coupling

– Stamp coupling

– Data coupling

– Uncoupled

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.12

):?(*&+,-.(@',.7,$3&+((!0.%&.%(!02$3,.-(

•  A>>H$;&Z"+/&./+&>.I?./+/2&I.6%]+;&#/&%/2+$/#3&6#2#&%2+I&%/&#/.2"+$&>.I?./+/2X&.$&Z"+/&./+&>.I?./+/2&T$#/>"+;&%/2.&2"+&I%663+&.M&#/.2"+$&>.I?./+/2&

Module B _________________ _________________ _________________ _________________ – Generate D Call D _________________ _________________ _________________ _________________ _________________ _________________ _________________ _________________

Module D _________________ _________________ _________________ _________________ _________________ _________________ _________________ _________________ _________________ _________________

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.13

):?(*&+,-.(@',.7,$3&+((!0LL0.(!02$3,.-(

•  0#^%/,&#&>"#/,+&2.&2"+&>.II./&6#2#&I+#/;&2$#>%/,&T#>^&2.&#33&>.I?./+/2;&2"#2&#>>+;;&2".;+&6#2#&2.&+V#3H#2+&2"+&+e+>2&.M&2"+&>"#/,+&

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.14

):?(*&+,-.(@',.7,$3&+((!0.%'03(!02$3,.-(

• R"+/&./+&I.6H3+&?#;;+;&?#$#I+2+$;&.$&#&$+2H$/&>.6+&2.&>./2$.3&2"+&T+"#V%.$&.M&#/.2"+$&I.6H3+&

•  L2&%;&%I?.;;%T3+&M.$&2"+&>./2$.33+6&I.6H3+&2.&MH/>7./&Z%2".H2&;.I+&6%$+>7./&M$.I&2"+&>./2$.33%/,&I.6H3+&

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.15

):?(*&+,-.(@',.7,$3&+((A%#L$(#.1(*#%#(!02$3,.-(

•  A%#L$(702$3,.-(.>>H$;&Z"+/&>.I?3+N&6#2#&;2$H>2H$+;&#$+&?#;;+6&T+2Z++/&I.6H3+;&–  !2#I?&>.H?3%/,&$+?$+;+/2;&#&I.$+&>.I?3+N&%/2+$M#>+&T+2Z++/&I.6H3+;X&

T+>#H;+&2"+&I.6H3+;&"#V+&2.&#,$++&./&2"+&6#2#W;&M.$I#2&#/6&.$,#/%`#7./&

•  LM&./3<&6#2#&V#3H+;X&#/6&/.2&;2$H>2H$+6&6#2#X&#$+&?#;;+6X&2"+/&2"+&I.6H3+;&#$+&>.//+>2+6&T<&1#%#(702$3,.-(–  :#2#&>.H?3%/,&%;&;%I?3+$&#/6&3+;;&3%^+3<&2.&T+&#e+>2+6&T<&>"#/,+;&%/&6#2#&

$+?$+;+/2#7./&

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.16

):?(*&+,-.(@',.7,$3&+((!0"&+,0.(

•  !0"&+,0.&$+M+$;&2.&2"+&6+?+/6+/>+&Z%2"%/&#/6&#I./,&#&I.6H3+W;&%/2+$/#3&+3+I+/2;&a+(,(X&6#2#X&MH/>7./;X&%/2+$/#3&I.6H3+;b&

– LOW COHESION!

– HIGH COHESION!

– Coincidental

– Logical

– Temporal

– Procedural

– Communicational

– Functional

– Informational

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.17

):?(*&+,-.(@',.7,$3&+((!0"&+,0.(H70.8.2&1I(

•  F.%/>%6+/2#3&&aZ.$;2&6+,$++b&–  )#$2;&#$+&H/$+3#2+6&2.&./+&#/.2"+$&

•  '.,%>#3&–  )#$2;&#$+&$+3#2+6&./3<&T<&2"+&3.,%>&;2$H>2H$+&.M&>.6+&

•  Q+I?.$#3&–  0.6H3+W;&6#2#&#/6&MH/>7./;&$+3#2+6&T+>#H;+&2"+<&#$+&H;+6&#2&2"+&;#I+&

7I+&%/&#/&+N+>H7./&

•  )$.>+6H$#3&–  !%I%3#$&2.&2+I?.$#3X&#/6&MH/>7./;&?+$2#%/&2.&;.I+&$+3#2+6&#>7./&.$&

?H$?.;+&

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.18

):?(*&+,-.(@',.7,$3&+((!0"&+,0.(H70.8.2&1I(

•  F.IIH/%>#7./&&–  A?+$#2+;&./&2"+&;#I+&6#2#&;+2&

•  dH/>7./#3&a%6+#3&6+,$++b&–  133&+3+I+/2;&+;;+/7#3&2.&#&;%/,3+&MH/>7./&#$+&>./2#%/+6&%/&./+&I.6H3+X&#/6&#33&

.M&2"+&+3+I+/2;&#$+&+;;+/7#3&2.&2"+&?+$M.$I#/>+&.M&2"+&MH/>7./&

•  L/M.$I#7./#3&–  16#?7./&.M&MH/>7./#3&>."+;%./&2.&6#2#&#T;2$#>7./&#/6&.TU+>2PT#;+6&

6+;%,/&

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.19

):?(*&+,-.(@',.7,$3&+((M.%&'>#7&+(

•  1/&,.%&'>#7&(6+]/+;&Z"#2&;+$V%>+;&2"+&;.YZ#$+&H/%2&?$.V%6+;&2.&2"+&$+;2&.M&2"+&;<;2+IX&#/6&".Z&.2"+$&H/%2;&>#/&#>>+;;&2".;+&;+$V%>+;&–  d.$&+N#I?3+X&2"+&%/2+$M#>+&2.&#/&.TU+>2&%;&2"+&>.33+>7./&.M&2"+&.TU+>2W;&?HT3%>&

.?+$#7./;&#/6&2"+&.?+$#7./;W&+,-.#%2'&+X&Z"%>"&;?+>%M<&+#>"&.?+$#7./W;&/#I+X&?#$#I+2+$;X&#/6&?.;;%T3+&$+2H$/&V#3H+;&

•  1/&%/2+$M#>+&IH;2&#3;.&6+]/+&Z"#2&2"+&H/%2&$+[H%$+;X&%/&2+$I;&.M&;+$V%>+;&.$&#;;HI?7./;X&M.$&%2&2.&Z.$^&>.$$+>23<&

•  1&;.YZ#$+&H/%2W;&%/2+$M#>+&6+;>$%T+;&Z"#2&2"+&H/%2&$+[H%$+;&.M&%2;&+/V%$./I+/2X&#;&Z+33&#;&Z"#2&%2&?$.V%6+;&2.&%2;&+/V%$./I+/2&

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.20

):?(*&+,-.(@',.7,$3&+((M.%&'>#7&+(H70.8.2&1I(

•  1&;.YZ#$+&H/%2&I#<&"#V+&;+V+$#3&%/2+$M#>+;&2"#2&I#^+&6%e+$+/2&6+I#/6;&./&%2;&+/V%$./I+/2&.$&2"#2&.e+$&6%e+$+/2&3+V+3;&.M&;+$V%>+&

– Data ________________ _________________ _________________

– Operation 1 _________________ _________________ _________________ _________________

– Operation 2 _________________ _________________ _________________ _________________

– Module – Interface A

– Operation 1 () – Operation 2 () – Operation 4 ()

– Interface B

– Operation 2 ()

– Operation 3 ()

– Operation 3 _________________ _________________ _________________ _________________

– Operation 4 _________________ _________________ _________________ _________________

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.21

):?(*&+,-.(@',.7,$3&+((M.%&'>#7&+(H70.8.2&1I(

•  Q"+&+$&7,N7#80.(.M&#&;.YZ#$+&H/%2W;&%/2+$M#>+&6+;>$%T+;&2"+&+N2+$/#33<&V%;%T3+&?$.?+$7+;&.M&2"+&;.YZ#$+&H/%2&

•  1/&%/2+$M#>+&;?+>%]>#7./&;".H36&>.IIH/%>#2+&2.&.2"+$&;<;2+I&6+V+3.?+$;&+V+$<2"%/,&2"#2&2"+<&/++6&2.&^/.Z&2.&H;+&.H$&;.YZ#$+&H/%2&>.$$+>23<&–  )H$?.;+&–  )$+>./6%7./;&a#;;HI?7./;b&

–  )$.2.>.3;&–  ).;2>./6%7./;&aV%;%T3+&+e+>2;b&–  gH#3%2<&#E$%TH2+;&

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.22

):?(*&+,-.(@',.7,$3&+((M.>0'L#80.(O,1,.-(

•  M.>0'L#80.(",1,.-((%;&6%;7/,H%;"+6&T<&%2;&,H%6#/>+&M.$&6+>.I?.;%/,&#&;<;2+I_&&–  5#>"&;.YZ#$+&H/%2&+/>#?;H3#2+;&#&;+?#$#2+&6+;%,/&6+>%;%./&2"#2&>.H36&T+&

>"#/,+6&%/&2"+&MH2H$+&&&

–  Q"+/&2"+&%/2+$M#>+;&#/6&%/2+$M#>+&;?+>%]>#7./;&#$+&H;+6&2.&6+;>$%T+&+#>"&;.YZ#$+&H/%2&%/&2+$I;&.M&%2;&+N2+$/#33<&V%;%T3+&?$.?+$7+;&

•  C;%/,&2"%;&?$%/>%?3+X&I.6H3+;&I#<&+N"%T%2&6%e+$+/2&^%/6;&.M&>."+;%./&–  1&I.6H3+&2"#2&"%6+;&#&6#2#&$+?$+;+/2#7./&I#<&T+&%/M.$I#7./#33<&>."+;%V+&

–  1&I.6H3+&2"#2&"%6+;&#/&#3,.$%2"I&I#<&T+&MH/>7./#33<&>."+;%V+&

•  1&T%,&#6V#/2#,+&.M&%/M.$I#7./&"%6%/,&%;&2"#2&2"+&$+;H37/,&;.YZ#$+&H/%2;&#$+&3..;+3<&>.H?3+6&

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.23

):?(*&+,-.(@',.7,$3&+((A,1&5#'():?((M.>0'L#80.(O,1,.-(,.(44(*&+,-.+(

•  L/&AA&6+;%,/X&Z+&6+>.I?.;+&#&;<;2+I&%/2.&.TU+>2;&#/6&2"+%$&#T;2$#>2&2<?+;&&&–  L/&2"%;&;+/;+X&+#>"&.TU+>2&"%6+;&%2;&6#2#&$+?$+;+/2#7./&M$.I&.2"+$&.TU+>2;&

–  Q"+&./3<&#>>+;;&2"#2&.2"+$&.TU+>2;&"#V+&2.&#&,%V+/&.TU+>2W;&6#2#&%;&V%#&#&;+2&.M&#>>+;;&MH/>7./;&2"#2&2"+&.TU+>2&#6V+$7;+;&%/&%2;&%/2+$M#>+&

–  Q"%;&%/M.$I#7./&"%6%/,&I#^+;&%2&+#;<&2.&>"#/,+&#/&.TU+>2W;&6#2#&$+?$+;+/2#7./&Z%2".H2&?+$2H$T%/,&2"+&$+;2&.M&2"+&;<;2+I&

•  h.Z+V+$X&6#2#&$+?$+;+/2#7./&%;&/.2&2"+&./3<&2<?+&.M&6+;%,/&6+>%;%./&Z+&I#<&Z#/2&2.&"%6+&

–  0#<&/++6&2.&+N?#/6&.H$&/.7./&.M&Z"#2&#/&.TU+>2&%;X&2.&%/>3H6+&2<?+;&.M&%/M.$I#7./&T+;%6+;&6#2#&2<?+;&

•  ATU+>2;&>#//.2&T+&>.I?3+2+3<&H/>.H?3+6&M$.I&./+&#/.2"+$X&T+>#H;+&#/&.TU+>2&/++6;&2.&^/.Z&2"+&%6+/72<&.M&2"+&.2"+$&.TU+>2;&;.&2"#2&2"+<&>#/&%/2+$#>2(&&

–  0%,"2&I+#/&2"#2&>"#/,%/,&2"+&/#I+&.M&#/&.TU+>2X&.$&2"+&/HIT+$&.M&.TU+>2&%/;2#/>+;X&M.$>+;&H;&#3;.&2.&>"#/,+&#33&H/%2;&2"#2&%/V.^+&2"+&.TU+>2&

–  !H>"&6+?+/6+/>+&>#//.2&T+&"+3?+6&Z"+/&#>>+;;%/,&#/&.TU+>2&2"#2&"#;&#&6%;7/>2&%6+/72<&TH2&%2&I#<&T+&#V.%6+6&Z"+/&#>>+;;%/,&#/&#$T%2$#$<&.TU+>2&

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.24

):?(*&+,-.(@',.7,$3&+((M.7'&L&.%#3(*&9&30$L&.%(

• c%V+/&#&6+;%,/&>./;%;7/,&.M&;.YZ#$+&H/%2;&#/6&2"+%$&%/2+$M#>+;X&Z+&>#/&H;+&2"+&%/M.$I#7./&#T.H2&2"+&H/%2;W&6+?+/6+/>%+;&2.&6+V%;+&#/&%/>$+I+/2#3&;>"+6H3+&.M&6+V+3.?I+/2&

•  !2#$2&T<&I#??%/,&.H2&2"+&H/%2;W&2+&+('&3#80.&–  $+3#2+;&+#>"&;.YZ#$+&H/%2&2.&2"+&.2"+$&;.YZ#$+&H/%2;&./&Z"%>"&%2&6+?+/6;&

• G+&+(-'#$"+(>#/&"+3?&2.&%6+/7M<&?$.,$+;;%V+3<&3#$,+$&;HT;+2;&.M&.H$&;<;2+I&2"#2&Z+&>#/&%I?3+I+/2&#/6&2+;2&%/>$+I+/2#33<&

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.25

):?(*&+,-.(@',.7,$3&+((M.7'&L&.%#3(*&9&30$L&.%(H70.8.2&1I(

• C;+;&,$#?";&M.$&2Z.&6+;%,/;&–  C#.P,.&$+M+$;&2.&2"+&/HIT+$&.M&H/%2;&2"#2&H;+&#&?#$7>H3#$&;.YZ#$+&H/%2&

–  C#.P02%&$+M+$;&2.&2"+&/HIT+$&.M&H/2;&H;+6&T<&?#$7>H3#$&;.YZ#$+&H/%2&

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.26

):?(*&+,-.(@',.7,$3&+((M.7'&L&.%#3(*&9&30$L&.%(H70.8.2&1I(

• R+&>#/&2$<&2.&T$+#^&#&><>3+&%/&2"+&H;+;&,$#?"&H;%/,&#&2+>"/%[H+&>#33+6&+#.1Q,7",.-(–  A/+&.M&2"+&><>3+W;&H/%2;&%;&6+>.I?.;+6&%/2.&2Z.&H/%2;X&;H>"&2"#2&./+&.M&2"+&/+Z&H/%2;&"#;&/.&6+?+/6+/>%+;&

–  !#/6Z%>"%/,&>#/&T+&#??3%+6&I.$+&2"#/&./>+X&2.&T$+#^&+%2"+$&IH2H#3&6+?+/6+/>%+;&%/&7,"23<&>.H?3+6&H/%2;&.$&3./,&6+?+/6+/><&>"#%/;&

– (")! – (#)! – ($)!

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.27

):?(*&+,-.(@',.7,$3&+((R5+%'#780.(

• 1/&#5+%'#780.(%;&#&I.6+3&.$&$+?$+;+/2#7./&2"#2&.I%2;&;.I+&6+2#%3;&;.&2"#2&%2&>#/&M.>H;&./&.2"+$&6+2#%3;&&

•  Q"+&6+]/%7./&%;&V#,H+&#T.H2&Z"%>"&6+2#%3;&#$+&3+Y&.H2&.M&#&I.6+3X&T+>#H;+&6%e+$+/2&#T;2$#>7./;X&TH%32&M.$&6%e+$+/2&?H$?.;+;X&.I%2&6%e+$+/2&^%/6;&.M&6+2#%3;&

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.28

):?(*&+,-.(@',.7,$3&+((A,1&5#'():S((G+,.-(R5+%'#780.(

•  !H??.;+&2"#2&./+&.M&2"+&;<;2+I&MH/>7./;&%;&2.&;.$2&2"+&+3+I+/2;&.M&#&3%;2&'(&Q"+&%/%7#3&6+;>$%?7./&.M&2"+&6+;%,/&%;_&

&!.$2&'&%/&/./6+>$+#;%/,&.$6+$&

&Q"+&/+N2&3+V+3&.M&#T;2$#>7./&I#<&T+&#&?#$7>H3#$&#3,.$%2"I_&

&DO WHILE I is between 1 and (length of L)–1: Set LOW to index of smallest value in L(I),..., L(length of L)

Interchange L(I) and L(LOW)

ENDDO

•  Q"+&#3,.$%2"I&?$.V%6+;&#&,$+#2&6+#3&.M&#66%7./#3&%/M.$I#7./X&".Z+V+$X&%2&>#/&T+&I#6+&+V+/&I.$+&6+2#%3+6&

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.29

):?(*&+,-.(@',.7,$3&+((A,1&5#'():S((G+,.-(R5+%'#780.(H70.8.2&1I(

•  Q"+&2"%$6&#/6&]/#3&#3,.$%2"I&6+;>$%T+;&+N#>23<&".Z&2"+&;.$7/,&.?+$#7./&Z%33&Z.$^_&

DO WHILE I is between 1 and (length of L)-1 Set LOW to current value of I

DO WHILE J is between I+1 and (length of L)

IF L(LOW) is greater than L(J)

THEN set LOW to current value of J

ENDIF

ENDDO

Set TEMP to L(LOW)

Set L(LOW) to L(I)

Set L(I) to TEMP

ENDDO

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.30

):?(*&+,-.(@',.7,$3&+((T&.&'#3,%<(

• T&.&'#3,%<(%;&2"+&6+;%,/&?$%/>%?3+&2"#2&I#^+;&#&;.YZ#$+&H/%2&#;&H/%V+$;#33<&#??3%>#T3+&#;&?.;;%T3+X&2.&%/>$+#;+&2"+&>"#/>+&2"#2&%2&Z%33&T+&H;+MH3&%/&;.I+&MH2H$+&;<;2+I&

• R+&I#^+&#&H/%2&I.$+&,+/+$#3&T<&%/>$+#;%/,&2"+&/HIT+$&.M&>./2+N2;&%/&Z"%>"&>#/&%2&T+&H;+6(&Q"+$+&#$+&;+V+$#3&Z#<;&.M&6.%/,&2"%;_&–  )#$#I+2+$%`%/,&>./2+N2P;?+>%]>&%/M.$I#7./&

–  B+I.V%/,&?$+>./6%7./;&

–  !%I?3%M<%/,&?.;2>./6%7./;&

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.31

):?(*&+,-.(@',.7,$3&+((T&.&'#3,%<(H70.8.2&1I(

•  Q"+&M.33.Z%/,&M.H$&?$.>+6H$+&%/2+$M#>+;&#$+&3%;2+6&%/&.$6+$&.M&%/>$+#;%/,&,+/+$#3%2<_&PROCEDURE SUM: INTEGER;

POSTCONDITION: returns sum of 3 global variables

PROCEDURE SUM (a, b, c: INTEGER): INTEGER;

POSTCONDITION: returns sum of parameters

PROCEDURE SUM (a[]: INTEGER; len: INTEGER): INTEGER

PRECONDITION: 0 <= len <= size of array a

POSTCONDITION: returns sum of elements 1..len in array a

PROCEDURE SUM (a[]: INTEGER): INTEGER

POSTCONDITION: returns sum of elements in array a

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.32

):S(44(*&+,-.(

• ATU+>2&.$%+/2+6&I+2".6.3.,%+;&#$+&2"+&I.;2&?.?H3#$&#/6&;.?"%;7>#2+6&6+;%,/&I+2".6.3.,%+;&

• 1&6+;%,/&%;&056&7%(0',&.%&1(%M&%2&6+>.I?.;+;&#&;<;2+I&%/2.&#&>.33+>7./&.M&$H/7I+&>.I?./+/2;&>#33+6&.TU+>2;&2"#2&+/>#?;H3#2+&6#2#&#/6&MH/>7./#3%2<&–  ATU+>2;&#$+&H/%[H+3<&,1&.8N#53&($H/7I+&+/77+;&2"#2&>#/&T+&6+;%,/#2+6&#;&2"+&2#$,+2&.M&#&

I+;;#,+&.$&$+[H+;2&

–  ATU+>2;&>#/&T+&70L$0+&1X&%/&2"#2&#/&.TU+>2W;&6#2#&V#$%#T3+;&I#<&2"+I;+3V+;&T+&.TU+>2;X&2"+$+T<&+/>#?;H3#7/,&2"+&%I?3+I+/2#7./;&.M&2"+&.TU+>2W;&%/2+$/#3&V#$%#T3+;&

–  Q"+&%I?3+I+/2#7./&.M&#/&.TU+>2&>#/&T+&$+H;+6&#/6&+N2+/6+6&V%#&,."&',%#.7&X&&2.&6+]/+&2"+&%I?3+I+/2#7./&.M&.2"+$&.TU+>2;&

–  AA&>.6+&>#/&T+&$03<L0'$",7J(Z$%E+/&%/&,+/+$%>&>.6+&2"#2&Z.$^;&Z%2"&.TU+>2;&.M&6%e+$+/2&TH2&$+3#2+6&2<?+;

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.33

):S(44(*&+,-.(K&'L,.030-<(

• 1&73#++&%;&#&;.YZ#$+&I.6H3+&2"#2&?#$7#33<&.$&2.2#33<&%I?3+I+/2;&#/&#T;2$#>2&6#2#&2<?+&

•  LM&#&>3#;;&%;&I%;;%/,&%I?3+I+/2#7./;&M.$&;.I+&.M&%2;&I+2".6;X&Z+&;#<&2"#2&%2&%;&#/&#5+%'#7%(73#++&

•  Q"+&>3#;;&6+]/%7./&%/>3H6+;&70.+%'27%0'(I+2".6;&2"#2&;?#Z/&/+Z&.TU+>2&%/;2#/>+;&

•  M.+%#.7&(9#',#53&+(#$+&?$.,$#I&V#$%#T3+;&Z".;+&V#3H+;&#$+&$+M+$+/>+;&2.&.TU+>2;

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.34

):S(44(*&+,-.(K&'L,.030-<(H70.8.2&1I(

•  Q"+&$H/7I+&;2$H>2H$+&.M&#/&AA&;<;2+I&%;&#&;+2&.M&056&7%+X&+#>"&.M&Z"%>"&%;&#&>."+;%V+&>.33+>7./&.M&6#2#&?3H;&#33&.?+$#7./;&M.$&>$+#7/,X&$+#6%/,X&#32+$%/,X&#/6&6+;2$.<%/,&2".;+&6#2#&

• 1/&.TU+>2W;&6#2#&#$+&>#33+6&#U',52%&+X&#/6&%2;&.?+$#7./;&#$+&>#33+6&L&%"01+(

• 1/&.TU+>2&I#<&"#V+&IH37?3+&%/2+$M#>+;X&+#>"&.e+$%/,&#&6%e+$+/2&3+V+3&.M&#>>+;;&2.&2"+&.TU+>2W;&6#2#&#/6&I+2".6;&–  !H>"&%/2+$M#>+;&#$+&"%+$#$>"%>#33<&$+3#2+6&T<&2<?+_&%M&./+&%/2+$M#>+&.e+$;&#&;2$%>2&;HT;+2&.M&

2"+&;+$V%>+;&2"#2&#/.2"+$&%/2+$M#>+&.e+$;X&Z+&;#<&2"#2&2"+&]$;2&%/2+$M#>+&%;&#&+25%<$&(.M&2"+&;+>./6&%/2+$M#>+&a2"+&+2$&'%<$&b&

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.35

):S(44(*&+,-.(K&'L,.030-<(H70.8.2&1I(

– addItem(Item) – removeItem(product No.) – computeSubtotal()

– computeTax() – computeTotal() – voidSale()

Sale

– subtotal : Money – tax : Money – total : Money

Date

– day: 1..31 – month : 1..12

– year : integer

Item

– product No. – name

– description – price : Money

sale date

1!*!

*!

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.36

):S(44(*&+,-.(K&'L,.030-<(H70.8.2&1I(

• i#$%#T3+;&>#/&$+M+$&2.&.TU+>2;&.M&6%e+$+/2&>3#;;+;&.V+$&2"+&>.H$;+&.M&#&?$.,$#IW;&+N+>H7./X&^/.Z/&#;&1<.#L,7(5,.1,.-(

•  Q"+&6%$+>2+6&#$$.Z;&%/&2"+&],H$+&T+3.Z&6+?%>2&2"+&$+3#7./;"%?;&T+2Z++/&>./;2$H>2;X&#/6&2"+&#6.$/I+/2;&#2&2"+&+/6;&.M&+#>"&#$$.Z&%/6%>#2+&2"+&L238$3,7,%<((a".Z&I#/<&.M&#/&%2+I&I#<&+N%;2b

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.37

):S(44(*&+,-.(K&'L,.030-<(H70.8.2&1I(

•  d.H$&AA&>./;2$H>2;_&!"#$$%$&'()*%!+$&',-+%./#!%$X&#/6&,-$+#-!%'0#.,#)"%$'

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.38

):S(44(*&+,-.(K&'L,.030-<(H70.8.2&1I(

• jH%36%/,&/+Z&>3#;;+;&T<&>.IT%/%/,&>.I?./+/2&>3#;;+;X&IH>"&#;&>"%36$+/&TH%36&;2$H>2H$+;&M$.I&TH%36%/,&T3.>^;&%;&6./+&T<&056&7%(70L$0+,80.(

• 132+$/#7V+3<X&Z+&>#/&TH%36&/+Z&>3#;;+;&T<&+N2+/6%/,&.$&I.6%M<%/,&6+]/%7./;&.M&+N%;7/,&>3#;;+;&–  Q"%;&^%/6&.M&>./;2$H>7./X&>#33+6&,."&',%#.7&X&6+]/+;&#&/+Z&>3#;;&T<&6%$+>23<&$+H;%/,&a#/6&#66%/,&2.b&2"+&6+]/%7./;&.M&#/&+N%;7/,&>3#;;

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.39

):S(44(*&+,-.(K&'L,.030-<(H70.8.2&1I(

•  5N#I?3+&.M&%/"+$%2#/>+

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.40

):S(44(*&+,-.(K&'L,.030-<(H70.8.2&1I(

• @03<L0'$",+L(.>>H$;&Z"+/&>.6+&%;&Z$%E+/&%/&2+$I;&.M&%/2+$#>7./;&Z%2"&#/&%/2+$M#>+X&TH2&>.6+&T+"#V%.$&6+?+/6;&./&2"+&.TU+>2&#;;.>%#2+6&Z%2"&2"+&%/2+$M#>+&#2&$H/7I+&#/6&./&2"+&%I?3+I+/2#7./;&.M&2"#2&.TU+>2W;&I+2".6&

•  L/"+$%2#/>+X&.TU+>2&>.I?.;%7./X&#/6&?.3<I.$?"%;I&#$+&%I?.$2#/2&M+#2H$+;&.M&#/&AA&6+;%,/&2"#2&I#^+&2"+&$+;H37/,&;<;2+I&I.$+&H;+MH3&%/&I#/<&Z#<;&&

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.41

):S(44(*&+,-.(M."&',%#.7&(9+:(456&7%(!0L$0+,80.(

• 1&^+<&6+;%,/&6+>%;%./&%;&6+2+$I%/%/,&".Z&T+;2&2.&;2$H>2H$+&#/6&$+3#2+&>.I?3+N&.TU+>2;&&&

•  L/&#/&AA&;<;2+IX&2"+$+&#$+&2Z.&I#%/&2+>"/%[H+;&M.$&>./;2$H>7/,&3#$,+&.TU+>2;&–  L/"+$%2#/>+&–  >.I?.;%7./&

• 1&/+Z&>3#;;&>#/&T+&>$+#2+6&T<&+N2+/6%/,&#/6&.V+$$%6%/,&2"+&T+"#V%.$&.M&#/&+N%;7/,&>3#;;X&.$&%2&>#/&T+&>$+#2+6&T<&>.IT%/%/,&;%I?3+$&>3#;;+;&2.&M.$I&#&>.I?.;%2+&>3#;;(

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.42

):S(44(*&+,-.(M."&',%#.7&(9+:(456&7%(!0L$0+,80.(H70.8.2&1I(

•  5#>"&>./;2$H>7./&?#$#6%,I&"#;&#6V#/2#,+;&#/6&6%;#6V#/2#,+;&

•  F.I?.;%7./&%;&T+E+$&2"#/&%/"+$%2#/>+&#2&?$+;+$V%/,&2"+&+/>#?;H3#7./&.M&2"+&$+H;+6&>.6+X&T+>#H;+&#&>.I?.;%2+&.TU+>2&#>>+;;+;&2"+&>.I?./+/2&./3<&2"$.H,"&%2;&#6V+$7;+6&%/2+$M#>+&

•  j<&>./2$#;2X&H;%/,&2"+&%/"+$%2#/>+&#??$.#>"X&2"+&;HT>3#;;W;&%I?3+I+/2#7./&%;&6+2+$I%/+6&#2&6+;%,/&7I+&#/6&%;&;2#7>&

•  Q"+&$+;H37/,&.TU+>2;&#$+&3+;;&*+N%T3+&2"#/&.TU+>2;&%/;2#/7#2+6&M$.I&>.I?.;%2+&>3#;;+;&T+>#H;+&2"+&I+2".6;&2"+<&%/"+$%2&M$.I&2"+%$&?#$+/2&>3#;;&>#//.2&T+&>"#/,+6&#2&$H/7I+&

•  Q"+&,$+#2+;2&#6V#/2#,+&.M&%/"+$%2#/>+&%;&2"+&#T%3%2<&2.&>"#/,+&#/6&;?+>%#3%`+&2"+&T+"#V%.$;&.M&%/"+$%2+6&I+2".6;X&T<&;+3+>7V+3<&.V+$$%6%/,&%/"+$%2+6&6+]/%7./;

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.43

):S(44(*&+,-.(M."&',%#.7&(9+:(456&7%(!0L$0+,80.(H70.8.2&1I(

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.44

):S(44(*&+,-.(A25+8%2%#5,3,%<(

•  L6+#33<X&#&;HT>3#;;&IH;2&?$+;+$V+&2"+&T+"#V%.$&.M&%2;&?#$+/2&>3#;;X&;.&2"#2&>3%+/2&>.6+&>#/&2$+#2&%/;2#/>+;&.M&%2&#;&%/;2#/>+;&.M&2"+&?#$+/2&>3#;;&

•  '%;^.V&!HT;72H2#T%3%2<&)$%/>%?3+&–  Q"+&;HT>3#;;&;H??.$2;&#33&.M&2"+&I+2".6;&.M&2"+&?#$+/2&>3#;;X&#/6&2"+%$&;%,/#2H$+;&#$+&

>.I?#7T3+&

–  Q"+&;HT>3#;;W;&I+2".6;&IH;2&;#7;M<&2"+&;?+>%]>#7./;&.M&2"+&?#$+/2&>3#;;W;&I+2".6;&

•  )$+>./6%7./&$H3+ &&?$+k?#$+/2&&&⇒&&?$+k;HT&&&&

•  ).;2>./6%7./&$H3+ &&?$+k?#$+/2&&&⇒&&a?.;2k;HT&&⇒&&?.;2k?#$+/2&b&

–  Q"+&;HT>3#;;&IH;2&?$+;+$V+&#33&6+>3#$+6&?$.?+$7+;&.M&2"+&?#$+/2&>3#;;&

•  1;&Z%2"&I.;2&.2"+$&6+;%,/&?$%/>%?3+;X&;HT;72H2#T%3%2<&%;&/.2&#&$%,%6&6+;%,/&$H3+(&B#2"+$X&2"+&?$%/>%?3+&;+$V+;&#;&#&,H%6+3%/+&M.$&6+2+$I%/%/,&Z"+/&%2&%;&;#M+&/.2&2.&$++N#I%/+&2"+&>3%+/2&I.6H3+;&.M&#/&+N2+/6+6&>3#;;&

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.45

):S(44(*&+,-.(F#Q(0>(*&L&%&'(

•  F#Q(0>(*&L&%&'J(133.Z;&$+6H>%/,&6+?+/6+/>%+;&T<&%/>3H6%/,&%/&+#>"&>.I?.;%2+&>3#;;&I+2".6;&M.$&.?+$#7/,&./&2"+&>3#;;W;&>.I?./+/2;&

• j+/+]2_&&>3%+/2&>.6+&2"#2&H;+;&#&>.I?.;%2+&>3#;;&/++6;&2.&^/.Z&./3<&#T.H2&2"+&>.I?.;%2+&%2;+3M&#/6&/.2&#T.H2&2"+&>.I?.;%2+;W&>.I?./+/2;&

• :+;%,/;&2"#2&.T+<&2"+&'#Z&.M&:+I+2+$&"#V+&M+Z+$&>3#;;&6+?+/6+/>%+;X&#/6&>3#;;+;&Z%2"&M+Z+$&6+?+/6+/>%+;&2+/6&2.&"#V+&M+Z+$&;.YZ#$+&M#H32;&

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.46

):S(44(*&+,-.(F#Q(0>(*&L&%&'(H70.8.2&1I(

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.47

):S(44(*&+,-.(*&$&.1&.7<(M.9&'+,0.(

•  :+?+/6+/><&%/V+$;%./&%;&2"+&3#;2&]/#3&AA&6+;%,/&"+H$%;7>&–  H;+6&2.&$+V+$;+&2"+&6%$+>7./&.M&#&6+?+/6+/><&3%/^&T+2Z++/&2Z.&>3#;;+;&

•  :+?+/6+/><&%/V+$;%./&Z.$^;&T<&%/2$.6H>%/,&%/2+$M#>+;&•  Q"+&6+?+/6+/><&%/V+$;%./&?$%/>%?3+&%;&H;+6&%/&2"+&6+]/%7./;&.M&

;+V+$#3&6+;%,/&?#E+$/;&

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.48

):V(=&$'&+&.8.-(44(*&+,-.+(,.(%"&(G/F(

•  Q"+&C0'&%;&#&;H%2+&.M&6+;%,/&/.2#7./;&2"#2&%;&?.?H3#$&M.$&6+;>$%T%/,&AA&;.3H7./;&

•  Q"+&C0'&>#/&T+&H;+6&2.&V%;H#3%`+X&;?+>%M<X&.$&6.>HI+/2&#&;.YZ#$+&6+;%,/&

• C0'&+;?+>%#33<&H;+MH3&M.$&6+;>$%T%/,&6%e+$+/2&6+;%,/&#32+$/#7V+;X&#/6&+V+/2H#33<&M.$&6.>HI+/7/,&6+;%,/&#$7M#>2;&

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.49

):V(=&$'&+&.8.-(44(*&+,-.+(,.(%"&(G/F(G/F(,.(%"&(@'07&++(

•  C;+&>#;+&6%#,$#I;&

•  C0'&#>7V%2<&6%#,$#I;&

•  :.I#%/&I.6+3&

•  F.I?./+/2&6%#,$#I;&

•  :+?3.<I+/2&6%#,$#I;&

•  F3#;;&6%#,$#I;&

•  L/2+$#>7./&6%#,$#I;&

•  !+[H+/>+&6%#,$#I;&

•  F.IIH/%>#7./&6%#,$#I;&

•  1>7V%2<&6%#,$#I;&

•  !2#2+&6%#,$#I;&

•  )#>^#,+&6%#,$#I;&

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.50

):V(=&$'&+&.8.-(44(*&+,-.+(,.(%"&(G/F(G/F(,.(%"&(@'07&++(H70.8.2&1I(

•  h.Z&C0'&%;&H;+6&%/&2"+&6+V+3.?I+/2&?$.>+;;&

– Requirements – Design – Architecture

– UML use case

diagrams – Scenarios

– UML activity diagram

s

– UML state

diagrams

– UML class

diagrams

– UML object

diagrams

– UML sequenc

e diagram

s

– UML communic

ation diagrams

– UML package diagrams

– UML compone

nt diagrams

– UML deployme

nt diagrams

– Domain models

– UML activity diagram

s

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.51

):V(=&$'&+&.8.-(44(*&+,-.+(,.(%"&(G/F((A,1&5#'():V((=0<#3(A&'9,7&(A%#80.(=&W2,'&L&.%+(

•  B.<#3&!+$V%>+&;2#7./&?$.V%6+;&2"$++&2<?+;&.M&;+$V%>+;&•  Q"+&;<;2+I&IH;2&2$#>^&T%33;X&2"+&?$.6H>2&#/6&;+$V%>+;&

•  !<;2+I&2.&>./2$.3&%/V+/2.$<&•  Q"+&;<;2+I&2.&2$#>^&>$+6%2&"%;2.$<X&#/6&?#<I+/2;&.V+$6H+&•  Q"+&;<;2+I&#??3%+;&./3<&2.&$+,H3#$&$+?+#2&>H;2.I+$&

•  Q"+&;<;2+I&IH;2&"#/63+&2"+&6#2#&$+[H%$+I+/2;&M.$&%/2+$M#>%/,&Z%2"&.2"+$&;<;2+I&•  Q"+&;<;2+I&IH;2&$+>.$6&2#N&#/6&$+3#2+6&%/M.$I#7./&

•  Q"+&;2#7./&IH;2&T+&#T3+&2.&$+V%+Z&2#N&$+>.$6&H?./&6+I#/6&•  Q"+&;<;2+I&Z%33&;+/6&?+$%.6%>&I+;;#,+&2.&>H;2.I+$;&•  FH;2.I+$&>#/&$+/2&?#$^%/,&;?#>+&%/&2"+&;2#7./&?#$^%/,&3.2&&

•  Q"+&;<;2+I&I#%/2#%/&#&$+?.;%2.$<&.M&#>>.H/2&%/M.$I#7./&•  Q"+&;2#7./&I#/#,+$&IH;2&T+&#T3+&2.&$+V%+Z&#>>.H/7/,&%/M.$I#7./&H?./&6+I#/6&•  Q"+&;<;2+I&>#/&$+?.$2&#/&#/#3<;%;&.M&?$%>+;&#/6&6%;>.H/2;&

•  Q"+&;<;2+I&Z%33&#H2.I#7>#33<&/.7M<&2"+&.Z/+$;&.M&6.$I#/2&#>>.H/2;&•  Q"+&;<;2+I&>#/&/.2&T+&H/#V#%3#T3+&M.$&I.$+&2"#/&=4&".H$;&•  Q"+&;<;2+I&IH;2&?$.2+>2&>H;2.I+$&%/M.$I#7./&M$.I&H/#H2".$%`+6&#>>+;;&

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.52

):V(=&$'&+&.8.-(44(*&+,-.+(,.(%"&(G/F(G/F(!3#++(*,#-'#L(

• C0'&>3#;;&6%#,$#I;&6+;>$%T+&2"+&.TU+>2&2<?+;&#/6&2"+%$&;2#7>&$+3#7./;"%?;&–  :+?%>2&#;;.>%#7./;&#I./,&.TU+>2;&#/6&$+3#7./;"%?;&T+2Z++/&2<?+;&#/6&

;HT2<?+;&

–  :%#,$#I;&;".H36&%33H;2$#2+&2"+&#E$%TH2+;&.M&+#>"&.TU+>2X&2"+%$&%/6%V%6H#3&T+"#V%.$;X&#/6&2"+&$+;2$%>7./;&./&+#>"&>3#;;&.$&.TU+>2&

•  '..^&M.$&#/6&;++^&–  1>2.$;X&?"<;%>#3&.TU+>2;X&?3#>+;X&.$,#/%`#7./;X&$+>.$6;X&2$#/;#>7./;X&

>.33+>7./;&.M&2"%/,;X&.?+$#7./;&?$.>+6H$+;X&2"%/,;&I#/%?H3#2+6&T<&2"+&;<;2+I&2.&T+&TH%32&

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.53

):V(=&$'&+&.8.-(44(*&+,-.+(,.(%"&(G/F(G/F(!3#++(*,#-'#L(H70.8.2&1I(

•  B.<#3&!+$V%>+&!2#7./&H;+&>#;+&6%#,$#I&

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.54

):V(=&$'&+&.8.-(44(*&+,-.+(,.(%"&(G/F(G/F(!3#++(*,#-'#L(H70.8.2&1I(

• R"#2&/++6;&2.&T+&l?$.>+;;+6m&%/&;.I+&Z#<n&

• R"#2&%2+I;&"#V+&IH37?3+&#E$%TH2+;n&

• R"+/&6.&<.H&"#V+&I.$+&2"#/&./+&.TU+>2&%/&#&>3#;;n&

• R"#2&%;&T#;+6&./&2"+&$+[H%$+I+/2;&2"+I;+3V+;X&/.2&6+$%V+6&M$.I&<.H$&H/6+$;2#/6%/,&.M&2"+&$+[H%$+I+/2;n&

• R"#2&#E$%TH2+;&#/6&.?+$#7./;&#$+&#3Z#<;&#??3%>#T3+&2.&#&>3#;;&.$&.TU+>2n&

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.55

):V(=&$'&+&.8.-(44(*&+,-.+(,.(%"&(G/F(M.,8#3(T'02$,.-(0>(RU',52%&+(#.1(!3#++&+J(A%&$(;(

Attributes Classes Personal check Customer Tax Maintenance Price Services Cash Fuel Credit card Bill Discounts Purchase

Station manager

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.56

):V(=&$'&+&.8.-(44(*&+,-.+(,.(%"&(G/F(M.,8#3(T'02$,.-(0>(RU',52%&+(#.1(!3#++&+J(A%&$(?(

Attributes Classes Personal check Customer Tax Maintenance Price Services Cash Parking Credit card Fuel Discounts Bill Name Purchase Address Maintenance reminder Birthdate Station manager

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.57

):V(=&$'&+&.8.-(44(*&+,-.+(,.(%"&(G/F(T2,1&3,.&+(>0'(M1&.8><,.-(X&"#9,0'+(

•  LI?+$#7V+&V+$T;&

•  )#;;%V+&V+$T;&• 1>7./;&• 0+IT+$;"%?&%/&

• 0#/#,+I+/2&.$&.Z/+$;"%?&

• B+;?./;%T3+&M.$&•  !+$V%>+;&?$.V%6+6&T<&#/&.$,#/%`#7./&

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.58

):V(=&$'&+&.8.-(44(*&+,-.+(,.(%"&(G/F(M.,8#3(T'02$,.-(0>(RU',52%&+(#.1(!3#++&+J(A%&$(S(

Attributes Classes

Personal check Tax Price Cash Credit card Discounts Name Address Birthdate

Customer Maintenance Services Parking Fuel Bill Purchase Maintenance reminder Station manager Overdue bill letter Dormant account warning Parts Accounts Inventory Credit card system Part ordering system Fuel ordering system

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.59

):V(=&$'&+&.8.-(44(*&+,-.+(,.(%"&(G/F(C,'+%(!2%(#%(=0<#3(A&'9,7&(A%#80.(*&+,-.(

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.60

):V(=&$'&+&.8.-(44(*&+,-.+(,.(%"&(G/F(K<$&+(0>(!3#++(=&3#80.+",$+(

– #;;.>%#7./&

– >.I?.;%7./&

– #,,$+,#7./&

– 6+?+/6+/><&

– /#V%,#7./&

– ,+/+$#3%`#7./&

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.61

):V(=&$'&+&.8.-(44(*&+,-.+(,.(%"&(G/F(4%"&'(G/F(*,#-'#L+(

• F3#;;&6+;>$%?7./&2+I?3#2+&

•  )#>^#,+&6%#,$#I;&

•  L/2+$#>7./&6%#,$#I;&

•  !+[H+/>+&6%#,$#I;&

• F.IIH/%>#7./&6%#,$#I;&

•  !2#2+&6%#,$#I;&

• 1>7V%2<&6%#,$#I;&

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.62

):V(=&$'&+&.8.-(44(*&+,-.+(,.(%"&(G/F(4%"&'(G/F(*,#-'#L+(Y(!3#++(*&+7',$80.(K&L$3#%&(

Class name: Refuel Category: service External documents: Export control: Public Cardinality: n Hierarchy: Superclasses: Service Associations: <no rolename>: fuel in association updates

Operation name: price Public member of: Refuel Documentation: // Calculates fuel final price Preconditions: gallons > 0 Object diagram: (unspecified)

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.63

):V(=&$'&+&.8.-(44(*&+,-.+(,.(%"&(G/F(4%"&'(G/F(*,#-'#L+(Y(!3#++(*&+7',$80.(K&L$3#%&(H70.%I(

Semantics: price = gallons * fuel.price_per_gallon tax = price * purchase.tax_rate Object diagram: (unspecified) Concurrency: sequential

Public interface: Operations: price

Private interface: Attributes: gallons

Implementation: Attributes: gallons

State machine: no Concurrency: sequential Persistence: transient

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.64

):V(=&$'&+&.8.-(44(*&+,-.+(,.(%"&(G/F(A&70.1(!2%(#%(=0<#3(A&'9,7&(A%#80.(*&+,-.(

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.65

):V(=&$'&+&.8.-(44(*&+,-.+(,.(%"&(G/F(C,.#3(!2%(#%(=0<#3(A&'9,7&(A%#80.(*&+,-.(

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.66

):V(=&$'&+&.8.-(44(*&+,-.+(,.(%"&(G/F(4%"&'(G/F(*,#-'#L+(Y(@#7D#-&(*,#-'#L(

• C0'&?#>^#,+&6%#,$#I;&#33.Z&V%+Z%/,&#&;<;2+I&#;&#&;I#33&>.33+>7./&.M&?#>^#,+;&+#>"&.M&Z"%>"&I#<&T+&+N?#/6+6&2.&#&3#$,+$&;+2&.M&>3#;;+;&

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.67

):V(=&$'&+&.8.-(44(*&+,-.+(,.(%"&(G/F(4%"&'(G/F(*,#-'#L+(Y(A&W2&.7&*,#-'#L(

•  L/2+$#>7./&6%#,$#I;&6+;>$%T+&".Z&.?+$#7./;&#/6&T+"#V%.$;&#$+&$+#3%`+6&T<&2"+&.TU+>2;&

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.68

):V(=&$'&+&.8.-(44(*&+,-.+(,.(%"&(G/F(4%"&'(G/F(*,#-'#L+(Y(!0LL2.,7#80.(*,#-'#L(

• 1&>.IIH/%>#7./&6%#,$#I&6+?%>2;&#&;+[H+/>+&.M&I+;;#,+;&T+2Z++/&.TU+>2;&TH2&%2&%;&;H?+$%I?.;+6&./&#/&.TU+>2&#/6&H;+;&2"+&3%/^;&T+2Z++/&.TU+>2&#;&%I?3%>%2&>.IIH/%>#7./&>"#//+3;&

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.69

):V(=&$'&+&.8.-(44(*&+,-.+(,.(%"&(G/F(4%"&'(G/F(*,#-'#L+(Y(A%#%&*,#-'#L(

• 1&;2#2+&6%#,$#I&;".Z;&2"+&?.;;%T3+&;2#2+;&#/&.TU+>2&>#/&2#^+X&2"+&+V+/2;&2"#2&2$%,,+$&2"+&2$#/;%7./&T+2Z++/&./+&;2#2+&2.&2"+&/+N2X&#/6&2"+&#>7./;&2"#2&$+;H32&M$.I&+#>"&;2#2+&>"#/,+&

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.70

):V(=&$'&+&.8.-(44(*&+,-.+(,.(%"&(G/F(4%"&'(G/F(*,#-'#L+(Y(A%#%&(*,#-'#L(H70.8.2&1I(

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.71

):V(=&$'&+&.8.-(44(*&+,-.+(,.(%"&(G/F(4%"&'(G/F(*,#-'#L+(Y(R789,%<(*,#-'#L(

• 1>7V%2<&6%#,$#I;&#$+&H;+6&2.&I.6+3&2"+&*.Z&.M&?$.>+6H$+;&.$&#>7V%7+;&%/&#&>3#;;&

• 1&6+>%;%./&/.6+&%;&H;+6&2.&$+?$+;+/2&#&>".%>+&.M&Z"%>"&#>7V%2<&2.&%/V.^+&

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.72

):V(=&$'&+&.8.-(44(*&+,-.+(,.(%"&(G/F(4%"&'(G/F(*,#-'#L+(Y(R789,%<(*,#-'#L(H70.8.2&1I(

• 1>7V%2<&6%#,$#I;&#$+&H;+6&2.&I.6+3&2"+&*.Z&.M&?$.>+6H$+;&.$&#>7V%7+;&%/&#&>3#;;&

•  An activity diagram for the inventory class

•  It may have two decisions –  to verify that there are

enough fuel –  to verify that a part is in

stock

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.73

):Z(44(*&+,-.(@#U&'.+(

• 1&6+;%,/&?#E+$/&>.6%]+;&6+;%,/&6+>%;%./;&#/6&T+;2&?$#>7>+;&M.$&;.3V%/,&#&?#$7>H3#$&6+;%,/&?$.T3+I&#>>.$6%/,&2.&6+;%,/&?$%/>%?3+;&

• :+;%,/&?#E+$/;&#$+&/.2&2"+&;#I+&#;&;.YZ#$+&3%T$#$%+;f&2"+<&#$+&/.2&?#>^#,+6&;.3H7./;&2"#2&>#/&T+&H;+6&#;&%;(&B#2"+$X&2"+<&#$+&2+I?3#2+;&M.$&#&;.3H7./&2"#2&IH;2&T+&I.6%]+6&#/6&#6#?2+6&M.$&+#>"&?#$7>H3#$&H;+&

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.74

):Z(44(*&+,-.(@#U&'.+(K&L$3#%&(/&%"01(@#U&'.(

•  Q"+&Q+I?3#2+&0+2".6&?#E+$/&#%I;&2.&$+6H>+&2"+&#I.H/2&.M&6H?3%>#2+&>.6+&#I./,&;HT>3#;;+;&.M&2"+&;#I+&?#$+/2&>3#;;&–  L2&%;&?#$7>H3#$3<&H;+MH3&Z"+/&IH37?3+&;HT>3#;;+;&"#V+&;%I%3#$&TH2&/.2&%6+/7>#3&

%I?3+I+/2#7./;&.M&2"+&;#I+&I+2".6&

–  Q"%;&?#E+$/&#66$+;;+;&2"%;&?$.T3+I&T<&3.>#3%`%/,&2"+&6H?3%>#2+&>.6+&;2$H>2H$+&%/&#/&#T;2$#>2&>3#;;&M$.I&Z"%>"&2"+&;HT>3#;;+;&%/"+$%2&

•  Q"+&#T;2$#>2&>3#;;&6+]/+;&#&2+I?3#2+&I+2".6&2"#2&%I?3+I+/2;&2"+&>.II./&;2+?;&.M&#/&.?+$#7./X&#/6&6+>3#$+;&#T;2$#>2&?$%I%7V+&.?+$#7./;&2"#2&$+?$+;+/2&2"+&V#$%#7./&?.%/2;&

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.75

):Z(44(*&+,-.(@#U&'.+(K&L$3#%&(/&%"01(@#U&'.(H70.8.2&1I(

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.76

):Z(44(*&+,-.(@#U&'.+(C#7%0'<(/&%"01(@#U&'.(

•  Q"+&d#>2.$<&0+2".6&?#E+$/&%;&H;+6&2.&+/>#?;H3#2+&2"+&>.6+&2"#2&>$+#2+;&.TU+>2;&

•  Q"+&M#>2.$<&0+2".6&?#E+$/&%;&;%I%3#$&2.&2"+&Q+I?3#2+&I+2".6&?#E+$/&

•  Q"+&;%I%3#$&TH2&/.2&%6+/7>#3&I+2".6;&#$+&2"+&>./;2$H>2.$&I+2".6;&2"#2&%/;2#/7#2+&.TU+>2;&

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.77

):Z(44(*&+,-.(@#U&'.+(A%'#%&-<(@#U&'.(

•  Q"+&!2$#2+,<&?#E+$/&#33.Z;&#3,.$%2"I;&2.&T+&;+3+>2+6&#2&$H/7I+&

•  L2&%;&H;+MH3&Z"+/&V#$%.H;&#3,.$%2"I;&#$+&#V#%3#T3+&2.&#/&#??3%>#7./&TH2&2"+&>".;+&.M&T+;2&#3,.$%2"I&%;&/.2&^/.Z/&

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.78

):Z(44(*&+,-.(@#U&'.+(*&70'#%0'(@#U&'.(

•  Q"+&:+>.$#2.$&?#E+$/&%;&H;+6&2.&+N2+/6&#/&.TU+>2W;&MH/>7./#3%2<&#2&$H/7I+&

•  :+>.$#2.$&?#E+$/&%;&#&*+N%T3+&#32+$/#7V+&2.&H;%/,&%/"+$%2#/>+&#2&6+;%,/&7I+&2.&>$+#2+&;HT>3#;;+;&2"#2&;H??.$2&/+Z&M+#2H$+;&

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.79

):Z(44(*&+,-.(@#U&'.+(45+&'9&'(@#U&'.(

•  Q"+&AT;+$V+$&?#E+$/&%;&#/&#??3%>#7./&.M&2"+&?HT3%;"o;HT;>$%T+&#$>"%2+>2H$+&;2<3+&

•  C;+MH3&Z"+/&;.YZ#$+&/++6;&2.&/.7M<&IH37?3+&.TU+>2;&.M&^+<&+V+/2;&

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.80

):Z(44(*&+,-.(@#U&'.+(!0L$0+,%&(@#U&'.(

•  1&>.I?.;%2+&.TU+>2&%;&#&"+2+$.,+/+.H;X&?.;;%T3<&$+>H$;%V+X&>.33+>7./&.M&.TU+>2;&2"#2&$+?$+;+/2;&;.I+&>.I?.;%2+&+/72<&

•  Q"+&>.I?.;%2+&?#E+$/&?$.I.2+;&2"+&H;+;&.M&#&;%/,3+&H/%M.$I&%/2+$M#>+&

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.81

):Z(44(*&+,-.(@#U&'.+([,+,%0'(@#U&'.(

•  Q"+&i%;%2.$&?#E+$/&>.33+>2;&#/6&+/>#?;H3#2+;&.?+$#7./&M$#,I+/2;&%/2.&2"+%$&.Z/&>3#;;+;&

•  5#>"&.?+$#7./&%;&%I?3+I+/2+6&#;&#&;+?#$#2+&;HT>3#;;&.M&#/&#T;2$#>2&Visitor&>3#;;&

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.82

):Z(44(*&+,-.(@#U&'.+(R$$3,7#80.(0>(!0L$0+,%&(@#U&'.(%0(=&$'&+&.%(/#%"(\]$'&++,0.+(

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.83

):)(4%"&'(*&+,-.(!0.+,1&'#80.+(*#%#(/#.#-&L&.%(

• :#2#&I#/#,+I+/2&2#^+;&%/2.&#>>.H/2&2"+&;<;2+I&$+[H%$+I+/2;&>./>+$/%/,&?+$M.$I#/>+&#/6&;?#>+&

•  d$.I&#/&H/6+$;2#/6%/,&.M&2"+&6#2#&$+[H%$+I+/2;&#/6&>./;2$#%/2;X&./+&3#<;&.H2&#&6+;%,/&M.$&2"+&.TU+>2;&#/6&2"+%$&.?+$#7./;&

•  d.H$&;2+?;_&–  L6+/7M<&2"+&6#2#X&6#2#&;2$H>2H$+;X&#/6&$+3#7./;"%?;&#I./,&2"+I&

–  :+;%,/&;+$V%>+;&2.&I#/#,+&2"+&6#2#&;2$H>2H$+;&#/6&$+3#7./;"%?;&

–  d%/6&2..3;X&;H>"&#;&6#2#T#;+&I#/#,+I+/2&;<;2+I;X&2.&%I?3+I+/2&;.I+&.M&2"+&6#2#&I#/#,+I+/2&2#;^;&

–  :+;%,/&>3#;;+;&#/6&>3#;;&"%+$#$>"%+;&2.&.V+$;++&2"+&6#2#&I#/#,+I+/2&MH/>7./;&

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.84

):)(4%"&'(*&+,-.(!0.+,1&'#80.+(*#%#(/#.#-&L&.%(>0'(%"&(=0<#3(A&'9,7&(A%#80.((

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.85

):)(4%"&'(*&+,-.(!0.+,1&'#80.+(\]7&$80.(O#.13,.-(

• 133.Z;&I#^%/,&?$.,$#I;&T+>.I+&I.$+&$.TH;2&

• h+3?;&;+?#$#2+&+$$.$&>"+>^%/,&#/6&$+>.V+$&M$.I&#&?$.,$#IW;&I#%/&MH/>7./#3%2<&

• F"#?2+$&D&.e+$;&I.$+&6+2#%3;&&

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.86

):)(4%"&'(*&+,-.(!0.+,1&'#80.+(\]7&$80.(O#.13,.-(H70.8.2&1I(

attempt_transmission (message: STRING) raises TRANSMISSIONEXCEPTION // Attempt to transmit message over a communication line using // the low-level procedure unsafe_transmit, which may fail, //triggering an exception. // After 100 unsuccessful attempts, give up and raise an exception

local failures: INTEGER

try unsafe_transmit (message)

rescue failures := failures + 1; if failures < 100 then retry else raise TRANSMISSIONEXCEPTION end

end

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.87

):)(4%"&'(*&+,-.(!0.+,1&'#80.+(*&+,-.,.-(G+&'(M.%&'>#7&+(

• 0H;2&>./;%6+$&;+V+$#3&%;;H+;_&–  %6+/7M<%/,&2"+&"HI#/;&Z".&Z%33&%/2+$#>2&Z%2"&2"+&;<;2+I&

–  6+]/%/,&;>+/#$%.;&M.$&+#>"&Z#<&2"#2&2"+&;<;2+I&>#/&?+$M.$I&#&2#;^&

–  6+;%,/%/,&#&"%+$#$>"<&.M&H;+$&>.II#/6;&

–  $+]/%/,&2"+&;+[H+/>+&.M&H;+$&%/2+$#>7./;&Z%2"&2"+&;<;2+I&

–  6+;%,/%/,&$+3+V#/2&>3#;;+;&%/&2"+&"%+$#$>"<&2.&%I?3+I+/2&2"+&H;+$P%/2+$M#>+&6+;%,/&

–  6+>%;%./;&–  %/2+,$#7/,&2"+&H;+$P%/2+$M#>+&>3#;;+;&%/2.&2"+&.V+$#33&;<;2+I&>3#;;&"%+$#$>"<&

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.88

):)(4%"&'(*&+,-.(!0.+,1&'#80.+(*&+,-.,.-(G+&'(M.%&'>#7&+(H70.8.2&1I(

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.89

):)(4%"&'(*&+,-.(!0.+,1&'#80.+(*&+,-.,.-(G+&'(M.%&'>#7&+(H70.8.2&1I(

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.90

):)(4%"&'(*&+,-.(!0.+,1&'#80.+(C'#L&Q0'D+(

•  1&M$#I+Z.$^&%;&#&3#$,+&$+H;#T3+&6+;%,/&M.$&#&;?+>%]>&#??3%>#7./&6.I#%/&

•  cCL&+6%2.$;X&Z+T&#??3%>#7./;X&#>>.H/7/,&;<;2+I;&

•  :%e+$+/2&M$.I&;.YZ#$+&?$.6H>2&3%/+;&

•  )$.6H>2&3%/+;&#$+&6+V+3.?+6&T<&#&>.I?#/<&M.$&%2;&.Z/&H;+&

•  d$#I+Z.$^;&2+/6&2.&T+&?HT3%>#33<&#V#%3#T3+&$+;.H$>+;&3%^+&2..3^%2;&

•  h%,"P3+V+3&#$>"%2+>2H$+;&Z".;+&3.ZP3+V+3&6+2#%3;&/++6&2.&T+&]33+6P%/&

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.91

):^(44(/&#+2'&L&.%(44(A,_&(/&#+2'&+(

•  ATU+>2;&#/6&I+2".6;&#;&#&T#;%>&;%`+&I+#;H$+&&•  '.$+/`&#/6&p%66W;&/%/+&#;?+>2;&.M&;%`+&

–  \HIT+$&.M&;>+/#$%.&;>$%?2&a\!!b&–  \HIT+$&.M&^+<&>3#;;+;&–  \HIT+$&.M&;H??.$2&>3#;;+;&–  Q"+&#V+$#,+&/HIT+$&.M&;H??.$2&>3#;;+;&?+$&^+<&>3#;;+;&–  \HIT+$&.M&;HT;<;2+I;&–  F3#;;&;%`+&–  \HIT+$&.M&.?+$#7./;&.V+$$%66+/&T<&#&;HT>3#;;&a\AAb&–  \HIT+$&.M&.?+$#7./&#66+6&T<&#&;HT>3#;;&–  !?+>%#3%`#7./&%/6+N&

• !L&q&a\AA&r&6+T2"b&s&a2.2#3&>3#;;&I+2".6;b&

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.92

):^(44(/&#+2'&L&.%((F0'&._(#.1(`,11(/&%',7+(!033&780.(,.(*,a&'&.%(@"#+&+(0>(*&9&30$L&.%(

Metric Requirements Description

System Design

Program Design Coding Testing

Number of scenario script X

Number of key classes X X

Number of support classes X

Average number of support classes per key class X

Number of subsystem X X

Class size X X X

Number of operations overridden by a subclass X X X X

Number of operations added by a subclass X X X

Specialization index X X X X

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.93

):^(44(/&#+2'&L&.%(G+&(!#+&(*,#-'#L(0>(%"&(=0<#3(A&'9,7&(A%#80.(

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.94

):^(44(/&#+2'&L&.%(!3#++(O,&'#'7"<(>0'(%"&(=0<#3(A&'9,7&(A%#80.(

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.95

):^(44(/&#+2'&L&.%(44(*&+,-.(b2#3,%<(/&#+2'&+(

• F"%6#IT+$&#/6&p+I+$+$&"#V+&#3;.&6+V%;+6&#&;H%2+&.M&I+2$%>;&M.$&.TU+>2P.$%+/2+6&6+V+3.?I+/2&

•  d.>H;+6&./&6+;%,/&[H#3%2<&a/.2&;%`+b& & &&

– R+%,"2+6&I+2".6;&?+$&>3#;;&q&&%/ %q9&&!, & & & & &&

–  :+?2"&.M&%/"+$%2#/>+&–  \HIT+$&.M&>"%36$+/&

–  F.H?3%/,&T+2Z++/&.TU+>2;&–  B+;?./;+&M.$&#&>3#;;&–  '#>^&.M&>."+;%./&.M&I+2".6;&

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.96

):^(44(/&#+2'&L&.%(!",1#L5&'P`&L&'&'(/&%',7+(#$$3,&1(%0(%"&(=0<#3(A&'9,7&(A%#80.c+(A<+%&L(*&+,-.(

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.97

):^(44(/&#+2'&L&.%(!#3723#8.-(%"&(*&-'&&(0>(!0"&+,0.(

•  Given class C with n methods, M1 through Mn

•  Suppose {Ij} is the set of instance variables used by the method M

•  We can define P to be collection of pairs (Ir , Is) where Ir and Is, share no common members –  P = {(Ir , Is) | Ir ! Is = Ø}

•  Q is the collection of pairs (Ir , Is) where Ir and Is, share at least one common member –  Q = {(Ir , Is) | Ir ! Is ! Ø}

•  Lack of cohesion in methods for C to be –  |P|-|Q| if |P| > |Q| –  Zero if otherwise

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.98

):^(44(/&#+2'&L&.%(!",1#L5&'P`&L&'&'(/&%',7+(#$$3,&1(%0(%"&(=0<#3(A&'9,7&(A%#80.c+(A<+%&L(*&+,-.(

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.99

):^(44(/&#+2'&L&.%(4%"&'(/&%',7+(

•  '%&#/6&h+/$<&a9KK@b_&I+2$%>;&2.&?$+6%>2&2"+&;%`+&.M&>"#/,+;&%/&>3#;;+;&6H$%/,&I#%/2+/#/>+&–  0+;;#,+P?#;;%/,&>.H?3%/,_&the number of methods invocations in

a class’s implementation&–  :#2#&#T;2$#>7./&>.H?3%/,_&the number of abstract data types used

in the measured class and defined in another class of the system&

•  Q$#V#;;.;&a9KKKb&–  Q"+&#V+$#,+&.?+$#7./&;%`+&–  Q"+&#V+$#,+&/HIT+$&.M&?#$#I+2+$;&?+$&.?+$#7./&

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.100

):^(44(/&#+2'&L&.%(/&#+2',.-(C'0L(#(A&W2&.7&(*,#-'#L(

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.101

):^(44(/&#+2'&L&.%(d"&'&(%0(*0(44(/&#+2'&L&.%(

• 0+#;H$+I+/2&%;&./3<&V#3H#T3+&Z"+/&%2&%/>$+#;+;&.H$&H/6+$;2#/6%/,X&?$+6%>7./X&.$&>./2$.3&

• 0+2$%>;&#$+&#V#%3#T3+&M.$&I#/<&2<?+;&.M&6.>HI+/2;&%/>3H6%/,&•  C;+&>#;+;&•  F3#;;&6%#,$#I;&

•  L/2+$#>7./&6%#,$#I;&

•  F3#;;&6+;>$%?7./;&•  !2#2+&6%#,$#I;&

•  )#>^#,+&6%#,$#I;&

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.102

):^(44(/&#+2'&L&.%(d"&'&(%0(*0(44(/&#+2'&L&.%(H70.8.2&1I(

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.103

):e(*&+,-.(*072L&.%#80.(

•  Q"+&6+2#%3;&.M&2"+&;<;2+I&#$>"%2+>2H$+&%;&6.>HI+/2+6&%/&1(23#.%'4.!5,+%!+6.%'7(!68%-+&a!1:b&

•  !1:&;+$V+;&#;&#&T$%6,+&T+2Z++/&2"+&$+[H%$+I+/2;&#/6&2"+&6+;%,/&

•  0#/<&Z#<;&2.&6.>HI+/2&2"+&6+;%,/&

•  *&+,-.(5<(70.%'#7%_&#&?#$7>H3#$&#??$.#>"&2"#2&H;+;&2"+&6.>HI+/2#7./&./3<&2.&>#?2H$+&2"+&6+;%,/&TH2&#3;.&2.&+/>.H$#,+&%/2+$#>7./&#I./,&6+V+3.?+$;&

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.104

):e(*&+,-.(*072L&.%#80.(*&+,-.(5<(!0.%'#7%(

•  L/&6+;%,/&T<&>./2$#>2X&+#>"&I.6H3+&"#;&#/&%/2+$M#>+&;?+>%]>#7./&2"#2&?$+>%;+3<&6+;>$%T+;&Z"#2&2"+&I.6H3+&%;&;H??.;+6&2.&6.&–  0+<+$&a9KKGb&;H,,+;2;&2"#2&6+;%,/&T<&>./2$#>2&"+3?;&+/;H$+&2"#2&I.6H3+;&

%/2+$.?+$#2+&>.$$+>23<&

–  Q"%;&;?+>%]>#7./X&>#33+6&#&70.%'#7%X&,.V+$/;&".Z&2"+&I.6H3+&%;&2.&%/2+$#>2&Z%2"&.2"+$&I.6H3+;&#/6&;<;2+I;&

–  !H>"&;?+>%]>#7./&>#//.2&,H#$#/2++&#&I.6H3+W;&>.$$+>2/+;;X&TH2&%2&M.$I;&#&>3+#$&#/6&>./;%;2+/2&T#;%;&M.$&2+;7/,&#/6&V+$%]>#7./&

–  Q"+&>./2$#>2&>.V+$;&IH2H#3&.T3%,#7./;&a2"+&$+>./6%7./;bX&T+/+]2;&a2"+&?.;2>./6%7./;bX&#/6&>./;%;2+/><&>./;2$#%/2;&a>#33+6&,.9#',#.%+b&&

–  Q.,+2"+$X&2"+;+&>./2$#>2&?$.?+$7+;&#$+&>#33+6&#++&'80.+&&

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.105

):e(*&+,-.(*072L&.%#80.(*&+,-.(5<(!0.%'#7%(H70.8.2&1I(

• :+;%,/&>./2$#>2&T+2Z++/&;.YZ#$+&?$.V%6+$&#/6&H;+$&

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.106

):f(M.>0'L#80.(A<+%&L(\]#L$3&(*#%#(/01&3(0>(Opposition Programs X'0#17#+%(5<(@,77#1,33<c+(!0L$&880.(

•  :.I#%/&+3+I+/2;&#/6&$+3#7./;"%?;&2"#2&2"+&)%>>#6%33<&6#2#T#;+&Z%33&I#%/2#%/&

•  1&>3.;+$&+N#I%/#7./&Z%33&$+V+#3&2"#2&2"+$+&#$+&>./;%6+$#T3+&>.II./#3%2<&

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.107

):;g(=&#3PK,L&(\]#L$3&(*&+,-.(5<(!0.%'#7%(

•  h#6&1$%#/+PD&T++/&%I?3+I+/2+6&H;%/,&#/&.TU+>2P.$%+/2+6&#??$.#>"X&2"+&$+H;+&Z.H36&"#V+&T++/&+%2"+$&%/&2+$I;&.M&>.I?.;%7./&.$&%/"+$%2#/>+&

•  L/&>.I?.;%7./&#??$.#>"_&2"+&!BL&%;&V%+Z+6&#;&#&T3#>^&T.N&#/6&>#33+6&M$.I&2"+&I#%/&;<;2+I&

•  L/&%/"+$%2#/>+&#??$.#>"_&2"+&!BL&;2$H>2H$+&#/6&T+"#V%.$&#$+&.?+/&2.&V%+ZX&%/"+$%7/,&#;&IH>"&;2$H>2H$+&#/6&T+"#V%.$&M$.I&?#$+/2&>3#;;+;&#;&?.;;%T3+&

Pfleeger and Atlee, Software Engineering: Theory and Practice

Chapter 6.108

):;;(d"#%(K",+(!"#$%&'(/&#.+(C0'(h02((

•  Q"+&6+;%,/&?$.>+;;&6+;>$%T+;&2"+&;<;2+I&>.I?./+/2;&H;%/,&#&>.II./&3#/,H#,+&Z%2"&Z"%>"&2.&>.IIH/%>#2+&

•  ATU+>2&.$%+/2#7./&%;&#&?#$7>H3#$3<&#??+#3%/,&T#;%;&M.$&;H>"&6+;%,/X&T+>#H;+&%2&#33.Z;&H;&2.&6+;>$%T+&#/6&$+#;./&#T.H2&2"+&;<;2+I&M$.I&%2;&T%$2"&2.&%2;&6+3%V+$<&%/&2"+&;#I+&2+$I;_&>3#;;+;X&.TU+>2;X&#/6&I+2".6;&

•  F./;%;2+/2&/.2#7./&I#^+;&%2&+#;%+$&M.$&<.H$&2+#I&2.&H/6+$;2#/6&2"+&%I?3%>#7./;&.M&H;%/,&#&?#$7>H3#$&.TU+>2&.$&>3#;;&–  F./;%;2+/><&#;;%;2;&2"+&I#%/2#%/+$;&#/6&2+;2+$;X&+/#T3%/,&2"+I&2.&TH%36&2+;2&

>#;+;&#/6&I./%2.$&>"#/,+;&I.$+&+#;%3<&–  j+>#H;+&2"+&$+[H%$+I+/2;X&6+;%,/X&#/6&>.6+&#$+&+N?$+;;+6&%/&2"+&;#I+&Z#<X&%2&%;&

+#;%+$&M.$&<.H&2.&+V#3H#2+&2"+&+e+>2;&.M&?$.?.;+6&>"#/,+;&2.&2"+&$+[H%$+I+/2;&.$&6+;%,/;&

Recommended