GSSI course in May 2017

Metadata

  • Title: Elements of SLEBOK (Software Language Engineering (SLE) Body of Knowledge (BOK))
  • Lecturer: Ralf Lämmel
  • Host: Ludovico Iovino
  • Location: GSSI, l'Aquila, Italy
  • Format: Course for PhD students at GSSI
  • Dates: 29-31 May 2017

Abstract

A body of knowledge (BOK) is the set of concepts, terms, activities, etc. that make up a domain. The Software Language Engineering (SLE) BOK (SLEBOK) thus concerns software languages, their definition, implementation, usage, evolution, etc. In this course, I propose a substantial set of candidate elements of the SLEBOK. I do so by leveraging the notion of a Software Language Repository (SLR). Such a repository aggregates components for language definition (grammars, signatures, metamodels, operational semantics) and language processing (interpreters, translators, analyzers, transformers, pretty printers, etc.). SLRs are typically set up for developing and using metaprogramming systems, language workbenches, language definition or executable semantic or modeling frameworks. SLRs are also set up in the context of textbooks. SLRs are useful for organizing reusable knowledge about software languages: their definition, implementation, and usage. In this course, I discuss two SLRs: i) YAS (http://www.softlang.org/yas) which is a repository that is the backbone of the Software Languages Book (http://www.softlang.org/book) covering syntax, semantics, types, and metaprogramming for software languages; ii) MetaLib (http://www.softlang.org/metalib) which is a repository for the comparison of metaprogramming technologies. I am going to use these SLRs to give an overview of the area of software language engineering (SLE) and metaprogramming specifically. Along the way, I am presenting some specific aspects of YAS and MetaLib which correspond to ongoing research topics: the use of ontologies and annotation for knowledge organization in an SLR, the use of Linked Open Data for exploration of an SLR, and the use of megamodeling for consistency maintenance in an SLR.

Slides

http://softlang.uni-koblenz.de/gssi17.pdf

Project proposals

PhD students may pick topics from the following list. Host and lecturer are happy to help along the process of selection and actual project work.

Linked Open Data in Software Engineering

Review recent literature on Linked Open Data (LOD) or closely related approaches in the context of software engineering. Use a simplified form of a systematic mapping study or systematic literature survey. Use the following raw research questions for orientation; you are welcome to refine or modify these questions to arrive at a coherent and useful survey:

  • Summary of the LOD scenario
  • What kind of program-based data access make sense?
  • What kind of human-based data access makes sense?
  • What data access options are provided (dump, HTTP GET, …)?
  • Is a triple store used and exposed, e.g., by means of allowing queries?
  • Is a schema published for the data? What schema language is used?
  • What kind of external resources are linked?

Example of a relevant paper: https://link.springer.com/chapter/10.1007%2F978-3-642-04930-9_49

Connection principles of megamodeling

Using the principles identified in http://softlang.uni-koblenz.de/megaconnect/ (e.g., traceability links, artifact binding, and model inference), survey recent literature in the MODELS, SLE, ECMFA, and MODELSWARD conferences to identify papers that use some of the principles or make proposals regarding (variants of) the principles. Use a simplified form of a systematic mapping study or systematic literature survey. The outcome of the survey could be a table with papers that are associated with principles. A scale could be used to specify whether the principle is less or more perfectly matched.

MetaLib contribution

Add a contribution for an additional technology or approach, e.g., a contribution demonstrating EMFtext. This boils down to developing an implementation of FSML such as those shown at https://softlang.github.io/metalib/ including a documentation model for the implementation such as those shown at https://github.com/softlang/metalib/tree/master/docs/models

MegaLib model

Add a megamodel for an additional technology, e.g., a megamodel for EMFtext. You should use the MegaLib checker and you can inspire yourself by megamodels found in the corresponding repository https://github.com/softlang/megalib/tree/master/models

Links