Processus pour la génération automatique de composants exécutables à partir de contraintes d'architecture
Abstract
Architecture constraints are specifications defined by developers at design-time and checked
on design artifacts (architecture descriptions, like UML models). They enable to check, after
an evolution, whether an architecture description still conforms to the conditions imposed by an
architecture pattern, style or any design principle. One possible language for specifying such
constraints is the OMG's OCL. Most of these architecture constraints are formalized as "gross"
specifications, without any structure enabling parameterization or reusability. In order to check
them at the implementation stage, we propose in this work a method for translating automatically
these specifications into executable components. In addition to making them checkable at
the implementation stage, we chose to target software components in order to make these architecture
constraints reusable, parametrizable and composable specifications. Since architecture
constraints need to analyze architecture descriptions, the generated components use the standard
reflective (meta) level provided by the programming language to introspect architectures.
Our implementation takes as input OCL constraints specified on the UML metamodel. It produces
components programmed in Compo, our “home-made” reflective component-oriented
programming language.