Pattern Enforcer

Tool for efficient development using design patterns

Filip Zavoral


The flexibility provided by design patterns is usually achieved by introducing new classes into the design. Developers often don't write sufficient documentation, therefore the mapping between classes and design patterns is lost. Moreover, some design patterns could be misunderstood and implemented incorrectly. The complexity of design patterns oriented software development can easily overtake the advantages of design patterns usage, which might lead to software bugs or even complete failure of the development.
We present the Patterns4Net project that targets the .NET platform. With Patterns4Net, developers can annotate their classes using special attributes that document the usage of design patterns in a standardized way. This documentation is then used by Pattern Enforcer, a tool that verifies correctness of design patterns implementation, and Architecture Explorer, which uses information about implemented design patterns to generate interactive UML-like class diagrams that emphasize the connection between design patterns and particular classes.
Such system improves the development process of complex design pattern oriented software created by a larger team, because it helps to discover communication errors and violations of design patterns implementation earlier and provides a visual tool to tackle some of the design complexity that is caused by design patterns usage.

Where to get it

Contact email:




  • Šindelář Š., Zavoral F.: Design Patterns Support in Development Environments, technical report no. 2011/2, Department of Software Engineering, 56 pages, 2011 - WWW
The content of this web site is licensed under Creative Commons Attribution-NonCommercial 3.0 Czech Republic