Abstract
Model-driven engineering entails various modeling, abstraction and specialization levels for user-interface development. We focus on model-driven tools generating user-interface code, either entire or partial, providing a tangible basis for programmers to introduce custom refinements and extensions. The latter introduces two maintenance issues: (i) once the generated code is modified the source-to-model extraction path, if supported, is broken; and (ii) if the model is updated, code regeneration overwrites custom changes. To address these issues we proposed an alternative path: (i) instead of directly generating code, the model driven tool generates source fragments in the form of abstract syntax trees (ASTs) as XML files; (ii) the application deploys compile-time metaprogramming to manipulate, generate and insert code on-demand from such ASTs, using calls similar to macro invocations. The latter leads to improved separation of concerns: (a) the application programmer controls when and where interface source is generated and integrated in the application source; and (b) interface regeneration overwrites no source code as it only produces ASTs that are manipulated (input) via generator macros.
Chapter PDF
Similar content being viewed by others
Keywords
References
Savidis, A.: Delta Programming Language (2012), http://www.ics.forth.gr/hci/files/plang/Delta/Delta.html (accessed february 2014)
Taha, W.: A gentle introduction to multi-stage programming. In: Lengauer, C., Batory, D., Blum, A., Odersky, M. (eds.) Domain-Specific Program Generation. LNCS, vol. 3016, pp. 30–50. Springer, Heidelberg (2004)
Schramm, A., Preußner, A., Heinrich, M., Vogel, L.: Rapid UI Development for Enterprise Applications: Combining Manual and Model-Driven Techniques. In: Petriu, D.C., Rouquette, N., Haugen, Ø. (eds.) MODELS 2010, Part I. LNCS, vol. 6394, pp. 271–285. Springer, Heidelberg (2010)
Sheard, T., Benaissa, Z., Martel, M.: Introduction to multi-stage programming using MetaML. Technical report, Pacific Software Research Center, Oregon Graduate Institute (2000)
Lilis, Y., Savidis, A.: Implementing Reusable Exception Handling Patterns with Compile-Time Metaprogramming. In: Avgeriou, P. (ed.) SERENE 2012. LNCS, vol. 7527, pp. 1–15. Springer, Heidelberg (2012)
Lilis, Y., Savidis, A.: Implementing Reusable Exception Handling Patterns with Compile-Time Metaprogramming. In: Avgeriou, P. (ed.) SERENE 2012. LNCS, vol. 7527, pp. 1–15. Springer, Heidelberg (2012)
Foley, J., Kim, W.C., Kovacevic, S., Murray, K.: Defining Interfaces at a High Level of Abstraction. IEEE Software 6(1), 25–32 (1989)
MetaOCaml, A compiled, type-safe multi-stage programming language (2003), http://www.metaocaml.org/
wx Form Builder (2006), A RAD tool for wx GUIs, http://sourceforge.net/projects/wxformbuilder/ (accessed online January 2014)
Michotte, B., Vanderdonckt, J.: GrafiXML, a Multi-target User Interface Builder Based on UsiXML. In: Proceedings of ICAS 2008 4th International Conference on Autonomic and Autonomous Systems, Gosier, Guadeloupe, March 16-21, pp. 15–22. IEEE (2008)
Sauer, S., Engels, G.: Easy model-driven development of multimedia user interfaces with guiBuilder. In: Stephanidis, C. (ed.) HCI 2007. LNCS, vol. 4554, pp. 537–546. Springer, Heidelberg (2007)
GtkBuilder – Build an interface from an XML UI definition, https://developer.gnome.org/gtk3/stable/GtkBuilder.html (accessed online January 2014)
The Eclipse Foundation. Eclipse Modeling Framework, EMF (2008), http://www.eclipse.org/modeling/emf/ (accessed online January 2014)
Obeo (2006), Acceleo: MDA generator, http://www.acceleo.org/pages/home/en (accessed online January 2014)
Actifsource GmbH (2010), Actifsource Code Generator for Eclipse, http://www.actifsource.com/_downloads/actifsource_code_generator_for_Eclipse_en.pdf (accessed online January 2014)
Lanusse, A., Tanguy, Y., Espinoza, H., Mraidha, C., Gerard, S., Tessier, P., Schnekenburger, R., Dubois, H., Terrier, F.: Papyrus UML: an open source toolset for MDA. In: Proceedings of the Tools and Consultancy Track of the Fifth European Conference on Model-Driven Architecture Foundations and Applications (ECMDA-FA 2009), University of Twente. Enschede, The Netherlands, June 23-26 (2009)
Desfray, P.: Modelio: Globalizing MDA. In: Proceedings of the Tools and Consultancy Track of the Fifth European Conference on Model-Driven Architecture Foundations and Applications (ECMDA-FA 2009), University of Twente. Enschede, The Netherlands, June 23-26 (2009)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2014 Springer International Publishing Switzerland
About this paper
Cite this paper
Savidis, A., Valsamakis, Y., Lilis, Y. (2014). Improved Model-Driven Engineering of User-Interfaces with Generative Macros. In: Stephanidis, C., Antona, M. (eds) Universal Access in Human-Computer Interaction. Design and Development Methods for Universal Access. UAHCI 2014. Lecture Notes in Computer Science, vol 8513. Springer, Cham. https://doi.org/10.1007/978-3-319-07437-5_14
Download citation
DOI: https://doi.org/10.1007/978-3-319-07437-5_14
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-07436-8
Online ISBN: 978-3-319-07437-5
eBook Packages: Computer ScienceComputer Science (R0)