Search:
Lehrstuhl  |  Institut  |  Fakultät  |  LMU
print

Softwareentwicklungspraktikum im WS 2009/10



Aktuelles

  • Wegen Server-Problemen am CIP-Pool ist die Deadline für Siedler: Milestone 2 um 24h verschoben auf 17.12.2009, 13:00 Uhr.
  • Tutoren für die Hauptgruppen: hgruppe-tutor.txt
  • Einteilung der Gruppen für Hauptprojekt in zwei Sortierungen:
  • 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.
  • 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


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 EIP 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)
Siedler: Milestone 1
03.12.2009
  • T25: Nicht wieder alle kopflos drauflos laufen bitte! - Verschiedene Software-Entwicklungsprozess-Modelle (z.B. Extreme Programming), typische Schritte im SWE-Prozess (V05)
  • T26: Deutsch, Englisch, Bayerisch? Unterstützung von Mehrsprachigkeit in Java (V27)
  • T27: "Keiner hört mir zu" - Logging: Botschaften so ausgeben, dass man sie auch lesen kann, aber nur lesen muß, wenn man auch will (V04)
  • T28: "Nein, wir machen das noch anders" - Was sind Refactoring Patterns? Häufige Patterns (z.B. Extract Interface, Extract Superclass, Extract Subclass, Push Up Field/Method/Contructor Body, Push Down Field/Method, Collapse Hierarchy, Form Template Method) (V21)
Siedler: Milestone 2
10.12.2009
  • T29: "Wir machen nicht, wir lassen machen" - das Design-Pattern "Factory" (V15)
  • T30: Fehlerreduktion durch planvolles und systematisches Testen (Beispiel: JUnit) (V25)
  • T31: Spieltheorie, Spielstrategien: Anregungen für "Siedler von Catan"-KIs (V26)
Siedler: Milestone 3
17.12.2009 kein Plenum Siedler: Milestone 4
07.01.2010 kein Plenum Siedler: Milestone 5
14.01.2010 kein Plenum Siedler: Milestone 6
21.01.2010 kein Plenum Siedler: Beta-Test
28.01.2010 kein Plenum
04.02.2010 kein Plenum endlich das letzte Aufgabeblatt:

Siedler: Endabnahme

11.02.2010 kein Plenum
23.-26.02.2010 Abnahmen im CIP-Pool (Takla-Makan) Abnahmetermine der Gruppen siehe:

Siedler: Endabnahme

Nach den Abnahmen 23.-26.02. haben Sie keine weiteren Plenums-Termine.


Projekte

Alle Projekte sollen über ein gemeinsames Subversion Repository verwaltet werden. Bitte hierzu die Hinweise beachten.

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 5-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.


catan.gif © 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

blank