Conclusion

There are many ways to represent patterns. Most of those methods are based on Alexander's definition and attempt to describe the problem, context and the solution in natural language. Diagrams are usually a part of that explanation and play an important role in understanding of patterns. The problem with diagrams is lack of formalism. Pattern representation using IC Cards could be a solution to this problem.

IC Cards offer several advantages over other methods to represent patterns.

  1. IC Card representation is easy to learn and understand.
  2. IC Cards are inherently object-oriented and are well suited for presenting software design patterns.
  3. IC Cards carry useful information about each design component (For example, description, task, and interaction method)
  4. IC Cards provide a dynamic information about object interaction by using task color coding.
  5. IC Cards is a formal framework that can be used for virtually every pattern.
  6. IC Cards can be automatically generated from source code examples.

DiagramMaker is a good example of how useful it is to have a formal pattern representation scheme. IC Card diagrams can be generated using this tool from already available source code. This tool demonstrates that IC Cards can be effectively used for pattern representation especially in the domain of object-oriented software design.