Hasso-Plattner-Institut25 Jahre HPI
Hasso-Plattner-Institut25 Jahre HPI
Login
 

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 MA
  • IT-Systems Engineering A
  • IT-Systems Engineering B
  • IT-Systems Engineering C
  • IT-Systems Engineering D
IT-Systems Engineering BA

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