skip to main content
article

Extensible modeling with managed data in Java

Published:20 October 2016Publication History
Skip Abstract Section

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

Index Terms

  1. Extensible modeling with managed data in Java

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in

    Full Access

    • 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

      Copyright © 2016 ACM

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 20 October 2016

      Check for updates

      Qualifiers

      • article
    • Article Metrics

      • Downloads (Last 12 months)2
      • Downloads (Last 6 weeks)1

      Other Metrics

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader
    About Cookies On This Site

    We use cookies to ensure that we give you the best experience on our website.

    Learn more

    Got it!