Upload
aditya-wijayanto
View
225
Download
0
Embed Size (px)
Citation preview
7/23/2019 Component Based Devvv
http://slidepdf.com/reader/full/component-based-devvv 1/25
!"#!$" &'$'!&'!($) !"&'!'*'+
(,-.,"+"' /$&+#
#+0+),.-+"'
$..)!($'!," !" &,1'2$3+ +"4!"++3!"4
#+/$5$" /,&+
7/23/2019 Component Based Devvv
http://slidepdf.com/reader/full/component-based-devvv 2/25
"#$%#&'&( )*+', -'.'/#%$'&(
"# $%&'()*+&,(%-
"#&0'%( #1 2'34+' 5+ &#( * 2*2' %6'&#$'&#& 5& 0#2' '&75&''25&7 82*&06'+9 )4( (6'
+*$' 0#&0'%( 5& +#1(:*2' '&75&''25&7 0#&(';( 6*+ 8''& 5&(2#,40', 5& '*2/< ,*<+ #1
0#$%4(5&7 84( 5(+ *%%2#*06 :*+ *, 6#09 )4( (6' 5&(2#,40(5#& #1 #8='0( #25'&(',
%2#72*$$5&7 :5(6 +#$' *,.*&0'$'&( ';%/#2'+ $': *2'*+ #1 +#1(:*2' '&75&''25&79
>#,*< 0#$%/';? 6576 @4*/5(< +#1(:*2' +<+('$+ *2' 845/( '11505'&(/< 4+5&7 0#$%#&'&(
8*+', *%%2#*06 5& * +6#2( %'25#, #1 (5$'9 )4( * &4$8'2 #1 @4'+(5#&+ *25+' *8#4( (6'
1'*+585/5(< #1 (6' 0#$%#&'&( *%%2#*069 )4( (6' 0#&0'%( #1 ")- +400'++14//< *&+:'2+
(6' *25+5&7 @4'+(5#&+9 >6' 5$%#2(*&0' #1 "#$%#&'&( )*+', ,'.'/#%$'&( /5'+ 5& 5(+
'11505'&0<9 A( (*B'+ #&/< * 1': $5&4('+ (# *++'$8/' (6' +('2'# +<+('$ 8'0*4+' (6'
0#$%#&'&(+ *2' ,'+57&', (# 8' 5&('72*(', :5(6 '*+'9 C/(6#476 +#1(:*2' 5+
0#&+5,'2*8/< $#2' 0#$%/';? 5( 1#//#:+ (6*( 0#$%#&'&(38*+', +<+('$+ *2' '*+5'2 (#
*++'$8/' *&, (6'2'1#2' /'++ 0#+(/< (# 845/, (6*& +<+('$+ 0#&+(240(', 12#$ ,5+02'('
%*2(+9 A& *,,5(5#&? ")DE '&0#42*7'+ (6' 4+' #1 %2',50(*8/' *2065('0(42*/ %*(('2&+ *&,
+(*&,*2, +#1(:*2' 5&12*+(240(42'? (6'2'8< /'*,5&7 (# * 6576'23@4*/5(< 2'+4/(9
.# /,0&('1 (2 3(45(%6%& 7806) 96:6;(546%&
>6' 5,'* (6*( +#1(:*2' +6#4/, 8' 0#$%#&'&(5F', 3 845/( 12#$ %2'1*8250*(',
0#$%#&'&(+ 3 152+( 8'0*$' %2#$5&'&( :5(6 -#47/*+ G0A/2#<H+ *,,2'++ *( (6' IC>J
0#&1'2'&0' #& +#1(:*2' '&75&''25&7 5& K*2$5+06? K'2$*&<? LMNO? (5(/', G*++
P2#,40', D#1(:*2' "#$%#&'&(+9 >6' 0#&1'2'&0' +'( #4( (# 0#4&('2 (6' +#30*//',
+#1(:*2' 025+5+9 G0A/2#<H+ +48+'@4'&( 5&0/4+5#& #1 %5%'+ *&, 15/('2+ 5&(# (6' Q&5;
#%'2*(5&7 +<+('$ :*+ (6' 152+( 5$%/'$'&(*(5#& #1 *& 5&12*+(240(42' 1#2 (65+ 5,'*9 )2*,
"#; #1 D('%+(#&' /*27'/< ,'15&', (6' $#,'2& 0#&0'%( #1 * +#1(:*2' 0#$%#&'&(9 R'
0*//', (6'$ D#1(:*2' A"+ *&, +'( #4( (# 02'*(' *& 5&12*+(240(42' *&, $*2B'( 1#2
(6'+' 0#$%#&'&(+ 8< 5&.'&(5&7 (6' J8='0(5.'3" %2#72*$$5&7 /*&74*7'9 A)G /', (6'
%*(6 :5(6 (6'52 D<+('$ J8='0( G#,'/ SDJGT 5& (6' '*2/< LMMU+9 D#$' 0/*5$ (6*(G502#+#1( %*.', (6' :*< 1#2 *0(4*/ ,'%/#<$'&( #1 0#$%#&'&( +#1(:*2' :5(6 JVE
*&, "JG9 C+ #1 WULU $*&< +400'++14/ +#1(:*2' 0#$%#&'&( $#,'/+ ';5+(9
<# 962,%,&,(% (2 3(45(%6%& 7806) =(2&>8'6 ?%@,%66',%@-
!"#$"%&%'()*+&, +".'/*0& &%12%&&02%1 S")DET 5+ * %2#0'++ (6*( '$%6*+5F'+ (6'
,'+57& *&, 0#&+(240(5#& #1 0#$%4('238*+', +<+('$+ 4+5&7 2'4+*8/' +#1(:*2'
“components.” Clements [CLE95] describes CBSE in the following way: CBSE is
changing the way large software systems are developed. CBSE embodies the “buy,
7/23/2019 Component Based Devvv
http://slidepdf.com/reader/full/component-based-devvv 3/25
don’t build” philosophy espoused by Fred Brooks and others. In the same way that
'*2/< +482#4(5&'+ /58'2*(', (6' %2#72*$$'2 12#$ (65&B5&7 *8#4( ,'(*5/+? ")DE +651(+
(6' '$%6*+5+ 12#$ %2#72*$$5&7 +#1(:*2' (# 0#$%#+5&7 +#1(:*2' +<+('$+9
A$%/'$'&(*(5#& 6*+ 75.'& :*< (# 5&('72*(5#& *+ (6' 1#04+9 C( 5(+ 1#4&,*(5#& 5+ (6'
*++4$%(5#& (6*( (6'2' 5+ +411505'&( 0#$$#&*/5(< 5& $*&< /*27' +#1(:*2' +<+('$+ (# =4+(51< ,'.'/#%5&7 2'4+*8/' 0#$%#&'&(+ (# ';%/#5( *&, +*(5+1< (6*( 0#$$#&*/5(<9
"#$%#&'&(38*+', +#1(:*2' ,'.'/#%$'&( *%%2#*06 5+ 8*+', #& (6' 5,'* (# ,'.'/#%
+#1(:*2' +<+('$+ 8< +'/'0(5&7 *%%2#%25*(' #113(6'3+6'/1 0#$%#&'&(+ *&, (6'& (#
*++'$8/' (6'$ :5(6 * :'//3,'15&', +#1(:*2' *2065('0(42'9
3(45(%6%&AB806) 0(2&>8'6 6%@,%66',%@ C37=?D 5+ * 82*&06 #1 +#1(:*2' '&75&''25&7
:6506 '$%6*+5F'+ (6' +'%*2*(5#& #1 0#&0'2&+ 5& 2'+%'0( #1 (6' :5,'32*&75&7
14&0(5#&*/5(< *.*5/*8/' (62#476#4( * 75.'& +#1(:*2' +<+('$9 >65+ %2*0(50' *5$+ (#
825&7 *8#4( *& '@4*//< :5,'32*&75&7 ,'72'' #1 8'&'15(+ 5& 8#(6 (6' +6#2(3('2$ *&,(6' /#&73('2$ 1#2 (6' +#1(:*2' 5(+'/1 *&, 1#2 #27*&5F*(5#&+ (6*( +%#&+#2 +406
+#1(:*2'9
D#1(:*2' '&75&''2+ 2'7*2, 0#$%#&'&(+ *+ %*2( #1 (6' +(*2(5&7 %/*(1#2$ 1#2 +'2.50'3
#25'&(*(5#&9 "#$%#&'&(+ %/*< (65+ 2#/'? 1#2 ';*$%/'? 5& X'8 D'2.50'+? *&, $#2'
2'0'&(/<? 5& D'2.50'3J25'&(', C2065('0(42' SDJCT 3 :6'2'8< * 0#$%#&'&( 5+ 0#&.'2(',
5&(# * +&0324& *&, +48+'@4'&(/< 5&6'25(+ 142(6'2 06*2*0('25+(50+ 8'<#&, (6*( #1 *&
#2,5&*2< 0#$%#&'&(9
"#$%#&'&(+ 0*& %2#,40' '.'&(+ #2 0#&+4$' '.'&(+ *&, 0*& 8' 4+', 1#2 '.'&(
,25.'& *2065('0(42' SE-CT9
E# FBG6+&,:60 (2 3(45(%6%& 7806) =(2&>8'6 ?%@,%66',%@-
>6' $*5& #8='0(5.'+ #1 0#$%#&'&( 8*+', +#1(:*2' '&75&''25&7 *2' 75.'& 8'/#:9
*T Y',40(5#& #1 0#+( *&, (5$' 1#2 845/,5&7 /*27' *&, 0#$%/50*(', +<+('$+Z $*5&
#8='0(5.' #1 "#$%#&'&( 8*+', *%%2#*06 5+ (# 845/, 0#$%/50*(', +#1(:*2'
+<+('$+ 4+5&7 #11 (6' +6'/1 0#$%#&'&( +# (6*( (6' (5$' (# 845/, (6' +#1(:*2'
,5$5&5+6 ,2*+(50*//<9 >6' 0#+( '11'0(5.'&'++ #1 (6' 0422'&( $'(6#, 0*& 8'
*&*/<+', 4+5&7 14&0(5#& %#5&( #2 #(6'2 $'(6#,+9
8T A$%2#.5&7 (6' @4*/5(< #1 (6' +#1(:*2'Z >6' @4*/5(< #1 (6' +#1(:*2' 0*& 8'
5$%2#.', 8< 5$%2#.5&7 (6' @4*/5(< #1 (6' 0#$%#&'&(9 >6#476 (6' 0#&0'%( 5+ &#(
(24' 5& 7'&'2*/9 D#$'(5$'+ @4*/5(< #1 (6' *++'$8/', +<+('$+ $*< &#( 8' ,52'0(/<
2'/*(', (# @4*/5(< #1 (6' 0#$%#&'&( 5& +'&+' (6*( 5$%2#.5&7 (6' @4*/5(< #1 (6'
0#$%#&'&( ,#'+ &#( &'0'++*25/< 5$%/< (6' 5$%2#.'$'&( #1 (6' +<+('$+9
7/23/2019 Component Based Devvv
http://slidepdf.com/reader/full/component-based-devvv 4/25
0T -'('0(5#& #1 ,'1'0( :5(65& (6' +<+('$+Z "#$%#&'&( *%%2#*06 6'/%+ (6' +<+('$
(# 15&, 5(+ ,'1'0( 2'*,5/< 8< ('+(5&7 (6' 0#$%#&'&(+9 )4( (6' +#420' #1 ,'1'0(+ 5+
,511504/( (# 15&, 5& 0*+' #1 0#$%#&'&( ,'.'/#%$'&( *%%2#*069
H#
?I845;60 (2 3(45(%6%& 7806) J55'(8+K-
># +(*2( :5(6? /'( 4+ 75.' *& ';*$%/' #1 +5$%/' +('2'# +<+('$+ :6506 0#&+5+(+ #1
:##1'2? +483:##1'2? +#4&, 8#; '(09 51 +#$'#&' :*&(+ (# 845/, (6' +('2'# +<+('$+ 8<
*++'$8/5&7 (6' #11 (6' +6'/1 0#$%#&'&(+ /5B' +#4&, 8#; '(0 (6'& 6' $576( 8'
';%'25'&05&7 +#$' *,.*&(*7' (6*& (6#+' :6# 845/, (6' +<+('$ 12#$ (6' 8*+50
052045(9 A&31*0(? &#: * ,*<? *// (6' +5$%/' *&, 0#$%/50*(', +<+('$+ *2' 845/( 4+5&7 (6'
0#$%#&'&( *%%2#*06 :6'2' +#$' 0#$%#&'&(+ *2' */2'*,< ,'.'/#%', 8< +#$'
,'.'/#%'2 *&, (6'< *2' +(#2', 5& (6' /582*2< 1#2 (6'52 2'34+'9 >6' $*5& 0#&0'%( 5+ (6*(
(6#+' #11 (6' +6'/1 0#$%#&'&(+ &'', &#( 8' 06*&7', 1#2 (6'52 2'+%'0(5.' %42%#+'+9 A1:' :*&( $#,51< +#$' #1 (6' 0#$%#&'&(+ (# 15( *00#2,5&7 (# (6'52 *%%/50*85/5(<? :'
&'', (# 2'845/, 5( *&, +(#2' (6'$ 5& (6' /582*2<9
E;*$%/' #1 +#$' 0#$%/'; +<+('$? :6'2' '*06 0#$%#&'&(+ 5(+'/1 0*& 8' .5':', *+ *
+<+('$? 5+ I*.*/ "#$8*( +<+('$9 >6' +<+('$ 0#&+5+(+ #1 +#$' 2*,*2 1#2 ,'('0(5#&?
R'/50#%('2? +48$*25&'? Y#0B'( V*4&06'2? +#$' 1576('2 %/*&' '(09 E*06 0#$%#&'&(
6'2' 5+ +#$' 857 +<+('$+ *&, *++#05*(5#& 5+ */+# .'2< 0#$%/50*(', 5& +406 0*+'+9
L# =(2&>8'6 3(45(%6%&0-
A& $#+( '&75&''25&7 ,5+05%/5&'+? +<+('$+ *2' ,'+57&', 8< 0#$%#+5&7 ';5+(5&7
0#$%#&'&(+ (6*( 6*.' 8''& 4+', 5& #(6'2 +<+('$+9 D#1(:*2' '&75&''25&7 6*+ 8''&
$#2' 1#04+', #& #2575&*/ ,'.'/#%$'&( 84( 5( 5+ &#: 2'0#7&5+', (6*( (# *065'.'
8'(('2 +#1(:*2'? $#2' @450B/< *&, *( /#:'2 0#+(? :' &'', (# *,#%( * ,'+57& %2#0'++
(6*( 5+ 8*+', #& systematic “ reuse” !
D#? (<%50*//<? 0#$%#&'&(+ *2' 2*(6'2 +$*// 84( 5&,'%'&,'&( %*2(+ #1 * +<+('$9 )4( *
/*27' +<+('$ *+ * :6#/' 0*& 8' +''& *+ * 0#$%#&'&( *+ :'//9 A( 5+ 5$%#2(*&( (#
2'0#7&5F' 0#$%#&'&(+ *2' 24&(5$' '&(5(5'+9 >6'< ';5+( :65/' (6' +<+('$ 5+ 24&&5&7? 5&
1*0(Z (6' +<+('$ 0#&+5+(+ #1 0#$%#&'&(+? *&, 5+ * 0#$%#&'&( 5(+'/19 "#$%#&'&(+ *2'
&#( =4+( ,'+57& '&(5(5'+ /5B' 0/*++'+ 5& #8='0(3#25'&(*(5#& *2'9 C+ +*5, '*2/5'2? *( 65+
$#$'&( '.'2<8#,< 5+ 2*.5&7 *8#4( 0#$%#&'&(+? *&, +''$+ (# ';%'0( * /#( 12#$ 5(9
X6*( 5+ ';%'0(', 1#2$ 0#$%#&'&(+? *&, :6< 5+ '.'2<8#,< (6*( '&(64+5*+([ >6'
';%'0(', *,.*&(*7'+ (# 8' ,'25.', 12#$ (6' *%%/50*(5#& #1 0#$%#&'&(+ *2'
+4$$*25F', 5& /*('2 +'0(5#&+ #1 (65+ 2'%#2(9
"#$%#&'&(+ %2#.5,' * +'2.50' :5(6#4( 2'7*2, (# :6'2' (6' 0#$%#&'&( 5+ ';'04(5&7
#2 5(+ %2#72*$$5&7 /*&74*7'9 C 0#$%#&'&( 5+ *& 5&,'%'&,'&( ';'04(*8/' '&(5(< (6*(
0*& 8' $*,' 4% #1 #&' #2 $#2' ';'04(*8/' #8='0(+9 >6' 0#$%#&'&( 5&('21*0' 5+
7/23/2019 Component Based Devvv
http://slidepdf.com/reader/full/component-based-devvv 5/25
%48/5+6', *&, *// 5&('2*0(5#&+ *2' (62#476 (6' %48/5+6', 5&('21*0'9 "#$%#&'&(+ 0*&
2*&7' 5& +5F' 12#$ +5$%/' 14&0(5#&+ (# '&(52' *%%/50*(5#& +<+('$+
\9 ?%@,%66',%@ (2 3(45(%6%& 7806) =10&640Z
J& (6' +421*0'? ")DE +''$+ @45(' +5$5/*2 (# 0#&.'&(5#&*/ #2 #8='0(3#25'&(',+#1(:*2' '&75&''25&79 >6' %2#0'++ 8'75&+ :6'& * +#1(:*2' ('*$ '+(*8/5+6'+
2'@452'$'&(+ 1#2 (6' +<+('$ (# 8' 845/( 4+5&7 0#&.'&(5#&*/ 2'@452'$'&(+ '/505(*(5#&
('06&5@4'+9 C& *2065('0(42*/ ,'+57& 5+ '+(*8/5+6',? 84( 2*(6'2 (6*& $#.5&7
5$$',5*('/< 5&(# $#2' ,'(*5/', ,'+57& (*+B+? (6' ('*$ ';*$5&'+ 2'@452'$'&(+ (#
,'('2$5&' :6*( +48+'( 5+ ,52'0(/< *$'&*8/' (# 4"#$"+2'2"%5 2*(6'2 (6*&
0#&+(240(5#&9 >6*( 5+? (6' ('*$ *+B+ (6' 1#//#:5&7 @4'+(5#&+ 1#2 '*06 +<+('$
2'@452'$'&(Z
C2' 0#$$'205*/ #11 (6' +6'/1 0#$%#&'&(+ *.*5/*8/' (# 5$%/'$'&( (6'
2'@452'$'&([
C2' 5&('2&*//< 2'4+*8/' 0#$%#&'&(+ *.*5/*8/' (# 5$%/'$'&( (6' 2'@452'$'&([
C2' (6' 5&('21*0'+ #1 (6' *.*5/*8/' 0#$%#&'&(+ 0#$%*(58/' :5(6 (6'
*2065('0(42' #1 (6' +<+('$ (# 8' 845/([
>6' ('*$ *(('$%(+ (# $#,51< #2 2'$#.' (6#+' +<+('$ 2'@452'$'&(+ (6*( 0*&&#( 8'
5$%/'$'&(', :5(6 "J>D #2 5&36#4+' 0#$%#&'&(+9L A1 (6' 2'@452'$'&(S+T 0*&&#( 8'
06*&7', #2 ,'/'(',? 0#&.'&(5#&*/ #2 #8='0(3#25'&(', +#1(:*2' '&75&''25&7 $'(6#,+
*2' *%%/5', (# ,'.'/#% (6#+' &': 0#$%#&'&(+ (6*( $4+( 8' '&75&''2', (# $''( (6'
2'@452'$'&(S+T9 )4( 1#2 (6#+' 2'@452'$'&(+ (6*( *2' *,,2'++', :5(6 *.*5/*8/'
0#$%#&'&(+? * ,511'2'&( +'( #1 +#1(:*2' '&75&''25&7 *0(5.5(5'+ 0#$$'&0'+Z
"#$%#&'&( ]4*/5150*(5#&? "#$%#&'&( C,*%(*(5#&? "#$%#&'&( "#$%#+5(5#& *&,
"#$%#&'&( Q%,*('9 I#: /'( 4+ 1#04+ #& 1': 8*+50 ,'15&5(5#& 2'7*2,5&7 +#1(:*2'
0#$%#&'&(+9
!"#$"%&%' —A( 5+ * &#&(25.5*/? &'*2/< 5&,'%'&,'&(? *&, 2'%/*0'*8/' %*2( #1 * +<+('$
(6*( 14/15//+ * 0/'*2 14&0(5#& 5& (6' 0#&(';( #1 * :'//3,'15&', *2065('0(42'9
67%('2#& +".'/*0& 4"#$"%&%' —A( 5+ * ,<&*$50 85&,*8/' %*0B*7' #1 #&' #2 $#2'
%2#72*$+ $*&*7', *+ * 4&5( *&, *00'++', (62#476 ,#04$'&(', 5&('21*0'+ (6*( 0*&
8' ,5+0#.'2', 5& 24& (5$'9
8".'/*0& 4"#$"%&%' —A( 5+ * 4&5( #1 0#$%#+5(5#& :5(6 0#&(2*0(4*//< +%'0515', *&,
';%/505( 0#&(';( ,'%'&,'&05'+ #&/<9
• 97+2%&++ 4"#$"%&%' —A( 5+ (6' +#1(:*2' 5mplementation of an “autonomous”
84+5&'++ 0#&0'%( #2 84+5&'++ %2#0'++9
A& *,,5(5#& (# (6'+' ,'+025%(5#&+? +#1(:*2' 0#$%#&'&(+ 0*& */+# 8' 06*2*0('25F',
8*+', #& (6'52 4+' 5& (6' ")DE %2#0'++9 A& *,,5(5#& (# "J>D 0#$%#&'&(+? (6' ")DE
%2#0'++ <5'/,+Z
:7*;2.2&, 4"#$"%&%'+—*++'++', 8< +#1(:*2' '&75&''2+ (# '&+42' (6*( &#( #&/<
14&0(5#&*/5(<? 84( %'21#2$*&0'? 2'/5*85/5(<? 4+*85/5(<? *&, #(6'2 @4*/5(< 1*0(#2+S"6*%('2 LMT 0#&1#2$ (# (6' 2'@452'$'&(+ #1 (6' +<+('$ #2 %2#,40( (# 8' 845/(9
7/23/2019 Component Based Devvv
http://slidepdf.com/reader/full/component-based-devvv 6/25
• <,*$'&, 4"#$"%&%'+—*,*%(', (# $#,51< S*/+# 0*//', #*+= #2 /0*$T ^)YJMN_
4&:*&(', #2 4&,'+52*8/' 06*2*0('25+(50+9
• <++&#);&, 4"#$"%&%'+—5&('72*(', 5&(# *& *2065('0(42*/ +(</' *&, 5&('20#&&'0(',
:5(6 *& *%%2#%25*(' 5&12*+(240(42' (6*( *//#:+ (6' 0#$%#&'&(+ (# 8' 0##2,5&*(',
*&, $*&*7', '11'0(5.'/<9• >$,*'&, 4"#$"%&%'+—2'%/*05&7 ';5+(5&7 +#1(:*2' *+ &': .'2+5#&+ #1 0#$%#&'&(+
8'0#$' *.*5/*8/'9
M# 3(45(%6%& 7806) =(2&>8'6 ?%@,%66',%@ N'(+60060-
A “component3based development model” (Figure LT :*+ 4+', (# 5//4+(2*(' 6#: *
/582*2< #1 reusable “candidate components” can be integrated into a typical
'.#/4(5#&*2< %2#0'++ $#,'/9 >6' ")DE %2#0'++? 6#:'.'2? $4+( 8' 06*2*0('25F', 5& *
$*&&'2 (6*( &#( #&/< 5,'&(515'+ 0*&,5,*(' 0#$%#&'&(+ 84( */+# @4*/515'+ '*06
component’s interface, adapts co$%#&'&(+ (# 2'$#.' *2065('0(42*/ $5+$*(06'+?*++'$8/'+ 0#$%#&'&(+ 5&(# * +'/'0(', *2065('0(42*/ +(</'? *&, 4%,*('+ 0#$%#&'&(+
*+ 2'@452'$'&(+ 1#2 (6' +<+('$ 06*&7'9
`5742'Z L
7/23/2019 Component Based Devvv
http://slidepdf.com/reader/full/component-based-devvv 7/25
>6' %2#0'++ $#,'/ 1#2 0#$%#&'&(38*+', +#1(:*2' '&75&''25&7 '$%6*+5F'+ %*2*//'/
(2*0B+ 5& :6506 ,#$*5& '&75&''25&7 #0042+ 0#&0422'&(/< :5(6 0#$%#&'&(38*+',
,'.'/#%$'&(9 ?"#*2% &%12%&&02%1 %'21#2$+ (6' :#2B 2'@452', (# '+(*8/5+6 * +'( #1
+#1(:*2' 0#$%#&'&(+ (6*( 0*& 8' 2'4+', 8< (6' +#1(:*2' '&75&''29 >6'+'
components are then transported across a “boundary” that separates domain'&75&''25&7 12#$ 0#$%#&'&(38*+', ,'.'/#%$'&(9 `5742' L 5//4+(2*('+ * (<%50*/
%2#0'++ $#,'/ (6*( ';%/505(/< *00#$$#,*('+ ")DE9 -#$*5& '&75&''25&7 02'*('+ *
$#,'/ #1 (6' *%%/50*(5#& ,#$*5& (6*( 5+ 4+', *+ * 8*+5+ 1#2 *&*/<F5&7 4+'2
2'@452'$'&(+ 5& (6' +#1(:*2' '&75&''25&7 1/#:9 K'&'250 +#1(:*2' *2065('0(42'
%2#.5,'+ 5&%4( 1#2 (6' ,'+57& #1 (6' *%%/50*(5#&9 `5&*//<? *1('2 2'4+*8/' 0#$%#&'&(+
6*.' 8''& %4206*+',? +'/'0(', 12#$ ';5+(5&7 /582*25'+? #2 0#&+(240(', S*+ %*2( #1
,#$*5& '&75&''25&7T? (6'< *2' $*,' *.*5/*8/' (# +#1(:*2' '&75&''2+ ,425&7
0#$%#&'&(38*+', ,'.'/#%$'&(9
O# 9(48,% ?%@,%66',%@-
-#$*5& '&75&''25&7 5&0/4,'+ (62'' $*=#2 *0(5.5(5'+—*&*/<+5+? 0#&+(240(5#&? *&,
,5++'$5&*(5#&9 -#$*5& 0#&+(240(5#& *&, ,5++'$5&*(5#& *2' 0#&+5,'2', 5& /*('2
sections in this chapter. It can be argued that “reuse will disappear, not by
elimination, but by integration” into the fabric of softw*2' '&75&''25&7 %2*0(50' 9 C+
72'*('2 '$%6*+5+ 5+ %/*0', #& 2'4+'? +#$' 8'/5'.' (6*( ,#$*5& '&75&''25&7 :5//
8'0#$' *+ 5$%#2(*&( *+ +#1(:*2' '&75&''25&7 #.'2 (6' &';( ,'0*,'9 C00#2,5&7 (# P*4/
"/'$'&(+ -#$*5& E&75&''25&7 5+ *8#4( 15&,5&7 0#$$#&*/5(5'+ *$#&7 +<+('$ (#
5,'&(51< 0#$%#&'&(+ (6*( 0*& 8' *%%/5', (# $*&< +<+('$+ *&, (# 5,'&(51< %2#72*$
1*$5/5'+ (6*( *2' %#+5(5#&', (# (*B' 14//'+( *,.*&(*7' #1 (6#+' 0#$%#&'&(+9
O#" 9(48,% J%8;10,0 N'(+600 C9JND-
>6' +('%+ 5& (6' %2#0'++ *2'Z
L9
-'15&' (6' ,#$*5& (# 8' 5&.'+(57*(',W9 "*('7#25F' (6' 5('$+ ';(2*0(', 12#$ (6' ,#$*5&
a9 "#//'0( * 2'%2'+'&(*(5.' +*$%/' 12#$ (6' *%%/50*(5#&
b9 C&*/<F' '*06 *%%/50*(5#& 5& (6' +*$%/'
c9 -'.'/#% *& *&*/<+5+ $#,'/ 1#2 (6' #8='0(+
A( 5+ 5$%#2(*&( (# &#(' (6*( ,#$*5& *&*/<+5+ 5+ *%%/50*8/' (# *&< +#1(:*2' '&75&''25&7
%*2*,57$ *&, $*< 8' *%%/5', 1#2 0#&.'&(5#&*/ *+ :'// *+ #8='0(3#25'&(',
,'.'/#%$'&(9 P25'(# -5*F +477'+(', *& '576(3+('% *%%2#*06 (# (6' 5,'&(5150*(5#& #1 (6'
2'4+*8/' 0#$%#&'&(+
L9
D'/'0( +%'05150 14&0(5#&+ #2 (6' #8='0(+
W9 C8+(2*0( 14&0(5#&+ #2 #8='0(
7/23/2019 Component Based Devvv
http://slidepdf.com/reader/full/component-based-devvv 8/25
a9 -'15&' * (*;#&#$<
b9 A,'&(51< 0#$$#& 1'*(42'+
c9 A,'&(51< +%'05150 2'/*(5#&+65%
N9 C8+(2*0( (6' 2'/*(5#&+65%
\9
-'25.' * 14&0(5#&*/ $#,'/O9 -'15&' * ,#$*5& /*&74*7'
C/(6#476 (6' +('%+ =4+( &#(', %2#.5,' * 4+'14/ $#,'/ 1#2 ,#$*5& *&*/<+5+? (6'<
%2#.5,' &# 745,*&0' 1#2 ,'05,5&7 :6506 +#1(:*2' 0#$%#&'&(+ *2' 0*&,5,*('+ 1#2
2'4+'9 R4(065&+#& *&, R5&,/'< +477'+( (6' 1#//#:5&7 +'( #1 %2*7$*(50 @4'+(5#&+ *+ *
745,' 1#2 5,'&(51<5&7 2'4+*8/' +#1(:*2' 0#$%#&'&(+Z
•Is component functionality required on future imp/'$'&(*(5#&+[
• How common is the component's function within the domain?
• Is there duplication of the component's function within the domain?
• Is the component hardware dependent? • Does the hardware remain unchanged between implementations?
• Can the 6*2,:*2' +%'05150+ 8' 2'$#.', (# *&#(6'2 0#$%#&'&([
• Is the design optimized enough for the next implementation?
• Can we parameterize a nonreusable component so that it becomes reusable?
• Is the component reusable in many 5$%/'$'&(*(5#&+ :5(6 #&/< $5 06*&7'+[
• Is reuse through modification feasible?
• Can a nonreusable component be decomposed to yield reusable components?
• How valid is component decomposition for reuse?
O#. 3K8'8+&6',P8&,(% (2 Q*%+&,(%0-
A( 5+ +#$'(5$'+ ,511504/( (# ,'('2$5&' :6'(6'2 * %#('&(5*//< 2'4+*8/' 0#$%#&'&( 5+ 5&
1*0( *%%/50*8/' 5& * %*2(504/*2 +5(4*(5#&9 ># $*B' (65+ ,'('2$5&*(5#&? 5( 5+ &'0'++*2< (#
,'15&' * +'( #1 ,#$*5& 06*2*0('25+(50+ (6*( *2' +6*2', 8< *// +#1(:*2' :5(65& *
,#$*5&9 C ,#$*5& 06*2*0('25+(50 ,'15&'+ +#$' 7'&'250 *((2584(' #1 *// %2#,40(+ (6*(
';5+( :5(65& (6' ,#$*5&9 `#2 ';*$%/'? 7'&'250 06*2*0('25+(50+ $576( 5&0/4,' (6'
5$%#2(*&0' #1 +*1'(<d2'/5*85/5(<? %2#72*$$5&7 /*&74*7'? 0#&0422'&0< 5& %2#0'++5&7?
*&, $*&< #(6'2+9
C +'( #1 ,#$*5& 06*2*0('25+(50+ 1#2 * 2'4+*8/' 0#$%#&'&( 0*& 8' 2'%2'+'&(', 8< e-%f
:6'2' '*06 5('$ 5& (6' +'( 6*+ +#$' +%'05150 ,#$*5& 06*2*0('25+(50+ &*$'/< -%5
X6'& &': +#1(:*2'? / ? 5+ (# 8' 845/( :5(65& (6' *%%/50*(5#& ,#$*5&? * +'( #1 ,#$*5&
06*2*0('25+(50+ 5+ ,'25.', 1#2 5(9 C 0#$%*25+#& 5+ (6'& $*,' 8'(:''& ?$2 *&, ?/2 (#
,'('2$5&' :6'(6'2 (6' ';5+(5&7 0#$%#&'&( $ 0*& 8' '11'0(5.'/< 2'4+', 5& *%%/50*(5#&
/@
E.'& :6'& +#1(:*2' (# 8' '&75&''2', 0/'*2/< ';5+(+ :5(65& *& *%%/50*(5#& ,#$*5&?
(6' 2'4+*8/' 0#$%#&'&(+ :5(65& (6*( ,#$*5& $4+( 8' *&*/<F', (# ,'('2$5&' (6'52
applicability. In some cases (ideally, a limited number), “reinventing the wheel” may
+(5// 8' (6' $#+( 0#+(3'11'0(5.' 06#50'9
7/23/2019 Component Based Devvv
http://slidepdf.com/reader/full/component-based-devvv 9/25
O#< =&'*+&*'6 R()6;;,%@ 8%) =&'*+&*'6 N(,%&0-
8'074'70*; #",&;2%1 5+ * %*(('2&38*+', ,#$*5& '&75&''25&7 *%%2#*06 (6*( :#2B+
4&,'2 (6' *++4$%(5#& (6*( '.'2< *%%/50*(5#& ,#$*5& 6*+ 2'%'*(5&7 %*(('2&+ S#1
14&0(5#&? ,*(*? *&, 8'6*.5#42T (6*( 6*.' 2'4+' %#('&(5*/9 C00#2,5&7 (# P#//*2 *&,
Y5++$*& +(240(42*/ $#,'/+ 0#&+5+( #1 * +$*// &4$8'2 #1 +(240(42*/ '/'$'&(+$*&51'+(5&7 0/'*2 %*(('2&+ #1 5&('2*0(5#&9 >6' *2065('0(42'+ #1 +<+('$+ 4+5&7
+(240(42*/ $#,'/+ *2' 06*2*0('25F', 8< $4/(5%/' '&+'$8/'+ (6*( *2' 0#$%#+', 12#$
(6'+' $#,'/ '/'$'&(+9 G*&< *2065('0(42*/ 4&5(+ '$'27' 12#$ +5$%/' %*(('2&+ #1
interaction among this small number of elements”. D(240(42' P#5&( 5+ * ,5+(5&0(
0#&+(240( :5(65& * +(240(42' $#,'/9
G0G*6#& ^G"GMc_ ,'+0258'+ * +'074'70& $"2%' as “a distinct construct within a
structural model.” Structure points have three d 5+(5&0( 06*2*0('25+(50+Z
"# C +(240(42' %#5&( 5+ *& *8+(2*0(5#& (6*( +6#4/, 6*.' * /5$5(', &4$8'2 #1 5&+(*&0'+9Y'+(*(5&7 (65+ 5& #8='0(3#25'&(', =*27#& S"6*%('2 WUT? (6' +5F' #1 (6' 0/*++ 65'2*206<
+6#4/, 8' +$*//9 A& *,,5(5#&? (6' *8+(2*0(5#& +6#4/, 2'042 (62#476#4( *%%/50*(5#&+ 5&
(6' ,#$*5&9 J(6'2:5+'? (6' 0#+( (# .'251<? ,#04$'&(? *&, ,5++'$5&*(' (6' +(240(42'
%#5&( 0*&&#( 8' =4+(515',9
.# >6' 24/'+ (6*( 7#.'2& (6' 4+' #1 (6' +(240(42' %#5&( +6#4/, 8' '*+5/< 4&,'2+(##,9
A& *,,5(5#&? (6' 5&('21*0' (# (6' +(240(42' %#5&( +6#4/, 8' 2'/*(5.'/< +5$%/'9
<# >6' +(240(42' %#5&( +6#4/, 5$%/'$'&( 5&1#2$*(5#& 65,5&7 8< 5+#/*(5&7 *//
0#$%/';5(< 0#&(*5&', :5(65& (6' +(240(42' %#5&( 5(+'/19 >65+ 2',40'+ (6' %'20'5.',
0#$%/';5(< #1 (6' #.'2*// +<+('$93K8'8+&6',P8&,(% (2 =&'*+&*'6 5(,%&0-
L9 A( +6#4/, 6*.' * /5$5(', &4$8'2 #1 5&+(*&0'+
W9 A&('21*0' #1 (6' +(240(42' %#5&(+ +6#4/, 8' 2'/*(5.'/< +5$%/'
a9 D(240(42' %#5&( +6#4/, 5$%/'$'&( 5&1#2$*(5#& 65,5&7 8< 5+#/*(5&7 *//
0#$%/';5(< 0#&(*5&', :5(65& (6' +(240(42' %#5&( 5(+'/19
"S# 3(45(%6%& ?%@,%66',%@-
C+ :' &#(', '*2/5'2 5& (65+ 06*%('2? (6' ")DE %2#0'++ '&0#42*7'+ (6' 4+' #1 ';5+(5&7+#1(:*2' 0#$%#&'&(+9 R#:'.'2? (6'2' *2' (5$'+ :6'& 0#$%#&'&(+ $4+( 8'
'&75&''2',9 >6*( 5+? &': +#1(:*2' 0#$%#&'&(+ $4+( 8' ,'.'/#%', *&, 5&('72*(',
:5(6 ';5+(5&7 "J>D *&, 5&36#4+' 0#$%#&'&(+9 )'0*4+' (6'+' &': 0#$%#&'&(+
8'0#$' $'$8'2+ #1 (6' 5&36#4+' /582*2< #1 2'4+*8/' 0#$%#&'&(+? (6'< +6#4/, 8'
'&75&''2', 1#2 2'4+'9 I#(65&7 5+ $*750*/ *8#4( 02'*(5&7 +#1(:*2' 0#$%#&'&(+ (6*(
0*& 8' 2'4+',9 -'+57& 0#&0'%(+ +406 *+ *8+(2*0(5#&? 65,5&7? 14&0(5#&*/
5&,'%'&,'&0'? 2'15&'$'&(? *&, +(240(42', %2#72*$$5&7? */#&7 :5(6 #8='0(3#25'&(',
$'(6#,+? ('+(5&7? D]C? *&, 0#22'0(&'++ .'25150*(5#& $'(6#,+? *// 0#&(2584(' (# (6'
7/23/2019 Component Based Devvv
http://slidepdf.com/reader/full/component-based-devvv 10/25
02'*(5#& #1 +#1(:*2' 0#$%#&'&(+ (6*( *2' 2'4+*8/'9 R'2' :' 0#&+5,'2 (6' 2'4+'3
+%'05150 5++4'+ (6*( *2' 0#$%/'$'&(*2< (# +#/5, +#1(:*2' '&75&''25&7 %2*0(50'+9
""# J%8;10,0 8%) 960,@% 2(' T6*06-
-*(*? 14&0(5#&*/? *&, 8'6*.5#2*/ $#,'/+ S2'%2'+'&(', 5& * .*25'(< #1 ,511'2'&(
&#(*(5#&+T 0*& 8' 02'*(', (# ,'+0258' :6*( * %*2(504/*2 *%%/50*(5#& $4+( *00#$%/5+69
X25(('& +%'05150*(5#&+ *2' (6'& 4+', (# ,'+0258' (6'+' $#,'/+9 C 0#$%/'('
,'+025%(5#& #1 2'@452'$'&(+ 5+ (6' 2'+4/(9 A,'*//<? (6' *&*/<+5+ $#,'/ 5+ *&*/<F', (#
,'('2$5&' (6#+' '/'$'&(+ #1 (6' $#,'/ (6*( %#5&( (# ';5+(5&7 2'4+*8/' 0#$%#&'&(+9
>6' %2#8/'$ 5+ ';(2*0(5&7 5&1#2$*(5#& 12#$ (6' 2'@452'$'&(+ $#,'/ 5& * 1#2$ (6*(
can lead to “specification matching.” Bellinzoni, Gugini, *&, P'2&505 ^)EVMc_ ,'+0258'
#&' *%%2#*06 1#2 #8='0(3#25'&(', +<+('$+Z "#$%#&'&(+ *2' ,'15&', *&, +(#2', *+
+%'05150*(5#&? ,'+57&? *&, 5$%/'$'&(*(5#& 0/*++'+ *( .*25#4+ /'.'/+ #1 *8+(2*0(5#& —
:5(6 '*06 0/*++ 8'5&7 *& '&75&''2', ,'+025%(5#& #1 * %2#,40( 12#$ %2'.5#4+
*%%/50*(5#&+9 >6' +%'05150*(5#& B&#:/',7'—,'.'/#%$'&( B&#:/',7'—5+ +(#2', 5&
(6' 1#2$ #1 2'4+'3+477'+(5#& 0/*++'+? :6506 0#&(*5& ,52'0(5#&+ 1#2 2'(25'.5&7 2'4+*8/'
0#$%#&'&(+ #& (6' 8*+5+ #1 (6'52 ,'+025%(5#& *&, 1#2 0#$%#+5&7 *&, (*5/#25&7 (6'$
*1('2 2'(25'.*/9
C+ :' 6*.' */2'*,< &#(',? -`Y 2'@452'+ (6' +#1(:*2' '&75&''2 (# *%%/< +#/5,
+#1(:*2' ,'+57& 0#&0'%(+ *&, %25&05%/'+9 )4( (6' 06*2*0('25+(50+ #1 (6' *%%/50*(5#&
,#$*5& $4+( */+# 8' 0#&+5,'2',9 )5&,'2 ^)AIMa_ +477'+(+ * &4$8'2 #1 B'< 5++4'+
(6*( 1#2$ * 8*+5+ 1#2 ,'+57& 1#2 2'4+'Z
=&8%)8') )8&8- >6' *%%/50*(5#& ,#$*5& +6#4/, 8' 5&.'+(57*(', *&, +(*&,*2, 7/#8*/
,*(* +(240(42'+ S'979? 15/' +(240(42'+ #2 * 0#$%/'(' ,*(*8*+'T +6#4/, 8' 5,'&(515',9 C//
,'+57& 0#$%#&'&(+ 0*& (6'& 8' 06*2*0('25F', (# $*B' 4+' #1 (6'+' +(*&,*2, ,*(*
+(240(42'+9
=&8%)8') ,%&6'28+6 5'(&(+(;0- >62'' /'.'/+ #1 5&('21*0' %2#(#0#/ +6#4/, 8'
'+(*8/5+6',Z (6' &*(42' #1 5&(2*3$#,4/*2 5&('21*0'+? (6' ,'+57& #1 ';('2&*/ ('06&50*/
S&#&64$*&T 5&('21*0'+? *&, (6' 64$*&d$*065&' 5&('21*0'9
N'(@'84 &645;8&60- >6' +(240(42' $#,'/ 0*& +'2.' *+ * ('$%/*(' 1#2 (6'
*2065('0(42*/ ,'+57& #1 * &': %2#72*$9
".# =(2&>8'6 U,26+1+;6 N'(+600 R()6;-
V51'0<0/' %2#0'++'+ 5&0/4,' *// *0(5.5(5'+ #1 * %2#,40( #2 * +<+('$ ,425&7 5(+ '&(52' /51'?
12#$ (6' 84+5&'++ 5,'* 1#2 5(+ ,'.'/#%$'&(? (62#476 5(+ 4+*7' *&, 5(+ 0#$%/'(5#& #1
4+'9 -511'2'&( $#,'/+ 6*.' 8''& %2#%#+', *&, ';%/#5( 5& +#1(:*2' '&75&''25&7? *&,
,511'2'&( $#,'/+ 6*.' ';6585( (6'52 S5&T*85/5(5'+ (# '11505'&(/< 7#.'2& *// *0(5.5(5'+
2'@452', 1#2 * +400'++14/ ,'.'/#%$'&( *&, 4+' #1 %2#,40(+9 X' 0*& ,5+(5&745+6 (:#$*5& 72#4%+ #1 $#,'/+Z D'@4'&(5*/ *&, '.#/4(5#&*2<9 >6' +'@4'&(5*/ $#,'/+ ,'15&' *
7/23/2019 Component Based Devvv
http://slidepdf.com/reader/full/component-based-devvv 11/25
+'@4'&0' #1 *0(5.5(5'+ 5& :6506 #&' *0(5.5(< 1#//#: *1('2 * 0#$%/'(5#& #1 (6' %2'.5#4+
#&'9 E.#/4(5#&*2< $#,'/+ *//#: %'21#2$*&0' #1 +'.'2*/ *0(5.5(5'+ 5& %*2*//'/ :5(6#4(
2'@452'$'&(+ #& * +(25&7'&( 0#$%/'(5#& #1 #&' *0(5.5(< (# 8' *8/' (# +(*2( :5(6
*&#(6'2 #&'9 X'// B&#:& ';*$%/' #1 +'@4'&(5*/ $#,'/+ *2' :*('21*// $#,'/? #2 g
$#,'/? *&, #1 '.#/4(5#&*2< $#,'/+? 5('2*(5.' *&, 5&02'$'&(*/ ,'.'/#%$'&(? #2 +%52*/$#,'/9 ")DE *,,2'++'+ 06*//'&7'+ +5$5/*2 (# (6#+' '&0#4&('2', '/+':6'2' 5&
+#1(:*2' '&75&''25&79 G*&< #1 (6' $'(6#,+? (##/+ *&, %25&05%/'+ #1 +#1(:*2'
'&75&''25&7 4+', 5& #(6'2 (<%'+ #1 +<+('$ :5// 8' 4+', 5& (6' +*$' #2 * +5$5/*2 :*< 5&
")DE9 >6'2' 5+ 6#:'.'2 #&' ,511'2'&0'h ")DE +%'05150*//< 1#04+'+ #& @4'+(5#&+
related to components and in that sense it distinguishes the process of “component
development” from that of “system development with components”.
L9 972;,2%1 8A+'&# .0"# !"#$"%&%'+Z >6' $*5& 5,'* #1 (6' 0#$%#&'&(38*+',
*%%2#*06 5+ 845/,5&7 +<+('$+ 12#$ %2'3';5+(5&7 0#$%#&'&(+9 >65+ *++4$%(5#&
6*+ +'.'2*/ 0#&+'@4'&0'+ 1#2 (6' +<+('$ /51'0<0/'9 `52+(? (6' ,'.'/#%$'&(%2#0'++'+ #1 0#$%#&'&(38*+', +<+('$+ *2' +'%*2*(', 12#$ ,'.'/#%$'&(
%2#0'++'+ #1 (6' 0#$%#&'&(+h (6' 0#$%#&'&(+ +6#4/, */2'*,< 8''&
,'.'/#%', *&, %#++58/< 4+', 5& #(6'2 %2#,40(+ :6'& (6' +<+('$
,'.'/#%$'&( %2#0'++ +(*2(+9 D'0#&,? * &': +'%*2*(' %2#0'++ :5// *%%'*2Z
`5&,5&7 *&, '.*/4*(5&7 (6' 0#$%#&'&(+9 >652,? (6' *0(5.5(5'+ 5& (6' %2#0'++'+
:5// 8' ,511'2'&( 12#$ (6' *0(5.5(5'+ 5& &#&30#$%#&'&(3 8*+', *%%2#*06h 1#2
(6' +<+('$ ,'.'/#%$'&( (6' '$%6*+5+ :5// 8' #& 15&,5&7 (6' %2#%'2
0#$%#&'&(+ *&, .'251<5&7 (6'$? *&, 1#2 (6' 0#$%#&'&( ,'.'/#%$'&(?
,'+57& 1#2 2'4+' :5// 8' (6' $*5& 0#&0'2&9 >6'2' 5+ * ,511'2'&0' 5&
2'@452'$'&(+ *&, 84+5&'++ 5,'*+ 5& (6'+' (:# 0*+'+ *&, ,511'2'&( *%%2#*06'+
*2' &'0'++*2<9 "#$%#&'&(+ *2' 845/( (# 8' 4+', *&, 2'4+', 5& $*&<
*%%/50*(5#&+? +#$' %#++58/< &#( <'( ';5+(5&7? 5& +#$' %#++58/< 4&1#2'+''& :*<
D<+('$ ,'.'/#%$'&( :5(6 0#$%#&'&(+ 5+ 1#04+', #& (6' 5,'&(5150*(5#& #1
2'4+*8/' '&(5(5'+ *&, 2'/*(5#&+ 8'(:''& (6'$? 8'75&&5&7 12#$ (6' +<+('$
2'@452'$'&(+ *&, 12#$ (6' *.*5/*85/5(< #1 0#$%#&'&(+ */2'*,< ';5+(5&79 X'
4+' g $#,'/ *+ (65+ $#,'/ 5+ :5,'/< 4+', 5& $*&< #27*&5F*(5#&+ – (<%50*//<
/*27' #27*&5F*(5#& 845/,5&7 0#$%/'; /#&73/51' %2#,40(+? +406 *+ 0*2+ #2 2#8#(+9
A& (65+ $#,'/ (6' %2#0'++ +(*2(+ 5& * 4+4*/ :*< 8< 2'@452'$'&(+ '&75&''25&7
*&, 2'@452'$'&(+ +%'05150*(5#&? 1#//#:', 8< +<+('$ +%'05150*(5#&9 A& * &#&3
0#$%#&'&(3 8*+', *%%2#*06 (6' %2#0'++ :#4/, 0#&(5&4' :5(6 (6' 4&5(
,'+57&? 5$%/'$'&(*(5#& *&, ('+(9 A&+('*, #1 %'21#2$5&7 (65+ *0(5.5(5'+ (6*(
#1('& *2' (5$' *&, '11#2(+ 0#&+4$5&7? :' +5$%/< +'/'0( *%%2#%25*('
0#$%#&'&(+ *&, 5&('72*(' (6'$ 5& (6' +<+('$9 R#:'.'2? (:# %2#8/'$+
*%%'*2 6'2' :6506 82'*B (65+ +5$%/505(<Z S5T A( 5+ &#( #8.5#4+ (6*( (6'2' 5+ *&<
0#$%#&'&( (# +'/'0(? *&, S55T (6' +'/'0(', 0#$%#&'&( #&/< %*2(5*//< 15(+ (# #42
#.'2*// ,'+57&9 >6' 152+( 1*0( +6#:+ (6*( :' $4+( 6*.' * %2#0'++ 1#2 15&,5&7
0#$%#&'&(+9 >65+ %2#0'++ 5&0/4,'+ *0(5.5(5'+ 1#2 15&,5&7 (6' 0#$%#&'&(+? *&, (6'&
7/23/2019 Component Based Devvv
http://slidepdf.com/reader/full/component-based-devvv 12/25
(6' 0#$%#&'&( '.*/4*(5#&9 >6' +'0#&, 1*0( 5&,50*('+ 1#2 * &'', #1 0#$%#&'&(
*,#%(5#& *&, ('+(5&7 8'1#2' 5( 0*& 8' 5&('72*(', 5&(# (6' +<+('$9 C&, #1 0#42+'
(6'2' $4+( 8' * %2#0'++ #1 0#$%#&'&( ,'.'/#%$'&(? (65+ 8'5&7 5&,'%'&,'&( #1 (6'
+<+('$ ,'.'/#%$'&( %2#0'++9
W9 6&B720&#&%' <%*;A+2+ *%, 8$&42.24*'2"%Z A& (65+ %6*+' #&' 5$%#2(*&( *0(5.5(< 5+ (#
*&*/<+' (6' %#++585/5(< #1 2'*/5F5&7 (6' +#/4(5#&+ (6*( :5// $''( (6'+'
2'@452'$'&(+9 A& * 0#$%#&'&(38*+', *%%2#*06 (65+ 5$%/5'+ (6*( 5( 5+
&'0'++*2< (# *&*/<F' :6'(6'2 (6'+' 2'@452'$'&(+ 0*& 8' 14/15//', 8< *.*5/*8/'
0#$%#&'&(+9 >65+ $'*&+ (6*( (6' 2'@452'$'&(+ '&75&''2+ $4+( 8' *:*2' #1
0#$%#&'&(+ (6*( 0*& %#++58/< 8' 4+',9 D5&0' 5( 5+ &#( /5B'/< (6*( *%%2#%25*('
0#$%#&'&(+ 0*& */:*<+ 8' 1#4&,? (6'2' 5+ * 25+B (6*( (6' &': 0#$%#&'&(+
6*.' (# 8' 5$%/'$'&(',9 ># B''% :5(6 0#$%#&'&(38*+', *%%2#*06 S*&,
4(5/5F' 5(+ *,.*&(*7'+T #&' %#++585/5(< 5+ (# &'7#(5*(' (6' 2'@452'$'&(+ *&,
$#,51< (6'$ (# 8' *8/' (# 4+' (6' ';5+(5&7 0#$%#&'&(+9a9 8A+'&# *%, 8".'/*0& ?&+21%C D5$5/*2 (# (6' 2'@452'$'&(+ +%'05150*(5#& %6*+'
(6' +<+('$ +%'05150*(5#& *&, ,'+57& 5+ +(2#&7/< 2'/*(', (# (6' *.*5/*85/5(< #1
(6' 0#$%#&'&(+9 >6' %#('&(5*/ 0#$%#&'&(+ *2' 0#$%/<5&7 :5(6 * %*2(504/*2
0#$%#&'&( $#,'/9 J&' 0#4/, *++4$' (6*( 5( :#4/, 8' %#++58/' (# 4+',
0#$%#&'&(+ 5$%/'$'&(', 5& ,511'2'&( 0#$%#&'&( ('06&#/#75'+? 84( 5&
%2*0(50' 5( 5+ .'2< ,511504/( (# *065'.' 5&('2#%'2*85/5(< 8'(:''& ,511'2'&(
0#$%#&'&( $#,'/+9 P*2(504/*2 0#$%#&'&( $#,'/ 2'@452'+ * %*2(504/*2
*2065('0(42*/ 12*$':#2B? *&, (6' *%%/50*(5#& 5+ +4%%#+', (# 4+' (65+
12*$':#2B9 >65+ ,52'0(/< 6*+ 5$%*0( #& *2065('0(42*/ ,'05+5#&+9 `#2 ';*$%/' 51(6' 0#$%#&'&( $#,'/ 2'@452'+ * 0/5'&(3+'2.'2 *2065('0(42' +(</'? 5( 5+ #8.5#4+
(6*( (6' *%%/50*(5#& :5// 4+' (6*( +(</' *&, &#( *&#(6'2 S1#2 ';*$%/' %5%'3
15/('2T9 >65+ :5// %4( /5$5(*(5#&+ #& (6' +<+('$ ,'+57&9 C/+#? #(6'2 %2#%'2(5'+ #1
0#$%#&'&(+ 0*& 6*.' * ,52'0( 5&1/4'&0' #& (6' ,'+57& ,'05+5#&+9 `#2 (65+
2'*+#& (6' ,'+57& %2#0'++ 5+ (576(/< 0#&&'0(', (# (6' *.*5/*85/5(< #1 (6'
0#$%#&'&(+9
b9 D#$;&#&%'*'2"% *%, 7%2' '&+'2%1C X6'& 845/,5&7 0#$%#&'&(38*+', +<+('$?
*& 5,'*/ 0*+' 5+ (# 845/, *& *%%/50*(5#& 8< ,52'0( 5&('72*(5#& #1 0#$%#&'&(+?
i.e. directly connecting components. The “glue code” is a code that specifies
(65+ 0#&&'0(5#&9 A& %2*0(50' (6' 2#/' #1 (6' 7/4' 0#,' :5// */+# 5&0/4,'
*,*%(*(5#& #1 (6' 0#$%#&'&(+? *&, '.'& 5$%/'$'&(*(5#& #1 &': 14&0(5#&+9
A& *& 5,'*/ 0*+' (6' 0#$%#&'&(+ (6'$+'/.'+ *2' */2'*,< 845/( *&, ('+(',9
R#:'.'2 (6' 0#$%#&'&( ('+(+ 5& 5+#/*(5#& *2' &#( +411505'&(9 J1('& ,'+57&
4&5(+ :5// 8' 5$%/'$'&(', *+ *++'$8/5'+ #1 +'.'2*/ 0#$%#&'&(+ *&, %#++58/<
* 7/4' 0#,'9 >6'+' *++'$8/5'+ $4+( 8' ('+(', +'%*2*('/<? +5&0' *& *++'$8/<
#1 0#22'0( 0#$%#&'&(+ $*< 8' 5&0#22'0( */(6#476 (6' 0#$%#&'&(+
(6'$+'/.'+ *2' 0#22'0(9
7/23/2019 Component Based Devvv
http://slidepdf.com/reader/full/component-based-devvv 13/25
c9 8A+'&# D%'&10*'2"%Z >6' 5&('72*(5#& %2#0'++ 5&0/4,'+ 5&('72*(5#& #1 +(*&,*2,
5&12*+(240(42' 0#$%#&'&(+ (6*( 845/, * 0#$%#&'&( 12*$':#2B *&, (6'
*%%/50*(5#& 0#$%#&'&(+9 >6' 5&('72*(5#& #1 * %*2(504/*2 0#$%#&'&( 5&(# *
+<+('$ 5+ 0*//', * 0#$%#&'&( ,'%/#<$'&(9 A& ,511'2'&0' (# (6' '&(52' +<+('$
5&('72*(5#& * 0#$%#&'&( ,'%/#<$'&( 5+ * $'06*&5+$ 1#2 5&('72*(5#& #1%*2(504/*2 0#$%#&'&(+ – 5( 5&0/4,'+ ,#:&/#*, *&, 2'75+('25&7 #1 (6'
0#$%#&'&(9
N9 8A+'&# E&02.24*'2"% *%, 3*;2,*'2"%C >6' +(*&,*2, ('+( *&, .'25150*(5#&
('06&5@4'+ *2' 4+', 6'2'9 >6' +%'05150 %2#8/'$ 1#2 0#$%#&'&(38*+',
approach is location of error, especially when components are of “black box”
(<%' *&, ,'/5.'2', 12#$ ,511'2'&( .'&,#2+9 ><%50*//< * 0#$%#&'&( 0*& ';6585(
*& '22#2? 84( (6' 0*4+' #1 (6' $*/14&0(5#& /5'+ 5& *&#(6'2 0#$%#&'&(9
"#&(2*0(4*/ 5&('21*0'+ %/*< *& 5$%#2(*&( 2#/' 5& 06'0B5&7 (6' %2#%'2 5&%4(*&, #4(%4( 12#$ 0#$%#&'&(+9 >6'+' 5&('21*0'+ '&*8/' * +%'05150*(5#& #1
5&%4( *&, #4(%4( *&, 06'0B5&7 (6' 0#22'0(&'++ #1 ,*(*9
\9 F$&0*'2"% *%, G*2%'&%*%4&Z >6' $*5&('&*&0' %2#0'++ 5&0/4,'+ +#$' +('%+
(6*( *2' +5$5/*2 (# (6' 5&('72*(5#& %2#0'++Z C &': #2 $#,515', 0#$%#&'&( 5+
,'%/#<', 5&(# (6' +<+('$9 C/+# 5( $*< 8' &'0'++*2< (# 06*&7' (6' 7/4' 0#,'9
A& $#+( #1 (6' 0*+'+ *& ';5+(5&7 0#$%#&'&( :5// 8' $#,515', #2 * &': .'2+5#&
#1 (6' +*$' 0#$%#&'&( :5// 8' 5&('72*(', 5&(# (6' +<+('$9 J&0' *7*5& &':
%2#8/'$+ 0*4+', 8< 5&0#$%*(585/5(< 8'(:''& 0#$%#&'&(+? #2 8< 82#B'&
,'%'&,'&05'+ $*< #00429 >65+ $'*&+? #&' *7*5& (6*( (6' +<+('$ $4+( 8'
.'2515', S'5(6'2 1#2$*//<? #2 8< +5$4/*(5#&? #2 8< ('+(5&7T9
7/23/2019 Component Based Devvv
http://slidepdf.com/reader/full/component-based-devvv 14/25
La9 3(45(%6%& 7806) =(2&>8'6 ?%@,%66',%@ Q'846>('V J+&,:,&,60Z
A1 (6' 2'@452'$'&(S+T 0*&&#( 8' 06*&7', #2 ,'/'(',? 0#&.'&(5#&*/ #2 #8='0(3#25'&(',
+#1(:*2' '&75&''25&7 $'(6#,+ *2' *%%/5', (# ,'.'/#% (6#+' &': 0#$%#&'&(+ (6*(
$4+( 8' '&75&''2', (# $''( (6' 2'@452'$'&(S+T9 )4( 1#2 (6#+' 2'@452'$'&(+ (6*( *2'
*,,2'++', :5(6 *.*5/*8/' 0#$%#&'&(+? * ,511'2'&( +'( #1 +#1(:*2' '&75&''25&7*0(5.5(5'+ 0#$$'&0'+Z
*T "#$%#&'&( ]4*/5150*(5#&Z D<+('$ 2'@452'$'&(+ *&, *2065('0(42' ,'15&' (6'
0#$%#&'&(+ (6*( :5// 8' 2'@452',9 Y'4+*8/' 0#$%#&'&(+ S:6'(6'2 "J>D #2 5&3
6#4+'T *2' $*//< 5,'&(515', 8< (6' 06*2*0('25+(50+ #1 (6'52 5&('21*0'+9 >6*( 5+?
“the services that are provided, and the means by whi06 0#&+4$'2+ *00'++ (6'+'
services” [BRO96] are described as part of the component interface. )4( (6'
5&('21*0' ,#'+ &#( %2#.5,' * 0#$%/'(' %50(42' #1 (6' ,'72'' (# :6506 (6'
0#$%#&'&( :5// 15( (6' *2065('0(42' *&, 2'@452'$'&(+9 >6' +#1(:*2' '&75&''2
$4+( use a process of discovery and analysis to qualify each component’s 15(9
8T "#$%#&'&( C,*%(*(5#&Z :' &#(', (6*( +#1(:*2' *2065('0(42' 2'%2'+'&(+
,'+57& %*(('2&+ (6*( *2' 0#$%#+', #1 0#$%#&'&(+ S4&5(+ #1 14&0(5#&*/5(<T?
0#&&'0(5#&+? *&, 0##2,5&*(5#&9 A& '++'&0' (6' *2065('0(42' ,'15&'+ (6' ,'+57&
24/'+ 1#2 *// 0#$%#&'&(+? 5,'&(51<5&7 $#,'+ #1 0#&&'0(5#& *&, 0##2,5&*(5#&9 A&
+#$' 0*+'+? ';5+(5&7 2'4+*8/' 0#$%#&'&(+ $*< 8' $5+$*(06', (# (6'
architecture’s design rules. These components must be *,*%(', (# $''( (6'
&'',+ #1 (6' *2065('0(42' #2 ,5+0*2,', *&, 2'%/*0', 8< #(6'2? $#2' +45(*8/'
0#$%#&'&(+9
0T "#$%#&'&( "#$%#+5(5#&Z C2065('0(42*/ +(</' *7*5& %/*<+ * B'< 2#/' 5& (6'
:*< 5& :6506 +#1(:*2' 0#$%#&'&(+ *2' 5&('72*(', (# 1#2$ * :#2B5&7 +<+('$9 )<
5,'&(51<5&7 0#&&'0(5#& *&, 0##2,5&*(5#& $'06*&5+$+ S'979? 24&3(5$' %2#%'2(5'+
#1 (6' ,'+57&T? (6' *2065('0(42' ,50(*('+ (6' 0#$%#+5(5#& #1 (6' '&, %2#,40(9
,T "#$%#&'&( Q%,*('Z X6'& +<+('$+ *2' 5$%/'$'&(', :5(6 "J>D
0#$%#&'&(+? 4%,*(' 5+ 0#$%/50*(', 8< (6' 5$%#+5(5#& #1 * (652, %*2(< S59'9? (6'
#27*&5F*(5#& (6*( ,'.'/#%', (6' 2'4+*8/' 0#$%#&'&( $*< 8' #4(+5,' (6'
5$$',5*(' 0#&(2#/ #1 (6' +#1(:*2' '&75&''25&7 #27*&5F*(5#&T9
Lb9 3(45(%6%& =(2&>8'6 N'(5(06) B1 ),226'6%& $%)*0&',60Z )'0*4+' (6' %#('&(5*/
5$%*0( #1 2'4+' *&, ")DE #& (6' +#1(:*2' 5&,4+(2< 5+ '$#4+? * &4$8'2 #1 $*=#2
0#$%*&5'+ *&, 5&,4+(2< 0#&+#2(5*a 6*.' %2#%#+', +(*&,*2,+ 1#2 0#$%#&'&(
+#1(:*2'Z
*T FGHI!F69<Z >6' J8='0( G*&*7'$'&( K2#4% 6*+ %48/5+6', * 4"##"% ")J&4'
0&B7&+' )0"=&0 *04K2'&4'70& SJGKd"JY)CT9 C& #8='0( 2'@4'+( 82#B'2 SJY)T
%2#.5,'+ * .*25'(< #& +'2.50'+ (6*( '&*8/' 2'4+*8/' 0#$%#&'&(+ S#8='0(+T (#
7/23/2019 Component Based Devvv
http://slidepdf.com/reader/full/component-based-devvv 15/25
0#$$4&50*(' :5(6 #(6'2 0#$%#&'&(+? 2'7*2,/'++ #1 (6'52 /#0*(5#& :5(65& *
+<+('$9 X6'& 0#$%#&'&(+ *2' 845/( 4+5&7 (6' JGKd"JY)C +(*&,*2,? 5&('72*(5#&
#1 (6#+' 0#$%#&'&(+ S:5(6#4( $#,5150*(5#&T :5(65& * +<+('$ 5+ *++42', 51 *&
2%'&0.*4& ,&.2%2'2"% ;*%17*1& SA-VT 5&('21*0' 5+ 02'*(', 1#2 '.'2< 0#$%#&'&(9
Q+5&7 * 0/5'&(d+'2.'2 $'(*%6#2? #8='0(+ :5(65& (6' 0/5'&( *%%/50*(5#& 2'@4'+( #&'#2 $#2' +'2.50'+ 12#$ (6' JY) +'2.'29 Y'@4'+(+ *2' $*,' .5* *& A-V #2
,<&*$50*//< *( 24& (5$'9 C& 5&('21*0' 2'%#+5(#2< 0#&(*5&+ *// &'0'++*2<
information about the service’s request and response formats.
8T G240"+".' !FGC G502#+#1( 6*+ ,'.'/#%', * 0#$%#&'&( #8='0( $#,'/ S"JGT (6*(
%2#.5,'+ * +%'05150*(5#& 1#2 4+5&7 0#$%#&'&(+ %2#,40', 8< .*25#4+ .'&,#2+
:5(65& * +5&7/' *%%/50*(5#& 24&&5&7 4&,'2 (6' X5&,#:+ #%'2*(5&7 +<+('$9 "JG
'&0#$%*++'+ (:# '/'$'&(+Z "JG 5&('21*0'+ S5$%/'$'&(', *+ "JG #8='0(+T *&,
* +'( #1 $'06*&5+$+ 1#2 2'75+('25&7 *&, %*++5&7 $'++*7'+ 8'(:''& "JG
interfaces. From the point of view of the application, “the focus is not on how
^"JG #8='0(+ *2'_ 5$%/'$'&(',? #&/< #& (6' 1*0( (6*( (6' #8='0( 6*+ *& 5&('21*0'
(6*( 5( 2'75+('2+ :5(6 (6' +<+('$? *&, (6*( 5( 4+'+ (6' 0#$%#&'&( +<+('$ (#
0#$$4&50*(' :5(6 #(6'2 "JG #8='0(+9”
0T 8>L M*3*9&*%+ !"#$"%&%'+C >6' i*.*)'*& 0#$%#&'&( +<+('$ 5+ * %#2(*8/'?
%/*(1#2$ 5&,'%'&,'&( ")DE 5&12*+(240(42' ,'.'/#%', 4+5&7 (6' i*.*
%2#72*$$5&7 /*&74*7'9 >6' i*.*)'*& +<+('$ ';('&,+ (6' i*.* *%%/'(b (#
*00#$$#,*(' (6' $#2' +#%65+(50*(', +#1(:*2' 0#$%#&'&(+ 2'@452', 1#2
0#$%#&'&(38*+', ,'.'/#%$'&(9 >6' i*.*)'*& 0#$%#&'&( +<+('$ '&0#$%*++'+
* +'( #1 (##/+? 0*//', (6' 9&*% ?&3&;"$#&%' N2' S)-jT (6*( *//#:+ ,'.'/#%'2+ (#
SLT *&*/<+' 6#: ';5+(5&7 )'*&+ S0#$%#&'&(+T :#2B? SWT 04+(#$5F' (6'52 8'6*.5#42
*&, *%%'*2*&0'? SaT '+(*8/5+6 $'06*&5+$+ 1#2 0##2,5&*(5#& *&, 0#$$4&50*(5#&9
SbT -'.'/#% 04+(#$ )'*&+ 1#2 4+' 5& * +%'05150 *%%/50*(5#&? *&, ScT ('+( *&,
'.*/4*(' )'*& 8'6*.5#429
Lc9 3(44(% FBG6+& T6W*60& 7'(V6' J'+K,&6+&*'6Z
>6' "#$$#& J8='0( Y'@4'+( )2#B'2 C2065('0(42' S"JY)CT 5+ * +(*&,*2, ,'15&', 8<
(6' J8='0( G*&*7'$'&( K2#4% SJGKT (6*( '&*8/'+ +#1(:*2' 0#$%#&'&(+ :25(('& 5&
$4/(5%/' 0#$%4('2 /*&74*7'+ *&, 24&&5&7 #& $4/(5%/' 0#$%4('2+ (# :#2B (#7'(6'2
S59'9? 5( +4%%#2(+ $4/(5%/' %/*(1#2$+T9
"JY)C 5+ 4+'14/ 8'0*4+' 5( '&*8/'+ +'%*2*(' %5'0'+ #1 +#1(:*2' :25(('& 5& ,511'2'&(
/*&74*7'+ *&, 24&&5&7 #& ,511'2'&( 0#$%4('2+ (# :#2B (#7'(6'2 /5B' * +5&7/'
*%%/50*(5#& #2 +'( #1 +'2.50'+9 G#2' +%'05150*//<? "JY)C 5+ * $'06*&5+$ 5& +#1(:*2'
1#2 $*/5F5&7 (6' $'(6#,30*// +'$*&(50+ 8'(:''& *%%/50*(5#& #8='0(+ 2'+5,5&7
'5(6'2 5& (6' +*$' *,,2'++ +%*0' S*%%/50*(5#&T #2 2'$#(' *,,2'++ +%*0' S+*$' 6#+(?
#2 2'$#(' 6#+( #& * &'(:#2BT9 g'2+5#& L9U :*+ 2'/'*+', 5& J0(#8'2 LMML9 "JY)C
4+'+ *& 5&('21*0' ,'15&5(5#& /*&74*7' SA-VT (# +%'051< (6' 5&('21*0'+ :6506 #8='0(+
%2'+'&( (# (6' #4('2 :#2/,9 "JY)C (6'& +%'0515'+ * #*$$2%1 12#$ A-V (# * +%'05150
7/23/2019 Component Based Devvv
http://slidepdf.com/reader/full/component-based-devvv 16/25
5$%/'$'&(*(5#& /*&74*7' /5B' "kk #2 i*.*9 D(*&,*2, $*%%5&7+ ';5+( 1#2 C,*? "? "kk?
V5+%? Y48<? D$*//(*/B? i*.*? "J)JV? PVdA *&, P<(6#&9 >6'2' *2' */+# &#&3+(*&,*2,
$*%%5&7+ 1#2 P'2/? g5+4*/ )*+50? E2/*&7? *&, >0/ 5$%/'$'&(', 8< #8='0( 2'@4'+(
82#B'2+ SJY)+T :25(('& 1#2 (6#+' /*&74*7'+9
>6' "JY)C +%'05150*(5#& ,50(*('+ (6'2' +6*// 8' *& JY) (62#476 :6506 *& *%%/50*(5#&
:#4/, 5&('2*0( :5(6 #(6'2 #8='0(+9 A& %2*0(50'? (6' *%%/50*(5#& +5$%/< 5&5(5*/5F'+ (6'
JY)? *&, *00'++'+ *& 5&('2&*/ F)J&4' <,*$'&0 ? :6506 $*5&(*5&+ (65&7+ /5B' 2'1'2'&0'
0#4&(5&7? #8='0( S*&, 2'1'2'&0'T 5&+(*&(5*(5#& %#/505'+? *&, #8='0( /51'(5$' %#/505'+9
>6' J8='0( C,*%('2 5+ 4+', (# 2'75+('2 5&+(*&0'+ #1 (6' 1&%&0*'&, 4",& 4;*++&+9
K'&'2*(', 0#,' 0/*++'+ *2' (6' 2'+4/( #1 0#$%5/5&7 (6' 4+'2 A-V 0#,'? :6506
(2*&+/*('+ (6' 65763/'.'/ 5&('21*0' ,'15&5(5#& 5&(# *& JD3 *&, /*&74*7'3+%'05150 0/*++
8*+' 1#2 4+' 8< (6' 4+'2 *%%/50*(5#&9 >65+ +('% 5+ &'0'++*2< 5& #2,'2 (# '&1#20' "JY)C
+'$*&(50+ *&, %2#.5,' * 0/'*& 4+'2 %2#0'++ 1#2 5&('21*05&7 :5(6 (6' "JY)C5&12*+(240(42'9
D#$' A-V /*&74*7' $*%%5&7+ *2' l$#2' 6#+(5/'l (6*& #(6'2+9 `#2 ';*$%/'? ,4' (#
(6' &*(42' #1 i*.*? (6' A-V3i*.* G*%%5&7 5+ 2*(6'2 +(2*576(1#2:*2, *&, $*B'+ 4+*7'
#1 "JY)C .'2< +5$%/' 5& * i*.* *%%/50*(5#&9 >6' "kk $*%%5&7 5+ /'++ +(2*576(1#2:*2,?
84( 5( *00#4&(+ 1#2 *// "JY)C 1'*(42'+ S'979? ';0'%(5#& 6*&,/5&7T9 >6' " $*%%5&7 5+
'.'& +(2*&7'2 S+5&0' " 5+ &#( *& #8='0(3#25'&(', /*&74*7'T? 84( 5( ,#'+ $*B' +'&+'
*&, %2#%'2/< 6*&,/'+ (6' YP" +'$*&(50+9
C /*&74*7' $*%%5&7 2'@452'+ (6' ,'.'/#%'2 Sl4+'2l 5& (65+ 0*+'T (# 02'*(' +#$' A-V
0#,' (6*( 2'%2'+'&(+ (6' 5&('21*0'+ (# 65+ #8='0(+9 ><%50*//<? * "JY)C
5$%/'$'&(*(5#& 0#$'+ :5(6 * (##/ 0*//', *& A-V 0#$%5/'2 :6506 0#&.'2(+ (6' 4+'2H+
A-V 0#,' 5&(# +#$' /*&74*7'3+%'05150 7'&'2*(', 0#,'9 C (2*,5(5#&*/ 0#$%5/'2 (6'&
0#$%5/'+ (6' 7'&'2*(', 0#,' (# 02'*(' (6' /5&B*8/'3#8='0( 15/'+ 1#2 (6' *%%/50*(5#&9
>65+ ,5*72*$ 5//4+(2*('+ 6#: (6' 7'&'2*(', 0#,' 5+ 4+', :5(65& (6' "JY)C
5&12*+(240(42'Z
7/23/2019 Component Based Devvv
http://slidepdf.com/reader/full/component-based-devvv 17/25
>65+ 15742' 5//4+(2*('+ (6' 65763/'.'/ %*2*,57$ 1#2 2'$#(' 5&('2%#+'+ 0#$$4&50*(5#&+
4+5&7 "JY)C9 A++4'+ &#( *,,2'++', 6'2'? <'( *00#4&(',31#2 5& (6' "JY)C
+%'05150*(5#& 5&0/4,'Z ,*(* (<%5&7? ';0'%(5#&+? &'(:#2B %2#(#0#/? 0#$$4&50*(5#&
(5$'#4(+? '(09 `#2 ';*$%/'Z I#2$*//< (6' +'2.'2 +5,' 6*+ (6' P#2(*8/' J8='0( C,*%('2
SPJCT (6*( 2',52'0(+ 0*// '5(6'2 (# (6' /#0*/ +'2.*&(+ #2 S(# 8*/*&0' (6' /#*,T (# (6'#(6'2 +'2.'2+9 C/+#? 8#(6 +'2.'2 *&, 0/5'&( %*2(+ #1('& 6*.' 5&('20'%(#2+ (6*( *2'
,'+0258', 8'/#:9 A++4'+ "JY)C S*&, (64+ (65+ 15742'T ,# &#( *,,2'++? 84( (6*( *//
,5+(2584(', +<+('$+ $4+( *,,2'++Z #8='0( /51'(5$'+? 2',4&,*&0<d1*5/3#.'2? &*$5&7
+'$*&(50+ S8'<#&, * +5$%/' &*$'T? $'$#2< $*&*7'$'&(? ,<&*$50 /#*, 8*/*&05&7?
+'%*2*(5#& #1 $#,'/ 8'(:''& ,5+%/*<d,*(*d0#&(2#/ +'$*&(50+? '(09
O2#2'*'2"%+ ". 8'*%,*0, !F69< G",&;C
L" +'*%,*0, /*A '" ,&$;"A ")J&4' 2#$;&#&%'*'2"%+Z A( ,5, &#( ,'15&' *
+(*&,*2, 1#2 ,'%/#<$'&( #1 #8='0( 5$%/'$'&(*(5#&+ 5& +'2.'2 %2#0'++'+9
O2#2'&, +'*%,*0, +7$$"0' ."0 4"##"% !F69< +&03&0 $0"10*##2%1 $*''&0%+ Z
P2#.5,'+ * 2506 +'( #1 1'*(42'+ (# 5$%/'$'&( +'2.'2+
V5$5(', ';('&+5#& #1 #8='0( 14&0(5#&*/5(<Z A& (6' (2*,5(5#&*/ "JY)C #8='0(
$#,'/? #8='0(+ 0*& 8' ';('&,', #&/< .5* 5&6'25(*&0' *&, $4/(5%/' 5&6'25(*&0' 0*&&#(
';%#+' (6' +*$' 5&('21*0' $#2' (6*& #&0'?  0*& 5( */#&' ,'('2$5&' :6506
5&('21*0' +6#4/, 8' ';%#2(', (# 0/5'&(+
C.*5/*85/5(< #1 "JY)C #8='0( D'2.'2 5+ &#( ,'15&', 5& *,.*&0'
I# +(*&,*2, J8='0( V51' 0<0/' G*&*7'$'&(
"L# 3FT7J 3(45(%6%& R()6; C33RD-
"JY)C "#$%#&'&( G#,'/ S""GT 5+ *& *,,5(5#& (# (6' 1*$5/< #1 "JY)C ,'15&5(5#&+9 A(
:*+ 5&(2#,40', :5(6 "JY)C a *&, 5( ,'+0258'+ * +(*&,*2, *%%/50*(5#& 12*$':#2B 1#2
"JY)C 0#$%#&'&(+9 >6#476 &#( ,'%'&,'&( #& l/*&74*7' 5&,'%'&,'&( E&('2%25+'
i*.* )'*&+ SEi)Tl? 5( 5+ * $#2' 7'&'2*/ 1#2$ #1 Ei)? %2#.5,5&7 1#42 0#$%#&'&( (<%'+
5&+('*, #1 (6' (:# (6*( Ei) ,'15&'+9 A( %2#.5,'+ *& *8+(2*0(5#& #1 '&(5(5'+ (6*( 0*&
%2#.5,' *&, *00'%( +'2.50'+ (62#476 :'//3,'15&', &*$', 5&('21*0'+ 0*//', $"0'+9
>6' ""G 6*+ * 0#$%#&'&( 0#&(*5&'2? :6'2' +#1(:*2' 0#$%#&'&(+ 0*& 8' ,'%/#<',9
>6' 0#&(*5&'2 #11'2+ * +'( #1 +'2.50'+ (6*( (6' 0#$%#&'&(+ 0*& 4+'9 >6'+' +'2.50'+
5&0/4,' S84( *2' &#( /5$5(', (#T &#(5150*(5#&? *4(6'&(50*(5#&? %'2+5+('&0' *&,(2*&+*0(5#& %2#0'++5&79 >6'+' *2' (6' $#+(34+', +'2.50'+ *&< ,5+(2584(', +<+('$
7/23/2019 Component Based Devvv
http://slidepdf.com/reader/full/component-based-devvv 18/25
2'@452'+? *&,? 8< $#.5&7 (6' 5$%/'$'&(*(5#& #1 (6'+' +'2.50'+ 12#$ (6' +#1(:*2'
0#$%#&'&(+ (# (6' 0#$%#&'&( 0#&(*5&'2? (6' 0#$%/';5(< #1 (6' 0#$%#&'&(+ 5+
,2*$*(50*//< 2',40',9
?2+*,3*%'*1&+ ". !!G G",&;C
""G D%'05150*(5#&+ *2' .'2< /*27' *&, 0#$%/';
C+ :5(6 "JY)C +%'05150*(5#&+ +'.'2*/ <'*2+ *7#? 5( 5+ +(5// 6*2, (# '.*/4*(' (6'
@4*/5(< *&, %'21#2$*&0' #1 ""G 5$%/'$'&(*(5#&+
A&('2/5&B5&7 #1 "#$%#&'&(+ *&, (6' 0#&(*5&'2 *2' .'2< ,511504/( (#
4&,'2+(##,
17. 3;800,21,%@ 8%) T6&',6:,%@ 3(45(%6%&0- "#&+5,'2 * /*27' 4&5.'2+5(< /582*2<9 >'&+ #1
(6#4+*&,+ #1 8##B+? %'25#,50*/+? *&, #(6'2 5&1#2$*(5#& 2'+#420'+ *2' *.*5/*8/' 1#2
4+'9 )4( (# *00'++ (6'+' 2'+#420'+? * 0*('7#25F*(5#& +06'$' $4+( 8' ,'.'/#%',9 >#
&*.57*(' (65+ /*27' .#/4$' #1 5&1#2$*(5#&? /582*25*&+ 6*.' ,'15&', * 0/*++5150*(5#&
+06'$' (6*( 5&0/4,'+ * V582*2< #1 "#&72'++ 0/*++5150*(5#& 0#,'? B'<:#2,+? *4(6#2
&*$'+? *&, #(6'2 5&,'; '&(25'+9 C// '&*8/' (6' 4+'2 (# 15&, (6' &'',', 2'+#420'
@450B/< *&, '*+5/<9 I#:? 0#&+5,'2 * /*27' 0#$%#&'&( 2'%#+5(#2<9 >'&+ #1 (6#4+*&,+
#1 2'4+*8/' +#1(:*2' 0#$%#&'&(+ 2'+5,' 5& 5(9 )4( 6#: ,#'+ * +#1(:*2' '&75&''2 15&,
(6' #&' +6' &'',+[ ># *&+:'2 (65+ @4'+(5#&? *&#(6'2 @4'+(5#& *25+'+Z R#: ,# :'
,'+0258' +#1(:*2' 0#$%#&'&(+ 5& 4&*$8574#4+? 0/*++515*8/' ('2$+[ >6'+' *2'
,511504/( @4'+(5#&+? *&, &# ,'15&5(5.' *&+:'2 6*+ <'( 8''& ,'.'/#%',9 A& (65+ +'0(5#&
:' ';%/#2' 0422'&( ,52'0(5#&+ (6*( :5// '&*8/' 14(42' +#1(:*2' '&75&''2+ (# &*.57*('
2'4+' /582*25'+9
-'+02585&7 Y'4+*8/' "#$%#&'&(Z C 2'4+*8/' +#1(:*2' 0#$%#&'&( 0*& 8' ,'+0258',
5& $*&< :*<+? 84( *& 5,'*/ ,'+025%(5#& '&0#$%*++'+ :6*( >2*0F ^>YCMU_ 6*+ 0*//',
(6' P! #",&; —0#&0'%(? 0#&('&( *&, 0#&(';(9 >6' 4"%4&$' #1 * +#1(:*2' 0#$%#&'&(is “a description of what the component does” [WHI95]. The interface to the
0#$%#&'&( 5+ 14//< ,'+0258', *&, (6' +'$*&(50+— 2'%2'+'&(', :5(65& (6' 0#&(';( #1
%2'3 *&, %#+(0#&,5(5#&+—*2' 5,'&(515',9 >6' 0#&0'%( +6#4/, 0#$$4&50*(' (6' 5&('&(
#1 (6' 0#$%#&'&(9 >6' 4"%'&%' #1 * 0#$%#&'&( ,'+0258'+ 6#: (6' 0#&0'%( 5+
2'*/5F',9 A& '++'&0'? (6' 0#&('&( 5+ 5&1#2$*(5#& (6*( 5+ 65,,'& 12#$ 0*+4*/ 4+'2+ *&,
&'', 8' B&#:& #&/< (# (6#+' :6# 5&('&, (# $#,51< #2 ('+( (6' 0#$%#&'&(9 >6'
4"%'&Q' %/*0'+ * 2'4+*8/' +#1(:*2' 0#$%#&'&( :5(65& 5(+ ,#$*5& #1 *%%/50*85/5(<9
>6*( 5+? 8< +%'051<5&7 0#&0'%(4*/? #%'2*
7/23/2019 Component Based Devvv
http://slidepdf.com/reader/full/component-based-devvv 19/25
(5#&*/? *&, 5$%/'$'&(*(5#& 1'*(42'+? (6' 0#&(';( '&*8/'+ * +#1(:*2' '&75&''2 (# 15&,
(6' *%%2#%25*(' 0#$%#&'&( (# $''( *%%/50*(5#& 2'@452'$'&(+9
!;*++2.24*'2"% 84K&#&C
-511'2'&( %*%'2+ 6*.' 8''& %48/5+6', 8*+', #& 0/*++5150*(5#& +06'$'9 >6' $*=#25(<
#1 0/*++5150*(5#& +06'$'+ 1#2 +#1(:*2' 0#$%#&'&(+ 1*// 5&(# (62'' 0*('7#25'+Z
*T R%7#&0*'&, !;*++2.24*'2"%Z "#$%#&'&(+ *2' ,'+0258', 8< * 65'2*20650*/ +(240(42' 5&
:6506 0/*++'+ *&, .*2<5&7 /'.'/+ #1 +480/*++'+ #1 +#1(:*2' 0#$%#&'&(+ *2' ,'15&',9
C0(4*/ 0#$%#&'&(+ *2' /5+(', *( (6' /#:'+( /'.'/ #1 *&< %*(6 5& (6' '&4$'2*(',
65'2*206<9 >6' 65'2*20650*/ +(240(42' #1 *& '&4$'2*(', 0/*++5150*(5#& +06'$' $*B'+
5( '*+< (# 4&,'2+(*&, *&, (# 4+'9 R#:'.'2? 8'1#2' * 65'2*206< 0*& 8' 845/(? ,#$*5&
'&75&''25&7 $4+( 8' 0#&,40(', +# (6*( +411505'&( B&#:/',7' #1 (6' %2#%'2 '&(25'+ 5&
(6' 65'2*206< 5+ *.*5/*8/'98T S*4&'&, !;*++2.24*'2"%Z C ,#$*5& *2'* 5+ *&*/<F', *&, * +'( #1 8*+50 ,'+025%(5.'
1'*(42'+ *2' 5,'&(515',9 >6'+' 1'*(42'+? 0*//', .*4&'+5 *2' (6'& 2*&B', 8< 5$%#2(*&0'
*&, 0#&&'0(', (# * 0#$%#&'&(9 C 1*0'( 0*& ,'+0258' (6' 14&0(5#& (6*( (6'
0#$%#&'&( %'21#2$+? (6' ,*(* (6*( *2' $*&5%4/*(',? (6' 0#&(';( 5& :6506 (6'< *2'
*%%/5',? #2 *&< #(6'2 1'*(42'9 >6' +'( #1 1*0'(+ (6*( ,'+0258' * 0#$%#&'&( 5+ 0*//',
(6' .*4&' ,&+402$'"0@ K'&'2*//<? (6' 1*0'( ,'+025%(5#& 5+ /5$5(', (# &# $#2' (6*& +'.'&
#2 '576( 1*0'(+9 C+ * +5$%/' 5//4+(2*(5#& #1 (6' 4+' #1 1*0'(+ 5& 0#$%#&'&(
0/*++5150*(5#&? 0#&+5,'2 * +06'$' ^VACMa_ (6*( $*B'+ 4+' #1 (6' 1#//#:5&7 1*0'(
,'+025%(#2Z e14&0(5#&? #8='0( (<%'? +<+('$ (<%'f E*06 1*0'( 5& (6' 1*0'( ,'+025%(#2(*B'+ #& #&' #2 $#2' .*/4'+ (6*( *2' 7'&'2*//< ,'+025%(5.' B'<:#2,+9 `#2 ';*$%/'? 51
.7%4'2"% 5+ * 1*0'( #1 * 0#$%#&'&(? (<%50*/ .*/4'+ *++57&', (# (65+ 1*0'( $576( 8'
.7%4'2"% m S4"$A5 .0"#T #2 S4"$A5 0&$;*4&5 *;; T
0T <''02)7'&(3*;7& !;*++2.24*'2"%Z C +'( #1 *((2584('+ 5+ ,'15&', 1#2 *// 0#$%#&'&(+ 5& *
,#$*5& *2'*9 g*/4'+ *2' (6'& *++57&', (# (6'+' *((2584('+ 5& $406 (6' +*$' :*< *+
1*0'(', 0/*++5150*(5#&9 A& 1*0(? *((2584(' .*/4' 0/*++5150*(5#& 5+ +5$5/*2 (# 1*0'(',
0/*++5150*(5#& :5(6 (6' 1#//#:5&7 ';0'%(5#&+Z SLT &# /5$5( 5+ %/*0', #& (6' &4$8'2 #1
*((2584('+ (6*( 0*& 8' 4+',h SWT *((2584('+ *2' &#( *++57&', %25#25(5'+? *&, SaT (6'
(6'+*424+ 14&0(5#& 5+ &#( 4+',9
LO9 T6*06 ?%:,'(%46%&- D#1(:*2' 0#$%#&'&( 2'4+' $4+( 8' +4%%#2(', 8< *&
'&.52#&$'&( (6*( '&0#$%*++'+ (6' 1#//#:5&7 '/'$'&(+Z
• A component database capable of storing software components and the
0/*++5150*(5#& 5&1#2$*(5#& &'0'++*2< (# 2'(25'.' (6'$9
• C /582*2< $*&*7'$'&( +<+('$ (6*( %2#.5,'+ *00'++ (# (6' ,*(*8*+'9
• A software component retrieval system S'979? *& #8='0( 2'@4'+( 82#B'2T (6*(
'&*8/'+ * 0/5'&( *%%/50*(5#& (# 2'(25'.' 0#$%#&'&(+ *&, +'2.50'+ 12#$ (6' /582*2<
+'2.'29
7/23/2019 Component Based Devvv
http://slidepdf.com/reader/full/component-based-devvv 20/25
• CBSE tools that support the integration of reused components into a new design
#2 5$%/'$'&(*(5#&9
C 0#$%#&'&( 0/*++5150*(5#& +06'$' +'2.'+ *+ (6' 8*+5+ 1#2 /582*2< @4'25'+9 ]4'25'+
*2' #1('& 06*2*0('25F', 4+5&7 (6' 0#&(';( '/'$'&( #1 (6' a" $#,'/ ,'+0258', '*2/5'25& (65+ +'0(5#&9 A1 *& 5&5(5*/ @4'2< 2'+4/(+ 5& * .#/4$5+ /5+( #1 0*&,5,*('
0#$%#&'&(+? (6' @4'2< 5+ 2'15&', (# &*22#: (6' /5+(9 "#&0'%( *&, 0#&('&(
5&1#2$*(5#& *2' (6'& ';(2*0(', S*1('2 0*&,5,*(' 0#$%#&'&(+ *2' 1#4&,T (# *++5+( (6'
,'.'/#%'2 5& +'/'0(5&7 (6' %2#%'2 0#$%#&'&(9
LM9 $458+& (% X*8;,&1Y N'()*+&,:,&1 8%) 3(0&- "#$%#&'&(38*+', +#1(:*2' '&75&''25&7
6*+ *& 5&(45(5.' *%%'*/9 A& (6'#2<? 5( +6#4/, %2#.5,' * +#1(:*2' #27*&5F*(5#& :5(6
*,.*&(*7'+ 5& @4*/5(< *&, (5$'/5&'++9 C&, (6'+' +6#4/, (2*&+/*(' 5&(# 0#+( +*.5&7+9
)4( *2' (6'2' 6*2, ,*(* (6*( +4%%#2( #42 5&(45(5#&[ ># *&+:'2 (65+ @4'+(5#& :' $4+(152+( 4&,'2+(*&, :6*( *0(4*//< 0*& 8' 2'4+', 5& * +#1(:*2' '&75&''25&7 0#&(';( *&,
(6'& :6*( (6' 0#+(+ *++#05*(', :5(6 2'4+' 2'*//< *2'9 C+ * 0#&+'@4'&0'? 5( 5+ %#++58/'
(# ,'.'/#% * 0#+(d8'&'15( *&*/<+5+ 1#2 0#$%#&'&( 2'4+'9
*T :7*;2'AC A& *& 5,'*/ +'((5&7? * +#1(:*2' 0#$%#&'&( (6*( 5+ ,'.'/#%', 1#2 2'4+'
:#4/, 8' .'2515', (# 8' 0#22'0( *&, :#4/, 0#&(*5& &# ,'1'0(+9 A& 2'*/5(<? 1#2$*/
.'25150*(5#& 5+ &#( 0*225', #4( 2#4(5&'/<? *&, ,'1'0(+ 0*& *&, ,# #00429 R#:'.'2?
:5(6 '*06 2'4+'? ,'1'0(+ *2' 1#4&, *&, '/5$5&*(',? *&d a component’s quality
5$%2#.'+ *+ * 2'+4/(9 J.'2 (5$'? (6' 0#$%#&'&( 8'0#$'+ .52(4*//< ,'1'0( 12''9 A&
* +(4,< 0#&,40(', *( R':/'(( P*0B*2,? V5$ ^VAGMb_ 2'%#2(+ (6*( (6' ,'1'0( 2*('
1#2 2'4+', 0#,' 5+ U9M ,'1'0(+ %'2 jVJ"? :65/' (6' 2*(' 1#2 &':/< ,'.'/#%',
+#1(:*2' 5+ b9L ,'1'0(+ %'2 jVJ"9 `#2 *& *%%/50*(5#& (6*( :*+ 0#$%#+', #1 NO
%'20'&( 2'4+', 0#,'? (6' ,'1'0( 2*(' :*+ W9U ,'1'0(+ %'2 jVJ"—* cL %'20'&(
5$%2#.'$'&( 12#$ (6' ';%'0(', 2*('? 6*, (6' *%%/50*(5#& 8''& ,'.'/#%',
:5(6#4( 2'4+'9 R'&2< *&, `*//'2 ^REIMc_ 2'%#2( * ac %'20'&( 5$%2#.'$'&( 5&
@4*/5(<9 C/(6#476 *&'0,#(*/ 2'%#2(+ +%*& * 2'*+#&*8/< :5,' +%'0(24$ #1 @4*/5(<
5$%2#.'$'&( %'20'&(*7'+? 5( 5+ 1*52 (# +(*(' (6*( 2'4+' %2#.5,'+ * &#&(25.5*/
8'&'15( 5& ('2$+ #1 (6' @4*/5(< *&, 2'/5*85/5(< 1#2 ,'/5.'2', +#1(:*2'9
8T T0",74'232'AC X6'& 2'4+*8/' 0#$%#&'&(+ *2' *%%/5', (62#476#4( (6' +#1(:*2'
%2#0'++? /'++ (5$' 5+ +%'&( 02'*(5&7 (6' %/*&+? $#,'/+? ,#04$'&(+? 0#,'? *&, ,*(*
(6*( *2' 2'@452', (# 02'*(' * ,'/5.'2*8/' +<+('$9 A( 1#//#:+ (6*( (6' +*$' /'.'/ #1
14&0(5#&*/5(< 5+ ,'/5.'2', (# (6' 04+(#$'2 :5(6 /'++ 5&%4( '11#2(9 R'&0'?
%2#,40(5.5(< 5+ 5$%2#.',9 C/(6#476 %'20'&(*7' %2#,40(5.5(< 5$%2#.'$'&( 2'%#2(+
*2' &#(#25#4+/< ,511504/( (# 5&('2%2'(?O 5( *%%'*2+ (6*( aU (# cU %'20'&( 2'4+' 0*&
2'+4/( 5& %2#,40(5.5(< 5$%2#.'$'&(+ 5& (6' Wc –bU %'20'&( 2*&7'9
0T !"+'C >6' &'( 0#+( +*.5&7+ 1#2 2'4+' *2' '+(5$*(', 8< %2#='0(5&7 (6' 0#+( #1 (6'
%2#='0( 51 5( :'2' ,'.'/#%', 12#$ +02*(06? !+? *&, (6'& +48(2*0(5&7 (6' +4$ #1 (6'
7/23/2019 Component Based Devvv
http://slidepdf.com/reader/full/component-based-devvv 21/25
0#+(+ *++#05*(', :5(6 2'4+'? !0 ? *&, (6' *0(4*/ 0#+( #1 (6' +#1(:*2' *+ ,'/5.'2',?
!, 9 !+ 0*& 8' ,'('2$5&', 8< *%%/<5&7 #&' #2 $#2' #1 (6' '+(5$*(5#& ('06&5@4'+9
>6' 0#+(+ *++#05*(', :5(6 2'4+'? !0 ? 5&0/4,'
• Domain analysis and modeling.
• Domain architecture development. • Increased documentat5#& (# 1*05/5(*(' 2'4+'9
• Support and enhancement of reuse components.
• Royalties and licenses for externally acquired components.
• Creation or acquisition and operation of a reuse repository.
• Training of personnel in design and construction for 2'4+'9
C/(6#476 0#+(+ *++#05*(', :5(6 ,#$*5& *&*/<+5+ *&, (6' #%'2*(5#& #1 * 2'4+'
2'%#+5(#2< 0*& 8' +48+(*&(5*/? $*&< #1 (6' #(6'2 0#+(+ &#(', 6'2' *,,2'++ 5++4'+
(6*( *2' %*2( #1 7##, +#1(:*2' '&75&''25&7 %2*0(50'? :6'(6'2 #2 &#( 2'4+' 5+ *
%25#25(<.
WU9 3(0& J%8;10,0 Z0,%@ =&'*+&*'6 N(,%&0- :' ,'15&', * +(240(42' %#5&( *+ *&
*2065('0(42*/ %*(('2& (6*( 2'042+ (62#476#4( * %*2(504/*2 *%%/50*(5#& ,#$*5&9 C
+#1(:*2' ,'+57&'2 S#2 +<+('$ '&75&''2T 0*& ,'.'/#% *& *2065('0(42' 1#2 * &':
*%%/50*(5#&? +<+('$? #2 %2#,40( 8< ,'15&5&7 * ,#$*5& *2065('0(42' *&, (6'&
%#%4/*(5&7 5( :5(6 +(240(42' %#5&(+9 >6'+' +(240(42' %#5&(+ *2' '5(6'2 5&,5.5,4*/
2'4+*8/' 0#$%#&'&(+ #2 %*0B*7'+ #1 2'4+*8/' 0#$%#&'&(+9 D5&0' *// +(240(42'
%#5&(+ S*&, 2'4+*8/' 0#$%#&'&(+ 5& 7'&'2*/T 6*.' * %*+( 65+(#2<? 0#+( ,*(* 0*& 8'
0#//'0(', 1#2 '*069 A& *& 5,'*/ +'((5&7? (6' @4*/5150*(5#&? *,*%(*(5#&? 5&('72*(5#& *&,
$*5&('&*&0' 0#+(+ *++#05*(', :5(6 '*06 0#$%#&'&( 5& * 2'4+' /582*2< 5+ $*5&(*5&',
1#2 '*06 5&+(*&0' #1 4+*7'9 >6'+' ,*(* 0*& (6'& 8' *&*/<F', (# ,'.'/#% %2#='0(',
0#+(+ 1#2 (6' &';( 5&+(*&0' #1 2'4+'9
"#&+5,'2 * &': *%%/50*(5#&? U ? (6*( 2'@452'+ NU %'20'&( &': 0#,' *&, (6' 2'4+' #1
(62'' +(240(42' %#5&(+? DPL? DPW? *&, DPa9 E*06 #1 (6'+' 2'4+*8/' 0#$%#&'&(+ 6*+
8''& 4+', 5& * &4$8'2 #1 #(6'2 *%%/50*(5#&+ *&, *.'2*7' 0#+(+ 1#2 @4*/5150*(5#&?
*,*%(*(5#&? 5&('72*(5#&? *&, $*5&('&*&0' *2' *.*5/*8/'9
># '+(5$*(' (6' '11#2( 2'@452', (# ,'/5.'2 U ? (6' 1#//#:5&7 $4+( 8' ,'('2$5&',Z
#.'2*// '11#2( m R &': k R @4*/ k R *,*%( k R 5&(
:6'2'
R &': m '11#2( 2'@452', (# '&75&''2 *&, 0#&+(240( &': +#1(:*2' 0#$%#&'&(+
R @4*/ m '11#2( 2'@452', (# @4*/51< DPL? DPW? *&, DPa9
R *,*%( m '11#2( 2'@452', (# *,*%( DPL? DPW? *&, DPa9
R 5&( m '11#2( 2'@452', (# 5&('72*(' DPL? DPW? *&, DPa9
>6' '11#2( 2'@452', (# @4*/51<? *,*%(? *&, 5&('72*(' DPL? DPW? *&, DPa 5+ ,'('2$5&',
8< (*B5&7 (6' *.'2*7' #1 65+(#250*/ ,*(*
7/23/2019 Component Based Devvv
http://slidepdf.com/reader/full/component-based-devvv 22/25
."# 9,08):8%&8@60 (2 379-
>6' $*5& ,5+*,.*&(*7'+ #1 ")- *2' 75.'& 8'/#:Z
L9 5( 5+ .'2< ,511504/( (# 845/, (6' '&.52#&$'&( (6*( 5+ 15((', (# 0#$%#&'&(
W9
"#&0'%( #1 2'4+'Z A,'*//< +%'*B5&7? +(*&,*2,+ *2' &'',', 2'7*2,5&7 $5,,/':*2' 5&:6506 (6' 0#$%#&'&( 5+ +4%%#+', (# :#2B9 SG5,,/':*2'Z C 0#$$4&50*(5#& /*<'2
:6506 '&*8/'+ 0#$%#&'&(+ (# 5&('2*0( :5(6 6576'2 /'.'/ 0#$%#&'&( 5& * &'(:#2BT9
)4( *$#&7 (6' (62'' +(*&,*2,+ *.*5/*8/'? #&/< "JY)C 5+ /*&74*7' 5&,'%'&,'&(9
R'&0' (6' 0#$%*25+#& 5+ &#( .5*8/' *$#&7 (6' +(*&,*2,+9
..# J):8%&8@60 (2 379-
L9 1/';585/5(<Z 24&(5$' 0#$%#&'&(+ 0*& :#2B 5&,'%'&,'&(/< 51 %2#%'2/< ,'+57&', *&,
(6'< *2' /'++ ,'%'&,'&( #& (6' '&.52#&$'&(
W9
Y'4+'Z J&0' ,'.'/#%',? 5( 0*& 8' 4+', '.'2<:6'2' 2'7*2,5&7 (6' %2#72*$$5&7/*&74*7' *&, JD9 )4( ,#$*5& '&75&''25&7 +6#4/, 8' B'%( 5& $5&,
a9 E*+< (# $*5&(*5& 8'0*4+' 5,'*//< (6' 14&0(5#&*/5(< 5+ 5$%/'$'&(', #&0'
b9 ,'.'/#%$'&( 0#+( 5+ $406 /#:'2
c9 V'++'2 (5$' 2'@452', (# 845/, (6' +#1(:*2'
.<# J):8%+646%& ,% 3(45(%6%& 7806) J55'(8+K-
"#$%#&'&(38*+', D#1(:*2' E&75&''25&7 S")DET 6*+ '$'27', *+ * ('06&#/#7< 1#2 (6'
2*%5, *++'$8/< #1 1/';58/' +#1(:*2' +<+('$+9 ")DE 0#$85&'+ '/'$'&(+ #1 +#1(:*2'
*2065('0(42'? $#,4/*2 +#1(:*2' ,'+57&? +#1(:*2' .'25150*(5#&? 0#&15742*(5#& *&,
,'%/#<$'&(9 ># 1#+('2 ';06*&7' *&, 0#//*8#2*(5#& :5(6 (6' +#1(:*2' *2065('0(42'
0#$$4&5(<? ")DE 5+ 0#/#0*(', :5(6 (6' ]4*/5(< #1 D#1(:*2' C2065('0(42'+ "#&1'2'&0'
S]#DCT *&, (6' A&('2&*(5#&*/ D<$%#+54$ #& C2065('0(5&7 "25(50*/ D<+('$+ SADCY"DT*+
%*2( #1 (6' 1','2*(', "#$%C206 '.'&(9
>6' (6'#2'(50*/ 1#4&,*(5#&+ #1 0#$%#&'&( +%'05150*(5#&? 0#$%#+5(5#&? *&*/<+5+ *&,
.'25150*(5#& 0#&(5&4' (# %#+' 2'+'*206 06*//'&7'+9 X65/' (6' '&75&''25&7 $#,'/+ *&,
$'(6#,+ 1#2 0#$%#&'&( +#1(:*2' ,'.'/#%$'&( *2' +/#:/< $*(425&7? &': (2'&,+ 5&
7/#8*/ +'2.50'+? ,5+(2584(', +<+('$+ *2065('0(42'+? *&, /*27' +0*/' +#1(:*2' +<+('$+
(6*( 02#++ #27*&5F*(5#&*/ 8#4&,*25'+ %4+6 (6' /5$5(+ #1 '+(*8/5+6', *&, ('+(',
0#$%#&'&(38*+', $'(6#,+? (##/+ *&, %/*(1#2$+Z
$#,'/3,25.'& ,'.'/#%$'&( *&, 725, ('06&#/#75'+ :5(6 (6'52 65763%'21#2$*&0'
,'$*&,+ 5& $*++5.' ,*(* +(#2*7'? 0#$%4(*(5#&*/ 0#$%/';5(< *&, 7/#8*/ 0#3
+06',4/5&7 #1 +05'&(5150 $#,'/+ 5& 1/*7+65% +05'&0'? ('06&#/#7< *&, $',505&'
2'+'*206h
7/23/2019 Component Based Devvv
http://slidepdf.com/reader/full/component-based-devvv 23/25
7/#8*/ +#1(:*2' ,'.'/#%$'&( :5(6 5(+ /#:'25&7 #1 0#+( #1 +#1(:*2' 0*%*85/5(5'+ *&,
%2#,40(5#&? (62#476 *4(#$*(5#&? #113+6#25&7 *&, #4(+#4205&7 #1 B'< 0#$%#&'&(+
*&, +48+<+('$+h
&'(:#2B', '&('2%25+' 5&1#2$*(5#& +<+('$+ *&, +'2.50'+ *2065('0(42'+ 02#++5&7
'&('2%25+'? &*(5#&? /'7*/ *&, ,5+05%/5&' 8#4&,*25'+h +651( 12#$ S7/#8*//< ,5+(2584(',T +#1(:*2' %2#,40(+ (# %'2.*+5.' *&, 485@45(#4+
+'2.50'+ +4%%#2(', 8< ,''% +#1(:*2'35&('&+5.' 5&12*+(240(42'+ *&, $5,,/':*2' *&,
8< 5&02'*+5&7/< 1/';58/'? *,*%(5.' *&, *4(#&#$#4+ 0/5'&( *&, *%%/50*(5#& +'2.'2
+#1(:*2'9
A& (6' ")DE WULU ('06&50*/ +<$%#+54$ 1#//#:5&7 (#%50+ :'2' ,5+04++', 8*+', #&
2'0'&( *,.*&0'$'&( 5& 0#$%#&'&( 8*+', *%%2#*069
-'+57& #1 0#$%#&'&( $#,'/+ >6'#25'+ S5&0/4,5&7 (*;#&#$5'+T #1 +#1(:*2' 0#$%#+5(5#& *&, 85&,5&7
"##2,5&*(5#& *&, 06#2'#72*%6< #1 0#$%#&'&( +#1(:*2'? +'2.50'+? :#2B1/#:+
Y4&3(5$' *,*%(*(5#& #1 0#$%#&'&(38*+', +<+('$+
A&('2*0(5#& 8'(:''& 0#$%#&'&( $#,'/+? +#1(:*2' *2065('0(42'+ *&, %2#,40(
/5&'+
"#$%#&'&(38*+', :'8 +'2.50'+ *&, +'2.50'3#25'&(', *2065('0(42'
-'0/*2*(5.'? 24/'38*+', $*&*7'$'&( #1 0#$%#&'&(38*+', +<+('$+
D#1(:*2' @4*/5(< *&, ';(2*314&0(5#&*/ %2#%'2(5'+ 1#2 0#$%#&'&(+ *&,
0#$%#&'&(38*+', +<+('$+
K/#8*/ 7'&'2*(5#&? *,*%(*(5#& *&, ,'%/#<$'&( #1 0#$%#&'&(38*+', +<+('$+
*&, +'2.50'+
"#$%#&'&(+ *&, 7'&'2*(5.' *%%2#*06'+
"#$%#&'&(+ *&, $#,'/3,25.'& ,'.'/#%$'&(
D%'05150*(5#&? .'25150*(5#& *&, ('+(5&7 #1 0#$%#&'&(38*+', +<+('$+
"#$%#+5(5#&*/ 2'*+#&5&7 ('06&5@4'+ 1#2 0#$%#&'&( $#,'/+
K/#8*/ $'*+42'$'&(? %2',50(5#& *&, $#&5(#25&7 #1 ,5+(2584(', *&, +'2.50'
0#$%#&'&(+
P*(('2&+ *&, 12*$':#2B+ 1#2 0#$%#&'&(38*+', +<+('$+ *&, +'2.50'+
A&('72*(', (##/ 06*5&+ *&, $'(6#,+ 1#2 845/,5&7 0#$%#&'&(38*+', +'2.50'+
"#$%#&'&(+ 1#2 &'(:#2B', 2'*/3(5$' 5&1#2$*(5#& +<+('$+ *&, +'&+#2
&'(:#2B+h
A&,4+(25*/ ';%'25'&0' 4+5&7 0#$%#&'&(38*+', +#1(:*2' ,'.'/#%$'&(h
E$%5250*/ +(4,5'+ 5& 0#$%#&'&(38*+', +#1(:*2' '&75&''25&7h
>'*065&7 0#$%#&'&(38*+', +#1(:*2' '&75&''25&7
7/23/2019 Component Based Devvv
http://slidepdf.com/reader/full/component-based-devvv 24/25
.E# F'@8%,P8&,(% )(,%@ 379-
Y'/*(5.'/< 1': #27*&5F*(5#&+ 6*.' +(*2(', ,#5&7 ")- +'25#4+/<9 A( 5+ 8'5&7 *,#%(',
1*+('2 5& +#$' 5&,4+(25'+ (6*& #(6'2+ 3 &#(*8/< 5&+42*&0' *&, #(6'2 15&*&05*/ +'0(#2+?
*&, ('/'0#$+9 G*&< #(6'2 #27*&5F*(5#&+ *2' 6#/,5&7 * :*(065&7 825'1 3 (6'< *2'
*(('&,5&7 5&,4+(2< *&, .'&,#2 825'15&7+? #2 =#5&5&7 (6' ")- `#24$? 84( 6*.' &#( <'(
+(*2(', ,#5&7 ")- +'25#4+/<9 C &4$8'2 #1 /*27' +#1(:*2' .'&,#2+ 6*.' $*,' * $*=#2
0#$$5($'&( (# "#$%#&'&(3)*+', -'.'/#%$'&(? 5&0/4,5&7 `#2('? A)G? G502#+#1(?
DCP? D('2/5&7 *&, D4&
.H# =*448'1-
"#$%#&'&(38*+', +#1(:*2' '&75&''25&7 #11'2+ 5&6'2'&( 8'&'15(+ 5& +#1(:*2' @4*/5(<?
,'.'/#%'2 %2#,40(5.5(<? *&, #.'2*// +<+('$ 0#+(9 C&, <'(? $*&< 2#*,8/#0B+ 2'$*5& (#
8' #.'20#$' 8'1#2' (6' ")DE %2#0'++ $#,'/ 5+ :5,'/< 4+', (62#476#4( (6' 5&,4+(2<9
A& *,,5(5#& (# +#1(:*2' 0#$%#&'&(+? * .*25'(< #1 2'4+*8/' *2(51*0(+ 0*& 8' *0@452',
8< * +#1(:*2' '&75&''29 >6'+' 5&0/4,' ('06&50*/ 2'%2'+'&(*(5#&+ #1 (6' +#1(:*2'
S'979? +%'05150*(5#&+? *2065('0(42*/ $#,'/+? ,'+57&+T? ,#04$'&(+? ('+( ,*(*? *&, '.'&
%2#0'++2'/*(', (*+B+ S'979? 5&+%'0(5#& ('06&5@4'+T9 >6' ")DE %2#0'++ '&0#$%*++'+
(:# 0#&0422'&( +48%2#0'++'+—,#$*5& '&75&''25&7 *&, 0#$%#&'&(38*+',
,'.'/#%$'&(9 >6' 5&('&( #1 ,#$*5& '&75&''25&7 5+ (# 5,'&(51<? 0#&+(240(? 0*(*/#7? *&,
,5++'$5&*(' * +'( #1 +#1(:*2' 0#$%#&'&(+ 5& * %*2(504/*2 *%%/50*(5#& ,#$*5&9
"#$%#&'&(38*+', ,'.'/#%$'&( (6'& @4*/515'+? *,*%(+? *&, 5&('72*('+ (6'+'0#$%#&'&(+ 1#2 4+' 5& * &': +<+('$9 A& *,,5(5#& 0#$%#&'&(38*+', ,'.'/#%$'&(
'&75&''2+ &': 0#$%#&'&(+ (6*( *2' 8*+', #& (6' 04+(#$ 2'@452'$'&(+ #1 * &':
+<+('$? C&*/<+5+ *&, ,'+57& ('06&5@4'+ 1#2 2'4+*8/' 0#$%#&'&(+ ,2*: #& (6' +*$'
%25&05%/'+ *&, 0#&0'%(+ (6*( *2' %*2( #1 7##, +#1(:*2' '&75&''25&7 %2*0(50'9
Y'4+*8/' 0#$%#&'&(+ +6#4/, 8' ,'+57&', :5(65& *& '&.52#&$'&( (6*( '+(*8/5+6'+
+(*&,*2, ,*(* +(240(42'+? 5&('21*0' %2#(#0#/+? *&, %2#72*$ *2065('0(42'+ 1#2 '*06
*%%/50*(5#& ,#$*5&9
`': B'< %#5&(+ 2'7*2,5&7 ")DE 5+ $'&(5#&', 8'/#:Z
L9
")DE P2#0'++ 6*+ (:# +483%2#0'++ – -#$*5& '&75&''25&7 *&, ")-9W9 ")- 6*+ b *0(5.5(5'+ – ]4*/5150*(5#&? C,*%(*(5#&? 0#$%#+5(5#&? 4%,*(5#&9
a9 g3$#,'/ 5+ 4+', 1#2 (6' 0#$%#&'&( 8*+', +#1(:*2' /51'0<0/'9
b9 >6' #8='0( $#,'/ 7'&'2*//< 0#&1#2$+ (# #&' #2 $#2' +(*&,*2,+
SJGKd"JY)C? "JG? -"JG? i*.*)'*&T9
c9 "/*++5150*(5#& +06'$'+ '&*8/' (6' ,'.'/#%'2 (# 15&, *&, 2'(25'.' (6' 2'4+*8/'
0#$%#&'&(+
N9 "JY)C #8='0( $#,'/ 5+ 5&02'*+5&7/< 7*5&5&7 *00'%(*&0' *+ (6' 5&,4+(2<
+(*&,*2,? 02#++3%/*(1#2$? 02#++3/*&74*7' ,5+(2584(', #8='0( 0#$%4(5&7 $#,'/
\9
>6' ""G %2#72*$$5&7 $#,'/ 5+ +45(*8/' 1#2 ';5+(5&7 +'2.50' (# ,'.'/#% (6'
&';( 7'&'2*(5#& #1 6576/< +0*/*8/' ,5+(2584(', *%%/50*(5#&
7/23/2019 Component Based Devvv
http://slidepdf.com/reader/full/component-based-devvv 25/25
O9 C 0#$%#&'&( 8*+', *%%2#*06 0*& &#( 8' 4(5/5F', 51 (6' ,'.'/#%$'&(
%2#0'++'+ *2' &#( *,#%(', *00#2,5&7 (# ")DE %25&05%/'+
M9 ")- 6*+ * /#( #1 %2#$5+'+ 84( 5+ &#( +5/.'2 84//'(
.L# T626'6%+60-
^L_ Y#7'2 P2'++$*&? Software Engineering: A Practitioner’s Approach, Fifth Edition
^W_ Y#8'2( J21*5/? -*& R*2B'< !;2&%' I 8&03&0 T0"10*##2%1 /2'K !F69<5 M"K% V2;&A W
8"%+
^a_ P9i9 -'5('/? R9G9-'5('/? M<E< ."0 T0"10*##&0+
[4] Wang, Schimdt, O’Ryan F3&032&/ ". 'K& !F69< G",&;5 V2;&A W 8"%+ XYYY
^c_ "2&B#.50? V*2++#&? G506'/ "6*4,2#& !"#$"%&%'()*+&, ?&3&;"$#&%' T0"4&++ *%,
!"#$"%&%' O2.&4A4;&5 <99 !"0$"0*'& 6&+&*04K 5 E*+'&0*+5 8/&&,&% ^N_ i51'&7? n5*#+6*& V5? o65$5&7 V54 !"#$"%&%' 9*+&, 8".'/*0& R%12%&&02%1 – ZK&
L&&, '" O2%= G&'K", *%, 'K&20 ZK&"02&+5 >L> DD8Z 6&$"0' L" PPY
^\_ G*2(5& X52+5&7? < !"#$"%&%' 9*+&, <$$0"*4K '" <,*$'23& >+&0(4&%'024 T&03*+23&
5 [P'K
D%'&0%*'2"%*; 8A#$"+27# "% !"#$"%&%' 9*+&, 8".'/*0& R%12%&&02%15 XY[Y
^O_ D('%6'& >6'+5&7? ZK& M"A ". :7*;2.A2%1 82.'/*0& 2% 'K& <32"%24+ <0&*5 [P'K
D%'&0%*'2"%*; 8A#$"+27# "% !"#$"%&%' 9*+&, 8".'/*0& R%12%&&02%15 XY[Y