Interconnected Linguistic Architecture

Johannes Härtel1, Lukas Härtel2, Ralf Lämmel3, Andrei Varanovich4, and Marcel Heinz5

The Art, Science, and Engineering of Programming, 2017, Vol. 1, Issue 1, Article 3

Submission date: 2016-09-02
Publication date: 2017-01-27
Full text: PDF


The context of the reported research is the documentation of software technologies such as object/relational mappers, web-application frameworks, or code generators. We assume that documentation should model a macroscopic view on usage scenarios of technologies in terms of involved artifacts, leveraged software languages, data flows, conformance relationships, and others. In previous work, we referred to such documentation also as ‘linguistic architecture’. The corresponding models may also be referred to as ‘megamodels’ while adopting this term from the technological space of modeling/model-driven engineering. This work is an inquiry into making such documentation less abstract and more effective by means of connecting (mega)models, systems, and developer experience in several ways. To this end, we adopt an approach that is primarily based on prototyping (i.e., implementa- tion of a megamodeling infrastructure with all conceivable connections) and experimentation with showcases (i.e., documentation of concrete software technologies). The knowledge gained by this research is a notion of interconnected linguistic architecture on the grounds of connecting primary model elements, inferred model elements, static and runtime system artifacts, traceability links, system contexts, knowledge resources, plugged interpretations of model elements, and IDE views. A corresponding suite of aspects of interconnected linguistic architecture is systematically described. As to the grounding of this research, we describe a literature survey which tracks scattered occurrences and thus demonstrates the relevance of the identified aspects of interconnected linguistic architecture. Further, we describe the MegaL/Xtext+IDE infrastructure which realizes interconnected linguistic architecture. The importance of this work lies in providing more formal (ontologically rich, navigable, verifiable) documentation of software technologies helping developers to better understand how to use technologies in new systems (prescriptive mode) or how technologies are used in existing systems (descriptive mode).

  1., University of Koblenz-Landau, Germany

  2., University of Koblenz and Landau, Germany, Germany

  3., Universität Koblenz-Landau, Germany

  4., Universität Koblenz-Landau, Germany

  5., University of Koblenz, Germany