Category Archives: Software Engineering I

Software Engineering I, WS0910

Der Server ist aus dem Internet unter der IP 141.51.169.113 Port 1138 zu erreichen. Die Server für die KI Clients können per SSH unter den folgenden IP Addressen erreicht werden:

Gruppe IP Benutzername
A 141.51.169.117 se1ws0910a
B 141.51.169.118 se1ws0910b
C 141.51.169.119 se1ws0910c
D 141.51.169.120 se1ws0910d
E 141.51.169.121 se1ws0910e
F 141.51.169.122 se1ws0910f

Die Passwörter entsprechen dem KI Client Login. Fragt den Deployment Experten eurer Gruppe wie ihr auf einem Linux Server euren KI Client aufsetzt und ggf. auch zu remote Debugging und Testing.

Software Engineering I, WS0910

Wie bereits in der Vorlesung erwähnt und in der Vorlesungsbeschreibung angemerkt erwarten wir das jede Gruppe 2 Produkte abliefert:

1. Einen GUI Client für L&S

2. Einen KI Client für L&S

Der GUI Client soll einem menschlichen Spieler ermöglichen die Rolle eines Gottes bei L&S wahrzunehmen. Dazu gehören insbesondere die Anzeige der Spielwelt (Grafiken werden geliefert, können aber geändert werden), Visualisierung von beliebigen Statusinformationen auf der Karte und die Möglichkeit Wunder zu wirken. Der Server verbietet GUI Clients übrigens das direkte Steuern von Arbeitern.

Der KI Client soll das kollektive Bewusstsein der Anhänger einer Religion / Programmiersprache sein. Er steuert jeden einzelnen Arbeiter, koordiniert den Ausbau von Siedlungen und entsendet Prediger in andere Dörfer um sie zu übernehmen. Da niemand weiß welche Widrigkeiten auf die Gläubigen zukommen können sollte die KI möglichst flexibel sein und durch die Kommunikation mit dem GUI Client den Wechsel unterschiedlicher Spielstrategien ermöglichen.

Für beide Clients gilt die beschriebene Spielmechanik.

Auserdem gibt es verschiedene technische Anforderungen:

  • Jede Gruppe nutzt die IDE Eclipse und Programmiert in Java (nur falls das jemand mit der Gleichsetzung von Religionen und Programmiersprachen in L&S verwechselt hat)
  • Für die Kommunikation mit dem Server empfehlen wir Apache MINA
  • Mehrere GUI Clients sollen sich gleichzeitig einloggen können. Der Server ist dahingehend bereits getestet.
  • Die GUI Technologie steht euch frei. Das ist Segen und Fluch zugleich – ein paar Vorschläge: Swing, JavaFX, Java2D, jME, GWT …  hat  jemand Lust für Android zu entwickeln?
  • Der KI Client muss headless laufen, da er auf einem Server 24/7 deployed wird (ihr erhaltet ssh Zugriff auf eine Linux VM oder hostet die KI selber)
  • es kann nur ein KI Client gleichzeitig laufen
  • die GUI Clients sollen die KI Clients beeinflussen können

Natürlich erwarten wir nur sorgfältig getestete und dokumentierte Releases mit einer Präsentation zu jedem Sprint.

Die Gruppenkommunikation erfolgt über die Mailinglisten des GForge, damit alle die Diskussion mitbekommen.

Software Engineering I, WS0910

Die Tutorien sind essentiell wichtiger Bestandteil der Vorlesung, schließlich geht es um Teamarbeit und die können wir nur beurteilen wenn wir sehen ob und wie ihr zusammenarbeitet:

  • Zwei Maliges unangekündigtes Fehlen während der Gruppentreffen wird als nicht bestanden gewertet.
  • Wenn ihr bis 20h am Vortag kommuniziert das ihr fehlen werdet und alle Teammitglieder und die Tutoren davon in Kenntnis gesetzt sind gilt das nicht mehr als unangekündigt, aber die anderen Gruppenmitglieder können und werden sich eine Strafe ausdenken.

Zur Kommunikation sei noch einmal auf die -discussion Mailinglisten des GForge hingewiesen.

Software Engineering I, WS0910

Jedes LaTeX Dokument gliedert sich mindestens in 2 Teile: die sog. Präambel und das eigentliche Dokument. In der Präambel stehen die Konfigurationseinstellungen für das LaTeX Dokument die durch das laden von Packages die Generierung beeinflussen:

documentclass[10pt, a4paper]{article} % 10pt schriftgröße, DIN A4, Artikel
usepackage[german,ngerman]{babel}     % deutsche rechtschreibprüfung
usepackage[utf8]{inputenc}            % utf8 codierte .tex dateien
usepackage[T1]{fontenc}               % korrekte umlaute im ausgabedokument
PrerenderUnicode{äüößÄÜÖß–}           % damit man auch umlaute im pdf titel und autor benutzen kann
usepackage{times}                     % Umstellung auf Schrift Times, Wichtig für gute PDF Qualität.
usepackage{graphicx,float,enumerate}  % grafikformate
usepackage{graphics}                  % grafikformate
usepackage{natbib}                    % "deutsch" formatierte bibliographieeinträge ermöglichen
usepackage[
pdftex,
a4paper,
bookmarks,
bookmarksopen=true,
bookmarksnumbered=true,
pdfauthor={TODO},                      % Autoren eintragen
pdftitle={TODO},                       % Titel des Dokuments eintragen, wenn leer = dateiname
colorlinks=true,
linkcolor=black,
anchorcolor=black,
citecolor=black,
filecolor=black,
menucolor=black,
urlcolor=black
]{hyperref}                            % hyperlinks immer schwarz und im PDF anklickbar machen

begin{document}
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit ametfootnote{url{http://www.loremipsum.de/}}.

bibliography{mybib}                   % bibliographie aus "mybib.bib" lesen
bibliographystyle{dinat}              % "deutsch" formatierte bibliographieeinträge

end{document}

Die Zeilen sind kommentiert und sollten damit selbsterklärend sein. Mehr Informationen findet ihr in den Wikibooks.

Soweit der Vorschlag für die “Konfiguration”. Den Inhalt organisiert man dann über section, subsection … Es gibt noch mehr Möglichkeiten, z.B. die Generierung eines Glossars / Indexes, aber das wäre eine Aufgabe für den LaTeX Experten in der Gruppe.