@proceedings {BallisBC07b,
	title = {A Minimalist Visual Notation for Design Patterns and Antipatterns},
	journal = {5th International Conference on Information Technology: New Generations},
	year = {2008},
	pages = {51{\textendash}56},
	publisher = {IEEE Computer Society},
	abstract = {Achieving a quality software system requires UML designers to have a good understanding of both design patterns and antipatterns. Unfortunately, UML models for real systems tend to be huge and hard to manage, especially for models automatically generated from source code. Thus, it would be advisable to have tools to automatically identify particular instances of patterns. So, a formal language to express them is needed. However, a textual formalization of such a language is barely usable by UML practitioners. In this paper we propose a visual notation obtained by adding to UML as few graphical elements as possible in order to express both patterns and antipatterns (with the needed formality). This approach has low cognitive load so is easily usable by practitioners but is still rigorous enough for implementation. This notation will be exploited by a GUI front-end for a prototypical tool (that we have recently developed) which is able to discover (anti)patterns in models.
In [3], we proposed a rule-based matching algorithm to identify all instances of a pattern in the graph which underlies the designers{\textquoteright} diagrams. A pattern is given in a general textual language that can express at the same time patterns and antipatterns. However, a formal textual specification is hard to use by UML practitioners. This work was just our first step towards a more ambitious goal: providing a pattern-matching tool that works with a graphical language which extends UML adding as few graphical primitives as possible, yet at the same time retaining the needed precision to be effectively implementable. In this paper we propose such a visual notation. As the additional primitives are really few and intuitive, we believe that this approach involves a reduced cognitive load for the UML designer. Moreover, we developed an algorithm to convert the visual representation of a pattern to an equivalent textual description in terms of the language proposed in [3]. This description can eventually be fed to the prototypical tool that we have developed.},
	doi = {10.1109/ITNG.2008.227},
	author = {Demis Ballis and Andrea Baruzzo and Marco Comini}
}
