Experiments with Fractal on Modular Reflection

In most reflective systems, the model of reflection objects often mirrors (a part of) the metamodel of the system. As a result, reflection is commonly tightly bound to the rest of the system. In this paper, we investigate the loosening of that coupling. With the rise of domain-specific modeling the need for separation of concerns and reuse when designing metamodels become critical. Therefore, we advocate the use of general design patterns abstracting the details of modeling languages when working on cross-cutting concerns (such as reflection) of a metamodel. Once the abstract patterns for reflection are built, they are mapped onto concrete modeling languages thanks to model engineering tools. In this paper, we apply this approach to the fractal component model. Following this process, reflection mechanisms built at the abstract level are straightforwardly reused and the resulting reflection system gains modularity.

[1]  David Garlan,et al.  A formal basis for architectural connection , 1997, TSEM.

[2]  Jacques Klein,et al.  Composing Multi-view Aspect Models , 2008, Seventh International Conference on Composition-Based Software Systems (ICCBSS 2008).

[3]  Thierry Coupaye,et al.  The FRACTAL component model and its support in Java , 2006, Softw. Pract. Exp..

[4]  Gilad Bracha,et al.  Mirrors: design principles for meta-level facilities of object-oriented programming languages , 2004, OOPSLA.

[5]  Chouki Tibermacine Contractualisation de l'évolution architecturale de logiciels à base de composants : Une approche pour la préservation de la qualité , 2006 .

[6]  James Gosling,et al.  The Java Language Specification, 3rd Edition , 2005 .

[7]  Raghu Yedduladoddi Aspect Oriented Software Development , 2009 .

[8]  Guy L. Steele,et al.  Java(TM) Language Specification, The (3rd Edition) (Java (Addison-Wesley)) , 2005 .

[9]  Jeff Magee,et al.  The Evolving Philosophers Problem: Dynamic Change Management , 1990, IEEE Trans. Software Eng..

[10]  David H. Lorenz,et al.  Pluggable reflection: decoupling meta-interface and implementation , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[11]  Jean Bézivin,et al.  ATL: a QVT-like transformation language , 2006, OOPSLA '06.

[12]  Robert B. France,et al.  Providing Support for Model Composition in Metamodels , 2007, 11th IEEE International Enterprise Distributed Object Computing Conference (EDOC 2007).

[13]  Antoine Beugnard,et al.  How to Implement Software Connectors? A Reusable, Abstract and Adaptable Connector , 2005, DAIS.

[14]  Jean-Marc Jézéquel,et al.  On Executable Meta-Languages applied to Model Transformations , 2005 .

[15]  Gordon S. Blair,et al.  The design of a configurable and reconfigurable middleware platform , 2002, Distributed Computing.

[16]  Roel Wuyts,et al.  Declarative reasoning about the structure of object-oriented systems , 1998, Proceedings. Technology of Object-Oriented Languages. TOOLS 26 (Cat. No.98EX176).

[17]  Vivien Quéma,et al.  Supporting Heterogeneous Architecture Descriptions in an Extensible Toolset , 2007, 29th International Conference on Software Engineering (ICSE'07).

[18]  Gabor Karsai,et al.  Metamodeling-rapid design and evolution of domain-specific modeling environments , 1999, Proceedings ECBS'99. IEEE Conference and Workshop on Engineering of Computer-Based Systems.

[19]  Robert B. France,et al.  A Generic Approach for Automatic Model Composition , 2008, MoDELS.

[20]  Siobhán Clarke,et al.  Theme: an approach for aspect-oriented analysis and design , 2004, Proceedings. 26th International Conference on Software Engineering.

[21]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[22]  Alexis Muller,et al.  Reusing functional aspects : from composition to parameterization , 2004 .