Modeling Programming Technologies -- WS 2011/12

Intent this course

Researchers and students work together on practical and theoretical matters of (mega)modeling programming technologies with the immediate objective of better understanding prior art and developing useful (mega)models for specific programming technologies including the underlying taxonomy. This effort is meant to advance the 101companies project.

Organizers of the course

  • Ralf Lämmel
  • Andrei Varanovich

Participants of the course

The participants are listed in alphabetic order.

Each participant is annotated with the mode of participation (practinar mode) and a topic.

  • Thomas Bernau
  • Holger Johannes Heinz
  • Sebastian Jackel
    • Mode: Guest
      • Topic: Undisclosed
  • Michael Krawez
    • Mode: Proseminar
      • Topic: Education software analysis
  • Martin Leinberger
    • Mode: Seminar
      • Topic: A megamodel for ATL usage scenarios
  • Dmitriy Pichkurov
    • Mode: Proseminar
      • Topic: Riccioni et al.'s paper on Java security
  • Marius Rackwitz
    • Mode: Proseminar
      • Topic: A megamodel for Hibernate usage scenarios
  • Thomas Schmorleiz
    • Mode: Research practical
      • Topic: A domain-specific wiki for 101companies
  • Thomas Schnitzler
    • Mode: Proseminar
      • Topic: Wikipedia analysis
  • Tobias Zimmer
    • Mode: Guest
      • Topic: Undisclosed

Format as advertised

This Practinar—-a pun that combines the term Practical and Seminar.

  • A number of pro-seminar topics on education for programming (related to 101companies) will be offered. See the literature references below. More references welcome. These are relatively accessible articles on education for programming which may inspire progress on 101companies.
  • A number of seminar topics on modeling, metamodeling, and megamodeling will be offered. See the literature references below. These articles cover non-trivial material suited for individual seminar contributions.
  • The format of project practical can be exercised with tool development for 101companies infrastructure. For instance, there is a need for extensions to the domain-specific wiki (based on mediawiki) and there are ideas for a megamodel IDE (based on Eclipse).
  • The format of research practical can be exercised with megamodeling development for 101companies: apply megamodels to specific technologies and provide feedback on the initial megamodeling language.

Please find general information about the formats of seminar, project practical, and research practical on the wiki of the Software Languages Team.

Dates for the course

  • Planning meeting: 18 Aug, 2011, 1:15pm, B 132
  • Kickoff meeting: 21 Nov, 2011, 2:15pm, B 127
  • 1st consultation: 19 Dec, 2011, Individual times, B 127
  • Workshop with presentations: 27 Jan, 2012
  • Deadline for papers: 1 March, 2012

Individual topics

The following topics can be assigned to individuals who would like to work on subjects that require a mix of practical and conceptual efforts. These topics need be customized to be valid for any of the four modes of the practinar (pro-/seminar, project/research practical).

  • A trace monitor for Java: (This topic can only be customized for project/research practical.) Based on the megamodeling paper and ongoing design efforts within the team, develop a trace monitor for runtime trace matching with a given specification.
  • A megamodel for Hibernate: (This topic can be customized for all practinar modes subject to different foci and expectation levels.) Based on the megamodeling paper and existing Hibernate 101implementations, develop a megamodel for Hibernate applications and propose improved coverage of Hibernate by 101companies. (Various other Object/Relational/XML technologies could be covered in this manner, thereby creating potential assignments for several individuals.)
  • A visual megamodeling language: (It is unreasonable to assume that this topic can be completed through modes other than project/research practical, but the pro-/seminar modes could be usefully leveraged to begin some investigation on the suitability of tools.) Subject to an initial technology review as well as a language design effort, specific technology (such as GMF or Graphviz) should be deployed to create a visual frontend for the megamodeling language. A major decision is here whether interactive model editing should be supported or whether a visual viewer is only intended.
  • Feature analysis of state-of-art build systems: Megamodeling, as noted in the paper, overlaps somewhat with the intention of build systems in trying to help understand the artifact dependencies in a project. Based on appropriate resources, which are to be determined possibly also to some extent by the student by means of a literature study, a summary of a feature analysis for build systems should be compiled.
  • Feature analysis of deployment frameworks: Very much like build systems, frameworks for deployment, e.g., Nix, help with managing dependencies in projects. The relation to megamodeling is perhaps less obvious, but nevertheless understanding the features of such deployment frameworks appears to be useful. Based on appropriate resources, which are to be determined possibly also to some extent by the student by means of a literature study, a summary of a feature analysis for deployment frameworks should be compiled.
  • Focused review of NoSQL databases: In the context of 101companies, we face a startling challenge in terms of data modeling, which is not readily met by any established paradigm that comes with readily available technology. We face the combo of classic schema needs, markup, annotations, ontology needs, web-based access. It appears that NoSQL databases may already be a better fit than SQL databases. However, we would like to better understand what different systems can offer to us in the view of the aforementioned combo.
  • Ontology reviews: We are now aware of several ontologies that are concerned with different aspects of software engineering. None of these ontologies, as far as we know them, are very close to megamodeling, but nevertheless these are wonderful inspirations the ongoing effort on adding stronger ontology usage to 101companies. Reviews of any of these ontologies (or several of them) should help understanding these ontologies from a 101companies point of view.
  • A 101companies-based benchmark for data parallelism: Initially, 101companies is not specific enough to cater for the non-trivial comparison of specific technology domains. For instance, with the basic features cut and total, it would be difficult to properly explore and compare the capabilities of data-parallel programming technologies. However, subject to appropriate refinements of the 101feature model, such an exploration and comparison becomes possible.
  • Education software analysis: Is there an educational software that could be easily enough combined with the 101companies concept to provided added value for course coverage of 101companies? Alternatively, are their features or concepts that a 101companies could easily adopt from the educational software domain? Also, is there is any evidence of any mismatch in that perhaps 101companies better used a designated system as opposed to reusing an existing system?
  • Wikipedia analysis: Wikipedia uses mediawiki's categories and other less formal means to actually organize much of the huge set of pages through classification and other means. As far as programming languages and technologies are concerned, there are, indeed, various categories and collection pages that relate to 101companies efforts. We would like to better understand what wikipedia can offer us in terms of method, wiki techniques, actual ontology (taxonomy, classification) and how to effectively leverage these options.

Course resources

Selected papers and pointers