James Martin CpE 691 February 4, 2010
Problem Overview The pattern solution Comparing patterns and decision The pattern-decision relationship Using patterns Limitations and further research 2
Decisions made during software architecting have a substantial impact on the system Design decisions aren’t documented by architects thoroughly enough by architects. ◦ All aspects (i.e. alternatives, rationale, expected consequences, etc) are not usually captured Leads to “knowledge vaporization” 3
Decisions are not recorded Development and evolution cycles of software do not have appropriate access to decisions that were made during the architectural design The decisions might reside in the heads of architects, but people eventually forget “If something is not written down, it does not exist” 4
It takes a lot of effort Decisions are made without thought Can be disruptive to the flow of design Architects don’t know how 5
A.K.A. architectural style Patterns help document decisions because they: ◦ Include general structural and behavioral info ◦ When a pattern is chosen, a decision is made so it can be documented ◦ Architects already use patterns so they aren’t disruptive ◦ Patterns are typically easy to follow ◦ They are solutions to recurring problems 6
Layers Pipes and filters Blackboard Model-View-Controller (MVC) Presentation-Abstraction-Control (PAC) 7
Issue being decided Decision that was made Alternatives Reasons for making the decision 8
Pattern sectionDecision Section Name ProblemIssue CategoryGroup Status ContextAssumptions, constraints Solution variants according to forcesPositions SolutionDecision RationaleImplications Resulting context / consequences Example, know issues Related patternsRelated decisions, requirements, artifacts, or principles Notes 9
Two types of knowledge 1.Application-generic knowledge Implicate knowledge gained through previous experiences (such as from patterns) Used to make decisions 2.Application-specific knowledge Involves decisions made during the architecting process, as well as the solutions It is the decisions Patterns comprise #1 Decisions comprise #2 10
Architecting is decision-intensive Making a lot of decisions means doing a lot of documentation Using patterns helps alleviate the need for as much documentation since the documentation is implicit When a pattern is selected the architectural decision is documented via the pattern’s usage 11
Application specific decisions must still be documented Not all decisions can be captured via patterns ◦ Organization decisions ◦ Financial decisions Using multiple patterns together without understanding them can lead to conflicts Why a decision was made is not documented via patterns 12