Allerlei zum Softwaretechnik - Praktikum 2006

Hier stehen die Bewertungen der 3. Abgabe (diesmal endgültig).
Falls ihr die vorherigen Abgaben noch korrigiert habt findet ihr die korrigierten Bewertungen bei der jeweiligen Abgabe.
Die Punkte aus Adressverwaltung 2 werden halbiert und als Bonus gutgeschrieben, Adressverwaltung 1 zählt voll.


Endgültige Abgabe bis Sonntag, 13.8. per Mail ! Schickt die Abgaben an meine Firmenadresse, zuhause bin ich wegen meines lahmen Modems zu nichts in der Lage ;-).

Abgegeben werden sollen das Programm und die Unit-Tests, alles im Quellcode. Das Benutzerhandbuch soll als Windows-Hilfe im CHM-Format vorliegen.
Außerdem wäre es gut wenn ihr die gesamte technische Dokumentation (Use-Cases, Klassen- und sonstige Diagramme mit Beschreibung) als "Technisches Handbuch" beilegen könntet. Gebt mir Bescheid ob ihr dabei FIXMEs aus bisherigen Abgaben behoben habt.

Noten werden auf dieser Seite bekanntgegeben.

Ich bin vom 2.8. bis 12.8. im Urlaub, kann euch also keine Hilfe bei Problemen geben.


Spielbretteditor

Ein Hinweis für die Gruppen die einen Spielfeldeditor entwickeln sollen: für euch ist es wahrscheinlich sinnvoll die Anwendung als "Multi Document Interface" aufzubauen, also eine Anwendung mit je zwei Document- und View-Klassen (je ein paar von Document und View für das eigentliche Spiel und den Editor). Ich habe ein kleines Beispiel zusammengestellt dass ihr eigentlich direkt als Grundlage für euer Projekt verwenden könnt: MDIMalefiz/index.html

Am Mittwoch, 26.7. 16 Uhr

ist die Abgabe angepeilt. Auf jeden Fall soll das eine ausgedehnte Fragestunde werden und ist wahrscheinlich eure letzte Möglichkeit mich persönlich zu erwischen.

Am Mittwoch, 19.07.

gibt es ebenfalls eine Fragestunde.
Update der Anforderungen: statt 10 Testfällen reichen mir 5.

Am Mittwoch, 12.07.

werde ich zur üblichen Zeit um 17 Uhr eine Fragestunde abhalten !

Informationen zum weiteren Verlauf

Vorraussichtlicher Abgabetermin ist Mittwoch der 26.7., wahrscheinlich ab 16 Uhr.

Ich werde bis dahin einmal pro Woche (auch nach den Klausurwochen) eine Fragestunde anbieten, am besten wohl Mittwochs zur üblichen Zeit. Bitte kündigt euch vorher per Mail bei mir an (mindestens einen Tag vorher) sonst komme ich nicht. Wenn ein solcher Termin bestätigt ist dann findet ihr ihn hier.

