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
Segr (Diskussion | Beiträge) (→Qualitätsanforderungen) |
Jonw (Diskussion | Beiträge) (→Systemanforderungen) |
||
Zeile 12: | Zeile 12: | ||
Im Allgemeinen können alle Stakeholder des Projektes als Leser erwartet werden, jedoch werden die Entwickler, die Projektleitung, der Auftragnehmer und -geber besonders als Leserschaft hervorgehoben. | Im Allgemeinen können alle Stakeholder des Projektes als Leser erwartet werden, jedoch werden die Entwickler, die Projektleitung, der Auftragnehmer und -geber besonders als Leserschaft hervorgehoben. | ||
=== Versionsgeschichte des Dokumentes === | === Versionsgeschichte des Dokumentes === | ||
− | Dies ist die erste Version des Pflichtenheftes, weitere Versionen sind noch nicht in Planung. | + | |
+ | Dies ist die erste vollständig kompilierte Version des Pflichtenheftes, weitere Versionen sind noch nicht in Planung. | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Version | ||
+ | ! Datum | ||
+ | ! Name | ||
+ | ! Bemerkung | ||
+ | |- | ||
+ | | 0.1 | ||
+ | | 20.01.2012 | ||
+ | | Jonathan Wiens | ||
+ | | Struktur angelegt | ||
+ | |- | ||
+ | | 0.2 | ||
+ | | 14.02.2012 | ||
+ | | Jonathan Wiens | ||
+ | | Inhalte eingefügt | ||
+ | |- | ||
+ | | 0.3 | ||
+ | | 12.03.2012 | ||
+ | | Benjamin Pfeiffer | ||
+ | | Inhalte eingefügt | ||
+ | |- | ||
+ | | 0.4 | ||
+ | | 19.03.2012 | ||
+ | | Sebastian Große | ||
+ | | Inhalte eingefügt | ||
+ | |- | ||
+ | | 0.5 | ||
+ | | 02.05.2012 | ||
+ | | Christian Gebauer | ||
+ | | Inhalte eingefügt | ||
+ | |- | ||
+ | | 1.0 | ||
+ | | 14.05.2012 | ||
+ | | Jonathan Wiens | ||
+ | | Inhalte geprüft und kompiliert | ||
+ | |- | ||
+ | |} | ||
== Einleitung == | == Einleitung == | ||
Zeile 170: | Zeile 210: | ||
=== Ü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. | 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. | ||
+ | |||
+ | Das folgende Diagramm stellt die Hauptanwendungen des Benutzers dar | ||
+ | |||
+ | [[Datei:UseCase_Diagramm_Programmnutzung.png]] | ||
+ | |||
+ | Die folgenden Aktivitätsdiagramme beschreiben die Anforderungen noch einmal übersichtlicher mittels der Anforderungsschablone nach Rupp | ||
+ | |||
+ | [[Datei:aktivitaetsdiagramm_nach_rupp_baum_use_case.png|1000px]] | ||
+ | |||
+ | [[Datei:aktivitaetsdiagramm_nach_rupp_tabelle_use_case.png|1000px]] | ||
=== Systemarchitektur === | === Systemarchitektur === | ||
Zeile 207: | Zeile 257: | ||
== Systemanforderungen == | == Systemanforderungen == | ||
− | + | Allgemein muss das System den Algorithmus, einen optimalen Entscheidungsbaum zu finden, demonstrieren. | |
=== Funktionale Anforderungen === | === Funktionale Anforderungen === | ||
− | * | + | * Allgemein muss das System fähig sein unter allen gängigen Windows-Betriebssystemen ohne Installation lauffähig sein (Java darf vorrausgesetzt werden, sonst nichts spezielles). spezielles). |
==== Tabellenansicht ==== | ==== Tabellenansicht ==== | ||
− | * | + | * Zu jeder Zeit muss das System dem Nutzer die Möglichkeit bieten Tabellen im .csv-Format (mit Komma als Trennzeichen) einzulesen, bzw. zu speichern. |
− | * | + | * Allgemein muss das System alle Attribute als Zeichenketten behandeln. |
− | * | + | * Zu jeder Zeit muss das System dem Nutzer die Möglichkeit bieten eine Tabelle einzugeben, bzw. zu editieren. |
− | * | + | * Zu jedem Zeitpunkt muss das System dem Nutzer die Möglichkeit bieten Exceldateien zu im- und exportieren. |
==== Baum automatisch ==== | ==== Baum automatisch ==== | ||
− | * | + | * Nach laden einer korrekten Tabelle muss das System einen optimalen Entscheidungsbaum mit einem Algorithmus, der sukzessiv für jeden Knoten jeweils das Attribut mit der minimalen gewichteten Entropie auswählt, erzeugen und darstellen. |
− | * Wenn ein Knoten nur noch Objekte einer Klasse enthält | + | * Wenn ein Knoten nur noch Objekte einer Klasse enthält muss das System mit dem Aufteilen stoppen. |
− | * Wenn ein Knoten nur noch eine bestimmte Anzahl (einstellbar - Voreinstellung 1) von Elementen enthält, wird | + | * Wenn ein Knoten nur noch eine bestimmte Anzahl (einstellbar - Voreinstellung 1) von Elementen enthält, muss das System mit dem Aufteilen aufhören. |
+ | |||
+ | === Qualitätsanforderungen === | ||
+ | |||
+ | * Funktionalität: | ||
+ | **Alle Anforderungen müssen erfüllt sein, so wie sie beschrieben sind. Kommuni- kation mit dem Kunden sollen verschiedene Interpretationen der Anforderun- gen elimieren | ||
+ | * Zuverlässigkeit | ||
+ | **Das Programm darf keine Abstürze haben und stabil laufen. Dabei ist darauf zu achten, dass die File I/O im Rahmen des Im- und Exports daraufhin geprüft werden. | ||
+ | * Benutzbarkeit | ||
+ | ** Die Funktionen des Programms sollen so weit wie möglich intuitiv sein. Des- weiteren soll ein Handbuch existieren, falls der User Unterstützung braucht. Außerdem sollen Schnellhilfen wie Tooltips und Legenden zur Verfügung ste- hen | ||
+ | * Effizienz | ||
+ | ** Das Programm soll eine Reaktionsgeschwindigkeit von unter 2 Sekunden ha- ben. Falls große Bilder exportiert werden, soll dies je nach Auflösung bis zu 7 Sekunden dauern. | ||
+ | * Änderbarkeit | ||
+ | ** Das Programm soll modular und objektorientiert aufgebaut sein, sodass mögli- che Versionserweiterungen angeschlossen werden können. Außerdem soll es eine Entwicklerdokumentation geben, die es Neuentwicklern die möglichkeit gibt die Strukturen des Programms besser kennen zu lernen | ||
+ | * Übertragbarkeit | ||
+ | ** Da die Software in Java programmiert wird, soll es in möglichst viele Umge- | ||
+ | bungen übertragen werden können. Alle Betriebssysteme sind dabei ein Muss. | ||
=== Benutzeroberfläche === | === Benutzeroberfläche === | ||
Zeile 228: | Zeile 294: | ||
* Baum automatisch | * Baum automatisch | ||
Start ist stets in der Tabellenansicht, erst wenn eine Tabelle geladen oder eingegeben ist, kann in eine Baumansicht gewechselt werden. Ansonsten kann stets zwischen den drei Ansichten umgeschalten werden. | Start ist stets in der Tabellenansicht, erst wenn eine Tabelle geladen oder eingegeben ist, kann in eine Baumansicht gewechselt werden. Ansonsten kann stets zwischen den drei Ansichten umgeschalten werden. | ||
+ | |||
+ | Falls keine korrekte Tabelle geladen ist, wird der Nutzer informiert und die Baumansichten sind automatisch deaktiviert und werden erst nach bearbeiten oder Laden einer richtigen Tabelle aktiviert. Dazu das folgende Zustandsdiagramm | ||
+ | [[Datei:Zustandsdiagramm_Aktivierung_der_Baumansichten.png]] | ||
==== Tabellenansicht ==== | ==== Tabellenansicht ==== | ||
* Eine Tabelle besteht aus maximal etwa 10 Attributen und 100 Objekten. Die Spalten repräsentieren dabei die Attribute und die Zeilen die Objekte / Datensätze. | * Eine Tabelle besteht aus maximal etwa 10 Attributen und 100 Objekten. Die Spalten repräsentieren dabei die Attribute und die Zeilen die Objekte / Datensätze. | ||
Zeile 247: | Zeile 316: | ||
=== Andere nicht-funktionale Anforderungen === | === Andere nicht-funktionale Anforderungen === | ||
+ | Da es sich um ein reines Studienprojekt handelt und keine Benutzerdaten aufgenommen werden müssen, brauchen keine besonderen Gesetze, Normen, Testate, etc. eingehalten werden. | ||
+ | Die einzige nicht-funktionale Anforderung ist die bereits erwähnte Plattformunabhängigkeit. | ||
== Systemmodelle == | == Systemmodelle == |