Praxis der Softwareentwicklung
Wintersemester 2011/2012
Prof. Dr. Bernhard Beckert, Thorsten Bormer, Daniel Bruns
Typ: | Praktikum |
Zeit: | n.V. |
SWS: | 4 |
LVNr.: | 24034 |
Aktuelles
02.02.12: Aufgabenstellung für die letzten beiden Phasen und Folien zum Thema Testen
27.01.12: Termine aktualisiert
17.11.11: Aufgabenstellung zur Entwurfsphase online
02.11.11: Beispiel zum Pflichtenheft aktualisiert
27.10.11: Folien der Einführungsveranstaltung und Dokumente zum Pflichtenheft online
19.10.11: Termin des ersten Gruppentreffens: Dienstag, 25.10. um 15:45 Uhr in Raum 211 (Geb. 50.34)
30.09.11: Website online
Beschreibung
Erstellung des Pflichtenheftes inkl. Verwendungsszenarien - Objektorientierter Entwurf nebst Feinspezifikation - Implementierung in einer objektorierten Sprache - Funktionale Tests und Überdeckungstests - Einsatz von Werkzeugen (z. B. Eclipse, UML, Java, Junit, Jcov) - Präsentation des fertigen Systems
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 der Korrektheit von Programmen
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 und run-time checking), als auch moderne, logikbasierte Methoden zur Prüfung der Korrektheit von Programmen (Softwareverifikation).
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, die es z. B. erlaubt, im Falle des Interpreters die einzelnen Programmzustände des interpretierten Programms anzuzeigen.
Aufgabenbeschreibungen zu den einzelnen Phasen
- Phase 1: Pflichtenheft [PDF]
- Phase 2: Entwurf [PDF]
- Phase 3: Implementierung [PDF]
- Phase 4: Validierung [PDF]
- Phase 5: Abschluss [PDF]
Ablauf
Zeitpunkt | Termin | Hinweise |
---|---|---|
17.10.2011, 15:45 Uhr | Auftaktveranstaltung | Vorstellung des Projekts (im HSaF) |
25.10.2011, 15:45 Uhr (Raum 211, Geb. 50.34) |
Erstes Gruppentreffen | Beginn der Einarbeitungsphase |
02.11.2011 (Gruppe 1+2) | Gruppentreffen | |
07.11.2011 (Gruppe 2) | Gruppentreffen | |
10.11.2011 (Gruppe 1) 14.11.2011 (Gruppe 2) |
Zwischenbericht Pflichtenheft | |
17.11.2011 (Gruppe 1) 21.11.2011 (Gruppe 2) |
Kolloquium Pflichtenheft | |
01.12.2011 (Gruppe 1) 05.12.2011 (Gruppe 2) |
Zwischenbericht Entwurf | |
22.12.2011 (Gruppe 1) 19.12.2011 (Gruppe 2) |
Kolloquium Entwurf | |
19.01.2012 (Gruppe 1) 16.01.2012 (Gruppe 2) |
Zwischenbericht Implementierung | |
02.02.2012 (Gruppe 1) 30.01.2012 (Gruppe 2) |
Kolloquium Implementierung | |
24.02.2012 (Gruppe 1) 20.02.2012 (Gruppe 2) |
Zwischenbericht Validierung | |
08.03.2012 (Gruppe 1) 05.03.2012 (Gruppe 2) |
Kolloquium Validierung | |
15.03.2012 (Gruppe 1) 12.03.2012 (Gruppe 2) |
Kolloquium interne Abnahme | |
28.03.2012 | Abschlussveranstaltung | Gemeinsam mit allen Gruppen des ITI |
Materialien
- 27.10.2011 Folien Einführungsveranstaltung [PDF (KIT intern)]
- 27.10.2011 Pflichtenheft [Inhalt (PDF)] [Musterdokument (PDF) (KIT intern)]
- 02.02.2012 Folien Testen mit JUnit [PDF (KIT intern)]