[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
article

Extensible modeling with managed data in Java

Published: 20 October 2016 Publication History

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.

References

[1]
JHotDraw. Online, 2007. http://www.jhotdraw.org/.
[2]
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.
[3]
E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design patterns: elements of reusable object-oriented software. Pearson Education, 1994.
[4]
G. Kiczales, J. Des Rivieres, and D. G. Bobrow. The art of the metaobject protocol. MIT press, 1991.
[5]
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.
[6]
S. Krishnamurthi. Programming languages: Application and Interpretation. 2007.
[7]
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.
[8]
M. Marin. Refactoring JHotDraw’s undo concern to aspectj. In Proceedings of the 1st Workshop on Aspect Reverse Engineering (WARE 2004), 2004.
[9]
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.
[10]
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.
[11]
T. Mayerhofer and M. Wimmer. The TTC 2015 model execution case. In TTC’15, pages 2–18, 2015.
[12]
Object Management Group. OMG unified modeling language. version 2.5. Online, March 2015. http://www.omg.org/ spec/UML/2.5/PDF.
[13]
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.
[14]
D. C. Schmidt. Guest editor’s introduction: Model-driven engineering. Computer, 39(2):25–31, 2006.
[15]
G. Steele. Common LISP: the language. Elsevier, 1990.
[16]
D. Steinberg, F. Budinsky, E. Merks, and M. Paternostro. EMF: Eclipse Modeling Framework. Pearson Education, 2008.
[17]
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.
[18]
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.

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM SIGPLAN Notices
ACM SIGPLAN Notices  Volume 52, Issue 3
GPCE '16
March 2017
212 pages
ISSN:0362-1340
EISSN:1558-1160
DOI:10.1145/3093335
Issue’s Table of Contents
  • cover image ACM Conferences
    GPCE 2016: Proceedings of the 2016 ACM SIGPLAN International Conference on Generative Programming: Concepts and Experiences
    October 2016
    212 pages
    ISBN:9781450344463
    DOI:10.1145/2993236
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 20 October 2016
Published in SIGPLAN Volume 52, Issue 3

Check for updates

Author Tags

  1. Interpretation
  2. Managed Data
  3. Model-driven Development
  4. Proxies

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • 0
    Total Citations
  • 105
    Total Downloads
  • Downloads (Last 12 months)4
  • Downloads (Last 6 weeks)0
Reflects downloads up to 12 Dec 2024

Other Metrics

Citations

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media