Visits for this page:
Once the model of an application obtained (using the meta-model aforementioned, updated with
it is possible to apply a constraints system on this model to detect (bad) design patterns.
Setting up such a system consists in two stages : definition of basic low-level constraints, such as
isSuperclass or isLinkComposition. Then, using those constraints, formalisation of the design patterns.
But, what is the link between design patterns and bad conception? The idea is that a design
pattern describes a good conception, thus, anything that comes close to a design pattern is a step in the
We try to detect those places where we have almost a good design pattern to improve them.
How to do so from a constraints system on design patterns? By using a system of constraints with
Briefly, a system of constraints with explanation may propose to relax certain contraints to find more solutions.
First, the system detects places where design patterns are correctly applied then the places
that are less and less close to design patterns as the constraints are being relaxed.
Our system Ptidej (Patterns Trace Identification, Detection and Enhancement for Java) is
based on the contraints propagator Choco
realized by the group OCRE and on the system with explanation
PaLM (Propagation and Learning with Move) developed by
Narendra Jussien, from the Constraints Programming team of the computer science department.