Abstract
Many model-driven development (MDD) tools employ specialized frameworks and modeling languages, and assume that the semantics of models is provided by some form of code generation. As a result, programming against models is cumbersome and does not integrate well with ordinary programming languages and IDEs. In this paper we present MD4J, a modeling approach for embedding metamodels directly in Java, using plain interfaces and annotations. The semantics is provided by data managers that create and manipulate models. This architecture enables two kinds of extensibility. First, the data managers can be changed or extended to obtain different base semantics of a model. This allows a kind of aspect-oriented programming. Second, the metamodels themselves can be extended with additional fields and methods to modularly enrich a modeling language. We illustrate our approach using the example of state machines, discuss the implementation, and evaluate it with two case-studies: the execution of UML activity diagrams and an aspect-oriented refactoring of JHotDraw.
- JHotDraw. Online, 2007. http://www.jhotdraw.org/.Google Scholar
- G. Bracha and D. Ungar. Mirrors: Design principles for metalevel facilities of object-oriented programming languages. In Proceedings of the 19th Annual ACM SIGPLAN Conference on Object-oriented Programming, Systems, Languages, and Applications, OOPSLA ’04, pages 331–344, New York, NY, USA, 2004. ACM. Google Scholar
Digital Library
- E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design patterns: elements of reusable object-oriented software. Pearson Education, 1994. Google Scholar
Digital Library
- G. Kiczales, J. Des Rivieres, and D. G. Bobrow. The art of the metaobject protocol. MIT press, 1991. Google Scholar
Digital Library
- G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C. Lopes, J.-M. Loingtier, and J. Irwin. Aspect-oriented programming. In ECOOP’97 - Object-oriented programming, pages 220–242. Springer, 1997.Google Scholar
- S. Krishnamurthi. Programming languages: Application and Interpretation. 2007.Google Scholar
- A. Loh, T. van der Storm, and W. R. Cook. Managed data: modular strategies for data abstraction. In Proceedings of the ACM international symposium on New ideas, new paradigms, and reflections on programming and software (Onward!’12), pages 179–194. ACM, 2012. Google Scholar
Digital Library
- M. Marin. Refactoring JHotDraw’s undo concern to aspectj. In Proceedings of the 1st Workshop on Aspect Reverse Engineering (WARE 2004), 2004.Google Scholar
- M. Marin, A. Van Deursen, and L. Moonen. Identifying aspects using fan-in analysis. In Reverse Engineering, 2004. Proceedings. 11th Working Conference on, pages 132–141. IEEE, 2004. Google Scholar
Digital Library
- S. Marr, C. Seaton, and S. Ducasse. Zero-overhead metaprogramming: Reflection and metaobject protocols fast and without compromises. In Proceedings of the 36th ACM SIGPLAN Conference on Programming Language Design and Implementation, pages 545–554. ACM, 2015. Google Scholar
Digital Library
- T. Mayerhofer and M. Wimmer. The TTC 2015 model execution case. In TTC’15, pages 2–18, 2015.Google Scholar
- Object Management Group. OMG unified modeling language. version 2.5. Online, March 2015. http://www.omg.org/ spec/UML/2.5/PDF.Google Scholar
- C. Sant’Anna, A. Garcia, C. Chavez, C. Lucena, and A. Von Staa. On the reuse and maintenance of aspect-oriented software: An assessment framework. In Proceedings of Brazilian symposium on software engineering, pages 19–34, 2003.Google Scholar
- D. C. Schmidt. Guest editor’s introduction: Model-driven engineering. Computer, 39(2):25–31, 2006. Google Scholar
Digital Library
- G. Steele. Common LISP: the language. Elsevier, 1990. Google Scholar
Digital Library
- D. Steinberg, F. Budinsky, E. Merks, and M. Paternostro. EMF: Eclipse Modeling Framework. Pearson Education, 2008. Google Scholar
Digital Library
- T. Van Cutsem and M. S. Miller. Proxies: Design principles for robust object-oriented intercession APIs. In Proceedings of the 6th Symposium on Dynamic Languages, DLS ’10, pages 59–72, New York, NY, USA, 2010. ACM. Google Scholar
Digital Library
- T. Van Der Storm, W. R. Cook, and A. Loh. The design and implementation of object grammars. Science of Computer Programming, 96:460–487, 2014. Google Scholar
Digital Library
Index Terms
Extensible modeling with managed data in Java
Recommendations
Extensible modeling with managed data in Java
GPCE 2016: Proceedings of the 2016 ACM SIGPLAN International Conference on Generative Programming: Concepts and ExperiencesMany model-driven development (MDD) tools employ specialized frameworks and modeling languages, and assume that the semantics of models is provided by some form of code generation. As a result, programming against models is cumbersome and does not ...
Model-driven engineering with domain-specific meta-modelling languages
Domain-specific modelling languages are normally defined through general-purpose meta-modelling languages like the MOF. While this is satisfactory for many model-driven engineering (MDE) projects, several researchers have identified the need for domain-...
Analysis, Specification and Modeling of Functional Requirements for Translative Model-Driven Development
KAM '08: Proceedings of the 2008 International Symposium on Knowledge Acquisition and ModelingConceptual models play an important role within model-driven development (MDD) and become the main artifacts of software development. Developing conceptual model, however, is not a trivial task. There is no clear, direct way to transform requirements ...







Comments