Benutzerhandbuch des Spiels: Das Handbuch/Bedienungsanleitung soll als CHM-Online-Hilfe zur Verfügung gestellt werden. Siehe Beispiel 5. Wegen der knappen Zeit reicht es mir wenn ihr das gesamte Handbuch in eine einzelne HTML-Datei packt und diese als ein großes Kapitel in die Hilfe einbindet (ohne Anbindung ans Programm, beim Drücken von "F1" wird die Hilfe zwar aufgerufen, aber man muss zu Fuß zum gewünschten Hilfethema navigieren.
Variante 2 (die Bonuspunkte bringt) ist eine kontextsensitive Hilfe, die für einen bestimmten Spielzustand (vor dem Würfeln, Spielfigur gewählt, Sperre versetzen) beim Drücken von "F1" das entsprechende Kapitel öffnet.

Für Variante 1 ist folgendes zu tun:

Bitte reicht mir noch die korrigierten Dokus aus Abgabe 1 nach, ich habe bisher von keiner Gruppe die 2. Abgabe erhalten. Je früher ihr es mir gebt desto größer ist die Chance die FIXMEs zu beheben (und wenn es zu spät abgegeben wird dann gibt es garkeine Nachbesserungschance mehr)

Gesammelte Informationen

Installation:

Hinweise zur Installation von Visual-Studio, Doxygen, CppUnit und Together gibt es hier .

Austausch eines MFC-Projekts

Ein Projekt enthält einen ganzen Haufen Dateien, die wir nicht brauchen wenn wir es irgendwo anders hin übertragen wollen (und ich schlage jeden der mir ein Projekt mit dem gesamten Debug-Ordner zumailt !).
Dies sind:
-Die kompletten "Debug"-Unterorder in Projektmappe und Projekt.
-Die Datei mit der Endung .ncb im Projektmappen-Verzeichnis
-Die Datei namens %PROJEKTMAPPE%.suo. Dies sind die benutzerspezifischen Einstellungen (diese Info mit Vorbehalt).
-Die Datei %PROJEKTNAME%.vcproj.%COMPUTERNAME%.%USER%.user im Projektverzeichnis (User-spezifische Projekt-Einstellungen).
Benötigte Dateien:
-Natürlich alle .cpp und .h-Dateien
-Das gesamte "res"-Unterverzeichnis
-Datei mit der Endung .sln (dies ist die Projektmappe / Solution, ruhig mal mit einem Texteditor anschauen)
-Datei mit der Endung .vcproj (dies ist die Projektdatei, ebenfalls mal mit einem Texteditor anschauen)
-Die Readme.txt (obwohl die eigentlich nie benötigt/benutzt wird).
-Die Datei mit der Endung .rc (hier stehen die Definition unserer Oberflächen-Elemente, ebenfalls Texteditor-kompatibel).
-Die .reg-Datei (beispielsweise im MFCBasics-Beispiel).




Malefiz 3 (das Programm):

XML-Speicherung:
Als Beweis wie sinnvoll eine nicht-binäre Speicherung z.B. per XML ist möchte ich erreichen dass die Savegames zwischen euren einzelnen Abgaben austauschbar sind (auch bei denen die zusätzlich einen Spielfeldeditor bauen). Deshalb gebe ich im Folgenden das Format der XML vor. Falls irgend jemand Fragen dazu hat oder Fehler oder Ungenauigkeiten entdeckt bitte sofort melden !
Hier gibt es einen Satz von Beispiel-XML-Dateien (5 verschiedene Dateien, da ich pro Datei nur einen der fünf möglichen Zustände angeben kann, der Dateiname ist dabei Programm): MalefizRundenstart.xml, MalefizGewuerfelt.xml, MalefizFigurGewaehlt.xml, MalefizSperreVersetzen.xml, MalefizRundenende.xml (Update 22.06.2006: Spielerfarbe für Spieler 4 war "grün" statt wie in der DTD vorgegeben "gruen").

Um die Gültigkeit eurer generierten XML-Dateien sicherzustellen müsst ihr die "Data Type Declaration" einbinden:
<!DOCTYPE MalefizSavegame PUBLIC "Malefiz-Savegame Softwaretechnik 2006 FH Wiesbaden" "http://www.informatik.fh-wiesbaden.de/~knauf/SWT2006/Malefiz.dtd"> 
Hier gibt es die DTD zum Herunterladen: Malefiz.dtd (Update 22.06.2006, jetzt können die Malefiz-XML-Dateien mit Visual-Studio editiert werden).

Folgende Definitionen und Einschränkungen habe ich vorgenommen:

Beim Erstellen des Projekts bitte beachten dass die HTML-Hilfe aktiviert wird:
HTML-Hilfe

Malefiz 2:

Abgabe ist (vorraussichtlich) am 14.06.2006.
Hier gibt es die Bewertungen. Kritikpunkte sollten behoben werden.


Malefiz 1:

Abgabe ist am 17.05.2006.
Hier gibt es die Bewertungen. Kritikpunkte sollten behoben werden, ich lege erst dann Punktzahlen fest.
Abgegeben werden sollen: Jede Gruppe soll ihre Diagramme in der Stunde kurz per Beamer vorführen.


Adressverwaltung 2:

Abgabe ist am 17.05.2006 (verlängert: 24.05.2006).


Adressverwaltung 1:

Abgabe ist am 26.04.2006 (Fristverlängerung: bis Sonntag 30.04.2006).

Beispiele

Beispiel 1: Minimale MFC-Anwendung
Beispiel 2: FormView, Dialog und DocumentView-Architektur
Beispiel 3: Geteiltes Fenster
Beispiel 4: Bitmaps laden, Toolbar, CScrollView, GetLastError
Beispiel 5: HTML-basiertes Hilfesystem
MFC-Fundgrube (einige nützliche Kleinigkeiten: CDocument::SetModifiedFlag, Exceptions, Zeichnen ohne Flackern, XML-Speicherung, Bitmap als Resource)


Literatur

"Inside Visual C++ .NET" von George Shepherd und David Kruglinski, ISBN: 3860636782
Inside Visual C++.NET



Stand 21.08.2006
Historie:
02.04.2006: Seite erstellt
12.04.2006: Abgabe "Adressverwaltung"
19.04.2006: Weitere Details zur Abgabe "Adressverwaltung", Literaturtips
23.04.2006: Beispiel 3
26.04.2006: Gruppenliste
01.05.2006: Bewertung Adressenabgabe 1
03.05.2006: Adressenabgabe 2
04.05.2006: Gruppenliste aktualisiert.
10.05.2006: Gruppenliste aktualisiert (zwei Wechsel von E nach C). Malefiz-Abgabe 1. Mehr Tricks in der Anleitung zur Adressabgabe 2.
23.05.2006: Weitere Varianten für ListItem-Zufügen.
24.05.2006: Befüllen des Listcontrol in Adressenaufgabe 2: "SetItemText" statt LVITEM-Struktur. Beispiel überarbeitet.
Malefiz-Abgabe 2 und StateChart-Mini-Howto.
31.05.2006: Großen, wichtigen Hinweis zu Unit-Tests zugefügt, TestCase-Definitionen für Malefiz-Abgabe 2.
01.06.2006: Gruppe G aufgelöst, 645917 in Gruppe D
07.06.2006: Punktestände für Adressverwaltung, HTML-Hilfe-Info, Link zum Sequenzdiagramm-HowTo
11.06.2006: Punktestände für 145864, 537311, 747651, 145945, 149088 aktualisiert.
12.06.2006: Punktestände für 646882, 645917 aktualisiert. Beispiel 4 und MFCSchnipsel
13.06.2006: Punktestand für 245947 aktualisiert.
15.06.2006: Vergessene Unit-Test-Punktzahl für 845901. Malefiz1-Punktzahlen übertragen.
17.06.2006: XML-Speicherung-Vorgabe
20.06.2006: Punktestand für 334832 aktualisiert.
21.06.2006: Malefiz-Savegame-Beispiel-XML korrigiert ("geld" statt "gelb"), 5 Dateien für jeden der Zustände, da XML sonst ungültig. Unit-Test-Drohung geändert. Punktestände für 849044 und 845901 aktualisiert.
22.06.2006: DTD für Malefiz geändert, jetzt kann man die XML-Dateien auch mit Visual Studio validieren lassen. In Beispiel-XML-Dateien war die Spielerfarbe ungültig: "grün" statt wie in DTD "gruen".
Punktestand für 745170, 549473 aktualisiert.
23.06.2006: Punktestände für 243416, 245947, 849044, 949095 aktualisiert und die Unit-Test-Drohung entfernt da sie nicht zuschlagen musste.
26.06.2006: HTML-Help-Beispiel zugefügt.
28.06.2006: Infos zum weiteren Verlauf.
29.06.2006: Malefiz-1-Update für Gruppe B, Malefiz-2-Punkte für Gruppen B und F.
30.06.2006: Malefiz-1/2-Update für Gruppe D.
09.07.2006: Fragestunde 12.7.
17.07.2006: Fragestunde 19.7., Update Gruppe B, reduzierte Anzahl von Testfällen.
18.07.2006: Update Gruppe C.
19.07.2006: Beispiel "MDI", Fragestunde 26.07.
26.07.2006: Endgültige Abgabe
14.08.2006: Link zur Bewertung Malefiz 3. Bewertung Gruppe B.
15.08.2006: Bewertung Gruppe D, F.
17.08.2006: Bewertung Gruppe A, C.
18.08.2006: Update Gruppe F.
21.08.2006: Update Gruppe A, F