# Grobdesign > Feindesign > Testdesign



## Angel4585 (25. Apr 2012)

Hallo,

in einem Projekt im Studium entwickeln wir in ner Gruppe zu 5 Leuten eine Krankenhaus-Software mit der Patienten dem richtigen Bett auf der richtigen Station zugewiesen werden sollen.
Es gibt 5 Krankenhäuser mit je 4 Stationen die je 5 Betten beinhalten.

Wir haben fixe Abgabetermine für Project Charter, Lastenheft, Projektplan, Pflichtenheft, Grobdesign, Feindesign, Testdesign und später dann die fertige Software.

Bis zum Pflichtenheft haben wir alles und auch schon durchgesprochen mitm Professor.
Das Problem ist es wird vorher nichts dazu gesagt und wir müssen uns selbst erarbeiten was wir für die einzelnen Schritte benötigen.

Jetzt hängen wir am Grobdesign und keiner von uns hat ne Ahnung. Google liefert zwar viele Ergebnisse aber es überschneidet sich sehr viel davon auch schon mitm Feindesign.

Deshalb bitte ich euch hierum etwas Hilfe:
Was kommt ins Grobdesign?

Hier hätte ich intuitiv den groben Aufbau der Software umrissen, da wir auch nur eine Woche Zeit haben fürs Grobdesign.

Also sowas quasi: 
Client besteht aus den Ebenen: GUI, ClientLogic, DataSync, Database
Server besteht aus: GUI, ServerLogic, DataSync, Database


Dann noch eine kurze Beschreibung was jede Ebene macht:

GUI: 
Bietet dem Benutzer die Möglichkeit sich einzuloggen, Patienten aufzunehmen, zu suchen, zu bearbeiten und zu entlassen.

ClientLogic: 
Stellt Funktionen bereit zu Plausibilitätsprüfung der eingegebenen Daten, Suchalgorithmus für ein freies Bett uvm.

ServerLogic: 
Prüft auf Konflikte in den Daten. Z.B. wenn zwei oder mehr Krankenhäuser das selbe Bett belegen wollen.

DataSync:
Die DataSync-Ebenen stellen eine Verbindung miteinander her und synchronisieren die Daten der Database-Ebene, wenn eine Verbindung möglich ist.

Database:
Hier werden die Daten abgespeichert. Als Datenbank wird Firebird genommen.

So das wäre mein Grobdesign. Andere Gruppen fangen jedoch schon mit Klassendiagrammen für Ihr Grobdesign an.

Was meint ihr dazu?

Klassendiagramme kämen bei mir erst im Feindesign, da wir dort auch viel mehr Zeit haben(3 Wochen).
Ausserdem würde das Feindesign z.B. ein UML Diagramm des Suchalgorithmus zur Bettensuche beinhalten.
Natürlich noch mehr.

Im Testdesign würde man dann eine Testumgebung schaffen, also ein Server, 5 Clients um dann vorher festgelegte Tests durchführen zu können. 


Ist recht schwer das abgrenzen zu können wenn man das so noch nie gemacht hat, die Fachinformatikerausbildung war da ein Witz dagegen.

Habt ihr Tipps für mich bzw. uns das wir das richtige ins Grobdesign machen?


----------



## Paddelpirat (25. Apr 2012)

Eine Frage: Wieso haben die Clients eine Datenbank?


----------



## Angel4585 (25. Apr 2012)

Es soll eine Kopie der ServerDB sein, da es um eine Krankenhaussoftware geht soll eine Ausfallsicherheit da sein, falls die Verbindung zum Server weg ist sollen die Patienten im jeweiligen Krankenhaus verwaltet werden können.

Dazu gibt es eine Schicht die die Daten mit dem Server synchronisieren soll wenn eine Verbindung da ist.


----------



## Paddelpirat (26. Apr 2012)

Okay, wobei sich das dann schon wieder einigermaßen kompliziert anhört, wenn es um die synchronisation der Daten geht.

Ich denke das das Grobdesign erstens, wie du beschrieben hast, die einzelnen Stationen (Server,Client,Datenbank(en)) erwähnen sollte, aber auch schon im groben, wie diese Komponenten miteinander kommunizieren. Das könntest du dann z.B. in einem UML-Diagramm erfassen.

Ein interessanter Punkt der dann auch meine Frage abdeckt ist dann die Information, wann ein Client auf lokale Datenbank zugreift und wie nach einem Serverabsturz z.B. die Daten wieder mit den lokalen Datenbanken synchronisiert werden. (Natürlich alles nur grob umreißen und nicht ins letzte Detail ausarbeiten.)

Edit: Klassendiagramme finde ich gehören auch eher zu dem Feindesign.


----------

