Modulinformationssystem Informatik

 

Projektmodul (Programmierung verteilter Systeme) URL PDF XML

Modulcode: BA6.4
Englische Bezeichnung:
Modulverantwortliche(r): Prof. Dr. Willem-Paul de Roever
Turnus: unregelmäßig (SS08)
Präsenzzeiten:
ECTS: 16
Workload: 480 Std.
Dauer: ein Semester
Modulkategorien: BA6 (Sonstige)
Lehrsprache: Deutsch
Voraussetzungen: Info

Kurzfassung:

Dieses Projekt befasst sich mit der Erstellung einer komplexen, verteilten Anwendung im Bereich der Dokumentenbearbeitung und -verwaltung. Die Studenten werden die von den Betreuern informell gestellten Anforderungen in technische Anforderungen (UML) überführen und die zu erstellende Anwendung dann entlang dieser Anforderungen modularisieren. Die Aufgabe der Studenten liegt in der Implementierung der Kernanwendung und einer ausgewählten Erweiterung. Dabei ist die Implementierung modular zu gestalten. Insbesondere soll die Anwendung so gestaltet werden, daß Module, die im Rahmen des Praktikums A5.3.2 erstellt werden in diese integriert werden können. Dabei erlernen / vertiefen die Studenten Fähigkeiten im Rahmen eines größeren Projektes zu arbeiten. Neben der Implementierung ist eine ausführliche Dokumentation der Module sowie die Schaffung von Test-Cases für die einzelnen Module Aufgabe der Studenten. Teil der Dokumentation ist ebenfalls eine Darstellung der angetroffenen Probleme - wie wechselseitiger Ausschluß, Verwaltung größerer Datenmengen, usw. - und eine Darstellung der gewählten Lösung, der Alternativen und der Gründe für die Wahl. Die Arbeiten werden selbstständig durchgeführt und an Hand von mehreren Präsentationen evaluiert.

Lernziele:

Die Studenten erlernen Techniken und Tools zur Formalisierung von Softwareentwürfen. Die Studenten erlernen Techniken zur Modularisierung eines komplexen Problems. Die Studenten erlernen die Fähigkeiten zur Erstellung einer verteilten, modularisierten Anwendung. Die Studenten vertiefen Fähigkeiten in der Organisation der Teamarbeit zwischen den Teams. Die Studenten lernen fortgeschrittene Techniken und Technologien zur Lösung komplexer Probleme mittels verteilter Programme und zur Erstellung dieser Programme einzusetzen. Die Studenten vertiefen die Fähigkeit, den von ihnen programmierten Code auch für Dritte zugänglich zu machen - mittels Dokumentation und Testing-Möglichkeiten. Die Studenten vertiefen ihre Fähigkeit mit anderen über ihren Code bzw. ihre Anforderungen an Fremdcode zu kommunizieren und erlernen neue Techniken hierzu. Die Studenten setzen sich mit verschiedenen Aspekten der verteilten Programmierung auseinander wie Sicherheit, Leistungsfähigkeit, Erweiterbarkeit, usw.

Lehrinhalte:

Den Studenten wird zunächst ein Überblick über die zur Verfügung stehenden Technologien (Java Enterprise Edition) und die verwendete Entwicklungsplattform (Eclipse) gegeben. Dann werden die Anforderungen an die zu erstellende Software als informelle Wunschliste von den Betreueren präsentiert. Die Studenten erhalten eine Einführung in die Programmmodellierung mittels UML. Die Studenten modellieren und modularisieren die statische Struktur eines komplexen Programmes. Die Implementierung der aus der Entwurfsphase abgeleiteten Module umfasst Aufgaben aus dem Bereich der verteilten Programmierung wie Server-, Client-Programmierung, Synchronisationsprobleme, Aspekte der Datenkonsistens usw. Die Studenten wählen verschiedene Technologien (Web Services, Java Server Pages, Swing, AWT, SWT, MySQL, JavaDB,...) und Formate (XML, PDF, PS,...) aus und setzen diese ein. Die Studenten stellen verschiedene Schnittstellen zur zukünftigen Erweiterung und zum Testen dieser Erweiterungen zur Verfügung. Die Studenten dokumentieren sowohl das Programm als solches alsauch die Entwicklungsentscheidungen. Die Studenten durchlaufen hierbei alle Phasen der Softwareentwicklung.

Weitere Voraussetzungen:

Teilnahme am BA5.2 Nebenläufiges Programmieren oder einem anderen Projektvorbereitungsmodul.

Prüfungsleistung:

schriftliche Ausarbeitung und institutsinterner Vortrag

Abschlußarbeit:
Die Abschlußarbeit besteht in einer Analyse / kritischen Auseinandersetzung des Programmes unter verschiedenen Aspekten im Problemfeld der Programmierung. Zusammen mit dem Studenten wird ein interessantes Problem der verteilten Programmierung ausgewählt und entlang des Programmes diskutiert. Möglich wären Beispielsweise: Der Weg vom Entwurf zum Programm kann untersucht werden und die Möglichkeiten Aspekte wie Sicherheit oder Erweiterbarkeit im Kontext von UML auszudrücken können beleuchtet werden. Auch die Betrachtung der Sicherheitsaspekte bzw. der Leistungsfähigkeit der Implementierung selbst im Zusammenspiel mit der gewählten Plattform ist möglich.

Lehr- und Lernmethoden:

Verwendbarkeit:

Literatur:

nach konkreter Themenstellung

Verweise:

Kommentar: