Praxis der Softwareentwicklung (PSE)

Sommersemester 2012

Prof. Dr. Bernhard Beckert, Thorsten Bormer, Daniel Bruns



Typ: Praktikum
Ort: Raum 211, Geb. 50.34
Zeit: n.V.
SWS: 4
LVNr.: 24526

Aktuelles

27.08.12: Termin des Kolloquiums zur internen Abnahme aktualisiert: Mittwoch, 05.09. um 14:00 Uhr
27.08.12: Aufgabenstellung zur Abnahme online
06.08.12: Aufgabenstellung Validierungsphase online
18.06.12: Restliche Termine ergänzt; Aufgabenstellung Implementierung
21.05.12: Aufgabenstellung zur Entwurfsphase online
30.04.12: Folien der Einführungsveranstaltung und Dokumente zum Pflichtenheft online
25.04.12: Termine und Aufgabenstellung ergänzt
20.04.12: Termin des ersten Gruppentreffens: Mittwoch, 25.04. um 15:00 Uhr in Raum -120 (Geb. 50.34)
26.03.12: Website online

Allgemeines

In "Praxis der Softwareentwicklung" (PSE) lernen die Teilnehmer, ein vollständiges Softwareprojekt nach dem Stand der Softwaretechnik in einem Team mit 5 bis 6 Teilnehmern durchzuführen. Ziel ist es insbesondere, Verfahren des Software-Entwurfs und der Qualitätssicherung praktisch einzusetzen, Implementierungskompetenz umzusetzen, und arbeitsteilig im Team zu kooperieren.

Aufgabenstellung

Automatisches Prüfen von Programmeigenschaften

Ziel des Projekts ist es, ein mächtiges Analysewerkzeug für eine einfache imperative Programmiersprache zu erstellen. Dabei sollen sowohl klassische Techniken zur Programmanalyse zum Einsatz kommen (wie interaktives Debugging), als auch moderne, logikbasierte Methoden zur Analyse und Prüfung der Programmeigenschaften.

Um Methoden der Softwareverifikation implementieren zu können, die dem aktuellen Stand der Technik entsprechen, beschränken wir uns auf eine einfache Zielsprache, sowie auf eine einfache Spezifikationssprache, in der die gewünschten Eigenschaften des Programms angegeben werden.

Die einzelnen Module des zu erstellenden Systems sind:

  • Parser für Programme, sowie Spezifikationen
  • Interpreter
  • Debugger
  • Run-time checker
  • Programmverifikation (unter Verwendung eines existierenden Beweistools); dies ist das Kernstück des Analysewerkzeugs

Als Implementierungssprache für dieses System kommt Java zum Einsatz.

Die Steuerung der Komponenten des Analysewerkzeugs und dessen Rückmeldungen sollen dabei mit Hilfe einer grafischen Benutzeroberfläche erfolgen.

Aufgabenstellungen für die Phasen (PDF)

Ablauf

Zeitplan (vorläufig)
Zeitpunkt Termin Hinweise
16.04.2012, 15:45 Uhr Auftaktveranstaltung Vorstellung des Projekts
25.04.2012, 15:00 Uhr in Raum -120 (Geb. 50.34) Erstes Gruppentreffen Beginn der Einarbeitungsphase
30.04.2012, 9:45 Uhr
02.05.2012, 14:00 Uhr
Gruppentreffen Vertiefung der Aufgabenstellung
07.05.2012, 9:45 Uhr
09.05.2012, 14:00 Uhr
Gruppentreffen
14.05.2012, 9:45 Uhr
16.05.2012, 14:00 Uhr
Gruppentreffen
21.05.2012, 9:45 Uhr Kolloquium Pflichtenheft
28.05.2012, 9:45 Uhr 30.05.2012, 13:30 Uhr Gruppentreffen
04.06.2012, 9:45 Uhr Gruppentreffen
11.06.2012, 9:45 Uhr Gruppentreffen
18.06.2012, 9:45 Uhr Kolloquium Entwurf
25.06.2012, 9:45 Uhr Gruppentreffen
02.07.2012, 9:45 Uhr Gruppentreffen
09.07.2012, 9:45 Uhr Gruppentreffen
06.08.2012, 9:45 Uhr Kolloquium Implementierung
13.08.2012, 9:45 Uhr Gruppentreffen
20.08.2012, 9:45 Uhr Gruppentreffen
27.08.2012, 9:45 Uhr Kolloquium Validierung
05.09.2012, 14:00 Uhr Kolloquium interne Abnahme

Weiteres Material

  • 30.04.2012 Folien Einführungsveranstaltung [PDF (KIT intern)]
  • 30.04.2012 Pflichtenheft [Musterdokument (PDF) (KIT intern)]