Optimaler Entscheidungsbaum: Pflichtenheft
Warning: preg_match(): Compilation failed: group name must start with a non-digit at offset 8 in /www/htdocs/w0102873/mediawiki/includes/MagicWord.php on line 739
Aus It2010-g1
Jonw (Diskussion | Beiträge) (→Glossar) |
Segr (Diskussion | Beiträge) (→Systemübersicht und -architektur) |
||
Zeile 168: | Zeile 168: | ||
== Systemübersicht und -architektur == | == Systemübersicht und -architektur == | ||
− | === Übersicht über das System === | + | === Übersicht über das System === |
+ | Das Programm besteht hauptsächlich aus einem Controller für die Funktionalität, der View für die Interaktion mit dem Nutzer und dem Model zum Verwalten der Daten. Desweiteren wird ein Observern Pattern verwendet. | ||
+ | |||
=== Systemarchitektur === | === Systemarchitektur === | ||
− | + | Das folgende Klassendiagramm zeigt, in vereinfachter Weise, die komplette Systemarchitektur. Es wurde das Observer-Pattern benutzt. Verschiedene statische und view-Klassen wurden weggelassen. | |
+ | |||
+ | [[Datei:Klassendiagramm_Systemarchitektur.png | 1150px]] | ||
+ | |||
+ | Die wichtigsten Elemente der Architektur sind: | ||
+ | * die '''View''', | ||
+ | * das '''Model''', | ||
+ | * und der '''Controller'''. | ||
=== Schnittstellen des Systems === | === Schnittstellen des Systems === | ||
+ | |||
+ | ==== View ==== | ||
+ | Die Schnittstelle zwischen dem Programm und dem Nutzer wird von der View gestellt<br> | ||
+ | Die View/GUI ist zur grfischen Darstellung und zur dierekten interaktion mit dem Nutzer verantwortlich. Neben der | ||
+ | * Hauptklasse '''"View"''' | ||
+ | gehören noch die Klasse | ||
+ | * '''"TableView"''' (die Tabellenansicht), | ||
+ | * '''"TreeView"'''' (die Baumansichten), | ||
+ | ** '''"TreeZoomView"''' (der Zoom eines Bäume), | ||
+ | *** '''"TreePainter"''' (die gezeichnete darstellung eines Baumes) | ||
+ | ** '''"TreeDetails"''' (die Informationen eines Ausgewählten Knotens, die neben dem Baum dargestellt werden) | ||
+ | * '''"FullScreenTreeView"''' (die Baumansicht für den Presentationsmodus) | ||
+ | dazu.<br> | ||
+ | Die Klassen View, TableView und TreeView beobachten jeweils als Observer das Model. | ||
+ | |||
+ | ==== Model ==== | ||
+ | Das Model besitzt die Tabelle, den interaktiven Baum und den automatischen Baum. Es beobachtet als Observer die Tabelle und die Bäume und wird als Subject vom Controller und von mehreren Klassen der View beobachtet.<br> | ||
+ | Es dient somit als Schnittstelle zwischen dem Controller und den Daten (Tabelle und Bäume). | ||
+ | |||
+ | ==== Controller ==== | ||
+ | Der Controller ist eine Klasse, die die Schnittstelle zwischen GUI und Funktionalität herstellt, damit diese beiden Bereiche nicht vermischt werden. Dabei stellt der Controller selbst auch einen Teil der Funktionalität dar.<br> | ||
+ | Er beobachtet als Observer das Model.<br> | ||
+ | Die View spricht den Controller an, wenn die Tabelle bearbeitet, eine Tabelle oder ein Baum geladen oder eine Tabelle oder ein Baum gesteichert werden soll. Der Controller greift dann auf die zuständigen Klassen zu. Somit muss die View immer nur auf dne Controller zugreifen und wird nicht weiter mit der Funktionalität des Programmes verstrickt. | ||
== Systemanforderungen == | == Systemanforderungen == |