Content uploaded by Javier Gonzalez-Sanchez
Author content
All content in this area was uploaded by Javier Gonzalez-Sanchez on May 02, 2014
Content may be subject to copyright.
!"#$%&'()*+#"),%-'./"+01+#2%1#%%
3%4)11'"25&).'6%7#6',%8#"%921',,+:'21%;<1#"+2:%=>.1'$.%
%
?3@9AB%C D E F 3 GA F 5=3EHIAFJ%3"+K#2)%=1)1'%L2+*'".+1>%%
73B93%AGAE3%HI3@AF5AHIA3C3B3MJ%3"+K#2)%=1)1'%L2+*'".+1>%%
NLB;%@3EGAIEJ%3"+K#2)%=1)1'%L2+*'".+1>%%
O9E=GDO%&LBGA=DEJ%3"+K#2)%=1)1'%L2+*'".+1>%%
921',,+:'21%;<1#"+2:%=>.1'$.%)"'%.#81P)"'%)00,+/)1+#2.%/)0)Q,'%#8%/#$ 0,'$'2 1+2:%)26%'2()2/+2:%1('%,')"2+2:%0"#/'..%Q>%0"#*+6+2:%6+"'/1%
/<.1#$+K'6%+2.1"</1+#2%)26%8''6Q)/R%1#%.1<6'21.%+2%*)"+#<.%6+./+0,+2'.S%3,1(#<:(%921',,+:'2 1 %;<1#"+ 2 : %=>.1'$ . %/#<,6%6+88'"%P+6',>%+2%1('+"%
)11)/('6% R2#P ,'6:'%Q).'.%)26%<.'"%+21'"8)/'.%T+2/,<6+2:%+21'")/1+#2%$'/()2+.$.UJ%1('+"%Q'()*+#".%)"'%V<+1'%.+$+,)"S%;('" ' 8# " 'J%+1%$<.1%Q' %
0#..+Q,'%1#%'.1)Q,+.(%)%/#$$ #2%.#81P)"'% $# 6',!8#"%1('$S%3%/#$$#2%.#81P)"'%$#6',%+.%)%. 1'0 %8#"P)"6%1#%$# *' %1('.'%.>.1'$.%8"# $ %0"##85
#85/#2/'01.%)26%)/)6'$+/%"'.')"/(%1##,.% 1#%P+6',>%)*)+,)Q,'%1##,.%+2%./(##,.%)26%(#$'.S% %;('%P#"R%"'0#"1'6% ('"'%)66"'..'.W%TXU%1 ('%<.'%#8%
-'.+:2%4)11'"2.%1#% /"')1'%)2% #QY'/15#"+'21'6% .#81P)"'% $#6',% 8#"% 921',,+:'21% ;<1#"+2:% =>.1'$.Z% T[U% #<"% '\0'"+'2/'% <.+2:% 1(+.% $#6',%+2% )%
1("''5>')"% 6'*',#0$'21% 0"#Y'/1% )26% +1.% +$0)/1% #2% 8)/'1.% .</(% ).% /"')1+2:% )% /#$$#2% ,)2:<):'% )$#2:% .1)R'(#,6'".J% .<00#"1+2:% )2%
+2/"'$'21),%6'*' ,# 0 $'21J%)26%)6Y<.1$'21%1#%)%(+:(,>%.(+81+2:%6'*',#0$'21%1')$Z%)26%T]U%1('%V<),+1+'.%)/(+'*'6%)26%1")6'5#88.%$)6'S%%
H)1':#"+'.% )26% =<QY'/1% -'./"+01#".W% D.2.10% ^Software! Engineering_W% -'.+:2 Z% D.2.11% ^Software! Engineering_W% =#81P)"'% 3"/(+1'/1<"'Z%
D.2.13%^Software!Engineering_W%B'<.)Q,'%=#81P)"'S%
C'2'"),%;'"$.W%-'.+:2S%
366+1+#2),%N'>%O#"6.%)26%4(").'.W%-'.+:2%0)11'"2.J%/#$0#2'21%$#6',J%+21',,+:'21%1<1#"+2:%.>.1'$.J%Q'()*+#"),%6'./"+01+#2S%
ACM!Reference!Format:!!
C#2K),'K5=)2/('KJ%?SJ%H()*'K5A/('):)")>J%7SASJ%@)2G'(2J% N SJ%)26%&<",'.#2J%OS%[`XXS%!"#$% &'()*+#"),%-'./"+01+#2%1#%3%4)11'"25&).'6%7#6',%
8#"%921',,+:'21%;<1#"+2:%=>.1'$.S%Y2%[J%]J%3"1+/,'%X%TD/1#Q'"%[`XXUJ%X[%0):'.S%
%
1. 9E;BD-L H ;9D E %
921',,+:'21% ;<1#"+2:% =>.1'$.% T9;=U% /#$0,'$'2 1.% )26% '2()2/'. % 1('% ,')"2+2:% 0"#/'.. % Q>% #88'"+2:% .<00#"1% 8#"%
.1<6'21.% )26% /#$0,'$'21+2:% 1('% 1')/('"a.% ,)Q#"S% ;('"'% )"'% $)2>% 6+./<..+#2.% )Q#<1% 9;=% 0'6):#:+/),% )26%
+2.1"</1+#2),%6'.+:2J%.</(% ).%T32 6' ".#2% '1%) ,S% XbbcJ%& )R' "% '1%),S% [``bJ%)26% E',.#2%[``dUJ% Q<1%2#1%)Q#<1% 1('+"%
1'/(2+/),%+$0 ,' $ ' 2 1) 1+# 2 S%%
%
;('% P#"R% 6'./"+Q'6% ('"'% +.% 0)"1% #8% 1('% 1'/(2+/),% +$0,' $'21)1+#2 % #8% )2 % 9; =J% 2) $'6% 388'/1+* '% 7 ' 1) % ;< 1# " %
T37;US% ;('% 37;% 0"#Y'/1% )+$.% 1#% <.'% )2% )88'/1+*'% ,')"2+2:% /#$ 0)2+#2% 1#% $#1+*)1'% .1<6'21.% 1#% 0'"$)2'2 1,>%
)6#01% '88'/1+*'% $'1)5/#:2+1+*'% .1")1':+'.% T37;% [`X[US% ;('% 37;% 0"#Y'/1% ,##R.% 1#% +$0"#*'% 9;=% 2#1% #2,>% Q>%
)66+2:%1(#.'% 2'P% ','$'21.% T$'1)51<1#"+2:% .1")1':+'.% ) 26 % )88'/ 1+*'% ,') "2+2: % /# $ 0)2 +#2.U J% Q<1% ),.#% Q>% 1)R+2:%
)6*)21):'%#8%0"'*+#<.%'\0'"+'2/'.%P+1(%9;= % +$0,'$ '21) 1+#2.% 8"#$% 1('%9;= % /#$$< 2+1>% 1#%0 "#*+6' % )%.#81P )"'%
8")$'P #" R% 8# "% 6'.+:2+2:% 9;= % Q ).'6 % #2 % )% Q'()*+#"),% 6'./"+01+#2Z% $#6',+2:% $'1)51<1#"+2: % /)0) Q+,+1+'.% )26 %
,')"2+2:%/#$ 0 )2 +#2 .%$#6<,'.%+.%2 #1%0 )"1 %#8%1( +.%0) 0' "%) 26 %+.%,'81%) .%8 <1<"'%P#"RS%
%
32%)2),>.+.%)26%/#$0)"+.#2%#8%'\+.1+2:%9;=%P).%$)6'%+2 %T@)2 G ' (2 %[`` e US%;( ' %)2),>.+.%+2/,<6'6%)%6+*'".'%
.'1% #8% 9;=% .< /(% ).% )2% 9;=% 8#"% 3,:'Q")% +2% I+:(% =/(##,% T326'".#2% '1% ),S% XbbcUZ% )% 1<1#"% 8#"% 0(>.+/.% +2% H #,,':'%
T@)2G'(2%'1%),S% [``cUZ%)%1<1#"%8#"%V< ),+1) 1+* '%"').#2+2:%+2 %2 ) 1< ") ,%,)2:<):'%TC")'..'"%'1%),S%[``fUZ%)%.+$ <,)1'65
O'%)"'%:")1'8<,%1#%I+"#2#"+%O).(+K)R+%8#"% (+.% .<0 0 #" 1% 6< "+2 :% 1(' % P" +1+2 :% 0" #/ '.. % #8% 1(+.% 0)0 ' "S% ;( +.% P# "R % +.% .<00 # "1' 6 % Q>% 1(' % E) 1+# 2) ,%
=/+'2/'% !#<2 6)1+#2J%+2/,<6+2:%1('%8#,,#P+2:%:")21.W%TXU%99=gIHH%388'/1+*'%G')"2+2:%H#$ 0)2+#2.W%7 #6',+2:%)26%.<00#"1+2:% '$#1+#2%6<"+2:%
,')"2+2:%Th`d`cii]UZ%)26%T[ U%-''0 '"%7 #6 ',+2:%*+)%388'/1+*'%7'1)51<1#"+2:%T-BG5%`bX`[[XUS%
3<1(#"j.%)66"'..W%?)*+'"%C#2K),'K5=)2/('KJ%L2+*'".+1>%-"+*'%)26%7+,,%3*'2<'J%;'$0'%3F%ic[idZ%'$)+,W%Y)*+'":.k).<S'6<Z%3<1(#"a.%)66"'..W%
7)"+)5A,'2)%H()*'K5A/('):)")>J%L2+*'".+1>%-"+*'%)26% 7+,,%3*'2<'J%;'$0'%3F%ic[idZ%'$)+,W% (','2/()*'Kk).<S'6<Z%3<1(#"j.%)66"' .. W%N<"1 %
@)2G'(2J% L2+*'".+1>% -"+*'% )26% 7 +,,% 3*'2<'J% ;'$0'% 3F% ic[idZ% '$)+,W% R<"1(*)2,'2k).<S'6<Z% 3< 1( # " a.% )6 6 "' .. W% O +2 .,# P% &<",'.#2J%
L2+*'".+1>%-"+*'%)26%7+,,%3*'2<'J%;'$0'%3F%ic[idZ%'$)+,W%P+2.,#PSQ<",'.#2k).<S'6<%%
4'"$+..+#2%1#%$)R'%6+:+1),%#"%()"6%/#0+'.%#8%),,%#"% 0)"1%#8%1(+.% P#"R%8#"%0'".#2),%#"%/,).."##$%<.'%+.%:")21'6%P+1(#<1%8''%0"#*+6'6%1()1%
/#0+'.%)"'%2#1%$)6'%#"%6+.1"+Q<1'6%8#"%0"#8+1%#"%/#$$'"/+),%)6*)21):'%)26%1()1%/#0+'.%Q')"%1(+.%2#1+/'%)26%1('%8<,,%/+1)1+#2%#2%1('%8+".1%0):'S%
;#%/#0>%#1('"P+.'J%1#%"'0<Q,+.(J%1#%0# .1%#2%.'"*'".%#"%1#%"'6+.1"+Q<1'%1#%,+.1.J%"'V<+"'.%0"+#"%.0'/+8+/%0'"$ +..+#2S%3%0"',+$+2)">% *'".+#2%#8%
1(+.%0)0'"%P).%0"'.'21'6%+2%)%P"+1'".j%P#"R.(#0%)1%1('%Xi1(%H#28'"'2/'%#2%4)11'"2%G)2:<):'.%#8%4"#:")$.%T4G#4US%4G#4jXXJ%D/1 # Q ' " %[X5
[]J%4#"1,)26J%D"':#2J%L=3S%H#0>"+:(1%[`XX%+.%(',6%Q>%1('%)<1(#"T.US%3H7%bdi5X5fc`]5X[i]5d
!"#$%&'()*+#"),%-'./"+01+#2%1#%3%4)11'"25&).'6%7#6',%8#"%921',,+:'21%;<1#"+2:%=>.1'$.W%4):'%5%[%
Q).'6%1<1#"% 8#"% "'0)+"+2:% )*+#2+/% ','/1"#2+/%'V<+0$ '21% TN)1K% '1% ),S%XbbiUZ % )26% )2% 9;=% 1#% 1')/(%=lG% ,)2:<):'%
T7+1"#*+/% [`` ]US% ;('% )2),>.+.% )26% /#$0)"+.#2% /#2/,<6'6% 1( )1% #2,>% )% 8'P% 0'6):#:+/ ),% 8')1<"'.% ()*'% Q'' 2 %
+2*'21'6 % )26% 1()1% '\+.1+2:% 9;= % #88'"'6% 6+88'"'21% /#$Q+2)1+#2.% #8% 1(#.'% 8')1<"'.S% % 91% ),.#% /,)+$'6% 1()1% 9;=%
Q'()*+#".%)"'%.+$+,)"%Q<1%1('%9;=%6+88'"%P+6',>%+2%1('+"%.#81P)"'%+$0,'$'21)1+#2S%
%
!"#$%)%.#81P)"'%'2:+2''"+2:%0'".0'/1+*'J%1(+.%*)"+'1>%+2%.#81P)"'%+$0,'$'21)1+#2%.(#P.%) %,)/R%#8%1('% <.' %# 8%
.#81P)"'%'2:+2' '"+2:% 1'/(2+V<'.%)2 6% $'1(#6#,#:+'.% +2%1('%6 '*',#0$'21% #8%1(+.%R+26%#8%.>.1'$.J%Q'/)<.'%1(' %
.)$'%.0'/+8+/)1+#2.%)"'%/"')1+2:%6+88'"'21%0"#6</1.S%=<Q.'V<'2 1,>J%+1%P+,,%Q'%*),<) Q,'%1#%' .1)Q,+.(%)%$#6',%1()1%
$#*'.%8"#$%1('%9;=%Q'() *+#"%6 './"+01+#2 %1#%1( '%.> .1'$ %+$ 0 ,'$ '2 1)1+#2S%3 2%# 01+$ ),%$ # 6',%. (#< ,6%Q '%/)0 )Q ,'%#8%
.)1+.8>+2:%1('% "'V<+"'$ '2 1.% #8% 9; =%)26% 0"#*+6+2:%6'.+"'6% .#81P)"'%V<),+1+'.S%;(+.%0)0'"%6'./"+Q'.%#<"%)00"#)/(%
1#%)66"'..%1('%6'.+:2%#8%1(+.%$#6',%P+1(+2%)%/#21'\1%6"+*'2%Q>%1("''%R'>%','$'21.W%
%
• Incremen ta l! r eq u ire m e n tsS% 37;% "'V<+"'6% +2/"'$'2 1),% '* #,<1+#2% ),#2:% 1("''5>')".Z% 6'*',#0+2:% )2% 9;=%
1('%8+".1%>')"J%)66+2:%$'1)51<1# "+2:%.<0 0#"1%1('%.'/ #26 %>')"J%)26 %+2 / ,< 6+2 : %)88'/1+*'%,')"2+2:%/#$ 0)2+#2.%
1('%1(+"6%>')"S%B'.')"/(%"'.<,1.%)2 6%<. '"%'\0 '"+'2/' %"'0#"1. %6"#*'%2'P%"'V<+"'$'21.S%%%%
• Changing! requirementsS% ='*'"),% )26 % 6+*'".'% "'.')"/(% )00"#)/('.% P'"'% 1'.1'6% ).% 0)"1% #8% 1('% 0 "#Y'/1%
+$0,'$ '2 1 )1 +# 2 S% !#"% ')/(% )00"#)/(% )% .#,+6% .> .1'$% P).% "',').'6% )26% 1'.1'6% P+1(% .1<6'21.S % B'.')"/(%
8+26+2:.%P'"'%1")2.,)1'6%+21#%/ () 2 : '. %+2%1 (' %.> .1 '$S%
• Shifting! development! teamS% ;('% 6'*',#0$'21% 1')$J% /#$0#.'6 % #8% <26'":")6<)1'% .1<6'21.J% .(+81'6%
/#2.1)21,>%5%'*'">%f%1#%e%$#21(.S%
%
92% 1(+.% /#21'\1J% P'% /(#.'% 1#% +2 / #" 0 #" ) 1'% 6'.+:2% 0)11'"2.% 1#% .1)26)"6+K'% )2% #QY'/15#"+'21'6% $#6',% 8#"% 9;=%
8<2/1+#2) ,+1>%1()1%6"+*' .%1('%P ) >%+2%P(+/( %.#81P)"'%+.%6'*',#0'6S%O'%$)00'6% 1('%8<2/1+#2),%6'./"+01+# 2 %#8%9; =%
Q'()*+#"% :+*'2% +2% T@)2G'(2% [``eU% +21#% )% .#81P)"'% $#6 ',% <.+2:% .#$'% #8% 1('% mC)2:% #8% !#<"n% TC#!U% 6'.+:2%
0)11'"2.% TC)$$)% '1% ),S% XbbcUZ% C#!% 6'.+:2% 0)11'"2.% P'"'% /(#.'2% Q'/)<.'% 1('>% )"'% /,)..+/% 0)11'"2.% #81'2%
/#2.+6'"'6%1('%8#<26)1+#2%8#"%),,%#1('"%0)11'"2.S%L.+2:%C#!%6'.+:2%0)11'"2.%P'%)66"'..'6%1('%/"')1+#2%#8%1('%
$#6',%)26%.#<:(1%1#%+2/#"0#")1'%#2%+1%2#258<2/1+#2 ) ,%"'V<+"'$'2 1.%T+S'S%.#81P )"'%V<),+1>%8)/1#".U%0 )"1+/<,)",>%
"'<.)Q+,+1>J% '\1'2.+Q+,+1>J% )26% )6)01)Q+,+1>% T9AAA % XbbbUS% ;( ' .' % V < ) , +1 +' .% (',0% <.% 1#% )66"'..% 1('% /#21'\1<),%
','$'21.% $'21+#2'6% )Q #*'W% +2/"'$'2 1),% "'V<+"'$'2 1.J% /()2:+2:% "'V<+"'$'21.J% )26% )% .(+81+2:% 6' *',#0$ '2 1%
1')$S%O+1(%1(+.%)00"#)/(%P'%.'' R%1#%/#2 1"+Q<1'%$#*+2:%9;=%/#2.1"</ 1+#2 %8"# $ %.#81P)"'%6'* ',# 0 $'21%).%) %#2'5
#85)5R+26% '26')*#"% 1#% .#81P)"'% 6'*',#0$'21% ).% )% .>.1'$% #8% /#$0#2'21.% 1()1% )"'% P+6',>% <.'6% )26% (+:(,>%
)6)01)Q,'%T?)/#Q.#2%XbbdUS%%
%
;(+.% 0)0'"% +.% #":)2+K'6% ).% 8#,,#P.W% ='/1+#2% [% 0"#*+6'.% .#$'% 1'"$+2#,#:>% )26% Q)/R:"#<26% )Q#<1% 9;=J%
0)11'"2.J%)26%.#81P)"'%V<),+1+'.Z%='/1+#2%]%'\0,#"'.%9;=%8<2/1+#2),%.0 '/+8+/)1+#2%)26%1('%6'.+:2%0"#/'..%<.+2:%
0)11'"2.%1#%$#6',% 9;=%.#81P)"'% /#$ 0#2'21.Z% ='/1+#2% f%6'./"+Q'.%#<"%'\0'"+'2/'%<.+2:% 6'.+:2%0)11'"2.%+21#%1('%
37;%0"#Y'/1%)26%'*),<)1'.%0"#.%)26%/#2.Z%8+2),,>J%='/1+#2%c%/#2/,<6'.%1('%0)0 '"%)2 6%6 './"+Q'.%#2:#+2:%P#"RS%
O'%'\0'/1%6'*',#0'".%+2%9;=%)26%'6</)1+#2%1'/(2#,#:>%/#$$<2+1+'.%1#%8+26%1(+.%0)0'"%<.'8<,%).%)%"'8'"'2/'%)26%
).% )2% '\)$0,'% #8% 1('% <.'% )26% )6*)21):'.% #8% 6'.+:2% 0)11'"2.% 8#"% 6'*',#0+2:% .#81P)"'% .>.1'$.Z% 8#"% .#81P)" ' %
6'.+:2% /#$$<2+1>J% 1(+.% +.% )2% '\0'"+'2 /'% "' 0#"1% #8% )% "'.')"/(% :"#<0% <. +2:% 6 '.+:2 % 0) 11'"2.% 1#% +$0"#*'% +1.%
.#81P)"'%0"#/'..S%
%
2. &3HNCBDLE-%
;(+.%.'/1+#2%0"#*+6'.%Q)/R:"#<26% )Q#<1%9;=%.1"</1<"'%)26%/,)"+8+'.%.#$'%"',)1'6%1'"$+2#,#:>%<.'6%P+1(+2%1(+.%
0)0'"S% 91% ),.#% 0"#*+6'.% Q)/R:"#<26% +28#"$)1+#2% )Q#<1% 6'.+:2% 0)11'"2.J% )26% 1('% 6'8+2+1+#2% #8% 1('% .#81P)"'%
V<),+1+'.%'\0'/1'6%8#"%1('%0"#0#.'6%$#6',S%%
%
[SX 9;=%=1"</1<"'%
9;=%"'8'".%1#%)%/#$ 0<1'"%.>.1'$ % 1()1%)/1.%).% )%1<1#"%.( #P +2:%) 2%+21',,+:'21%P )>%1# %0"#* +6'%8''6Q) /R%)2 6%(+2 1.%1#%
.<00#"1% .1<6'21% )/(+'*'$'21% P(+,'% .#,*+2:% 1).R.S% 3% 1).R% "'8'".% 1#% )% $<,1+5$+2<1'% )/1+*+1>% )..+:2'6% 1#% 1('%
.1<6'21% Q>%1('%9;=S%;).R.%/)2% Q '%.R+00'6%#"%+21'"/()2:'6%P+1(%#1('"%1).R .S%A) / ( %#8%1( ' %) / 1+ # 2 . %1) R ' 2 %1# %)/ (+'*'%
)%1).R%+.%/),,'6%)%.1'0S%A)/(%1).R%/#2.+.1.%#8%$ <,1+0,'%.1'0.%)26%')/(%.1'0%+2*#,*'.%'*'2 1. %P+1( %)%L.'"%921'"8)/'%
!"#$%&'()*+#"),%-'./"+01+#2%1#%3%4)11'"25&).'6%7#6',%8#"%921',,+:'21%;<1#"+2:%=>.1'$.W%4):'%5%]%
T'+1('"%1("#<:(%)%1##,%#"%)2%'2*+"#2$'21US%%A)/(%1).R%"'V <+"'.%1('%< .'%#8%#2'%#"%$#"'%R2#P,'6:'%/#$0#2'21.%
1#%Q'%)//#$0,+.('6S%N2#P,'6:'%/#$0#2'21.%)"'%8"):$'21.%#8%0 '".+.1'21%6#$)+25.0'/+8+/%+28#"$ )1+#2%1()1%1( '%
.1<6'21%+.%'\0'/1'6%1#%,')"2S%N2#P,'6:'%/#$0#2'21.%)"'%/#21)+2'6%+2%)%R2#P,'6:'%Q).'S%
%
9;=%.1"</1<"'%+.%)%1("''5,)> '"%$#6',J%).%.(#P2%+2%!+:<"'%XJ%1()1%6'/#<0,'.%1('% N2#P,'6:'%&).'%)26%1('% L.'"%
921'"8)/'.%8"# $%1('%H#"'%#8%1('%9;=S%;('%6'./"+01+#2%#8%')/(%,)>'"%+.%).%8#,,#PW%
%
• Knowledge! Base!(KB)%+2/,< 6 ' .%6)1) %.1"</1 < "' .%)26 %6)1)Q ) .' .%8#"%.1#"+2: %)26%#":)2 +K+2 :%1('%+28#"$)1+#2%
+2.1"</1'6 % Q>% 1('% 9;=S% ;('% 0"#/'..% #8% 0<11+2:% 6)1)% +21#% 1('% N&% +.% /),,'6% )<1(#"+2:S% 3<1(#"+2:% +2*#,*'.%)%
(<$)2% '\0'"1% +21'")/1+2:% P+1(% )2% )<1(#"+2:% 1##,% 1#% 0"#*+6'% 1(+.% 6)1)S% D// ) .+ # 2 ) , ,> J% $)/(+2'5,')"2+2:%
),:#"+1($.%()*'%Q''2%<.'6%1#% /"')1'%1(+.%'\ 0'"1+.' S%3<1(#"+2:%)26%N&%"' 0"'.'2 1)1+#2%)"'%1#0+/.%# <1.+6' %#8%
1(+.%0)0'"S%
• User! Interfaces! (UI)% +2/,<6'% :")0( +/ ), % +21'"8) /' .% TP +2 6# P.J% Q<11#2.J% 1'\1J% )26% .#% #2U% )26 % +21'")/1+#2%
$'/()2+.$.% T8"#$% .+2:,'% R'>Q#)"6% '*'21.% 1#% $#"'% /#$0,'\% +21'"8)/'.% .</(% ).% $#1+#2% /)01<"'J% *#+/'%
"'/#:2+1+#2J%Q")+25/#$0 <1'"%+21'"8)/'J%)26%.#%#2US%
• Core!+$0 ,'$'21.% 1('% 9;= % Q'()*+#"S%O(+,'% N2#P,'6:'%&).'%)26%L.'"%921'"8)/'.%)"'% (+:(,>%6+88'"'21%8"#$%
#2'% 9;=%1#%)2#1('"J%1('%Q'()*+#"%#8%),,%#8%1('$% +.%V<+1'%.+$+,)"S%;('%H#"'%+.%/#$0#.'6%#8W%TXU%;).R%=','/1#"J%
P(+/(% 0"#*+6'.%)%;).R%T0"#Q,'$%#"%)/1+*+1>U%1( )1%1('%.1<6'2 1%$<.1%.#,*'Z%T[ U%;##,%#"%A2*+"#2$'21J%P(+/(%
$#6',.%)26 %0"'.'21.%1('%+28#"$)1+#2%1()1%1('%.1<6'21%$<.1%R2#P%1#%/#$0,'1'%1('%;).RZ%T]U%=1' 0 %32),>K' "J%
P(+/(%$'1(#6+/),,>%'\)$+2'.%)26%$').<"'.%1('%0'"8#"$)2/'%#8% 1('%.1<6'21%)26%0"#*+6'.% 1( )1%+28#"$)1+#2%
1#%1('%3..'..#"%)26%1( '%4 '6) :#:+/) ,%7#6<,'Z%TfU%4'6):#:+/),%7#6<,'J%P(+/(%0"#*+6'.%.<00#"1%T(+21.%)26%
8''6Q)/RU %1#%$)R'%1('%.1<6'21%.<//'..8< ,,> %/#$0 ,'1 '%1('%;).RZ%.<00#"1%+.%"',)1'6%P+1(%1('%0'"8#"$) 2/'%#8%
1('%.1<6'21% +2%1('% /<""'21% =1'0%)2 6 % 1('%+28# "$)1+#2%8"#$%1('%.1<6'21a.%G')"2'"%7# 6',Z%)26%TcU%3..'..#"J%
P(+/(%,')"2.%8"#$%1(' % .1 <6 '2 1%T(#P% $)2>%( +21 .% ( '%2''6'6 J% ( #P %.R+,,'6%('% P).%+2%1('%1#0+/J%(#P%$</(%1+$'%
('%<.'6%1#%:#%8"#$%#2'%.1'0%1#%)2#1('"%+2%#"6 '"%1#%.#,*'%1('%1) .RJ%'1/SU %)26%1('2%.1#"'.%1(+. %+28#" $)1+#2 %+2%
P()1% +.% R2#P2% ).% )% G')"2'"% 7#6',S% ;('% /#22'/1+#2.% Q'1P''2% 1('% H#"'a.% /#$0 #2'21.% )"'% 6 './"+Q'6% +2%
='/1+#2%]S%
%
%
!+:S%XS%9;=%,)>'"'6%.1"</1<"'W%L.'"%921'"8)/'%T)26%+21'")/1+#2%$'/()2+.$.UJ%!<2/1+#2),+1>%TH#"'UJ%)26%-)1)%TN2#P,'6:'%&).'U%)"'%6'/#<0,'6S%
%
!"#$%&'()*+#"),%-'./"+01+#2%1#%3%4)11'"25&).'6%7#6',%8#"%921',,+:'21%;<1#"+2:%=>.1'$.W%4):'%5%f%
;('%"'.1%#8%1(+.%0)0'"%+.%6'*#1'6%1# %$ #6' ,+2:%1(' %H#"'J%1('%,)> '"%1()1%+$ 0,' $ '2 1.%1('%Q' ()* +#"),%"'.0# 2.' %#8%
1('%9;=S%7#6' ,+2:%N 2# P ,'6:' %& ).' J%L.'"%921'"8)/'.J%)26%1('%/#22'/1+#2%Q'1P''2%1('$%)26%1('%H#"'%+.%#<1%# 8% 1( '%
./#0'%#8%1( +.%0)0'"S%I#P'*'"J%1('%/#22 '/1+#2%Q'1P''2%L.'"% 921'"8)/'.%)26%H#"'%/)2%Q'%').+,>%8+:<"'6%#<1%).%)2%
7@H%0)11'"2%)00,+/)1+#2%T&<. /($ ) 22%'1% ),S%XbbeUJ%P(' " ' %H#"'%)/1.%).% 1('%7#6',%0)"1S%; ('%/#22'/1+#2%Q'1P''2%
H#"'%)26%N2#P,'6:'%&).'%/)2%Q'%"'),+K'6%<.+2:%6+*'".'%6)1)%)//'..%)00"#)/('.S%
%
[S[ O(>%-'.+:2%4)11'"2.o%
=#81P)"'%6'.+:2%0)11'"2.%)"'%<.'6%).% )% :'2'"),% "'<.)Q,'%.#,<1+#2%1#% )% /#$ $#2,>% #//<""+2:%0"#Q,'$% +2% .#81P)"'%
6'.+:2J% 1#% .(#P % "',)1+#2.(+0.% )2 6% +21'")/1+#2.% Q'1P '' 2% /#$0#2'21.% )26% 0"#*+6'% )% .R','1#2% 8#"% 1('%
+$0,'$ '2 1 )1 +# 2 % TC)$ $ ) % '1% ),S% XbbcUS% A*' 2 % 1( #<:(% 1(' % / # 2 / ' 0 1 % # 8% 0 ) 11 ' " 2 . % () . % "' / ' +* ' 6 % "',)1+*',>% ,+11,'%
)11'21+#2%+2%1('%8+',6%#8%9;=J%-'*'6K+/%)26%I)""'"%T[``cU%$'21+#2%1()1%$)2 >%9;=%6'.+:2'".% )26%6'*',#0'".% <.'%
1('+"% #P2% .#,<1+#2.% P( '2 % 8)/'6% P+1(% 6'.+:2% 0"#Q,'$ .% 1()1% )"'% /#$$#2% 1#% 6+88'"'21% .>.1'$ . J% $#6',.J% )26%
0)")6+:$.Z% '*'2% P('2% )% /,#.'"% ,##R% +21#% 1()1% .#,<1+#2.% )26% 1('+"% /#$0)"+.#2% #81'2% .(#P.% 1()1% 6+88'"'21%
.#,<1+#2.%)26%1('%/#21'\1.%+2%P(+/( %1('>%)"' %)00 ,+'6%()* '%$ </( %+2%/#$ $ #2 S%
%
92%1()1%/#21'\1J%#<"%/( #+/' %)Q# < 1%<.+2: %6'.+:2%0)11'"2.%+2%1(+.%0"#Y'/1%P).%6"+*'2%Q>%#<"%+21'"'. 1%+2W%
%
• CommunicationS%=+2/'%0)11'"2.a%2)$'.%/,#.',>%$)1/(% 1('+"% #QY'/1+*'%)26%1('% 0"#Q,'$%1('>% .#,*'J%P'% <.'6%
1('$%). %)%/#$$ #2%*#/)Q<,)">%)$#2:% 6+*'".'%.1)R'( #,6'".%)+$+2:%1#%+$0"#*'% 1( '% /# $ $ <2 +/)1+#2%0"#/'..S%
4)11'"2.% 0"#*+6'% <.% P+1(% )% .1)26)"6% *#/)Q<,)">% 1#% 6'./"+Q'% 1('% 1#0#,#:>% #8% 1('% .>.1'$J% 1('% .1"</1<"),%
(+'")"/(>%#8%1('%.<Q.>.1'$.J%)26%1('+"%+21'"8)/'.%)26%/#22'/1+#2.S%
• CollaborationS% 4 ) 1 1' " 2 . % .<00# " 1% 1('% . ( ) " +2 : % #8% /# 2 . 1 "</1+#2.% Q'1P''2% 6'*',#0'".% #"% '+1('"% <.'% #1('"a.%
/#2.1"</1+#2.%1#%' 2() 2/' %#<"%#P2S%E#%$)11' "%P()1 %+.%Q'' 2 %Q<+, 1%#"%P ( )1%#1('".%Q<+,1J%+1%+.%),P)> .%R2 # P 2 %
P(+/(%)"'%:#+2:%1#%Q'%1('%"',)1+#2.%T/#22'/1+#2.U%)$#2:%6+88'"'21%/#2.1"</1+#2.S%%
• ProductivityS% 4)11'" 2 . % (',0 % 1#% /"') 1 ' % /#$0#2'21.J% )26% /#$0#2'2 1. % .<0 0 # " 1 % 1('% /"')1+#2% #8% 8)$+,+' . % #8%
0"#6</1.%)26g#"%.'*'"),%*'".+#2.%#8%1('%.)$'%0"#6</1%1#%0"#1#1>0'%)26%1'.1%2'P %#0 1+#2.%#8%8<2 /1+#2),+1>S %
• AbstractionS%4)11'"2.% )"'%$ #"'%)Q.1")/1% 1()2%Y<.1%)%1'/(2+/),% $ #6',J%Q<1%$#"'%1'/(2+/),% 1()2%)%/#2/'01<),%
$#6',S%4)11'"2.%$)R'% +1%0# .. +Q ,'%1#%0"#*+6 '%) %m /# 2 1" # ,,'6 n%8"' '6 #$%1#%1('%0" #: ")$$'".%Q'/)<.'% 1('>%/)2%
6'*',#0%8<2/1+#2),+1>%+2%1('+"%#P2%/"')1+*'%P)>J%Q<1%1('>%8#,,#P%)26%0"'.'"*'%1('%:<+6',+2'.%#8%)%6'8+2'6%
6'.+:2S%%
%
;('.'% Q'2'8+1.% #8% <.+2:% 0)11'"2.% T/#$$<2+/)1+#2J% /#,,)Q#" ) 1 +# 2 J% 0"#6</1+*+1>J% )26% )Q.1")/1+#2U% (',0% <.% 1#%
#*'"/#$'% 1('% /(),,'2:+2:% /#21'\1<),% ','$'21.% #8% 1(' % 0"#Y'/1% T+2/"'$'2 1),% "'V<+"'$ '21.J% /()2:+2:%
"'V<+"'$'21.J%)2 6%)%.(+81+2:%6'*',#0$'21%1')$ US%
%
[S] 9;=%l<),+1+'.%
9;=%)"'%0+'/'.%#8%.#81P)"'J%('2/' % 1 ( ' > %)"'%'\0'/1'6%1#%$''1%.#$'%.#81P)"'%V<),+1>%/"+1'"+)S%;('"'8#"'J%$#6',+2:%
9;=% Q'()*+#"% +.% ),.#% )Q #< 1% )//# $ 0 ,+.(+2: % V<),+1>% /#2.+6'")1+#2.% 1()1% 6"+*'% 1('+"% 6'.+:2S% =#81P)"'% V<),+1>%
/"+1'"+)% )"'% .0 '/+8+'6% ).% 2#258<2 /1+# 2 ) ,% "'V<+"'$ '2 1. S% 3//#$0,+. (+2 :% 2#258<2/1+# 2 ) ,% "'V<+"'$ '2 1. % +.% #2'%
)66+1+#2),% "').#2% 1#% <.'% 6'.+:2% 0)11'"2.S% -'.+:2% 0)11'"2.% ,'1% <.% 1) R' % )6*)2 1) :' % #8% 0"'*+#<.% '\0'" +'2 /'. % 1#%
+$0,'$ '2 1 % 2# 2 58<2/1+#2) ,% "'V< +" '$'21.% )26 % 1#% )*# +6,! P('2% 0"#0'",>%<.'6J% )//+6'21),% /#$0,'\+1>S% ;('% 2#25
8<2/1+#2) ,%"'V<+"'$ '2 1.%)66"'..'6 %+2%1('%0"#Y'/1%P'"'W%
%
• ReusabilityS%B'<.)Q+,+1>%"'8'".% 1#% 1('%6':"''% 1#% P(+/(% )% .#81P)"'%$#6<,'%#"%#1('"% P#"R% 0"#6</1% /)2% Q'%
<.'6%+2%$#"'%1()2%#2'%/#$0<1'"%0"#:")$%#"%.#81P)"'%.>.1'$%T9AAA%XbbbUS%9;=%/#$0#2' 2 1 . %$<.1%Q'%) Q,'%
1#%Q '%<.'6 %):)+2%P+1( %.,+:(1%#"%2#%$#6+8+/)1+#2%8#"%1('%+$0 ,'$ '2 1)1+#2%#8%#1('"%0"#6</1.%#"%*'".+#2.%#8% 1( '%
.)$'%0"#Y'/1S%%
• ExtensibilityS% A\1'2.+Q+,+1>% +.% 1('% 6':"''% 1#% P(+/(% )% .>.1'$% #"% /#$0#2'21% /)2% Q'% ').+,>% $#6+8+'6% 1#%
+2/"').'% +1. % .1 #" ) :' % # "% 8< 2 / 1+# 2 ) ,% /) 0 ) /+1 > % T9AA A % Xbb bUS% 9 ; = % / # $0#2 '21.% +2% 1( ' % $#6',% $ <.1% Q'% ) Q,'% 1#%
+2/#"0#") 1 '% 2 ' P % 8< 2 / 1+# 2 ), +1+' .% # "% $#6+8>%'\ +. 1+2 : % 8< 2 /1+# 2 ) ,+1+'.%T'S:SJ%)..'..$'21%.1")1':+'.J%1).R5/"')1+#2%
.1")1':+'.J%,')"2+2:%),:#"+1($.%1#%$+2+2:%,')"2'"%$#6 ',J%'1/SUS%
!"#$%&'()*+#"),%-'./"+01+#2%1#%3%4)11'"25&).'6%7#6',%8#"%921',,+:'21%;<1#"+2:%=>.1'$.W%4):'%5%c%
• AdaptabilityS%36)01)Q+,+1>%"'8'".%1#%1('%').'% P +1(%P(+/(%)%.>.1'$% #"%/#$0#2'21%/)2%Q'%$ #6+8+'6% 8#"%<.+2:%
+1%+2%)00,+/ ) 1+# 2 .%# "%'2 * +"# 2 $'21.%#1( '" %1( )2 %1 (# .' %8# "%P(+/(%+1%P) .%. 0 '/ +8+/) ,,> %6 '. +:2 ' 6 % T9A AA %Xbb bUS%%
• RobustnessS% B#Q<.12'..% +.% 1('% 6':"''% 1#% P(+/( % )% .>.1'$ % #"% /#$ 0 #2 ' 2 1% /)2 % 8<2/1 +# 2% /#""'/1,>% +2% 1('%
0"'.'2/'% #8% +2*),+6% +20<1.% #"% .1"'..8<,% '2*+"#2$'21),% /#26+1+#2.% T9AAA% XbbbUS% =1<6'2 1 . % '\0 '/ 1 % 1#% :'1%
'88'/1+*'% )26% '88+/+'21% .<00#"1% 8"#$% 1('% 9;=J% ).% +8% +1% P).% )% (<$)2% 1<1#"Z% +21'""<01+#2.% +2% 1('% 1')/(+2:5
,')"2+2:%0"#/ '.. %6< '%1# %.# 81P ) "'%8 )+,<"'.%)"'%(+:(,>%<26'.+")Q,'S%%
• PerformanceS% 4'"8#"$)2/'% "'8'".% 1#% 1('% 6':"''% 1#% P(+/(% )% .>.1'$% #"% /#$0#2 '21% )//#$0,+.('.% +1.%
6'.+:2)1'6%8<2/1+#2.%P+1(+2%:+*'2% /#2.1")+21.J%.</(% ).%.0''6J%)//<")/>J%#"% $ '$#">%<.):'%T9AA A%Xbbb US%;(' %
9;=%$<.1%'$ <,) 1'%"'), 51+$'%"'.0#2.'.%8"#$%)%(< $ ) 2 %1< 1# "Z%6' ,) >.%$<.1%Q'%)*#+6'6%)26%,)1'2/>%"'6</'6S%
%
;('%<.'%#8%0)11'"2.%Q'/#$'.%1('%R'>.1#2'%1#% .)1+.8>%1('%8+".1% 1("''%V<),+1+'.%'2<$ '")1'6%)Q#*'S%=)1+.8)/1+#2%#8%
1('%,).1%1P #%"'V<+"'$'2 1.%T"#Q<.12 '..% )2 6% 0'"8#"$)2/'U%+.%"',)1'6%1#% 1('% +$ 0,'$ '2 1)1+#2%#8%1('%$#6',%)26% 2#1%
P+1(%1('%$#6',%0'"%.'S%I#P'*'"J%+2%#<"%'\0'"+'2/'%/#$$<2+/)1+#2J%/#,,)Q#")1+#2J%0"#6</1+*+1>J%)26%)Q.1")/1+#2%
+$0)/1%0 '" 8#" $)2/'%)2 6 %"# Q <. 12 ' .. S%
%
[Sf L2+8+'6%7#6',+2:%G)2:<):'%
L2+8+'6%7#6',,+2:%G)2:<):'% TL7GU%2#1)1+#2%+.%< .' 6 %).%$#6',,+2:% ,)2:<):'J%. 0 ' / +8+ / ) ,, > %L7G%/, ) . .%6+):")$. S%;#%
8)/+,+1)1'%1('%<2 6' ". 1)2 6 +2 : %#8%1('%6+) : ") $ . %#88'" '6 %+2%1( +.%0)0'"%T.''%!+:<"'.%[J% ]J%)26%fU%1(+.%.'/1+#2%0"#*+6'.%
)%Q"+'8%6'./"+01+#2%#8%1('%','$'21.%TQ#\'.%)26%)""#P.U%P+1(+2%)%L7G%6+):")$S%
%
• &#\'.%"'0"'.'21%/#$0#2'21.%#"%/,)..'.S%
• 3""#P.%"'0"'.'21%)..#/+)1+#2%"',)1+#2.(+0.Z%1(' %) "" #P.%:#%8" # $%1('%/# $0#2'2 1%1()1%"'V<' . 1. %8<2/1+#2),+1>%
1#%1('%/#$0#2'2 1%1()1%0"# *+6'.%1( )1%8<2/1+#2 ),+1>S%%
• 3""#P.% P+1(% 6).('6% ,+2'.% "'0"'.'21% 6'0'26'2/>% "' ,)1+#2.(+0 .Z% +2% 1(' % $#6',% P'% )"'% .(#P+2:% 1('%
6'0'26'2/>%Q'1P''2%8<2/1+#2),%/#$0#2'21.%)26%1('%6)1)%/#$0#2'21%1('>%"'V<+"'%1#%)//'..%1('$S%
• 3""#P.%P+1(%)%1"+)2:<,)"%.()0'%+2%1('%)""#P(')6%"'0"'.'21%+2('"+1)2/'%"',)1+#2.(+0.S%
• 3""#P.% .1)"1+2:%P +1(% )% 6+)$#26% .() 0'% "'0"'.'21% /#$0#.+1+#2% "',)1+#2.(+0.Z% 1('>% )"'% <.'6% 1#% "'0"' . ' 2 1%
1()1%)%/#$0#2'2 1%+.%8#"$' 6%Q>%)%/# 2Y<2 /1+#2%#8%#1(' "%/#$ 0 #2' 21. S%%%%
%
3. 7D-AG9EC%;IA%9;=%&AI3@9DB%
;(+.% .'/1+#2% <.'.% 1('% 9;=% Q'()*+#"% 6'./"+Q'6% +2% T@)2G'(2% [``eU% 1#% /"')1'% )% /#2/'01<),% $#6',% 8#"% 1('% H#"'%
,)>'"S% ;('% 9;=% Q'()*+#"J% .1)1'6% +2% T@)2G'( 2% [` `eUJ% +.% .<$$ )"+K'6% +2% )% ,+.1% #8% .1)1'$'21.% 1()1% +6'21+8+' .% 1( '%
+2*#,*'6%/#$ 0 # 2 ' 2 1.J%"'.0# 2 . +Q+, +1+' .%8#"%')/(%/#$ 0 # 2' 2 1J%)26 %"',)1+# 2 .( +0 .%Q'1P''2%/#$0 #2 ' 2 1. S%92%1('%,+.1J%
/#$0#2'21.a% 2)$ '.% P'"'% $)"R'6% +2% Q#,6% )26% "',)1+#2.(+0.% Q'1P''2% /#$0#2 '21.% )"'% '\0,)+2'6S% H#$0,'\%
/#$0#2'21.% P'"'% .0,+1% +21#% .+$ 0,'% #2'.J% +6'21+8>+2:% .0'/+8+/% "'.0#2.+Q+,+1+'.% )26% )..+:2+2:% 1('$% 1#% 2'P%
/#$0#2'21.S%;('%,+.1%#8%.1)1'$'21.%+.%).%8#,,#P.W%
%
• =1<6'21.%+21'")/ 1%P+1(%1('%9;= %1( " #< : ( %1( '%User! InterfaceS%;('% '*'21.% 1"+:: '"'6 %Q>%1('% User! Interface!)"'%
()26,'6%Q>% 1('% Tool! /#$0#2'21.% ;('% Tool% +.% 1('% /# $0#2'2 1% "' .0#2 .+Q,'% 8#"% /"')1+2:% )26%$)2 ):+2:% 1('%
'2*+"#2$'21%+2%P(+/( %1( '%.1<6'21%P#"R.S%%
• ;('%9;=%0"#*+6'.%. 1< 6' 21.%P+1(% 1). R.%1#%Q'%.#,* '6%)2 6%(' ,0.%1('$%+2%1(' %0"#/'..S%3%Task%+.%)%.'1%#8%.1'0.S%%
!#"%.+$0,+/+1>J%1(+.%"'0#"1% )..<$'.%1()1%1('%.'1%#8%.1'0.%+.%.1)1+/%)26%0"'5'2<$ '")1'6S%%92%0"+2/+0,'J%)%Task%
/#<,6% Q'%) %.1' 0%: '2' ")1#"J%P ( +/(%$ ') 2.%.1'0.%/# <,6%Q'%6> 2)$ +/),,>%:'2'")1'6S%%;('%9;= %,+1'")1<"' %"'8'".%1#%
1<1#".%<.+2:%)%.1)1+/J% 0"'5'2<$'")1'6% .'1% #8%.1'0.% ).% m'\)$0,'%1")/+2:% 1<1#".n%P('"').% 1(#.'%<.+2:% .1'0.%
:'2'")1#".%)"'%/),,'6%m$# 6',%1")/+2:%1<1#".n%T@)2G'( 2J%[``eUS%%%A)/(%Step%+.%"',)1'6%1#%'*'21.%+2%1('%User!
InterfaceS% =1'0.% +2/,<6'% Assessment% )26% HelpS% Help% /#<,6% Q'% Hints% Q'8#"'% /#$ 0,'1+2:% 1('% Step% #"%
Feedback%)81'"%/#$0,'1+2:%1('%StepS%A)/(%Task%+.% "' ,) 1' 6%1#% )%.'1% # 8%Knowledge%Components%1()1%)"'%1('%
+28#"$)1 +#2 % )26% .R+,,.% 1()1% )% .1<6'21% 2 ''6 .% 1# % )0 0,>% +2% #"6'"% 1#% .#,*'% 1('% Task% .<//'..8<,,>S% ;('%
Knowledge%Base%+.%)%.'1%#8%Tasks%)26%Knowledge%Components%)26%1('%$)00+2:%Q'1P''2%1('$S%
• ;('% 9;=% Q'()*+#"% .1)"1.% P('2! 1('% Task! Selector% .','/1. % 1('% 2'\1% Task% 1( )1% 1('% .1<6' 21% $<.1% .# ,*'% )26%
0,)/'.% 1('% Task% +21#% 1('% Tool% +2 % #"6'"% 1 # % Q'% .#,* ' 6% Q>% 1( ' % .1<6'21S% ;('% 8#<"% Q).+/% $'1(#6.% 1#% 6#% m1).R%
!"#$%&'()*+#"),%-'./"+01+#2%1#%3%4)11'"25&).'6%7#6',%8#"%921',,+:'21%;<1#"+2:%=>.1'$.W%4):'%5%e%
.','/1+#2n%)"'%6'./"+Q'6% +2%T@)2 G'( 2%[``eUS%;('%Task!Selector%2''6.% 1#%()*'%)//'..%1#%)%.#<"/'% #8%TasksS%
;('%Task!Factory%+.% 1('% .#<"/'%#8%TasksS%91% '+1('"%"')6.%Tasks%.1#"'6 %+2 %1( '% Knowledge!Base%T"') 6+2 : %
0"'*+#<.,>%(<$)25)<1(#"'6%1).R.U%#"%/"')1'.%1).R. %+2%"' ), 5 1+$ ' S%
• ;('% Step!Analyzer%/#$0)"'.%1('%.1<6'21a.%L9%Q'()*+#"%1#%1('%/#""'/1%Steps%#8%1('%Task%)26%0 "#*+6'.%1()1%
+28#"$)1 +#2 % 1#% 1('% Assessor% )26% 1('% Pedagogical! ModuleS% ;('% Step! An alyzer% 1>0+/),,>% 6'1'"$+2'.%
P('1('"%1('%.1<6'21a.%.1'0%+.%/#""'/1%#"%+2/#""'/1J%)26%P(+/(%#8%1('%1).Ra.%.1'0.%$#.1%/,#.',>% $)1/('.%1('%
.1<6'21a.%.1'0S%% ;('%Assessor%<06)1'.%1('%Learner!ModelS%;('%Pedagogical!Module%0"#*+6'.%Help%<.+2:%
6+88'"'21% .1")1':+'.% .</(% ).% 0"#*+6+2:% +$$'6+)1'% #"% 6',)>'6% (',0% #"% 0"#*+6+2:% "'V<'.1'6% #"% <2.#,+/+1'6%
(',0S%
• ;('% Learner! Model! "'0"'.'21.% 1('% R2#P,'6:'J% 6+88+/<,1+'.J% )26% $ +./#2/'01+#2.% #8% 1('% .1<6'21S% ;('%
Learner! Model!,+.1.%Tasks%)..+:2'6% 1#%1('%.1<6'21J%$').<"'.%#8%1('% 1+$'%.0'21%1#%/#$0,'1'%1('%Task,%)26%
1('%.1)1<.%#8%1('%TaskS%!# " %') / ( %Step%+2%1(' %Task%)%/#<21'"%#8%1('%Hints%"'V< '.1'6%)26%Feedback%T'""#".%
$)6'U% +.%R'01S%%7#.1%+$0#"1 ) 2 1 ,>J%8#"%') /( %Knowledge%Component,%)%$).1'">%$').<"'%+.%),.#% R'01S%%;('%
Task!Selector%"',+'.%#2%1('% Learner!M odel’s% $').<"'.%#8%Knowledge!Component%$).1'">!1#%/ (##.'%)%
Task% 1()1% +.% 2'+1('"% 1##% ()"6% T1##% $ )2 >% <2$ ).1' "'6% R2#P ,'6 :'% /#$ 0#2 '21. U% 2#"% 1##% ').>% T1##% $ )2 >%
$).1'"'6%R2#P,'6:'%/#$0#2'21.US%
%
!+:<"'%[%'\1'26.%1('% 9;= % .1"< /1< "'%.(#P2%+2%!+:<"'%X%+2%#"6'"%1#% +6'21+8>%/#$0#2'21.%T8<2/1+#2),%)26%6)1)U%)2 6%
1('+"%"',)1+#2.(+0.S%L7G%2 #1)1+#2 %+.%<.'6%+2.+6' %1('%H#"'%Q,#/R%1#%/"')1'%)%8+".1%)11'$01%#8%1('%#QY'/15#"+'21'6%
$#6',S%;('%2'\1%.'/1+#2%.(#P.%1('%6'1)+,.%#8%1(+.%$# 6',%<.+2:%)%0)11'"25Q).'6%)00"#)/(S%%
%
%
!+:S%[S%9;=%$#6',S%O(+1'%Q#\'.%"'0"'.'21%8<2/1+#2),%/#$0 #2 ' 21 .%) 26 %: ")> %Q #\ ' .%"'0"' .'21%6)1)%/#$0#2'21.S%B',)1+#2.(+0.%#8%)..#/+)1+#2J%
6'0'26'2/>J%/#$0#.+1+#2J%)26%+2('"+1)2/'%)"'%.(#P2%<.+2:%L7G%2#1)1+#2S%
!"#$%&'()*+#"),%-'./"+01+#2%1#%3%4)11'"25&).'6%7#6',%8#"%921',,+:'21%;<1#"+2:%=>.1'$.W%4):'%5%d%
]SX 4)11'"25&).'6%7#6',+2:%
;('% $#6',% +2% !+:<"'% [% "'0"'.'21.% )% /#2/'01<),% 6'./"+01+#2% #8% P(#% +.% 6#+2:% P()1% )26% /#""'.0#26.% 1#% )2%
)Q.1")/1+#2% #8% 1('% '\0'/1'6% 8<2/1+#2),+1>% #8% ')/(% +21'"2),% /#$0#2'21% +2% H#"'S% A*'2% 1(#<:(% 1('% /#2/'01<),%
$#6',%/)2%Q'% )%.1)"1+2:% 0#+21%1#% +$0,'$'21% 9;=%8< 2 /1+# 2 ) ,+1>J%+1%+.%.1+,,%1##%)Q.1")/1%1#%Q'%)%.#81P)"'%6'. +:2%)26%
1('"'8#"'%1('"'%)"'%6+*'".'%#01+#2.%1#%+$ 0,'$'21%+1S%;('%2'\ 1%.1'0 %+2%# <"%0 "#/'.. %P ).%1# %'* #,*'%1(+.%$#6',%Q>%
6'8+2+2:% $#"'% .0'/+8+/% "',)1+#2.(+0.% Q'1P''2% /#$0#2'21.% <.+2:% 6'.+:2% 0)11'"2.Z% 1(+.% 0"#*+6'6% <.% P+1(% )%
1'$0,)1'% 8#"% 1('% .#81P )"'% 6' .+:2% )2 6% 1(' "'8#"'% 8#"% 1( ' % +$ 0 ,' $ ' 2 1)1 +#2 S% ;)Q,'% X% .(#P.% 1('% "',)1+#2.(+0%
Q'1P''2%/#$0#2'21.%0"'*+#<.,>%6'8+2'6%$)1/('6%P+1(%)%0)11'"2%2)$'%P+1(%)%6'./"+01+#2%#8%1('%$')2+2:%#8%1('%
"',)1+#2.(+0S%
%
;)Q,'%XS%B',)1+#2.( +0.%Q'1P' ' 2 %9 ; = %/ # $0#2'2 1. %) 2 6 %6'.+:2%0)11'"2.%
Components!
Pattern
Description!
%
;##,%
FACADE
%
;##,%+.%)%(+:(5,'*',%+21'"8)/'%8#"%1('%.'1%#8%9;=%.<Q.>.1'$.S%%
%
;).R=','/1#"%
STRATEGY
;).R=','/1#"% +.% +$0,'$'21'6% <.+2:% STRATEGY% 0)11'"2% 1#% 6'),% P+1(% 1('% 8)/1% 1()1%
.','/1+2:% 1('% 2'\1% ;).R% 8#"% 1('% .1<6'21% +.% 6#2'% P+1(% 6+88'"'21 % ),: # "+1 ($.%
T$'1(#6#,#:+'.U%6'./"+Q'6%+2%T@)2G'(2%[` `e US%
%
;).R=','/1#"%
)26%
3..'..#"%
OBSERVER
;('%"',)1+#2.(+0%Q'1P''2%;).R=','/1#"%)26%3..'..#"%/)2%Q'%6'./"+Q'6%Q>%OBSERVER%
0)11'"2S% ;).R=','/1#"% 2''6.% +28#"$)1+#2% )Q#<1% /()2:'.% +2% 1('% G')"2'"7#6',%
T0'"8#"$)2/'%#8%1( '%.1<6'21U%$)+21)+2' 6%Q>%3..'..#"J%+2%#"6'"%1#%)6Y<.1%1(' %,'*' ,%#8%1('%
2'\1%;).RS%
%
;).R!)/1#">%
ABSTRACT FACTORY
;).R!)/1#">% /"')1'.% ;).R% #QY'/1.S% ;('% "',)1+#2.(+0% Q'1P''2% ;).R!)/1#">% )26% ;).R%
/#""'.0#26.% 1#% 1('% "',)1+#2.(+0% Q'1P ''2% )% 8)/1#">% )26% )% 0"#6</1% +2% ABSTRACT%
FACTORY%0)11'"2S%%
%
;).R!)/1#">%
STRATEGY
;).R!)/1#">% +$0,'$'21.% STRATEGY% 1#% /"')1'% ;).R.J% 6<'% 1#% 1('% 8)/1% 1()1% 9;=% /#<,6%
+$0,'$'21% '+1('"% 0)"1+/< ,) "% ),:#"+1($.% 1#% /"')1'% ;).R.% +2% "'),51+$'% #"% / "')1'% ;).R.%
"'/#*'"+2:%1('$%8"#$%)%6)1)%"'0#.+1#">S%
%
=1'032),>K'"%
CHAIN OF
RESPONSIBILITIES
CHAIN% OF RESPONSIBILITIES% +.% )% 6 '. +: 2% 0)11'"2% 1()1% )*#+6.% /#<0,+2:% 1('%
.'26'"%#8%)%"'V<'.1%1#%+1.% "'/ '+*'"%Q>%:+*+2:%$#"'%1()2%#2'%#QY'/1%)%/()2/'%1#%()26,'%1('%
"'V<'.1S% =1'032),>K'"% /()+2 .% 1('% "'/'+*+2:% #QY'/1.J% P(+/( % )"'% 1('% 1).Ra.% .1'0.J% )26%
0)..'.%1('%"'V<'.1%),#2:%1('%/()+2%<21+,%#2'%#QY'/1%()26,'.%+1S%I)26,+2:%)%"'V<'.1%$')2.%
"'/#:2+K+2:%)%.1<6'21a.%L9%'*'21%).%)%.1'0%1()1%+.%'+1('"%/#""'/1%#"%+2/#""'/1S%%%
%
3..'..#"%
STRATEGY
3..'..#"% +$0,'$'21.% STRATEGY% 1#% $)+21)+2% 1( '% G')"2'"7#6',S% -+*'".'% .1")1':+ ' .%
/#<,6%Q'%1"+'6%1#%.1#"'%)26%"'/#*'"% 1('% G')"2'"7#6',% +28#"$)1+# 2S%%3% 1>0+/),% .1")1':>%
/#2.+.1.%#8% )..#/+)1+2:%')/(% .1'0%P+1(%)% .'1%#8% R2#P,'6:'%/#$0#2'21.%1()1%"'0"'.'2 1.%
P()1% 1('% .1<6'21% P#<,6% 2''6% 1#% R2#P% +2% #"6'"% 1#% :'1% 1()1% .1'0% /#""'/ 1S% % O('2% 1('%
3..'..#"%+.%+2 8# "$'6%1()1%)%0)"1+/<,)"%=1'0%+.%/#""'/1J%+1%+2/"'$'21.%1('%$).1'">%#8%1('%
)..#/+)1'6% R2#P ,'6:'% /#$0#2'21.S% D2% 1('% #1('"% ()26J% +8% 1('% .1<6'21% :#1% 1('% =1'0%
P"#2:J%1('2%3..'..#"%"'6</'.%1('%$).1'">%#8%1('%)..#/+)1'6%R2#P,'6:'%/#$0#2'21.S%%
%
4'6):#:+/),%
7#6<,'%
STRATEGY
4'6):#:+/),7#6<,'% +$0,'$'21.% STRATEGY% 1#% 0 "#*+6'% .< 00 #"1% 1#% 1(' % .1<6' 21% +2%
.#,*+2:%1('% /< ""'21%=1'0S%D 01+#2.%1#%0"# *+6'%I',0%: #%8"#$%0"' ..+2:%)%Q<11# 2%).R+2:%8#"%)%
I+21%1#%1('%+$0,'$'21)1+#2%#8% +21',,+:'21%),:#"+1($.%1()1%0"#*+6'%.<00#"1%1#%$ )+21)+2%
1('% .1<6'21% +2% 1(' % pK#2'% #8% 0"#\+$),% 6 '*',# 0$'21p% T@>:#1.R>%XbdiUJ% P('"'%1).R.% )"'%
2'+1('"%Q#"+2:,>%').>%2#"%8"<.1")1+2:,>%6+88+/<,1J%Q <1%+2 .1 ') 6 %1('.'%1).R.%)88#"6%$)\+$),%
,')"2+2:%)26%$#1+*)1+2:%/() ,,'2: '.S %
%
=1'0%
COMPOSITE
COMPOSITE% 0)11'"2% ),,#P.% <.% 1#% /#$0#.'% =1'0.% +21#% 1"''% .1"</1<"'.% 1#% "'0"'.'21%
0)"15P(#,'% (+'")"/(+'.S% COMPOSITE% 0)11'"2% ,'1.% <.% 1 "') 1% +26+*+6<),% =1'0 .% )26%
(+'")"/(+'.%#8%=1'0.%T)26%.<Q5=1'0.U%<2+8#"$,>S%
%
3..'..#"%
)26%
=1'032),>K'"%
OBSERVER
;('% "',)1+#2.(+0% Q'1P''2% 3..'..#"% )26% =1'032),>K'"% +.% 6'./"+Q'6% Q>% OBSERVER%
0)11'"2S% 3..'..#"% 2''6.% +28#"$)1+#2% )Q#<1% .1<6'21% 0'"8#"$)2/'% +2% ')/(% =1'0S% ;()1%
+28#"$)1+#2%+.%#Q1) +2 ' 6%8" # $ %= 1' 0 3 2 ), >K '" S%
%
4'6):#:+/),%
7#6<,'%
)26%
=1'032),>K'"%
OBSERVER
;('% "',)1+#2.(+0% Q'1P''2% 4'6):#:+/),7#6<,'% )26% =1'032),>K'"% /)2% Q'% 6'./"+Q'6% Q>%
OBSERVER% 0)11'"2S% 4'6):#:+/),7#6<,'% 2''6.% +28#"$)1+#2% )Q#<1% .1<6'21%
0'"8#"$)2/'%+2%')/(%=1'0S%;()1%+28#"$)1+#2%+.%#Q1)+2'6%8"#$%=1'032),>K'"S%
!"#$%&'()*+#"),%-'./"+01+#2%1#%3%4)11'"25&).'6%7#6',%8#"%921',,+:'21%;<1#"+2:%=>.1'$.W%4):'%5%i%
!+26+2:% 1('% )00"#0"+)1'% 0)11'"2% 1#% Q'% )00,+'6% 1#% ')/(% /#$0#2'21% )26 % "',)1+#2.(+0% P).% )% 0"#/'..% Q).'6% #2%
'\0'"+'2/'%)26% ,+1'")1<"'%"'.')"/(%T& <. /($ ) 22% '1% ),S%X bb eJ% C)$$ ) % '1% ),S%Xbb cUS% % ;('"'%+.% 2#% .'1% #8%"<,'.% #2%
(#P%1#%/(##.'%)%0)11'"2Z%+2 .1 ') 6 J%)%8+"$ %R2#P,'6:'%#8%'\+.1+2:%0)11'"2.%).%P',,%).%1('%0"#Q,'$.%1('>%.#,*'%+.%
"'V<+"'6% +2% #"6'"% 1#% '88'/1+*',>%<.'% 0)11'"2.%1#% 6'./"+Q'% P()1%()00'2.% P+1(+2%)% :+*'2%.>.1'$S% D<"%)00"#)/(%
/#2.+.1.%#8%<.+2:%1('%0)11'"2% 1()1% $ #.1%/,#.',>% $ )1/('.% 1('%.'$) 21+/%6' ./"+01+#2%#8%1('%"'V<+"'$'21%#"%:"#<0%#8%
"'V<+"'$'21.S% !"#$% 1('% mC#!n% 6'.+:2% 0)11'"2.% 6#/<$'21'6% +2% T&<./($)22% '1% ),S% XbbeU% )26% TC)$$)% '1% ),S%
XbbcUJ% P'% 1##R% 1('% R'>P#"6.% #Q.'"*'"J% )Q.1")/1% 8)/1#">J% Q<+,6'"J% /()+2% #8% "'.0#2.+Q+,+1+'.J% .1")1':>J%
/#$$<2+/)1#"J%8)/)6'J%/# $0 #.+1'J%)26%.+2:,'1#2Z%')/(%0)11'"2%+.%8)+",>%/,#.'%1#%+$0,'$'21+2: %1('%1).R%1()1%+1.%
2)$'% $')2.% )26% P()1% ')/(% /#$0#2'21% +.% .<00#.'6% 1#% 6#Z% 8#"% '\)$0,'J% ;).R!)/1#">% +.% )2% ABSTRACT
FACTORY%#8%;).R.S%%
%
]S[ 4<11+2:%3,,%;('%4)11'"2.%;#:'1('"%%
O+1(% 1('%"',)1+#2.(+0.%'\0"'..'6%).%0)11'"2%'V<+*),'2/'.J%).% ,+.1'6%+2% 1('%0"'*+#<.%.'/1+#2J%/"')1+2:%)% .#81P)"'%
6'.+:2%+.%8)+",>% .1")+:(18#"P)"6S%A)/(%0)11'"2%().%)%<2+V<'%'V<+*),'2/'% +2%L7G%T).%)%/,)..%6+):")$US%;('2J%#<"%
6'*',#0$'21%1') $ %P#< ,6%Q'%)Q,'%1#%8#/<.%#2%1('% 6'1)+,'6% +$0,'$ '21)1+#2% #8% 1('%6'.+"'6%8<2/1+#2),+1>J%8+,,+2:%+2%
.0'/+8+/%0,)/'.%+2.+6'%#8%.0'/+8+/%8+,'.J%$'1(# 6 . J%)26%)11"+Q<1'.%T&##/(%'1%),S%[``dUS%;('%L7G%/,)..%6+):")$%8#"%
1('%H#"'%,)>'"%+.%.(# P2%+2%!+:< "' %]S %
%
%
!+:S%]S%L7G%/,)..%6+):")$%.(#P+2:%1('%0)11'"25Q).'6%$#6',%8#"%1('%mH#"'n%,)>'"S%
91%+.%+$0#"1)21%1#%2#1' %1('%8#,,#P +2 :%"' ,)1+#2 .(+0 .%+2%1(' %6+): ")$%.(#P2%+2%!+:<"'%]W%
%
• ;('% +$0,'$'21)1+#2% #8%=1'0%).%)%COMPOSITE%+.%(+:(,>%<.'8<,Z%+1%0"#*+6'.%1('%/) 0 ) Q +,+1> %#8%$) 2 ) :+2 : %=1'0.%
).%#2'%#"%).%)%(+'")"/(>%#8%.'*'"),%(+'")"/(+/),%=1'0.S%
!"#$%&'()*+#"),%-'./"+01+#2%1#%3%4)11'"25&).'6%7#6',%8#"%921',,+:'21%;<1#"+2:%=>.1'$.W%4):'%5%b%
• ;).R=','/1#"J% ;).R!)/1#">J% 3..'..#"J% )26% 4'6):#:+/),7#6<,'% +$0,'$'21% 1('% STRATEGY% 0)11'"2% 1()1%
0'"$+1% <.% 1#% 6'8+2'%),:#"+1($.J% '2/)0.<,)1'% 1('$J% ) 26 % $)R'% 1('$% +21'"/()2:')Q ,'S% % STRATEGY% 0)11'"2%
,'1.%1('%),:#"+1($%*)">%+26'0 ' 26 '2 1 ,>%#8%1('%/,)..'.%1()1%<.'%+1S%9$0,'$'21+2:%)%2'P%P)>%1#%.','/1%)%;).RJ%
/"')1'%)%;).RJ%$)2):'%1('%G')"2'"7 #6',J%#"%0"#*+6'%I',0%1#%1('%.1<6'21%/)2%Q'%6#2'%Q>%#2'%6'*',#0'"%P(#%
2''6.%2#%R2#P ,'6:'%)Q#<1%1('% 0"#Y'/1%)1%),,Z% 1('%6'*',#0'"% Y<.1%2''6.% 1#%8#,,#P%1('%0)11'"2% 1#W%TXU% /"')1'%)%
2'P%/,)..%1()1%+$0,'$'21.%1('%/#""'.0#26+2:%+21'"8)/'Z% T[U%+$0,'$'21%)1% ,').1%1('%),:#"+1($%$'1(#6Z% )26%
T]U%/"')1'%).%$)2>%)66 +1+#2),%$'1(#6.%)26g#"%)11"+Q<1'.%).%2''6'6S%
• ;).R=','/1#"%#Q1)+2.%+28#"$)1+#2%8"#$%3..'..#"J%P(+/(%).%P',,%).%4'6):#:+/),7#6<,'%#Q1)+2.%+28#"$)1+#2%
8"#$% =1'032),>K '"S% ;('% / #2 / '0 1% #8% m#Q.'"*+2:n% 6'./"+Q'.%1('% "',)1+#2.(+0%)26% /,')",>% +6'21+8+'.% (#P% 1('%
.1"</1<"'% #8% /#$ $ <2+/)1+#2 % $<.1% Q'% +$0,'$'21'6% T$'1(#6.% )26% )11"+Q<1'.US% % 91% +.% ').>% 1#% 2#1+/'% P(+/(%
/#$0#2'21%2''6.%+28#"$)1+#2%8"#$%P( +/(%#1('"%/#$0#2 '21S%
%
]S]S%9$0,'$'21)1+#2%
92/,<6+2:% .1"</1<"'% )26% 8<2/1+#2),+1>% 1('% /<""'21% .>.1'$J% 6'*',#0'6% +2% ?)*)J% +.% 8#"$'6% Q>W% X`% 0)/R):'.Z% e[%
/,)..'.Z% dfe% $ '1(#6.Z% d]i% )11"+Q<1'.Z% [[Jf]f% ,+2'.% #8% /#6'Z% XJXc`% "'*+.+#2.% $)+21)+2'6% +2% )% "'*+.+#2% /#21"#,%
.>.1'$%T=@EU%/"')1'6 %Q'1P ''2 %?<,>% [``b %)2 6%?<,>%[`XX%P+1(%)%.(+81+2:%6'*',#0$'21%1')$%#8%2+2'%0 "#:")$$'".%
T$)+21)+2+2:% )% 1')$ % #8% 1P#% 0"# :")$ $ ' ".% )1% )% 1+$' J% P+1(% )2% )*' "):' % #8% .+\% $#2 1(.% #8% 0'"$ ) 2'2 />U% )2 6% 1P #%
"'.+6'21%.#81P)"'%'2: +2''".Z%i%*'".+#2.%"',').'6 %1#%/,+'21.Z%)26%Xf`%<.'".%P #"R+2 :%P+1(%1('%.>.1'$J%P (# %()*'%
Q''2%(+:(%./(##,% .1<6'21.% )26% <26'":")6<)1'%.1<6'21.% 0)"1+/+0)1+2:%+2% 8#<"% .<$$'"5 /) $0 % /#< ".'.% )2 6% 1P#%
<2+*'".+1>%/#<".'.%)1%3"+K#2)%=1)1'%L2+*'".+1>S%
!
;('%+$0,'$'21)1+#2%#8%1('%=1")1':>%/,)..'.%+2/,<6'6W%
%
• =1")1':>;).R=','/1#"%+21'"8)/'%+$0,'$'21'6%+2%='V<'2/+),;).R=','/1+#2%/,)..S%%='V<'2/+),;).R=','/1+#2%
/,)..%6'8+2'.%)%.1")1':>%1()1%0"'.'21.%;).R.%1#%1('%.1<6'21%+2%)%0"'6'8+2'6%.'V<'21+),%#"6'"S%
• =1")1':>;).R!)/1#">%+21'"8)/'%+$0,'$ '2 1 '6 %+2 %;).R!"#$B'0#.+1#">%/,)..S%;).R!"#$B'0#.+1#">%/,)..%
6'8+2'.%)%.1")1':>%1()1%"'/ #*'" . %;).R.%8"#$%1'\1%8+,'.S%
• E#%.1")1':>%+$0,'$'21'6%8#"%3..'..#"J%1(+.%/#$0#2'21%+.%.1+,,%)2%#2:#+2:%0)"1%#8%1('%0"#Y'/1S%
• =1")1':>4'6):#:+/),7#6<,'%+21'"8)/'%+$0,'$'21'6%+2%H#26+1+#2),4'6):#:+/),=1")1':>%/,)..S%
H#26+1+#2),4'6):#:+/),=1")1' :> %/,) ..%6 '8+2 ' .%)%.1")1':>%+2%P(+/(J%/#26+1+#2),,>J%1(' %0"'.' 2/'%#8%/'"1) +2%
'*'21.%#"%)/1+#2.%8"#$%1('%.1<6'21%,)<2/('.%0"'5'.1)Q,+.('6%"'.0#2.'.S%%
%
;('.'%/,)..'.J%P(+/(%+$0,'$' 21 % =1")1':>%+21'"8)/'.J%)"'%2#1%.(#P2%+2%!+:<"'%]%6<'%1#%.0)/'%,+$+1)1+#2.S%
%
B':)"6+2:%1('%;##,%/#$0#2'21J%;##,%+.%)%8)/)6'%8#"%)2% '2*+"#2$'21%+2%P(+/(%1('%.1<6'21%+.%)Q,'% 1#%,')"2%
)Q#<1%.>.1'$.%6>2)$+/%$#6',+2:J%<.+2:%)%:")0(+/),%"'0"'.'21)1+#2S%A)/(%$#6',%+.%)%6+"'/1'6%:")0(%8#"$'6%Q>%
2#6'.% )26% '6:'.S% ;('% '6:'.% +26+/)1'% 8,#P% #8% 2<$'"+/% +28#"$)1+#2% Q'1P''2% 2#6'.% )26% 1('% 2#6'.% "'0"'.'21%
*)"+)Q,'.S%3%2#6'%'2/)0.<,)1'.%)%*)"+)Q,'a.%*),<'%).%)2%),:'Q")+/%/#$Q+2)1+#2%#8%1('%2<$Q'".%/#$+2:%+21#%#"%
:#+2:%#<1%#8%+1%*+)% '6:'.S%=1<6'21.%"')6% 1'\1%6'./"+Q+2:%1('%0"#Q,'$J%)26%1('2% 6'8+2'%2#6'.%)26%'6:'.J%'21'"%
*),<'.%#"%'V<)1+#2.%+2%')/(%2#6'J%"<2%1('%$#6',%)26%/#$0)"'%+1.%0"'6+/1+#2.%1#%:+*'2%8)/1.S%98%)2>%#8%1('%$#6',a.%
0"'6+/1+#2.%+.%8),.'%T" '0 "' .' 2 1'6 % P+1(%"'6 %/#,#".%).% 8''6Q)/R UJ%. 1< 6' 2 1.% $<.1%6 'Q < : %1('%$#6 ' ,S%= 1< 6 '2 1.%),.#%
/)2%).R%8#"% 8''6Q )/R%Q>%/('/R+2:%1('+"% $ #6',%)1%')/(%.1'0 %Q'8#"'%"<22+2:%1( '%$#6',%T@)2G'(2 %[`XXUS%!+:<"'%f%
.(#P.%1('%+$0,'$'2 1)1+#2%#8%1('%;##,%/#$0#2'21S%;##,%/#$0#2'21%/#2.+.1.%#2%)%H)2*).%+2%P (+/(%)%C")0(%+.%
6")P2S% 3% C")0(% +.% /#$0#.'6% Q>% 2#6'.% T@'"1'\'.U% )26% ,+2R.% TA6:'.U% 1()1% /# 22' /1% 1( '% 2#6'.S% A ) / ( % @'"1'\%
$)+21)+2.% )%"':+.1'"%#8%),,% *'"1'\'.%:#+2:% #<1%)26% +2S%A)/(%A6:'%$)+21)+2.%6)1)%#8%1('% @'"1'\% +2%P(+/(%+1%.1)"1.%
)26% '26.S% @'"1'\'.J% A6:'.J% )26% C")0(% /)2% Q'% .','/1'6% 8"#$% 1('% H)2*).% )26% Q'% $)2+0<,)1'6% T6"):% )26% 6"#0J%
6','1'6J%)26%.#%#2US%%
%
!"#$%&'()*+#"),%-'./"+01+#2%1#%3%4)11'"25&).'6%7#6',%8#"%921',,+:'21%;<1#"+2:%=>.1'$.W%4):'%5%X`%
!+:S%fS%L7G%/,)..%6+):")$%.(#P+2:%1('%;##,%/#$0#2'21%'2/)0.<,)1'6%+2%1('%$#6',%).%;##,S%
%
4. Aq4AB9AEHA%BA4DB;%3E-%A@3GL3;9DE%
92% 1( +.%.'/ 1+#2 %P '%P +,,%6 './"+Q '%# <"%'\0'"+'2/'% <.+2:%6'.+:2%0)11'"2.%1#%/"')1' %)2%9; =%$#6',%)26%+$0,'$'21+2:%
+1%1#%/"')1'%1( '%37;%.#81P)"'%0"#Y'/1S%%
%
=1)R'(#,6'".%$'21+#2'6%1('%8#,,#P+2:%8)*#")Q,'%V<),+1+'.W%%
%
• Incremen ta l! d ev elo p m e ntS% &<+,6+2:% 1( '% 3 7 ;% 0 "#Y'/1% +2% )2% +2/"'$'21),% P)>% #*'"% 1('% /#<".'% #8% 1("''%
>')".%),,#P'6%<.%1#%0)"1+1+#2%1('%+$0,'$'21)1+# 2 % # 8%2'P%8<2/1+#2 ) ,+1 >%+21#% 6 +./ "'1 '%1).R.%1()1% P'"'%P#"R'6%
#2% +26'0'26'21,>% 8"# $% #1('".J% 1('"'8#"' J% "' 6</+2 :% 1(' % 1+$'% #8% 6'0,#>$'21% )66+2:% 0"#:")$$'".% +2%
0)"1+/<,)"%$#$'21.%#8% 1('%0"#Y'/1S%92 /"' $ '2 1),%6'*',#0$ '2 1%),,#P.%<.% 1# %0"#*+6'%)%2'P%8<2/1+#2 ) ,+1> %#"%)%
2'P%*'".+#2%#8%)%/<""'21%8<2/1+#2),+1>%+2%)%P+26 # P %1+$'%#8%1P# %#" %1( "' '%P''R.S%
• Shifting! d evelopment!teamS%4"#: " ) $$'". J%'*'2 %P+1(#< 1%R2#P,'6:' %#8%0 )11'"2 .J%P'"'%)Q,'%1#%8#/<.%1('+"%
)11'21+#2% #2% 1('% "'V<+"'$'21.% )..+:2'6% 1#% 1('$Z% ')/(% 0"#:")$$'"% P#"R'6% #2% /#$0,'1+2:% )% .0'/+8+/%
$#6<,'%#"%.'1%#8%/#$0#2'21.%T6'8+2'6%).%)%0)11'"2%.'/1+#2U%)26%"',)1+#2.(+0.%Q'1P''2%/#$0#2'2 1.%P'"'%
),$#.1%'21+"',>%6'8+2'6%Q>%0)11'"2.S%O'%<.'6%=<Q*'".+#2%TH#,,+2.5=<..$)2%[ ``fU%1#% $)+21)+2%)%/#$$#2%
"'0#.+1#">%#8%1('%0"#Y'/1%).%)%1##,%1#%.<00#"1%Q")2/(+2:%)26%$'":+2:%0"#/'..'.S%
• CommunicationS% =+2/'% 6+*'".'% .1)R'(#,6'".% .</(% ).% "'.')"/('".% +2% '6</)1+#2% 1'/(2#,#:>J% /#$ 0<1'"%
./+'21+.1.J%6'*' ,# 0'".J%)26%+2.1"</1+#2),%6'.+:2'".%P'"'%+2*#,*'6 J% 6'.+:2%0)11'"2.%(',0'6%<.%):"''%#2%1( '%
.1"</1<"'% #8% 1('% .>.1'$% )26% /#$ $ <2+/)1'% +1% 1#% 1('% 0"#:")$ $ '".% 8#"% ')/(% +26+*+6<),% /#$0 #2'2 1% +2% 1('%
0"#Y'/1S%;('%<.'%#8%0)11'"2%2)$'.%.</(%).%FACTORY%)26%STRATEGY%().%Q''2%)6#01'6%).%)2%)Q.1")/1%P)>%
1#% "' 8'"% 8<2/1+#2),+1+'.% Q'1P''2% .1)R'(#,6'".S% ;( '% 2)$'.% (+6'% /#$0,'\+1>% 8"#$% 2#256'*',#0'".S% E#25
6'*',#0'".%)..<$'%)2%').>%1(+2:% $ <.1% Q'% 6#2 'J%)26%0"#:")$$'".%()*'% )% Q'11'"%+6')% )Q#<1% 1('% Q#<26)"+'.%
#8%/()2:'.J%Q<:.J%)26%2'P%"'V<+"'$'21.S%
%
I#P'*'"J%.#$'%6+.0<1'.%'$'":'6%P+1(%.1)R'(#,6'".%"':)"6+2:%1('%8#,,#P+2:W%
%
• SizeS% =1)R'(#,6'".% 0#+21% 1#% 1('% +2/"') .' % +2% .+K'% #8% /#6'% P(+,'% < .+2:% 0)11'"2.% ).% )2% +..<'S% O(+,'% <.+2:%
0)11'"2.% :'2'")1'.% $#"'% /#6'% +2 % #<"% 0"#Y'/1J% 1(+.% +.% 2#1% #2,>% 6<'% 1#% 0)11'"2.% T+21'"8)/'.% )26% )Q.1")/1%
/,)..'.%6'/,)")1+#2.UJ%Q< 1%),.#%Q'/)<.'%P'%6'/+6'6%1#%$)+21)+2%1('%/>/,# $ )1+/%/#$0,'\ +1>%T7/H)Q '%XbdeU%
!"#$%&'()*+#"),%-'./"+01+#2%1#%3%4)11'"25&).'6%7#6',%8#"%921',,+:'21%;<1#"+2:%=>.1'$.W%4):'%5%XX%
8#"% '*'">% $ '1( # 6% < 2 6 '"% X ` J% P (+/ (% $')2.%)00,>+2:% )% m6+*+6'% )26% /#2V<'"n%.1")1':>%1()1% :'2'")1'.%$#"'%
$'1(#6.%+2%1('%.>. 1' $ S %
• Deployment! TimeS% =+2/'% +2% ')/(% +1' ") 1 +#2 % #<"% 8+".1% .1'0% 8#/<.'6% #2% 1(' % 6'.+:2% 6'8+2+1+#2% T0)11'"2.UJ%
.#81P)"'%0"#1#1>0'.%6',)>'6%+1.%)0 0') ")2/'S%&<1%#2/'%1('%8+".1%0"#1#1>0'%P).%0"'.'21'6J%2'P%0"#1#1>0'.%
'$'":'6%V<+/R'"%1()1%+2%0"'*+#<.%0"#Y'/1.S%%
%
!+2),,>J%6'*',#0'".%$'21+#2'6%1('%8#,,#P+2:%8)*#")Q ,'%V< ),+1+'.W%
%
• CollaborationS% = ( ) " +2:%/#2.1"</ 1 +# 2.%Q'1P''2 %6'*' , # 0 ' " .%P). %)%R'>%','$'2 1 %1#%/#<21 ' "Q),)2/ ' %1('%'88'/1%
#8%)%/#2.1)21%.(+81%+2%1('%0'#0,'%+2%1('%6'*',#0$'21%1')$S%%
• ProductivityS%='*'"),%0"#1#1>0'%*'".+#2.%#8%1('%0"#Y'/1%P'"'%/"')1'6%1#%1'.1%2'P%#01+#2.%#8%8<2/1+#2),+1>%).%
P',,%).%2'P%0'6):#:+/),%)00"#)/('.S%%
• Abstraction.%4"#*+6+2:%)%m/#21"#,,'6n%8"''6#$%1#%1('%0"#:")$$'".%<.+2:%0)11'"2.%).%1('% :<+6',+2'.%#8%)%
6'8+2'6%6'.+:2%P).%(+:(,>%"','*)21%1#%()26,'%/()2:+2:%)26%+2/"'$'21),%"'V<+"'$'21.S%
%
5. HDEHGL=9DE=%3E-%DECD9EC%ODBN %
7)2>%)<1(#".%/,)+$%1()1%1('+"%9;=%8#,,#P%)%.#81P)"'%)"/(+1'/1<"'%Q'/)<.'%1('>%/)2%+6'21+8>%/#$0#2'21.%)26%
"',)1+#2.(+0.%)$#2 :%1( '.'%/#$0#2'21.%+2.+6'% 1('+"%.>.1'$.S%I#P' * ' " J% 1(+.%6# ' . % 2#1%$')2% 1()1%. 1) 26)"6% )26%
:##6%0")/1+/'.J%.</(%).%6'.+:2%0)11'"2.J%()*'%Q''2 %8#,,#P'6S%O'%1##R%)6*)21):'%#8%1('%:"#P+2:%'\0'"+'2/'%+2%
1('%8+',6%#8%.# 81P )"'%6'.+:2%0)11'"2.%1#%Q#1(%6 '.+:2%)26%+$0,'$'21%)2%9;=%$#6',%+2 %)%0)11'"25Q).'6%)00"#)/(S%
300,>+2:% 6'.+:2% 0)11'"2.% P).% <.'8<,% 1#% /"')1'% )% (+:(5V<),+1>% .#81P)"'% .#,<1+#2% 1()1% +.% ').>% 1#% $)+21)+2% )26%
'\1'26S% -'.+:2+2:% P+1(% V<),+1>% )11"+Q<1'.% ).% 6"+*'".% ().% "'.<,1'6% +2% )% 6'.+:2% 1()1% ().% 0"#*'2% 1#% Q'% $#"'%
"'<.)Q,'J% '\1'2.+Q,'J% )26% )6)01)Q,'S% L. +2 :% 6'.+:2% 0)11'"2.% +$0"#*' 6% #<"% /#$$<2+/)1+#2J% /#,,)Q#")1+#2J% )26%
0"#6</1+*+1>S%-' . +: 2 %0)11'"2.%8) /+,+1 )1' %1('%R2#P,'6:'%1")2.8'"%)/"#..%)%(+:(,>%.(+81+2:%6'*',#0 $' 21%1')$ %)26%
1(<.% 1('% 6'*' ,#0$ ' 21% #8% 1('% .>.1'$ J% P('"'% 1('% /"')1+#2% #8% 2'P% *'".+#2.% #"% *)"+)21.% #8% 1('% .#81P)"'% P).%
"',)1+*',>% ') .>% +2% 1'"$.% #8% 1+$'% )26% '88#"1S% 366+2:% 6'.+:2% 0)11'"2.% +2% 1('% 6'*',# 0 $'21% #8% 9;=% ) ,,# P'6% <.% 1#%
/"')1'%)%/#$$#2%*#/)Q<,)">%)$ #2:%.1)R'(# ,6'".J%$)R+2:%1('%0"#/'..%$#"'%)//<")1'%)26%'88'/1+*'%6'.+:25P+.'S%
O'%)00,+'6%#<"%$#6',%1#%Q<+,6%.'*'"),%*)"+)21.%#8%1('%37;%.>.1'$%+2%1("''%>')".%#8%P#"RJ%P+1(%)%(+:(%")1'%#8%
/()2:'.%+2%"'V<+"'$ '21.%8#"%1('%0"#6< /1%)26%)%(+:(%.(+81+2:%6 '*',#0$ '2 1%1')$S%92%#1('" %P # "6 . J%P ' %()* ' %Q' ' 2 %
)Q,'%1#%/"')1'%)%8)$+,>%#8%37;.%)"# < 26 %1( '%.) $ ' %6' .+: 2S%%
!<1<"'%"'.')"/(%P+,,%8#/<.%#2%1P #%)66+1+#2.W%1('%8+".1%#2'%P+,,%Q'%1('%+2/,<.+#2%#8%)%$#6<,'%8# "%/#$0) 2+# 2 .%1#%
0"#*+6'%.<00#"1%8#"%1('%.1<6'21%.< /(%).%,')"2 +2: %/#$0)2+#2 .J%)88'/1+*'%/ #$0)2+#2. J%)26%1')/()Q,'%):'21.J%)26%
1('%.'/#26%#2'%P+,,%Q'%1('%+2/,<.+#2%#8%$'1)51<1#"+2:%/#$0#2'21.S%
%
BA!ABAEHA=%
37;%5%388'/1+*'%7'1)%;<1#"S%[`X[S%3"+K#2)%=1)1'%L2+*'".+1>S%(110Wgg)$1S).<S'6<S%
%
326'".#2J%?S%BSJ%H#"Q'11J%3S%;SJ%N#'6+2:'"J% NS%BSJ%)26%4',,'1+'"J%BS%XbbcS%H#:2+1+*'%;<1#".W%G'..#2.%G')"2'6S%Journal(of(the(Lea rnin g(SciencesJ%
fT[UJ%Xed5[`dS%
%
&)R'"J% BS% =S% ?S% -SJ% 6'% H)"*),(#J% 3SJ% B).0)1J% ?SJ% 3,'*'2J% @SJ% H#"Q'11J% 3S% ;SJ% )26% N#'6+2:'"J% NS% BS% [``bS% % A6</)1+#2),% .#81P)"'% 8')1<"'.% 1()1%
'2/#<"):'.%)26%6+./#<"):'%m:)$+2:%1('%.>.1'$nS%92%Proceedings(of(the(International(Conference(on(Artificial(Intelligence(in(EducationS%9D=%
4"'..S%
%
&##/(J%CSJ%7)R.+$/(<RJ%BSJ%A2:,'J%7SJ%M#<2:J%&SJ%H#2),,'2J%?SJ%)26%I#<.1#2J%NS%[``dS%Object<Oriented(Analysis(and(Design(with(ApplicationsJ%
;(+"6%A6+1+#2S%366+.#25O'.,'>%4"#8'..+#2),S%
%
&<./($)22J% !SJ% 7'<2+'"J% BSJ% B#(2'"1J% ISJ% =#$$'",)6J% 4SJ% )26% =1),J% 7S% XbbeS% A( system( of( patterns:( Pattern<oriented( software( architectureS%
O+,'>S%
%
H#,,+2.5=<..$)2J%&SJ%!+1K0)1"+/RJ%&S%OSJ%)26%4+,)1#J%HS%7S%[``fS%Version(control(with(subversionS%DaB'+,,>%7'6+)J%92 / S%%
%
-'*'6K+/J%@S%)26%I)""'"J%3S%[``cS%=#81P)"'%4)11'"2.%+2%9;=%3"/(+1'/1<"'.S%International(Journal(of(Artificial(Intelligence(in(EducationJ%Xc J%[%
T30"+,%[``cUJ%e]5bfS%
%
!"#$%&'()*+#"),%-'./"+01+#2%1#%3%4)11'"25&).'6%7#6',%8#"%921',,+:'21%;<1#"+2:%=>.1'$.W%4):'%5%X[%
C)$$)J%ASJ% I',$J% BSJ% ?# ( 2 . # 2 J% BSJ%)26% @,+..+6' . J% ?S%XbbcS% Design(Patterns:(Elements(of( Reusable(Object<Oriented(SoftwareS%3 6 6 + .# 2 5O'.,'>%
G#2:$)2%4<Q,+.(+2:%H#SJ%92/SJ%&#.1#2J%73J%L=3S%
%
C)$$)J% ASJ% I',$J% BSJ% ?#(2.#2J% BSJ% )26% @,+..+6'.J% ?S% [``[S% -'.+:2% 4)11'"2.W% )Q.1")/1+#2% )26% "'<.'% #8% #QY'/15#"+'21'6% 6'.+:2S% In( Softwa re(
pioneersS%7)28"'6%&"#>%) 2 6 %A " 2 . 1%-'2'"1%TA6.SUS%= 0 " +2 : ' "5@'",):%E'P%M#"RJ%92/SJ%E'P%M#"RJ%EMJ%L=3%d`X5dXdS%
%
C")'..'"J%3S%HSJ%G<J%=SJ%?)/R.#2J%CS%;SJ%7+1/(',,J%IS%ISJ%@'21<")J%)26%7SJ%D,2'>J%3SJ%G#<P'".'J%7S7S%[``fS%3<1#;<1#"W%3%1<1#"%P+1(%6+),#:<'%+2%
2)1<"),%,)2:<):'S%Behavioral(Research(Methods,(Instruments(and(ComputersJ%]eJ%Xi`5Xb]S%
%
9AAAS%XbbbS%Standard(Glossary(of(Software(Engineering(TerminologyS(eX`SX[5Xbb`J%@#,SXS%9AAA%4"'..S%
%
?)/#Q.#2J%9S%XbbdS%Software(Reuse:(Architecture,(Process(and(Organization(for(Business(SuccessS%366+.#25O'.,'>%4"#8'..+#2),S%%
%
N)1KJ%=SJ%G'.:#,6J%3SJ%I<:('.J%ASJ%4'1'".J%-SJ%A::)2J%CSJ%C#"6+2J%7SJ%)26%C"''2Q'":SJ%GS%XbbiS%=('",#/R%[W%32%+21',,+:'21%1<1#"+2:% .>.1'$%Q<+,1%
<0#2% 1('% GB-H% ;<1#"% !")$'P#"RS% 92% HS% 4S% &,##$% r% BS% &S% G#81+2% TA6.SUJ% Facilitating( the( development( and( use( of( interactive( learning(
environmentsS([[d5%[ciS%
%
7/H)Q'J%;S%XbdeS%3%/#$0,'\+1>%$').<"'S%IEEE(Trans.(Software(En ginee ringJ%cJ%fcsc`S%
%
7+1"#*+/J%3S%[``]S%32%+21',,+:'21%=lG%1<1#"%#2%1('%P'QS%International(Journal(of(Artificial(Intelligence(in(Edu cationJ%X ] T [ 5fUJ%Xbd5[f]S%
%
E',.#2J%&S% HS%[``dS%% A\0,#"+2:%1('% <.'% #8%+26+*+6<),+K'6J%"'8,'/1+*'%:<+6)2/'%+2% )2%'6</)1+#2),%$<,1+5<.'"%*+"1<),% '2*+"#2$'21S% Journal( of(
Science(Education(and(TechnologyJ%XeTXUJ%i]5bdS%
%
@)2G'(2J% NS%[``eS%;('%&'()*+#"%#8%;<1#"+2:%=>.1'$.S%International(Journal(of(Artificial(Intelligence(in( E du catio nS%@#,<$'%XeJ%9..<' %]J% 4): '.%
[[d5[ecS%9D=%4"'..S%
%
@)2G'(2J%NSJ% G>2/(J% HSJ%=/(<,1KJ% NSJ% =()0+"#J%?S%3SJ% =(',Q>J%BS%ISJ%;)>,#"J% GSJ%%;"')/>J%-SJ% O'+2.1'+2J%3SJ% )26%O+21'".:+,,J%7SS% [``cS% ;(' % 3 2 6 ' . %
0(>.+/.%1<1#"+2:%.>.1'$W%G'..#2.%,')"2'6S%International(Journal(of(Artificial(Intelligence(in(EducationJ%XcT]UJ%Xfd5[`fS%%
%
@)2G'(2J%NSJ%&<",'.# 2 J%OSJ%H()*'K5A/('):)")>J%7SASJ%H("+.1#0('".#2J% BSJ%C#2K),'K5=)2/('KJ%?SJ%I).1+2:.J%?SJ%I+6),:#54#21'1J%MSJ%)26%F()2:J%GSS%
[`XXS%;('%388'/1+*'%7'1)5;<1#"+2:%4"#Y'/1W% I#P%1#%$#1+*)1'% .1<6'21.%1#%<.'%'88'/1+*'%$'1)5/#:2+1+*'%.1")1':+'.S%;S%I+").(+$)%'1%),S%TA6.SUS%
92%Proceedings( of(the(19th(International(Conference( on(Computers(in(EducationS%H(+)2: %7)+J%;()+,)2 6 W%3.+)54)/+8+/% =#/+'1>%8#"%H#$0< 1'".%+2%
A6</)1+#2S%
%
@>:#1.R>J%GS%=S%XbdiS%Mind(in(Society:(The(Development(of(Higher(Psychological(ProcessesS%H)$Q"+6:'J%73W%I)"*)"6 %L 2+*'".+1>%4"'.. S%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
4G#4jXXJ%D/1#Q'"%[X5[]J%4#"1,)26J%D"':#2J%L=3S%H#0>"+:(1%[`XX%+.%(',6%Q>%1(' %) < 1( # "T.U S%3H 7%bdi5X5fc`]5X[i]5d%