Die Vorlesung vermittelt Konzepte zum Entwurf und der Implementierung von domänenspezifischen Sprachen. Schwerpunkte sind:

  • Design
  • Implementierung
    • Language Implementation Patterns
    • Scoping
    • Linking
    • Interpreter
    • Code Generatoren
    • Testen
  • Einsatz von DSLs im Software Engineering

Zur Vorbereitung auf die Nachholklausur in Konzepte der Programmierung. Kerninhalte der Vorlesung werden wiederholt und geübt. Auf Wunsch können bestimmte Themen genauer besprochen werden.

Im Rahmen der Vorlesung werden verschiedene Modelltransformationen und dafür benötigte Werkzeuge betrachtet.


Eine Vorbersprechung zum Übungsbetrieb wird am

11.04. um 11:30 Uhr im Raum 2.37

stattfinden.


Am Ende des Semester wird voraussichtlich eine schriftliche Klausur gestellt.

Die Vorlesungssprache ist deutsch.

Die Studierenden sollen einen möglichst breiten Überblick über Sprachen, Methoden und Werkzeuge für das Software Engineering erhalten und deren Anwendung an kleineren Beispielen üben. Einen Schwerpunkt bildet dabei die objektorientierte Softwareentwicklung. Es werden (abgesehen vom Programmieren im Kleinen) alle Arbeitsbereiche des Software Engineering abgedeckt.

Insbesondere werden Analyse- und Design-Kompetenzen vermittelt, die für die Entwicklung großer Softwaresysteme von zentraler Bedeutung sind. Darüber hinaus werden methodische Kompetenzen u.a. in Projektmanagement, Konfigurationsverwaltung und Qualitätssicherung vermittelt.

Software Engineering: Definition, Lebenszyklusmodelle, Phasen, Arbeitsbereiche, Disziplinen

Requirements Engineering: Kernaktivitäten (Dokumentation, Gewinnung, Übereinstimmung), Anforderungsspezifikation, Pflichtenheft, Lastenheft

Anforderungsanalyse: Analysemodell, Objekt- und Klassendiagramme, Anwendungsfalldiagramme, Aktivitätsdiagramme

Entwurf: Architekturbegriff, Paketdiagramme, Klassendiagramme, Sequenzdiagramme, Kommunikationsdiagramme, Zustandsdiagramme

Entwurfsmuster: Design for Change, ausgewählte Entwurfsmuster (Observer, Composite, State, Factory etc.)

Formale Spezifikationen: algebraische Spezifikationen

Projektmanagement: Funktionen, Organisationsstrukturen, Planung mit CPM-Netzwerken und Gantt-Diagrammen

Konfigurationsmanagement: Versionskontrolle, optimistische und pessimistische Synchronisation, Änderungskontrolle

Qualitätssicherung: Qualitätsmerkmale, Prinzipien, Verifikation, Testverfahren (Black Box und White Box), Inspektionen und Reviews

Vorgehensmodelle: plangetriebene vs. agile Prozesse, Capability Maturity Model, Personal Software Process, Extreme Programming, Scrum, Rational Unified Process, V-Modell