Projects

Pattern Library

A pattern can be seen as an insightful and clever way of solving a particular class of problems. This means that a pattern should represent the most general and flexible solution to a specific problem, which is achieved by the work of many people who have addressed the problem from different angles and perspectives. In software engineering, the concept of patterns has been introduced in the notion of design patterns.

" A design pattern focuses on a particular software design problem or issue. It contains a detailed discussion of how this problem can be apportioned into a context, which describes the circumstances under which the problem is applicable, and the individual motivating factors, or forces that need to be resolved. The design pattern then describes how these forces are either resolved or balanced within the scope of that context to provide a solution which then diverges into benefits, related solutions and remaining negative forces called consequences."

Along with patterns, which are intended to facilitate the design and development processes, the term antipattern is defined. An antipattern " is something that looks like a good idea, but which backfires badly when applied". From this viewpoint, an antipatterns is simply a solution to a problem that does not work correctly. Antipatterns can also be seen as extensions to design patterns [Antipatterns]. Along these definitions, efforts exist to document antipatterns in catalogs (similar to design patterns) so that they can be used efficiently in the development cycle- actually, the best use of an antipattern is to avoid it.

We address the situation, where we try to detect in a MT application, the problems (coding errors, inefficient coordination, etc) that lead to incorrect or inefficient behavior of an application. Therefore, we try to locate places in the application, where antipatterns have already been used by the developers. Thus, similar to many previous works involving patterns and antipatterns, we try to produce a clear documentation of the problems that we have collected so far. We discuss a practical approach to document the collected problems, which makes it easier to us and the users of any prospective analysis toolset to understand the problems, detect them and, hopefully, correct the code that suffers from their existence. At the same time, we propose a template to represent code and program problems (antipatterns), and we present a library of the collected antipatterns. This library can be later integrated as supporting documentation in the prospective analysis environment.

Antipattern Library (PDF 257 KB)

 
boite_recherche_g

Search

boite_recherche_d

CONTACT

Alexandre Petrenko, Ph.D.

Team Director and Lead Researcher

514 840-1290

Alexandre Petrenko, Ph.D.