Analysis patterns

From CSSEMediaWiki
(Difference between revisions)
Jump to: navigation, search
(New page: == Analysis Patterns == What is an ''analysis'' pattern? I think an analysis pattern is: * An archetypal domain model for a specific problem domain. * Like a design pattern, but withou...)
 
Line 2: Line 2:
  
 
What is an ''analysis'' pattern?  I think an analysis pattern is:
 
What is an ''analysis'' pattern?  I think an analysis pattern is:
* An archetypal domain model for a specific problem domain.
+
* An archetypal domain model for a specific problem domain.
* Like a design pattern, but without implementation details.
+
* Like a design pattern, but without implementation details.
  
 
In other words, analysis patterns look a lot like design patterns, but they are for some specific problem domain, rather than being applicable to any problem in the way that design patterns are.  They are examples of [[Domain modelling]].
 
In other words, analysis patterns look a lot like design patterns, but they are for some specific problem domain, rather than being applicable to any problem in the way that design patterns are.  They are examples of [[Domain modelling]].

Revision as of 04:23, 23 September 2008

Analysis Patterns

What is an analysis pattern? I think an analysis pattern is:

  • An archetypal domain model for a specific problem domain.
  • Like a design pattern, but without implementation details.

In other words, analysis patterns look a lot like design patterns, but they are for some specific problem domain, rather than being applicable to any problem in the way that design patterns are. They are examples of Domain modelling.

Consider our Parse tree design example. We aren't the only ones to need a parse tree, and our design must look a lot like other designs. Why not abstract out the problem domain concepts, remove any implementation details (like Enums in java) and make a reusable model, suitable for use in any parse tree implementation? Then we'd have an analysis model for the domain of parse trees.

The parse tree design exercise stepped through a series of design issues. Rather than being a single model, we produced a family of related designs, with extensions that address different issues. e.g. the VisitorPattern was applied to the parse tree to allow flexible traversals, while the FlyweightPattern reduced space requirements.

Analysis patterns are like that too. Most patterns provide a model for some problem domain, with extensions for variations on the theme.

The main source of analysis patterns is Martin Forler 1997.

Personal tools