Bridging the Gap between Modeling and Programming Languages Yann-Ga¨el Gu´eh´eneuc * , Herv´e Albin-Amiot † , R´emi Douence, and Pierre Cointe ´ Ecole des Mines de Nantes 4, rue Alfred Kastler – BP 20823 44307 Nantes Cedex 3 France {guehene|albin|douence|cointe}@emn.fr July 11, 2002 Abstract A discontinuity exists between modeling languages and object-oriented programming languages. This discontinuity is a consequence of ambiguous notions in modeling languages and lack of corresponding notions in object- oriented programming languages. It hinders the transition between a software design and its implementation, and vice versa. Thus, it hampers the implementation and the maintenance processes. This discontinuity is particularly acute for binary class relationships, which describe, at the design level, notions such as association, aggregation, and composition. From the current state of the art, we propose synthetic definitions for the binary class relationships at the design level and corresponding definitions at the implementation level. We express the latter definitions in terms of common properties. We present algorithms to synthesize code for these properties and to detect these properties in code. These algorithms allow us to generate and to detect binary class relationships. We verify the detection algorithms on several well-known frameworks. The definitions and algorithms bring continuity between modeling languages and object- oriented programming languages. * This work is partly funded by Object Technology International, Inc. – 2670 Queensview Drive – Ottawa, Ontario, K2B 8K1 – Canada † This work is partly funded by Soft-Maint – 4, rue du Chˆ ateau de l’ ´ Eraudi`ere – 44 324 Nantes – France. 1