Themen für Softwareprojekte
regelmäßiger Besprechungstermin: Di 17:00 Uhr - 18:15
Uhr, HS 3 (oder in meinem Büro: Ü11)
anrechenbar als Software-Projekt (v212) für B_Inf, B_Tinf,
B_Minf, B_Winf sowie als Software-Praktikum für die
Diplomstudiengänge
Organisatorisches
(gilt für alle Projekte):
Die Regeln für die Vergabe und Durchführung von
Softwareprojekten sind von Prof.
Schmidt festgelegt worden.
Diesen schließe ich mich an. Näheres dazu finden Sie auf
seiner Webseite.
Ich werde bei der Vergabe der Projektthemen und der
Einteilung der
Projektgruppen
anwesend sein und die hier genannten Projekte inhaltlich betreuen.
Die Abnahme wird ebenfalls von mir vorgenommen.
Jede der im Folgenden als Projekt (Teilprojekt, Zusatzprojekt) bezeichneten
Aufgabenstellungen
darf nur in Zweiergruppen bearbeitet werden.
Jedes Projekt kann mehrfach vergeben werden.
Thema 1: Web Services
für ein Touristeninformationssystem
Ziel:
Im Zusammenspiel mehrerer Teilprojekte soll ein flexibler Tourenplaner
für ein Touristeninformationssystem erstellt werden,
der den Prinzipien einer SOA (Service-orientierte Architektur)
entspricht.
Zur Realisierung der SOA ist der Web-Service-Standard einzusetzen.
Benötigte
Vorkenntnisse:
Benötigt werden gute Vorkenntnisse in Java und XML.
Web Service-Vorkenntnisse sind sehr hilfreich,
aber nicht unbedingt erforderlich. Es ist möglich, sich
das dafür benötigte Wissen im Laufe dieses Projekts zu
erarbeiten.
Informationsquellen:
Für das Projekt direkt von Nutzen sind alle unten angegebenen
Bücher,
die Web Services im Titel haben.
Die anderen Bücher zu SOA und Semantic Web liefern ergänzende
Hintergrundinformationen, aber keinen unmittelbaren Nutzen
zur Bearbeitung dieses Themas.
Außerdem gibt es noch ein Seminar
in diesem Semester zum Thema,
dessen Teilnahme ich wärmstens empfehle.
Einige Vortragsthemen nehmen direkten Bezug auf dieses Projekt.
Für die Beschreibung der Aufgabenstellung selbst gibt es
zwei Dokumente auf dem Handout-Server,
welche die unmittelbare Grundlage darstellen.
Diese sollten zumindest in Teilen
unbedingt
vor der Annahme eines Teilprojekts
durchgelesen werden!
Weiterverwendung
des erworbenen Wissens:
Die gesamte Thematik (Verteilte Systeme, SOA) wird von mir in
Vorlesungen des Masterstudiums
bzw. höheren Diplomstudiums vertieft. Sie eignet sich auch
für Abschlussarbeiten
(bei Bachelor und Diplom nach Möglichkeit aber immer mit
Unterstützung einer Firma).
Die Bearbeitung eines Projekts zu diesem Thema ist auch für
Studierende
zu empfehlen, die nach dem Bachelor in den Beruf gehen wollen,
da es die einzige Möglichkeit in ihrem Studienplan ist,
sich Kenntnisse in Web Services und SOA anzueignen
und da dieses Thema in der vernetzten Wirtschaft
eine zunehmende Bedeutung hat.
Details
zur Aufgabenstellung:
Grundlage dieses Projekts ist ein Grobkonzept für den Tourenplaner
eines
Touristeninformationssystems, das in den Jahren 1999 - 2001
durch eine Implementierung auf dem damaligen Stand der Technik
realisiert wurde.
Das Grobkonzept und eine dazugehörige XML-Spezifikation
sind auf dem Handout-Server
erhältlich.
Die Ausdrucksweise dieser Dokumente beruht zum Teil auf
heute nicht mehr gebräuchlicher Terminologie.
Die Konzepte entsprechen aber immer noch
dem heutigen Stand der Technik.
Ziel dieses Projekts ist es, wesentliche Teile des Grobkonzepts
mit Hilfe von Web Services zu realisieren.
Im einzelnen gibt es drei voneinander unabhängige Teilprojekte,
die jeweils von Zweiergruppen bearbeitet werden sollen:
Teilprojekt
1.1:
Realisierung des
TourScheduling- und
TripPlanning-Agenten mit Routeninformationsanbindung
Teilprojekt
1.2:
Realisierung des
TouristGUI-Agenten
Teilprojekt
1.3:
Realisierung des
Recommendation-Agenten mit einigen (mindestens 2 verschiedene!)
daran
angebundenen Content-Agenten,
die unterschiedliche Ontologien benutzen.
Auch ein zugehöriger
Ontologieagent muss erstellt werden.
Für alle Teilprojekte gilt:
1) Die Anwendungsdomäne für die tatsächlich realisierten
Contents ist die Stadt Hamburg.
2) Die Schnittstellen zu den Agenten anderer Teilaufgaben müssen
gemäß der
Spezifikation realisiert werden (als WebServices).
Sollte die erforderliche Software des anderen Teilprojekts nicht
zur Verfügung stehen, dann muss ein Wrapper gebaut werden,
mit Hilfe dessen man das Teilprojekt vorführen kann.
Letzteres ist zu Testzwecken ohnehin zu empfehlen!
3) Die im Grobkonzept definierte Ontologie ist syntaktisch (in der
XML-Variante) und
semantisch strikt einzuhalten, ebenso natürlich die Web
Service-Standards.
Anderenfalls ist eine Interaktion der Teilprojekte nicht möglich.
Zulässige
Vereinfachungen der Aufgabenstellung:
1) Die Anbindung an das mobile Gerät (PDA) wird nicht
berücksichtigt (auch nicht die Schnittstellen).
2) Die konkreten Content-Provider werden stark eingeschränkt:
Der Tripplaner beschränkt sich auf die Webanbindung des HVV
und für die Content-Server gibt es per Hand editierte Datenbanken
oder Dateien,
die eine WebService-Schnittstelle haben.
3) Die TouristGUI hat keine direkte Verbindung zum Ontologie-Agenten.
4) Die Erstellung von einem Mehrwertdienst durch den
Recommendation-Agenten ist
nicht zwingend erforderlich. Der Recommendation-Agent muss aber in der
Lage sein,
Dienste beliebiger Content-Agenten zu vermitteln.
5) Die Ontologien werden nur durch eine Sprache (Deutsch)
unterstützt.
Mehrsprachigkeit gemäß dem Konzept ist aber vorzusehen.
Selbstverständlich dürfen auch weitere Funktionalitäten
implementiert werden,
z.B. Buchungen.
Thema 2: Rechentabellen
für endliche Körper
Projekt
2.1:
Rechnen in GF (n)
Ziel:
Zu einer gegebenen natürlichen Zahl n soll
in GF (n) (falls existent) das Addieren, Subtrahieren, Multiplizieren
und Dividieren ermöglicht werden.
Dafür müssen vor allem die Rechentabellen
für Addition und Multiplikation erstellt werden.
Die Benutzung von Tabellen, die in einem
früheren Schritt bereits berechnet worden sind,
soll ebenfalls ermöglicht werden.
Benötigte
Vorkenntnisse:
Voraussetzung für dieses Projekt ist ein gutes Verständnis
von Diskreter Mathematik, vor allem von Zahlentheorie.
Informationsquellen:
Der in der Vorlesung Diskrete Mathematik vermittelte
Stoff reicht dafür aus. Er muss aber auch wirklich
verstanden worden sein.
Zur Vertiefung und Wiederholung empfehle ich das
unten angegebene Buch von Biggs und den Artikel
von Benjamin Klopsch.
Details
zur Aufgabenstellung:
Zur Aufgabe gehören folgende Funktionalitäten:
1) Bestimmung der charakteristischen Größen p und r zu n
(falls existent)
2) Errechnen der Additionstabelle
3) Eingabemöglichkeit für ein in GF (p) irreduzibles Polynoms
vom Grad r.
Der Test auf Irreduziblität muss nicht durchgeführt werden.
4) Errechnen der Multiplikationstabelle mit Hilfe des gegebenen
irreduziblen Polynoms. Dazu muss eine Polynommultiplikation
und Polynomdivision in GF (p) implementiert werden.
5) Speichern der Rechentabellen in einer externen Datei in einem
geeigneten Format
6) Laden einer bereits zuvor erstellten Rechentabelle aus der externen
Datei
7) Interaktiver Taschenrechner:
Addieren, Subtrahieren, Multiplizieren und Dividieren zweier Zahlen in
GF (n)
Zusatzprojekt
2.2:
Bestimmen eines irreduziblen Polynoms
vom Grad r in GF (p).
Diese Aufgabe realisiert ein Zusatzpaket und erfordert theoretische
Zusatzstudien:
Das Problem besteht darin, dass es für ein Polynom vom Grad > 3
nicht ausreicht, dass es nullstellenfrei ist, um irreduzibel zu sein:
Es muss noch auf die Existenz nullstellenfreier Teiler
überprüft werden.
Das Thema eignet sich prinzipiell auch für einen Seminarvortrag
(allerdings frühestens im SS 2007).
Literatur: (größtenteils
in
meiner Lehrbuchsammlung)
für Thema 1:
Gustavo Alonso / Fabio Casati / Harumi Kuno
/ Vijaj Machiraju: Web Services:
Concepts, Architectures, and Applications
Springer 2004, ISBN 3-540-44008-9
Grigoris Antoniou / Frank von Hermelen: A Semantic Web Primer, MIT Press
2004, ISBN 0-26-201210-3
Wolfgang Dostal / Mario Jeckle / Ingo Melzer
/ Barbara Zengler: Service-orientierte
Architekturen mit Web-Services,
Konzepte -
Standards - Praxis, Spektrum 2005, ISBN 3-8274-1457-1
Thomas Erl: Service-Oriented Architecture, A
Field Guide to Integrating XML and Web Services, Prentice
Hall 2004, ISBN 0-13-142898-5
Thomas Erl: Service-Oriented Architecture, Concepts,
Technology, and Design, Prentice Hall 2005, ISBN
0-13-185858-0
Menfred Hein / Henner Zeller: Java Web Services, Entwicklung
plattformübergreifender Dienste mit J2EE, XML und SOAP,
Addison-Wesley 2003, ISBN 3-8273-2071-2
Olaf Zimmermann / Mark Tomlinson / Stefan
Peuser: Perspectives on Web Services,
Springer 2003, ISBN 3-5400-0914-0
für Thema 2:
Norman L. Biggs: Discrete Mathematics, Oxford
University Press 2002, ISBN 0-19-850717-8
Benjamin Klopsch: Endliche Körper - Eine kurze
Wiederholung, Seminarunterlagen 2001 (Download mit freundlicher
Genehmigung des Autors)