forces on architecture decisionsweb.mit.edu/richh/www/writings/slides/forces-wicsa-2012.pdfuwe van...
TRANSCRIPT
Forces on architecture decisions
Uwe van HeeschParis AvgeriouRich Hilliard
1Dienstag, 14. August 2012
Uwe van Heesch - [email protected]
Creating software architecture is making decisions
Architect
2Dienstag, 14. August 2012
Uwe van Heesch - [email protected]
Creating software architecture is making decisions
Make or buy?Which architectural patterns to use?
Which framework for persistence?
Which middleware platform?
Should we reuse components or design?
Should we use open source SW?
Where to put component C?
Architect
2Dienstag, 14. August 2012
Uwe van Heesch - [email protected]
Each decision implies a choice between 2 or more alternatives
?
3Dienstag, 14. August 2012
Uwe van Heesch - [email protected]
These choices are driven by forces.
prefer OSS
4Dienstag, 14. August 2012
Uwe van Heesch - [email protected]
Decisions are driven by forces.
Reliability
5Dienstag, 14. August 2012
Uwe van Heesch - [email protected]
Decisions are driven by forces.
Reliability
6Dienstag, 14. August 2012
Uwe van Heesch - [email protected]
Decisions are driven by forces.
ReliabilityExperience
6Dienstag, 14. August 2012
Uwe van Heesch - [email protected]
Decisions are driven by forces.
ReliabilityExperience
7Dienstag, 14. August 2012
Uwe van Heesch - [email protected]
Decisions are driven by forces.
ReliabilityExperience
Strateg. development
7Dienstag, 14. August 2012
Uwe van Heesch - [email protected]
Decisions are driven by forces.
ReliabilityExperience
Strateg. development
8Dienstag, 14. August 2012
Uwe van Heesch - [email protected]
Decisions are driven by forces.
ReliabilityExperience
Strateg. development
Scalability
8Dienstag, 14. August 2012
Uwe van Heesch - [email protected]
Decisions are driven by forces.
ReliabilityExperience
Strateg. developmentScalability
9Dienstag, 14. August 2012
Uwe van Heesch - [email protected]
Decisions are driven by forces.
ReliabilityExperience
Strateg. developmentScalability
prefer OSS
9Dienstag, 14. August 2012
Uwe van Heesch - [email protected]
Decisions are driven by forces.
ReliabilityExperience
Strateg. developmentScalability
9Dienstag, 14. August 2012
Uwe van Heesch - [email protected]
Decisions are driven by forces.
ReliabilityExperience
Strateg. developmentScalability
Resulting force
9Dienstag, 14. August 2012
Uwe van Heesch - [email protected]
A force is any aspect of an architectural problem arising in the system or its environment ( operational, development, business, organizational, political, economic, legal, regulatory, ecological, social, etc.), to be considered when choosing among the available decision alternatives.
10Dienstag, 14. August 2012
Uwe van Heesch - [email protected]
requirements
Typical forces
business goals
11Dienstag, 14. August 2012
Uwe van Heesch - [email protected]
requirements
Typical forces
business goals
constraints
11Dienstag, 14. August 2012
Uwe van Heesch - [email protected]
requirements
Typical forces
business goals
constraints
regulations
11Dienstag, 14. August 2012
Uwe van Heesch - [email protected]
requirements
Typical forces
business goals
constraints
regulations
laws
11Dienstag, 14. August 2012
Uwe van Heesch - [email protected]
requirements
Typical forces
business goals
constraints
regulations
laws
standards
11Dienstag, 14. August 2012
Uwe van Heesch - [email protected]
requirements
Typical forces
business goals
constraints
regulations
laws
standards
principles
11Dienstag, 14. August 2012
Uwe van Heesch - [email protected]
requirements
Typical forces
business goals
constraints
regulations
laws
standards
principleshw/sw interfaces
11Dienstag, 14. August 2012
Uwe van Heesch - [email protected]
requirements
Typical forces
business goals
constraints
regulations
laws
standards
principleshw/sw interfaces
previously made ADs
11Dienstag, 14. August 2012
Uwe van Heesch - [email protected]
requirements
business goalsconstraints
regulations
laws standards principles
hw/sw interfacespreviously made ADs
12Dienstag, 14. August 2012
Uwe van Heesch - [email protected]
requirements
forces
business goalsconstraints
regulations
laws standards principles
hw/sw interfacespreviously made ADs
12Dienstag, 14. August 2012
Uwe van Heesch - [email protected]
A framework for architecture decisions
using the conventions from ISO/IEC/IEEE 42010
DecisionRelationshipViewpoint
DecisionChronologyViewpoint
DecisionStakeholder
Involvement VP
DecisionChronologyViewpoint
DecisionDetail VP
14Dienstag, 14. August 2012
Uwe van Heesch - [email protected]
DecisionRelationshipViewpoint
DecisionChronologyViewpoint
15Dienstag, 14. August 2012
Uwe van Heesch - [email protected]
Uwe van Heesch - [email protected], 14. August 2012
Uwe van Heesch - [email protected]
DecisionChronologyViewpoint
DecisionChronologyViewpoint
17Dienstag, 14. August 2012
Uwe van Heesch - [email protected], 14. August 2012
Uwe van Heesch - [email protected]
DecisionChronologyViewpoint
DecisionChronologyViewpoint
19Dienstag, 14. August 2012
Uwe van Heesch - [email protected]
DecisionChronologyViewpoint
DecisionChronologyViewpoint
A framework for architecture decisions
using the conventions from ISO/IEC/IEEE 42010
DecisionRelationshipViewpoint
DecisionStakeholder
Involvement VP
DecisionDetail VP
20Dienstag, 14. August 2012
Uwe van Heesch - [email protected]
DecisionChronologyViewpoint
DecisionChronologyViewpoint
A framework for architecture decisions
using the conventions from ISO/IEC/IEEE 42010
DecisionRelationshipViewpoint
DecisionStakeholder
Involvement VP
DecisionForces
Viewpoint
DecisionDetail VP
20Dienstag, 14. August 2012
Uwe van Heesch - [email protected]
!"##$%
&'(#)%
!"#$
*'+')!,-.( &/& *!0 1#.$2'3)4! 5*6 78!9:
1;<#
=% %% % &' & & % %
=> % % %
=? %% % % %%
=@ %% % % % & % %
=A %% % & & % & (
=%B % ( % ( (
=%? % %% %%
=CB %% % %
=CD 1;EEF.-G'$-;.)+-')H.$#2.#$ %% %% % % % %
=C? /61H)IFJJ;2$ % ( % %
=CK % % % %% %%
0%
0%L% %%
0%LC %
0%LB
0%LD % %%
0%L> %
0C %%
0CL% % %%
0CLC && % %
0CLB && % %
0D % % % % %
0> %
0K %% & && && && % (
)*+,'-+./012134 !5-5'6-1753+ #*882+,57+
M<#G-<#<N M<-IG'2<#<N M<-IG'2<#<N M<#G-<#<N M<-IG'2<#<N M<-IG'2<#<N M<#G-<#<N
&;I$(2#!9:
'''''!+.*6*10'917.+6
:7./*-+.-;7+'6*30*<*.50-'7+=;*7+>+0-6
4#IG2-J$-;. 1;.G#2.OIP
Q+(L)2#IJ;.I#)$-E#)MR)SL%I T-E#)U#"'+-;2
H.$#(2'$#)EF3$L)J'8E#.$)J2;+-<#2I 5V$#.<'U-3-$8
=#3-'U-3-$8);W)<'$')I$;2'(# =#3-'U-3-$8
Q+'-3'U-3-$8);W)WF33)I#2+-G#)OAALAXP =#3-'U-3-$8
!FJJ;2$)(2;,-.().;);W)FI#2I !G'3'U-3-$8
!#GF2-$8)OJ#2I;.'3)<'$')J2;$#G$-;.P !#GF2-$8
13-#.$)J3'$W;2E)-.<#J#.<#.G# &;2$'U-3-$8
YJ#2'U-3-$8);W)FI#2)-.$#2W'G# ZI'U-3-$8
[#$,;2\)G;EEL
6'.\-.()J2;$;G;3I
[;)J'-<)B2<)J'2$8)3-G#.G#I 4#+#3;JE#.$)G;I$I
?-/+7'<17.+6
H.";FI#)#VJ#2-#.G# 4#+#3;JE#.$)$-E#
!,-.()O+#28)(;;<P 4#+#3;JE#.$)$-E#
&/&)O<#G#.$P 4#+#3;JE#.$)$-E#
*&Q)O(;;<P 4#+#3;JE#.$)$-E#
78!9:)O+#28)(;;<P 4#+#3;JE#.$)$-E#
*!0)O+#28)(;;<P 4#+#3;JE#.$)$-E#
!$2'$#(-G)\.;,3#<(#)<#+#3;JE#.$ 1;EJ#$-$-+#.#II
:#'2.)&;I$(2#I 1;EJ#$-$-+#.#II
HEJ2;+#)*'+'IG2-J$)I\-33I 1;EJ#$-$-+#.#II
:#'2.)*]F#28 1;EJ#$-$-+#.#II
:-.FV)I#2+#2)'+'-3'U3# 4#+#3;JE#.$)G;I$I
[;.)UFI-.#II)G2-$-G'3-$8 6FI-.#II)G2-$-G'3-$8
=#I;F2G#)FI'(#);.)I#2+#2 =#I;F2G#)F$-3-^'$-;.
Example of a forces view
21Dienstag, 14. August 2012
Uwe van Heesch - [email protected]
!"##$%
&'(#)%
!"#$
*'+')!,-.( &/& *!0 1#.$2'3)4! 5*6 78!9:
1;<#
=% %% % &' & & % %
=> % % %
=? %% % % %%
=@ %% % % % & % %
=A %% % & & % & (
=%B % ( % ( (
=%? % %% %%
=CB %% % %
=CD 1;EEF.-G'$-;.)+-')H.$#2.#$ %% %% % % % %
=C? /61H)IFJJ;2$ % ( % %
=CK % % % %% %%
0%
0%L% %%
0%LC %
0%LB
0%LD % %%
0%L> %
0C %%
0CL% % %%
0CLC && % %
0CLB && % %
0D % % % % %
0> %
0K %% & && && && % (
)*+,'-+./012134 !5-5'6-1753+ #*882+,57+
M<#G-<#<N M<-IG'2<#<N M<-IG'2<#<N M<#G-<#<N M<-IG'2<#<N M<-IG'2<#<N M<#G-<#<N
&;I$(2#!9:
'''''!+.*6*10'917.+6
:7./*-+.-;7+'6*30*<*.50-'7+=;*7+>+0-6
4#IG2-J$-;. 1;.G#2.OIP
Q+(L)2#IJ;.I#)$-E#)MR)SL%I T-E#)U#"'+-;2
H.$#(2'$#)EF3$L)J'8E#.$)J2;+-<#2I 5V$#.<'U-3-$8
=#3-'U-3-$8);W)<'$')I$;2'(# =#3-'U-3-$8
Q+'-3'U-3-$8);W)WF33)I#2+-G#)OAALAXP =#3-'U-3-$8
!FJJ;2$)(2;,-.().;);W)FI#2I !G'3'U-3-$8
!#GF2-$8)OJ#2I;.'3)<'$')J2;$#G$-;.P !#GF2-$8
13-#.$)J3'$W;2E)-.<#J#.<#.G# &;2$'U-3-$8
YJ#2'U-3-$8);W)FI#2)-.$#2W'G# ZI'U-3-$8
[#$,;2\)G;EEL
6'.\-.()J2;$;G;3I
[;)J'-<)B2<)J'2$8)3-G#.G#I 4#+#3;JE#.$)G;I$I
?-/+7'<17.+6
H.";FI#)#VJ#2-#.G# 4#+#3;JE#.$)$-E#
!,-.()O+#28)(;;<P 4#+#3;JE#.$)$-E#
&/&)O<#G#.$P 4#+#3;JE#.$)$-E#
*&Q)O(;;<P 4#+#3;JE#.$)$-E#
78!9:)O+#28)(;;<P 4#+#3;JE#.$)$-E#
*!0)O+#28)(;;<P 4#+#3;JE#.$)$-E#
!$2'$#(-G)\.;,3#<(#)<#+#3;JE#.$ 1;EJ#$-$-+#.#II
:#'2.)&;I$(2#I 1;EJ#$-$-+#.#II
HEJ2;+#)*'+'IG2-J$)I\-33I 1;EJ#$-$-+#.#II
:#'2.)*]F#28 1;EJ#$-$-+#.#II
:-.FV)I#2+#2)'+'-3'U3# 4#+#3;JE#.$)G;I$I
[;.)UFI-.#II)G2-$-G'3-$8 6FI-.#II)G2-$-G'3-$8
=#I;F2G#)FI'(#);.)I#2+#2 =#I;F2G#)F$-3-^'$-;.
21Dienstag, 14. August 2012
Uwe van Heesch - [email protected]
!"##$%
&'(#)%
!"#$
*'+')!,-.( &/& *!0 1#.$2'3)4! 5*6 78!9:
1;<#
=% %% % &' & & % %
=> % % %
=? %% % % %%
=@ %% % % % & % %
=A %% % & & % & (
=%B % ( % ( (
=%? % %% %%
=CB %% % %
=CD 1;EEF.-G'$-;.)+-')H.$#2.#$ %% %% % % % %
=C? /61H)IFJJ;2$ % ( % %
=CK % % % %% %%
0%
0%L% %%
0%LC %
0%LB
0%LD % %%
0%L> %
0C %%
0CL% % %%
0CLC && % %
0CLB && % %
0D % % % % %
0> %
0K %% & && && && % (
)*+,'-+./012134 !5-5'6-1753+ #*882+,57+
M<#G-<#<N M<-IG'2<#<N M<-IG'2<#<N M<#G-<#<N M<-IG'2<#<N M<-IG'2<#<N M<#G-<#<N
&;I$(2#!9:
'''''!+.*6*10'917.+6
:7./*-+.-;7+'6*30*<*.50-'7+=;*7+>+0-6
4#IG2-J$-;. 1;.G#2.OIP
Q+(L)2#IJ;.I#)$-E#)MR)SL%I T-E#)U#"'+-;2
H.$#(2'$#)EF3$L)J'8E#.$)J2;+-<#2I 5V$#.<'U-3-$8
=#3-'U-3-$8);W)<'$')I$;2'(# =#3-'U-3-$8
Q+'-3'U-3-$8);W)WF33)I#2+-G#)OAALAXP =#3-'U-3-$8
!FJJ;2$)(2;,-.().;);W)FI#2I !G'3'U-3-$8
!#GF2-$8)OJ#2I;.'3)<'$')J2;$#G$-;.P !#GF2-$8
13-#.$)J3'$W;2E)-.<#J#.<#.G# &;2$'U-3-$8
YJ#2'U-3-$8);W)FI#2)-.$#2W'G# ZI'U-3-$8
[#$,;2\)G;EEL
6'.\-.()J2;$;G;3I
[;)J'-<)B2<)J'2$8)3-G#.G#I 4#+#3;JE#.$)G;I$I
?-/+7'<17.+6
H.";FI#)#VJ#2-#.G# 4#+#3;JE#.$)$-E#
!,-.()O+#28)(;;<P 4#+#3;JE#.$)$-E#
&/&)O<#G#.$P 4#+#3;JE#.$)$-E#
*&Q)O(;;<P 4#+#3;JE#.$)$-E#
78!9:)O+#28)(;;<P 4#+#3;JE#.$)$-E#
*!0)O+#28)(;;<P 4#+#3;JE#.$)$-E#
!$2'$#(-G)\.;,3#<(#)<#+#3;JE#.$ 1;EJ#$-$-+#.#II
:#'2.)&;I$(2#I 1;EJ#$-$-+#.#II
HEJ2;+#)*'+'IG2-J$)I\-33I 1;EJ#$-$-+#.#II
:#'2.)*]F#28 1;EJ#$-$-+#.#II
:-.FV)I#2+#2)'+'-3'U3# 4#+#3;JE#.$)G;I$I
[;.)UFI-.#II)G2-$-G'3-$8 6FI-.#II)G2-$-G'3-$8
=#I;F2G#)FI'(#);.)I#2+#2 =#I;F2G#)F$-3-^'$-;.
decision topic
21Dienstag, 14. August 2012
Uwe van Heesch - [email protected]
!"##$%
&'(#)%
!"#$
*'+')!,-.( &/& *!0 1#.$2'3)4! 5*6 78!9:
1;<#
=% %% % &' & & % %
=> % % %
=? %% % % %%
=@ %% % % % & % %
=A %% % & & % & (
=%B % ( % ( (
=%? % %% %%
=CB %% % %
=CD 1;EEF.-G'$-;.)+-')H.$#2.#$ %% %% % % % %
=C? /61H)IFJJ;2$ % ( % %
=CK % % % %% %%
0%
0%L% %%
0%LC %
0%LB
0%LD % %%
0%L> %
0C %%
0CL% % %%
0CLC && % %
0CLB && % %
0D % % % % %
0> %
0K %% & && && && % (
)*+,'-+./012134 !5-5'6-1753+ #*882+,57+
M<#G-<#<N M<-IG'2<#<N M<-IG'2<#<N M<#G-<#<N M<-IG'2<#<N M<-IG'2<#<N M<#G-<#<N
&;I$(2#!9:
'''''!+.*6*10'917.+6
:7./*-+.-;7+'6*30*<*.50-'7+=;*7+>+0-6
4#IG2-J$-;. 1;.G#2.OIP
Q+(L)2#IJ;.I#)$-E#)MR)SL%I T-E#)U#"'+-;2
H.$#(2'$#)EF3$L)J'8E#.$)J2;+-<#2I 5V$#.<'U-3-$8
=#3-'U-3-$8);W)<'$')I$;2'(# =#3-'U-3-$8
Q+'-3'U-3-$8);W)WF33)I#2+-G#)OAALAXP =#3-'U-3-$8
!FJJ;2$)(2;,-.().;);W)FI#2I !G'3'U-3-$8
!#GF2-$8)OJ#2I;.'3)<'$')J2;$#G$-;.P !#GF2-$8
13-#.$)J3'$W;2E)-.<#J#.<#.G# &;2$'U-3-$8
YJ#2'U-3-$8);W)FI#2)-.$#2W'G# ZI'U-3-$8
[#$,;2\)G;EEL
6'.\-.()J2;$;G;3I
[;)J'-<)B2<)J'2$8)3-G#.G#I 4#+#3;JE#.$)G;I$I
?-/+7'<17.+6
H.";FI#)#VJ#2-#.G# 4#+#3;JE#.$)$-E#
!,-.()O+#28)(;;<P 4#+#3;JE#.$)$-E#
&/&)O<#G#.$P 4#+#3;JE#.$)$-E#
*&Q)O(;;<P 4#+#3;JE#.$)$-E#
78!9:)O+#28)(;;<P 4#+#3;JE#.$)$-E#
*!0)O+#28)(;;<P 4#+#3;JE#.$)$-E#
!$2'$#(-G)\.;,3#<(#)<#+#3;JE#.$ 1;EJ#$-$-+#.#II
:#'2.)&;I$(2#I 1;EJ#$-$-+#.#II
HEJ2;+#)*'+'IG2-J$)I\-33I 1;EJ#$-$-+#.#II
:#'2.)*]F#28 1;EJ#$-$-+#.#II
:-.FV)I#2+#2)'+'-3'U3# 4#+#3;JE#.$)G;I$I
[;.)UFI-.#II)G2-$-G'3-$8 6FI-.#II)G2-$-G'3-$8
=#I;F2G#)FI'(#);.)I#2+#2 =#I;F2G#)F$-3-^'$-;.
decision topic decision
21Dienstag, 14. August 2012
Uwe van Heesch - [email protected]
!"##$%
&'(#)%
!"#$
*'+')!,-.( &/& *!0 1#.$2'3)4! 5*6 78!9:
1;<#
=% %% % &' & & % %
=> % % %
=? %% % % %%
=@ %% % % % & % %
=A %% % & & % & (
=%B % ( % ( (
=%? % %% %%
=CB %% % %
=CD 1;EEF.-G'$-;.)+-')H.$#2.#$ %% %% % % % %
=C? /61H)IFJJ;2$ % ( % %
=CK % % % %% %%
0%
0%L% %%
0%LC %
0%LB
0%LD % %%
0%L> %
0C %%
0CL% % %%
0CLC && % %
0CLB && % %
0D % % % % %
0> %
0K %% & && && && % (
)*+,'-+./012134 !5-5'6-1753+ #*882+,57+
M<#G-<#<N M<-IG'2<#<N M<-IG'2<#<N M<#G-<#<N M<-IG'2<#<N M<-IG'2<#<N M<#G-<#<N
&;I$(2#!9:
'''''!+.*6*10'917.+6
:7./*-+.-;7+'6*30*<*.50-'7+=;*7+>+0-6
4#IG2-J$-;. 1;.G#2.OIP
Q+(L)2#IJ;.I#)$-E#)MR)SL%I T-E#)U#"'+-;2
H.$#(2'$#)EF3$L)J'8E#.$)J2;+-<#2I 5V$#.<'U-3-$8
=#3-'U-3-$8);W)<'$')I$;2'(# =#3-'U-3-$8
Q+'-3'U-3-$8);W)WF33)I#2+-G#)OAALAXP =#3-'U-3-$8
!FJJ;2$)(2;,-.().;);W)FI#2I !G'3'U-3-$8
!#GF2-$8)OJ#2I;.'3)<'$')J2;$#G$-;.P !#GF2-$8
13-#.$)J3'$W;2E)-.<#J#.<#.G# &;2$'U-3-$8
YJ#2'U-3-$8);W)FI#2)-.$#2W'G# ZI'U-3-$8
[#$,;2\)G;EEL
6'.\-.()J2;$;G;3I
[;)J'-<)B2<)J'2$8)3-G#.G#I 4#+#3;JE#.$)G;I$I
?-/+7'<17.+6
H.";FI#)#VJ#2-#.G# 4#+#3;JE#.$)$-E#
!,-.()O+#28)(;;<P 4#+#3;JE#.$)$-E#
&/&)O<#G#.$P 4#+#3;JE#.$)$-E#
*&Q)O(;;<P 4#+#3;JE#.$)$-E#
78!9:)O+#28)(;;<P 4#+#3;JE#.$)$-E#
*!0)O+#28)(;;<P 4#+#3;JE#.$)$-E#
!$2'$#(-G)\.;,3#<(#)<#+#3;JE#.$ 1;EJ#$-$-+#.#II
:#'2.)&;I$(2#I 1;EJ#$-$-+#.#II
HEJ2;+#)*'+'IG2-J$)I\-33I 1;EJ#$-$-+#.#II
:#'2.)*]F#28 1;EJ#$-$-+#.#II
:-.FV)I#2+#2)'+'-3'U3# 4#+#3;JE#.$)G;I$I
[;.)UFI-.#II)G2-$-G'3-$8 6FI-.#II)G2-$-G'3-$8
=#I;F2G#)FI'(#);.)I#2+#2 =#I;F2G#)F$-3-^'$-;.
decision topicdecision state
decision
21Dienstag, 14. August 2012
Uwe van Heesch - [email protected]
!"##$%
&'(#)%
!"#$
*'+')!,-.( &/& *!0 1#.$2'3)4! 5*6 78!9:
1;<#
=% %% % &' & & % %
=> % % %
=? %% % % %%
=@ %% % % % & % %
=A %% % & & % & (
=%B % ( % ( (
=%? % %% %%
=CB %% % %
=CD 1;EEF.-G'$-;.)+-')H.$#2.#$ %% %% % % % %
=C? /61H)IFJJ;2$ % ( % %
=CK % % % %% %%
0%
0%L% %%
0%LC %
0%LB
0%LD % %%
0%L> %
0C %%
0CL% % %%
0CLC && % %
0CLB && % %
0D % % % % %
0> %
0K %% & && && && % (
)*+,'-+./012134 !5-5'6-1753+ #*882+,57+
M<#G-<#<N M<-IG'2<#<N M<-IG'2<#<N M<#G-<#<N M<-IG'2<#<N M<-IG'2<#<N M<#G-<#<N
&;I$(2#!9:
'''''!+.*6*10'917.+6
:7./*-+.-;7+'6*30*<*.50-'7+=;*7+>+0-6
4#IG2-J$-;. 1;.G#2.OIP
Q+(L)2#IJ;.I#)$-E#)MR)SL%I T-E#)U#"'+-;2
H.$#(2'$#)EF3$L)J'8E#.$)J2;+-<#2I 5V$#.<'U-3-$8
=#3-'U-3-$8);W)<'$')I$;2'(# =#3-'U-3-$8
Q+'-3'U-3-$8);W)WF33)I#2+-G#)OAALAXP =#3-'U-3-$8
!FJJ;2$)(2;,-.().;);W)FI#2I !G'3'U-3-$8
!#GF2-$8)OJ#2I;.'3)<'$')J2;$#G$-;.P !#GF2-$8
13-#.$)J3'$W;2E)-.<#J#.<#.G# &;2$'U-3-$8
YJ#2'U-3-$8);W)FI#2)-.$#2W'G# ZI'U-3-$8
[#$,;2\)G;EEL
6'.\-.()J2;$;G;3I
[;)J'-<)B2<)J'2$8)3-G#.G#I 4#+#3;JE#.$)G;I$I
?-/+7'<17.+6
H.";FI#)#VJ#2-#.G# 4#+#3;JE#.$)$-E#
!,-.()O+#28)(;;<P 4#+#3;JE#.$)$-E#
&/&)O<#G#.$P 4#+#3;JE#.$)$-E#
*&Q)O(;;<P 4#+#3;JE#.$)$-E#
78!9:)O+#28)(;;<P 4#+#3;JE#.$)$-E#
*!0)O+#28)(;;<P 4#+#3;JE#.$)$-E#
!$2'$#(-G)\.;,3#<(#)<#+#3;JE#.$ 1;EJ#$-$-+#.#II
:#'2.)&;I$(2#I 1;EJ#$-$-+#.#II
HEJ2;+#)*'+'IG2-J$)I\-33I 1;EJ#$-$-+#.#II
:#'2.)*]F#28 1;EJ#$-$-+#.#II
:-.FV)I#2+#2)'+'-3'U3# 4#+#3;JE#.$)G;I$I
[;.)UFI-.#II)G2-$-G'3-$8 6FI-.#II)G2-$-G'3-$8
=#I;F2G#)FI'(#);.)I#2+#2 =#I;F2G#)F$-3-^'$-;.
forces
decision topicdecision state
decision
21Dienstag, 14. August 2012
Uwe van Heesch - [email protected]
!"##$%
&'(#)%
!"#$
*'+')!,-.( &/& *!0 1#.$2'3)4! 5*6 78!9:
1;<#
=% %% % &' & & % %
=> % % %
=? %% % % %%
=@ %% % % % & % %
=A %% % & & % & (
=%B % ( % ( (
=%? % %% %%
=CB %% % %
=CD 1;EEF.-G'$-;.)+-')H.$#2.#$ %% %% % % % %
=C? /61H)IFJJ;2$ % ( % %
=CK % % % %% %%
0%
0%L% %%
0%LC %
0%LB
0%LD % %%
0%L> %
0C %%
0CL% % %%
0CLC && % %
0CLB && % %
0D % % % % %
0> %
0K %% & && && && % (
)*+,'-+./012134 !5-5'6-1753+ #*882+,57+
M<#G-<#<N M<-IG'2<#<N M<-IG'2<#<N M<#G-<#<N M<-IG'2<#<N M<-IG'2<#<N M<#G-<#<N
&;I$(2#!9:
'''''!+.*6*10'917.+6
:7./*-+.-;7+'6*30*<*.50-'7+=;*7+>+0-6
4#IG2-J$-;. 1;.G#2.OIP
Q+(L)2#IJ;.I#)$-E#)MR)SL%I T-E#)U#"'+-;2
H.$#(2'$#)EF3$L)J'8E#.$)J2;+-<#2I 5V$#.<'U-3-$8
=#3-'U-3-$8);W)<'$')I$;2'(# =#3-'U-3-$8
Q+'-3'U-3-$8);W)WF33)I#2+-G#)OAALAXP =#3-'U-3-$8
!FJJ;2$)(2;,-.().;);W)FI#2I !G'3'U-3-$8
!#GF2-$8)OJ#2I;.'3)<'$')J2;$#G$-;.P !#GF2-$8
13-#.$)J3'$W;2E)-.<#J#.<#.G# &;2$'U-3-$8
YJ#2'U-3-$8);W)FI#2)-.$#2W'G# ZI'U-3-$8
[#$,;2\)G;EEL
6'.\-.()J2;$;G;3I
[;)J'-<)B2<)J'2$8)3-G#.G#I 4#+#3;JE#.$)G;I$I
?-/+7'<17.+6
H.";FI#)#VJ#2-#.G# 4#+#3;JE#.$)$-E#
!,-.()O+#28)(;;<P 4#+#3;JE#.$)$-E#
&/&)O<#G#.$P 4#+#3;JE#.$)$-E#
*&Q)O(;;<P 4#+#3;JE#.$)$-E#
78!9:)O+#28)(;;<P 4#+#3;JE#.$)$-E#
*!0)O+#28)(;;<P 4#+#3;JE#.$)$-E#
!$2'$#(-G)\.;,3#<(#)<#+#3;JE#.$ 1;EJ#$-$-+#.#II
:#'2.)&;I$(2#I 1;EJ#$-$-+#.#II
HEJ2;+#)*'+'IG2-J$)I\-33I 1;EJ#$-$-+#.#II
:#'2.)*]F#28 1;EJ#$-$-+#.#II
:-.FV)I#2+#2)'+'-3'U3# 4#+#3;JE#.$)G;I$I
[;.)UFI-.#II)G2-$-G'3-$8 6FI-.#II)G2-$-G'3-$8
=#I;F2G#)FI'(#);.)I#2+#2 =#I;F2G#)F$-3-^'$-;.
forces
decision topicdecision state
decision
impact rating
21Dienstag, 14. August 2012
Uwe van Heesch - [email protected]
Concerns framed by the forces viewpoint
Figure 3. Metamodel of decision forces viewpoint
related concerns, the stakeholders were identified in our pre-vious work.
Table ICONCERNS OF THE DECISION FORCES VIEWPOINT
Code ConcernC3 What is the rationale for decision D?C4 What concerns Ci does decision D pertain to?C5 What forces Fj impact/influence decision D?C6 What decisions Dk are influenced by force F ?C7 What forces Fl have conflicting influences on decision D?C23 What decisions Dp or decision sub-graphs SGq can be
reused in other projects?
Table IITYPICAL STAKEHOLDERS OF THE DECISION FORCES VIEWPOINT AND
THEIR CONCERNS
Stakeholder ConcernsArchitect C3, C4, C5, C6, C7Reviewer C3, C4, C5, C6, C7Requirements Engineer C4, C6, C7New project member C3Domain expert C23
The decision forces viewpoint consists of a single modelkind. Figure 3 depicts its metamodel, which presents theconceptual elements for architecture models that adhere toit. This model is part of a shared metamodel, which is usedby all viewpoints of the decision documentation framework.Together with well-defined correspondence rules, the sharedmetamodel ensures consistency among the views of differentviewpoints.
The elements in Figure 3 with a gray background mapto the corresponding elements in Figures 2 and 4 ofISO/IEC/IEEE 42010. In the following, each of the elementsused in Figure 3 is briefly described.
An architecture decision pertains to one or more concerns.Forces views show only the current state of each decision(e.g. decided, or discarded [3]). While decisions can generallyhave different types of relationships with each other, the forcesviewpoint only regards the is alternative for-relationship togroup multiple decision alternatives into a decision topic.
According to ISO/IEC/IEEE 42010, “Architecture rationalecaptures explanation, justification or reasoning about archi-tecture decisions that have been made.” [4]. In terms of theforces viewpoint, the architecture rationale should balance allrelevant forces that influence a decision. Note that architecturerationale is not described in forces views; it is documentedexplicitly in decision detail views, which are part of thedecision framework. In the forces viewpoint’s model kind,the association between Architecture Rationale and Influenceimplies that the rationale description should consider therelevant forces.
All forces are classified by one or more concerns. A stake-holder could for instance be concerned about developmentcost, while concrete forces classified by this concern couldbe “not to use paid 3rd-party licenses”, or to “use availablehardware where possible”. The force not to use 3rd-partylicenses could, besides the development cost concern, beclassified by a legal concern (e.g how the software can bedistributed).
Apart from a textual qualification, the influences relationshipbetween decision force and architecture decision can take oneof the following values, estimated by the architect(s) of thesystem:
++: A force strongly supports a specific decision alter-native to be chosen. An example from Figure 1 isthe operability force, which strongly advocates thechoice of Swing/Java, because Swing can be used todevelop rich graphical user interfaces.
+: A force moderately supports an alternative.blank: A force has a neutral influence on a decision alter-
native, or it is not applicable.-: A force moderately opposes an alternative.- -: A force strongly opposes an alternative to be chosen.
For instance, if the programming team has no experi-ence in functional programming, then this would bea strong argument against choosing Lisp or Haskellas a programming language.
X: A decision alternative is prevented by a force. Forinstance, a force could be not to use libraries dis-tributed under an open source license. Such a forcewould for instance prevent the use of Apache Luceneas a search library. Nevertheless, it can make senseto document such a decision alternative, because theforces view could be used to negotiate constraintsor requirements with the customer, if its advantagesclearly outweigh the opposing forces.
?: It is currently unclear how the decision alternative isimpacted by a force. This rating should be temporary,indicating that prototyping, or more research has tobe done to understand the impact better.
For space limitations, constraints and cross-viewpoint cor-respondence rules relevant to this viewpoint were omitted inthis article.
22Dienstag, 14. August 2012
Uwe van Heesch - [email protected]
Figure 3. Metamodel of decision forces viewpoint
related concerns, the stakeholders were identified in our pre-vious work.
Table ICONCERNS OF THE DECISION FORCES VIEWPOINT
Code ConcernC3 What is the rationale for decision D?C4 What concerns Ci does decision D pertain to?C5 What forces Fj impact/influence decision D?C6 What decisions Dk are influenced by force F ?C7 What forces Fl have conflicting influences on decision D?C23 What decisions Dp or decision sub-graphs SGq can be
reused in other projects?
Table IITYPICAL STAKEHOLDERS OF THE DECISION FORCES VIEWPOINT AND
THEIR CONCERNS
Stakeholder ConcernsArchitect C3, C4, C5, C6, C7Reviewer C3, C4, C5, C6, C7Requirements Engineer C4, C6, C7New project member C3Domain expert C23
The decision forces viewpoint consists of a single modelkind. Figure 3 depicts its metamodel, which presents theconceptual elements for architecture models that adhere toit. This model is part of a shared metamodel, which is usedby all viewpoints of the decision documentation framework.Together with well-defined correspondence rules, the sharedmetamodel ensures consistency among the views of differentviewpoints.
The elements in Figure 3 with a gray background mapto the corresponding elements in Figures 2 and 4 ofISO/IEC/IEEE 42010. In the following, each of the elementsused in Figure 3 is briefly described.
An architecture decision pertains to one or more concerns.Forces views show only the current state of each decision(e.g. decided, or discarded [3]). While decisions can generallyhave different types of relationships with each other, the forcesviewpoint only regards the is alternative for-relationship togroup multiple decision alternatives into a decision topic.
According to ISO/IEC/IEEE 42010, “Architecture rationalecaptures explanation, justification or reasoning about archi-tecture decisions that have been made.” [4]. In terms of theforces viewpoint, the architecture rationale should balance allrelevant forces that influence a decision. Note that architecturerationale is not described in forces views; it is documentedexplicitly in decision detail views, which are part of thedecision framework. In the forces viewpoint’s model kind,the association between Architecture Rationale and Influenceimplies that the rationale description should consider therelevant forces.
All forces are classified by one or more concerns. A stake-holder could for instance be concerned about developmentcost, while concrete forces classified by this concern couldbe “not to use paid 3rd-party licenses”, or to “use availablehardware where possible”. The force not to use 3rd-partylicenses could, besides the development cost concern, beclassified by a legal concern (e.g how the software can bedistributed).
Apart from a textual qualification, the influences relationshipbetween decision force and architecture decision can take oneof the following values, estimated by the architect(s) of thesystem:
++: A force strongly supports a specific decision alter-native to be chosen. An example from Figure 1 isthe operability force, which strongly advocates thechoice of Swing/Java, because Swing can be used todevelop rich graphical user interfaces.
+: A force moderately supports an alternative.blank: A force has a neutral influence on a decision alter-
native, or it is not applicable.-: A force moderately opposes an alternative.- -: A force strongly opposes an alternative to be chosen.
For instance, if the programming team has no experi-ence in functional programming, then this would bea strong argument against choosing Lisp or Haskellas a programming language.
X: A decision alternative is prevented by a force. Forinstance, a force could be not to use libraries dis-tributed under an open source license. Such a forcewould for instance prevent the use of Apache Luceneas a search library. Nevertheless, it can make senseto document such a decision alternative, because theforces view could be used to negotiate constraintsor requirements with the customer, if its advantagesclearly outweigh the opposing forces.
?: It is currently unclear how the decision alternative isimpacted by a force. This rating should be temporary,indicating that prototyping, or more research has tobe done to understand the impact better.
For space limitations, constraints and cross-viewpoint cor-respondence rules relevant to this viewpoint were omitted inthis article.
!"##$%
&'(#)%
!"#$
*'+')!,-.( &/& *!0 1#.$2'3)4! 5*6 78!9:
1;<#
=% %% % &' & & % %
=> % % %
=? %% % % %%
=@ %% % % % & % %
=A %% % & & % & (
=%B % ( % ( (
=%? % %% %%
=CB %% % %
=CD 1;EEF.-G'$-;.)+-')H.$#2.#$ %% %% % % % %
=C? /61H)IFJJ;2$ % ( % %
=CK % % % %% %%
0%
0%L% %%
0%LC %
0%LB
0%LD % %%
0%L> %
0C %%
0CL% % %%
0CLC && % %
0CLB && % %
0D % % % % %
0> %
0K %% & && && && % (
)*+,'-+./012134 !5-5'6-1753+ #*882+,57+
M<#G-<#<N M<-IG'2<#<N M<-IG'2<#<N M<#G-<#<N M<-IG'2<#<N M<-IG'2<#<N M<#G-<#<N
&;I$(2#!9:
'''''!+.*6*10'917.+6
:7./*-+.-;7+'6*30*<*.50-'7+=;*7+>+0-6
4#IG2-J$-;. 1;.G#2.OIP
Q+(L)2#IJ;.I#)$-E#)MR)SL%I T-E#)U#"'+-;2
H.$#(2'$#)EF3$L)J'8E#.$)J2;+-<#2I 5V$#.<'U-3-$8
=#3-'U-3-$8);W)<'$')I$;2'(# =#3-'U-3-$8
Q+'-3'U-3-$8);W)WF33)I#2+-G#)OAALAXP =#3-'U-3-$8
!FJJ;2$)(2;,-.().;);W)FI#2I !G'3'U-3-$8
!#GF2-$8)OJ#2I;.'3)<'$')J2;$#G$-;.P !#GF2-$8
13-#.$)J3'$W;2E)-.<#J#.<#.G# &;2$'U-3-$8
YJ#2'U-3-$8);W)FI#2)-.$#2W'G# ZI'U-3-$8
[#$,;2\)G;EEL
6'.\-.()J2;$;G;3I
[;)J'-<)B2<)J'2$8)3-G#.G#I 4#+#3;JE#.$)G;I$I
?-/+7'<17.+6
H.";FI#)#VJ#2-#.G# 4#+#3;JE#.$)$-E#
!,-.()O+#28)(;;<P 4#+#3;JE#.$)$-E#
&/&)O<#G#.$P 4#+#3;JE#.$)$-E#
*&Q)O(;;<P 4#+#3;JE#.$)$-E#
78!9:)O+#28)(;;<P 4#+#3;JE#.$)$-E#
*!0)O+#28)(;;<P 4#+#3;JE#.$)$-E#
!$2'$#(-G)\.;,3#<(#)<#+#3;JE#.$ 1;EJ#$-$-+#.#II
:#'2.)&;I$(2#I 1;EJ#$-$-+#.#II
HEJ2;+#)*'+'IG2-J$)I\-33I 1;EJ#$-$-+#.#II
:#'2.)*]F#28 1;EJ#$-$-+#.#II
:-.FV)I#2+#2)'+'-3'U3# 4#+#3;JE#.$)G;I$I
[;.)UFI-.#II)G2-$-G'3-$8 6FI-.#II)G2-$-G'3-$8
=#I;F2G#)FI'(#);.)I#2+#2 =#I;F2G#)F$-3-^'$-;.
23Dienstag, 14. August 2012
Uwe van Heesch - [email protected]
•multiple case study• 3 groups of graduating students•working in non-academic SW projects
(2 industrial, 1 open source)• used our decision framework to model ADs• observed over a period of seven weeks
Validation of the forces viewpoint
24Dienstag, 14. August 2012
Uwe van Heesch - [email protected]
Research questions
RQ1: How does the forces viewpoint supportthe decision making process?
RQ2: Which decision-related concerns does the forces viewpoint support?
25Dienstag, 14. August 2012
Uwe van Heesch - [email protected]
•work artifacts•weekly focus groups• participant observation• grounded theory for data analysis
Data collection and analysis
26Dienstag, 14. August 2012
Uwe van Heesch - [email protected]
Table IVRESULT OF THE QUALITATIVE ANALYSIS
Code Category PrjA PrjB PrjC Concerns Res. Qu.Cat1 Required students to think more carefully about decisions. X X X RQ1Cat2 Triggered students to consider quality attribute requirements. X X X RQ1Cat3 Prevents ad-hoc decisions. X X X RQ1Cat4 Forces viewpoint will be used in other projects. X X X RQ1Cat5 Triggered students to identify more alternatives. X X RQ1Cat6 Good way to document decisions. X X RQ1Cat7 Creating the forces view took a lot of time. X RQ1Cat8 Prevents inefficient discussions about decisions. X RQ1Cat9 Created with reasonable effort. X RQ1Cat10 Saved time in the end. X RQ1Cat11 Support for rational decisions. X RQ1Cat12 Forces view complements relationship view. X RQ1Cat13 Useful for architects, designers, programmers, and new project members. X RQ1Cat14 Support for weighing forces is missing. X RQ1Cat15 Identifying all forces is a matter of experience. X RQ1Cat16 Forces view and relationship view are simultaneously refined. X RQ1Cat17 Proper tool support needed. X RQ1Cat18 Maintain overview over architectural decisions, concerns, and forces. X X X C4,C5,C6 RQ1,RQ2Cat19 Helpful to systematically compare decision alternatives in the context of
forces.X X X C5,C6 RQ1,RQ2
Cat20 Help for estimating requirements coverage. X X C6 RQ1,RQ2Cat21 Support for systematic trade-offs between forces. X C7 RQ1,RQ2Cat22 Supports sharing architecture rationale. X X X C3, C23 RQ2
more important than other forces causing them to select anarchitecture decision alternative that had a lower rating (i.e.sums of pluses and minuses) than the other alternatives. Al-though we had considered this aspect during the design of theforces viewpoint, we chose not to include it in the viewpointspecification to keep it simple. Systematically weighing forceswould have introduced additional complexity, which couldhave deterred students from using the view properly. However,the forces viewpoint can easily be customized by stakeholdersin order to introduce such weights in their projects. Apartfrom this, it became evident that identifying all relevant forcesis a matter of experience (Cat15). Therefore, especially fordomain-specific forces, it can be helpful to collect typicalforces from different projects that can be used as a checklistto ensure that no important forces are forgotten. Tool supportwould also be appreciated, especially to ensure consistencyand to save work when creating the forces view in addition toother views from the framework (Cat17).
RQ2: Which decision-related concerns does the forcesviewpoint support? To find out for which decision-relatedconcerns the students used the forces views, we analyzedthe concepts and categories and compared them to the listof concerns in Table I. The results are shown in Table IV(categories 18 to 22). Because the categories are conceptuallymore abstract than single concerns, sometimes multiple con-cerns are mapped to a single category. Note that the studentswere not knowledgable about the concerns we had assignedto the forces viewpoint in the specification. This would haveintroduced a threat to the validity of our findings.
The concepts classified under category Cat18 have shownthat all three groups used the forces views to maintain anoverview over architectural decisions, concerns, and forces.
The students described that one column in the forces view(see Figure 1) shows which concerns (Cat18, concern C4), andwhich forces (Cat18, concern C5) are related to a decision.They also understood that a row in the view shows decisionsinfluenced by a specific force (Cat18, concern C6). Thisinformation was actively used by the students to make thechoice between multiple alternatives more systematic (Cat19,concerns C5, C6).
All three groups saw value in the forces viewpoint withrespect to sharing architecture rationale (Cat22, concern C3).In particular, they mentioned that usually individual membersof the groups were more knowledgeable about specific ar-chitectural decision alternatives and their relation to forcesthan others. The forces views helped them to spread thisknowledge better among the group members. Using their ownwords, the student groups stated that studying the forces viewhelped everybody to understand the why behind architecturedecisions, including the decisions primarily made by others.Category Cat22 was also assigned to concern C23, becausethe students saw the potential of the forces views to facilitatethe reusability of decisions in other projects: by providing therationale in terms of decisions addressing specific forces, thedecisions can be reused in cases where similar rationale wouldmake sense.
Two groups used the forces views to estimate the coverageof some important requirements (Cat20). During the analysisof the work artifacts, we could see that all groups had usedrequirements as forces; only two of the groups, however,had also actively used the forces view to check in howfar the decisions made were suitable to actually satisfy therequirements. They understood that a row in the view showsall decisions that need to be regarded when estimating the
Results
27Dienstag, 14. August 2012
Uwe van Heesch - [email protected]
+ supports decision making process of (inexperienced) designers + provides a structure for making systematic decisions+ documents rationale that went into decisions+ satisfies the stakeholder concerns assigned to the viewpoint
- different weights for forces needed- identifying forces requires experience
Results
28Dienstag, 14. August 2012
Uwe van Heesch - [email protected]
Ongoing work
• decision-centric architecture evaluation based on forces• lists of domain specific forces• different approaches to weighing forces• different approaches to force impact ratings• improved tool support for decision framework
29Dienstag, 14. August 2012