Design patterns are important in object-oriented software
engineering. They contribute to the quality of programs. They
offer design motifs, elegant solutions to recurrent design
problems. After implementation, the motifs are disseminated in
source code. They are not available directly for maintenance;
however they would help in understanding program implementation
and design and in ensuring the quality of programs after
maintenance. This thesis explores models and algorithms to
identify semi-automatically micro-architectures in source code,
which are similar to motifs, and to ensure their traceability
between implementation and reverse engineering phases.
Meta-modeling is used to describe design motifs and Java
programs. It leads to characterize certain interclass relations
(association, aggregation, and composition) offered by design
languages, such as UML, to precise their properties (access
type, lifetime, exclusivity, and multiplicity), and to identify
them with static and dynamic analyses. It also leads to translate
motifs into constraint systems and to identify
micro-architectures, which are similar to motifs (complete and
distorted forms), by solving constraint satisfaction problems.
Explanation-based constraint programming allows guiding the solve
interactively and explaining identified micro-architectures.
The Ptidej tool suite implements the proposed models and
algorithms and is integrated with the Eclipse development
environment for Java. It includes the PADL meta-model,
derived from the PDL meta-model; Static and dynamic analysis
tools, Introspector and Caffeine; A constraint solveur,
PtidejSolver, derived from the PaLM explanation-based
constraint solver. |