DisTAnz 1.0

Implementierung des Managers

Klassendiagramm

Das neue Klassendiagramm des Managers (neues Browserfenster). Vorsicht: Sehr groß (??? kB, ???x??? Pixel)

Änderungen zum Feinentwurf

Neue Variablen/Klassen/Methoden sind so markiert, entfallene sind anders markiert und geänderte auf diese Art. Variablen werden der Übersichtlichkeit halber nicht aufgeführt, wenn sie noch "im Originalzustand" sind.


Das Package agent
Klasse Variable/Methode Erläuterung
AgentManageress AgentManageress() Keine Veränderung.
AgentManageress(port:int=35000) Keine Veränderung.
findAgents():void Keine Veränderung.
upDate():bool Keine Veränderung.
getTableData(agent:InetAddress, type:String):String[][] Die Übergabewerte wurden von int in InetAddress und String geändert.
getSelectedAgents():Vector Keine Veränderung.
deleteAgent():Vector Wir durch clear() abgedeckt.
deselectAgent(agent:InetAddress):void Keine Veränderung.
selectAgent(agent:InetAddress):void Keine Veränderung.
getDetailedData(agent:InetAddress, type:String, wert:String):String[][] Reicht die Anfrage an die entsprechende CAgent-Instanz weiter.
getAgents():Vector Gibt einen Vector mit den gespeicherten CAgent-Instanzen zurück.
loadDataFromDisk(File):void Das Laden von daten klappt nur mit manchen Datenfiles. Testläufe deuten auf einen Zusammenhang mit der Dateigröße hin, eine Erklärung hat aber auch ein line-by-line-Debugging bis jetzt nicht ergeben.

Schlußfolgerung

Die bereits im Feinentwurf vorhandenen Klassen blieben weitgehend unverändert, wie die niedrige Zahl der veränderten bzw. entfallenen Methoden und Variablen zeigt.

Die relativ hohe Anzahl von im Vergleich zum Feinentwurf hinzugekommenen Variablen und Methoden deutet dagegen auf zwei Tatsachen hin:

Erstens war die Problematik des Zugriffs auf andere Klassen und Methoden nicht völlig klar. Dies wird besonders deutlich, wenn man die direkte Assoziation von DataStorage und RequestHandlerData im Klassendiagramm des Feinentwurfes betrachtet. Auch die fehlende Übergabe von Referenzen der sonstigen assoziierten Objekte ist so zu erklären (d.h. es ist kein Zugriff über Konstrukte wie super().AndereKlasse oder parent().AndereKlasse möglich (wie zumindest ich es mir noch zu Beginn des Feinentwurfes in etwa vorstellte, Anm. des Verfassers).

Zweitens macht sich die fehlende detailliertere Planung der Abläufe im Programm bemerkbar, die wahrscheinlich die Notwendigkeit vieler der neu hinzugekommenen Methoden aufgezeigt hätte.

Quot erat demonstrandum: Es gab etwas zu lernen! :o)