Modulsysteme (Sommersemester 2015)
Dozent:
Prof. Dr. Robert Hirschfeld
(Software-Architekturen)
Tutoren:
Tim Felgentreff
Dr. Jens Lincke
Marcel Taeumel
Tobias Pape
Allgemeine Information
- Semesterwochenstunden: 3
- ECTS: 6
- Benotet:
Ja
- Einschreibefrist: 24.04.2015
- Lehrform: Projektseminar
- Belegungsart: Wahlpflichtmodul
Studiengänge, Modulgruppen & Module
- IT-Systems Engineering A
- IT-Systems Engineering B
- IT-Systems Engineering C
- IT-Systems Engineering D
- Software Architecture & Modeling Technology
Beschreibung
Modularität ist ein wichtiges Thema beim Entwickeln komplexer Softwaresysteme. Funktionalität wird in abgeschlossene Module aufgeteilt, welche über definierte Schnittstellen zu ausgewählten Zeitpunkten im Software-Lebenszyklus miteinander kommunizieren. Diese Kapselung vereinfacht das Verstehen von losgelösten Systemteilen und damit die Wartung und Erweiterung dieser. Programmiersprachen (Java, C++, Haskell, ML) und -systeme (Lively, Squeak, Newspeak, Dr. Scheme) bieten verschiedene Wege der Modularisierung. Zum Beispiel bilden Java-Pakete Namensräume für Klassen und diese wiederum für Methoden. Es liegt allerdings auch in der Verantwortung des Software-Entwicklers, diese Konstrukte sinnvoll zu verwenden und wichtige Kenngrößen einschließlich der Stärken und Schwächen zu beachten. Falls die gegebenen Konstrukte zur Modularisierung nicht auf entsprechende Einsatzfälle passen, stoßen Programmierer oft an Grenzen. Zum Beispiel bilden Pakete in Squeak keinen eigenen Namensraum für Klassen, was Klassennamenpräfixe unabdingbar macht. Dies wiederum erschwert das Zusammenspiel zahlreicher externer Projekte, welche sich eine Umgebung teilen sollen.
Je nach Anwendungsfall bieten die verschiedenen Modulsysteme Vor- und Nachteile, welche es zu untersuchen gilt. Aufbauend auf den gemachten Beobachtungen und gewonnenen Einsichten sollen für Squeak typische und relevante Anwendungsfälle von Modulsystemen beschrieben, implementiert und anhand von gegebenen Beispiel-Systemen evaluiert werden.
Das Projektseminar verfolgt u.a. die Lernziele:
- Anwendung von Techniken im Bereich Metaprogrammierung und Reflexion
- Einarbeitung und Erweiterung von „fremden“ Systemen
- Lesen, Verstehen, Aufbereiten und Wiedergeben von Forschungsergebnissen
- Umgang und Bearbeitung von unstrukturierten Problemen
- Entwicklung und Umsetzung eigener Ideen auf Basis von existierenden Arbeiten
Voraussetzungen
- abgeschlossenes Bachelor-Studium
- vertiefte Programmierkenntnisse
- von Vorteil sind: Kenntnisse in Squeak/Smalltalk und Kenntnisse im Bereich Meta-Programmierung und Reflexion
Literatur
Wird gesondert bekannt gegeben
Lern- und Lehrformen
Projektseminar
Leistungserfassung
Die Leistung wird durch die erfolgreiche Bearbeitung eines gewählten Themas in
Gruppen von 3-4 Personen erbracht. Zur Erlangung der sechs benoteten
Leistungspunkte sind die folgenden Anforderungen zu erfüllen:
- Regelmäßige Anwesenheit im Seminar bzw. beim Treffen mit den Projektbetreuern
- Eigenständiges Studieren, Aufbereiten und Präsentieren von wissenschaftlichen Arbeiten
- Bearbeitung einer selbstgewählten Problemstellung mithilfe regelmäßiger Konsultation (alle 1-2 Wochen)
- Abschlusspräsentation der Projektergebnisse
Eine Woche vor der jeweiligen Abschlusspräsentation bespricht jede Gruppe die
Vorversion der Vortragsunterlagen mit einem der Betreuer. Die
Vortragsunterlagen sind einen Tag vor dem Vortrag per Email oder auf einer
CD-ROM einzureichen. Sie bestehen aus:
- den Dokumentquellen der im Vortrag verwendeten Folien,
- einer PDF-Version derselben,
- dem in der Demo verwendeten Quellcode,
- einer Installationsbeschreibung und
- einem Demo-Script
Alle im Rahmen der Veranstaltung erstellten Quelltexte sollen unter der
MIT-Lizenz und, falls notwendig, mit einer den verwendeten Systemen kompatiblen
Lizenz bereitgestellt werden.
Termine
Erste Veranstaltung und Themenvorstellung:
- Di, 14. 04. 2015, 13:30 Uhr, A-1.2
- Di, 14. 04. 2015, 15:15 Uhr, A-1.1
Themenvergabe:
- Di, 21. 04. 2015, 13:30 Uhr
Zwischenpräsentationen:
- Do, 21. 05. 2015, 11:00 Uhr
Abschlusspräsentationen:
- Di, 21. 07. 2015, 13:30 Uhr
Zurück