Softwareentwicklungspraktikum im WS 2009/10
Aktuelles
- Ihre CIP-Kennung dient zur Kontaktaufnahme - stellen Sie bitte daher sicher, dass Sie E-Mails, die an Ihre CIP-E-Mail-Adresse geschickt werden, zeitnah zur Kenntnis nehmen.
- Das Subversion Repository ist freigeschaltet. Beachten Sie bitte hierzu die Hinweise unter http://www.dbs.ifi.lmu.de/Lehre/SEP/WS0910/gruppen/index.html.
- Einteilung der Gruppen für Vorprojekt und Referate in zwei Sortierungen:
- Entnehmen Sie die Zuteilung der Gruppen zu Tutoren bitte dem Merkblatt.
Nehmen Sie bitte als komplette Gruppe, nicht alle einzeln, mit Ihrem Tutor schnellstmöglich Kontakt auf.
Inhalt
In dem Praktikum sollen die Teilnehmer unter Anleitung ein größeres Programm entwerfen, spezifizieren und implementieren und dabei die in den Vorlesungen "Einführung in die Programmierung" und Programmierung und Modellierung" erlernten grundlegenden Konzepte und Techniken praktisch einsetzen.
In Gruppen von 3 Teilnehmern sollen in Vorprojekten grundlegende Fähigkeiten in der Programmentwicklung im Team und hinsichtlich bestimmter Programmanforderungen erworben werden. In Teams von 5-6 Teilnehmern soll dann eine größere Java-Applikation entwickelt werden.
Organisation
- Umfang: 4 Semesterwochenstunden
- Betreuung: PD Dr. Peer Kröger, Dr. Arthur Zimek
- Tutoren: Daniel Kaltenthaler, Thomas Mair, Florian Nücke, Eduard Vodicka, Ernst Waas, Remigius Wojdanowski
Zeit und Ort
| Veranstaltung |
Zeit |
Ort |
Beginn |
| Plenum |
Do, 14.00 c.t. - 16.00 Uhr |
A 240 (Hauptgebäude) |
22.10.2009 |
Jede Gruppe trifft sich wöchentlich mit ihrem Tutor, die Termine dieser Treffen sind selbständig zwischen Gruppe und Tutor auszumachen.
In den Plenum-Sitzungen sowie in den Gruppen-Treffen besteht Anwesenheitspflicht.
Zeitplan
| Datum |
Themen |
Aufgaben/Milestones |
| 22.10.2009 |
Model-View-Controller |
Gardner-Artikel
Game of Life 1
Konfigurationsdateien:
|
| 29.10.2009 |
- T1: Dateien als Gruppe verwalten - Was ist und kann Subversion? Grundlegende Kommandos und Regeln für Subversion (V24)
- T2: "Malen nach Zahlen" - Graphikprogrammierung mit AWT: Koordinatensystem, geometrische Figuren, Bilder etc. (V28)
- T3: Einführung in GUIs - Was sind Windows, Frames, Panels etc.? Wie ist eine GUI aufgebaut? (V12)
- T4: GUI Layout in AWT - Welche Elemente plaziert man wie wo und wie sieht es dann aus? (V19)
- T5: GUI Layout in Swing - Unterschiede zwischen Swing und AWT (in Absprache mit dem Referat T3), Layoutmanager in Swing (V22)
|
Game of Life 2
|
| 05.11.2009 |
- T6: Wissen, wo was los ist - Das Designpattern "Observer", Ausblick auf das Event-Listener-Modell in Java (V29)
- T7: Was passiert, wenn ich da drauf drücke? - GUI-Kontroll-Items: Buttons, Slider, Radiobuttons, Menü, Dialogfelder, Textelemente, ... : Events und Listener (V31)
- T8: Die Klasse ist da, wo sie hingehört - Innere Klassen, lokale innere Klassen, anonyme Klassen, statische verschachtelte Klassen (V13)
- T9: Parallel oder sequentiell? - Nebenläufigkeit, Prozesse und Threads, Probleme bei nebenläufigen Prozessen/Threads, Synchronisation mit Monitoren (V20)
- T10: Mehrgleisig auch in Java? - Die Klasse Thread, das Interface Runnable, Synchronisation von Threads in Java (V14)
|
Game of Life 3 |
| 12.11.2009 |
- T11: Kleine Applikationen im Web - Applets: Lebenszyklus, Einbinden, Einschränkungen (V08)
- T12: Wie stelle ich eine Anwendung mit vielen Klassen zu Verfügung? - Jarfile mit Manifest, Ant als Deployment-Tool (V06)
- T13: Dokumentation eines Projektes – Javadoc: Tags, Overview-Seiten, Stil-Konventionen, Erzeugen der HTMLDokumentation
von Hand und durch Ant (in Absprache mit T12) (V17)
- T14: Eine mächtige, freie Entwicklungsumgebung – Eclipse: Überblick über die Funktionalität, Einbindung
von cvs/Subversion und Ant-build-files (Absprache mit T12 und T13, Rückbezug zu T1) (V01)
- T15: "Das gehen wir noch mal durch" – Das Design-Pattern "Iterator" und die Verwendung von Iteratoren im
Java-Collections-Framework (V09)
|
Game of Life 4 |
| 19.11.2009 |
- T16: Netzwerk: Einführung - Netzwerkschichtmodelle, Client-Server Modell, Protokolle (IP, TCP, UDP) (V10)
- T17: CGI und Servlets - was ist CGI, was sind Servlets? Verwendung von Servlets, Aufruf von CGI-Skripten (V11)
- T18: Sockets - Das Konzept der Sockets, Client-Sockets, Server-Sockets (V03)
- T19: RMI - Prinzipielle Arbeitsweise von RMI, Remote-Interface, Remote-Object, Remote-Referenz, RMI-Registry, Stub, Skeleton (V30)
- T20: Design-Pattern: Proxy - Motivation, Struktur, Anwendung (V02)
|
Netzwerk
|
| 23.-26.11.2009 |
Abnahmen Game of Life 1-4
Die Abnahmen am Montag Nachmittag finden in Raum F106 (alte Raumnummer: E 1.06) statt, alle anderen Abnahmen in Raum 156 (beides Oettingenstr. 67).
|
Termine (pdf) |
| 26.11.2009 |
- T21: Wer? Wie? Was? Warum? - Überblick über die Spielregeln und den Spielablauf "Siedler von Catan" (V23)
- T22: Use-Case-Analyse - Was sind Use-Cases? Wie stellt man Use-Cases in UML dar? (V18)
- T23: UML: Statische Modellierung, Klassendiagramme - Wiederholung und Ergänzung des Kapitels aus Info 2 zum Thema statische Modellierung in UML (Klassendiagramme), Umsetzung der Konzepte in Java (V16)
- T24: UML: Dynamische Modellierung, Sequenzdiagramme und Zustandsübergangsdiagramme - Was sind Sequenzdiagramme/Zustandsübergangsdiagramme? Wozu kann man Sequenzdiagramme/Zustandsübergangsdiagramme benutzen? Wie entwirft man Sequenzdiagramme/Zustandsübergangsdiagramme? (V07)
|
|
Projekte
Alle Projekte sollen über ein gemeinsames Subversion Repository verwaltet werden. Hierzu bitte beachten: http://www.dbs.ifi.lmu.de/Lehre/SEP/WS0910/gruppen/index.html.
Vorprojekt
In den ersten Wochen wird in Gruppen von 3 Teilnehmern
eine Modellierung des "Game of Life" vorgenommen sowie eine kleine Netzwerkapplikation erstellt.
Hierbei sollen unterschiedliche
Möglichkeiten der Benutzerinteraktion vorgesehen werden.
Ziel des Vorprojektes ist es, die wichtigsten Konzepte, die auch für das Hauptprojekt benötigt werden,
in einem kleinen, übersichtlichen Projekt einzuüben.
Hauptprojekt
In Gruppen von 6 Teilnehmern wird eine netzwerkfähige JAVA-Applikation entwickelt.
Dieses Programm soll das beliebte Spiel Die Siedler von Catan mit einer Client-Server-Architektur
realisieren. Dabei soll das Serverprogramm den Spielzustand repräsentieren und mit den Clientprogrammen der einzelnen
Mitspieler kommunizieren.
Der Spielzustand soll auf Klientenseite graphisch dargestellt werden und
Spielzüge sollen über Mausklicks eingegeben werden.
Der Server überwacht die Einhaltung der Regeln.
Computergesteuerte Spieler (KI) können abschließend eine interessante Erweiterung bilden.
© Franckh Kosmos Verlags-GmbH 1995
Hilfsmittel
Wir verwenden die Java Standard Edition 6.0, die auch am CIP-Pool installiert ist.
Falls Sie zuhause arbeiten möchten, benötigen Sie das Java Development Kit (JDK 6), das Sie unter
http://java.sun.com/javase/downloads/index.jsp
frei herunterladen können.
Die Standardbibliothek, die mit der Standard-Edition zu Verfügung steht, ist vollständig dokumentiert unter
http://java.sun.com/javase/6/docs/api/.
Nützliche Links