main page

staff

teaching

theses

research

publications

books

press

jobs

download


TU-BS

FB Informatik
TU Braunschweig

Praktikum Softwaretechnik

Zeit: Mi 16:45-19.45 Uhr
Raum: IZ 504
Erster Termin: 26.10.2005

Dozent: Professor Dr. B. Rumpe
Assistent: Holger Krahn, Martin Schindler

Art der Veranstaltung: Praktikum
Stundenzahl: 0+4

Hörerkreis: Informatik, Wirtschaftsinfomatik, IST, Medienwissenschaftler, Nebenfach Informatik

Voraussetzungen:
Java-Programmierung
Interesse an agilen Methoden und selbständiger Arbeit

Scheinerwerb: ja

Ziel:
Anwendung von Extreme Programming, generativer Softwareentwicklung und Test-First
Dieses Praktikum ermöglicht es den Teilnehmern eine innovative Entwicklungsmethodik (Test First und Extreme Programming) kennen zu lernen und anzuwenden. Dabei stehen inhaltlich als auch konzeptionell softwaretechnische Aspekte im Vordergrund. Während des Praktikums soll insbesondere gelernt werden, wie robuste und zuverlässige Software mit der Programmiersprache Java entwickelt, ein gemeinsames Projekt effektiv durchgeführt und Qualitätssicherungsmaßnahmen umgesetzt werden können.

Aufgabenstellung:
Im Praktikum Software Engineering werden praktische Aspekte der generative Softwareentwicklung anhand von konkret zur erstellender Software eingeübt. Dabei werden im ersten Teil des Praktikums die Grundlagen von den Teilnehmern erarbeitet und überprüfbare funktionale Testfälle erstellt. Dieses Test-First-Vorgehen erlaubt im zweiten Teil eine Erstellung der Generatoren, die diese Testfälle erfüllen müssen. Im dritten Teil sollen die Teilnehmer eine konkrete Softwareproblemstellung lösen, wobei die im zweiten Teil erstellten Generatoren eingesetzt werden, um die durch Generatoren in Softwareprojekten zu erzielenden Produktivitäts- und Qualitätssteigerung persönlich beurteilen zu können.

Für die Erstellung der Teilaufgaben wird das am Institut SSE entwickelte Modellierungswerkzeug MontiCore eingesetzt und von den Praktikumsteilnehmern erweitert. Der Generierungsprozess lässt sich aus der folgenden Abbildung erkennen:

Die Aufgaben sind jeweils von Gruppen von vier Studierenden (sofern nicht anders angegeben) zu bearbeiten. Folgende Aufgabenstellungen sind möglich:

  1. Testinfrastruktur
    Die Testbarkeit einer Software wird maßgeblich von der Entkoppelung einzelner Komponenten untereinander beeinflusst. Die Gruppe soll die Grundlage schaffen, um Software einfacher testen zu können. Dazu sind u.a. folgende Aufgaben zu lösen:
    • Erstellen jeweils einer Fabrikklasse für alle Klassen eines Projekts
    • Erzeugung von get- und set-Zugriffsmethoden für Attribute
    • Umsetzen aller new-Aufrufe in Aufrufe der Fabriken

  2. Mock-Klassen
    In Softwaresystemen, deren Komponenten entkoppelt sind, kann man die funktionalen Eigenschaften einzelner Komponenten relativ einfach testen, sofern sich die direkte Umgebung einer Klasse durch Testtreiber und zusätzliche Testobjekte simulieren lässt. Dazu eignen sich insbesondere so genannte Mock-Klassen (vgl. mockobjects.com), die durch diese Gruppe zu generieren sind.

  3. Design Patterns
    Design Patterns sind so genannte Quellcodefragmente, die einen „Best-Practice“-Fall der Softwareentwicklung darstellen. Dabei benötigen die meisten Muster zusätzlichen technischen Code, der die Lesbarkeit des Quellcodes erschwert. Der neue Erweiterungsmechanismus von Java 5.0 (Annotations) soll genutzt werden, um gezielt Entwurfsmuster im Quellcode einzubinden. Insbesondere sollen die folgenden Muster umgesetzt werden:
    • Singleton
    • Undo (Memento)
    • Visitor
    • Composite
    • Query

  4. UML 2.0 Kompositionstrukturdiagramme
    Kompositionsstrukturdiagramme eigenen sich für eine Architekturbeschreibung eines Softwaresystems. Sie bieten im Gegensatz zu Klassendiagrammen die Möglichkeit, Hierarchie unabhängig von Paketstrukturen darzustellen und von Kommunikationsstrukturen zu abstrahieren. Gegenüber Objektdiagrammen heben sie sich dadurch ab, dass sie nicht reinen exemplarischen Charakter haben, aber dennoch die Möglichkeit bieten, derselben Klasse verschiedene Rollen im Systemkontext zuzuordnen.
    Diese Gruppe soll die vorhandene rudimentäre Version von Kompositionsstrukturdiagrammen in MontiCore erweitern und geeignet auf Quellcode abbilden. Dabei ist eine Kooperation mit der Gruppe UML Statemachines nötig, um das Verhalten einzelner Klassen zu beschreiben.

  5. UML Statemachines (4-6 Personen)
    UML Zustandsmaschinen eignen sich zur Modellierung von Verhalten ganzer Klassen. Diese Gruppe soll eine Codegenerierung für Zustandsmaschinen aus einer vorhandenen Beschreibung generieren, die Zustandsmaschinen mit entry und exit-Aktionen mit Java-Quellcode enthält. Die einzelnen Maschinen kommunizieren untereinander, wie es in einem Kompositionsstrukturdiagramm beschrieben ist.

Anmeldung:
Anmeldungen sind ab sofort per Email an Martin Schindler (M.Schindleratsse.cs.tu-bs.de) möglich. Melden sich dabei Gruppen an, können diese sich auf "first come first serve" Basis ein Thema auswählen. Für die übrigen Studierenden ist es möglich, während des ersten Praktikumtreffens am 26.10. um 16:45 Uhr, Raum IZ 504, Gruppen zu bilden und ein Thema zu wählen.

Lassen Sie sich von uns regelmäßig über neue Lehrveranstaltungen und Studien-/Diplomarbeiten informieren:

sse-teaching abonnieren
Powered by de.groups.yahoo.com