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