Abstract
Model-Driven Software Development is based on standardised models that are refined, transformed and eventually translated into executable code using code generators. However, creating plain text from well-structured models creates a gap that implies several drawbacks: Developers cannot continue to use their model-based tool machinery, relations between model elements and code fragments are hard to track and there is no easy way to rebuild models from their respective code.
This paper presents an approach to bridge this gap for the Java programming language. It defines a full metamodel and text syntax specification for Java, from which a parser and a printer are generated. Through this, Java code can be handled like any other model. The implementation is validated with large test sets, example applications are shown, and future directions of research are discussed.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Ritsko, J.J., Seidman, D.I.: Preface. IBM Systems Journal – Special Issue on Model-Driven Software Development 45(3) (2006)
Völter, M., Stahl, T.: Model-Driven Software Development. Wiley & Sons, Chichester (2006)
Steinberg, D., Budinsky, F., Paternostro, M., Merks, E.: Eclipse Modeling Framework, 2nd edn. Pearson Education, London (2008)
Heidenreich, F., Johannes, J., Seifert, M., Wende, C.: JaMoPP: The Java Model Parser and Printer. Technical Report TUD-FI09-10 August 2009, Technische Universität Dresden (2009)
Heidenreich, F., Johannes, J., Karol, S., Seifert, M., Wende, C.: Derivation and Refinement of Textual Syntax for Models. In: Paige, R.F., Hartman, A., Rensink, A. (eds.) ECMDA-FA 2009. LNCS, vol. 5562, pp. 114–129. Springer, Heidelberg (2009)
Gosling, J., Joy, B., Steele, G., Bracha, G.: Java(TM) Language Specification, 3rd edn. Java Series. Addison-Wesley Professional, Reading (2005)
Bravenboer, M., Kalleberg, K.T., Vermaas, R., Visser, E.: Stratego/XT 0.17. A language and toolset for program transformation. Science of Computer Programming 72(1-2), 52–70 (2008); Special issue on experimental software and toolkits
Object Management Group: Metamodel and UML Profile for Java and EJB Specification Version 1.0. formal/2004-02-02 (2004)
Pawlak, R.: Spoon: Compile-time Annotation Processing for Middleware. IEEE Distributed Systems Online 7(11) (2006)
Mernik, M., Heering, J., Sloane, A.M.: When and How to Develop Domain-Specific Languages. ACM Computing Surveys (CSUR) 37(4), 316–344 (2005)
Heidenreich, F., Johannes, J., Seifert, M., Wende, C., Böhme, M.: Generating Safe Template Languages. In: Proc. of the 8th Int’l Conf. on Generative Programming and Component Engineering (GPCE 2009). ACM, New York (2009)
Seifert, M., Samlaus, R.: Static Source Code Analysis using OCL. In: Cabot, J., Van Gorp, P. (eds.) Proc. of the MoDELS 2008 Workshop on OCL Tools: From Implementation to Evaluation and Comparison, OCL 2008 (2008)
Pohl, K., Böckle, G., van der Linden, F.: Software Product Line Engineering. Foundations, Principles, and Techniques. Springer, Heidelberg (2005)
Heidenreich, F., Kopcsek, J., Wende, C.: FeatureMapper: Mapping Features to Models. In: Comp. Proc. of the 30th Int’l Conf. on Software Engineering (ICSE 2008), pp. 943–944. ACM, New York (2008)
Diehl, S.: Software Visualization. Springer, Heidelberg (2007)
Ehrig, K., Ermel, C., Hänsgen, S., Taentzer, G.: Towards Graph Transformation based Generation of Visual Editors using Eclipse. In: Proc. of the Workshop: Visual Languages and Formal Methods, VLFM (2004)
GMF Team: Graphical Modeling Framework, http://www.eclipse.org/gmf/
Bravenboer, M.: Exercises in Free Syntax. Syntax Definition, Parsing, and Assimilation of Language Conglomerates. PhD thesis, Utrecht University, Utrecht, The Netherlands (2008)
Goldschmidt, T., Becker, S., Uhl, A.: Classification of Concrete Textual Syntax Mapping Approaches. In: Schieferdecker, I., Hartman, A. (eds.) ECMDA-FA 2008. LNCS, vol. 5095, pp. 169–184. Springer, Heidelberg (2008)
Angyal, L., Lengyel, L., Charaf, H.: A Synchronizing Technique for Syntactic Model-Code Round-Trip Engineering. In: 15th IEEE Int’l Conf. on Engineering of Computer Based Systems (ECBS 2008), pp. 463–472. IEEE Computer Society, Los Alamitos (2008)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2010 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Heidenreich, F., Johannes, J., Seifert, M., Wende, C. (2010). Closing the Gap between Modelling and Java. In: van den Brand, M., Gašević, D., Gray, J. (eds) Software Language Engineering. SLE 2009. Lecture Notes in Computer Science, vol 5969. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-12107-4_25
Download citation
DOI: https://doi.org/10.1007/978-3-642-12107-4_25
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-12106-7
Online ISBN: 978-3-642-12107-4
eBook Packages: Computer ScienceComputer Science (R0)