Modellgetriebene Softwareentwicklung in der Praxis

Modulnummer
SE5012
Modulverantwortliche
Peter Kneisel
Dozenten
Dennis Priefer
Kurzbeschreibung
Der Kurs vermittelt und vertieft die Umsetzung von SE-Projekten unter Verwendung modellgetriebener Softwareentwicklung (Model-Driven Development, MDD). In einem praxisnahen Umfeld wird eine eigene Infrastruktur zur modellgetriebenen Entwicklung von Web-Applikationen konzipiert und umgesetzt.
Qualifikations- und Lernziele

Die Studierenden haben vertiefte Kenntnisse im Bereich der modellgetriebenen Softwareentwicklung. Sie sind sicher im Umgang mit Modellen und können selbstständig modellgetriebene Software-Projekte im Bereich komplexer ContentManagement-Systeme durchführen. Zusätzlich sind die Studierenden in der Lage, agile Methoden in ein solches Projekt einfließen zu lassen, sowie die Leitung des Projektteams zu übernehmen.

Lerninhalte
  • Einarbeitung in die modellgetriebene Softwareentwicklung (MDD):MDA, Rollen, Artefakte
  • MDD-Infrastruktur: DSL, Editoren, Generatoren
  • EMF: Ecore, Xtext, Sirius
  • Einführung und Umsetzung eines agilen SE-Prozesses
  • Content-Management-Systeme: Überblick, Joomla!
  • Praxisnahe Umsetzung eines MDD-Projektes
Moduldauer (Semester)
1
Unterrichtssprache
Deutsch
Gesamtaufwand
6 CrP; 180 Stunden, davon etwa 60 Stunden Präsenzzeit.
Semesterwochenstunden
4
Lernformen

Vorlesung 2 SWS, Praktikum 2 SWS

Geprüfte Leistung

Prüfungsleistung: Präsentation der Entwicklungsergebnisse mit Abnahme der Anwendung

Bewertungsstandard

Bewertung der Prüfungsleistung nach § 9 der Prüfungsordnung (Teil I)

Häufigkeit des Angebots
Einmal im Jahr
Literatur
  • Th. Stahl, M. Völter: Model-Driven Software Development -Technology, Engineering, Management, John Wiley & Sons
  • V. Gruhn, D. Pieper, C. Röttgers: MDA: Effektives Softwareengineering mit UML2 und Eclipse, Springer
  • M. Brambilla, J. Cabot, M. Wimmer: Model-Driven Software Engineering in Practice, Morgan & Claypool Publishers
Voraussetzungen

Diese Veranstaltung setzt umfangreiche Programmierkenntnisse, insbesondere im Bereich der komponentenbasierten, objektorientierten Programmierung voraus. Zusätzlich sollten methodische Kenntnisse im Bereich des Software-Engineerings und die Fähigkeit zum eigenverantwortlichen, teamorientierten Entwickeln vorhanden sein.