Software Language Engineering

Dozent: Prof. Dr. Bernhard Rumpe
Betreuende Assistenten:
Art der Veranstaltung: Vorlesung mit praktischer Übung und Praktikum als Prüfungsleistung
Lehrveranstaltungsnummer: 12.00001
Umfang: V3Ü2; 6 ECTS

Wegen der Corona-Krise finden bis auf weiteres alle Termine der Vorlesung in rein digitaler Form statt. Die Auftakt-Veranstaltung wird am 06.04.2020 07.04.2020 per Zoom Videokonferenz stattfinden. Wir bitten alle Interessierten bis dahin Zoom bei sich einzurichten.

Die Zoom Links zur Veranstaltung werden über Moodle bekanntgegeben. Bitte melden Sie sich über RWTHonline für die Vorlesung an, um Zugriff auf den Moodle-Lernraum und die Zoomlinks zu erhalten.


Termine:
Di.10:30 - 12:00 UhrAH VVorlesung (oder Übung)
Di.16:30 - 18:00 UhrAH VVorlesung (oder Übung)
Mi.16:30 - 18:00 UhrAH VVorlesung (oder Übung)
Do.14:30 - 16:00 UhrAH VVorlesung (oder Übung)


Hinweis: In den ersten Terminen finden vor allem Vorlesungen statt. Es wird in den Übungen eine grössere Entwicklungsaufgabe gestellt, die in die Note eingeht. (Details werden noch bekannt gegeben bzw. in den ersten Vorlesungsstunden besprochen.)

Voraussetzungen
Kenntnisse der Veranstaltung "Einführung in die Softwaretechnik" werden benötigt.

Inhalte
"Die Grenzen meiner Sprache bedeuten die Grenzen meiner Welt." Ludwig Wittgenstein. Dies trifft umso mehr zu, wenn Menschen mit Computern kommunizieren. Der Kurs beschäftigt sich mit den Konzepten zur Sprachdefinition, wie etwa Metamodellen, Grammatiken, modernen Editoren und zur Verwendung von Software Sprachen, zum Beispiel zur Modellierung von Software, Systemen, Simulationen. Dabei werden Beispiele, wie etwa die UML, domänenspezifische Sprachen (DSL), XML diskutiert und semantische Analyse und Generierungstechniken besprochen. DSLs eignen sich immer da, wo Nicht-Informatiker mit Computern zu tun haben und komplexe Sachverhalte modellhaft beschreiben müssen.

Lernziele

Knowledge
  • Domänenspezifische Sprachen
  • Generator-Technologie
  • Simulation und Generierung aus Modellen
  • Analyse von Modellen
Skills
  • Entwicklung von DSLs
Competences
  • Verständnis des Nutzen von Modellen
  • Verständnis und Anwendung der UML

Grundlegende Literatur:
  • [HR17] K. Hölldobler, B. Rumpe: MontiCore 5 Language Workbench, Edition 2017. Shaker Verlag, Aachener Informatik-Berichte, Software Engineering, Band 32. Dec. 2017.
  • [Rum17] B. Rumpe: Agile Modeling with UML: Code Generation, Testing, Refactoring. Springer International, May 2017.
  • [CFJ+16] B. Combemale, R. France, J. Jézéquel, B. Rumpe, J. Steel, D. Vojtisek: Engineering Modeling Languages: Turning Domain Knowledge into Tools. Chapman & Hall/CRC Innovations in Software Engineering and Software Development Series, November 2016.