Hasso-Plattner-Institut
Hasso-Plattner-Institut
  
Login
  • de
 

Modulsysteme (Wintersemester 2012/2013)

Dozent: Prof. Dr. Robert Hirschfeld (Software-Architekturen) , Bastian Steinert (Software-Architekturen) , Marcel Taeumel (Software-Architekturen) , Tim Felgentreff (Software-Architekturen)

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

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:

  • Do, 25.10.12, 11:00 Uhr (aktualisiert am 14.10.)

Themenstellung:

  • Do, 25.10.12, 11:00 Uhr (aktualisiert am 14.10.)

Themenvergabe:

  • Do, 01.11.12, 11:00 Uhr (aktualisiert am 11.10.)

Allgemeine Information

  • Semesterwochenstunden : 3
  • ECTS : 6
  • Benotet : Ja
  • Einschreibefrist : 1.10.2012 - 31.10.2012
  • Programm : IT-Systems Engineering MA
  • Lehrform : PS
  • Belegungsart : Wahlpflicht

Module

  • IT-Systems Engineering A
  • IT-Systems Engineering B
  • IT-Systems Engineering C
  • IT-Systems Engineering D
  • Software Architecture & Modeling Technology

Zurück