During software development an experience like this happens: "I have used this design before" or "If I implement in this way, it certainly will work". A mechanism for describing, share and reuse these experiences is a software pattern. There are patterns related to analysis, design and development organization.
The most famous are the "Design Patterns" by Gamma et al. (Gang of Four or GoF), which should sound familiar to anyone who has studied Object Oriented design. The GoF Design Patters are general solutions for recurrent challenges and constraints (often called "forces") that were faced by the authors while doing object oriented design. A developer who has pattern knowledge, when faced to a problem that needs a tree structure to represent part-whole hierarchy, may use the Composite pattern, or when faced to a problem that needs a dynamic update notification, may use the Observer pattern and solve the problem.
Since the public release of the GoF Design Patterns, many more patterns have been published. However, there does not exist a mechanism for using multiple patterns, and this has become a drag for the adoption of design patterns. The pattern group in the Fukazawa Laboratory, to help in the development of the software patterns does research in the following areas:
- Automatic analysis of inter pattern relationships by using natural language processing
- An analysis method for calculating the importance of the relationships among pattern references
The group members are part of the IPSJ/SIGSE Patterns Working Group (In Japanese) where researchers and practitioners collaborate and interact.