Praxis der Softwareentwicklung (PSE)
Wintersemester 2010/2011
Prof. Dr. Bernhard Beckert, Daniel Bruns
| Typ: | Praktikum | 
| Beginn: | Vorbesprechung am 18.10.2010, 15:45 Uhr | 
| ECTS: | 6 | 
| LVNr.: | 24034 | 
| Hinweis: | Praxis der Softwareentwicklung (PSE) für Bachelor 3. Semester (allgemeine Hinweise) | 
Aktuelles
  03.03.11: Nun auch die Termine der Abnahmephase
  10.02.11: Restliche Termine eingetragen
  20.01.11: Folien Testing und weitere Hinweise
  11.01.11: Aufgabenstellung Validierung
  23.12.10: Termine 2011 aktualisiert und Materialliste ergänzt
  13.12.10: Papier zu Monopoly verlinkt
  03.12.10: Folien zu Spielalgorithmen online
  26.11.10: Folien und Links zu JML online
  17.11.10: Aufgabenstellung zum Entwurf online
  11.11.10: Termine aktualisiert
  09.11.10: Regelmäßige Termine
  25.10.10: Termin erstes Gruppentreffen
  24.09.10: Website online
Inhalt
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.
Aufgabenstellungen
| Realisieren Sie eine eigene Implementierung angelehnt an das bekannte Gesellschaftspiels MONOPOLY®. Am Ende soll es möglich sein, dass eine menschliche Spielerin/ ein menschlicher Spieler gegen den Computer spielen kann. Das System soll nach Server (verwaltet das Spiel) und Clients (GUI für Menschen, KI im Hintergrund) aufgeteilt sein. |  Image licensed under CC-BY-NC-SA 2.0 by in_2_the_fray | 
Minimale Leistungsmerkmale
Spielregeln. Die grundlegenden offiziellen Spielregeln (z. B. Struktur des Spielfeldes, Würfel, Handeln) werden implementiert. Für die deutsche Variante finden Sie sie beispielsweise hier. Sekundäre Merkmale wie Straßennamen oder Geldbeträge sollen aber variabel gehandhabt werden, sodass sie ausgetauscht werden können (z. B. um verschiedene Editionen darzustellen oder das Copyright nicht zu verletzen.)
Künstliche Intelligenz. Mindestanforderung an den KI-Client ist, dass die bekannten, parametrisierten Heuristiken implementiert werden. Diese werden in der Entwurfsphase vorgestellt. Die Implementierung muss es erlauben, zwei KI-Clients eine beliebige Anzahl von Spielen automatisiert spielen zu lassen.
Server/Client-Kommunikation. Es ist nicht erforderlich, dass der Server und der Client über das Netz kommunizieren. Es ist allerdings erforderlich, dass die Server und Clients der beiden PSE-Teams sich miteinander verständigen können. Ihnen wird später eine Schnittstelle vorgestellt, die Sie implementieren sollen.
Aufgabenbeschreibungen zu den einzelnen Phasen
- Phase 0: Allgemeine Informationen [PDF]
- Phase 1: Pflichtenheft [PDF]
- Phase 2: Entwurf [PDF]
- Phase 3: Implementierung [PDF]
- Phase 4: Validierung [PDF]
- Phase 5: Abnahme [PDF]
Ablauf
Anmeldung
Die Anmeldung läuft zentral über das Studierendenportal (Anmeldeschluss 19.11.). Wichtig: Laut Modulhandbuch müssen die folgenden Module erfolgreich belegt worden sein: Grundbegriffe d. Informatik, Programmieren. Ohne diesen Beleg ist die Teilnahme an PSE nicht möglich. Es ist außerdem dringend empfohlen, dass Sie Algorithmen 1 und Softwaretechnik 1 bereits gehört haben.
Raum und Zeit
Die Gruppen treffen sich wöchentlich mit ihren Betreuern (falls unten nicht anderweitiges steht):
- Gruppe 3: Donnerstag 17:30 Uhr, Raum 211 (Geb. 50.34)
- Gruppe 4: Donnerstag 11:30 Uhr, Raum 211 (Geb. 50.34)
Voraussichtlicher Zeitplan
| Termin | Hinweise | |
| 18.10.2010, 15:45 Uhr | Auftaktveranstaltung | Vorstellung des Projekts (im HSaF) | 
| 03.11.2010, 15:45 Uhr | Erstes Gruppentreffen | Bitte alle erscheinen. Weitere Termine werden hier vereinbart. | 
| 11.11.2010 | Zwischenbericht Pflichtenheft | |
| 18.11.2010 | Kolloquium Pflichtenheft | |
| 25.11.2010 | Vorlesung zu formaler Spezifikation | |
| 02.12.2010 | Vorlesung zu Methoden der KI | Gemeinsame Sitzung beider Gruppen um 17:30 Uhr | 
| 09.12.2010 | Zwischenbericht Entwurf | |
| 16.12.2010 | Kolloquium Entwurf | |
| 23.12.2010 | Treffen entfällt | |
| 13.01.2011 | Zwischenbericht Implementierung | |
| 20.01.2011 | Vorlesung zu Testen | |
| 27.01.2011 | Treffen entfällt | |
| 03.02.2011 | Kolloquium Implementierung | Termin verlegt, Abgabe bis 26.01. | 
| (KW 5) | Pause für Klausurenlernen | |
| 10.02.2011 | Zwischenbericht Validierung | |
| 24.02.2011 | Kolloquium Validierung | |
| 03.03.2011 | Treffen entfällt | |
| 15.03.2011 | Kolloquium interne Abnahme | Termin verlegt, Achtung: Dienstag Gruppe 4: 10:00—11:30 Uhr, Gruppe 5: 11:30—13:00 Uhr | 
| 16.03.2011 | Abschlussveranstaltung | Gemeinsam mit allen Gruppen des ITI, 14:00 Uhr, Hörsaal -101 | 
Materialien
Vorlesungsfolien
- 25.11.2010 Spezifikation mit JML [PDF]
- 02.12.2010 Spielalgorithmen [Teil 1 (PDF)] [Teil 2 (PPT)] [das Papier zu Monopoly (PDF)]
- 20.01.2011 Testen [PDF]
Verwendete Tools
- LaTeX: Kurzbeschreibung (dt., PDF)
- Subversion: diverse Tutorials im Internet
- Ansonsten lohnt sich auch mal ein Blick in die Lehrbuchsammlung in der Bibliothek!
- Java Modeling Language: Homepage (mit Link zum Reference Manual und vielen weiteren Veröffentlichungen
- Testframeworks: TestNG, JUnit
- Überdeckungsanalyse: EclEmma, Cobertura, Jcoverage
