Vertiefendes Praktikum SoftwaretechnikErster Termin: Mittwoch, 24.10.2007, 15.00 - 18.00 Uhr Raum: IZ 358 Dozent: Professor Dr. B. Rumpe (SSE) Assistent: Steven Völkel Ansprechpartner: Steven Völkel Art der Veranstaltung:Praktikum Modulnummer: INF-SSE-07 Stundenzahl: 4 Leistungspunkte: 4 Semester: Hauptstudium Schwerpunktzuordnung: Diese Lehrveranstaltung ist Teil des Vertiefungsgebiets "Software Engineering". Genaueres Siehe: Teaching. Anmeldung: Die Teilnehmeranzahl dieser Veranstaltung ist beschränkt. Um vorherige Anmeldung per Mail (voelkelsse-tubs.de) wird gebeten. Inhalt: Ziel ist die Anwendung von erprobten SE-Techniken, wie etwa Extreme Programming, generative Softwareentwicklung und Test-First in einem praxisnahen, teamorientierten Projekt. Es soll gelernt werden, wie robuste und zuverlässige Software entwickelt, ein gemeinsames Projekt effektiv durchgeführt und Qualitätssicherungsmaßnahmen umgesetzt werden können. Dabei ist unbedingt ein strikter teamorientierter Entwicklungsprozess einzuhalten und zu dokumentieren und entsprechende Software-Engineering-Werkzeuge (etwa für verteiltes Arbeiten im Team) zwingend einzusetzen. Hinweis: Diese Veranstaltung wird mit unterschiedlichem Umfang der Teilaufgaben sowohl als Praktikum als auch als Teamprojekt angeboten. Einführungsfolien TeilthemenWorkflowmodellierung mit AktivitätsdiagrammenAktivitätsdiagramme haben sich für die Modellierung von Arbeitsabläufen in vielen Bereichen etabliert. Durch Sprachelemente wie Partitionen zur Modellierung von Akteuren oder die Möglichkeit, Aktivitäten zu schachteln bzw. zu hierarchisieren, bringen Sie die Voraussetzungen für die Modellierung selbst komplexer Workflows mit. Ziel dieser Praktikumsaufgabe ist es, anhand gegebener Beispiele einer Domänenspezifischen Sprache (DSL) für Aktivitätsdiagramme eine Grammatik für Monticore zu entwickeln. Auf Basis dieser Grammatik sollen Kontextbedingungen wie z.B. das Auftreten von Anomalien innerhalb eines Workflows oder auch das Erkennen von ausgewählten Workflow-Patterns abgeprüft werden. Im Anschluss daran werden Transformationen entwickelt, die das Ausführen der beschriebenen Aktivitätsdiagramme über eine Java-Oberfläche ermöglichen. Abschließend soll die Eignung des erstellten Grammatik anhand der Umsetzung eines Beispiels geprüft werden. Betreuer dieser Teilaufgabe: Dirk Reiss Funktionsnetze: Konsistenzprüfung von Sichten mit dem Gesamtsystem Funktionsnetze bestehen aus Funktionen, die über Konnektoren miteinander verbunden sind und darüber Signale (zeitlich veränderliche Werte) austauschen. Diese Art von System lässt sich mittels SysML-Blockdiagrammen beschreiben, für die eine textuelle Form zu entwickeln ist, die nur die für Funktionsnetze relevanten Informationen enthält. Zusätzlich zu den Blockdiagrammen ist eine Abwandlung der Sprache zu entwickeln, die es erlaubt, unvollständige Sichten auf ein Gesamtsystem zu beschreiben, die auch Elemente der Umwelt enthalten kann. Ziel soll dabei jedoch eine integrierte Sprachdefinition sein. Anschließend ist ein Softwarewerkzeug zu entwickeln, das es erlaubt, die Konsistenz einer Sicht zu einem vollständigen Funktionsnetz zu prüfen. Dabei sollen gezielt Inkonsistenzen entdeckt und Veränderungen nach Nutzerauswahl automatisch durchgeführt werden. Betreuer dieser Teilaufgabe: Holger Krahn und Hans Grönniger Funktionsnetze: Simulation des Funktionsnetzes Funktionsnetze bestehen aus Funktionen, die über Konnektoren miteinander verbunden sind und darüber Signale (zeitlich veränderliche Werte) austauschen. Diese Art von System lässt sich mittels SysML-Blockdiagrammen beschreiben, für die eine textuelle Form zu entwickeln ist, die nur die für Funktionsnetze relevanten Informationen enthält. Die Funktionsnetze lassen sich simulieren, indem die einzelnen Funktionen in Java programmiert werden und wie im Funktionsnetz vorgegeben miteinander verschaltet werden. Die dabei zu entwickelnde Simulationsumgebung soll automatisch, schrittweise und durch den Nutzer unterbrechbar ausgeführt werden können. Zusätzlich soll die Simulationsumgebung Traces des Systemablaufs erzeugen können, die nachträglich eine Beurteilung durch den Benutzer erlauben. Betreuer dieser Teilaufgabe: Holger Krahn und Hans Grönniger Sequenzdiagramme Sequenzdiagramme stellen beispielhafte Abläufe eines Systems dar und eigenen sich damit besonders für die Modellierung von Testfällen. In dieser Praktikumsaufgabe soll eine Sprache entwickelt werden, die eine textuelle Darstellung von Sequenzdiagrammen ermöglicht. Insbesondere soll eine einfache Modellierung von Traces innerhalb von Funktionsnetzen möglich sein. Die modellierten Traces sollen auf Konsistenz überprüft und in einen ausführbaren Testfall übersetzt werden. Abschließend soll die Anwendbarkeit des Ansatzes anhand eines Beispiels demonstriert werden. Betreuer dieser Teilaufgabe: Martin Schindler Lassen Sie sich von uns regelmäßig über neue Lehrveranstaltungen und Studien-/Diplomarbeiten informieren: | ||