<br />
<b>Warning</b>:  preg_match(): Compilation failed: group name must start with a non-digit at offset 8 in <b>/www/htdocs/w0102873/mediawiki/includes/MagicWord.php</b> on line <b>739</b><br />
<br />
<b>Warning</b>:  preg_match(): Compilation failed: group name must start with a non-digit at offset 8 in <b>/www/htdocs/w0102873/mediawiki/includes/MagicWord.php</b> on line <b>739</b><br />
<br />
<b>Warning</b>:  preg_match(): Compilation failed: group name must start with a non-digit at offset 8 in <b>/www/htdocs/w0102873/mediawiki/includes/MagicWord.php</b> on line <b>739</b><br />
<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="https://www.p-servus.net/mediawiki/skins/common/feed.css?301"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
		<id>https://www.p-servus.net/mediawiki/index.php?feed=atom&amp;target=Chge&amp;title=Spezial%3ABeitr%C3%A4ge</id>
		<title>It2010-g1 - Benutzerbeiträge [de]</title>
		<link rel="self" type="application/atom+xml" href="https://www.p-servus.net/mediawiki/index.php?feed=atom&amp;target=Chge&amp;title=Spezial%3ABeitr%C3%A4ge"/>
		<link rel="alternate" type="text/html" href="https://www.p-servus.net/mediawiki/index.php?title=Spezial:Beitr%C3%A4ge/Chge"/>
		<updated>2026-08-15T14:19:43Z</updated>
		<subtitle>Aus It2010-g1</subtitle>
		<generator>MediaWiki 1.17.0</generator>

	<entry>
		<id>https://www.p-servus.net/mediawiki/index.php?title=Hauptseite</id>
		<title>Hauptseite</title>
		<link rel="alternate" type="text/html" href="https://www.p-servus.net/mediawiki/index.php?title=Hauptseite"/>
				<updated>2012-06-15T15:58:19Z</updated>
		
		<summary type="html">&lt;p&gt;Chge: /* Studienarbeiten */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Wiki-Logo.png|thumb|Das ist das Logo von unserer Wiki. ]]&lt;br /&gt;
== Software Engineering I ==&lt;br /&gt;
[[Datei:HWR-Chat-Logo_16x16.png|verweis=Projekt: HWR-Chat]] [[Projekt: HWR-Chat]]&lt;br /&gt;
&lt;br /&gt;
== Projektmanagement: Fachübergreifendes Labor ==&lt;br /&gt;
[[Datei:AntsOnCrack-Logo_16x16.png|verweis=Projekt: TSP-Ameisenalgorithmus]] [[Projekt: TSP-Ameisenalgorithmus]]&lt;br /&gt;
&lt;br /&gt;
== Software Engineering II ==&lt;br /&gt;
[[Datei:Optimaler_Entscheidungsbaum-Logo_16x16.png|verweis=Projekt: Optimaler Entscheidungsbaum]] [[Projekt: Optimaler Entscheidungsbaum]]&lt;br /&gt;
&lt;br /&gt;
== Studienarbeiten ==&lt;br /&gt;
[[Datei:Roboter_spielt_Mühle-Logo_16x.png|verweis=Projekt: Roboter spielt Mühle]] [[ Projekt: Roboter spielt Mühle]]&lt;br /&gt;
&lt;br /&gt;
==Mitwirkende==&lt;br /&gt;
[[Benutzer:Jonw|Jonathan Wiens]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:Bepf|Benjamin Pfeiffer]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:Nics|Nico Smeenk]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:Segr|Sebastian Große]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:Chge|Christian Gebauer]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:Maho|Martin Hoffmann]]&lt;br /&gt;
&lt;br /&gt;
==Code Conventions==&lt;br /&gt;
[[Allgemein: Code Conventions]]&lt;br /&gt;
&lt;br /&gt;
== Sonstiges ==&lt;br /&gt;
[[Allgemein: Nützliche Links|Nützliche Links]]&lt;br /&gt;
&lt;br /&gt;
[[FAQ: SWT richtig benutzen|Tutorial zum Programmieren und Bauen eines SWT-Programms mit Eclipse]]&lt;/div&gt;</summary>
		<author><name>Chge</name></author>	</entry>

	<entry>
		<id>https://www.p-servus.net/mediawiki/index.php?title=Hauptseite</id>
		<title>Hauptseite</title>
		<link rel="alternate" type="text/html" href="https://www.p-servus.net/mediawiki/index.php?title=Hauptseite"/>
				<updated>2012-06-15T15:57:20Z</updated>
		
		<summary type="html">&lt;p&gt;Chge: /* Studienarbeiten */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Wiki-Logo.png|thumb|Das ist das Logo von unserer Wiki. ]]&lt;br /&gt;
== Software Engineering I ==&lt;br /&gt;
[[Datei:HWR-Chat-Logo_16x16.png|verweis=Projekt: HWR-Chat]] [[Projekt: HWR-Chat]]&lt;br /&gt;
&lt;br /&gt;
== Projektmanagement: Fachübergreifendes Labor ==&lt;br /&gt;
[[Datei:AntsOnCrack-Logo_16x16.png|verweis=Projekt: TSP-Ameisenalgorithmus]] [[Projekt: TSP-Ameisenalgorithmus]]&lt;br /&gt;
&lt;br /&gt;
== Software Engineering II ==&lt;br /&gt;
[[Datei:Optimaler_Entscheidungsbaum-Logo_16x16.png|verweis=Projekt: Optimaler Entscheidungsbaum]] [[Projekt: Optimaler Entscheidungsbaum]]&lt;br /&gt;
&lt;br /&gt;
== Studienarbeiten ==&lt;br /&gt;
[[Datei:Roboter_spielt_Mühle-Logo_16x16.png|verweis=Projekt: Roboter spielt Mühle]] [[ Projekt: Roboter spielt Mühle]]&lt;br /&gt;
&lt;br /&gt;
==Mitwirkende==&lt;br /&gt;
[[Benutzer:Jonw|Jonathan Wiens]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:Bepf|Benjamin Pfeiffer]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:Nics|Nico Smeenk]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:Segr|Sebastian Große]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:Chge|Christian Gebauer]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:Maho|Martin Hoffmann]]&lt;br /&gt;
&lt;br /&gt;
==Code Conventions==&lt;br /&gt;
[[Allgemein: Code Conventions]]&lt;br /&gt;
&lt;br /&gt;
== Sonstiges ==&lt;br /&gt;
[[Allgemein: Nützliche Links|Nützliche Links]]&lt;br /&gt;
&lt;br /&gt;
[[FAQ: SWT richtig benutzen|Tutorial zum Programmieren und Bauen eines SWT-Programms mit Eclipse]]&lt;/div&gt;</summary>
		<author><name>Chge</name></author>	</entry>

	<entry>
		<id>https://www.p-servus.net/mediawiki/index.php?title=Hauptseite</id>
		<title>Hauptseite</title>
		<link rel="alternate" type="text/html" href="https://www.p-servus.net/mediawiki/index.php?title=Hauptseite"/>
				<updated>2012-06-12T20:07:32Z</updated>
		
		<summary type="html">&lt;p&gt;Chge: /* Studienarbeiten */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Wiki-Logo.png|thumb|Das ist das Logo von unserer Wiki. ]]&lt;br /&gt;
== Software Engineering I ==&lt;br /&gt;
[[Datei:HWR-Chat-Logo_16x16.png|verweis=Projekt: HWR-Chat]] [[Projekt: HWR-Chat]]&lt;br /&gt;
&lt;br /&gt;
== Projektmanagement: Fachübergreifendes Labor ==&lt;br /&gt;
[[Datei:AntsOnCrack-Logo_16x16.png|verweis=Projekt: TSP-Ameisenalgorithmus]] [[Projekt: TSP-Ameisenalgorithmus]]&lt;br /&gt;
&lt;br /&gt;
== Software Engineering II ==&lt;br /&gt;
[[Datei:Optimaler_Entscheidungsbaum-Logo_16x16.png|verweis=Projekt: Optimaler Entscheidungsbaum]] [[Projekt: Optimaler Entscheidungsbaum]]&lt;br /&gt;
&lt;br /&gt;
== Studienarbeiten ==&lt;br /&gt;
[[Datei:Roboter_spielt_Mühle-Logo_16x.png|verweis=Projekt: Roboter spielt Mühle]] [[ Projekt: Roboter spielt Mühle]]&lt;br /&gt;
&lt;br /&gt;
==Mitwirkende==&lt;br /&gt;
[[Benutzer:Jonw|Jonathan Wiens]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:Bepf|Benjamin Pfeiffer]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:Nics|Nico Smeenk]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:Segr|Sebastian Große]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:Chge|Christian Gebauer]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:Maho|Martin Hoffmann]]&lt;br /&gt;
&lt;br /&gt;
==Code Conventions==&lt;br /&gt;
[[Allgemein: Code Conventions]]&lt;br /&gt;
&lt;br /&gt;
== Sonstiges ==&lt;br /&gt;
[[Allgemein: Nützliche Links|Nützliche Links]]&lt;br /&gt;
&lt;br /&gt;
[[FAQ: SWT richtig benutzen|Tutorial zum Programmieren und Bauen eines SWT-Programms mit Eclipse]]&lt;/div&gt;</summary>
		<author><name>Chge</name></author>	</entry>

	<entry>
		<id>https://www.p-servus.net/mediawiki/index.php?title=Hauptseite</id>
		<title>Hauptseite</title>
		<link rel="alternate" type="text/html" href="https://www.p-servus.net/mediawiki/index.php?title=Hauptseite"/>
				<updated>2012-06-12T20:06:16Z</updated>
		
		<summary type="html">&lt;p&gt;Chge: /* Studienarbeiten */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Wiki-Logo.png|thumb|Das ist das Logo von unserer Wiki. ]]&lt;br /&gt;
== Software Engineering I ==&lt;br /&gt;
[[Datei:HWR-Chat-Logo_16x16.png|verweis=Projekt: HWR-Chat]] [[Projekt: HWR-Chat]]&lt;br /&gt;
&lt;br /&gt;
== Projektmanagement: Fachübergreifendes Labor ==&lt;br /&gt;
[[Datei:AntsOnCrack-Logo_16x16.png|verweis=Projekt: TSP-Ameisenalgorithmus]] [[Projekt: TSP-Ameisenalgorithmus]]&lt;br /&gt;
&lt;br /&gt;
== Software Engineering II ==&lt;br /&gt;
[[Datei:Optimaler_Entscheidungsbaum-Logo_16x16.png|verweis=Projekt: Optimaler Entscheidungsbaum]] [[Projekt: Optimaler Entscheidungsbaum]]&lt;br /&gt;
&lt;br /&gt;
== Studienarbeiten ==&lt;br /&gt;
[[Datei:Roboter_spielt_Mühle-Logo_16x.png|verweis=Projekt: Roboter spielt Mühle]][[Projekt: Roboter spielt Mühle]]&lt;br /&gt;
&lt;br /&gt;
==Mitwirkende==&lt;br /&gt;
[[Benutzer:Jonw|Jonathan Wiens]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:Bepf|Benjamin Pfeiffer]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:Nics|Nico Smeenk]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:Segr|Sebastian Große]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:Chge|Christian Gebauer]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:Maho|Martin Hoffmann]]&lt;br /&gt;
&lt;br /&gt;
==Code Conventions==&lt;br /&gt;
[[Allgemein: Code Conventions]]&lt;br /&gt;
&lt;br /&gt;
== Sonstiges ==&lt;br /&gt;
[[Allgemein: Nützliche Links|Nützliche Links]]&lt;br /&gt;
&lt;br /&gt;
[[FAQ: SWT richtig benutzen|Tutorial zum Programmieren und Bauen eines SWT-Programms mit Eclipse]]&lt;/div&gt;</summary>
		<author><name>Chge</name></author>	</entry>

	<entry>
		<id>https://www.p-servus.net/mediawiki/index.php?title=Datei:Roboter_spielt_M%C3%BChle-Logo_16x16.png</id>
		<title>Datei:Roboter spielt Mühle-Logo 16x16.png</title>
		<link rel="alternate" type="text/html" href="https://www.p-servus.net/mediawiki/index.php?title=Datei:Roboter_spielt_M%C3%BChle-Logo_16x16.png"/>
				<updated>2012-06-12T19:52:20Z</updated>
		
		<summary type="html">&lt;p&gt;Chge: hat eine neue Version von „Datei:Roboter spielt Mühle-Logo 16x16.png“ hochgeladen&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Chge</name></author>	</entry>

	<entry>
		<id>https://www.p-servus.net/mediawiki/index.php?title=Datei:Roboter_spielt_M%C3%BChle-Logo_16x16.png</id>
		<title>Datei:Roboter spielt Mühle-Logo 16x16.png</title>
		<link rel="alternate" type="text/html" href="https://www.p-servus.net/mediawiki/index.php?title=Datei:Roboter_spielt_M%C3%BChle-Logo_16x16.png"/>
				<updated>2012-06-12T19:50:23Z</updated>
		
		<summary type="html">&lt;p&gt;Chge: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Chge</name></author>	</entry>

	<entry>
		<id>https://www.p-servus.net/mediawiki/index.php?title=Hauptseite</id>
		<title>Hauptseite</title>
		<link rel="alternate" type="text/html" href="https://www.p-servus.net/mediawiki/index.php?title=Hauptseite"/>
				<updated>2012-06-12T19:47:55Z</updated>
		
		<summary type="html">&lt;p&gt;Chge: /* Studienarbeiten */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Wiki-Logo.png|thumb|Das ist das Logo von unserer Wiki. ]]&lt;br /&gt;
== Software Engineering I ==&lt;br /&gt;
[[Datei:HWR-Chat-Logo_16x16.png|verweis=Projekt: HWR-Chat]] [[Projekt: HWR-Chat]]&lt;br /&gt;
&lt;br /&gt;
== Projektmanagement: Fachübergreifendes Labor ==&lt;br /&gt;
[[Datei:AntsOnCrack-Logo_16x16.png|verweis=Projekt: TSP-Ameisenalgorithmus]] [[Projekt: TSP-Ameisenalgorithmus]]&lt;br /&gt;
&lt;br /&gt;
== Software Engineering II ==&lt;br /&gt;
[[Datei:Optimaler_Entscheidungsbaum-Logo_16x16.png|verweis=Projekt: Optimaler Entscheidungsbaum]] [[Projekt: Optimaler Entscheidungsbaum]]&lt;br /&gt;
&lt;br /&gt;
== Studienarbeiten ==&lt;br /&gt;
[[Datei:Roboter_spielt_Mühle-Logo_16x16.png|verweis=Projekt: Roboter spielt Mühle]][[Projekt: Roboter spielt Mühle]]&lt;br /&gt;
&lt;br /&gt;
==Mitwirkende==&lt;br /&gt;
[[Benutzer:Jonw|Jonathan Wiens]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:Bepf|Benjamin Pfeiffer]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:Nics|Nico Smeenk]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:Segr|Sebastian Große]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:Chge|Christian Gebauer]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:Maho|Martin Hoffmann]]&lt;br /&gt;
&lt;br /&gt;
==Code Conventions==&lt;br /&gt;
[[Allgemein: Code Conventions]]&lt;br /&gt;
&lt;br /&gt;
== Sonstiges ==&lt;br /&gt;
[[Allgemein: Nützliche Links|Nützliche Links]]&lt;br /&gt;
&lt;br /&gt;
[[FAQ: SWT richtig benutzen|Tutorial zum Programmieren und Bauen eines SWT-Programms mit Eclipse]]&lt;/div&gt;</summary>
		<author><name>Chge</name></author>	</entry>

	<entry>
		<id>https://www.p-servus.net/mediawiki/index.php?title=Datei:Roboter_spielt_M%C3%BChle-Logo.png</id>
		<title>Datei:Roboter spielt Mühle-Logo.png</title>
		<link rel="alternate" type="text/html" href="https://www.p-servus.net/mediawiki/index.php?title=Datei:Roboter_spielt_M%C3%BChle-Logo.png"/>
				<updated>2012-06-12T19:40:08Z</updated>
		
		<summary type="html">&lt;p&gt;Chge: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Chge</name></author>	</entry>

	<entry>
		<id>https://www.p-servus.net/mediawiki/index.php?title=Optimaler_Entscheidungsbaum:_Pflichtenheft</id>
		<title>Optimaler Entscheidungsbaum: Pflichtenheft</title>
		<link rel="alternate" type="text/html" href="https://www.p-servus.net/mediawiki/index.php?title=Optimaler_Entscheidungsbaum:_Pflichtenheft"/>
				<updated>2012-05-22T10:51:56Z</updated>
		
		<summary type="html">&lt;p&gt;Chge: /* Hardware */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Über ==&lt;br /&gt;
Projekt: Optimaler Entscheidungsbaum &amp;lt;br /&amp;gt;&lt;br /&gt;
Autoren: Christian Gebauer, Sebastian Große, Jonathan Wiens, Benjamin Pfeiffer, Nico Smeenk &amp;lt;br /&amp;gt;&lt;br /&gt;
Modul: Software-Engineering II &amp;lt;br /&amp;gt;&lt;br /&gt;
Studiengang: Informatik 2010 &amp;lt;br /&amp;gt;&lt;br /&gt;
Fachbereich: Fachbereich 2, Duales Studium Wirtschaft • Technik, HWR Berlin &amp;lt;br /&amp;gt;&lt;br /&gt;
Datum:&lt;br /&gt;
&lt;br /&gt;
== Vorwort ==&lt;br /&gt;
Dieses Pflichtenheft ist eine Vereinbarung zwischen der Dozentin Frau Prof. Dr. Monett Diaz als Auftraggeberin und der Gruppe 1 des Kurses &amp;quot;Software-Engineering II&amp;quot; aus dem Studiengang &amp;quot;Informatik 2010&amp;quot;. Die Vereinbarung enthält alle Anforderungen an ein zu erstellendes Chat-Programm für die Hochschule für Wirtschaft und Recht Berlin. Das Dokument dient zur Strukturierung und genaueren Einschätzung des zeitlichen Aufwandes des Projektes und der Priorisierung der einzelnen Module. Somit lässt sich auch einschätzen, ob und mit welchen Kosten das Projekt durchführbar ist.&lt;br /&gt;
=== Erwartete Leserschaft ===&lt;br /&gt;
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.&lt;br /&gt;
=== Versionsgeschichte des Dokumentes ===&lt;br /&gt;
Dies ist die erste Version des Pflichtenheftes, weitere Versionen sind noch nicht in Planung.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
=== Allgemeines ===&lt;br /&gt;
Ein Entscheidungsbaum ist ein speziell aufgebauter Baum aus der Graphentheorie. Im Gegensatz zu einem &amp;quot;normalen&amp;quot; Baum ist ein Entscheidungsbaum geordnet und gerichtet und dient dem Zweck Entscheidungsregeln darzustellen. Ein Entscheidungsbaum kann durch Algorithmen auf Basis von tabellarischen Daten erstellt werden. Aufgrund der Tatsache, dass diese Bäume Entscheidungsprobleme lösen  bzw. vereinfachen können, wird diese Methode in vielen Bereichen angewandt. Hauptsächlich benutzt, wird ein Entscheidungsbaum beim Data-Mining, also der umfassenden Theroie der Datenauswertung; aber auch in der Betriebswirtschaftslehre, um effektives Marketing zu betreiben, oder Investment-Geschäfte zu bewerten. Darüber hinaus gibt es viele denkbare Einsatzbereiche, da Entscheidungen fast überall getroffen werden müssen.&lt;br /&gt;
&lt;br /&gt;
Ein Entscheidungsbaum besteht aus Knoten und Blättern. Er muss einen Wurzelknoten besitzen und wird durch Kanten verbunden.&lt;br /&gt;
Ein Knoten repräsentiert ein(en) Attribut(-namen), Kanten die zulässigen Attributwerte und die Blätter zeigen die Attributwerte (meistens klassifiziert) des Zielattributs an.&lt;br /&gt;
&lt;br /&gt;
In diesem Pflichtenheft wird nun ein Programm beschrieben, dass einen Entscheidungsbaum auf Basis einer Tabelle konstruieren kann. Dieses Programm ist als Auftragsarbeit von Hr. Prof. Dr. Höhne und Fr. Prof. Dr. Monett-Diaz zu sehen, bestimmte Funtktionen und Kriterien sind bereits vorgegeben.&lt;br /&gt;
=== Abgrenzungen ===&lt;br /&gt;
==== Ausgangssituation ====&lt;br /&gt;
Im Auftrag von Hr. Prof. Dr. Höhne und Fr. Prof. Dr. Monett-Diaz wird ein Programm, im Rahmen des Moduls SWE-2, entwickelt, welches dazu dienen soll Entscheidungsbäume zu konstruieren und darzustellen. Als Datenbasis dienen Excel- und CSV-Dateien.&lt;br /&gt;
Mit Hilfe dieser Daten soll dann ein &amp;quot;optimaler Entscheidungsbaum&amp;quot; aufgebaut werden, wobei zu beachten ist, dass der Begriff &amp;quot;optimal&amp;quot; nur relativ gesehen werden kann, und abhängig vom gewählten Algorhitmus und der Art des Datenbestandes ist.&lt;br /&gt;
&lt;br /&gt;
=== Systemname ===&lt;br /&gt;
Aufgrund der Tatsache, dass ein Entscheidungsbaum nach bestimmten Regeln ''aufgebaut'' wird und der Anwender einen ''Lerneffekt'' aus diesem Baum ziehen kann, in dem Entscheidungen vereinfacht werden, wurde beschlossen das Projekt und das Programm &amp;quot;Baumschule - Optimale Entscheidungsbäume&amp;quot; zu nennen. &lt;br /&gt;
==== Allgemeine Systembeschreibung ====&lt;br /&gt;
Das System bzw. das Programm bietet hauptsächlich drei grobe Funtkionen an:&lt;br /&gt;
* Laden/Editieren eines Datenbestands durch eine Datei (Excel bzw. CSV)&lt;br /&gt;
* Erstellen eines Entscheidungsbaumes durch einen gegebenen Algorithmus, oder einer Nutzervorgabe&lt;br /&gt;
* Präsentation des Ergebnisses&lt;br /&gt;
&lt;br /&gt;
Diese 3 Hauptfunktionen lassen sich näher beschreiben:&lt;br /&gt;
* Es gibt eine graphische Benutzeroberfläche mit der der Endandwender alle Funktionen des Programms benutzen kann&lt;br /&gt;
* Es gibt eine Funktion zum Laden/Speichern einer Excel- oder CSV-Datei&lt;br /&gt;
* Geladene Tabellendaten können editiert werden.&lt;br /&gt;
* Ein Baum kann automatisch generiert werden, ein ZielAttribut kann vorher gewählt werden.&lt;br /&gt;
* Ein Baum kann teilweise manuell erstellt werden, in dem für jeden Knoten die nächste Attributebene selbst gewählt werden kann.&lt;br /&gt;
* Es können jederzeit detaillierte Informationen über einen Baum bzw. dessen Tabellendaten angezeigt werden.&lt;br /&gt;
&lt;br /&gt;
==== Vorteile und Nutzen ====&lt;br /&gt;
&lt;br /&gt;
Das System bietet die Bearbeitung eines Datenbestandes an und arbeitet nach dem Laden einer Datei formatunabhängig. Ist ein Datenbestand bearbeitet worden, ist dieser auch wieder exportierbar.&lt;br /&gt;
Die Oberfläche bietet die Möglichkeit einen, gemäß des Algorithmus, optimalen Baumes darzustellen. Die Stärke liegt hierbei einerseits auf der Präsentation und andererseits bei der leichten Editierbarkeit, denn der Baum kann einfach durch Mausklicks bearbeitet und untersucht werden. Ein manuelles zeichnen und berechnen des Baumes entfällt. &lt;br /&gt;
Gerade bei großen Daten ist ein Baum nur durch ein Programm wie dieses erstellbar. Arbeitet der Algorithmus fehlerfrei, kann ''immer wieder'' und ''reproduzierbar'' ein Baum aufgebaut werden.&lt;br /&gt;
&lt;br /&gt;
=== Überblick über den Rest des Dokuments ===&lt;br /&gt;
&lt;br /&gt;
Die nachfolgenden Abschnitte befassen sich detaillierter und gründlicher mit den Funktionen des Programms. Es werden Vereinbarungen festgelegt, welches Verhalten das Programm leisten kann und muss.&lt;br /&gt;
&lt;br /&gt;
== Fachbegriffe, Akronyme und Abkürzungen ==&lt;br /&gt;
&amp;lt;b&amp;gt;Dieser Teil soll die im Dokument verwendeten technischen Fachbergriffe festlegen. Dabei soll keine Erfahrung oder Fachwissen beim Leser vorausgesetzt werden.&amp;lt;/b&amp;gt;&lt;br /&gt;
=== Glossar ===&lt;br /&gt;
=== Akronyme ===&lt;br /&gt;
=== Abkürzungen ===&lt;br /&gt;
&lt;br /&gt;
== Zielbestimmungen ==&lt;br /&gt;
Die folgenden Ziele sind in 3 Kategorien (Muss-, Soll- , Kannkriterien) unterteilt. Durch diese Unterteilung wird eine Prioritätshierarchie geschaffen, wobei Musskriterien die höchste Priorität erhalten und entsprechend vorrangig abgearbeitet werden. &lt;br /&gt;
&lt;br /&gt;
=== Musskriterien ===&lt;br /&gt;
Die Muss-Kritierien ergeben sich größtenteils aus der Aufgabenbeschreibung von Hr. Höhne und Fr. Monett-Diaz und sollen hier abgekürzt wiedergegeben werden:&lt;br /&gt;
* Das Programm muss in der Lage sein mit einem Datenbestand von bis zu 10 Attributen und 100 Objekten arbeiten zu können.&lt;br /&gt;
* Das Programm muss mit Tabellen-Dateien umgehen können. (Laden/Speichern von Excel- und CSV-Dateien)&lt;br /&gt;
* Das Programm muss ein Bearbeiten der Tabellendaten zulassen.&lt;br /&gt;
* Es muss eine graphische Benutzeroberfläche geben.&lt;br /&gt;
* Das Zielattribut muss farblich hervorgehoben werden.&lt;br /&gt;
&lt;br /&gt;
* Das Programm muss eine Möglichkeit bieten den Baum, durch Auswahl des nächsten Attributs, teilweise manuell aufzubauen.&lt;br /&gt;
* Wenn der Baum interaktiv zusammengestellt wird, darf(muss) nur der oberste Knoten präsentiert werden.&lt;br /&gt;
* Bei der Präsentation des interaktiven Baums kann dieser durch ein Mausklick &amp;quot;untersucht&amp;quot; werden. Es wird bei einem Knoten eine Tabelle angezigt, die die Objekte anzeigt, die durch den Knoten repräsentiert werden.&lt;br /&gt;
* Es kann in der Tabelle ein Attribut untersucht werden, woraufhin die gewichtete Entropie, die sichbei Aufteilung nach diesem Attribut ergeben würde, angezeigt wird.&lt;br /&gt;
&lt;br /&gt;
* Das Programm muss anhand eines vorgegebenen Algorithmus (''Konzept der Entropie'') einen Entscheidungsbaum erstellen können.&lt;br /&gt;
* Bei der automatischen Erstellung wird ein Knoten der nur noch Objekte einer Klasse enthält nicht weiter aufgeteilt, selbiges gilt wenn der Knoten eine (einstellbare) Anzahl von Elementen enthält.&lt;br /&gt;
* Bei der Präsentation des autmatischen Baums kann dieser durch ein Mausklick &amp;quot;untersucht&amp;quot; werden. Es wird bei einem Knoten eine Tabelle angezigt, die die Objekte anzeigt, die durch den Knoten repräsentiert werden.&lt;br /&gt;
&lt;br /&gt;
* Bei der Präsentation des interaktiven und autmatischen Baums müssen die Kanten mit dem entsprechenden Attributewert angezeigt werden.&lt;br /&gt;
* Bei der Präsentation des interaktiven und automatischen Baums muss die Zahl der enthaltenen Objekte, die Zahl jeder Klasse und die Entropie in jedem Knoten angezeigt werden.&lt;br /&gt;
* Der Entscheidungsbaum muss, egal ob manuell oder autmoatisch erstellt, bei Änderungen des Datenbestandes aktualisiert werden.&lt;br /&gt;
&lt;br /&gt;
* Das Programm muss lauffähig sein und ausführbar vorliegen.&lt;br /&gt;
&lt;br /&gt;
=== Sollkriterien ===&lt;br /&gt;
* Das Programm soll an den wichtigen Stellen durchdachte Hilfebeschreibungen(ToolTips) anzeigen können.&lt;br /&gt;
* Das Programm soll für den Benutzer ein vollständiges Handbuch bereitstellen, dass jederzeit über das Menü aufgerufen werden kann.&lt;br /&gt;
* Das Programm soll bei bestimmten Fehlern oder unerlaubten Nutzeraktionen eine graphische Fehlermeldung anzeigen.&lt;br /&gt;
* Das Programm soll zum Nachverfolgen von Programm-Algorithmen und -Abläufen eine Log-Datei erstellen.&lt;br /&gt;
* Die Oberfläche soll für den Nutzer farblich und organisatorisch übersichtlich und leicht zu bedienen sein.&lt;br /&gt;
* Das Erstellen eines Baumes soll nicht länger als 5 Sekunden dauern. (Vorrausgesetzt das Datenlimit von 10*100 Attributwerten wird eingehalten)&lt;br /&gt;
* Die Oberfläche soll neben der einfachen Ansicht einen Präsentationsmodus bieten, in dem der Baum als Vollbild dargestellt wird.&lt;br /&gt;
* Für die Anzeige des Baumes soll eine Legende bereitgestellt werden, die den Aufbau eines dargestellten Baumes erklärt.&lt;br /&gt;
&lt;br /&gt;
=== Kannkriterien ===&lt;br /&gt;
* Das Programm kann die Möglichkeit bieten, über eine Konfigurationsschnittstelle verschiedene Programmparameter anzupassen.&lt;br /&gt;
* Für den Benutzer kann es eine grafische Möglichkeit geben die Konfigurationsschnittstelle zu nutzen.&lt;br /&gt;
* Der Nutzer kann die Möglichkeit erhalten den dynamisch erstellten Baum als xml-Datei zu speichern.&lt;br /&gt;
* Der Nutzer kann die Möglichkeit erhalten die abgespeicherte xml-Datei wieder zu laden; die Oberfläche stellt dann automatisch die Tabelle und die Bäume wieder her.&lt;br /&gt;
* Das Programm kann die Möglichkeit bieten den dynamischen und automatischen Baum als Bild-Datei(*.png ; *.jpg) abzuspeichern.&lt;br /&gt;
* Die Zeichenoberfläche, in dem der Baum (dynamisch oder manuell) präsentiert wird, kann durch einen Schieberegler heran- bzw. herausgezoomt werden.&lt;br /&gt;
&lt;br /&gt;
=== Abgrenzungskriterien ===&lt;br /&gt;
&lt;br /&gt;
* Die Software setzt eine installierte Version von Java voraus.&lt;br /&gt;
* Es gibt für jedes Betriebssystem (Windows, Linux, Mac) und dessen Ausprägung (x64, x32) jeweils eine Version.&lt;br /&gt;
* Die Software kann nur mit Datenformaten umgehen, die Excel-Konform sind- (bis 2003: .xls, ab 2007: .xlsx) oder dem CSV-Format entsprechen (Trennzeichen: &amp;quot;,&amp;quot; (Ausgesprochen: Komma)&lt;br /&gt;
* Die Software benutzt einen fest vorgegebenen Algorithmus (''Konzept der Entropie'').&lt;br /&gt;
* Die Tabelle kann maximal 10 Attribute und jeweils 100 Attributwerte enthalten und darf innerhalb der Tabellengrenzen keine leeren Zellenwerte (leere Strings) enthalten.&lt;br /&gt;
&lt;br /&gt;
== Systemeinsatz ==&lt;br /&gt;
=== Anwendungsbereiche === &lt;br /&gt;
Das Programm soll eingesetzt werden, um einen optimalen Entscheidungsbaum zu finden.&amp;lt;br&amp;gt;&lt;br /&gt;
Optimale Entscheidungsbäume werden benötigt, um aus einem gegebenen Datenbestand Voraussagen zum zukünftigen Verhalten treffen zu können.&amp;lt;br&amp;gt;&lt;br /&gt;
Speziell sollen diese optimalen Entscheidungsbäume mit der Software präsentiert werden können.&amp;lt;br&amp;gt;&lt;br /&gt;
In Vorlesungen an der Hochschule kann das Programm u.A. von Dozenten zur Visualisierung der Konzepte beim Data-Mining eingesetzt werden.&lt;br /&gt;
&lt;br /&gt;
=== Zielgruppen ===&lt;br /&gt;
Als Zielgruppe des Programmes sind in erster Linie die Auftraggeber Hr. Prof. Dr. Höhne und Fr. Prof. Dr. Monett-Diaz zu sehen.&amp;lt;br&amp;gt; Darauf folgend voraussichtlich aber auch die Dozenten und Studenten der HWR Berlin, speziell vorrangig aus der Fachrichtung Informatik.&lt;br /&gt;
&lt;br /&gt;
=== Betriebsbedingungen ===&lt;br /&gt;
Folgende Bedingungen sind für den Betrieb des Programmes relevant:&lt;br /&gt;
*Der Nutzer ist an einem aktuellen PC mit Windows-Betriebssystem (alternativ auch Linux oder Mac) angemeldet.&lt;br /&gt;
*Auf dem System ist eine Java-Umgebung vorhanden.&lt;br /&gt;
*Optimalerweise hat der PC ein für Präsentationen geeignetes Ausgabegerät (z.B. Beamer, genügend großer Monitor).&lt;br /&gt;
&lt;br /&gt;
== Technische Systemumgebung ==&lt;br /&gt;
=== Software === &lt;br /&gt;
*Das Programm soll auf allen gängigen Windows-Betriebssystemen lauffähig sein.&lt;br /&gt;
*Es soll eine Version für 32- und eine für 64 Bit Systeme geben.&lt;br /&gt;
*Es sollen weitere Betriebssysteme (Linux, Mac) unterstützt werden (optional).&lt;br /&gt;
*Eine Java-Umgebung muss auf den Zielsystemen vorhanden sein.&lt;br /&gt;
*Das Programm soll ohne Installation lauffähig sein.&lt;br /&gt;
&lt;br /&gt;
=== Hardware === &lt;br /&gt;
*Es wird ein aktuell üblicher Standard-PC vorausgesetzt (auf dem Windows mit Standardsoftware lauffähig ist).&lt;br /&gt;
*Für ein flüssiges Abarbeiten und Darstellen der relevanten Inhalte ist in erster Linie ein ausreichend dimensionierter Arbeitsspeicher relevant , hier sollten mindestens 2 GB verfügbar sein.&lt;br /&gt;
*Es wird ein präsentationsfähiges Ausgabegerät (großer Monitor, Beamer, etc.) benötigt, da das Programm u.A. für Präsentationen eingesetzt werden soll.&lt;br /&gt;
&lt;br /&gt;
=== Orgware ===&lt;br /&gt;
*Es wird keine explizite Orgware benötigt. Der Anwender kann alle relevanten Einstellungen selbst direkt in der Software bzw. in der Konfigurations-Datei vornehmen.&lt;br /&gt;
&lt;br /&gt;
== Systemübersicht und -architektur ==&lt;br /&gt;
=== Übersicht über das System === &lt;br /&gt;
=== Systemarchitektur === &lt;br /&gt;
&amp;lt;b&amp;gt;Dieses Kapitel sollte einen groben Überblick über die erwartete Systemarchitektur geben, der die Verteilung der Funktionen auf die Systemmodule zeigt. Wiederverwendete Komponenten sollten gekennzeichnet werden.&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Schnittstellen des Systems ===&lt;br /&gt;
&lt;br /&gt;
== Systemanforderungen ==&lt;br /&gt;
Das Programm soll den Argorithmus, einen optimalen Entscheidungsbaum zu finden, demonstrieren.&lt;br /&gt;
=== Funktionale Anforderungen ===&lt;br /&gt;
* Das Programm soll unter allen gängigen Windows-Betriebssystemen ohne Installation lauffähig sein (Java darf vorrausgesetzt werden, sonst nichts spezielles).&lt;br /&gt;
==== Tabellenansicht ====&lt;br /&gt;
* Einlesen / Speichern einer Tabelle im .csv-Format (wobei das Trennzeichen ein Komma ist).&lt;br /&gt;
* Alle Attribute sind Zeichenketten.&lt;br /&gt;
* Eingeben / Editieren einer Tabelle muss möglich sein.&lt;br /&gt;
* Import und Export von Excel-Dateien.&lt;br /&gt;
&lt;br /&gt;
==== Baum automatisch ====&lt;br /&gt;
* Der optimale Entscheidungsbaum wird mit dem Algorithmus, der sukzessiv für jeden Knoten jeweils das Attribut mit der minimalen gewichteten Entropie auswählt, erzeugt und dargestellt.&lt;br /&gt;
* Wenn ein Knoten nur noch Objekte einer Klasse enthält, wird dieser nicht weiter aufgeteilt.&lt;br /&gt;
* Wenn ein Knoten nur noch eine bestimmte Anzahl (einstellbar - Voreinstellung 1) von Elementen enthält, wird nicht weiter aufgeteilt.&lt;br /&gt;
&lt;br /&gt;
=== Qualitätsanforderungen ===&lt;br /&gt;
=== Benutzeroberfläche ===&lt;br /&gt;
Weil das Programm auch für Präsentationszwecke eingesetzt werden soll, ist insbesondere auf eine entsprechende Gestaltung der Oberfläche (aussagekräftige Verwendung von Farben, ausreichend großer Schriftgrad, etc.) zu achten.&amp;lt;br&amp;gt;&lt;br /&gt;
Im Programm kann zwischen drei verschiedenen Ansichten hin- und hergeschalten werden, von denen stets genau eine sichtbar ist:&lt;br /&gt;
* Tabellenansicht&lt;br /&gt;
* Baum interaktiv&lt;br /&gt;
* Baum automatisch&lt;br /&gt;
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.&lt;br /&gt;
==== Tabellenansicht ====&lt;br /&gt;
* 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.&lt;br /&gt;
* (Farbliche) Markierung des Zielattributs.&lt;br /&gt;
&lt;br /&gt;
==== Baum interaktiv ====&lt;br /&gt;
* Zu Beginn wird nur der oberste Knoten (also der, der allen Objekten in der Tabelle entspricht) dargestellt.&lt;br /&gt;
* Das gilt ebenso, wenn in der Tabellenansicht ein Attribut hinzugefügt oder gelöscht oder das Zielattribut geändert wird.&lt;br /&gt;
* In jedem Knoten ist die Zahl der enthaltenden Objekte, die Zahl der Objekte jeder Klasse und die Entropie angegeben.&lt;br /&gt;
* Die Kanten sind mit dem entsprechenden Attributwert markiert.&lt;br /&gt;
* Bei Identifikation eines Knotens des Baumes wird eine Tabelle mit den Objekten, die von diesem Knoten repräsentiert werden, dargestellt.&lt;br /&gt;
* Wird in dieser Tabelle ein Attribut identifiziert, wird die gewichtete Entropie, die sich bei Aufteilung nach diesem Attribut ergeben würde, ausgegeben.&lt;br /&gt;
* In dieser Tabelle kann ein Attribut selektiert werden, so dass entsprechend den Werten dieses Attributes Unterknoten entstehen. Die Tabelle verschwindet. Hatte der Knoten schon Unterknoten, verschwinden diese natürlich ebenfalls.&lt;br /&gt;
&lt;br /&gt;
==== Baum automatisch ====&lt;br /&gt;
* In jedem Knoten ist die Zahl der enthaltenden Objekte, die Zahl der Objekte jeder Klasse und die Entropie automatisch dargestellt.&lt;br /&gt;
* Die Kanten sind mit dem entsprechenden Attributwert markiert.&lt;br /&gt;
* Bei Identifikation eines Knotens des Baumes wird eine Tabelle mit den Objekten, die von diesem Knoten repräsentiert werden, dargestellt.&lt;br /&gt;
&lt;br /&gt;
=== Andere nicht-funktionale Anforderungen ===&lt;br /&gt;
&lt;br /&gt;
== Systemmodelle ==&lt;br /&gt;
&amp;lt;b&amp;gt;Dieses Kapitel sollte eines oder mehrere Systemmodelle festlegen, die die Beziehung zwischen den Systemkomponenten und dem System und seiner Umgebung aufzeigen. Dies können Objekt-, Datenfluss- und semantische Datenmodelle sein.&amp;lt;/b&amp;gt;&lt;br /&gt;
=== Datenmodelle === &lt;br /&gt;
=== Andere Modelle === &lt;br /&gt;
&lt;br /&gt;
== Anforderungen an die Entwicklungsumgebung ==&lt;br /&gt;
Die hier genannten Aspekte werden für die qualitative Entwicklung der Software benötigt.&lt;br /&gt;
=== Software ===&lt;br /&gt;
Das Betriebssystem spielt keine Rolle, da Eclipse und Java Plattformunabhängig ist.&lt;br /&gt;
*Die Software &amp;quot;Eclipse&amp;quot; zur Programmierung mit Java wird benötigt. Hinzu kommt das Eclipse PlugIn &amp;quot;subversive&amp;quot; zur Handhabung der Versionsverwaltung&lt;br /&gt;
*Eine aktuelle Java-Developer-Version (jdk) wird zur Kompilierung benötigt. Außerdem werden folgende externe Bibliotheken benötigt:&lt;br /&gt;
** &amp;quot;dom4j&amp;quot;, &amp;quot;poi&amp;quot; zur Konvertierung und Erstellung von Excel-Spreadsheet Tabellen&lt;br /&gt;
** &amp;quot;swt&amp;quot;, das genutzte Framework zur Erstellung der grafischen Benutzeroberfläche&lt;br /&gt;
** &amp;quot;xmlbeans&amp;quot; zur Erstellung und Lesen von XML-Dateien&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
Für die verwendete Hardware sollten mindestens 2 GB Arbeitsspeicher verfügbar sein, um ein flüssiges Abarbeiten und Darstellen der relevanten Inhalte zu gewährleisten.&lt;br /&gt;
&lt;br /&gt;
=== Orgware ===&lt;br /&gt;
Vorrangig geschah die Kommunikation im Team über E-Mail Nachrichten und Kurzmitteilungen. Hier wurde beispielsweise Skype intensiv genutzt.&lt;br /&gt;
&lt;br /&gt;
== Ergänzungen ==&lt;br /&gt;
&lt;br /&gt;
== Anhang ==&lt;/div&gt;</summary>
		<author><name>Chge</name></author>	</entry>

	<entry>
		<id>https://www.p-servus.net/mediawiki/index.php?title=Optimaler_Entscheidungsbaum:_Pflichtenheft</id>
		<title>Optimaler Entscheidungsbaum: Pflichtenheft</title>
		<link rel="alternate" type="text/html" href="https://www.p-servus.net/mediawiki/index.php?title=Optimaler_Entscheidungsbaum:_Pflichtenheft"/>
				<updated>2012-05-22T10:35:40Z</updated>
		
		<summary type="html">&lt;p&gt;Chge: /* Anwendungsbereiche */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Über ==&lt;br /&gt;
Projekt: Optimaler Entscheidungsbaum &amp;lt;br /&amp;gt;&lt;br /&gt;
Autoren: Christian Gebauer, Sebastian Große, Jonathan Wiens, Benjamin Pfeiffer, Nico Smeenk &amp;lt;br /&amp;gt;&lt;br /&gt;
Modul: Software-Engineering II &amp;lt;br /&amp;gt;&lt;br /&gt;
Studiengang: Informatik 2010 &amp;lt;br /&amp;gt;&lt;br /&gt;
Fachbereich: Fachbereich 2, Duales Studium Wirtschaft • Technik, HWR Berlin &amp;lt;br /&amp;gt;&lt;br /&gt;
Datum:&lt;br /&gt;
&lt;br /&gt;
== Vorwort ==&lt;br /&gt;
Dieses Pflichtenheft ist eine Vereinbarung zwischen der Dozentin Frau Prof. Dr. Monett Diaz als Auftraggeberin und der Gruppe 1 des Kurses &amp;quot;Software-Engineering II&amp;quot; aus dem Studiengang &amp;quot;Informatik 2010&amp;quot;. Die Vereinbarung enthält alle Anforderungen an ein zu erstellendes Chat-Programm für die Hochschule für Wirtschaft und Recht Berlin. Das Dokument dient zur Strukturierung und genaueren Einschätzung des zeitlichen Aufwandes des Projektes und der Priorisierung der einzelnen Module. Somit lässt sich auch einschätzen, ob und mit welchen Kosten das Projekt durchführbar ist.&lt;br /&gt;
=== Erwartete Leserschaft ===&lt;br /&gt;
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.&lt;br /&gt;
=== Versionsgeschichte des Dokumentes ===&lt;br /&gt;
Dies ist die erste Version des Pflichtenheftes, weitere Versionen sind noch nicht in Planung.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
=== Allgemeines ===&lt;br /&gt;
Ein Entscheidungsbaum ist ein speziell aufgebauter Baum aus der Graphentheorie. Im Gegensatz zu einem &amp;quot;normalen&amp;quot; Baum ist ein Entscheidungsbaum geordnet und gerichtet und dient dem Zweck Entscheidungsregeln darzustellen. Ein Entscheidungsbaum kann durch Algorithmen auf Basis von tabellarischen Daten erstellt werden. Aufgrund der Tatsache, dass diese Bäume Entscheidungsprobleme lösen  bzw. vereinfachen können, wird diese Methode in vielen Bereichen angewandt. Hauptsächlich benutzt, wird ein Entscheidungsbaum beim Data-Mining, also der umfassenden Theroie der Datenauswertung; aber auch in der Betriebswirtschaftslehre, um effektives Marketing zu betreiben, oder Investment-Geschäfte zu bewerten. Darüber hinaus gibt es viele denkbare Einsatzbereiche, da Entscheidungen fast überall getroffen werden müssen.&lt;br /&gt;
&lt;br /&gt;
Ein Entscheidungsbaum besteht aus Knoten und Blättern. Er muss einen Wurzelknoten besitzen und wird durch Kanten verbunden.&lt;br /&gt;
Ein Knoten repräsentiert ein(en) Attribut(-namen), Kanten die zulässigen Attributwerte und die Blätter zeigen die Attributwerte (meistens klassifiziert) des Zielattributs an.&lt;br /&gt;
&lt;br /&gt;
In diesem Pflichtenheft wird nun ein Programm beschrieben, dass einen Entscheidungsbaum auf Basis einer Tabelle konstruieren kann. Dieses Programm ist als Auftragsarbeit von Hr. Prof. Dr. Höhne und Fr. Prof. Dr. Monett-Diaz zu sehen, bestimmte Funtktionen und Kriterien sind bereits vorgegeben.&lt;br /&gt;
=== Abgrenzungen ===&lt;br /&gt;
==== Ausgangssituation ====&lt;br /&gt;
Im Auftrag von Hr. Prof. Dr. Höhne und Fr. Prof. Dr. Monett-Diaz wird ein Programm, im Rahmen des Moduls SWE-2, entwickelt, welches dazu dienen soll Entscheidungsbäume zu konstruieren und darzustellen. Als Datenbasis dienen Excel- und CSV-Dateien.&lt;br /&gt;
Mit Hilfe dieser Daten soll dann ein &amp;quot;optimaler Entscheidungsbaum&amp;quot; aufgebaut werden, wobei zu beachten ist, dass der Begriff &amp;quot;optimal&amp;quot; nur relativ gesehen werden kann, und abhängig vom gewählten Algorhitmus und der Art des Datenbestandes ist.&lt;br /&gt;
&lt;br /&gt;
=== Systemname ===&lt;br /&gt;
Aufgrund der Tatsache, dass ein Entscheidungsbaum nach bestimmten Regeln ''aufgebaut'' wird und der Anwender einen ''Lerneffekt'' aus diesem Baum ziehen kann, in dem Entscheidungen vereinfacht werden, wurde beschlossen das Projekt und das Programm &amp;quot;Baumschule - Optimale Entscheidungsbäume&amp;quot; zu nennen. &lt;br /&gt;
==== Allgemeine Systembeschreibung ====&lt;br /&gt;
Das System bzw. das Programm bietet hauptsächlich drei grobe Funtkionen an:&lt;br /&gt;
* Laden/Editieren eines Datenbestands durch eine Datei (Excel bzw. CSV)&lt;br /&gt;
* Erstellen eines Entscheidungsbaumes durch einen gegebenen Algorithmus, oder einer Nutzervorgabe&lt;br /&gt;
* Präsentation des Ergebnisses&lt;br /&gt;
&lt;br /&gt;
Diese 3 Hauptfunktionen lassen sich näher beschreiben:&lt;br /&gt;
* Es gibt eine graphische Benutzeroberfläche mit der der Endandwender alle Funktionen des Programms benutzen kann&lt;br /&gt;
* Es gibt eine Funktion zum Laden/Speichern einer Excel- oder CSV-Datei&lt;br /&gt;
* Geladene Tabellendaten können editiert werden.&lt;br /&gt;
* Ein Baum kann automatisch generiert werden, ein ZielAttribut kann vorher gewählt werden.&lt;br /&gt;
* Ein Baum kann teilweise manuell erstellt werden, in dem für jeden Knoten die nächste Attributebene selbst gewählt werden kann.&lt;br /&gt;
* Es können jederzeit detaillierte Informationen über einen Baum bzw. dessen Tabellendaten angezeigt werden.&lt;br /&gt;
&lt;br /&gt;
==== Vorteile und Nutzen ====&lt;br /&gt;
&lt;br /&gt;
Das System bietet die Bearbeitung eines Datenbestandes an und arbeitet nach dem Laden einer Datei formatunabhängig. Ist ein Datenbestand bearbeitet worden, ist dieser auch wieder exportierbar.&lt;br /&gt;
Die Oberfläche bietet die Möglichkeit einen, gemäß des Algorithmus, optimalen Baumes darzustellen. Die Stärke liegt hierbei einerseits auf der Präsentation und andererseits bei der leichten Editierbarkeit, denn der Baum kann einfach durch Mausklicks bearbeitet und untersucht werden. Ein manuelles zeichnen und berechnen des Baumes entfällt. &lt;br /&gt;
Gerade bei großen Daten ist ein Baum nur durch ein Programm wie dieses erstellbar. Arbeitet der Algorithmus fehlerfrei, kann ''immer wieder'' und ''reproduzierbar'' ein Baum aufgebaut werden.&lt;br /&gt;
&lt;br /&gt;
=== Überblick über den Rest des Dokuments ===&lt;br /&gt;
&lt;br /&gt;
Die nachfolgenden Abschnitte befassen sich detaillierter und gründlicher mit den Funktionen des Programms. Es werden Vereinbarungen festgelegt, welches Verhalten das Programm leisten kann und muss.&lt;br /&gt;
&lt;br /&gt;
== Fachbegriffe, Akronyme und Abkürzungen ==&lt;br /&gt;
&amp;lt;b&amp;gt;Dieser Teil soll die im Dokument verwendeten technischen Fachbergriffe festlegen. Dabei soll keine Erfahrung oder Fachwissen beim Leser vorausgesetzt werden.&amp;lt;/b&amp;gt;&lt;br /&gt;
=== Glossar ===&lt;br /&gt;
=== Akronyme ===&lt;br /&gt;
=== Abkürzungen ===&lt;br /&gt;
&lt;br /&gt;
== Zielbestimmungen ==&lt;br /&gt;
Die folgenden Ziele sind in 3 Kategorien (Muss-, Soll- , Kannkriterien) unterteilt. Durch diese Unterteilung wird eine Prioritätshierarchie geschaffen, wobei Musskriterien die höchste Priorität erhalten und entsprechend vorrangig abgearbeitet werden. &lt;br /&gt;
&lt;br /&gt;
=== Musskriterien ===&lt;br /&gt;
Die Muss-Kritierien ergeben sich größtenteils aus der Aufgabenbeschreibung von Hr. Höhne und Fr. Monett-Diaz und sollen hier abgekürzt wiedergegeben werden:&lt;br /&gt;
* Das Programm muss in der Lage sein mit einem Datenbestand von bis zu 10 Attributen und 100 Objekten arbeiten zu können.&lt;br /&gt;
* Das Programm muss mit Tabellen-Dateien umgehen können. (Laden/Speichern von Excel- und CSV-Dateien)&lt;br /&gt;
* Das Programm muss ein Bearbeiten der Tabellendaten zulassen.&lt;br /&gt;
* Es muss eine graphische Benutzeroberfläche geben.&lt;br /&gt;
* Das Zielattribut muss farblich hervorgehoben werden.&lt;br /&gt;
&lt;br /&gt;
* Das Programm muss eine Möglichkeit bieten den Baum, durch Auswahl des nächsten Attributs, teilweise manuell aufzubauen.&lt;br /&gt;
* Wenn der Baum interaktiv zusammengestellt wird, darf(muss) nur der oberste Knoten präsentiert werden.&lt;br /&gt;
* Bei der Präsentation des interaktiven Baums kann dieser durch ein Mausklick &amp;quot;untersucht&amp;quot; werden. Es wird bei einem Knoten eine Tabelle angezigt, die die Objekte anzeigt, die durch den Knoten repräsentiert werden.&lt;br /&gt;
* Es kann in der Tabelle ein Attribut untersucht werden, woraufhin die gewichtete Entropie, die sichbei Aufteilung nach diesem Attribut ergeben würde, angezeigt wird.&lt;br /&gt;
&lt;br /&gt;
* Das Programm muss anhand eines vorgegebenen Algorithmus (''Konzept der Entropie'') einen Entscheidungsbaum erstellen können.&lt;br /&gt;
* Bei der automatischen Erstellung wird ein Knoten der nur noch Objekte einer Klasse enthält nicht weiter aufgeteilt, selbiges gilt wenn der Knoten eine (einstellbare) Anzahl von Elementen enthält.&lt;br /&gt;
* Bei der Präsentation des autmatischen Baums kann dieser durch ein Mausklick &amp;quot;untersucht&amp;quot; werden. Es wird bei einem Knoten eine Tabelle angezigt, die die Objekte anzeigt, die durch den Knoten repräsentiert werden.&lt;br /&gt;
&lt;br /&gt;
* Bei der Präsentation des interaktiven und autmatischen Baums müssen die Kanten mit dem entsprechenden Attributewert angezeigt werden.&lt;br /&gt;
* Bei der Präsentation des interaktiven und automatischen Baums muss die Zahl der enthaltenen Objekte, die Zahl jeder Klasse und die Entropie in jedem Knoten angezeigt werden.&lt;br /&gt;
* Der Entscheidungsbaum muss, egal ob manuell oder autmoatisch erstellt, bei Änderungen des Datenbestandes aktualisiert werden.&lt;br /&gt;
&lt;br /&gt;
* Das Programm muss lauffähig sein und ausführbar vorliegen.&lt;br /&gt;
&lt;br /&gt;
=== Sollkriterien ===&lt;br /&gt;
* Das Programm soll an den wichtigen Stellen durchdachte Hilfebeschreibungen(ToolTips) anzeigen können.&lt;br /&gt;
* Das Programm soll für den Benutzer ein vollständiges Handbuch bereitstellen, dass jederzeit über das Menü aufgerufen werden kann.&lt;br /&gt;
* Das Programm soll bei bestimmten Fehlern oder unerlaubten Nutzeraktionen eine graphische Fehlermeldung anzeigen.&lt;br /&gt;
* Das Programm soll zum Nachverfolgen von Programm-Algorithmen und -Abläufen eine Log-Datei erstellen.&lt;br /&gt;
* Die Oberfläche soll für den Nutzer farblich und organisatorisch übersichtlich und leicht zu bedienen sein.&lt;br /&gt;
* Das Erstellen eines Baumes soll nicht länger als 5 Sekunden dauern. (Vorrausgesetzt das Datenlimit von 10*100 Attributwerten wird eingehalten)&lt;br /&gt;
* Die Oberfläche soll neben der einfachen Ansicht einen Präsentationsmodus bieten, in dem der Baum als Vollbild dargestellt wird.&lt;br /&gt;
* Für die Anzeige des Baumes soll eine Legende bereitgestellt werden, die den Aufbau eines dargestellten Baumes erklärt.&lt;br /&gt;
&lt;br /&gt;
=== Kannkriterien ===&lt;br /&gt;
* Das Programm kann die Möglichkeit bieten, über eine Konfigurationsschnittstelle verschiedene Programmparameter anzupassen.&lt;br /&gt;
* Für den Benutzer kann es eine grafische Möglichkeit geben die Konfigurationsschnittstelle zu nutzen.&lt;br /&gt;
* Der Nutzer kann die Möglichkeit erhalten den dynamisch erstellten Baum als xml-Datei zu speichern.&lt;br /&gt;
* Der Nutzer kann die Möglichkeit erhalten die abgespeicherte xml-Datei wieder zu laden; die Oberfläche stellt dann automatisch die Tabelle und die Bäume wieder her.&lt;br /&gt;
* Das Programm kann die Möglichkeit bieten den dynamischen und automatischen Baum als Bild-Datei(*.png ; *.jpg) abzuspeichern.&lt;br /&gt;
* Die Zeichenoberfläche, in dem der Baum (dynamisch oder manuell) präsentiert wird, kann durch einen Schieberegler heran- bzw. herausgezoomt werden.&lt;br /&gt;
&lt;br /&gt;
=== Abgrenzungskriterien ===&lt;br /&gt;
&lt;br /&gt;
* Die Software setzt eine installierte Version von Java voraus.&lt;br /&gt;
* Es gibt für jedes Betriebssystem (Windows, Linux, Mac) und dessen Ausprägung (x64, x32) jeweils eine Version.&lt;br /&gt;
* Die Software kann nur mit Datenformaten umgehen, die Excel-Konform sind- (bis 2003: .xls, ab 2007: .xlsx) oder dem CSV-Format entsprechen (Trennzeichen: &amp;quot;,&amp;quot; (Ausgesprochen: Komma)&lt;br /&gt;
* Die Software benutzt einen fest vorgegebenen Algorithmus (''Konzept der Entropie'').&lt;br /&gt;
* Die Tabelle kann maximal 10 Attribute und jeweils 100 Attributwerte enthalten und darf innerhalb der Tabellengrenzen keine leeren Zellenwerte (leere Strings) enthalten.&lt;br /&gt;
&lt;br /&gt;
== Systemeinsatz ==&lt;br /&gt;
=== Anwendungsbereiche === &lt;br /&gt;
Das Programm soll eingesetzt werden, um einen optimalen Entscheidungsbaum zu finden.&amp;lt;br&amp;gt;&lt;br /&gt;
Optimale Entscheidungsbäume werden benötigt, um aus einem gegebenen Datenbestand Voraussagen zum zukünftigen Verhalten treffen zu können.&amp;lt;br&amp;gt;&lt;br /&gt;
Speziell sollen diese optimalen Entscheidungsbäume mit der Software präsentiert werden können.&amp;lt;br&amp;gt;&lt;br /&gt;
In Vorlesungen an der Hochschule kann das Programm u.A. von Dozenten zur Visualisierung der Konzepte beim Data-Mining eingesetzt werden.&lt;br /&gt;
&lt;br /&gt;
=== Zielgruppen ===&lt;br /&gt;
Als Zielgruppe des Programmes sind in erster Linie die Auftraggeber Hr. Prof. Dr. Höhne und Fr. Prof. Dr. Monett-Diaz zu sehen.&amp;lt;br&amp;gt; Darauf folgend voraussichtlich aber auch die Dozenten und Studenten der HWR Berlin, speziell vorrangig aus der Fachrichtung Informatik.&lt;br /&gt;
&lt;br /&gt;
=== Betriebsbedingungen ===&lt;br /&gt;
Folgende Bedingungen sind für den Betrieb des Programmes relevant:&lt;br /&gt;
*Der Nutzer ist an einem aktuellen PC mit Windows-Betriebssystem (alternativ auch Linux oder Mac) angemeldet.&lt;br /&gt;
*Auf dem System ist eine Java-Umgebung vorhanden.&lt;br /&gt;
*Optimalerweise hat der PC ein für Präsentationen geeignetes Ausgabegerät (z.B. Beamer, genügend großer Monitor).&lt;br /&gt;
&lt;br /&gt;
== Technische Systemumgebung ==&lt;br /&gt;
=== Software === &lt;br /&gt;
*Das Programm soll auf allen gängigen Windows-Betriebssystemen lauffähig sein.&lt;br /&gt;
*Es soll eine Version für 32- und eine für 64 Bit Systeme geben.&lt;br /&gt;
*Es sollen weitere Betriebssysteme (Linux, Mac) unterstützt werden (optional).&lt;br /&gt;
*Eine Java-Umgebung muss auf den Zielsystemen vorhanden sein.&lt;br /&gt;
*Das Programm soll ohne Installation lauffähig sein.&lt;br /&gt;
&lt;br /&gt;
=== Hardware === &lt;br /&gt;
*Es wird ein aktuell üblicher Standard-PC vorausgesetzt (auf dem Windows mit Standardsoftware lauffähig ist).&lt;br /&gt;
*Es wird ein präsentationsfähiges Ausgabegerät (großer Monitor, Beamer, etc.) benötigt, da das Programm u.A. für Präsentationen eingesetzt werden soll.&lt;br /&gt;
&lt;br /&gt;
=== Orgware ===&lt;br /&gt;
*Es wird keine explizite Orgware benötigt. Der Anwender kann alle relevanten Einstellungen selbst direkt in der Software bzw. in der Konfigurations-Datei vornehmen.&lt;br /&gt;
&lt;br /&gt;
== Systemübersicht und -architektur ==&lt;br /&gt;
=== Übersicht über das System === &lt;br /&gt;
=== Systemarchitektur === &lt;br /&gt;
&amp;lt;b&amp;gt;Dieses Kapitel sollte einen groben Überblick über die erwartete Systemarchitektur geben, der die Verteilung der Funktionen auf die Systemmodule zeigt. Wiederverwendete Komponenten sollten gekennzeichnet werden.&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Schnittstellen des Systems ===&lt;br /&gt;
&lt;br /&gt;
== Systemanforderungen ==&lt;br /&gt;
Das Programm soll den Argorithmus, einen optimalen Entscheidungsbaum zu finden, demonstrieren.&lt;br /&gt;
=== Funktionale Anforderungen ===&lt;br /&gt;
* Das Programm soll unter allen gängigen Windows-Betriebssystemen ohne Installation lauffähig sein (Java darf vorrausgesetzt werden, sonst nichts spezielles).&lt;br /&gt;
==== Tabellenansicht ====&lt;br /&gt;
* Einlesen / Speichern einer Tabelle im .csv-Format (wobei das Trennzeichen ein Komma ist).&lt;br /&gt;
* Alle Attribute sind Zeichenketten.&lt;br /&gt;
* Eingeben / Editieren einer Tabelle muss möglich sein.&lt;br /&gt;
* Import und Export von Excel-Dateien.&lt;br /&gt;
&lt;br /&gt;
==== Baum automatisch ====&lt;br /&gt;
* Der optimale Entscheidungsbaum wird mit dem Algorithmus, der sukzessiv für jeden Knoten jeweils das Attribut mit der minimalen gewichteten Entropie auswählt, erzeugt und dargestellt.&lt;br /&gt;
* Wenn ein Knoten nur noch Objekte einer Klasse enthält, wird dieser nicht weiter aufgeteilt.&lt;br /&gt;
* Wenn ein Knoten nur noch eine bestimmte Anzahl (einstellbar - Voreinstellung 1) von Elementen enthält, wird nicht weiter aufgeteilt.&lt;br /&gt;
&lt;br /&gt;
=== Qualitätsanforderungen ===&lt;br /&gt;
=== Benutzeroberfläche ===&lt;br /&gt;
Weil das Programm auch für Präsentationszwecke eingesetzt werden soll, ist insbesondere auf eine entsprechende Gestaltung der Oberfläche (aussagekräftige Verwendung von Farben, ausreichend großer Schriftgrad, etc.) zu achten.&amp;lt;br&amp;gt;&lt;br /&gt;
Im Programm kann zwischen drei verschiedenen Ansichten hin- und hergeschalten werden, von denen stets genau eine sichtbar ist:&lt;br /&gt;
* Tabellenansicht&lt;br /&gt;
* Baum interaktiv&lt;br /&gt;
* Baum automatisch&lt;br /&gt;
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.&lt;br /&gt;
==== Tabellenansicht ====&lt;br /&gt;
* 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.&lt;br /&gt;
* (Farbliche) Markierung des Zielattributs.&lt;br /&gt;
&lt;br /&gt;
==== Baum interaktiv ====&lt;br /&gt;
* Zu Beginn wird nur der oberste Knoten (also der, der allen Objekten in der Tabelle entspricht) dargestellt.&lt;br /&gt;
* Das gilt ebenso, wenn in der Tabellenansicht ein Attribut hinzugefügt oder gelöscht oder das Zielattribut geändert wird.&lt;br /&gt;
* In jedem Knoten ist die Zahl der enthaltenden Objekte, die Zahl der Objekte jeder Klasse und die Entropie angegeben.&lt;br /&gt;
* Die Kanten sind mit dem entsprechenden Attributwert markiert.&lt;br /&gt;
* Bei Identifikation eines Knotens des Baumes wird eine Tabelle mit den Objekten, die von diesem Knoten repräsentiert werden, dargestellt.&lt;br /&gt;
* Wird in dieser Tabelle ein Attribut identifiziert, wird die gewichtete Entropie, die sich bei Aufteilung nach diesem Attribut ergeben würde, ausgegeben.&lt;br /&gt;
* In dieser Tabelle kann ein Attribut selektiert werden, so dass entsprechend den Werten dieses Attributes Unterknoten entstehen. Die Tabelle verschwindet. Hatte der Knoten schon Unterknoten, verschwinden diese natürlich ebenfalls.&lt;br /&gt;
&lt;br /&gt;
==== Baum automatisch ====&lt;br /&gt;
* In jedem Knoten ist die Zahl der enthaltenden Objekte, die Zahl der Objekte jeder Klasse und die Entropie automatisch dargestellt.&lt;br /&gt;
* Die Kanten sind mit dem entsprechenden Attributwert markiert.&lt;br /&gt;
* Bei Identifikation eines Knotens des Baumes wird eine Tabelle mit den Objekten, die von diesem Knoten repräsentiert werden, dargestellt.&lt;br /&gt;
&lt;br /&gt;
=== Andere nicht-funktionale Anforderungen ===&lt;br /&gt;
&lt;br /&gt;
== Systemmodelle ==&lt;br /&gt;
&amp;lt;b&amp;gt;Dieses Kapitel sollte eines oder mehrere Systemmodelle festlegen, die die Beziehung zwischen den Systemkomponenten und dem System und seiner Umgebung aufzeigen. Dies können Objekt-, Datenfluss- und semantische Datenmodelle sein.&amp;lt;/b&amp;gt;&lt;br /&gt;
=== Datenmodelle === &lt;br /&gt;
=== Andere Modelle === &lt;br /&gt;
&lt;br /&gt;
== Anforderungen an die Entwicklungsumgebung ==&lt;br /&gt;
Die hier genannten Aspekte werden für die qualitative Entwicklung der Software benötigt.&lt;br /&gt;
=== Software ===&lt;br /&gt;
Das Betriebssystem spielt keine Rolle, da Eclipse und Java Plattformunabhängig ist.&lt;br /&gt;
*Die Software &amp;quot;Eclipse&amp;quot; zur Programmierung mit Java wird benötigt. Hinzu kommt das Eclipse PlugIn &amp;quot;subversive&amp;quot; zur Handhabung der Versionsverwaltung&lt;br /&gt;
*Eine aktuelle Java-Developer-Version (jdk) wird zur Kompilierung benötigt. Außerdem werden folgende externe Bibliotheken benötigt:&lt;br /&gt;
** &amp;quot;dom4j&amp;quot;, &amp;quot;poi&amp;quot; zur Konvertierung und Erstellung von Excel-Spreadsheet Tabellen&lt;br /&gt;
** &amp;quot;swt&amp;quot;, das genutzte Framework zur Erstellung der grafischen Benutzeroberfläche&lt;br /&gt;
** &amp;quot;xmlbeans&amp;quot; zur Erstellung und Lesen von XML-Dateien&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
Für die verwendete Hardware sollten mindestens 2 GB Arbeitsspeicher verfügbar sein, um ein flüssiges Abarbeiten und Darstellen der relevanten Inhalte zu gewährleisten.&lt;br /&gt;
&lt;br /&gt;
=== Orgware ===&lt;br /&gt;
Vorrangig geschah die Kommunikation im Team über E-Mail Nachrichten und Kurzmitteilungen. Hier wurde beispielsweise Skype intensiv genutzt.&lt;br /&gt;
&lt;br /&gt;
== Ergänzungen ==&lt;br /&gt;
&lt;br /&gt;
== Anhang ==&lt;/div&gt;</summary>
		<author><name>Chge</name></author>	</entry>

	<entry>
		<id>https://www.p-servus.net/mediawiki/index.php?title=Optimaler_Entscheidungsbaum:_Pflichtenheft</id>
		<title>Optimaler Entscheidungsbaum: Pflichtenheft</title>
		<link rel="alternate" type="text/html" href="https://www.p-servus.net/mediawiki/index.php?title=Optimaler_Entscheidungsbaum:_Pflichtenheft"/>
				<updated>2012-05-22T10:31:05Z</updated>
		
		<summary type="html">&lt;p&gt;Chge: /* Zielgruppen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Über ==&lt;br /&gt;
Projekt: Optimaler Entscheidungsbaum &amp;lt;br /&amp;gt;&lt;br /&gt;
Autoren: Christian Gebauer, Sebastian Große, Jonathan Wiens, Benjamin Pfeiffer, Nico Smeenk &amp;lt;br /&amp;gt;&lt;br /&gt;
Modul: Software-Engineering II &amp;lt;br /&amp;gt;&lt;br /&gt;
Studiengang: Informatik 2010 &amp;lt;br /&amp;gt;&lt;br /&gt;
Fachbereich: Fachbereich 2, Duales Studium Wirtschaft • Technik, HWR Berlin &amp;lt;br /&amp;gt;&lt;br /&gt;
Datum:&lt;br /&gt;
&lt;br /&gt;
== Vorwort ==&lt;br /&gt;
Dieses Pflichtenheft ist eine Vereinbarung zwischen der Dozentin Frau Prof. Dr. Monett Diaz als Auftraggeberin und der Gruppe 1 des Kurses &amp;quot;Software-Engineering II&amp;quot; aus dem Studiengang &amp;quot;Informatik 2010&amp;quot;. Die Vereinbarung enthält alle Anforderungen an ein zu erstellendes Chat-Programm für die Hochschule für Wirtschaft und Recht Berlin. Das Dokument dient zur Strukturierung und genaueren Einschätzung des zeitlichen Aufwandes des Projektes und der Priorisierung der einzelnen Module. Somit lässt sich auch einschätzen, ob und mit welchen Kosten das Projekt durchführbar ist.&lt;br /&gt;
=== Erwartete Leserschaft ===&lt;br /&gt;
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.&lt;br /&gt;
=== Versionsgeschichte des Dokumentes ===&lt;br /&gt;
Dies ist die erste Version des Pflichtenheftes, weitere Versionen sind noch nicht in Planung.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
=== Allgemeines ===&lt;br /&gt;
Ein Entscheidungsbaum ist ein speziell aufgebauter Baum aus der Graphentheorie. Im Gegensatz zu einem &amp;quot;normalen&amp;quot; Baum ist ein Entscheidungsbaum geordnet und gerichtet und dient dem Zweck Entscheidungsregeln darzustellen. Ein Entscheidungsbaum kann durch Algorithmen auf Basis von tabellarischen Daten erstellt werden. Aufgrund der Tatsache, dass diese Bäume Entscheidungsprobleme lösen  bzw. vereinfachen können, wird diese Methode in vielen Bereichen angewandt. Hauptsächlich benutzt, wird ein Entscheidungsbaum beim Data-Mining, also der umfassenden Theroie der Datenauswertung; aber auch in der Betriebswirtschaftslehre, um effektives Marketing zu betreiben, oder Investment-Geschäfte zu bewerten. Darüber hinaus gibt es viele denkbare Einsatzbereiche, da Entscheidungen fast überall getroffen werden müssen.&lt;br /&gt;
&lt;br /&gt;
Ein Entscheidungsbaum besteht aus Knoten und Blättern. Er muss einen Wurzelknoten besitzen und wird durch Kanten verbunden.&lt;br /&gt;
Ein Knoten repräsentiert ein(en) Attribut(-namen), Kanten die zulässigen Attributwerte und die Blätter zeigen die Attributwerte (meistens klassifiziert) des Zielattributs an.&lt;br /&gt;
&lt;br /&gt;
In diesem Pflichtenheft wird nun ein Programm beschrieben, dass einen Entscheidungsbaum auf Basis einer Tabelle konstruieren kann. Dieses Programm ist als Auftragsarbeit von Hr. Prof. Dr. Höhne und Fr. Prof. Dr. Monett-Diaz zu sehen, bestimmte Funtktionen und Kriterien sind bereits vorgegeben.&lt;br /&gt;
=== Abgrenzungen ===&lt;br /&gt;
==== Ausgangssituation ====&lt;br /&gt;
Im Auftrag von Hr. Prof. Dr. Höhne und Fr. Prof. Dr. Monett-Diaz wird ein Programm, im Rahmen des Moduls SWE-2, entwickelt, welches dazu dienen soll Entscheidungsbäume zu konstruieren und darzustellen. Als Datenbasis dienen Excel- und CSV-Dateien.&lt;br /&gt;
Mit Hilfe dieser Daten soll dann ein &amp;quot;optimaler Entscheidungsbaum&amp;quot; aufgebaut werden, wobei zu beachten ist, dass der Begriff &amp;quot;optimal&amp;quot; nur relativ gesehen werden kann, und abhängig vom gewählten Algorhitmus und der Art des Datenbestandes ist.&lt;br /&gt;
&lt;br /&gt;
=== Systemname ===&lt;br /&gt;
Aufgrund der Tatsache, dass ein Entscheidungsbaum nach bestimmten Regeln ''aufgebaut'' wird und der Anwender einen ''Lerneffekt'' aus diesem Baum ziehen kann, in dem Entscheidungen vereinfacht werden, wurde beschlossen das Projekt und das Programm &amp;quot;Baumschule - Optimale Entscheidungsbäume&amp;quot; zu nennen. &lt;br /&gt;
==== Allgemeine Systembeschreibung ====&lt;br /&gt;
Das System bzw. das Programm bietet hauptsächlich drei grobe Funtkionen an:&lt;br /&gt;
* Laden/Editieren eines Datenbestands durch eine Datei (Excel bzw. CSV)&lt;br /&gt;
* Erstellen eines Entscheidungsbaumes durch einen gegebenen Algorithmus, oder einer Nutzervorgabe&lt;br /&gt;
* Präsentation des Ergebnisses&lt;br /&gt;
&lt;br /&gt;
Diese 3 Hauptfunktionen lassen sich näher beschreiben:&lt;br /&gt;
* Es gibt eine graphische Benutzeroberfläche mit der der Endandwender alle Funktionen des Programms benutzen kann&lt;br /&gt;
* Es gibt eine Funktion zum Laden/Speichern einer Excel- oder CSV-Datei&lt;br /&gt;
* Geladene Tabellendaten können editiert werden.&lt;br /&gt;
* Ein Baum kann automatisch generiert werden, ein ZielAttribut kann vorher gewählt werden.&lt;br /&gt;
* Ein Baum kann teilweise manuell erstellt werden, in dem für jeden Knoten die nächste Attributebene selbst gewählt werden kann.&lt;br /&gt;
* Es können jederzeit detaillierte Informationen über einen Baum bzw. dessen Tabellendaten angezeigt werden.&lt;br /&gt;
&lt;br /&gt;
==== Vorteile und Nutzen ====&lt;br /&gt;
&lt;br /&gt;
Das System bietet die Bearbeitung eines Datenbestandes an und arbeitet nach dem Laden einer Datei formatunabhängig. Ist ein Datenbestand bearbeitet worden, ist dieser auch wieder exportierbar.&lt;br /&gt;
Die Oberfläche bietet die Möglichkeit einen, gemäß des Algorithmus, optimalen Baumes darzustellen. Die Stärke liegt hierbei einerseits auf der Präsentation und andererseits bei der leichten Editierbarkeit, denn der Baum kann einfach durch Mausklicks bearbeitet und untersucht werden. Ein manuelles zeichnen und berechnen des Baumes entfällt. &lt;br /&gt;
Gerade bei großen Daten ist ein Baum nur durch ein Programm wie dieses erstellbar. Arbeitet der Algorithmus fehlerfrei, kann ''immer wieder'' und ''reproduzierbar'' ein Baum aufgebaut werden.&lt;br /&gt;
&lt;br /&gt;
=== Überblick über den Rest des Dokuments ===&lt;br /&gt;
&lt;br /&gt;
Die nachfolgenden Abschnitte befassen sich detaillierter und gründlicher mit den Funktionen des Programms. Es werden Vereinbarungen festgelegt, welches Verhalten das Programm leisten kann und muss.&lt;br /&gt;
&lt;br /&gt;
== Fachbegriffe, Akronyme und Abkürzungen ==&lt;br /&gt;
&amp;lt;b&amp;gt;Dieser Teil soll die im Dokument verwendeten technischen Fachbergriffe festlegen. Dabei soll keine Erfahrung oder Fachwissen beim Leser vorausgesetzt werden.&amp;lt;/b&amp;gt;&lt;br /&gt;
=== Glossar ===&lt;br /&gt;
=== Akronyme ===&lt;br /&gt;
=== Abkürzungen ===&lt;br /&gt;
&lt;br /&gt;
== Zielbestimmungen ==&lt;br /&gt;
Die folgenden Ziele sind in 3 Kategorien (Muss-, Soll- , Kannkriterien) unterteilt. Durch diese Unterteilung wird eine Prioritätshierarchie geschaffen, wobei Musskriterien die höchste Priorität erhalten und entsprechend vorrangig abgearbeitet werden. &lt;br /&gt;
&lt;br /&gt;
=== Musskriterien ===&lt;br /&gt;
Die Muss-Kritierien ergeben sich größtenteils aus der Aufgabenbeschreibung von Hr. Höhne und Fr. Monett-Diaz und sollen hier abgekürzt wiedergegeben werden:&lt;br /&gt;
* Das Programm muss in der Lage sein mit einem Datenbestand von bis zu 10 Attributen und 100 Objekten arbeiten zu können.&lt;br /&gt;
* Das Programm muss mit Tabellen-Dateien umgehen können. (Laden/Speichern von Excel- und CSV-Dateien)&lt;br /&gt;
* Das Programm muss ein Bearbeiten der Tabellendaten zulassen.&lt;br /&gt;
* Es muss eine graphische Benutzeroberfläche geben.&lt;br /&gt;
* Das Zielattribut muss farblich hervorgehoben werden.&lt;br /&gt;
&lt;br /&gt;
* Das Programm muss eine Möglichkeit bieten den Baum, durch Auswahl des nächsten Attributs, teilweise manuell aufzubauen.&lt;br /&gt;
* Wenn der Baum interaktiv zusammengestellt wird, darf(muss) nur der oberste Knoten präsentiert werden.&lt;br /&gt;
* Bei der Präsentation des interaktiven Baums kann dieser durch ein Mausklick &amp;quot;untersucht&amp;quot; werden. Es wird bei einem Knoten eine Tabelle angezigt, die die Objekte anzeigt, die durch den Knoten repräsentiert werden.&lt;br /&gt;
* Es kann in der Tabelle ein Attribut untersucht werden, woraufhin die gewichtete Entropie, die sichbei Aufteilung nach diesem Attribut ergeben würde, angezeigt wird.&lt;br /&gt;
&lt;br /&gt;
* Das Programm muss anhand eines vorgegebenen Algorithmus (''Konzept der Entropie'') einen Entscheidungsbaum erstellen können.&lt;br /&gt;
* Bei der automatischen Erstellung wird ein Knoten der nur noch Objekte einer Klasse enthält nicht weiter aufgeteilt, selbiges gilt wenn der Knoten eine (einstellbare) Anzahl von Elementen enthält.&lt;br /&gt;
* Bei der Präsentation des autmatischen Baums kann dieser durch ein Mausklick &amp;quot;untersucht&amp;quot; werden. Es wird bei einem Knoten eine Tabelle angezigt, die die Objekte anzeigt, die durch den Knoten repräsentiert werden.&lt;br /&gt;
&lt;br /&gt;
* Bei der Präsentation des interaktiven und autmatischen Baums müssen die Kanten mit dem entsprechenden Attributewert angezeigt werden.&lt;br /&gt;
* Bei der Präsentation des interaktiven und automatischen Baums muss die Zahl der enthaltenen Objekte, die Zahl jeder Klasse und die Entropie in jedem Knoten angezeigt werden.&lt;br /&gt;
* Der Entscheidungsbaum muss, egal ob manuell oder autmoatisch erstellt, bei Änderungen des Datenbestandes aktualisiert werden.&lt;br /&gt;
&lt;br /&gt;
* Das Programm muss lauffähig sein und ausführbar vorliegen.&lt;br /&gt;
&lt;br /&gt;
=== Sollkriterien ===&lt;br /&gt;
* Das Programm soll an den wichtigen Stellen durchdachte Hilfebeschreibungen(ToolTips) anzeigen können.&lt;br /&gt;
* Das Programm soll für den Benutzer ein vollständiges Handbuch bereitstellen, dass jederzeit über das Menü aufgerufen werden kann.&lt;br /&gt;
* Das Programm soll bei bestimmten Fehlern oder unerlaubten Nutzeraktionen eine graphische Fehlermeldung anzeigen.&lt;br /&gt;
* Das Programm soll zum Nachverfolgen von Programm-Algorithmen und -Abläufen eine Log-Datei erstellen.&lt;br /&gt;
* Die Oberfläche soll für den Nutzer farblich und organisatorisch übersichtlich und leicht zu bedienen sein.&lt;br /&gt;
* Das Erstellen eines Baumes soll nicht länger als 5 Sekunden dauern. (Vorrausgesetzt das Datenlimit von 10*100 Attributwerten wird eingehalten)&lt;br /&gt;
* Die Oberfläche soll neben der einfachen Ansicht einen Präsentationsmodus bieten, in dem der Baum als Vollbild dargestellt wird.&lt;br /&gt;
* Für die Anzeige des Baumes soll eine Legende bereitgestellt werden, die den Aufbau eines dargestellten Baumes erklärt.&lt;br /&gt;
&lt;br /&gt;
=== Kannkriterien ===&lt;br /&gt;
* Das Programm kann die Möglichkeit bieten, über eine Konfigurationsschnittstelle verschiedene Programmparameter anzupassen.&lt;br /&gt;
* Für den Benutzer kann es eine grafische Möglichkeit geben die Konfigurationsschnittstelle zu nutzen.&lt;br /&gt;
* Der Nutzer kann die Möglichkeit erhalten den dynamisch erstellten Baum als xml-Datei zu speichern.&lt;br /&gt;
* Der Nutzer kann die Möglichkeit erhalten die abgespeicherte xml-Datei wieder zu laden; die Oberfläche stellt dann automatisch die Tabelle und die Bäume wieder her.&lt;br /&gt;
* Das Programm kann die Möglichkeit bieten den dynamischen und automatischen Baum als Bild-Datei(*.png ; *.jpg) abzuspeichern.&lt;br /&gt;
* Die Zeichenoberfläche, in dem der Baum (dynamisch oder manuell) präsentiert wird, kann durch einen Schieberegler heran- bzw. herausgezoomt werden.&lt;br /&gt;
&lt;br /&gt;
=== Abgrenzungskriterien ===&lt;br /&gt;
&lt;br /&gt;
* Die Software setzt eine installierte Version von Java voraus.&lt;br /&gt;
* Es gibt für jedes Betriebssystem (Windows, Linux, Mac) und dessen Ausprägung (x64, x32) jeweils eine Version.&lt;br /&gt;
* Die Software kann nur mit Datenformaten umgehen, die Excel-Konform sind- (bis 2003: .xls, ab 2007: .xlsx) oder dem CSV-Format entsprechen (Trennzeichen: &amp;quot;,&amp;quot; (Ausgesprochen: Komma)&lt;br /&gt;
* Die Software benutzt einen fest vorgegebenen Algorithmus (''Konzept der Entropie'').&lt;br /&gt;
* Die Tabelle kann maximal 10 Attribute und jeweils 100 Attributwerte enthalten und darf innerhalb der Tabellengrenzen keine leeren Zellenwerte (leere Strings) enthalten.&lt;br /&gt;
&lt;br /&gt;
== Systemeinsatz ==&lt;br /&gt;
=== Anwendungsbereiche === &lt;br /&gt;
Das Programm soll eingesetzt werden, um einen optimalen Entscheidungsbaum zu finden.&amp;lt;br&amp;gt;&lt;br /&gt;
Optimale Entscheidungsbäume werden benötigt, um aus einem gegebenen Datenbestand Voraussagen zum zukünftigen Verhalten treffen zu können.&amp;lt;br&amp;gt;&lt;br /&gt;
Speziell sollen diese optimalen Entscheidungsbäume mit der Software präsentiert werden können.&lt;br /&gt;
&lt;br /&gt;
=== Zielgruppen ===&lt;br /&gt;
Als Zielgruppe des Programmes sind in erster Linie die Auftraggeber Hr. Prof. Dr. Höhne und Fr. Prof. Dr. Monett-Diaz zu sehen.&amp;lt;br&amp;gt; Darauf folgend voraussichtlich aber auch die Dozenten und Studenten der HWR Berlin, speziell vorrangig aus der Fachrichtung Informatik.&lt;br /&gt;
&lt;br /&gt;
=== Betriebsbedingungen ===&lt;br /&gt;
Folgende Bedingungen sind für den Betrieb des Programmes relevant:&lt;br /&gt;
*Der Nutzer ist an einem aktuellen PC mit Windows-Betriebssystem (alternativ auch Linux oder Mac) angemeldet.&lt;br /&gt;
*Auf dem System ist eine Java-Umgebung vorhanden.&lt;br /&gt;
*Optimalerweise hat der PC ein für Präsentationen geeignetes Ausgabegerät (z.B. Beamer, genügend großer Monitor).&lt;br /&gt;
&lt;br /&gt;
== Technische Systemumgebung ==&lt;br /&gt;
=== Software === &lt;br /&gt;
*Das Programm soll auf allen gängigen Windows-Betriebssystemen lauffähig sein.&lt;br /&gt;
*Es soll eine Version für 32- und eine für 64 Bit Systeme geben.&lt;br /&gt;
*Es sollen weitere Betriebssysteme (Linux, Mac) unterstützt werden (optional).&lt;br /&gt;
*Eine Java-Umgebung muss auf den Zielsystemen vorhanden sein.&lt;br /&gt;
*Das Programm soll ohne Installation lauffähig sein.&lt;br /&gt;
&lt;br /&gt;
=== Hardware === &lt;br /&gt;
*Es wird ein aktuell üblicher Standard-PC vorausgesetzt (auf dem Windows mit Standardsoftware lauffähig ist).&lt;br /&gt;
*Es wird ein präsentationsfähiges Ausgabegerät (großer Monitor, Beamer, etc.) benötigt, da das Programm u.A. für Präsentationen eingesetzt werden soll.&lt;br /&gt;
&lt;br /&gt;
=== Orgware ===&lt;br /&gt;
*Es wird keine explizite Orgware benötigt. Der Anwender kann alle relevanten Einstellungen selbst direkt in der Software bzw. in der Konfigurations-Datei vornehmen.&lt;br /&gt;
&lt;br /&gt;
== Systemübersicht und -architektur ==&lt;br /&gt;
=== Übersicht über das System === &lt;br /&gt;
=== Systemarchitektur === &lt;br /&gt;
&amp;lt;b&amp;gt;Dieses Kapitel sollte einen groben Überblick über die erwartete Systemarchitektur geben, der die Verteilung der Funktionen auf die Systemmodule zeigt. Wiederverwendete Komponenten sollten gekennzeichnet werden.&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Schnittstellen des Systems ===&lt;br /&gt;
&lt;br /&gt;
== Systemanforderungen ==&lt;br /&gt;
Das Programm soll den Argorithmus, einen optimalen Entscheidungsbaum zu finden, demonstrieren.&lt;br /&gt;
=== Funktionale Anforderungen ===&lt;br /&gt;
* Das Programm soll unter allen gängigen Windows-Betriebssystemen ohne Installation lauffähig sein (Java darf vorrausgesetzt werden, sonst nichts spezielles).&lt;br /&gt;
==== Tabellenansicht ====&lt;br /&gt;
* Einlesen / Speichern einer Tabelle im .csv-Format (wobei das Trennzeichen ein Komma ist).&lt;br /&gt;
* Alle Attribute sind Zeichenketten.&lt;br /&gt;
* Eingeben / Editieren einer Tabelle muss möglich sein.&lt;br /&gt;
* Import und Export von Excel-Dateien.&lt;br /&gt;
&lt;br /&gt;
==== Baum automatisch ====&lt;br /&gt;
* Der optimale Entscheidungsbaum wird mit dem Algorithmus, der sukzessiv für jeden Knoten jeweils das Attribut mit der minimalen gewichteten Entropie auswählt, erzeugt und dargestellt.&lt;br /&gt;
* Wenn ein Knoten nur noch Objekte einer Klasse enthält, wird dieser nicht weiter aufgeteilt.&lt;br /&gt;
* Wenn ein Knoten nur noch eine bestimmte Anzahl (einstellbar - Voreinstellung 1) von Elementen enthält, wird nicht weiter aufgeteilt.&lt;br /&gt;
&lt;br /&gt;
=== Qualitätsanforderungen ===&lt;br /&gt;
=== Benutzeroberfläche ===&lt;br /&gt;
Weil das Programm auch für Präsentationszwecke eingesetzt werden soll, ist insbesondere auf eine entsprechende Gestaltung der Oberfläche (aussagekräftige Verwendung von Farben, ausreichend großer Schriftgrad, etc.) zu achten.&amp;lt;br&amp;gt;&lt;br /&gt;
Im Programm kann zwischen drei verschiedenen Ansichten hin- und hergeschalten werden, von denen stets genau eine sichtbar ist:&lt;br /&gt;
* Tabellenansicht&lt;br /&gt;
* Baum interaktiv&lt;br /&gt;
* Baum automatisch&lt;br /&gt;
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.&lt;br /&gt;
==== Tabellenansicht ====&lt;br /&gt;
* 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.&lt;br /&gt;
* (Farbliche) Markierung des Zielattributs.&lt;br /&gt;
&lt;br /&gt;
==== Baum interaktiv ====&lt;br /&gt;
* Zu Beginn wird nur der oberste Knoten (also der, der allen Objekten in der Tabelle entspricht) dargestellt.&lt;br /&gt;
* Das gilt ebenso, wenn in der Tabellenansicht ein Attribut hinzugefügt oder gelöscht oder das Zielattribut geändert wird.&lt;br /&gt;
* In jedem Knoten ist die Zahl der enthaltenden Objekte, die Zahl der Objekte jeder Klasse und die Entropie angegeben.&lt;br /&gt;
* Die Kanten sind mit dem entsprechenden Attributwert markiert.&lt;br /&gt;
* Bei Identifikation eines Knotens des Baumes wird eine Tabelle mit den Objekten, die von diesem Knoten repräsentiert werden, dargestellt.&lt;br /&gt;
* Wird in dieser Tabelle ein Attribut identifiziert, wird die gewichtete Entropie, die sich bei Aufteilung nach diesem Attribut ergeben würde, ausgegeben.&lt;br /&gt;
* In dieser Tabelle kann ein Attribut selektiert werden, so dass entsprechend den Werten dieses Attributes Unterknoten entstehen. Die Tabelle verschwindet. Hatte der Knoten schon Unterknoten, verschwinden diese natürlich ebenfalls.&lt;br /&gt;
&lt;br /&gt;
==== Baum automatisch ====&lt;br /&gt;
* In jedem Knoten ist die Zahl der enthaltenden Objekte, die Zahl der Objekte jeder Klasse und die Entropie automatisch dargestellt.&lt;br /&gt;
* Die Kanten sind mit dem entsprechenden Attributwert markiert.&lt;br /&gt;
* Bei Identifikation eines Knotens des Baumes wird eine Tabelle mit den Objekten, die von diesem Knoten repräsentiert werden, dargestellt.&lt;br /&gt;
&lt;br /&gt;
=== Andere nicht-funktionale Anforderungen ===&lt;br /&gt;
&lt;br /&gt;
== Systemmodelle ==&lt;br /&gt;
&amp;lt;b&amp;gt;Dieses Kapitel sollte eines oder mehrere Systemmodelle festlegen, die die Beziehung zwischen den Systemkomponenten und dem System und seiner Umgebung aufzeigen. Dies können Objekt-, Datenfluss- und semantische Datenmodelle sein.&amp;lt;/b&amp;gt;&lt;br /&gt;
=== Datenmodelle === &lt;br /&gt;
=== Andere Modelle === &lt;br /&gt;
&lt;br /&gt;
== Anforderungen an die Entwicklungsumgebung ==&lt;br /&gt;
Die hier genannten Aspekte werden für die qualitative Entwicklung der Software benötigt.&lt;br /&gt;
=== Software ===&lt;br /&gt;
Das Betriebssystem spielt keine Rolle, da Eclipse und Java Plattformunabhängig ist.&lt;br /&gt;
*Die Software &amp;quot;Eclipse&amp;quot; zur Programmierung mit Java wird benötigt. Hinzu kommt das Eclipse PlugIn &amp;quot;subversive&amp;quot; zur Handhabung der Versionsverwaltung&lt;br /&gt;
*Eine aktuelle Java-Developer-Version (jdk) wird zur Kompilierung benötigt. Außerdem werden folgende externe Bibliotheken benötigt:&lt;br /&gt;
** &amp;quot;dom4j&amp;quot;, &amp;quot;poi&amp;quot; zur Konvertierung und Erstellung von Excel-Spreadsheet Tabellen&lt;br /&gt;
** &amp;quot;swt&amp;quot;, das genutzte Framework zur Erstellung der grafischen Benutzeroberfläche&lt;br /&gt;
** &amp;quot;xmlbeans&amp;quot; zur Erstellung und Lesen von XML-Dateien&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
Für die verwendete Hardware sollten mindestens 2 GB Arbeitsspeicher verfügbar sein, um ein flüssiges Abarbeiten und Darstellen der relevanten Inhalte zu gewährleisten.&lt;br /&gt;
&lt;br /&gt;
=== Orgware ===&lt;br /&gt;
Vorrangig geschah die Kommunikation im Team über E-Mail Nachrichten und Kurzmitteilungen. Hier wurde beispielsweise Skype intensiv genutzt.&lt;br /&gt;
&lt;br /&gt;
== Ergänzungen ==&lt;br /&gt;
&lt;br /&gt;
== Anhang ==&lt;/div&gt;</summary>
		<author><name>Chge</name></author>	</entry>

	<entry>
		<id>https://www.p-servus.net/mediawiki/index.php?title=Optimaler_Entscheidungsbaum:_Pflichtenheft</id>
		<title>Optimaler Entscheidungsbaum: Pflichtenheft</title>
		<link rel="alternate" type="text/html" href="https://www.p-servus.net/mediawiki/index.php?title=Optimaler_Entscheidungsbaum:_Pflichtenheft"/>
				<updated>2012-05-22T10:30:38Z</updated>
		
		<summary type="html">&lt;p&gt;Chge: /* Systemeinsatz */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Über ==&lt;br /&gt;
Projekt: Optimaler Entscheidungsbaum &amp;lt;br /&amp;gt;&lt;br /&gt;
Autoren: Christian Gebauer, Sebastian Große, Jonathan Wiens, Benjamin Pfeiffer, Nico Smeenk &amp;lt;br /&amp;gt;&lt;br /&gt;
Modul: Software-Engineering II &amp;lt;br /&amp;gt;&lt;br /&gt;
Studiengang: Informatik 2010 &amp;lt;br /&amp;gt;&lt;br /&gt;
Fachbereich: Fachbereich 2, Duales Studium Wirtschaft • Technik, HWR Berlin &amp;lt;br /&amp;gt;&lt;br /&gt;
Datum:&lt;br /&gt;
&lt;br /&gt;
== Vorwort ==&lt;br /&gt;
Dieses Pflichtenheft ist eine Vereinbarung zwischen der Dozentin Frau Prof. Dr. Monett Diaz als Auftraggeberin und der Gruppe 1 des Kurses &amp;quot;Software-Engineering II&amp;quot; aus dem Studiengang &amp;quot;Informatik 2010&amp;quot;. Die Vereinbarung enthält alle Anforderungen an ein zu erstellendes Chat-Programm für die Hochschule für Wirtschaft und Recht Berlin. Das Dokument dient zur Strukturierung und genaueren Einschätzung des zeitlichen Aufwandes des Projektes und der Priorisierung der einzelnen Module. Somit lässt sich auch einschätzen, ob und mit welchen Kosten das Projekt durchführbar ist.&lt;br /&gt;
=== Erwartete Leserschaft ===&lt;br /&gt;
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.&lt;br /&gt;
=== Versionsgeschichte des Dokumentes ===&lt;br /&gt;
Dies ist die erste Version des Pflichtenheftes, weitere Versionen sind noch nicht in Planung.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
=== Allgemeines ===&lt;br /&gt;
Ein Entscheidungsbaum ist ein speziell aufgebauter Baum aus der Graphentheorie. Im Gegensatz zu einem &amp;quot;normalen&amp;quot; Baum ist ein Entscheidungsbaum geordnet und gerichtet und dient dem Zweck Entscheidungsregeln darzustellen. Ein Entscheidungsbaum kann durch Algorithmen auf Basis von tabellarischen Daten erstellt werden. Aufgrund der Tatsache, dass diese Bäume Entscheidungsprobleme lösen  bzw. vereinfachen können, wird diese Methode in vielen Bereichen angewandt. Hauptsächlich benutzt, wird ein Entscheidungsbaum beim Data-Mining, also der umfassenden Theroie der Datenauswertung; aber auch in der Betriebswirtschaftslehre, um effektives Marketing zu betreiben, oder Investment-Geschäfte zu bewerten. Darüber hinaus gibt es viele denkbare Einsatzbereiche, da Entscheidungen fast überall getroffen werden müssen.&lt;br /&gt;
&lt;br /&gt;
Ein Entscheidungsbaum besteht aus Knoten und Blättern. Er muss einen Wurzelknoten besitzen und wird durch Kanten verbunden.&lt;br /&gt;
Ein Knoten repräsentiert ein(en) Attribut(-namen), Kanten die zulässigen Attributwerte und die Blätter zeigen die Attributwerte (meistens klassifiziert) des Zielattributs an.&lt;br /&gt;
&lt;br /&gt;
In diesem Pflichtenheft wird nun ein Programm beschrieben, dass einen Entscheidungsbaum auf Basis einer Tabelle konstruieren kann. Dieses Programm ist als Auftragsarbeit von Hr. Prof. Dr. Höhne und Fr. Prof. Dr. Monett-Diaz zu sehen, bestimmte Funtktionen und Kriterien sind bereits vorgegeben.&lt;br /&gt;
=== Abgrenzungen ===&lt;br /&gt;
==== Ausgangssituation ====&lt;br /&gt;
Im Auftrag von Hr. Prof. Dr. Höhne und Fr. Prof. Dr. Monett-Diaz wird ein Programm, im Rahmen des Moduls SWE-2, entwickelt, welches dazu dienen soll Entscheidungsbäume zu konstruieren und darzustellen. Als Datenbasis dienen Excel- und CSV-Dateien.&lt;br /&gt;
Mit Hilfe dieser Daten soll dann ein &amp;quot;optimaler Entscheidungsbaum&amp;quot; aufgebaut werden, wobei zu beachten ist, dass der Begriff &amp;quot;optimal&amp;quot; nur relativ gesehen werden kann, und abhängig vom gewählten Algorhitmus und der Art des Datenbestandes ist.&lt;br /&gt;
&lt;br /&gt;
=== Systemname ===&lt;br /&gt;
Aufgrund der Tatsache, dass ein Entscheidungsbaum nach bestimmten Regeln ''aufgebaut'' wird und der Anwender einen ''Lerneffekt'' aus diesem Baum ziehen kann, in dem Entscheidungen vereinfacht werden, wurde beschlossen das Projekt und das Programm &amp;quot;Baumschule - Optimale Entscheidungsbäume&amp;quot; zu nennen. &lt;br /&gt;
==== Allgemeine Systembeschreibung ====&lt;br /&gt;
Das System bzw. das Programm bietet hauptsächlich drei grobe Funtkionen an:&lt;br /&gt;
* Laden/Editieren eines Datenbestands durch eine Datei (Excel bzw. CSV)&lt;br /&gt;
* Erstellen eines Entscheidungsbaumes durch einen gegebenen Algorithmus, oder einer Nutzervorgabe&lt;br /&gt;
* Präsentation des Ergebnisses&lt;br /&gt;
&lt;br /&gt;
Diese 3 Hauptfunktionen lassen sich näher beschreiben:&lt;br /&gt;
* Es gibt eine graphische Benutzeroberfläche mit der der Endandwender alle Funktionen des Programms benutzen kann&lt;br /&gt;
* Es gibt eine Funktion zum Laden/Speichern einer Excel- oder CSV-Datei&lt;br /&gt;
* Geladene Tabellendaten können editiert werden.&lt;br /&gt;
* Ein Baum kann automatisch generiert werden, ein ZielAttribut kann vorher gewählt werden.&lt;br /&gt;
* Ein Baum kann teilweise manuell erstellt werden, in dem für jeden Knoten die nächste Attributebene selbst gewählt werden kann.&lt;br /&gt;
* Es können jederzeit detaillierte Informationen über einen Baum bzw. dessen Tabellendaten angezeigt werden.&lt;br /&gt;
&lt;br /&gt;
==== Vorteile und Nutzen ====&lt;br /&gt;
&lt;br /&gt;
Das System bietet die Bearbeitung eines Datenbestandes an und arbeitet nach dem Laden einer Datei formatunabhängig. Ist ein Datenbestand bearbeitet worden, ist dieser auch wieder exportierbar.&lt;br /&gt;
Die Oberfläche bietet die Möglichkeit einen, gemäß des Algorithmus, optimalen Baumes darzustellen. Die Stärke liegt hierbei einerseits auf der Präsentation und andererseits bei der leichten Editierbarkeit, denn der Baum kann einfach durch Mausklicks bearbeitet und untersucht werden. Ein manuelles zeichnen und berechnen des Baumes entfällt. &lt;br /&gt;
Gerade bei großen Daten ist ein Baum nur durch ein Programm wie dieses erstellbar. Arbeitet der Algorithmus fehlerfrei, kann ''immer wieder'' und ''reproduzierbar'' ein Baum aufgebaut werden.&lt;br /&gt;
&lt;br /&gt;
=== Überblick über den Rest des Dokuments ===&lt;br /&gt;
&lt;br /&gt;
Die nachfolgenden Abschnitte befassen sich detaillierter und gründlicher mit den Funktionen des Programms. Es werden Vereinbarungen festgelegt, welches Verhalten das Programm leisten kann und muss.&lt;br /&gt;
&lt;br /&gt;
== Fachbegriffe, Akronyme und Abkürzungen ==&lt;br /&gt;
&amp;lt;b&amp;gt;Dieser Teil soll die im Dokument verwendeten technischen Fachbergriffe festlegen. Dabei soll keine Erfahrung oder Fachwissen beim Leser vorausgesetzt werden.&amp;lt;/b&amp;gt;&lt;br /&gt;
=== Glossar ===&lt;br /&gt;
=== Akronyme ===&lt;br /&gt;
=== Abkürzungen ===&lt;br /&gt;
&lt;br /&gt;
== Zielbestimmungen ==&lt;br /&gt;
Die folgenden Ziele sind in 3 Kategorien (Muss-, Soll- , Kannkriterien) unterteilt. Durch diese Unterteilung wird eine Prioritätshierarchie geschaffen, wobei Musskriterien die höchste Priorität erhalten und entsprechend vorrangig abgearbeitet werden. &lt;br /&gt;
&lt;br /&gt;
=== Musskriterien ===&lt;br /&gt;
Die Muss-Kritierien ergeben sich größtenteils aus der Aufgabenbeschreibung von Hr. Höhne und Fr. Monett-Diaz und sollen hier abgekürzt wiedergegeben werden:&lt;br /&gt;
* Das Programm muss in der Lage sein mit einem Datenbestand von bis zu 10 Attributen und 100 Objekten arbeiten zu können.&lt;br /&gt;
* Das Programm muss mit Tabellen-Dateien umgehen können. (Laden/Speichern von Excel- und CSV-Dateien)&lt;br /&gt;
* Das Programm muss ein Bearbeiten der Tabellendaten zulassen.&lt;br /&gt;
* Es muss eine graphische Benutzeroberfläche geben.&lt;br /&gt;
* Das Zielattribut muss farblich hervorgehoben werden.&lt;br /&gt;
&lt;br /&gt;
* Das Programm muss eine Möglichkeit bieten den Baum, durch Auswahl des nächsten Attributs, teilweise manuell aufzubauen.&lt;br /&gt;
* Wenn der Baum interaktiv zusammengestellt wird, darf(muss) nur der oberste Knoten präsentiert werden.&lt;br /&gt;
* Bei der Präsentation des interaktiven Baums kann dieser durch ein Mausklick &amp;quot;untersucht&amp;quot; werden. Es wird bei einem Knoten eine Tabelle angezigt, die die Objekte anzeigt, die durch den Knoten repräsentiert werden.&lt;br /&gt;
* Es kann in der Tabelle ein Attribut untersucht werden, woraufhin die gewichtete Entropie, die sichbei Aufteilung nach diesem Attribut ergeben würde, angezeigt wird.&lt;br /&gt;
&lt;br /&gt;
* Das Programm muss anhand eines vorgegebenen Algorithmus (''Konzept der Entropie'') einen Entscheidungsbaum erstellen können.&lt;br /&gt;
* Bei der automatischen Erstellung wird ein Knoten der nur noch Objekte einer Klasse enthält nicht weiter aufgeteilt, selbiges gilt wenn der Knoten eine (einstellbare) Anzahl von Elementen enthält.&lt;br /&gt;
* Bei der Präsentation des autmatischen Baums kann dieser durch ein Mausklick &amp;quot;untersucht&amp;quot; werden. Es wird bei einem Knoten eine Tabelle angezigt, die die Objekte anzeigt, die durch den Knoten repräsentiert werden.&lt;br /&gt;
&lt;br /&gt;
* Bei der Präsentation des interaktiven und autmatischen Baums müssen die Kanten mit dem entsprechenden Attributewert angezeigt werden.&lt;br /&gt;
* Bei der Präsentation des interaktiven und automatischen Baums muss die Zahl der enthaltenen Objekte, die Zahl jeder Klasse und die Entropie in jedem Knoten angezeigt werden.&lt;br /&gt;
* Der Entscheidungsbaum muss, egal ob manuell oder autmoatisch erstellt, bei Änderungen des Datenbestandes aktualisiert werden.&lt;br /&gt;
&lt;br /&gt;
* Das Programm muss lauffähig sein und ausführbar vorliegen.&lt;br /&gt;
&lt;br /&gt;
=== Sollkriterien ===&lt;br /&gt;
* Das Programm soll an den wichtigen Stellen durchdachte Hilfebeschreibungen(ToolTips) anzeigen können.&lt;br /&gt;
* Das Programm soll für den Benutzer ein vollständiges Handbuch bereitstellen, dass jederzeit über das Menü aufgerufen werden kann.&lt;br /&gt;
* Das Programm soll bei bestimmten Fehlern oder unerlaubten Nutzeraktionen eine graphische Fehlermeldung anzeigen.&lt;br /&gt;
* Das Programm soll zum Nachverfolgen von Programm-Algorithmen und -Abläufen eine Log-Datei erstellen.&lt;br /&gt;
* Die Oberfläche soll für den Nutzer farblich und organisatorisch übersichtlich und leicht zu bedienen sein.&lt;br /&gt;
* Das Erstellen eines Baumes soll nicht länger als 5 Sekunden dauern. (Vorrausgesetzt das Datenlimit von 10*100 Attributwerten wird eingehalten)&lt;br /&gt;
* Die Oberfläche soll neben der einfachen Ansicht einen Präsentationsmodus bieten, in dem der Baum als Vollbild dargestellt wird.&lt;br /&gt;
* Für die Anzeige des Baumes soll eine Legende bereitgestellt werden, die den Aufbau eines dargestellten Baumes erklärt.&lt;br /&gt;
&lt;br /&gt;
=== Kannkriterien ===&lt;br /&gt;
* Das Programm kann die Möglichkeit bieten, über eine Konfigurationsschnittstelle verschiedene Programmparameter anzupassen.&lt;br /&gt;
* Für den Benutzer kann es eine grafische Möglichkeit geben die Konfigurationsschnittstelle zu nutzen.&lt;br /&gt;
* Der Nutzer kann die Möglichkeit erhalten den dynamisch erstellten Baum als xml-Datei zu speichern.&lt;br /&gt;
* Der Nutzer kann die Möglichkeit erhalten die abgespeicherte xml-Datei wieder zu laden; die Oberfläche stellt dann automatisch die Tabelle und die Bäume wieder her.&lt;br /&gt;
* Das Programm kann die Möglichkeit bieten den dynamischen und automatischen Baum als Bild-Datei(*.png ; *.jpg) abzuspeichern.&lt;br /&gt;
* Die Zeichenoberfläche, in dem der Baum (dynamisch oder manuell) präsentiert wird, kann durch einen Schieberegler heran- bzw. herausgezoomt werden.&lt;br /&gt;
&lt;br /&gt;
=== Abgrenzungskriterien ===&lt;br /&gt;
&lt;br /&gt;
* Die Software setzt eine installierte Version von Java voraus.&lt;br /&gt;
* Es gibt für jedes Betriebssystem (Windows, Linux, Mac) und dessen Ausprägung (x64, x32) jeweils eine Version.&lt;br /&gt;
* Die Software kann nur mit Datenformaten umgehen, die Excel-Konform sind- (bis 2003: .xls, ab 2007: .xlsx) oder dem CSV-Format entsprechen (Trennzeichen: &amp;quot;,&amp;quot; (Ausgesprochen: Komma)&lt;br /&gt;
* Die Software benutzt einen fest vorgegebenen Algorithmus (''Konzept der Entropie'').&lt;br /&gt;
* Die Tabelle kann maximal 10 Attribute und jeweils 100 Attributwerte enthalten und darf innerhalb der Tabellengrenzen keine leeren Zellenwerte (leere Strings) enthalten.&lt;br /&gt;
&lt;br /&gt;
== Systemeinsatz ==&lt;br /&gt;
=== Anwendungsbereiche === &lt;br /&gt;
Das Programm soll eingesetzt werden, um einen optimalen Entscheidungsbaum zu finden.&amp;lt;br&amp;gt;&lt;br /&gt;
Optimale Entscheidungsbäume werden benötigt, um aus einem gegebenen Datenbestand Voraussagen zum zukünftigen Verhalten treffen zu können.&amp;lt;br&amp;gt;&lt;br /&gt;
Speziell sollen diese optimalen Entscheidungsbäume mit der Software präsentiert werden können.&lt;br /&gt;
&lt;br /&gt;
=== Zielgruppen ===&lt;br /&gt;
Als Zielgruppe des Programmes sind in erster Linie die Auftraggeber Hr. Prof. Dr. Höhne und Fr. Prof. Dr. Monett-Diaz zu sehen, darauf folgend voraussichtlich aber auch die Dozenten und Studenten der HWR Berlin, speziell vorrangig aus der Fachrichtung Informatik.&lt;br /&gt;
&lt;br /&gt;
=== Betriebsbedingungen ===&lt;br /&gt;
Folgende Bedingungen sind für den Betrieb des Programmes relevant:&lt;br /&gt;
*Der Nutzer ist an einem aktuellen PC mit Windows-Betriebssystem (alternativ auch Linux oder Mac) angemeldet.&lt;br /&gt;
*Auf dem System ist eine Java-Umgebung vorhanden.&lt;br /&gt;
*Optimalerweise hat der PC ein für Präsentationen geeignetes Ausgabegerät (z.B. Beamer, genügend großer Monitor).&lt;br /&gt;
&lt;br /&gt;
== Technische Systemumgebung ==&lt;br /&gt;
=== Software === &lt;br /&gt;
*Das Programm soll auf allen gängigen Windows-Betriebssystemen lauffähig sein.&lt;br /&gt;
*Es soll eine Version für 32- und eine für 64 Bit Systeme geben.&lt;br /&gt;
*Es sollen weitere Betriebssysteme (Linux, Mac) unterstützt werden (optional).&lt;br /&gt;
*Eine Java-Umgebung muss auf den Zielsystemen vorhanden sein.&lt;br /&gt;
*Das Programm soll ohne Installation lauffähig sein.&lt;br /&gt;
&lt;br /&gt;
=== Hardware === &lt;br /&gt;
*Es wird ein aktuell üblicher Standard-PC vorausgesetzt (auf dem Windows mit Standardsoftware lauffähig ist).&lt;br /&gt;
*Es wird ein präsentationsfähiges Ausgabegerät (großer Monitor, Beamer, etc.) benötigt, da das Programm u.A. für Präsentationen eingesetzt werden soll.&lt;br /&gt;
&lt;br /&gt;
=== Orgware ===&lt;br /&gt;
*Es wird keine explizite Orgware benötigt. Der Anwender kann alle relevanten Einstellungen selbst direkt in der Software bzw. in der Konfigurations-Datei vornehmen.&lt;br /&gt;
&lt;br /&gt;
== Systemübersicht und -architektur ==&lt;br /&gt;
=== Übersicht über das System === &lt;br /&gt;
=== Systemarchitektur === &lt;br /&gt;
&amp;lt;b&amp;gt;Dieses Kapitel sollte einen groben Überblick über die erwartete Systemarchitektur geben, der die Verteilung der Funktionen auf die Systemmodule zeigt. Wiederverwendete Komponenten sollten gekennzeichnet werden.&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Schnittstellen des Systems ===&lt;br /&gt;
&lt;br /&gt;
== Systemanforderungen ==&lt;br /&gt;
Das Programm soll den Argorithmus, einen optimalen Entscheidungsbaum zu finden, demonstrieren.&lt;br /&gt;
=== Funktionale Anforderungen ===&lt;br /&gt;
* Das Programm soll unter allen gängigen Windows-Betriebssystemen ohne Installation lauffähig sein (Java darf vorrausgesetzt werden, sonst nichts spezielles).&lt;br /&gt;
==== Tabellenansicht ====&lt;br /&gt;
* Einlesen / Speichern einer Tabelle im .csv-Format (wobei das Trennzeichen ein Komma ist).&lt;br /&gt;
* Alle Attribute sind Zeichenketten.&lt;br /&gt;
* Eingeben / Editieren einer Tabelle muss möglich sein.&lt;br /&gt;
* Import und Export von Excel-Dateien.&lt;br /&gt;
&lt;br /&gt;
==== Baum automatisch ====&lt;br /&gt;
* Der optimale Entscheidungsbaum wird mit dem Algorithmus, der sukzessiv für jeden Knoten jeweils das Attribut mit der minimalen gewichteten Entropie auswählt, erzeugt und dargestellt.&lt;br /&gt;
* Wenn ein Knoten nur noch Objekte einer Klasse enthält, wird dieser nicht weiter aufgeteilt.&lt;br /&gt;
* Wenn ein Knoten nur noch eine bestimmte Anzahl (einstellbar - Voreinstellung 1) von Elementen enthält, wird nicht weiter aufgeteilt.&lt;br /&gt;
&lt;br /&gt;
=== Qualitätsanforderungen ===&lt;br /&gt;
=== Benutzeroberfläche ===&lt;br /&gt;
Weil das Programm auch für Präsentationszwecke eingesetzt werden soll, ist insbesondere auf eine entsprechende Gestaltung der Oberfläche (aussagekräftige Verwendung von Farben, ausreichend großer Schriftgrad, etc.) zu achten.&amp;lt;br&amp;gt;&lt;br /&gt;
Im Programm kann zwischen drei verschiedenen Ansichten hin- und hergeschalten werden, von denen stets genau eine sichtbar ist:&lt;br /&gt;
* Tabellenansicht&lt;br /&gt;
* Baum interaktiv&lt;br /&gt;
* Baum automatisch&lt;br /&gt;
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.&lt;br /&gt;
==== Tabellenansicht ====&lt;br /&gt;
* 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.&lt;br /&gt;
* (Farbliche) Markierung des Zielattributs.&lt;br /&gt;
&lt;br /&gt;
==== Baum interaktiv ====&lt;br /&gt;
* Zu Beginn wird nur der oberste Knoten (also der, der allen Objekten in der Tabelle entspricht) dargestellt.&lt;br /&gt;
* Das gilt ebenso, wenn in der Tabellenansicht ein Attribut hinzugefügt oder gelöscht oder das Zielattribut geändert wird.&lt;br /&gt;
* In jedem Knoten ist die Zahl der enthaltenden Objekte, die Zahl der Objekte jeder Klasse und die Entropie angegeben.&lt;br /&gt;
* Die Kanten sind mit dem entsprechenden Attributwert markiert.&lt;br /&gt;
* Bei Identifikation eines Knotens des Baumes wird eine Tabelle mit den Objekten, die von diesem Knoten repräsentiert werden, dargestellt.&lt;br /&gt;
* Wird in dieser Tabelle ein Attribut identifiziert, wird die gewichtete Entropie, die sich bei Aufteilung nach diesem Attribut ergeben würde, ausgegeben.&lt;br /&gt;
* In dieser Tabelle kann ein Attribut selektiert werden, so dass entsprechend den Werten dieses Attributes Unterknoten entstehen. Die Tabelle verschwindet. Hatte der Knoten schon Unterknoten, verschwinden diese natürlich ebenfalls.&lt;br /&gt;
&lt;br /&gt;
==== Baum automatisch ====&lt;br /&gt;
* In jedem Knoten ist die Zahl der enthaltenden Objekte, die Zahl der Objekte jeder Klasse und die Entropie automatisch dargestellt.&lt;br /&gt;
* Die Kanten sind mit dem entsprechenden Attributwert markiert.&lt;br /&gt;
* Bei Identifikation eines Knotens des Baumes wird eine Tabelle mit den Objekten, die von diesem Knoten repräsentiert werden, dargestellt.&lt;br /&gt;
&lt;br /&gt;
=== Andere nicht-funktionale Anforderungen ===&lt;br /&gt;
&lt;br /&gt;
== Systemmodelle ==&lt;br /&gt;
&amp;lt;b&amp;gt;Dieses Kapitel sollte eines oder mehrere Systemmodelle festlegen, die die Beziehung zwischen den Systemkomponenten und dem System und seiner Umgebung aufzeigen. Dies können Objekt-, Datenfluss- und semantische Datenmodelle sein.&amp;lt;/b&amp;gt;&lt;br /&gt;
=== Datenmodelle === &lt;br /&gt;
=== Andere Modelle === &lt;br /&gt;
&lt;br /&gt;
== Anforderungen an die Entwicklungsumgebung ==&lt;br /&gt;
Die hier genannten Aspekte werden für die qualitative Entwicklung der Software benötigt.&lt;br /&gt;
=== Software ===&lt;br /&gt;
Das Betriebssystem spielt keine Rolle, da Eclipse und Java Plattformunabhängig ist.&lt;br /&gt;
*Die Software &amp;quot;Eclipse&amp;quot; zur Programmierung mit Java wird benötigt. Hinzu kommt das Eclipse PlugIn &amp;quot;subversive&amp;quot; zur Handhabung der Versionsverwaltung&lt;br /&gt;
*Eine aktuelle Java-Developer-Version (jdk) wird zur Kompilierung benötigt. Außerdem werden folgende externe Bibliotheken benötigt:&lt;br /&gt;
** &amp;quot;dom4j&amp;quot;, &amp;quot;poi&amp;quot; zur Konvertierung und Erstellung von Excel-Spreadsheet Tabellen&lt;br /&gt;
** &amp;quot;swt&amp;quot;, das genutzte Framework zur Erstellung der grafischen Benutzeroberfläche&lt;br /&gt;
** &amp;quot;xmlbeans&amp;quot; zur Erstellung und Lesen von XML-Dateien&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
Für die verwendete Hardware sollten mindestens 2 GB Arbeitsspeicher verfügbar sein, um ein flüssiges Abarbeiten und Darstellen der relevanten Inhalte zu gewährleisten.&lt;br /&gt;
&lt;br /&gt;
=== Orgware ===&lt;br /&gt;
Vorrangig geschah die Kommunikation im Team über E-Mail Nachrichten und Kurzmitteilungen. Hier wurde beispielsweise Skype intensiv genutzt.&lt;br /&gt;
&lt;br /&gt;
== Ergänzungen ==&lt;br /&gt;
&lt;br /&gt;
== Anhang ==&lt;/div&gt;</summary>
		<author><name>Chge</name></author>	</entry>

	<entry>
		<id>https://www.p-servus.net/mediawiki/index.php?title=Optimaler_Entscheidungsbaum:_Pflichtenheft</id>
		<title>Optimaler Entscheidungsbaum: Pflichtenheft</title>
		<link rel="alternate" type="text/html" href="https://www.p-servus.net/mediawiki/index.php?title=Optimaler_Entscheidungsbaum:_Pflichtenheft"/>
				<updated>2012-05-22T10:20:36Z</updated>
		
		<summary type="html">&lt;p&gt;Chge: /* Anwendungsbereiche */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Über ==&lt;br /&gt;
Projekt: Optimaler Entscheidungsbaum &amp;lt;br /&amp;gt;&lt;br /&gt;
Autoren: Christian Gebauer, Sebastian Große, Jonathan Wiens, Benjamin Pfeiffer, Nico Smeenk &amp;lt;br /&amp;gt;&lt;br /&gt;
Modul: Software-Engineering II &amp;lt;br /&amp;gt;&lt;br /&gt;
Studiengang: Informatik 2010 &amp;lt;br /&amp;gt;&lt;br /&gt;
Fachbereich: Fachbereich 2, Duales Studium Wirtschaft • Technik, HWR Berlin &amp;lt;br /&amp;gt;&lt;br /&gt;
Datum:&lt;br /&gt;
&lt;br /&gt;
== Vorwort ==&lt;br /&gt;
Dieses Pflichtenheft ist eine Vereinbarung zwischen der Dozentin Frau Prof. Dr. Monett Diaz als Auftraggeberin und der Gruppe 1 des Kurses &amp;quot;Software-Engineering II&amp;quot; aus dem Studiengang &amp;quot;Informatik 2010&amp;quot;. Die Vereinbarung enthält alle Anforderungen an ein zu erstellendes Chat-Programm für die Hochschule für Wirtschaft und Recht Berlin. Das Dokument dient zur Strukturierung und genaueren Einschätzung des zeitlichen Aufwandes des Projektes und der Priorisierung der einzelnen Module. Somit lässt sich auch einschätzen, ob und mit welchen Kosten das Projekt durchführbar ist.&lt;br /&gt;
=== Erwartete Leserschaft ===&lt;br /&gt;
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.&lt;br /&gt;
=== Versionsgeschichte des Dokumentes ===&lt;br /&gt;
Dies ist die erste Version des Pflichtenheftes, weitere Versionen sind noch nicht in Planung.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
=== Allgemeines ===&lt;br /&gt;
Ein Entscheidungsbaum ist ein speziell aufgebauter Baum aus der Graphentheorie. Im Gegensatz zu einem &amp;quot;normalen&amp;quot; Baum ist ein Entscheidungsbaum geordnet und gerichtet und dient dem Zweck Entscheidungsregeln darzustellen. Ein Entscheidungsbaum kann durch Algorithmen auf Basis von tabellarischen Daten erstellt werden. Aufgrund der Tatsache, dass diese Bäume Entscheidungsprobleme lösen  bzw. vereinfachen können, wird diese Methode in vielen Bereichen angewandt. Hauptsächlich benutzt, wird ein Entscheidungsbaum beim Data-Mining, also der umfassenden Theroie der Datenauswertung; aber auch in der Betriebswirtschaftslehre, um effektives Marketing zu betreiben, oder Investment-Geschäfte zu bewerten. Darüber hinaus gibt es viele denkbare Einsatzbereiche, da Entscheidungen fast überall getroffen werden müssen.&lt;br /&gt;
&lt;br /&gt;
Ein Entscheidungsbaum besteht aus Knoten und Blättern. Er muss einen Wurzelknoten besitzen und wird durch Kanten verbunden.&lt;br /&gt;
Ein Knoten repräsentiert ein(en) Attribut(-namen), Kanten die zulässigen Attributwerte und die Blätter zeigen die Attributwerte (meistens klassifiziert) des Zielattributs an.&lt;br /&gt;
&lt;br /&gt;
In diesem Pflichtenheft wird nun ein Programm beschrieben, dass einen Entscheidungsbaum auf Basis einer Tabelle konstruieren kann. Dieses Programm ist als Auftragsarbeit von Hr. Prof. Dr. Höhne und Fr. Prof. Dr. Monett-Diaz zu sehen, bestimmte Funtktionen und Kriterien sind bereits vorgegeben.&lt;br /&gt;
=== Abgrenzungen ===&lt;br /&gt;
==== Ausgangssituation ====&lt;br /&gt;
Im Auftrag von Hr. Prof. Dr. Höhne und Fr. Prof. Dr. Monett-Diaz wird ein Programm, im Rahmen des Moduls SWE-2, entwickelt, welches dazu dienen soll Entscheidungsbäume zu konstruieren und darzustellen. Als Datenbasis dienen Excel- und CSV-Dateien.&lt;br /&gt;
Mit Hilfe dieser Daten soll dann ein &amp;quot;optimaler Entscheidungsbaum&amp;quot; aufgebaut werden, wobei zu beachten ist, dass der Begriff &amp;quot;optimal&amp;quot; nur relativ gesehen werden kann, und abhängig vom gewählten Algorhitmus und der Art des Datenbestandes ist.&lt;br /&gt;
&lt;br /&gt;
=== Systemname ===&lt;br /&gt;
Aufgrund der Tatsache, dass ein Entscheidungsbaum nach bestimmten Regeln ''aufgebaut'' wird und der Anwender einen ''Lerneffekt'' aus diesem Baum ziehen kann, in dem Entscheidungen vereinfacht werden, wurde beschlossen das Projekt und das Programm &amp;quot;Baumschule - Optimale Entscheidungsbäume&amp;quot; zu nennen. &lt;br /&gt;
==== Allgemeine Systembeschreibung ====&lt;br /&gt;
Das System bzw. das Programm bietet hauptsächlich drei grobe Funtkionen an:&lt;br /&gt;
* Laden/Editieren eines Datenbestands durch eine Datei (Excel bzw. CSV)&lt;br /&gt;
* Erstellen eines Entscheidungsbaumes durch einen gegebenen Algorithmus, oder einer Nutzervorgabe&lt;br /&gt;
* Präsentation des Ergebnisses&lt;br /&gt;
&lt;br /&gt;
Diese 3 Hauptfunktionen lassen sich näher beschreiben:&lt;br /&gt;
* Es gibt eine graphische Benutzeroberfläche mit der der Endandwender alle Funktionen des Programms benutzen kann&lt;br /&gt;
* Es gibt eine Funktion zum Laden/Speichern einer Excel- oder CSV-Datei&lt;br /&gt;
* Geladene Tabellendaten können editiert werden.&lt;br /&gt;
* Ein Baum kann automatisch generiert werden, ein ZielAttribut kann vorher gewählt werden.&lt;br /&gt;
* Ein Baum kann teilweise manuell erstellt werden, in dem für jeden Knoten die nächste Attributebene selbst gewählt werden kann.&lt;br /&gt;
* Es können jederzeit detaillierte Informationen über einen Baum bzw. dessen Tabellendaten angezeigt werden.&lt;br /&gt;
&lt;br /&gt;
==== Vorteile und Nutzen ====&lt;br /&gt;
&lt;br /&gt;
Das System bietet die Bearbeitung eines Datenbestandes an und arbeitet nach dem Laden einer Datei formatunabhängig. Ist ein Datenbestand bearbeitet worden, ist dieser auch wieder exportierbar.&lt;br /&gt;
Die Oberfläche bietet die Möglichkeit einen, gemäß des Algorithmus, optimalen Baumes darzustellen. Die Stärke liegt hierbei einerseits auf der Präsentation und andererseits bei der leichten Editierbarkeit, denn der Baum kann einfach durch Mausklicks bearbeitet und untersucht werden. Ein manuelles zeichnen und berechnen des Baumes entfällt. &lt;br /&gt;
Gerade bei großen Daten ist ein Baum nur durch ein Programm wie dieses erstellbar. Arbeitet der Algorithmus fehlerfrei, kann ''immer wieder'' und ''reproduzierbar'' ein Baum aufgebaut werden.&lt;br /&gt;
&lt;br /&gt;
=== Überblick über den Rest des Dokuments ===&lt;br /&gt;
&lt;br /&gt;
Die nachfolgenden Abschnitte befassen sich detaillierter und gründlicher mit den Funktionen des Programms. Es werden Vereinbarungen festgelegt, welches Verhalten das Programm leisten kann und muss.&lt;br /&gt;
&lt;br /&gt;
== Fachbegriffe, Akronyme und Abkürzungen ==&lt;br /&gt;
&amp;lt;b&amp;gt;Dieser Teil soll die im Dokument verwendeten technischen Fachbergriffe festlegen. Dabei soll keine Erfahrung oder Fachwissen beim Leser vorausgesetzt werden.&amp;lt;/b&amp;gt;&lt;br /&gt;
=== Glossar ===&lt;br /&gt;
=== Akronyme ===&lt;br /&gt;
=== Abkürzungen ===&lt;br /&gt;
&lt;br /&gt;
== Zielbestimmungen ==&lt;br /&gt;
Die folgenden Ziele sind in 3 Kategorien (Muss-, Soll- , Kannkriterien) unterteilt. Durch diese Unterteilung wird eine Prioritätshierarchie geschaffen, wobei Musskriterien die höchste Priorität erhalten und entsprechend vorrangig abgearbeitet werden. &lt;br /&gt;
&lt;br /&gt;
=== Musskriterien ===&lt;br /&gt;
Die Muss-Kritierien ergeben sich größtenteils aus der Aufgabenbeschreibung von Hr. Höhne und Fr. Monett-Diaz und sollen hier abgekürzt wiedergegeben werden:&lt;br /&gt;
* Das Programm muss in der Lage sein mit einem Datenbestand von bis zu 10 Attributen und 100 Objekten arbeiten zu können.&lt;br /&gt;
* Das Programm muss mit Tabellen-Dateien umgehen können. (Laden/Speichern von Excel- und CSV-Dateien)&lt;br /&gt;
* Das Programm muss ein Bearbeiten der Tabellendaten zulassen.&lt;br /&gt;
* Es muss eine graphische Benutzeroberfläche geben.&lt;br /&gt;
* Das Zielattribut muss farblich hervorgehoben werden.&lt;br /&gt;
&lt;br /&gt;
* Das Programm muss eine Möglichkeit bieten den Baum, durch Auswahl des nächsten Attributs, teilweise manuell aufzubauen.&lt;br /&gt;
* Wenn der Baum interaktiv zusammengestellt wird, darf(muss) nur der oberste Knoten präsentiert werden.&lt;br /&gt;
* Bei der Präsentation des interaktiven Baums kann dieser durch ein Mausklick &amp;quot;untersucht&amp;quot; werden. Es wird bei einem Knoten eine Tabelle angezigt, die die Objekte anzeigt, die durch den Knoten repräsentiert werden.&lt;br /&gt;
* Es kann in der Tabelle ein Attribut untersucht werden, woraufhin die gewichtete Entropie, die sichbei Aufteilung nach diesem Attribut ergeben würde, angezeigt wird.&lt;br /&gt;
&lt;br /&gt;
* Das Programm muss anhand eines vorgegebenen Algorithmus (''Konzept der Entropie'') einen Entscheidungsbaum erstellen können.&lt;br /&gt;
* Bei der automatischen Erstellung wird ein Knoten der nur noch Objekte einer Klasse enthält nicht weiter aufgeteilt, selbiges gilt wenn der Knoten eine (einstellbare) Anzahl von Elementen enthält.&lt;br /&gt;
* Bei der Präsentation des autmatischen Baums kann dieser durch ein Mausklick &amp;quot;untersucht&amp;quot; werden. Es wird bei einem Knoten eine Tabelle angezigt, die die Objekte anzeigt, die durch den Knoten repräsentiert werden.&lt;br /&gt;
&lt;br /&gt;
* Bei der Präsentation des interaktiven und autmatischen Baums müssen die Kanten mit dem entsprechenden Attributewert angezeigt werden.&lt;br /&gt;
* Bei der Präsentation des interaktiven und automatischen Baums muss die Zahl der enthaltenen Objekte, die Zahl jeder Klasse und die Entropie in jedem Knoten angezeigt werden.&lt;br /&gt;
* Der Entscheidungsbaum muss, egal ob manuell oder autmoatisch erstellt, bei Änderungen des Datenbestandes aktualisiert werden.&lt;br /&gt;
&lt;br /&gt;
* Das Programm muss lauffähig sein und ausführbar vorliegen.&lt;br /&gt;
&lt;br /&gt;
=== Sollkriterien ===&lt;br /&gt;
* Das Programm soll an den wichtigen Stellen durchdachte Hilfebeschreibungen(ToolTips) anzeigen können.&lt;br /&gt;
* Das Programm soll für den Benutzer ein vollständiges Handbuch bereitstellen, dass jederzeit über das Menü aufgerufen werden kann.&lt;br /&gt;
* Das Programm soll bei bestimmten Fehlern oder unerlaubten Nutzeraktionen eine graphische Fehlermeldung anzeigen.&lt;br /&gt;
* Das Programm soll zum Nachverfolgen von Programm-Algorithmen und -Abläufen eine Log-Datei erstellen.&lt;br /&gt;
* Die Oberfläche soll für den Nutzer farblich und organisatorisch übersichtlich und leicht zu bedienen sein.&lt;br /&gt;
* Das Erstellen eines Baumes soll nicht länger als 5 Sekunden dauern. (Vorrausgesetzt das Datenlimit von 10*100 Attributwerten wird eingehalten)&lt;br /&gt;
* Die Oberfläche soll neben der einfachen Ansicht einen Präsentationsmodus bieten, in dem der Baum als Vollbild dargestellt wird.&lt;br /&gt;
* Für die Anzeige des Baumes soll eine Legende bereitgestellt werden, die den Aufbau eines dargestellten Baumes erklärt.&lt;br /&gt;
&lt;br /&gt;
=== Kannkriterien ===&lt;br /&gt;
* Das Programm kann die Möglichkeit bieten, über eine Konfigurationsschnittstelle verschiedene Programmparameter anzupassen.&lt;br /&gt;
* Für den Benutzer kann es eine grafische Möglichkeit geben die Konfigurationsschnittstelle zu nutzen.&lt;br /&gt;
* Der Nutzer kann die Möglichkeit erhalten den dynamisch erstellten Baum als xml-Datei zu speichern.&lt;br /&gt;
* Der Nutzer kann die Möglichkeit erhalten die abgespeicherte xml-Datei wieder zu laden; die Oberfläche stellt dann automatisch die Tabelle und die Bäume wieder her.&lt;br /&gt;
* Das Programm kann die Möglichkeit bieten den dynamischen und automatischen Baum als Bild-Datei(*.png ; *.jpg) abzuspeichern.&lt;br /&gt;
* Die Zeichenoberfläche, in dem der Baum (dynamisch oder manuell) präsentiert wird, kann durch einen Schieberegler heran- bzw. herausgezoomt werden.&lt;br /&gt;
&lt;br /&gt;
=== Abgrenzungskriterien ===&lt;br /&gt;
&lt;br /&gt;
* Die Software setzt eine installierte Version von Java voraus.&lt;br /&gt;
* Es gibt für jedes Betriebssystem (Windows, Linux, Mac) und dessen Ausprägung (x64, x32) jeweils eine Version.&lt;br /&gt;
* Die Software kann nur mit Datenformaten umgehen, die Excel-Konform sind- (bis 2003: .xls, ab 2007: .xlsx) oder dem CSV-Format entsprechen (Trennzeichen: &amp;quot;,&amp;quot; (Ausgesprochen: Komma)&lt;br /&gt;
* Die Software benutzt einen fest vorgegebenen Algorithmus (''Konzept der Entropie'').&lt;br /&gt;
* Die Tabelle kann maximal 10 Attribute und jeweils 100 Attributwerte enthalten und darf innerhalb der Tabellengrenzen keine leeren Zellenwerte (leere Strings) enthalten.&lt;br /&gt;
&lt;br /&gt;
== Systemeinsatz ==&lt;br /&gt;
=== Anwendungsbereiche === &lt;br /&gt;
Das Programm soll eingesetzt werden, um einen optimalen Entscheidungsbaum zu finden.&amp;lt;br&amp;gt;&lt;br /&gt;
Optimale Entscheidungsbäume werden benötigt, um aus einem gegebenen Datenbestand Voraussagen zum zukünftigen Verhalten treffen zu können.&amp;lt;br&amp;gt;&lt;br /&gt;
Speziell sollen diese optimalen Entscheidungsbäume mit der Software präsentiert werden können.&lt;br /&gt;
&lt;br /&gt;
=== Zielgruppen ===&lt;br /&gt;
&lt;br /&gt;
=== Betriebsbedingungen ===&lt;br /&gt;
Folgende Bedingungen sind für den Betrieb des Programmes relevant:&lt;br /&gt;
*Der Nutzer ist an einem aktuellen PC mit Windows-Betriebssystem (alternativ auch Linux oder Mac) angemeldet.&lt;br /&gt;
*Auf dem System ist eine Java-Umgebung vorhanden.&lt;br /&gt;
*Optimalerweise hat der PC ein für Präsentationen geeignetes Ausgabegerät (z.B. Beamer, genügend großer Monitor).&lt;br /&gt;
&lt;br /&gt;
== Technische Systemumgebung ==&lt;br /&gt;
=== Software === &lt;br /&gt;
*Das Programm soll auf allen gängigen Windows-Betriebssystemen lauffähig sein.&lt;br /&gt;
*Es soll eine Version für 32- und eine für 64 Bit Systeme geben.&lt;br /&gt;
*Es sollen weitere Betriebssysteme (Linux, Mac) unterstützt werden (optional).&lt;br /&gt;
*Eine Java-Umgebung muss auf den Zielsystemen vorhanden sein.&lt;br /&gt;
*Das Programm soll ohne Installation lauffähig sein.&lt;br /&gt;
&lt;br /&gt;
=== Hardware === &lt;br /&gt;
*Es wird ein aktuell üblicher Standard-PC vorausgesetzt (auf dem Windows mit Standardsoftware lauffähig ist).&lt;br /&gt;
*Es wird ein präsentationsfähiges Ausgabegerät (großer Monitor, Beamer, etc.) benötigt, da das Programm u.A. für Präsentationen eingesetzt werden soll.&lt;br /&gt;
&lt;br /&gt;
=== Orgware ===&lt;br /&gt;
*Es wird keine explizite Orgware benötigt. Der Anwender kann alle relevanten Einstellungen selbst direkt in der Software bzw. in der Konfigurations-Datei vornehmen.&lt;br /&gt;
&lt;br /&gt;
== Systemübersicht und -architektur ==&lt;br /&gt;
=== Übersicht über das System === &lt;br /&gt;
=== Systemarchitektur === &lt;br /&gt;
&amp;lt;b&amp;gt;Dieses Kapitel sollte einen groben Überblick über die erwartete Systemarchitektur geben, der die Verteilung der Funktionen auf die Systemmodule zeigt. Wiederverwendete Komponenten sollten gekennzeichnet werden.&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Schnittstellen des Systems ===&lt;br /&gt;
&lt;br /&gt;
== Systemanforderungen ==&lt;br /&gt;
Das Programm soll den Argorithmus, einen optimalen Entscheidungsbaum zu finden, demonstrieren.&lt;br /&gt;
=== Funktionale Anforderungen ===&lt;br /&gt;
* Das Programm soll unter allen gängigen Windows-Betriebssystemen ohne Installation lauffähig sein (Java darf vorrausgesetzt werden, sonst nichts spezielles).&lt;br /&gt;
==== Tabellenansicht ====&lt;br /&gt;
* Einlesen / Speichern einer Tabelle im .csv-Format (wobei das Trennzeichen ein Komma ist).&lt;br /&gt;
* Alle Attribute sind Zeichenketten.&lt;br /&gt;
* Eingeben / Editieren einer Tabelle muss möglich sein.&lt;br /&gt;
* Import und Export von Excel-Dateien.&lt;br /&gt;
&lt;br /&gt;
==== Baum automatisch ====&lt;br /&gt;
* Der optimale Entscheidungsbaum wird mit dem Algorithmus, der sukzessiv für jeden Knoten jeweils das Attribut mit der minimalen gewichteten Entropie auswählt, erzeugt und dargestellt.&lt;br /&gt;
* Wenn ein Knoten nur noch Objekte einer Klasse enthält, wird dieser nicht weiter aufgeteilt.&lt;br /&gt;
* Wenn ein Knoten nur noch eine bestimmte Anzahl (einstellbar - Voreinstellung 1) von Elementen enthält, wird nicht weiter aufgeteilt.&lt;br /&gt;
&lt;br /&gt;
=== Qualitätsanforderungen ===&lt;br /&gt;
=== Benutzeroberfläche ===&lt;br /&gt;
Weil das Programm auch für Präsentationszwecke eingesetzt werden soll, ist insbesondere auf eine entsprechende Gestaltung der Oberfläche (aussagekräftige Verwendung von Farben, ausreichend großer Schriftgrad, etc.) zu achten.&amp;lt;br&amp;gt;&lt;br /&gt;
Im Programm kann zwischen drei verschiedenen Ansichten hin- und hergeschalten werden, von denen stets genau eine sichtbar ist:&lt;br /&gt;
* Tabellenansicht&lt;br /&gt;
* Baum interaktiv&lt;br /&gt;
* Baum automatisch&lt;br /&gt;
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.&lt;br /&gt;
==== Tabellenansicht ====&lt;br /&gt;
* 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.&lt;br /&gt;
* (Farbliche) Markierung des Zielattributs.&lt;br /&gt;
&lt;br /&gt;
==== Baum interaktiv ====&lt;br /&gt;
* Zu Beginn wird nur der oberste Knoten (also der, der allen Objekten in der Tabelle entspricht) dargestellt.&lt;br /&gt;
* Das gilt ebenso, wenn in der Tabellenansicht ein Attribut hinzugefügt oder gelöscht oder das Zielattribut geändert wird.&lt;br /&gt;
* In jedem Knoten ist die Zahl der enthaltenden Objekte, die Zahl der Objekte jeder Klasse und die Entropie angegeben.&lt;br /&gt;
* Die Kanten sind mit dem entsprechenden Attributwert markiert.&lt;br /&gt;
* Bei Identifikation eines Knotens des Baumes wird eine Tabelle mit den Objekten, die von diesem Knoten repräsentiert werden, dargestellt.&lt;br /&gt;
* Wird in dieser Tabelle ein Attribut identifiziert, wird die gewichtete Entropie, die sich bei Aufteilung nach diesem Attribut ergeben würde, ausgegeben.&lt;br /&gt;
* In dieser Tabelle kann ein Attribut selektiert werden, so dass entsprechend den Werten dieses Attributes Unterknoten entstehen. Die Tabelle verschwindet. Hatte der Knoten schon Unterknoten, verschwinden diese natürlich ebenfalls.&lt;br /&gt;
&lt;br /&gt;
==== Baum automatisch ====&lt;br /&gt;
* In jedem Knoten ist die Zahl der enthaltenden Objekte, die Zahl der Objekte jeder Klasse und die Entropie automatisch dargestellt.&lt;br /&gt;
* Die Kanten sind mit dem entsprechenden Attributwert markiert.&lt;br /&gt;
* Bei Identifikation eines Knotens des Baumes wird eine Tabelle mit den Objekten, die von diesem Knoten repräsentiert werden, dargestellt.&lt;br /&gt;
&lt;br /&gt;
=== Andere nicht-funktionale Anforderungen ===&lt;br /&gt;
&lt;br /&gt;
== Systemmodelle ==&lt;br /&gt;
&amp;lt;b&amp;gt;Dieses Kapitel sollte eines oder mehrere Systemmodelle festlegen, die die Beziehung zwischen den Systemkomponenten und dem System und seiner Umgebung aufzeigen. Dies können Objekt-, Datenfluss- und semantische Datenmodelle sein.&amp;lt;/b&amp;gt;&lt;br /&gt;
=== Datenmodelle === &lt;br /&gt;
=== Andere Modelle === &lt;br /&gt;
&lt;br /&gt;
== Anforderungen an die Entwicklungsumgebung ==&lt;br /&gt;
Die hier genannten Aspekte werden für die qualitative Entwicklung der Software benötigt.&lt;br /&gt;
=== Software ===&lt;br /&gt;
Das Betriebssystem spielt keine Rolle, da Eclipse und Java Plattformunabhängig ist.&lt;br /&gt;
*Die Software &amp;quot;Eclipse&amp;quot; zur Programmierung mit Java wird benötigt. Hinzu kommt das Eclipse PlugIn &amp;quot;subversive&amp;quot; zur Handhabung der Versionsverwaltung&lt;br /&gt;
*Eine aktuelle Java-Developer-Version (jdk) wird zur Kompilierung benötigt. Außerdem werden folgende externe Bibliotheken benötigt:&lt;br /&gt;
** &amp;quot;dom4j&amp;quot;, &amp;quot;poi&amp;quot; zur Konvertierung und Erstellung von Excel-Spreadsheet Tabellen&lt;br /&gt;
** &amp;quot;swt&amp;quot;, das genutzte Framework zur Erstellung der grafischen Benutzeroberfläche&lt;br /&gt;
** &amp;quot;xmlbeans&amp;quot; zur Erstellung und Lesen von XML-Dateien&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
Für die verwendete Hardware sollten mindestens 2 GB Arbeitsspeicher verfügbar sein, um ein flüssiges Abarbeiten und Darstellen der relevanten Inhalte zu gewährleisten.&lt;br /&gt;
&lt;br /&gt;
=== Orgware ===&lt;br /&gt;
Vorrangig geschah die Kommunikation im Team über E-Mail Nachrichten und Kurzmitteilungen. Hier wurde beispielsweise Skype intensiv genutzt.&lt;br /&gt;
&lt;br /&gt;
== Ergänzungen ==&lt;br /&gt;
&lt;br /&gt;
== Anhang ==&lt;/div&gt;</summary>
		<author><name>Chge</name></author>	</entry>

	<entry>
		<id>https://www.p-servus.net/mediawiki/index.php?title=Optimaler_Entscheidungsbaum:_Pflichtenheft</id>
		<title>Optimaler Entscheidungsbaum: Pflichtenheft</title>
		<link rel="alternate" type="text/html" href="https://www.p-servus.net/mediawiki/index.php?title=Optimaler_Entscheidungsbaum:_Pflichtenheft"/>
				<updated>2012-05-22T10:19:55Z</updated>
		
		<summary type="html">&lt;p&gt;Chge: /* Systemeinsatz */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Über ==&lt;br /&gt;
Projekt: Optimaler Entscheidungsbaum &amp;lt;br /&amp;gt;&lt;br /&gt;
Autoren: Christian Gebauer, Sebastian Große, Jonathan Wiens, Benjamin Pfeiffer, Nico Smeenk &amp;lt;br /&amp;gt;&lt;br /&gt;
Modul: Software-Engineering II &amp;lt;br /&amp;gt;&lt;br /&gt;
Studiengang: Informatik 2010 &amp;lt;br /&amp;gt;&lt;br /&gt;
Fachbereich: Fachbereich 2, Duales Studium Wirtschaft • Technik, HWR Berlin &amp;lt;br /&amp;gt;&lt;br /&gt;
Datum:&lt;br /&gt;
&lt;br /&gt;
== Vorwort ==&lt;br /&gt;
Dieses Pflichtenheft ist eine Vereinbarung zwischen der Dozentin Frau Prof. Dr. Monett Diaz als Auftraggeberin und der Gruppe 1 des Kurses &amp;quot;Software-Engineering II&amp;quot; aus dem Studiengang &amp;quot;Informatik 2010&amp;quot;. Die Vereinbarung enthält alle Anforderungen an ein zu erstellendes Chat-Programm für die Hochschule für Wirtschaft und Recht Berlin. Das Dokument dient zur Strukturierung und genaueren Einschätzung des zeitlichen Aufwandes des Projektes und der Priorisierung der einzelnen Module. Somit lässt sich auch einschätzen, ob und mit welchen Kosten das Projekt durchführbar ist.&lt;br /&gt;
=== Erwartete Leserschaft ===&lt;br /&gt;
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.&lt;br /&gt;
=== Versionsgeschichte des Dokumentes ===&lt;br /&gt;
Dies ist die erste Version des Pflichtenheftes, weitere Versionen sind noch nicht in Planung.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
=== Allgemeines ===&lt;br /&gt;
Ein Entscheidungsbaum ist ein speziell aufgebauter Baum aus der Graphentheorie. Im Gegensatz zu einem &amp;quot;normalen&amp;quot; Baum ist ein Entscheidungsbaum geordnet und gerichtet und dient dem Zweck Entscheidungsregeln darzustellen. Ein Entscheidungsbaum kann durch Algorithmen auf Basis von tabellarischen Daten erstellt werden. Aufgrund der Tatsache, dass diese Bäume Entscheidungsprobleme lösen  bzw. vereinfachen können, wird diese Methode in vielen Bereichen angewandt. Hauptsächlich benutzt, wird ein Entscheidungsbaum beim Data-Mining, also der umfassenden Theroie der Datenauswertung; aber auch in der Betriebswirtschaftslehre, um effektives Marketing zu betreiben, oder Investment-Geschäfte zu bewerten. Darüber hinaus gibt es viele denkbare Einsatzbereiche, da Entscheidungen fast überall getroffen werden müssen.&lt;br /&gt;
&lt;br /&gt;
Ein Entscheidungsbaum besteht aus Knoten und Blättern. Er muss einen Wurzelknoten besitzen und wird durch Kanten verbunden.&lt;br /&gt;
Ein Knoten repräsentiert ein(en) Attribut(-namen), Kanten die zulässigen Attributwerte und die Blätter zeigen die Attributwerte (meistens klassifiziert) des Zielattributs an.&lt;br /&gt;
&lt;br /&gt;
In diesem Pflichtenheft wird nun ein Programm beschrieben, dass einen Entscheidungsbaum auf Basis einer Tabelle konstruieren kann. Dieses Programm ist als Auftragsarbeit von Hr. Prof. Dr. Höhne und Fr. Prof. Dr. Monett-Diaz zu sehen, bestimmte Funtktionen und Kriterien sind bereits vorgegeben.&lt;br /&gt;
=== Abgrenzungen ===&lt;br /&gt;
==== Ausgangssituation ====&lt;br /&gt;
Im Auftrag von Hr. Prof. Dr. Höhne und Fr. Prof. Dr. Monett-Diaz wird ein Programm, im Rahmen des Moduls SWE-2, entwickelt, welches dazu dienen soll Entscheidungsbäume zu konstruieren und darzustellen. Als Datenbasis dienen Excel- und CSV-Dateien.&lt;br /&gt;
Mit Hilfe dieser Daten soll dann ein &amp;quot;optimaler Entscheidungsbaum&amp;quot; aufgebaut werden, wobei zu beachten ist, dass der Begriff &amp;quot;optimal&amp;quot; nur relativ gesehen werden kann, und abhängig vom gewählten Algorhitmus und der Art des Datenbestandes ist.&lt;br /&gt;
&lt;br /&gt;
=== Systemname ===&lt;br /&gt;
Aufgrund der Tatsache, dass ein Entscheidungsbaum nach bestimmten Regeln ''aufgebaut'' wird und der Anwender einen ''Lerneffekt'' aus diesem Baum ziehen kann, in dem Entscheidungen vereinfacht werden, wurde beschlossen das Projekt und das Programm &amp;quot;Baumschule - Optimale Entscheidungsbäume&amp;quot; zu nennen. &lt;br /&gt;
==== Allgemeine Systembeschreibung ====&lt;br /&gt;
Das System bzw. das Programm bietet hauptsächlich drei grobe Funtkionen an:&lt;br /&gt;
* Laden/Editieren eines Datenbestands durch eine Datei (Excel bzw. CSV)&lt;br /&gt;
* Erstellen eines Entscheidungsbaumes durch einen gegebenen Algorithmus, oder einer Nutzervorgabe&lt;br /&gt;
* Präsentation des Ergebnisses&lt;br /&gt;
&lt;br /&gt;
Diese 3 Hauptfunktionen lassen sich näher beschreiben:&lt;br /&gt;
* Es gibt eine graphische Benutzeroberfläche mit der der Endandwender alle Funktionen des Programms benutzen kann&lt;br /&gt;
* Es gibt eine Funktion zum Laden/Speichern einer Excel- oder CSV-Datei&lt;br /&gt;
* Geladene Tabellendaten können editiert werden.&lt;br /&gt;
* Ein Baum kann automatisch generiert werden, ein ZielAttribut kann vorher gewählt werden.&lt;br /&gt;
* Ein Baum kann teilweise manuell erstellt werden, in dem für jeden Knoten die nächste Attributebene selbst gewählt werden kann.&lt;br /&gt;
* Es können jederzeit detaillierte Informationen über einen Baum bzw. dessen Tabellendaten angezeigt werden.&lt;br /&gt;
&lt;br /&gt;
==== Vorteile und Nutzen ====&lt;br /&gt;
&lt;br /&gt;
Das System bietet die Bearbeitung eines Datenbestandes an und arbeitet nach dem Laden einer Datei formatunabhängig. Ist ein Datenbestand bearbeitet worden, ist dieser auch wieder exportierbar.&lt;br /&gt;
Die Oberfläche bietet die Möglichkeit einen, gemäß des Algorithmus, optimalen Baumes darzustellen. Die Stärke liegt hierbei einerseits auf der Präsentation und andererseits bei der leichten Editierbarkeit, denn der Baum kann einfach durch Mausklicks bearbeitet und untersucht werden. Ein manuelles zeichnen und berechnen des Baumes entfällt. &lt;br /&gt;
Gerade bei großen Daten ist ein Baum nur durch ein Programm wie dieses erstellbar. Arbeitet der Algorithmus fehlerfrei, kann ''immer wieder'' und ''reproduzierbar'' ein Baum aufgebaut werden.&lt;br /&gt;
&lt;br /&gt;
=== Überblick über den Rest des Dokuments ===&lt;br /&gt;
&lt;br /&gt;
Die nachfolgenden Abschnitte befassen sich detaillierter und gründlicher mit den Funktionen des Programms. Es werden Vereinbarungen festgelegt, welches Verhalten das Programm leisten kann und muss.&lt;br /&gt;
&lt;br /&gt;
== Fachbegriffe, Akronyme und Abkürzungen ==&lt;br /&gt;
&amp;lt;b&amp;gt;Dieser Teil soll die im Dokument verwendeten technischen Fachbergriffe festlegen. Dabei soll keine Erfahrung oder Fachwissen beim Leser vorausgesetzt werden.&amp;lt;/b&amp;gt;&lt;br /&gt;
=== Glossar ===&lt;br /&gt;
=== Akronyme ===&lt;br /&gt;
=== Abkürzungen ===&lt;br /&gt;
&lt;br /&gt;
== Zielbestimmungen ==&lt;br /&gt;
Die folgenden Ziele sind in 3 Kategorien (Muss-, Soll- , Kannkriterien) unterteilt. Durch diese Unterteilung wird eine Prioritätshierarchie geschaffen, wobei Musskriterien die höchste Priorität erhalten und entsprechend vorrangig abgearbeitet werden. &lt;br /&gt;
&lt;br /&gt;
=== Musskriterien ===&lt;br /&gt;
Die Muss-Kritierien ergeben sich größtenteils aus der Aufgabenbeschreibung von Hr. Höhne und Fr. Monett-Diaz und sollen hier abgekürzt wiedergegeben werden:&lt;br /&gt;
* Das Programm muss in der Lage sein mit einem Datenbestand von bis zu 10 Attributen und 100 Objekten arbeiten zu können.&lt;br /&gt;
* Das Programm muss mit Tabellen-Dateien umgehen können. (Laden/Speichern von Excel- und CSV-Dateien)&lt;br /&gt;
* Das Programm muss ein Bearbeiten der Tabellendaten zulassen.&lt;br /&gt;
* Es muss eine graphische Benutzeroberfläche geben.&lt;br /&gt;
* Das Zielattribut muss farblich hervorgehoben werden.&lt;br /&gt;
&lt;br /&gt;
* Das Programm muss eine Möglichkeit bieten den Baum, durch Auswahl des nächsten Attributs, teilweise manuell aufzubauen.&lt;br /&gt;
* Wenn der Baum interaktiv zusammengestellt wird, darf(muss) nur der oberste Knoten präsentiert werden.&lt;br /&gt;
* Bei der Präsentation des interaktiven Baums kann dieser durch ein Mausklick &amp;quot;untersucht&amp;quot; werden. Es wird bei einem Knoten eine Tabelle angezigt, die die Objekte anzeigt, die durch den Knoten repräsentiert werden.&lt;br /&gt;
* Es kann in der Tabelle ein Attribut untersucht werden, woraufhin die gewichtete Entropie, die sichbei Aufteilung nach diesem Attribut ergeben würde, angezeigt wird.&lt;br /&gt;
&lt;br /&gt;
* Das Programm muss anhand eines vorgegebenen Algorithmus (''Konzept der Entropie'') einen Entscheidungsbaum erstellen können.&lt;br /&gt;
* Bei der automatischen Erstellung wird ein Knoten der nur noch Objekte einer Klasse enthält nicht weiter aufgeteilt, selbiges gilt wenn der Knoten eine (einstellbare) Anzahl von Elementen enthält.&lt;br /&gt;
* Bei der Präsentation des autmatischen Baums kann dieser durch ein Mausklick &amp;quot;untersucht&amp;quot; werden. Es wird bei einem Knoten eine Tabelle angezigt, die die Objekte anzeigt, die durch den Knoten repräsentiert werden.&lt;br /&gt;
&lt;br /&gt;
* Bei der Präsentation des interaktiven und autmatischen Baums müssen die Kanten mit dem entsprechenden Attributewert angezeigt werden.&lt;br /&gt;
* Bei der Präsentation des interaktiven und automatischen Baums muss die Zahl der enthaltenen Objekte, die Zahl jeder Klasse und die Entropie in jedem Knoten angezeigt werden.&lt;br /&gt;
* Der Entscheidungsbaum muss, egal ob manuell oder autmoatisch erstellt, bei Änderungen des Datenbestandes aktualisiert werden.&lt;br /&gt;
&lt;br /&gt;
* Das Programm muss lauffähig sein und ausführbar vorliegen.&lt;br /&gt;
&lt;br /&gt;
=== Sollkriterien ===&lt;br /&gt;
* Das Programm soll an den wichtigen Stellen durchdachte Hilfebeschreibungen(ToolTips) anzeigen können.&lt;br /&gt;
* Das Programm soll für den Benutzer ein vollständiges Handbuch bereitstellen, dass jederzeit über das Menü aufgerufen werden kann.&lt;br /&gt;
* Das Programm soll bei bestimmten Fehlern oder unerlaubten Nutzeraktionen eine graphische Fehlermeldung anzeigen.&lt;br /&gt;
* Das Programm soll zum Nachverfolgen von Programm-Algorithmen und -Abläufen eine Log-Datei erstellen.&lt;br /&gt;
* Die Oberfläche soll für den Nutzer farblich und organisatorisch übersichtlich und leicht zu bedienen sein.&lt;br /&gt;
* Das Erstellen eines Baumes soll nicht länger als 5 Sekunden dauern. (Vorrausgesetzt das Datenlimit von 10*100 Attributwerten wird eingehalten)&lt;br /&gt;
* Die Oberfläche soll neben der einfachen Ansicht einen Präsentationsmodus bieten, in dem der Baum als Vollbild dargestellt wird.&lt;br /&gt;
* Für die Anzeige des Baumes soll eine Legende bereitgestellt werden, die den Aufbau eines dargestellten Baumes erklärt.&lt;br /&gt;
&lt;br /&gt;
=== Kannkriterien ===&lt;br /&gt;
* Das Programm kann die Möglichkeit bieten, über eine Konfigurationsschnittstelle verschiedene Programmparameter anzupassen.&lt;br /&gt;
* Für den Benutzer kann es eine grafische Möglichkeit geben die Konfigurationsschnittstelle zu nutzen.&lt;br /&gt;
* Der Nutzer kann die Möglichkeit erhalten den dynamisch erstellten Baum als xml-Datei zu speichern.&lt;br /&gt;
* Der Nutzer kann die Möglichkeit erhalten die abgespeicherte xml-Datei wieder zu laden; die Oberfläche stellt dann automatisch die Tabelle und die Bäume wieder her.&lt;br /&gt;
* Das Programm kann die Möglichkeit bieten den dynamischen und automatischen Baum als Bild-Datei(*.png ; *.jpg) abzuspeichern.&lt;br /&gt;
* Die Zeichenoberfläche, in dem der Baum (dynamisch oder manuell) präsentiert wird, kann durch einen Schieberegler heran- bzw. herausgezoomt werden.&lt;br /&gt;
&lt;br /&gt;
=== Abgrenzungskriterien ===&lt;br /&gt;
&lt;br /&gt;
* Die Software setzt eine installierte Version von Java voraus.&lt;br /&gt;
* Es gibt für jedes Betriebssystem (Windows, Linux, Mac) und dessen Ausprägung (x64, x32) jeweils eine Version.&lt;br /&gt;
* Die Software kann nur mit Datenformaten umgehen, die Excel-Konform sind- (bis 2003: .xls, ab 2007: .xlsx) oder dem CSV-Format entsprechen (Trennzeichen: &amp;quot;,&amp;quot; (Ausgesprochen: Komma)&lt;br /&gt;
* Die Software benutzt einen fest vorgegebenen Algorithmus (''Konzept der Entropie'').&lt;br /&gt;
* Die Tabelle kann maximal 10 Attribute und jeweils 100 Attributwerte enthalten und darf innerhalb der Tabellengrenzen keine leeren Zellenwerte (leere Strings) enthalten.&lt;br /&gt;
&lt;br /&gt;
== Systemeinsatz ==&lt;br /&gt;
=== Anwendungsbereiche === &lt;br /&gt;
Das Programm soll eingesetzt werden, um einen optimalen Entscheidungsbaum zu finden. Optimale Entscheidungsbäume werden benötigt, um aus einem gegebenen Datenbestand Voraussagen zum zukünftigen Verhalten treffen zu können.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Speziell sollen diese optimalen Entscheidungsbäume mit der Software präsentiert werden können.&lt;br /&gt;
=== Zielgruppen ===&lt;br /&gt;
&lt;br /&gt;
=== Betriebsbedingungen ===&lt;br /&gt;
Folgende Bedingungen sind für den Betrieb des Programmes relevant:&lt;br /&gt;
*Der Nutzer ist an einem aktuellen PC mit Windows-Betriebssystem (alternativ auch Linux oder Mac) angemeldet.&lt;br /&gt;
*Auf dem System ist eine Java-Umgebung vorhanden.&lt;br /&gt;
*Optimalerweise hat der PC ein für Präsentationen geeignetes Ausgabegerät (z.B. Beamer, genügend großer Monitor).&lt;br /&gt;
&lt;br /&gt;
== Technische Systemumgebung ==&lt;br /&gt;
=== Software === &lt;br /&gt;
*Das Programm soll auf allen gängigen Windows-Betriebssystemen lauffähig sein.&lt;br /&gt;
*Es soll eine Version für 32- und eine für 64 Bit Systeme geben.&lt;br /&gt;
*Es sollen weitere Betriebssysteme (Linux, Mac) unterstützt werden (optional).&lt;br /&gt;
*Eine Java-Umgebung muss auf den Zielsystemen vorhanden sein.&lt;br /&gt;
*Das Programm soll ohne Installation lauffähig sein.&lt;br /&gt;
&lt;br /&gt;
=== Hardware === &lt;br /&gt;
*Es wird ein aktuell üblicher Standard-PC vorausgesetzt (auf dem Windows mit Standardsoftware lauffähig ist).&lt;br /&gt;
*Es wird ein präsentationsfähiges Ausgabegerät (großer Monitor, Beamer, etc.) benötigt, da das Programm u.A. für Präsentationen eingesetzt werden soll.&lt;br /&gt;
&lt;br /&gt;
=== Orgware ===&lt;br /&gt;
*Es wird keine explizite Orgware benötigt. Der Anwender kann alle relevanten Einstellungen selbst direkt in der Software bzw. in der Konfigurations-Datei vornehmen.&lt;br /&gt;
&lt;br /&gt;
== Systemübersicht und -architektur ==&lt;br /&gt;
=== Übersicht über das System === &lt;br /&gt;
=== Systemarchitektur === &lt;br /&gt;
&amp;lt;b&amp;gt;Dieses Kapitel sollte einen groben Überblick über die erwartete Systemarchitektur geben, der die Verteilung der Funktionen auf die Systemmodule zeigt. Wiederverwendete Komponenten sollten gekennzeichnet werden.&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Schnittstellen des Systems ===&lt;br /&gt;
&lt;br /&gt;
== Systemanforderungen ==&lt;br /&gt;
Das Programm soll den Argorithmus, einen optimalen Entscheidungsbaum zu finden, demonstrieren.&lt;br /&gt;
=== Funktionale Anforderungen ===&lt;br /&gt;
* Das Programm soll unter allen gängigen Windows-Betriebssystemen ohne Installation lauffähig sein (Java darf vorrausgesetzt werden, sonst nichts spezielles).&lt;br /&gt;
==== Tabellenansicht ====&lt;br /&gt;
* Einlesen / Speichern einer Tabelle im .csv-Format (wobei das Trennzeichen ein Komma ist).&lt;br /&gt;
* Alle Attribute sind Zeichenketten.&lt;br /&gt;
* Eingeben / Editieren einer Tabelle muss möglich sein.&lt;br /&gt;
* Import und Export von Excel-Dateien.&lt;br /&gt;
&lt;br /&gt;
==== Baum automatisch ====&lt;br /&gt;
* Der optimale Entscheidungsbaum wird mit dem Algorithmus, der sukzessiv für jeden Knoten jeweils das Attribut mit der minimalen gewichteten Entropie auswählt, erzeugt und dargestellt.&lt;br /&gt;
* Wenn ein Knoten nur noch Objekte einer Klasse enthält, wird dieser nicht weiter aufgeteilt.&lt;br /&gt;
* Wenn ein Knoten nur noch eine bestimmte Anzahl (einstellbar - Voreinstellung 1) von Elementen enthält, wird nicht weiter aufgeteilt.&lt;br /&gt;
&lt;br /&gt;
=== Qualitätsanforderungen ===&lt;br /&gt;
=== Benutzeroberfläche ===&lt;br /&gt;
Weil das Programm auch für Präsentationszwecke eingesetzt werden soll, ist insbesondere auf eine entsprechende Gestaltung der Oberfläche (aussagekräftige Verwendung von Farben, ausreichend großer Schriftgrad, etc.) zu achten.&amp;lt;br&amp;gt;&lt;br /&gt;
Im Programm kann zwischen drei verschiedenen Ansichten hin- und hergeschalten werden, von denen stets genau eine sichtbar ist:&lt;br /&gt;
* Tabellenansicht&lt;br /&gt;
* Baum interaktiv&lt;br /&gt;
* Baum automatisch&lt;br /&gt;
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.&lt;br /&gt;
==== Tabellenansicht ====&lt;br /&gt;
* 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.&lt;br /&gt;
* (Farbliche) Markierung des Zielattributs.&lt;br /&gt;
&lt;br /&gt;
==== Baum interaktiv ====&lt;br /&gt;
* Zu Beginn wird nur der oberste Knoten (also der, der allen Objekten in der Tabelle entspricht) dargestellt.&lt;br /&gt;
* Das gilt ebenso, wenn in der Tabellenansicht ein Attribut hinzugefügt oder gelöscht oder das Zielattribut geändert wird.&lt;br /&gt;
* In jedem Knoten ist die Zahl der enthaltenden Objekte, die Zahl der Objekte jeder Klasse und die Entropie angegeben.&lt;br /&gt;
* Die Kanten sind mit dem entsprechenden Attributwert markiert.&lt;br /&gt;
* Bei Identifikation eines Knotens des Baumes wird eine Tabelle mit den Objekten, die von diesem Knoten repräsentiert werden, dargestellt.&lt;br /&gt;
* Wird in dieser Tabelle ein Attribut identifiziert, wird die gewichtete Entropie, die sich bei Aufteilung nach diesem Attribut ergeben würde, ausgegeben.&lt;br /&gt;
* In dieser Tabelle kann ein Attribut selektiert werden, so dass entsprechend den Werten dieses Attributes Unterknoten entstehen. Die Tabelle verschwindet. Hatte der Knoten schon Unterknoten, verschwinden diese natürlich ebenfalls.&lt;br /&gt;
&lt;br /&gt;
==== Baum automatisch ====&lt;br /&gt;
* In jedem Knoten ist die Zahl der enthaltenden Objekte, die Zahl der Objekte jeder Klasse und die Entropie automatisch dargestellt.&lt;br /&gt;
* Die Kanten sind mit dem entsprechenden Attributwert markiert.&lt;br /&gt;
* Bei Identifikation eines Knotens des Baumes wird eine Tabelle mit den Objekten, die von diesem Knoten repräsentiert werden, dargestellt.&lt;br /&gt;
&lt;br /&gt;
=== Andere nicht-funktionale Anforderungen ===&lt;br /&gt;
&lt;br /&gt;
== Systemmodelle ==&lt;br /&gt;
&amp;lt;b&amp;gt;Dieses Kapitel sollte eines oder mehrere Systemmodelle festlegen, die die Beziehung zwischen den Systemkomponenten und dem System und seiner Umgebung aufzeigen. Dies können Objekt-, Datenfluss- und semantische Datenmodelle sein.&amp;lt;/b&amp;gt;&lt;br /&gt;
=== Datenmodelle === &lt;br /&gt;
=== Andere Modelle === &lt;br /&gt;
&lt;br /&gt;
== Anforderungen an die Entwicklungsumgebung ==&lt;br /&gt;
Die hier genannten Aspekte werden für die qualitative Entwicklung der Software benötigt.&lt;br /&gt;
=== Software ===&lt;br /&gt;
Das Betriebssystem spielt keine Rolle, da Eclipse und Java Plattformunabhängig ist.&lt;br /&gt;
*Die Software &amp;quot;Eclipse&amp;quot; zur Programmierung mit Java wird benötigt. Hinzu kommt das Eclipse PlugIn &amp;quot;subversive&amp;quot; zur Handhabung der Versionsverwaltung&lt;br /&gt;
*Eine aktuelle Java-Developer-Version (jdk) wird zur Kompilierung benötigt. Außerdem werden folgende externe Bibliotheken benötigt:&lt;br /&gt;
** &amp;quot;dom4j&amp;quot;, &amp;quot;poi&amp;quot; zur Konvertierung und Erstellung von Excel-Spreadsheet Tabellen&lt;br /&gt;
** &amp;quot;swt&amp;quot;, das genutzte Framework zur Erstellung der grafischen Benutzeroberfläche&lt;br /&gt;
** &amp;quot;xmlbeans&amp;quot; zur Erstellung und Lesen von XML-Dateien&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
Für die verwendete Hardware sollten mindestens 2 GB Arbeitsspeicher verfügbar sein, um ein flüssiges Abarbeiten und Darstellen der relevanten Inhalte zu gewährleisten.&lt;br /&gt;
&lt;br /&gt;
=== Orgware ===&lt;br /&gt;
Vorrangig geschah die Kommunikation im Team über E-Mail Nachrichten und Kurzmitteilungen. Hier wurde beispielsweise Skype intensiv genutzt.&lt;br /&gt;
&lt;br /&gt;
== Ergänzungen ==&lt;br /&gt;
&lt;br /&gt;
== Anhang ==&lt;/div&gt;</summary>
		<author><name>Chge</name></author>	</entry>

	<entry>
		<id>https://www.p-servus.net/mediawiki/index.php?title=Optimaler_Entscheidungsbaum:_Pflichtenheft</id>
		<title>Optimaler Entscheidungsbaum: Pflichtenheft</title>
		<link rel="alternate" type="text/html" href="https://www.p-servus.net/mediawiki/index.php?title=Optimaler_Entscheidungsbaum:_Pflichtenheft"/>
				<updated>2012-05-22T10:05:39Z</updated>
		
		<summary type="html">&lt;p&gt;Chge: /* Hardware */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Über ==&lt;br /&gt;
Projekt: Optimaler Entscheidungsbaum &amp;lt;br /&amp;gt;&lt;br /&gt;
Autoren: Christian Gebauer, Sebastian Große, Jonathan Wiens, Benjamin Pfeiffer, Nico Smeenk &amp;lt;br /&amp;gt;&lt;br /&gt;
Modul: Software-Engineering II &amp;lt;br /&amp;gt;&lt;br /&gt;
Studiengang: Informatik 2010 &amp;lt;br /&amp;gt;&lt;br /&gt;
Fachbereich: Fachbereich 2, Duales Studium Wirtschaft • Technik, HWR Berlin &amp;lt;br /&amp;gt;&lt;br /&gt;
Datum:&lt;br /&gt;
&lt;br /&gt;
== Vorwort ==&lt;br /&gt;
Dieses Pflichtenheft ist eine Vereinbarung zwischen der Dozentin Frau Prof. Dr. Monett Diaz als Auftraggeberin und der Gruppe 1 des Kurses &amp;quot;Software-Engineering II&amp;quot; aus dem Studiengang &amp;quot;Informatik 2010&amp;quot;. Die Vereinbarung enthält alle Anforderungen an ein zu erstellendes Chat-Programm für die Hochschule für Wirtschaft und Recht Berlin. Das Dokument dient zur Strukturierung und genaueren Einschätzung des zeitlichen Aufwandes des Projektes und der Priorisierung der einzelnen Module. Somit lässt sich auch einschätzen, ob und mit welchen Kosten das Projekt durchführbar ist.&lt;br /&gt;
=== Erwartete Leserschaft ===&lt;br /&gt;
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.&lt;br /&gt;
=== Versionsgeschichte des Dokumentes ===&lt;br /&gt;
Dies ist die erste Version des Pflichtenheftes, weitere Versionen sind noch nicht in Planung.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
=== Allgemeines ===&lt;br /&gt;
Ein Entscheidungsbaum ist ein speziell aufgebauter Baum aus der Graphentheorie. Im Gegensatz zu einem &amp;quot;normalen&amp;quot; Baum ist ein Entscheidungsbaum geordnet und gerichtet und dient dem Zweck Entscheidungsregeln darzustellen. Ein Entscheidungsbaum kann durch Algorithmen auf Basis von tabellarischen Daten erstellt werden. Aufgrund der Tatsache, dass diese Bäume Entscheidungsprobleme lösen  bzw. vereinfachen können, wird diese Methode in vielen Bereichen angewandt. Hauptsächlich benutzt, wird ein Entscheidungsbaum beim Data-Mining, also der umfassenden Theroie der Datenauswertung; aber auch in der Betriebswirtschaftslehre, um effektives Marketing zu betreiben, oder Investment-Geschäfte zu bewerten. Darüber hinaus gibt es viele denkbare Einsatzbereiche, da Entscheidungen fast überall getroffen werden müssen.&lt;br /&gt;
&lt;br /&gt;
Ein Entscheidungsbaum besteht aus Knoten und Blättern. Er muss einen Wurzelknoten besitzen und wird durch Kanten verbunden.&lt;br /&gt;
Ein Knoten repräsentiert ein(en) Attribut(-namen), Kanten die zulässigen Attributwerte und die Blätter zeigen die Attributwerte (meistens klassifiziert) des Zielattributs an.&lt;br /&gt;
&lt;br /&gt;
In diesem Pflichtenheft wird nun ein Programm beschrieben, dass einen Entscheidungsbaum auf Basis einer Tabelle konstruieren kann. Dieses Programm ist als Auftragsarbeit von Hr. Prof. Dr. Höhne und Fr. Prof. Dr. Monett-Diaz zu sehen, bestimmte Funtktionen und Kriterien sind bereits vorgegeben.&lt;br /&gt;
=== Abgrenzungen ===&lt;br /&gt;
==== Ausgangssituation ====&lt;br /&gt;
Im Auftrag von Hr. Prof. Dr. Höhne und Fr. Prof. Dr. Monett-Diaz wird ein Programm, im Rahmen des Moduls SWE-2, entwickelt, welches dazu dienen soll Entscheidungsbäume zu konstruieren und darzustellen. Als Datenbasis dienen Excel- und CSV-Dateien.&lt;br /&gt;
Mit Hilfe dieser Daten soll dann ein &amp;quot;optimaler Entscheidungsbaum&amp;quot; aufgebaut werden, wobei zu beachten ist, dass der Begriff &amp;quot;optimal&amp;quot; nur relativ gesehen werden kann, und abhängig vom gewählten Algorhitmus und der Art des Datenbestandes ist.&lt;br /&gt;
&lt;br /&gt;
=== Systemname ===&lt;br /&gt;
Aufgrund der Tatsache, dass ein Entscheidungsbaum nach bestimmten Regeln ''aufgebaut'' wird und der Anwender einen ''Lerneffekt'' aus diesem Baum ziehen kann, in dem Entscheidungen vereinfacht werden, wurde beschlossen das Projekt und das Programm &amp;quot;Baumschule - Optimale Entscheidungsbäume&amp;quot; zu nennen. &lt;br /&gt;
==== Allgemeine Systembeschreibung ====&lt;br /&gt;
Das System bzw. das Programm bietet hauptsächlich drei grobe Funtkionen an:&lt;br /&gt;
* Laden/Editieren eines Datenbestands durch eine Datei (Excel bzw. CSV)&lt;br /&gt;
* Erstellen eines Entscheidungsbaumes durch einen gegebenen Algorithmus, oder einer Nutzervorgabe&lt;br /&gt;
* Präsentation des Ergebnisses&lt;br /&gt;
&lt;br /&gt;
Diese 3 Hauptfunktionen lassen sich näher beschreiben:&lt;br /&gt;
* Es gibt eine graphische Benutzeroberfläche mit der der Endandwender alle Funktionen des Programms benutzen kann&lt;br /&gt;
* Es gibt eine Funktion zum Laden/Speichern einer Excel- oder CSV-Datei&lt;br /&gt;
* Geladene Tabellendaten können editiert werden.&lt;br /&gt;
* Ein Baum kann automatisch generiert werden, ein ZielAttribut kann vorher gewählt werden.&lt;br /&gt;
* Ein Baum kann teilweise manuell erstellt werden, in dem für jeden Knoten die nächste Attributebene selbst gewählt werden kann.&lt;br /&gt;
* Es können jederzeit detaillierte Informationen über einen Baum bzw. dessen Tabellendaten angezeigt werden.&lt;br /&gt;
&lt;br /&gt;
==== Vorteile und Nutzen ====&lt;br /&gt;
&lt;br /&gt;
Das System bietet die Bearbeitung eines Datenbestandes an und arbeitet nach dem Laden einer Datei formatunabhängig. Ist ein Datenbestand bearbeitet worden, ist dieser auch wieder exportierbar.&lt;br /&gt;
Die Oberfläche bietet die Möglichkeit einen, gemäß des Algorithmus, optimalen Baumes darzustellen. Die Stärke liegt hierbei einerseits auf der Präsentation und andererseits bei der leichten Editierbarkeit, denn der Baum kann einfach durch Mausklicks bearbeitet und untersucht werden. Ein manuelles zeichnen und berechnen des Baumes entfällt. &lt;br /&gt;
Gerade bei großen Daten ist ein Baum nur durch ein Programm wie dieses erstellbar. Arbeitet der Algorithmus fehlerfrei, kann ''immer wieder'' und ''reproduzierbar'' ein Baum aufgebaut werden.&lt;br /&gt;
&lt;br /&gt;
=== Überblick über den Rest des Dokuments ===&lt;br /&gt;
&lt;br /&gt;
Die nachfolgenden Abschnitte befassen sich detaillierter und gründlicher mit den Funktionen des Programms. Es werden Vereinbarungen festgelegt, welches Verhalten das Programm leisten kann und muss.&lt;br /&gt;
&lt;br /&gt;
== Fachbegriffe, Akronyme und Abkürzungen ==&lt;br /&gt;
&amp;lt;b&amp;gt;Dieser Teil soll die im Dokument verwendeten technischen Fachbergriffe festlegen. Dabei soll keine Erfahrung oder Fachwissen beim Leser vorausgesetzt werden.&amp;lt;/b&amp;gt;&lt;br /&gt;
=== Glossar ===&lt;br /&gt;
=== Akronyme ===&lt;br /&gt;
=== Abkürzungen ===&lt;br /&gt;
&lt;br /&gt;
== Zielbestimmungen ==&lt;br /&gt;
Die folgenden Ziele sind in 3 Kategorien (Muss-, Soll- , Kannkriterien) unterteilt. Durch diese Unterteilung wird eine Prioritätshierarchie geschaffen, wobei Musskriterien die höchste Priorität erhalten und entsprechend vorrangig abgearbeitet werden. &lt;br /&gt;
&lt;br /&gt;
=== Musskriterien ===&lt;br /&gt;
Die Muss-Kritierien ergeben sich größtenteils aus der Aufgabenbeschreibung von Hr. Höhne und Fr. Monett-Diaz und sollen hier abgekürzt wiedergegeben werden:&lt;br /&gt;
* Das Programm muss in der Lage sein mit einem Datenbestand von bis zu 10 Attributen und 100 Objekten arbeiten zu können.&lt;br /&gt;
* Das Programm muss mit Tabellen-Dateien umgehen können. (Laden/Speichern von Excel- und CSV-Dateien)&lt;br /&gt;
* Das Programm muss ein Bearbeiten der Tabellendaten zulassen.&lt;br /&gt;
* Es muss eine graphische Benutzeroberfläche geben.&lt;br /&gt;
* Das Zielattribut muss farblich hervorgehoben werden.&lt;br /&gt;
&lt;br /&gt;
* Das Programm muss eine Möglichkeit bieten den Baum, durch Auswahl des nächsten Attributs, teilweise manuell aufzubauen.&lt;br /&gt;
* Wenn der Baum interaktiv zusammengestellt wird, darf(muss) nur der oberste Knoten präsentiert werden.&lt;br /&gt;
* Bei der Präsentation des interaktiven Baums kann dieser durch ein Mausklick &amp;quot;untersucht&amp;quot; werden. Es wird bei einem Knoten eine Tabelle angezigt, die die Objekte anzeigt, die durch den Knoten repräsentiert werden.&lt;br /&gt;
* Es kann in der Tabelle ein Attribut untersucht werden, woraufhin die gewichtete Entropie, die sichbei Aufteilung nach diesem Attribut ergeben würde, angezeigt wird.&lt;br /&gt;
&lt;br /&gt;
* Das Programm muss anhand eines vorgegebenen Algorithmus (''Konzept der Entropie'') einen Entscheidungsbaum erstellen können.&lt;br /&gt;
* Bei der automatischen Erstellung wird ein Knoten der nur noch Objekte einer Klasse enthält nicht weiter aufgeteilt, selbiges gilt wenn der Knoten eine (einstellbare) Anzahl von Elementen enthält.&lt;br /&gt;
* Bei der Präsentation des autmatischen Baums kann dieser durch ein Mausklick &amp;quot;untersucht&amp;quot; werden. Es wird bei einem Knoten eine Tabelle angezigt, die die Objekte anzeigt, die durch den Knoten repräsentiert werden.&lt;br /&gt;
&lt;br /&gt;
* Bei der Präsentation des interaktiven und autmatischen Baums müssen die Kanten mit dem entsprechenden Attributewert angezeigt werden.&lt;br /&gt;
* Bei der Präsentation des interaktiven und automatischen Baums muss die Zahl der enthaltenen Objekte, die Zahl jeder Klasse und die Entropie in jedem Knoten angezeigt werden.&lt;br /&gt;
* Der Entscheidungsbaum muss, egal ob manuell oder autmoatisch erstellt, bei Änderungen des Datenbestandes aktualisiert werden.&lt;br /&gt;
&lt;br /&gt;
* Das Programm muss lauffähig sein und ausführbar vorliegen.&lt;br /&gt;
&lt;br /&gt;
=== Sollkriterien ===&lt;br /&gt;
* Das Programm soll an den wichtigen Stellen durchdachte Hilfebeschreibungen(ToolTips) anzeigen können.&lt;br /&gt;
* Das Programm soll für den Benutzer ein vollständiges Handbuch bereitstellen, dass jederzeit über das Menü aufgerufen werden kann.&lt;br /&gt;
* Das Programm soll bei bestimmten Fehlern oder unerlaubten Nutzeraktionen eine graphische Fehlermeldung anzeigen.&lt;br /&gt;
* Das Programm soll zum Nachverfolgen von Programm-Algorithmen und -Abläufen eine Log-Datei erstellen.&lt;br /&gt;
* Die Oberfläche soll für den Nutzer farblich und organisatorisch übersichtlich und leicht zu bedienen sein.&lt;br /&gt;
* Das Erstellen eines Baumes soll nicht länger als 5 Sekunden dauern. (Vorrausgesetzt das Datenlimit von 10*100 Attributwerten wird eingehalten)&lt;br /&gt;
* Die Oberfläche soll neben der einfachen Ansicht einen Präsentationsmodus bieten, in dem der Baum als Vollbild dargestellt wird.&lt;br /&gt;
* Für die Anzeige des Baumes soll eine Legende bereitgestellt werden, die den Aufbau eines dargestellten Baumes erklärt.&lt;br /&gt;
&lt;br /&gt;
=== Kannkriterien ===&lt;br /&gt;
* Das Programm kann die Möglichkeit bieten, über eine Konfigurationsschnittstelle verschiedene Programmparameter anzupassen.&lt;br /&gt;
* Für den Benutzer kann es eine grafische Möglichkeit geben die Konfigurationsschnittstelle zu nutzen.&lt;br /&gt;
* Der Nutzer kann die Möglichkeit erhalten den dynamisch erstellten Baum als xml-Datei zu speichern.&lt;br /&gt;
* Der Nutzer kann die Möglichkeit erhalten die abgespeicherte xml-Datei wieder zu laden; die Oberfläche stellt dann automatisch die Tabelle und die Bäume wieder her.&lt;br /&gt;
* Das Programm kann die Möglichkeit bieten den dynamischen und automatischen Baum als Bild-Datei(*.png ; *.jpg) abzuspeichern.&lt;br /&gt;
* Die Zeichenoberfläche, in dem der Baum (dynamisch oder manuell) präsentiert wird, kann durch einen Schieberegler heran- bzw. herausgezoomt werden.&lt;br /&gt;
&lt;br /&gt;
=== Abgrenzungskriterien ===&lt;br /&gt;
&lt;br /&gt;
* Die Software setzt eine installierte Version von Java voraus.&lt;br /&gt;
* Es gibt für jedes Betriebssystem (Windows, Linux, Mac) und dessen Ausprägung (x64, x32) jeweils eine Version.&lt;br /&gt;
* Die Software kann nur mit Datenformaten umgehen, die Excel-Konform sind- (bis 2003: .xls, ab 2007: .xlsx) oder dem CSV-Format entsprechen (Trennzeichen: &amp;quot;,&amp;quot; (Ausgesprochen: Komma)&lt;br /&gt;
* Die Software benutzt einen fest vorgegebenen Algorithmus (''Konzept der Entropie'').&lt;br /&gt;
* Die Tabelle kann maximal 10 Attribute und jeweils 100 Attributwerte enthalten und darf innerhalb der Tabellengrenzen keine leeren Zellenwerte (leere Strings) enthalten.&lt;br /&gt;
&lt;br /&gt;
== Systemeinsatz ==&lt;br /&gt;
=== Anwendungsbereiche === &lt;br /&gt;
=== Zielgruppen === &lt;br /&gt;
=== Betriebsbedingungen === &lt;br /&gt;
&lt;br /&gt;
== Technische Systemumgebung ==&lt;br /&gt;
=== Software === &lt;br /&gt;
*Das Programm soll auf allen gängigen Windows-Betriebssystemen lauffähig sein.&lt;br /&gt;
*Es soll eine Version für 32- und eine für 64 Bit Systeme geben.&lt;br /&gt;
*Es sollen weitere Betriebssysteme (Linux, Mac) unterstützt werden (optional).&lt;br /&gt;
*Eine Java-Umgebung muss auf den Zielsystemen vorhanden sein.&lt;br /&gt;
*Das Programm soll ohne Installation lauffähig sein.&lt;br /&gt;
&lt;br /&gt;
=== Hardware === &lt;br /&gt;
*Es wird ein aktuell üblicher Standard-PC vorausgesetzt (auf dem Windows mit Standardsoftware lauffähig ist).&lt;br /&gt;
*Es wird ein präsentationsfähiges Ausgabegerät (großer Monitor, Beamer, etc.) benötigt, da das Programm u.A. für Präsentationen eingesetzt werden soll.&lt;br /&gt;
&lt;br /&gt;
=== Orgware ===&lt;br /&gt;
*Es wird keine explizite Orgware benötigt. Der Anwender kann alle relevanten Einstellungen selbst direkt in der Software bzw. in der Konfigurations-Datei vornehmen.&lt;br /&gt;
&lt;br /&gt;
== Systemübersicht und -architektur ==&lt;br /&gt;
=== Übersicht über das System === &lt;br /&gt;
=== Systemarchitektur === &lt;br /&gt;
&amp;lt;b&amp;gt;Dieses Kapitel sollte einen groben Überblick über die erwartete Systemarchitektur geben, der die Verteilung der Funktionen auf die Systemmodule zeigt. Wiederverwendete Komponenten sollten gekennzeichnet werden.&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Schnittstellen des Systems ===&lt;br /&gt;
&lt;br /&gt;
== Systemanforderungen ==&lt;br /&gt;
Das Programm soll den Argorithmus, einen optimalen Entscheidungsbaum zu finden, demonstrieren.&lt;br /&gt;
=== Funktionale Anforderungen ===&lt;br /&gt;
* Das Programm soll unter allen gängigen Windows-Betriebssystemen ohne Installation lauffähig sein (Java darf vorrausgesetzt werden, sonst nichts spezielles).&lt;br /&gt;
==== Tabellenansicht ====&lt;br /&gt;
* Einlesen / Speichern einer Tabelle im .csv-Format (wobei das Trennzeichen ein Komma ist).&lt;br /&gt;
* Alle Attribute sind Zeichenketten.&lt;br /&gt;
* Eingeben / Editieren einer Tabelle muss möglich sein.&lt;br /&gt;
* Import und Export von Excel-Dateien.&lt;br /&gt;
&lt;br /&gt;
==== Baum automatisch ====&lt;br /&gt;
* Der optimale Entscheidungsbaum wird mit dem Algorithmus, der sukzessiv für jeden Knoten jeweils das Attribut mit der minimalen gewichteten Entropie auswählt, erzeugt und dargestellt.&lt;br /&gt;
* Wenn ein Knoten nur noch Objekte einer Klasse enthält, wird dieser nicht weiter aufgeteilt.&lt;br /&gt;
* Wenn ein Knoten nur noch eine bestimmte Anzahl (einstellbar - Voreinstellung 1) von Elementen enthält, wird nicht weiter aufgeteilt.&lt;br /&gt;
&lt;br /&gt;
=== Qualitätsanforderungen ===&lt;br /&gt;
=== Benutzeroberfläche ===&lt;br /&gt;
Weil das Programm auch für Präsentationszwecke eingesetzt werden soll, ist insbesondere auf eine entsprechende Gestaltung der Oberfläche (aussagekräftige Verwendung von Farben, ausreichend großer Schriftgrad, etc.) zu achten.&amp;lt;br&amp;gt;&lt;br /&gt;
Im Programm kann zwischen drei verschiedenen Ansichten hin- und hergeschalten werden, von denen stets genau eine sichtbar ist:&lt;br /&gt;
* Tabellenansicht&lt;br /&gt;
* Baum interaktiv&lt;br /&gt;
* Baum automatisch&lt;br /&gt;
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.&lt;br /&gt;
==== Tabellenansicht ====&lt;br /&gt;
* 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.&lt;br /&gt;
* (Farbliche) Markierung des Zielattributs.&lt;br /&gt;
&lt;br /&gt;
==== Baum interaktiv ====&lt;br /&gt;
* Zu Beginn wird nur der oberste Knoten (also der, der allen Objekten in der Tabelle entspricht) dargestellt.&lt;br /&gt;
* Das gilt ebenso, wenn in der Tabellenansicht ein Attribut hinzugefügt oder gelöscht oder das Zielattribut geändert wird.&lt;br /&gt;
* In jedem Knoten ist die Zahl der enthaltenden Objekte, die Zahl der Objekte jeder Klasse und die Entropie angegeben.&lt;br /&gt;
* Die Kanten sind mit dem entsprechenden Attributwert markiert.&lt;br /&gt;
* Bei Identifikation eines Knotens des Baumes wird eine Tabelle mit den Objekten, die von diesem Knoten repräsentiert werden, dargestellt.&lt;br /&gt;
* Wird in dieser Tabelle ein Attribut identifiziert, wird die gewichtete Entropie, die sich bei Aufteilung nach diesem Attribut ergeben würde, ausgegeben.&lt;br /&gt;
* In dieser Tabelle kann ein Attribut selektiert werden, so dass entsprechend den Werten dieses Attributes Unterknoten entstehen. Die Tabelle verschwindet. Hatte der Knoten schon Unterknoten, verschwinden diese natürlich ebenfalls.&lt;br /&gt;
&lt;br /&gt;
==== Baum automatisch ====&lt;br /&gt;
* In jedem Knoten ist die Zahl der enthaltenden Objekte, die Zahl der Objekte jeder Klasse und die Entropie automatisch dargestellt.&lt;br /&gt;
* Die Kanten sind mit dem entsprechenden Attributwert markiert.&lt;br /&gt;
* Bei Identifikation eines Knotens des Baumes wird eine Tabelle mit den Objekten, die von diesem Knoten repräsentiert werden, dargestellt.&lt;br /&gt;
&lt;br /&gt;
=== Andere nicht-funktionale Anforderungen ===&lt;br /&gt;
&lt;br /&gt;
== Systemmodelle ==&lt;br /&gt;
&amp;lt;b&amp;gt;Dieses Kapitel sollte eines oder mehrere Systemmodelle festlegen, die die Beziehung zwischen den Systemkomponenten und dem System und seiner Umgebung aufzeigen. Dies können Objekt-, Datenfluss- und semantische Datenmodelle sein.&amp;lt;/b&amp;gt;&lt;br /&gt;
=== Datenmodelle === &lt;br /&gt;
=== Andere Modelle === &lt;br /&gt;
&lt;br /&gt;
== Anforderungen an die Entwicklungsumgebung ==&lt;br /&gt;
Die hier genannten Aspekte werden für die qualitative Entwicklung der Software benötigt.&lt;br /&gt;
=== Software ===&lt;br /&gt;
Das Betriebssystem spielt keine Rolle, da Eclipse und Java Plattformunabhängig ist.&lt;br /&gt;
*Die Software &amp;quot;Eclipse&amp;quot; zur Programmierung mit Java wird benötigt. Hinzu kommt das Eclipse PlugIn &amp;quot;subversive&amp;quot; zur Handhabung der Versionsverwaltung&lt;br /&gt;
*Eine aktuelle Java-Developer-Version (jdk) wird zur Kompilierung benötigt. Außerdem werden folgende externe Bibliotheken benötigt:&lt;br /&gt;
** &amp;quot;dom4j&amp;quot;, &amp;quot;poi&amp;quot; zur Konvertierung und Erstellung von Excel-Spreadsheet Tabellen&lt;br /&gt;
** &amp;quot;swt&amp;quot;, das genutzte Framework zur Erstellung der grafischen Benutzeroberfläche&lt;br /&gt;
** &amp;quot;xmlbeans&amp;quot; zur Erstellung und Lesen von XML-Dateien&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
Für die verwendete Hardware sollten mindestens 2 GB Arbeitsspeicher verfügbar sein, um ein flüssiges Abarbeiten und Darstellen der relevanten Inhalte zu gewährleisten.&lt;br /&gt;
&lt;br /&gt;
=== Orgware ===&lt;br /&gt;
Vorrangig geschah die Kommunikation im Team über E-Mail Nachrichten und Kurzmitteilungen. Hier wurde beispielsweise Skype intensiv genutzt.&lt;br /&gt;
&lt;br /&gt;
== Ergänzungen ==&lt;br /&gt;
&lt;br /&gt;
== Anhang ==&lt;/div&gt;</summary>
		<author><name>Chge</name></author>	</entry>

	<entry>
		<id>https://www.p-servus.net/mediawiki/index.php?title=Optimaler_Entscheidungsbaum:_Pflichtenheft</id>
		<title>Optimaler Entscheidungsbaum: Pflichtenheft</title>
		<link rel="alternate" type="text/html" href="https://www.p-servus.net/mediawiki/index.php?title=Optimaler_Entscheidungsbaum:_Pflichtenheft"/>
				<updated>2012-05-22T10:05:17Z</updated>
		
		<summary type="html">&lt;p&gt;Chge: /* Hardware */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Über ==&lt;br /&gt;
Projekt: Optimaler Entscheidungsbaum &amp;lt;br /&amp;gt;&lt;br /&gt;
Autoren: Christian Gebauer, Sebastian Große, Jonathan Wiens, Benjamin Pfeiffer, Nico Smeenk &amp;lt;br /&amp;gt;&lt;br /&gt;
Modul: Software-Engineering II &amp;lt;br /&amp;gt;&lt;br /&gt;
Studiengang: Informatik 2010 &amp;lt;br /&amp;gt;&lt;br /&gt;
Fachbereich: Fachbereich 2, Duales Studium Wirtschaft • Technik, HWR Berlin &amp;lt;br /&amp;gt;&lt;br /&gt;
Datum:&lt;br /&gt;
&lt;br /&gt;
== Vorwort ==&lt;br /&gt;
Dieses Pflichtenheft ist eine Vereinbarung zwischen der Dozentin Frau Prof. Dr. Monett Diaz als Auftraggeberin und der Gruppe 1 des Kurses &amp;quot;Software-Engineering II&amp;quot; aus dem Studiengang &amp;quot;Informatik 2010&amp;quot;. Die Vereinbarung enthält alle Anforderungen an ein zu erstellendes Chat-Programm für die Hochschule für Wirtschaft und Recht Berlin. Das Dokument dient zur Strukturierung und genaueren Einschätzung des zeitlichen Aufwandes des Projektes und der Priorisierung der einzelnen Module. Somit lässt sich auch einschätzen, ob und mit welchen Kosten das Projekt durchführbar ist.&lt;br /&gt;
=== Erwartete Leserschaft ===&lt;br /&gt;
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.&lt;br /&gt;
=== Versionsgeschichte des Dokumentes ===&lt;br /&gt;
Dies ist die erste Version des Pflichtenheftes, weitere Versionen sind noch nicht in Planung.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
=== Allgemeines ===&lt;br /&gt;
Ein Entscheidungsbaum ist ein speziell aufgebauter Baum aus der Graphentheorie. Im Gegensatz zu einem &amp;quot;normalen&amp;quot; Baum ist ein Entscheidungsbaum geordnet und gerichtet und dient dem Zweck Entscheidungsregeln darzustellen. Ein Entscheidungsbaum kann durch Algorithmen auf Basis von tabellarischen Daten erstellt werden. Aufgrund der Tatsache, dass diese Bäume Entscheidungsprobleme lösen  bzw. vereinfachen können, wird diese Methode in vielen Bereichen angewandt. Hauptsächlich benutzt, wird ein Entscheidungsbaum beim Data-Mining, also der umfassenden Theroie der Datenauswertung; aber auch in der Betriebswirtschaftslehre, um effektives Marketing zu betreiben, oder Investment-Geschäfte zu bewerten. Darüber hinaus gibt es viele denkbare Einsatzbereiche, da Entscheidungen fast überall getroffen werden müssen.&lt;br /&gt;
&lt;br /&gt;
Ein Entscheidungsbaum besteht aus Knoten und Blättern. Er muss einen Wurzelknoten besitzen und wird durch Kanten verbunden.&lt;br /&gt;
Ein Knoten repräsentiert ein(en) Attribut(-namen), Kanten die zulässigen Attributwerte und die Blätter zeigen die Attributwerte (meistens klassifiziert) des Zielattributs an.&lt;br /&gt;
&lt;br /&gt;
In diesem Pflichtenheft wird nun ein Programm beschrieben, dass einen Entscheidungsbaum auf Basis einer Tabelle konstruieren kann. Dieses Programm ist als Auftragsarbeit von Hr. Prof. Dr. Höhne und Fr. Prof. Dr. Monett-Diaz zu sehen, bestimmte Funtktionen und Kriterien sind bereits vorgegeben.&lt;br /&gt;
=== Abgrenzungen ===&lt;br /&gt;
==== Ausgangssituation ====&lt;br /&gt;
Im Auftrag von Hr. Prof. Dr. Höhne und Fr. Prof. Dr. Monett-Diaz wird ein Programm, im Rahmen des Moduls SWE-2, entwickelt, welches dazu dienen soll Entscheidungsbäume zu konstruieren und darzustellen. Als Datenbasis dienen Excel- und CSV-Dateien.&lt;br /&gt;
Mit Hilfe dieser Daten soll dann ein &amp;quot;optimaler Entscheidungsbaum&amp;quot; aufgebaut werden, wobei zu beachten ist, dass der Begriff &amp;quot;optimal&amp;quot; nur relativ gesehen werden kann, und abhängig vom gewählten Algorhitmus und der Art des Datenbestandes ist.&lt;br /&gt;
&lt;br /&gt;
=== Systemname ===&lt;br /&gt;
Aufgrund der Tatsache, dass ein Entscheidungsbaum nach bestimmten Regeln ''aufgebaut'' wird und der Anwender einen ''Lerneffekt'' aus diesem Baum ziehen kann, in dem Entscheidungen vereinfacht werden, wurde beschlossen das Projekt und das Programm &amp;quot;Baumschule - Optimale Entscheidungsbäume&amp;quot; zu nennen. &lt;br /&gt;
==== Allgemeine Systembeschreibung ====&lt;br /&gt;
Das System bzw. das Programm bietet hauptsächlich drei grobe Funtkionen an:&lt;br /&gt;
* Laden/Editieren eines Datenbestands durch eine Datei (Excel bzw. CSV)&lt;br /&gt;
* Erstellen eines Entscheidungsbaumes durch einen gegebenen Algorithmus, oder einer Nutzervorgabe&lt;br /&gt;
* Präsentation des Ergebnisses&lt;br /&gt;
&lt;br /&gt;
Diese 3 Hauptfunktionen lassen sich näher beschreiben:&lt;br /&gt;
* Es gibt eine graphische Benutzeroberfläche mit der der Endandwender alle Funktionen des Programms benutzen kann&lt;br /&gt;
* Es gibt eine Funktion zum Laden/Speichern einer Excel- oder CSV-Datei&lt;br /&gt;
* Geladene Tabellendaten können editiert werden.&lt;br /&gt;
* Ein Baum kann automatisch generiert werden, ein ZielAttribut kann vorher gewählt werden.&lt;br /&gt;
* Ein Baum kann teilweise manuell erstellt werden, in dem für jeden Knoten die nächste Attributebene selbst gewählt werden kann.&lt;br /&gt;
* Es können jederzeit detaillierte Informationen über einen Baum bzw. dessen Tabellendaten angezeigt werden.&lt;br /&gt;
&lt;br /&gt;
==== Vorteile und Nutzen ====&lt;br /&gt;
&lt;br /&gt;
Das System bietet die Bearbeitung eines Datenbestandes an und arbeitet nach dem Laden einer Datei formatunabhängig. Ist ein Datenbestand bearbeitet worden, ist dieser auch wieder exportierbar.&lt;br /&gt;
Die Oberfläche bietet die Möglichkeit einen, gemäß des Algorithmus, optimalen Baumes darzustellen. Die Stärke liegt hierbei einerseits auf der Präsentation und andererseits bei der leichten Editierbarkeit, denn der Baum kann einfach durch Mausklicks bearbeitet und untersucht werden. Ein manuelles zeichnen und berechnen des Baumes entfällt. &lt;br /&gt;
Gerade bei großen Daten ist ein Baum nur durch ein Programm wie dieses erstellbar. Arbeitet der Algorithmus fehlerfrei, kann ''immer wieder'' und ''reproduzierbar'' ein Baum aufgebaut werden.&lt;br /&gt;
&lt;br /&gt;
=== Überblick über den Rest des Dokuments ===&lt;br /&gt;
&lt;br /&gt;
Die nachfolgenden Abschnitte befassen sich detaillierter und gründlicher mit den Funktionen des Programms. Es werden Vereinbarungen festgelegt, welches Verhalten das Programm leisten kann und muss.&lt;br /&gt;
&lt;br /&gt;
== Fachbegriffe, Akronyme und Abkürzungen ==&lt;br /&gt;
&amp;lt;b&amp;gt;Dieser Teil soll die im Dokument verwendeten technischen Fachbergriffe festlegen. Dabei soll keine Erfahrung oder Fachwissen beim Leser vorausgesetzt werden.&amp;lt;/b&amp;gt;&lt;br /&gt;
=== Glossar ===&lt;br /&gt;
=== Akronyme ===&lt;br /&gt;
=== Abkürzungen ===&lt;br /&gt;
&lt;br /&gt;
== Zielbestimmungen ==&lt;br /&gt;
Die folgenden Ziele sind in 3 Kategorien (Muss-, Soll- , Kannkriterien) unterteilt. Durch diese Unterteilung wird eine Prioritätshierarchie geschaffen, wobei Musskriterien die höchste Priorität erhalten und entsprechend vorrangig abgearbeitet werden. &lt;br /&gt;
&lt;br /&gt;
=== Musskriterien ===&lt;br /&gt;
Die Muss-Kritierien ergeben sich größtenteils aus der Aufgabenbeschreibung von Hr. Höhne und Fr. Monett-Diaz und sollen hier abgekürzt wiedergegeben werden:&lt;br /&gt;
* Das Programm muss in der Lage sein mit einem Datenbestand von bis zu 10 Attributen und 100 Objekten arbeiten zu können.&lt;br /&gt;
* Das Programm muss mit Tabellen-Dateien umgehen können. (Laden/Speichern von Excel- und CSV-Dateien)&lt;br /&gt;
* Das Programm muss ein Bearbeiten der Tabellendaten zulassen.&lt;br /&gt;
* Es muss eine graphische Benutzeroberfläche geben.&lt;br /&gt;
* Das Zielattribut muss farblich hervorgehoben werden.&lt;br /&gt;
&lt;br /&gt;
* Das Programm muss eine Möglichkeit bieten den Baum, durch Auswahl des nächsten Attributs, teilweise manuell aufzubauen.&lt;br /&gt;
* Wenn der Baum interaktiv zusammengestellt wird, darf(muss) nur der oberste Knoten präsentiert werden.&lt;br /&gt;
* Bei der Präsentation des interaktiven Baums kann dieser durch ein Mausklick &amp;quot;untersucht&amp;quot; werden. Es wird bei einem Knoten eine Tabelle angezigt, die die Objekte anzeigt, die durch den Knoten repräsentiert werden.&lt;br /&gt;
* Es kann in der Tabelle ein Attribut untersucht werden, woraufhin die gewichtete Entropie, die sichbei Aufteilung nach diesem Attribut ergeben würde, angezeigt wird.&lt;br /&gt;
&lt;br /&gt;
* Das Programm muss anhand eines vorgegebenen Algorithmus (''Konzept der Entropie'') einen Entscheidungsbaum erstellen können.&lt;br /&gt;
* Bei der automatischen Erstellung wird ein Knoten der nur noch Objekte einer Klasse enthält nicht weiter aufgeteilt, selbiges gilt wenn der Knoten eine (einstellbare) Anzahl von Elementen enthält.&lt;br /&gt;
* Bei der Präsentation des autmatischen Baums kann dieser durch ein Mausklick &amp;quot;untersucht&amp;quot; werden. Es wird bei einem Knoten eine Tabelle angezigt, die die Objekte anzeigt, die durch den Knoten repräsentiert werden.&lt;br /&gt;
&lt;br /&gt;
* Bei der Präsentation des interaktiven und autmatischen Baums müssen die Kanten mit dem entsprechenden Attributewert angezeigt werden.&lt;br /&gt;
* Bei der Präsentation des interaktiven und automatischen Baums muss die Zahl der enthaltenen Objekte, die Zahl jeder Klasse und die Entropie in jedem Knoten angezeigt werden.&lt;br /&gt;
* Der Entscheidungsbaum muss, egal ob manuell oder autmoatisch erstellt, bei Änderungen des Datenbestandes aktualisiert werden.&lt;br /&gt;
&lt;br /&gt;
* Das Programm muss lauffähig sein und ausführbar vorliegen.&lt;br /&gt;
&lt;br /&gt;
=== Sollkriterien ===&lt;br /&gt;
* Das Programm soll an den wichtigen Stellen durchdachte Hilfebeschreibungen(ToolTips) anzeigen können.&lt;br /&gt;
* Das Programm soll für den Benutzer ein vollständiges Handbuch bereitstellen, dass jederzeit über das Menü aufgerufen werden kann.&lt;br /&gt;
* Das Programm soll bei bestimmten Fehlern oder unerlaubten Nutzeraktionen eine graphische Fehlermeldung anzeigen.&lt;br /&gt;
* Das Programm soll zum Nachverfolgen von Programm-Algorithmen und -Abläufen eine Log-Datei erstellen.&lt;br /&gt;
* Die Oberfläche soll für den Nutzer farblich und organisatorisch übersichtlich und leicht zu bedienen sein.&lt;br /&gt;
* Das Erstellen eines Baumes soll nicht länger als 5 Sekunden dauern. (Vorrausgesetzt das Datenlimit von 10*100 Attributwerten wird eingehalten)&lt;br /&gt;
* Die Oberfläche soll neben der einfachen Ansicht einen Präsentationsmodus bieten, in dem der Baum als Vollbild dargestellt wird.&lt;br /&gt;
* Für die Anzeige des Baumes soll eine Legende bereitgestellt werden, die den Aufbau eines dargestellten Baumes erklärt.&lt;br /&gt;
&lt;br /&gt;
=== Kannkriterien ===&lt;br /&gt;
* Das Programm kann die Möglichkeit bieten, über eine Konfigurationsschnittstelle verschiedene Programmparameter anzupassen.&lt;br /&gt;
* Für den Benutzer kann es eine grafische Möglichkeit geben die Konfigurationsschnittstelle zu nutzen.&lt;br /&gt;
* Der Nutzer kann die Möglichkeit erhalten den dynamisch erstellten Baum als xml-Datei zu speichern.&lt;br /&gt;
* Der Nutzer kann die Möglichkeit erhalten die abgespeicherte xml-Datei wieder zu laden; die Oberfläche stellt dann automatisch die Tabelle und die Bäume wieder her.&lt;br /&gt;
* Das Programm kann die Möglichkeit bieten den dynamischen und automatischen Baum als Bild-Datei(*.png ; *.jpg) abzuspeichern.&lt;br /&gt;
* Die Zeichenoberfläche, in dem der Baum (dynamisch oder manuell) präsentiert wird, kann durch einen Schieberegler heran- bzw. herausgezoomt werden.&lt;br /&gt;
&lt;br /&gt;
=== Abgrenzungskriterien ===&lt;br /&gt;
&lt;br /&gt;
* Die Software setzt eine installierte Version von Java voraus.&lt;br /&gt;
* Es gibt für jedes Betriebssystem (Windows, Linux, Mac) und dessen Ausprägung (x64, x32) jeweils eine Version.&lt;br /&gt;
* Die Software kann nur mit Datenformaten umgehen, die Excel-Konform sind- (bis 2003: .xls, ab 2007: .xlsx) oder dem CSV-Format entsprechen (Trennzeichen: &amp;quot;,&amp;quot; (Ausgesprochen: Komma)&lt;br /&gt;
* Die Software benutzt einen fest vorgegebenen Algorithmus (''Konzept der Entropie'').&lt;br /&gt;
* Die Tabelle kann maximal 10 Attribute und jeweils 100 Attributwerte enthalten und darf innerhalb der Tabellengrenzen keine leeren Zellenwerte (leere Strings) enthalten.&lt;br /&gt;
&lt;br /&gt;
== Systemeinsatz ==&lt;br /&gt;
=== Anwendungsbereiche === &lt;br /&gt;
=== Zielgruppen === &lt;br /&gt;
=== Betriebsbedingungen === &lt;br /&gt;
&lt;br /&gt;
== Technische Systemumgebung ==&lt;br /&gt;
=== Software === &lt;br /&gt;
*Das Programm soll auf allen gängigen Windows-Betriebssystemen lauffähig sein.&lt;br /&gt;
*Es soll eine Version für 32- und eine für 64 Bit Systeme geben.&lt;br /&gt;
*Es sollen weitere Betriebssysteme (Linux, Mac) unterstützt werden (optional).&lt;br /&gt;
*Eine Java-Umgebung muss auf den Zielsystemen vorhanden sein.&lt;br /&gt;
*Das Programm soll ohne Installation lauffähig sein.&lt;br /&gt;
&lt;br /&gt;
=== Hardware === &lt;br /&gt;
*Es wird ein aktuell üblicher Standard-PC vorausgesetzt (auf dem Windows mit Standardsoftware lauffähig ist).&lt;br /&gt;
*Es wird ein präsentationsfähiges Ausgabegerät (großer Monitor, Beamer, u.A.) benötigt, da das Programm u.A. für Präsentationen eingesetzt werden soll.&lt;br /&gt;
&lt;br /&gt;
=== Orgware ===&lt;br /&gt;
*Es wird keine explizite Orgware benötigt. Der Anwender kann alle relevanten Einstellungen selbst direkt in der Software bzw. in der Konfigurations-Datei vornehmen.&lt;br /&gt;
&lt;br /&gt;
== Systemübersicht und -architektur ==&lt;br /&gt;
=== Übersicht über das System === &lt;br /&gt;
=== Systemarchitektur === &lt;br /&gt;
&amp;lt;b&amp;gt;Dieses Kapitel sollte einen groben Überblick über die erwartete Systemarchitektur geben, der die Verteilung der Funktionen auf die Systemmodule zeigt. Wiederverwendete Komponenten sollten gekennzeichnet werden.&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Schnittstellen des Systems ===&lt;br /&gt;
&lt;br /&gt;
== Systemanforderungen ==&lt;br /&gt;
Das Programm soll den Argorithmus, einen optimalen Entscheidungsbaum zu finden, demonstrieren.&lt;br /&gt;
=== Funktionale Anforderungen ===&lt;br /&gt;
* Das Programm soll unter allen gängigen Windows-Betriebssystemen ohne Installation lauffähig sein (Java darf vorrausgesetzt werden, sonst nichts spezielles).&lt;br /&gt;
==== Tabellenansicht ====&lt;br /&gt;
* Einlesen / Speichern einer Tabelle im .csv-Format (wobei das Trennzeichen ein Komma ist).&lt;br /&gt;
* Alle Attribute sind Zeichenketten.&lt;br /&gt;
* Eingeben / Editieren einer Tabelle muss möglich sein.&lt;br /&gt;
* Import und Export von Excel-Dateien.&lt;br /&gt;
&lt;br /&gt;
==== Baum automatisch ====&lt;br /&gt;
* Der optimale Entscheidungsbaum wird mit dem Algorithmus, der sukzessiv für jeden Knoten jeweils das Attribut mit der minimalen gewichteten Entropie auswählt, erzeugt und dargestellt.&lt;br /&gt;
* Wenn ein Knoten nur noch Objekte einer Klasse enthält, wird dieser nicht weiter aufgeteilt.&lt;br /&gt;
* Wenn ein Knoten nur noch eine bestimmte Anzahl (einstellbar - Voreinstellung 1) von Elementen enthält, wird nicht weiter aufgeteilt.&lt;br /&gt;
&lt;br /&gt;
=== Qualitätsanforderungen ===&lt;br /&gt;
=== Benutzeroberfläche ===&lt;br /&gt;
Weil das Programm auch für Präsentationszwecke eingesetzt werden soll, ist insbesondere auf eine entsprechende Gestaltung der Oberfläche (aussagekräftige Verwendung von Farben, ausreichend großer Schriftgrad, etc.) zu achten.&amp;lt;br&amp;gt;&lt;br /&gt;
Im Programm kann zwischen drei verschiedenen Ansichten hin- und hergeschalten werden, von denen stets genau eine sichtbar ist:&lt;br /&gt;
* Tabellenansicht&lt;br /&gt;
* Baum interaktiv&lt;br /&gt;
* Baum automatisch&lt;br /&gt;
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.&lt;br /&gt;
==== Tabellenansicht ====&lt;br /&gt;
* 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.&lt;br /&gt;
* (Farbliche) Markierung des Zielattributs.&lt;br /&gt;
&lt;br /&gt;
==== Baum interaktiv ====&lt;br /&gt;
* Zu Beginn wird nur der oberste Knoten (also der, der allen Objekten in der Tabelle entspricht) dargestellt.&lt;br /&gt;
* Das gilt ebenso, wenn in der Tabellenansicht ein Attribut hinzugefügt oder gelöscht oder das Zielattribut geändert wird.&lt;br /&gt;
* In jedem Knoten ist die Zahl der enthaltenden Objekte, die Zahl der Objekte jeder Klasse und die Entropie angegeben.&lt;br /&gt;
* Die Kanten sind mit dem entsprechenden Attributwert markiert.&lt;br /&gt;
* Bei Identifikation eines Knotens des Baumes wird eine Tabelle mit den Objekten, die von diesem Knoten repräsentiert werden, dargestellt.&lt;br /&gt;
* Wird in dieser Tabelle ein Attribut identifiziert, wird die gewichtete Entropie, die sich bei Aufteilung nach diesem Attribut ergeben würde, ausgegeben.&lt;br /&gt;
* In dieser Tabelle kann ein Attribut selektiert werden, so dass entsprechend den Werten dieses Attributes Unterknoten entstehen. Die Tabelle verschwindet. Hatte der Knoten schon Unterknoten, verschwinden diese natürlich ebenfalls.&lt;br /&gt;
&lt;br /&gt;
==== Baum automatisch ====&lt;br /&gt;
* In jedem Knoten ist die Zahl der enthaltenden Objekte, die Zahl der Objekte jeder Klasse und die Entropie automatisch dargestellt.&lt;br /&gt;
* Die Kanten sind mit dem entsprechenden Attributwert markiert.&lt;br /&gt;
* Bei Identifikation eines Knotens des Baumes wird eine Tabelle mit den Objekten, die von diesem Knoten repräsentiert werden, dargestellt.&lt;br /&gt;
&lt;br /&gt;
=== Andere nicht-funktionale Anforderungen ===&lt;br /&gt;
&lt;br /&gt;
== Systemmodelle ==&lt;br /&gt;
&amp;lt;b&amp;gt;Dieses Kapitel sollte eines oder mehrere Systemmodelle festlegen, die die Beziehung zwischen den Systemkomponenten und dem System und seiner Umgebung aufzeigen. Dies können Objekt-, Datenfluss- und semantische Datenmodelle sein.&amp;lt;/b&amp;gt;&lt;br /&gt;
=== Datenmodelle === &lt;br /&gt;
=== Andere Modelle === &lt;br /&gt;
&lt;br /&gt;
== Anforderungen an die Entwicklungsumgebung ==&lt;br /&gt;
Die hier genannten Aspekte werden für die qualitative Entwicklung der Software benötigt.&lt;br /&gt;
=== Software ===&lt;br /&gt;
Das Betriebssystem spielt keine Rolle, da Eclipse und Java Plattformunabhängig ist.&lt;br /&gt;
*Die Software &amp;quot;Eclipse&amp;quot; zur Programmierung mit Java wird benötigt. Hinzu kommt das Eclipse PlugIn &amp;quot;subversive&amp;quot; zur Handhabung der Versionsverwaltung&lt;br /&gt;
*Eine aktuelle Java-Developer-Version (jdk) wird zur Kompilierung benötigt. Außerdem werden folgende externe Bibliotheken benötigt:&lt;br /&gt;
** &amp;quot;dom4j&amp;quot;, &amp;quot;poi&amp;quot; zur Konvertierung und Erstellung von Excel-Spreadsheet Tabellen&lt;br /&gt;
** &amp;quot;swt&amp;quot;, das genutzte Framework zur Erstellung der grafischen Benutzeroberfläche&lt;br /&gt;
** &amp;quot;xmlbeans&amp;quot; zur Erstellung und Lesen von XML-Dateien&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
Für die verwendete Hardware sollten mindestens 2 GB Arbeitsspeicher verfügbar sein, um ein flüssiges Abarbeiten und Darstellen der relevanten Inhalte zu gewährleisten.&lt;br /&gt;
&lt;br /&gt;
=== Orgware ===&lt;br /&gt;
Vorrangig geschah die Kommunikation im Team über E-Mail Nachrichten und Kurzmitteilungen. Hier wurde beispielsweise Skype intensiv genutzt.&lt;br /&gt;
&lt;br /&gt;
== Ergänzungen ==&lt;br /&gt;
&lt;br /&gt;
== Anhang ==&lt;/div&gt;</summary>
		<author><name>Chge</name></author>	</entry>

	<entry>
		<id>https://www.p-servus.net/mediawiki/index.php?title=Optimaler_Entscheidungsbaum:_Pflichtenheft</id>
		<title>Optimaler Entscheidungsbaum: Pflichtenheft</title>
		<link rel="alternate" type="text/html" href="https://www.p-servus.net/mediawiki/index.php?title=Optimaler_Entscheidungsbaum:_Pflichtenheft"/>
				<updated>2012-05-22T10:04:42Z</updated>
		
		<summary type="html">&lt;p&gt;Chge: /* Hardware */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Über ==&lt;br /&gt;
Projekt: Optimaler Entscheidungsbaum &amp;lt;br /&amp;gt;&lt;br /&gt;
Autoren: Christian Gebauer, Sebastian Große, Jonathan Wiens, Benjamin Pfeiffer, Nico Smeenk &amp;lt;br /&amp;gt;&lt;br /&gt;
Modul: Software-Engineering II &amp;lt;br /&amp;gt;&lt;br /&gt;
Studiengang: Informatik 2010 &amp;lt;br /&amp;gt;&lt;br /&gt;
Fachbereich: Fachbereich 2, Duales Studium Wirtschaft • Technik, HWR Berlin &amp;lt;br /&amp;gt;&lt;br /&gt;
Datum:&lt;br /&gt;
&lt;br /&gt;
== Vorwort ==&lt;br /&gt;
Dieses Pflichtenheft ist eine Vereinbarung zwischen der Dozentin Frau Prof. Dr. Monett Diaz als Auftraggeberin und der Gruppe 1 des Kurses &amp;quot;Software-Engineering II&amp;quot; aus dem Studiengang &amp;quot;Informatik 2010&amp;quot;. Die Vereinbarung enthält alle Anforderungen an ein zu erstellendes Chat-Programm für die Hochschule für Wirtschaft und Recht Berlin. Das Dokument dient zur Strukturierung und genaueren Einschätzung des zeitlichen Aufwandes des Projektes und der Priorisierung der einzelnen Module. Somit lässt sich auch einschätzen, ob und mit welchen Kosten das Projekt durchführbar ist.&lt;br /&gt;
=== Erwartete Leserschaft ===&lt;br /&gt;
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.&lt;br /&gt;
=== Versionsgeschichte des Dokumentes ===&lt;br /&gt;
Dies ist die erste Version des Pflichtenheftes, weitere Versionen sind noch nicht in Planung.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
=== Allgemeines ===&lt;br /&gt;
Ein Entscheidungsbaum ist ein speziell aufgebauter Baum aus der Graphentheorie. Im Gegensatz zu einem &amp;quot;normalen&amp;quot; Baum ist ein Entscheidungsbaum geordnet und gerichtet und dient dem Zweck Entscheidungsregeln darzustellen. Ein Entscheidungsbaum kann durch Algorithmen auf Basis von tabellarischen Daten erstellt werden. Aufgrund der Tatsache, dass diese Bäume Entscheidungsprobleme lösen  bzw. vereinfachen können, wird diese Methode in vielen Bereichen angewandt. Hauptsächlich benutzt, wird ein Entscheidungsbaum beim Data-Mining, also der umfassenden Theroie der Datenauswertung; aber auch in der Betriebswirtschaftslehre, um effektives Marketing zu betreiben, oder Investment-Geschäfte zu bewerten. Darüber hinaus gibt es viele denkbare Einsatzbereiche, da Entscheidungen fast überall getroffen werden müssen.&lt;br /&gt;
&lt;br /&gt;
Ein Entscheidungsbaum besteht aus Knoten und Blättern. Er muss einen Wurzelknoten besitzen und wird durch Kanten verbunden.&lt;br /&gt;
Ein Knoten repräsentiert ein(en) Attribut(-namen), Kanten die zulässigen Attributwerte und die Blätter zeigen die Attributwerte (meistens klassifiziert) des Zielattributs an.&lt;br /&gt;
&lt;br /&gt;
In diesem Pflichtenheft wird nun ein Programm beschrieben, dass einen Entscheidungsbaum auf Basis einer Tabelle konstruieren kann. Dieses Programm ist als Auftragsarbeit von Hr. Prof. Dr. Höhne und Fr. Prof. Dr. Monett-Diaz zu sehen, bestimmte Funtktionen und Kriterien sind bereits vorgegeben.&lt;br /&gt;
=== Abgrenzungen ===&lt;br /&gt;
==== Ausgangssituation ====&lt;br /&gt;
Im Auftrag von Hr. Prof. Dr. Höhne und Fr. Prof. Dr. Monett-Diaz wird ein Programm, im Rahmen des Moduls SWE-2, entwickelt, welches dazu dienen soll Entscheidungsbäume zu konstruieren und darzustellen. Als Datenbasis dienen Excel- und CSV-Dateien.&lt;br /&gt;
Mit Hilfe dieser Daten soll dann ein &amp;quot;optimaler Entscheidungsbaum&amp;quot; aufgebaut werden, wobei zu beachten ist, dass der Begriff &amp;quot;optimal&amp;quot; nur relativ gesehen werden kann, und abhängig vom gewählten Algorhitmus und der Art des Datenbestandes ist.&lt;br /&gt;
&lt;br /&gt;
=== Systemname ===&lt;br /&gt;
Aufgrund der Tatsache, dass ein Entscheidungsbaum nach bestimmten Regeln ''aufgebaut'' wird und der Anwender einen ''Lerneffekt'' aus diesem Baum ziehen kann, in dem Entscheidungen vereinfacht werden, wurde beschlossen das Projekt und das Programm &amp;quot;Baumschule - Optimale Entscheidungsbäume&amp;quot; zu nennen. &lt;br /&gt;
==== Allgemeine Systembeschreibung ====&lt;br /&gt;
Das System bzw. das Programm bietet hauptsächlich drei grobe Funtkionen an:&lt;br /&gt;
* Laden/Editieren eines Datenbestands durch eine Datei (Excel bzw. CSV)&lt;br /&gt;
* Erstellen eines Entscheidungsbaumes durch einen gegebenen Algorithmus, oder einer Nutzervorgabe&lt;br /&gt;
* Präsentation des Ergebnisses&lt;br /&gt;
&lt;br /&gt;
Diese 3 Hauptfunktionen lassen sich näher beschreiben:&lt;br /&gt;
* Es gibt eine graphische Benutzeroberfläche mit der der Endandwender alle Funktionen des Programms benutzen kann&lt;br /&gt;
* Es gibt eine Funktion zum Laden/Speichern einer Excel- oder CSV-Datei&lt;br /&gt;
* Geladene Tabellendaten können editiert werden.&lt;br /&gt;
* Ein Baum kann automatisch generiert werden, ein ZielAttribut kann vorher gewählt werden.&lt;br /&gt;
* Ein Baum kann teilweise manuell erstellt werden, in dem für jeden Knoten die nächste Attributebene selbst gewählt werden kann.&lt;br /&gt;
* Es können jederzeit detaillierte Informationen über einen Baum bzw. dessen Tabellendaten angezeigt werden.&lt;br /&gt;
&lt;br /&gt;
==== Vorteile und Nutzen ====&lt;br /&gt;
&lt;br /&gt;
Das System bietet die Bearbeitung eines Datenbestandes an und arbeitet nach dem Laden einer Datei formatunabhängig. Ist ein Datenbestand bearbeitet worden, ist dieser auch wieder exportierbar.&lt;br /&gt;
Die Oberfläche bietet die Möglichkeit einen, gemäß des Algorithmus, optimalen Baumes darzustellen. Die Stärke liegt hierbei einerseits auf der Präsentation und andererseits bei der leichten Editierbarkeit, denn der Baum kann einfach durch Mausklicks bearbeitet und untersucht werden. Ein manuelles zeichnen und berechnen des Baumes entfällt. &lt;br /&gt;
Gerade bei großen Daten ist ein Baum nur durch ein Programm wie dieses erstellbar. Arbeitet der Algorithmus fehlerfrei, kann ''immer wieder'' und ''reproduzierbar'' ein Baum aufgebaut werden.&lt;br /&gt;
&lt;br /&gt;
=== Überblick über den Rest des Dokuments ===&lt;br /&gt;
&lt;br /&gt;
Die nachfolgenden Abschnitte befassen sich detaillierter und gründlicher mit den Funktionen des Programms. Es werden Vereinbarungen festgelegt, welches Verhalten das Programm leisten kann und muss.&lt;br /&gt;
&lt;br /&gt;
== Fachbegriffe, Akronyme und Abkürzungen ==&lt;br /&gt;
&amp;lt;b&amp;gt;Dieser Teil soll die im Dokument verwendeten technischen Fachbergriffe festlegen. Dabei soll keine Erfahrung oder Fachwissen beim Leser vorausgesetzt werden.&amp;lt;/b&amp;gt;&lt;br /&gt;
=== Glossar ===&lt;br /&gt;
=== Akronyme ===&lt;br /&gt;
=== Abkürzungen ===&lt;br /&gt;
&lt;br /&gt;
== Zielbestimmungen ==&lt;br /&gt;
Die folgenden Ziele sind in 3 Kategorien (Muss-, Soll- , Kannkriterien) unterteilt. Durch diese Unterteilung wird eine Prioritätshierarchie geschaffen, wobei Musskriterien die höchste Priorität erhalten und entsprechend vorrangig abgearbeitet werden. &lt;br /&gt;
&lt;br /&gt;
=== Musskriterien ===&lt;br /&gt;
Die Muss-Kritierien ergeben sich größtenteils aus der Aufgabenbeschreibung von Hr. Höhne und Fr. Monett-Diaz und sollen hier abgekürzt wiedergegeben werden:&lt;br /&gt;
* Das Programm muss in der Lage sein mit einem Datenbestand von bis zu 10 Attributen und 100 Objekten arbeiten zu können.&lt;br /&gt;
* Das Programm muss mit Tabellen-Dateien umgehen können. (Laden/Speichern von Excel- und CSV-Dateien)&lt;br /&gt;
* Das Programm muss ein Bearbeiten der Tabellendaten zulassen.&lt;br /&gt;
* Es muss eine graphische Benutzeroberfläche geben.&lt;br /&gt;
* Das Zielattribut muss farblich hervorgehoben werden.&lt;br /&gt;
&lt;br /&gt;
* Das Programm muss eine Möglichkeit bieten den Baum, durch Auswahl des nächsten Attributs, teilweise manuell aufzubauen.&lt;br /&gt;
* Wenn der Baum interaktiv zusammengestellt wird, darf(muss) nur der oberste Knoten präsentiert werden.&lt;br /&gt;
* Bei der Präsentation des interaktiven Baums kann dieser durch ein Mausklick &amp;quot;untersucht&amp;quot; werden. Es wird bei einem Knoten eine Tabelle angezigt, die die Objekte anzeigt, die durch den Knoten repräsentiert werden.&lt;br /&gt;
* Es kann in der Tabelle ein Attribut untersucht werden, woraufhin die gewichtete Entropie, die sichbei Aufteilung nach diesem Attribut ergeben würde, angezeigt wird.&lt;br /&gt;
&lt;br /&gt;
* Das Programm muss anhand eines vorgegebenen Algorithmus (''Konzept der Entropie'') einen Entscheidungsbaum erstellen können.&lt;br /&gt;
* Bei der automatischen Erstellung wird ein Knoten der nur noch Objekte einer Klasse enthält nicht weiter aufgeteilt, selbiges gilt wenn der Knoten eine (einstellbare) Anzahl von Elementen enthält.&lt;br /&gt;
* Bei der Präsentation des autmatischen Baums kann dieser durch ein Mausklick &amp;quot;untersucht&amp;quot; werden. Es wird bei einem Knoten eine Tabelle angezigt, die die Objekte anzeigt, die durch den Knoten repräsentiert werden.&lt;br /&gt;
&lt;br /&gt;
* Bei der Präsentation des interaktiven und autmatischen Baums müssen die Kanten mit dem entsprechenden Attributewert angezeigt werden.&lt;br /&gt;
* Bei der Präsentation des interaktiven und automatischen Baums muss die Zahl der enthaltenen Objekte, die Zahl jeder Klasse und die Entropie in jedem Knoten angezeigt werden.&lt;br /&gt;
* Der Entscheidungsbaum muss, egal ob manuell oder autmoatisch erstellt, bei Änderungen des Datenbestandes aktualisiert werden.&lt;br /&gt;
&lt;br /&gt;
* Das Programm muss lauffähig sein und ausführbar vorliegen.&lt;br /&gt;
&lt;br /&gt;
=== Sollkriterien ===&lt;br /&gt;
* Das Programm soll an den wichtigen Stellen durchdachte Hilfebeschreibungen(ToolTips) anzeigen können.&lt;br /&gt;
* Das Programm soll für den Benutzer ein vollständiges Handbuch bereitstellen, dass jederzeit über das Menü aufgerufen werden kann.&lt;br /&gt;
* Das Programm soll bei bestimmten Fehlern oder unerlaubten Nutzeraktionen eine graphische Fehlermeldung anzeigen.&lt;br /&gt;
* Das Programm soll zum Nachverfolgen von Programm-Algorithmen und -Abläufen eine Log-Datei erstellen.&lt;br /&gt;
* Die Oberfläche soll für den Nutzer farblich und organisatorisch übersichtlich und leicht zu bedienen sein.&lt;br /&gt;
* Das Erstellen eines Baumes soll nicht länger als 5 Sekunden dauern. (Vorrausgesetzt das Datenlimit von 10*100 Attributwerten wird eingehalten)&lt;br /&gt;
* Die Oberfläche soll neben der einfachen Ansicht einen Präsentationsmodus bieten, in dem der Baum als Vollbild dargestellt wird.&lt;br /&gt;
* Für die Anzeige des Baumes soll eine Legende bereitgestellt werden, die den Aufbau eines dargestellten Baumes erklärt.&lt;br /&gt;
&lt;br /&gt;
=== Kannkriterien ===&lt;br /&gt;
* Das Programm kann die Möglichkeit bieten, über eine Konfigurationsschnittstelle verschiedene Programmparameter anzupassen.&lt;br /&gt;
* Für den Benutzer kann es eine grafische Möglichkeit geben die Konfigurationsschnittstelle zu nutzen.&lt;br /&gt;
* Der Nutzer kann die Möglichkeit erhalten den dynamisch erstellten Baum als xml-Datei zu speichern.&lt;br /&gt;
* Der Nutzer kann die Möglichkeit erhalten die abgespeicherte xml-Datei wieder zu laden; die Oberfläche stellt dann automatisch die Tabelle und die Bäume wieder her.&lt;br /&gt;
* Das Programm kann die Möglichkeit bieten den dynamischen und automatischen Baum als Bild-Datei(*.png ; *.jpg) abzuspeichern.&lt;br /&gt;
* Die Zeichenoberfläche, in dem der Baum (dynamisch oder manuell) präsentiert wird, kann durch einen Schieberegler heran- bzw. herausgezoomt werden.&lt;br /&gt;
&lt;br /&gt;
=== Abgrenzungskriterien ===&lt;br /&gt;
&lt;br /&gt;
* Die Software setzt eine installierte Version von Java voraus.&lt;br /&gt;
* Es gibt für jedes Betriebssystem (Windows, Linux, Mac) und dessen Ausprägung (x64, x32) jeweils eine Version.&lt;br /&gt;
* Die Software kann nur mit Datenformaten umgehen, die Excel-Konform sind- (bis 2003: .xls, ab 2007: .xlsx) oder dem CSV-Format entsprechen (Trennzeichen: &amp;quot;,&amp;quot; (Ausgesprochen: Komma)&lt;br /&gt;
* Die Software benutzt einen fest vorgegebenen Algorithmus (''Konzept der Entropie'').&lt;br /&gt;
* Die Tabelle kann maximal 10 Attribute und jeweils 100 Attributwerte enthalten und darf innerhalb der Tabellengrenzen keine leeren Zellenwerte (leere Strings) enthalten.&lt;br /&gt;
&lt;br /&gt;
== Systemeinsatz ==&lt;br /&gt;
=== Anwendungsbereiche === &lt;br /&gt;
=== Zielgruppen === &lt;br /&gt;
=== Betriebsbedingungen === &lt;br /&gt;
&lt;br /&gt;
== Technische Systemumgebung ==&lt;br /&gt;
=== Software === &lt;br /&gt;
*Das Programm soll auf allen gängigen Windows-Betriebssystemen lauffähig sein.&lt;br /&gt;
*Es soll eine Version für 32- und eine für 64 Bit Systeme geben.&lt;br /&gt;
*Es sollen weitere Betriebssysteme (Linux, Mac) unterstützt werden (optional).&lt;br /&gt;
*Eine Java-Umgebung muss auf den Zielsystemen vorhanden sein.&lt;br /&gt;
*Das Programm soll ohne Installation lauffähig sein.&lt;br /&gt;
&lt;br /&gt;
=== Hardware === &lt;br /&gt;
*Es wird ein aktuell üblicher Standard-PC vorausgesetzt (auf dem Windows mit Standardsoftware lauffähig ist).&lt;br /&gt;
*Es wird ein präsentationsfähiges Ausgabegerät (großer Monitor, Beamer, etc.) benötigt, da das Programm u.A. für Präsentationen eingesetzt werden soll.&lt;br /&gt;
&lt;br /&gt;
=== Orgware ===&lt;br /&gt;
*Es wird keine explizite Orgware benötigt. Der Anwender kann alle relevanten Einstellungen selbst direkt in der Software bzw. in der Konfigurations-Datei vornehmen.&lt;br /&gt;
&lt;br /&gt;
== Systemübersicht und -architektur ==&lt;br /&gt;
=== Übersicht über das System === &lt;br /&gt;
=== Systemarchitektur === &lt;br /&gt;
&amp;lt;b&amp;gt;Dieses Kapitel sollte einen groben Überblick über die erwartete Systemarchitektur geben, der die Verteilung der Funktionen auf die Systemmodule zeigt. Wiederverwendete Komponenten sollten gekennzeichnet werden.&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Schnittstellen des Systems ===&lt;br /&gt;
&lt;br /&gt;
== Systemanforderungen ==&lt;br /&gt;
Das Programm soll den Argorithmus, einen optimalen Entscheidungsbaum zu finden, demonstrieren.&lt;br /&gt;
=== Funktionale Anforderungen ===&lt;br /&gt;
* Das Programm soll unter allen gängigen Windows-Betriebssystemen ohne Installation lauffähig sein (Java darf vorrausgesetzt werden, sonst nichts spezielles).&lt;br /&gt;
==== Tabellenansicht ====&lt;br /&gt;
* Einlesen / Speichern einer Tabelle im .csv-Format (wobei das Trennzeichen ein Komma ist).&lt;br /&gt;
* Alle Attribute sind Zeichenketten.&lt;br /&gt;
* Eingeben / Editieren einer Tabelle muss möglich sein.&lt;br /&gt;
* Import und Export von Excel-Dateien.&lt;br /&gt;
&lt;br /&gt;
==== Baum automatisch ====&lt;br /&gt;
* Der optimale Entscheidungsbaum wird mit dem Algorithmus, der sukzessiv für jeden Knoten jeweils das Attribut mit der minimalen gewichteten Entropie auswählt, erzeugt und dargestellt.&lt;br /&gt;
* Wenn ein Knoten nur noch Objekte einer Klasse enthält, wird dieser nicht weiter aufgeteilt.&lt;br /&gt;
* Wenn ein Knoten nur noch eine bestimmte Anzahl (einstellbar - Voreinstellung 1) von Elementen enthält, wird nicht weiter aufgeteilt.&lt;br /&gt;
&lt;br /&gt;
=== Qualitätsanforderungen ===&lt;br /&gt;
=== Benutzeroberfläche ===&lt;br /&gt;
Weil das Programm auch für Präsentationszwecke eingesetzt werden soll, ist insbesondere auf eine entsprechende Gestaltung der Oberfläche (aussagekräftige Verwendung von Farben, ausreichend großer Schriftgrad, etc.) zu achten.&amp;lt;br&amp;gt;&lt;br /&gt;
Im Programm kann zwischen drei verschiedenen Ansichten hin- und hergeschalten werden, von denen stets genau eine sichtbar ist:&lt;br /&gt;
* Tabellenansicht&lt;br /&gt;
* Baum interaktiv&lt;br /&gt;
* Baum automatisch&lt;br /&gt;
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.&lt;br /&gt;
==== Tabellenansicht ====&lt;br /&gt;
* 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.&lt;br /&gt;
* (Farbliche) Markierung des Zielattributs.&lt;br /&gt;
&lt;br /&gt;
==== Baum interaktiv ====&lt;br /&gt;
* Zu Beginn wird nur der oberste Knoten (also der, der allen Objekten in der Tabelle entspricht) dargestellt.&lt;br /&gt;
* Das gilt ebenso, wenn in der Tabellenansicht ein Attribut hinzugefügt oder gelöscht oder das Zielattribut geändert wird.&lt;br /&gt;
* In jedem Knoten ist die Zahl der enthaltenden Objekte, die Zahl der Objekte jeder Klasse und die Entropie angegeben.&lt;br /&gt;
* Die Kanten sind mit dem entsprechenden Attributwert markiert.&lt;br /&gt;
* Bei Identifikation eines Knotens des Baumes wird eine Tabelle mit den Objekten, die von diesem Knoten repräsentiert werden, dargestellt.&lt;br /&gt;
* Wird in dieser Tabelle ein Attribut identifiziert, wird die gewichtete Entropie, die sich bei Aufteilung nach diesem Attribut ergeben würde, ausgegeben.&lt;br /&gt;
* In dieser Tabelle kann ein Attribut selektiert werden, so dass entsprechend den Werten dieses Attributes Unterknoten entstehen. Die Tabelle verschwindet. Hatte der Knoten schon Unterknoten, verschwinden diese natürlich ebenfalls.&lt;br /&gt;
&lt;br /&gt;
==== Baum automatisch ====&lt;br /&gt;
* In jedem Knoten ist die Zahl der enthaltenden Objekte, die Zahl der Objekte jeder Klasse und die Entropie automatisch dargestellt.&lt;br /&gt;
* Die Kanten sind mit dem entsprechenden Attributwert markiert.&lt;br /&gt;
* Bei Identifikation eines Knotens des Baumes wird eine Tabelle mit den Objekten, die von diesem Knoten repräsentiert werden, dargestellt.&lt;br /&gt;
&lt;br /&gt;
=== Andere nicht-funktionale Anforderungen ===&lt;br /&gt;
&lt;br /&gt;
== Systemmodelle ==&lt;br /&gt;
&amp;lt;b&amp;gt;Dieses Kapitel sollte eines oder mehrere Systemmodelle festlegen, die die Beziehung zwischen den Systemkomponenten und dem System und seiner Umgebung aufzeigen. Dies können Objekt-, Datenfluss- und semantische Datenmodelle sein.&amp;lt;/b&amp;gt;&lt;br /&gt;
=== Datenmodelle === &lt;br /&gt;
=== Andere Modelle === &lt;br /&gt;
&lt;br /&gt;
== Anforderungen an die Entwicklungsumgebung ==&lt;br /&gt;
Die hier genannten Aspekte werden für die qualitative Entwicklung der Software benötigt.&lt;br /&gt;
=== Software ===&lt;br /&gt;
Das Betriebssystem spielt keine Rolle, da Eclipse und Java Plattformunabhängig ist.&lt;br /&gt;
*Die Software &amp;quot;Eclipse&amp;quot; zur Programmierung mit Java wird benötigt. Hinzu kommt das Eclipse PlugIn &amp;quot;subversive&amp;quot; zur Handhabung der Versionsverwaltung&lt;br /&gt;
*Eine aktuelle Java-Developer-Version (jdk) wird zur Kompilierung benötigt. Außerdem werden folgende externe Bibliotheken benötigt:&lt;br /&gt;
** &amp;quot;dom4j&amp;quot;, &amp;quot;poi&amp;quot; zur Konvertierung und Erstellung von Excel-Spreadsheet Tabellen&lt;br /&gt;
** &amp;quot;swt&amp;quot;, das genutzte Framework zur Erstellung der grafischen Benutzeroberfläche&lt;br /&gt;
** &amp;quot;xmlbeans&amp;quot; zur Erstellung und Lesen von XML-Dateien&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
Für die verwendete Hardware sollten mindestens 2 GB Arbeitsspeicher verfügbar sein, um ein flüssiges Abarbeiten und Darstellen der relevanten Inhalte zu gewährleisten.&lt;br /&gt;
&lt;br /&gt;
=== Orgware ===&lt;br /&gt;
Vorrangig geschah die Kommunikation im Team über E-Mail Nachrichten und Kurzmitteilungen. Hier wurde beispielsweise Skype intensiv genutzt.&lt;br /&gt;
&lt;br /&gt;
== Ergänzungen ==&lt;br /&gt;
&lt;br /&gt;
== Anhang ==&lt;/div&gt;</summary>
		<author><name>Chge</name></author>	</entry>

	<entry>
		<id>https://www.p-servus.net/mediawiki/index.php?title=Optimaler_Entscheidungsbaum:_Pflichtenheft</id>
		<title>Optimaler Entscheidungsbaum: Pflichtenheft</title>
		<link rel="alternate" type="text/html" href="https://www.p-servus.net/mediawiki/index.php?title=Optimaler_Entscheidungsbaum:_Pflichtenheft"/>
				<updated>2012-05-22T10:03:43Z</updated>
		
		<summary type="html">&lt;p&gt;Chge: /* Orgware */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Über ==&lt;br /&gt;
Projekt: Optimaler Entscheidungsbaum &amp;lt;br /&amp;gt;&lt;br /&gt;
Autoren: Christian Gebauer, Sebastian Große, Jonathan Wiens, Benjamin Pfeiffer, Nico Smeenk &amp;lt;br /&amp;gt;&lt;br /&gt;
Modul: Software-Engineering II &amp;lt;br /&amp;gt;&lt;br /&gt;
Studiengang: Informatik 2010 &amp;lt;br /&amp;gt;&lt;br /&gt;
Fachbereich: Fachbereich 2, Duales Studium Wirtschaft • Technik, HWR Berlin &amp;lt;br /&amp;gt;&lt;br /&gt;
Datum:&lt;br /&gt;
&lt;br /&gt;
== Vorwort ==&lt;br /&gt;
Dieses Pflichtenheft ist eine Vereinbarung zwischen der Dozentin Frau Prof. Dr. Monett Diaz als Auftraggeberin und der Gruppe 1 des Kurses &amp;quot;Software-Engineering II&amp;quot; aus dem Studiengang &amp;quot;Informatik 2010&amp;quot;. Die Vereinbarung enthält alle Anforderungen an ein zu erstellendes Chat-Programm für die Hochschule für Wirtschaft und Recht Berlin. Das Dokument dient zur Strukturierung und genaueren Einschätzung des zeitlichen Aufwandes des Projektes und der Priorisierung der einzelnen Module. Somit lässt sich auch einschätzen, ob und mit welchen Kosten das Projekt durchführbar ist.&lt;br /&gt;
=== Erwartete Leserschaft ===&lt;br /&gt;
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.&lt;br /&gt;
=== Versionsgeschichte des Dokumentes ===&lt;br /&gt;
Dies ist die erste Version des Pflichtenheftes, weitere Versionen sind noch nicht in Planung.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
=== Allgemeines ===&lt;br /&gt;
Ein Entscheidungsbaum ist ein speziell aufgebauter Baum aus der Graphentheorie. Im Gegensatz zu einem &amp;quot;normalen&amp;quot; Baum ist ein Entscheidungsbaum geordnet und gerichtet und dient dem Zweck Entscheidungsregeln darzustellen. Ein Entscheidungsbaum kann durch Algorithmen auf Basis von tabellarischen Daten erstellt werden. Aufgrund der Tatsache, dass diese Bäume Entscheidungsprobleme lösen  bzw. vereinfachen können, wird diese Methode in vielen Bereichen angewandt. Hauptsächlich benutzt, wird ein Entscheidungsbaum beim Data-Mining, also der umfassenden Theroie der Datenauswertung; aber auch in der Betriebswirtschaftslehre, um effektives Marketing zu betreiben, oder Investment-Geschäfte zu bewerten. Darüber hinaus gibt es viele denkbare Einsatzbereiche, da Entscheidungen fast überall getroffen werden müssen.&lt;br /&gt;
&lt;br /&gt;
Ein Entscheidungsbaum besteht aus Knoten und Blättern. Er muss einen Wurzelknoten besitzen und wird durch Kanten verbunden.&lt;br /&gt;
Ein Knoten repräsentiert ein(en) Attribut(-namen), Kanten die zulässigen Attributwerte und die Blätter zeigen die Attributwerte (meistens klassifiziert) des Zielattributs an.&lt;br /&gt;
&lt;br /&gt;
In diesem Pflichtenheft wird nun ein Programm beschrieben, dass einen Entscheidungsbaum auf Basis einer Tabelle konstruieren kann. Dieses Programm ist als Auftragsarbeit von Hr. Prof. Dr. Höhne und Fr. Prof. Dr. Monett-Diaz zu sehen, bestimmte Funtktionen und Kriterien sind bereits vorgegeben.&lt;br /&gt;
=== Abgrenzungen ===&lt;br /&gt;
==== Ausgangssituation ====&lt;br /&gt;
Im Auftrag von Hr. Prof. Dr. Höhne und Fr. Prof. Dr. Monett-Diaz wird ein Programm, im Rahmen des Moduls SWE-2, entwickelt, welches dazu dienen soll Entscheidungsbäume zu konstruieren und darzustellen. Als Datenbasis dienen Excel- und CSV-Dateien.&lt;br /&gt;
Mit Hilfe dieser Daten soll dann ein &amp;quot;optimaler Entscheidungsbaum&amp;quot; aufgebaut werden, wobei zu beachten ist, dass der Begriff &amp;quot;optimal&amp;quot; nur relativ gesehen werden kann, und abhängig vom gewählten Algorhitmus und der Art des Datenbestandes ist.&lt;br /&gt;
&lt;br /&gt;
=== Systemname ===&lt;br /&gt;
Aufgrund der Tatsache, dass ein Entscheidungsbaum nach bestimmten Regeln ''aufgebaut'' wird und der Anwender einen ''Lerneffekt'' aus diesem Baum ziehen kann, in dem Entscheidungen vereinfacht werden, wurde beschlossen das Projekt und das Programm &amp;quot;Baumschule - Optimale Entscheidungsbäume&amp;quot; zu nennen. &lt;br /&gt;
==== Allgemeine Systembeschreibung ====&lt;br /&gt;
Das System bzw. das Programm bietet hauptsächlich drei grobe Funtkionen an:&lt;br /&gt;
* Laden/Editieren eines Datenbestands durch eine Datei (Excel bzw. CSV)&lt;br /&gt;
* Erstellen eines Entscheidungsbaumes durch einen gegebenen Algorithmus, oder einer Nutzervorgabe&lt;br /&gt;
* Präsentation des Ergebnisses&lt;br /&gt;
&lt;br /&gt;
Diese 3 Hauptfunktionen lassen sich näher beschreiben:&lt;br /&gt;
* Es gibt eine graphische Benutzeroberfläche mit der der Endandwender alle Funktionen des Programms benutzen kann&lt;br /&gt;
* Es gibt eine Funktion zum Laden/Speichern einer Excel- oder CSV-Datei&lt;br /&gt;
* Geladene Tabellendaten können editiert werden.&lt;br /&gt;
* Ein Baum kann automatisch generiert werden, ein ZielAttribut kann vorher gewählt werden.&lt;br /&gt;
* Ein Baum kann teilweise manuell erstellt werden, in dem für jeden Knoten die nächste Attributebene selbst gewählt werden kann.&lt;br /&gt;
* Es können jederzeit detaillierte Informationen über einen Baum bzw. dessen Tabellendaten angezeigt werden.&lt;br /&gt;
&lt;br /&gt;
==== Vorteile und Nutzen ====&lt;br /&gt;
&lt;br /&gt;
Das System bietet die Bearbeitung eines Datenbestandes an und arbeitet nach dem Laden einer Datei formatunabhängig. Ist ein Datenbestand bearbeitet worden, ist dieser auch wieder exportierbar.&lt;br /&gt;
Die Oberfläche bietet die Möglichkeit einen, gemäß des Algorithmus, optimalen Baumes darzustellen. Die Stärke liegt hierbei einerseits auf der Präsentation und andererseits bei der leichten Editierbarkeit, denn der Baum kann einfach durch Mausklicks bearbeitet und untersucht werden. Ein manuelles zeichnen und berechnen des Baumes entfällt. &lt;br /&gt;
Gerade bei großen Daten ist ein Baum nur durch ein Programm wie dieses erstellbar. Arbeitet der Algorithmus fehlerfrei, kann ''immer wieder'' und ''reproduzierbar'' ein Baum aufgebaut werden.&lt;br /&gt;
&lt;br /&gt;
=== Überblick über den Rest des Dokuments ===&lt;br /&gt;
&lt;br /&gt;
Die nachfolgenden Abschnitte befassen sich detaillierter und gründlicher mit den Funktionen des Programms. Es werden Vereinbarungen festgelegt, welches Verhalten das Programm leisten kann und muss.&lt;br /&gt;
&lt;br /&gt;
== Fachbegriffe, Akronyme und Abkürzungen ==&lt;br /&gt;
&amp;lt;b&amp;gt;Dieser Teil soll die im Dokument verwendeten technischen Fachbergriffe festlegen. Dabei soll keine Erfahrung oder Fachwissen beim Leser vorausgesetzt werden.&amp;lt;/b&amp;gt;&lt;br /&gt;
=== Glossar ===&lt;br /&gt;
=== Akronyme ===&lt;br /&gt;
=== Abkürzungen ===&lt;br /&gt;
&lt;br /&gt;
== Zielbestimmungen ==&lt;br /&gt;
Die folgenden Ziele sind in 3 Kategorien (Muss-, Soll- , Kannkriterien) unterteilt. Durch diese Unterteilung wird eine Prioritätshierarchie geschaffen, wobei Musskriterien die höchste Priorität erhalten und entsprechend vorrangig abgearbeitet werden. &lt;br /&gt;
&lt;br /&gt;
=== Musskriterien ===&lt;br /&gt;
Die Muss-Kritierien ergeben sich größtenteils aus der Aufgabenbeschreibung von Hr. Höhne und Fr. Monett-Diaz und sollen hier abgekürzt wiedergegeben werden:&lt;br /&gt;
* Das Programm muss in der Lage sein mit einem Datenbestand von bis zu 10 Attributen und 100 Objekten arbeiten zu können.&lt;br /&gt;
* Das Programm muss mit Tabellen-Dateien umgehen können. (Laden/Speichern von Excel- und CSV-Dateien)&lt;br /&gt;
* Das Programm muss ein Bearbeiten der Tabellendaten zulassen.&lt;br /&gt;
* Es muss eine graphische Benutzeroberfläche geben.&lt;br /&gt;
* Das Zielattribut muss farblich hervorgehoben werden.&lt;br /&gt;
&lt;br /&gt;
* Das Programm muss eine Möglichkeit bieten den Baum, durch Auswahl des nächsten Attributs, teilweise manuell aufzubauen.&lt;br /&gt;
* Wenn der Baum interaktiv zusammengestellt wird, darf(muss) nur der oberste Knoten präsentiert werden.&lt;br /&gt;
* Bei der Präsentation des interaktiven Baums kann dieser durch ein Mausklick &amp;quot;untersucht&amp;quot; werden. Es wird bei einem Knoten eine Tabelle angezigt, die die Objekte anzeigt, die durch den Knoten repräsentiert werden.&lt;br /&gt;
* Es kann in der Tabelle ein Attribut untersucht werden, woraufhin die gewichtete Entropie, die sichbei Aufteilung nach diesem Attribut ergeben würde, angezeigt wird.&lt;br /&gt;
&lt;br /&gt;
* Das Programm muss anhand eines vorgegebenen Algorithmus (''Konzept der Entropie'') einen Entscheidungsbaum erstellen können.&lt;br /&gt;
* Bei der automatischen Erstellung wird ein Knoten der nur noch Objekte einer Klasse enthält nicht weiter aufgeteilt, selbiges gilt wenn der Knoten eine (einstellbare) Anzahl von Elementen enthält.&lt;br /&gt;
* Bei der Präsentation des autmatischen Baums kann dieser durch ein Mausklick &amp;quot;untersucht&amp;quot; werden. Es wird bei einem Knoten eine Tabelle angezigt, die die Objekte anzeigt, die durch den Knoten repräsentiert werden.&lt;br /&gt;
&lt;br /&gt;
* Bei der Präsentation des interaktiven und autmatischen Baums müssen die Kanten mit dem entsprechenden Attributewert angezeigt werden.&lt;br /&gt;
* Bei der Präsentation des interaktiven und automatischen Baums muss die Zahl der enthaltenen Objekte, die Zahl jeder Klasse und die Entropie in jedem Knoten angezeigt werden.&lt;br /&gt;
* Der Entscheidungsbaum muss, egal ob manuell oder autmoatisch erstellt, bei Änderungen des Datenbestandes aktualisiert werden.&lt;br /&gt;
&lt;br /&gt;
* Das Programm muss lauffähig sein und ausführbar vorliegen.&lt;br /&gt;
&lt;br /&gt;
=== Sollkriterien ===&lt;br /&gt;
* Das Programm soll an den wichtigen Stellen durchdachte Hilfebeschreibungen(ToolTips) anzeigen können.&lt;br /&gt;
* Das Programm soll für den Benutzer ein vollständiges Handbuch bereitstellen, dass jederzeit über das Menü aufgerufen werden kann.&lt;br /&gt;
* Das Programm soll bei bestimmten Fehlern oder unerlaubten Nutzeraktionen eine graphische Fehlermeldung anzeigen.&lt;br /&gt;
* Das Programm soll zum Nachverfolgen von Programm-Algorithmen und -Abläufen eine Log-Datei erstellen.&lt;br /&gt;
* Die Oberfläche soll für den Nutzer farblich und organisatorisch übersichtlich und leicht zu bedienen sein.&lt;br /&gt;
* Das Erstellen eines Baumes soll nicht länger als 5 Sekunden dauern. (Vorrausgesetzt das Datenlimit von 10*100 Attributwerten wird eingehalten)&lt;br /&gt;
* Die Oberfläche soll neben der einfachen Ansicht einen Präsentationsmodus bieten, in dem der Baum als Vollbild dargestellt wird.&lt;br /&gt;
* Für die Anzeige des Baumes soll eine Legende bereitgestellt werden, die den Aufbau eines dargestellten Baumes erklärt.&lt;br /&gt;
&lt;br /&gt;
=== Kannkriterien ===&lt;br /&gt;
* Das Programm kann die Möglichkeit bieten, über eine Konfigurationsschnittstelle verschiedene Programmparameter anzupassen.&lt;br /&gt;
* Für den Benutzer kann es eine grafische Möglichkeit geben die Konfigurationsschnittstelle zu nutzen.&lt;br /&gt;
* Der Nutzer kann die Möglichkeit erhalten den dynamisch erstellten Baum als xml-Datei zu speichern.&lt;br /&gt;
* Der Nutzer kann die Möglichkeit erhalten die abgespeicherte xml-Datei wieder zu laden; die Oberfläche stellt dann automatisch die Tabelle und die Bäume wieder her.&lt;br /&gt;
* Das Programm kann die Möglichkeit bieten den dynamischen und automatischen Baum als Bild-Datei(*.png ; *.jpg) abzuspeichern.&lt;br /&gt;
* Die Zeichenoberfläche, in dem der Baum (dynamisch oder manuell) präsentiert wird, kann durch einen Schieberegler heran- bzw. herausgezoomt werden.&lt;br /&gt;
&lt;br /&gt;
=== Abgrenzungskriterien ===&lt;br /&gt;
&lt;br /&gt;
* Die Software setzt eine installierte Version von Java voraus.&lt;br /&gt;
* Es gibt für jedes Betriebssystem (Windows, Linux, Mac) und dessen Ausprägung (x64, x32) jeweils eine Version.&lt;br /&gt;
* Die Software kann nur mit Datenformaten umgehen, die Excel-Konform sind- (bis 2003: .xls, ab 2007: .xlsx) oder dem CSV-Format entsprechen (Trennzeichen: &amp;quot;,&amp;quot; (Ausgesprochen: Komma)&lt;br /&gt;
* Die Software benutzt einen fest vorgegebenen Algorithmus (''Konzept der Entropie'').&lt;br /&gt;
* Die Tabelle kann maximal 10 Attribute und jeweils 100 Attributwerte enthalten und darf innerhalb der Tabellengrenzen keine leeren Zellenwerte (leere Strings) enthalten.&lt;br /&gt;
&lt;br /&gt;
== Systemeinsatz ==&lt;br /&gt;
=== Anwendungsbereiche === &lt;br /&gt;
=== Zielgruppen === &lt;br /&gt;
=== Betriebsbedingungen === &lt;br /&gt;
&lt;br /&gt;
== Technische Systemumgebung ==&lt;br /&gt;
=== Software === &lt;br /&gt;
*Das Programm soll auf allen gängigen Windows-Betriebssystemen lauffähig sein.&lt;br /&gt;
*Es soll eine Version für 32- und eine für 64 Bit Systeme geben.&lt;br /&gt;
*Es sollen weitere Betriebssysteme (Linux, Mac) unterstützt werden (optional).&lt;br /&gt;
*Eine Java-Umgebung muss auf den Zielsystemen vorhanden sein.&lt;br /&gt;
*Das Programm soll ohne Installation lauffähig sein.&lt;br /&gt;
&lt;br /&gt;
=== Hardware === &lt;br /&gt;
*Es wird ein aktuell üblicher Standard-PC vorausgesetzt(auf dem Windows mit Standardsoftware lauffähig ist).&lt;br /&gt;
*Es wird ein präsentationsfähiges Ausgabegerät (großer Monitor, Beamer, etc.) benötigt, da das Programm u.A. für Präsentationen eingesetzt werden soll.&lt;br /&gt;
=== Orgware ===&lt;br /&gt;
*Es wird keine explizite Orgware benötigt. Der Anwender kann alle relevanten Einstellungen selbst direkt in der Software bzw. in der Konfigurations-Datei vornehmen.&lt;br /&gt;
&lt;br /&gt;
== Systemübersicht und -architektur ==&lt;br /&gt;
=== Übersicht über das System === &lt;br /&gt;
=== Systemarchitektur === &lt;br /&gt;
&amp;lt;b&amp;gt;Dieses Kapitel sollte einen groben Überblick über die erwartete Systemarchitektur geben, der die Verteilung der Funktionen auf die Systemmodule zeigt. Wiederverwendete Komponenten sollten gekennzeichnet werden.&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Schnittstellen des Systems ===&lt;br /&gt;
&lt;br /&gt;
== Systemanforderungen ==&lt;br /&gt;
Das Programm soll den Argorithmus, einen optimalen Entscheidungsbaum zu finden, demonstrieren.&lt;br /&gt;
=== Funktionale Anforderungen ===&lt;br /&gt;
* Das Programm soll unter allen gängigen Windows-Betriebssystemen ohne Installation lauffähig sein (Java darf vorrausgesetzt werden, sonst nichts spezielles).&lt;br /&gt;
==== Tabellenansicht ====&lt;br /&gt;
* Einlesen / Speichern einer Tabelle im .csv-Format (wobei das Trennzeichen ein Komma ist).&lt;br /&gt;
* Alle Attribute sind Zeichenketten.&lt;br /&gt;
* Eingeben / Editieren einer Tabelle muss möglich sein.&lt;br /&gt;
* Import und Export von Excel-Dateien.&lt;br /&gt;
&lt;br /&gt;
==== Baum automatisch ====&lt;br /&gt;
* Der optimale Entscheidungsbaum wird mit dem Algorithmus, der sukzessiv für jeden Knoten jeweils das Attribut mit der minimalen gewichteten Entropie auswählt, erzeugt und dargestellt.&lt;br /&gt;
* Wenn ein Knoten nur noch Objekte einer Klasse enthält, wird dieser nicht weiter aufgeteilt.&lt;br /&gt;
* Wenn ein Knoten nur noch eine bestimmte Anzahl (einstellbar - Voreinstellung 1) von Elementen enthält, wird nicht weiter aufgeteilt.&lt;br /&gt;
&lt;br /&gt;
=== Qualitätsanforderungen ===&lt;br /&gt;
=== Benutzeroberfläche ===&lt;br /&gt;
Weil das Programm auch für Präsentationszwecke eingesetzt werden soll, ist insbesondere auf eine entsprechende Gestaltung der Oberfläche (aussagekräftige Verwendung von Farben, ausreichend großer Schriftgrad, etc.) zu achten.&amp;lt;br&amp;gt;&lt;br /&gt;
Im Programm kann zwischen drei verschiedenen Ansichten hin- und hergeschalten werden, von denen stets genau eine sichtbar ist:&lt;br /&gt;
* Tabellenansicht&lt;br /&gt;
* Baum interaktiv&lt;br /&gt;
* Baum automatisch&lt;br /&gt;
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.&lt;br /&gt;
==== Tabellenansicht ====&lt;br /&gt;
* 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.&lt;br /&gt;
* (Farbliche) Markierung des Zielattributs.&lt;br /&gt;
&lt;br /&gt;
==== Baum interaktiv ====&lt;br /&gt;
* Zu Beginn wird nur der oberste Knoten (also der, der allen Objekten in der Tabelle entspricht) dargestellt.&lt;br /&gt;
* Das gilt ebenso, wenn in der Tabellenansicht ein Attribut hinzugefügt oder gelöscht oder das Zielattribut geändert wird.&lt;br /&gt;
* In jedem Knoten ist die Zahl der enthaltenden Objekte, die Zahl der Objekte jeder Klasse und die Entropie angegeben.&lt;br /&gt;
* Die Kanten sind mit dem entsprechenden Attributwert markiert.&lt;br /&gt;
* Bei Identifikation eines Knotens des Baumes wird eine Tabelle mit den Objekten, die von diesem Knoten repräsentiert werden, dargestellt.&lt;br /&gt;
* Wird in dieser Tabelle ein Attribut identifiziert, wird die gewichtete Entropie, die sich bei Aufteilung nach diesem Attribut ergeben würde, ausgegeben.&lt;br /&gt;
* In dieser Tabelle kann ein Attribut selektiert werden, so dass entsprechend den Werten dieses Attributes Unterknoten entstehen. Die Tabelle verschwindet. Hatte der Knoten schon Unterknoten, verschwinden diese natürlich ebenfalls.&lt;br /&gt;
&lt;br /&gt;
==== Baum automatisch ====&lt;br /&gt;
* In jedem Knoten ist die Zahl der enthaltenden Objekte, die Zahl der Objekte jeder Klasse und die Entropie automatisch dargestellt.&lt;br /&gt;
* Die Kanten sind mit dem entsprechenden Attributwert markiert.&lt;br /&gt;
* Bei Identifikation eines Knotens des Baumes wird eine Tabelle mit den Objekten, die von diesem Knoten repräsentiert werden, dargestellt.&lt;br /&gt;
&lt;br /&gt;
=== Andere nicht-funktionale Anforderungen ===&lt;br /&gt;
&lt;br /&gt;
== Systemmodelle ==&lt;br /&gt;
&amp;lt;b&amp;gt;Dieses Kapitel sollte eines oder mehrere Systemmodelle festlegen, die die Beziehung zwischen den Systemkomponenten und dem System und seiner Umgebung aufzeigen. Dies können Objekt-, Datenfluss- und semantische Datenmodelle sein.&amp;lt;/b&amp;gt;&lt;br /&gt;
=== Datenmodelle === &lt;br /&gt;
=== Andere Modelle === &lt;br /&gt;
&lt;br /&gt;
== Anforderungen an die Entwicklungsumgebung ==&lt;br /&gt;
Die hier genannten Aspekte werden für die qualitative Entwicklung der Software benötigt.&lt;br /&gt;
=== Software ===&lt;br /&gt;
Das Betriebssystem spielt keine Rolle, da Eclipse und Java Plattformunabhängig ist.&lt;br /&gt;
*Die Software &amp;quot;Eclipse&amp;quot; zur Programmierung mit Java wird benötigt. Hinzu kommt das Eclipse PlugIn &amp;quot;subversive&amp;quot; zur Handhabung der Versionsverwaltung&lt;br /&gt;
*Eine aktuelle Java-Developer-Version (jdk) wird zur Kompilierung benötigt. Außerdem werden folgende externe Bibliotheken benötigt:&lt;br /&gt;
** &amp;quot;dom4j&amp;quot;, &amp;quot;poi&amp;quot; zur Konvertierung und Erstellung von Excel-Spreadsheet Tabellen&lt;br /&gt;
** &amp;quot;swt&amp;quot;, das genutzte Framework zur Erstellung der grafischen Benutzeroberfläche&lt;br /&gt;
** &amp;quot;xmlbeans&amp;quot; zur Erstellung und Lesen von XML-Dateien&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
Für die verwendete Hardware sollten mindestens 2 GB Arbeitsspeicher verfügbar sein, um ein flüssiges Abarbeiten und Darstellen der relevanten Inhalte zu gewährleisten.&lt;br /&gt;
&lt;br /&gt;
=== Orgware ===&lt;br /&gt;
Vorrangig geschah die Kommunikation im Team über E-Mail Nachrichten und Kurzmitteilungen. Hier wurde beispielsweise Skype intensiv genutzt.&lt;br /&gt;
&lt;br /&gt;
== Ergänzungen ==&lt;br /&gt;
&lt;br /&gt;
== Anhang ==&lt;/div&gt;</summary>
		<author><name>Chge</name></author>	</entry>

	<entry>
		<id>https://www.p-servus.net/mediawiki/index.php?title=Optimaler_Entscheidungsbaum:_Pflichtenheft</id>
		<title>Optimaler Entscheidungsbaum: Pflichtenheft</title>
		<link rel="alternate" type="text/html" href="https://www.p-servus.net/mediawiki/index.php?title=Optimaler_Entscheidungsbaum:_Pflichtenheft"/>
				<updated>2012-05-22T10:02:58Z</updated>
		
		<summary type="html">&lt;p&gt;Chge: /* Software */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Über ==&lt;br /&gt;
Projekt: Optimaler Entscheidungsbaum &amp;lt;br /&amp;gt;&lt;br /&gt;
Autoren: Christian Gebauer, Sebastian Große, Jonathan Wiens, Benjamin Pfeiffer, Nico Smeenk &amp;lt;br /&amp;gt;&lt;br /&gt;
Modul: Software-Engineering II &amp;lt;br /&amp;gt;&lt;br /&gt;
Studiengang: Informatik 2010 &amp;lt;br /&amp;gt;&lt;br /&gt;
Fachbereich: Fachbereich 2, Duales Studium Wirtschaft • Technik, HWR Berlin &amp;lt;br /&amp;gt;&lt;br /&gt;
Datum:&lt;br /&gt;
&lt;br /&gt;
== Vorwort ==&lt;br /&gt;
Dieses Pflichtenheft ist eine Vereinbarung zwischen der Dozentin Frau Prof. Dr. Monett Diaz als Auftraggeberin und der Gruppe 1 des Kurses &amp;quot;Software-Engineering II&amp;quot; aus dem Studiengang &amp;quot;Informatik 2010&amp;quot;. Die Vereinbarung enthält alle Anforderungen an ein zu erstellendes Chat-Programm für die Hochschule für Wirtschaft und Recht Berlin. Das Dokument dient zur Strukturierung und genaueren Einschätzung des zeitlichen Aufwandes des Projektes und der Priorisierung der einzelnen Module. Somit lässt sich auch einschätzen, ob und mit welchen Kosten das Projekt durchführbar ist.&lt;br /&gt;
=== Erwartete Leserschaft ===&lt;br /&gt;
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.&lt;br /&gt;
=== Versionsgeschichte des Dokumentes ===&lt;br /&gt;
Dies ist die erste Version des Pflichtenheftes, weitere Versionen sind noch nicht in Planung.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
=== Allgemeines ===&lt;br /&gt;
Ein Entscheidungsbaum ist ein speziell aufgebauter Baum aus der Graphentheorie. Im Gegensatz zu einem &amp;quot;normalen&amp;quot; Baum ist ein Entscheidungsbaum geordnet und gerichtet und dient dem Zweck Entscheidungsregeln darzustellen. Ein Entscheidungsbaum kann durch Algorithmen auf Basis von tabellarischen Daten erstellt werden. Aufgrund der Tatsache, dass diese Bäume Entscheidungsprobleme lösen  bzw. vereinfachen können, wird diese Methode in vielen Bereichen angewandt. Hauptsächlich benutzt, wird ein Entscheidungsbaum beim Data-Mining, also der umfassenden Theroie der Datenauswertung; aber auch in der Betriebswirtschaftslehre, um effektives Marketing zu betreiben, oder Investment-Geschäfte zu bewerten. Darüber hinaus gibt es viele denkbare Einsatzbereiche, da Entscheidungen fast überall getroffen werden müssen.&lt;br /&gt;
&lt;br /&gt;
Ein Entscheidungsbaum besteht aus Knoten und Blättern. Er muss einen Wurzelknoten besitzen und wird durch Kanten verbunden.&lt;br /&gt;
Ein Knoten repräsentiert ein(en) Attribut(-namen), Kanten die zulässigen Attributwerte und die Blätter zeigen die Attributwerte (meistens klassifiziert) des Zielattributs an.&lt;br /&gt;
&lt;br /&gt;
In diesem Pflichtenheft wird nun ein Programm beschrieben, dass einen Entscheidungsbaum auf Basis einer Tabelle konstruieren kann. Dieses Programm ist als Auftragsarbeit von Hr. Prof. Dr. Höhne und Fr. Prof. Dr. Monett-Diaz zu sehen, bestimmte Funtktionen und Kriterien sind bereits vorgegeben.&lt;br /&gt;
=== Abgrenzungen ===&lt;br /&gt;
==== Ausgangssituation ====&lt;br /&gt;
Im Auftrag von Hr. Prof. Dr. Höhne und Fr. Prof. Dr. Monett-Diaz wird ein Programm, im Rahmen des Moduls SWE-2, entwickelt, welches dazu dienen soll Entscheidungsbäume zu konstruieren und darzustellen. Als Datenbasis dienen Excel- und CSV-Dateien.&lt;br /&gt;
Mit Hilfe dieser Daten soll dann ein &amp;quot;optimaler Entscheidungsbaum&amp;quot; aufgebaut werden, wobei zu beachten ist, dass der Begriff &amp;quot;optimal&amp;quot; nur relativ gesehen werden kann, und abhängig vom gewählten Algorhitmus und der Art des Datenbestandes ist.&lt;br /&gt;
&lt;br /&gt;
=== Systemname ===&lt;br /&gt;
Aufgrund der Tatsache, dass ein Entscheidungsbaum nach bestimmten Regeln ''aufgebaut'' wird und der Anwender einen ''Lerneffekt'' aus diesem Baum ziehen kann, in dem Entscheidungen vereinfacht werden, wurde beschlossen das Projekt und das Programm &amp;quot;Baumschule - Optimale Entscheidungsbäume&amp;quot; zu nennen. &lt;br /&gt;
==== Allgemeine Systembeschreibung ====&lt;br /&gt;
Das System bzw. das Programm bietet hauptsächlich drei grobe Funtkionen an:&lt;br /&gt;
* Laden/Editieren eines Datenbestands durch eine Datei (Excel bzw. CSV)&lt;br /&gt;
* Erstellen eines Entscheidungsbaumes durch einen gegebenen Algorithmus, oder einer Nutzervorgabe&lt;br /&gt;
* Präsentation des Ergebnisses&lt;br /&gt;
&lt;br /&gt;
Diese 3 Hauptfunktionen lassen sich näher beschreiben:&lt;br /&gt;
* Es gibt eine graphische Benutzeroberfläche mit der der Endandwender alle Funktionen des Programms benutzen kann&lt;br /&gt;
* Es gibt eine Funktion zum Laden/Speichern einer Excel- oder CSV-Datei&lt;br /&gt;
* Geladene Tabellendaten können editiert werden.&lt;br /&gt;
* Ein Baum kann automatisch generiert werden, ein ZielAttribut kann vorher gewählt werden.&lt;br /&gt;
* Ein Baum kann teilweise manuell erstellt werden, in dem für jeden Knoten die nächste Attributebene selbst gewählt werden kann.&lt;br /&gt;
* Es können jederzeit detaillierte Informationen über einen Baum bzw. dessen Tabellendaten angezeigt werden.&lt;br /&gt;
&lt;br /&gt;
==== Vorteile und Nutzen ====&lt;br /&gt;
&lt;br /&gt;
Das System bietet die Bearbeitung eines Datenbestandes an und arbeitet nach dem Laden einer Datei formatunabhängig. Ist ein Datenbestand bearbeitet worden, ist dieser auch wieder exportierbar.&lt;br /&gt;
Die Oberfläche bietet die Möglichkeit einen, gemäß des Algorithmus, optimalen Baumes darzustellen. Die Stärke liegt hierbei einerseits auf der Präsentation und andererseits bei der leichten Editierbarkeit, denn der Baum kann einfach durch Mausklicks bearbeitet und untersucht werden. Ein manuelles zeichnen und berechnen des Baumes entfällt. &lt;br /&gt;
Gerade bei großen Daten ist ein Baum nur durch ein Programm wie dieses erstellbar. Arbeitet der Algorithmus fehlerfrei, kann ''immer wieder'' und ''reproduzierbar'' ein Baum aufgebaut werden.&lt;br /&gt;
&lt;br /&gt;
=== Überblick über den Rest des Dokuments ===&lt;br /&gt;
&lt;br /&gt;
Die nachfolgenden Abschnitte befassen sich detaillierter und gründlicher mit den Funktionen des Programms. Es werden Vereinbarungen festgelegt, welches Verhalten das Programm leisten kann und muss.&lt;br /&gt;
&lt;br /&gt;
== Fachbegriffe, Akronyme und Abkürzungen ==&lt;br /&gt;
&amp;lt;b&amp;gt;Dieser Teil soll die im Dokument verwendeten technischen Fachbergriffe festlegen. Dabei soll keine Erfahrung oder Fachwissen beim Leser vorausgesetzt werden.&amp;lt;/b&amp;gt;&lt;br /&gt;
=== Glossar ===&lt;br /&gt;
=== Akronyme ===&lt;br /&gt;
=== Abkürzungen ===&lt;br /&gt;
&lt;br /&gt;
== Zielbestimmungen ==&lt;br /&gt;
Die folgenden Ziele sind in 3 Kategorien (Muss-, Soll- , Kannkriterien) unterteilt. Durch diese Unterteilung wird eine Prioritätshierarchie geschaffen, wobei Musskriterien die höchste Priorität erhalten und entsprechend vorrangig abgearbeitet werden. &lt;br /&gt;
&lt;br /&gt;
=== Musskriterien ===&lt;br /&gt;
Die Muss-Kritierien ergeben sich größtenteils aus der Aufgabenbeschreibung von Hr. Höhne und Fr. Monett-Diaz und sollen hier abgekürzt wiedergegeben werden:&lt;br /&gt;
* Das Programm muss in der Lage sein mit einem Datenbestand von bis zu 10 Attributen und 100 Objekten arbeiten zu können.&lt;br /&gt;
* Das Programm muss mit Tabellen-Dateien umgehen können. (Laden/Speichern von Excel- und CSV-Dateien)&lt;br /&gt;
* Das Programm muss ein Bearbeiten der Tabellendaten zulassen.&lt;br /&gt;
* Es muss eine graphische Benutzeroberfläche geben.&lt;br /&gt;
* Das Zielattribut muss farblich hervorgehoben werden.&lt;br /&gt;
&lt;br /&gt;
* Das Programm muss eine Möglichkeit bieten den Baum, durch Auswahl des nächsten Attributs, teilweise manuell aufzubauen.&lt;br /&gt;
* Wenn der Baum interaktiv zusammengestellt wird, darf(muss) nur der oberste Knoten präsentiert werden.&lt;br /&gt;
* Bei der Präsentation des interaktiven Baums kann dieser durch ein Mausklick &amp;quot;untersucht&amp;quot; werden. Es wird bei einem Knoten eine Tabelle angezigt, die die Objekte anzeigt, die durch den Knoten repräsentiert werden.&lt;br /&gt;
* Es kann in der Tabelle ein Attribut untersucht werden, woraufhin die gewichtete Entropie, die sichbei Aufteilung nach diesem Attribut ergeben würde, angezeigt wird.&lt;br /&gt;
&lt;br /&gt;
* Das Programm muss anhand eines vorgegebenen Algorithmus (''Konzept der Entropie'') einen Entscheidungsbaum erstellen können.&lt;br /&gt;
* Bei der automatischen Erstellung wird ein Knoten der nur noch Objekte einer Klasse enthält nicht weiter aufgeteilt, selbiges gilt wenn der Knoten eine (einstellbare) Anzahl von Elementen enthält.&lt;br /&gt;
* Bei der Präsentation des autmatischen Baums kann dieser durch ein Mausklick &amp;quot;untersucht&amp;quot; werden. Es wird bei einem Knoten eine Tabelle angezigt, die die Objekte anzeigt, die durch den Knoten repräsentiert werden.&lt;br /&gt;
&lt;br /&gt;
* Bei der Präsentation des interaktiven und autmatischen Baums müssen die Kanten mit dem entsprechenden Attributewert angezeigt werden.&lt;br /&gt;
* Bei der Präsentation des interaktiven und automatischen Baums muss die Zahl der enthaltenen Objekte, die Zahl jeder Klasse und die Entropie in jedem Knoten angezeigt werden.&lt;br /&gt;
* Der Entscheidungsbaum muss, egal ob manuell oder autmoatisch erstellt, bei Änderungen des Datenbestandes aktualisiert werden.&lt;br /&gt;
&lt;br /&gt;
* Das Programm muss lauffähig sein und ausführbar vorliegen.&lt;br /&gt;
&lt;br /&gt;
=== Sollkriterien ===&lt;br /&gt;
* Das Programm soll an den wichtigen Stellen durchdachte Hilfebeschreibungen(ToolTips) anzeigen können.&lt;br /&gt;
* Das Programm soll für den Benutzer ein vollständiges Handbuch bereitstellen, dass jederzeit über das Menü aufgerufen werden kann.&lt;br /&gt;
* Das Programm soll bei bestimmten Fehlern oder unerlaubten Nutzeraktionen eine graphische Fehlermeldung anzeigen.&lt;br /&gt;
* Das Programm soll zum Nachverfolgen von Programm-Algorithmen und -Abläufen eine Log-Datei erstellen.&lt;br /&gt;
* Die Oberfläche soll für den Nutzer farblich und organisatorisch übersichtlich und leicht zu bedienen sein.&lt;br /&gt;
* Das Erstellen eines Baumes soll nicht länger als 5 Sekunden dauern. (Vorrausgesetzt das Datenlimit von 10*100 Attributwerten wird eingehalten)&lt;br /&gt;
* Die Oberfläche soll neben der einfachen Ansicht einen Präsentationsmodus bieten, in dem der Baum als Vollbild dargestellt wird.&lt;br /&gt;
* Für die Anzeige des Baumes soll eine Legende bereitgestellt werden, die den Aufbau eines dargestellten Baumes erklärt.&lt;br /&gt;
&lt;br /&gt;
=== Kannkriterien ===&lt;br /&gt;
* Das Programm kann die Möglichkeit bieten, über eine Konfigurationsschnittstelle verschiedene Programmparameter anzupassen.&lt;br /&gt;
* Für den Benutzer kann es eine grafische Möglichkeit geben die Konfigurationsschnittstelle zu nutzen.&lt;br /&gt;
* Der Nutzer kann die Möglichkeit erhalten den dynamisch erstellten Baum als xml-Datei zu speichern.&lt;br /&gt;
* Der Nutzer kann die Möglichkeit erhalten die abgespeicherte xml-Datei wieder zu laden; die Oberfläche stellt dann automatisch die Tabelle und die Bäume wieder her.&lt;br /&gt;
* Das Programm kann die Möglichkeit bieten den dynamischen und automatischen Baum als Bild-Datei(*.png ; *.jpg) abzuspeichern.&lt;br /&gt;
* Die Zeichenoberfläche, in dem der Baum (dynamisch oder manuell) präsentiert wird, kann durch einen Schieberegler heran- bzw. herausgezoomt werden.&lt;br /&gt;
&lt;br /&gt;
=== Abgrenzungskriterien ===&lt;br /&gt;
&lt;br /&gt;
* Die Software setzt eine installierte Version von Java voraus.&lt;br /&gt;
* Es gibt für jedes Betriebssystem (Windows, Linux, Mac) und dessen Ausprägung (x64, x32) jeweils eine Version.&lt;br /&gt;
* Die Software kann nur mit Datenformaten umgehen, die Excel-Konform sind- (bis 2003: .xls, ab 2007: .xlsx) oder dem CSV-Format entsprechen (Trennzeichen: &amp;quot;,&amp;quot; (Ausgesprochen: Komma)&lt;br /&gt;
* Die Software benutzt einen fest vorgegebenen Algorithmus (''Konzept der Entropie'').&lt;br /&gt;
* Die Tabelle kann maximal 10 Attribute und jeweils 100 Attributwerte enthalten und darf innerhalb der Tabellengrenzen keine leeren Zellenwerte (leere Strings) enthalten.&lt;br /&gt;
&lt;br /&gt;
== Systemeinsatz ==&lt;br /&gt;
=== Anwendungsbereiche === &lt;br /&gt;
=== Zielgruppen === &lt;br /&gt;
=== Betriebsbedingungen === &lt;br /&gt;
&lt;br /&gt;
== Technische Systemumgebung ==&lt;br /&gt;
=== Software === &lt;br /&gt;
*Das Programm soll auf allen gängigen Windows-Betriebssystemen lauffähig sein.&lt;br /&gt;
*Es soll eine Version für 32- und eine für 64 Bit Systeme geben.&lt;br /&gt;
*Es sollen weitere Betriebssysteme (Linux, Mac) unterstützt werden (optional).&lt;br /&gt;
*Eine Java-Umgebung muss auf den Zielsystemen vorhanden sein.&lt;br /&gt;
*Das Programm soll ohne Installation lauffähig sein.&lt;br /&gt;
&lt;br /&gt;
=== Hardware === &lt;br /&gt;
*Es wird ein aktuell üblicher Standard-PC vorausgesetzt(auf dem Windows mit Standardsoftware lauffähig ist).&lt;br /&gt;
*Es wird ein präsentationsfähiges Ausgabegerät (großer Monitor, Beamer, etc.) benötigt, da das Programm u.A. für Präsentationen eingesetzt werden soll.&lt;br /&gt;
=== Orgware ===&lt;br /&gt;
*Es wird keine explizite Orgware benötigt. Der Anwender kann alle relevanten Einstellungen direkt in der Software bzw. in der Konfigurations-Datei vornehmen.&lt;br /&gt;
&lt;br /&gt;
== Systemübersicht und -architektur ==&lt;br /&gt;
=== Übersicht über das System === &lt;br /&gt;
=== Systemarchitektur === &lt;br /&gt;
&amp;lt;b&amp;gt;Dieses Kapitel sollte einen groben Überblick über die erwartete Systemarchitektur geben, der die Verteilung der Funktionen auf die Systemmodule zeigt. Wiederverwendete Komponenten sollten gekennzeichnet werden.&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Schnittstellen des Systems ===&lt;br /&gt;
&lt;br /&gt;
== Systemanforderungen ==&lt;br /&gt;
Das Programm soll den Argorithmus, einen optimalen Entscheidungsbaum zu finden, demonstrieren.&lt;br /&gt;
=== Funktionale Anforderungen ===&lt;br /&gt;
* Das Programm soll unter allen gängigen Windows-Betriebssystemen ohne Installation lauffähig sein (Java darf vorrausgesetzt werden, sonst nichts spezielles).&lt;br /&gt;
==== Tabellenansicht ====&lt;br /&gt;
* Einlesen / Speichern einer Tabelle im .csv-Format (wobei das Trennzeichen ein Komma ist).&lt;br /&gt;
* Alle Attribute sind Zeichenketten.&lt;br /&gt;
* Eingeben / Editieren einer Tabelle muss möglich sein.&lt;br /&gt;
* Import und Export von Excel-Dateien.&lt;br /&gt;
&lt;br /&gt;
==== Baum automatisch ====&lt;br /&gt;
* Der optimale Entscheidungsbaum wird mit dem Algorithmus, der sukzessiv für jeden Knoten jeweils das Attribut mit der minimalen gewichteten Entropie auswählt, erzeugt und dargestellt.&lt;br /&gt;
* Wenn ein Knoten nur noch Objekte einer Klasse enthält, wird dieser nicht weiter aufgeteilt.&lt;br /&gt;
* Wenn ein Knoten nur noch eine bestimmte Anzahl (einstellbar - Voreinstellung 1) von Elementen enthält, wird nicht weiter aufgeteilt.&lt;br /&gt;
&lt;br /&gt;
=== Qualitätsanforderungen ===&lt;br /&gt;
=== Benutzeroberfläche ===&lt;br /&gt;
Weil das Programm auch für Präsentationszwecke eingesetzt werden soll, ist insbesondere auf eine entsprechende Gestaltung der Oberfläche (aussagekräftige Verwendung von Farben, ausreichend großer Schriftgrad, etc.) zu achten.&amp;lt;br&amp;gt;&lt;br /&gt;
Im Programm kann zwischen drei verschiedenen Ansichten hin- und hergeschalten werden, von denen stets genau eine sichtbar ist:&lt;br /&gt;
* Tabellenansicht&lt;br /&gt;
* Baum interaktiv&lt;br /&gt;
* Baum automatisch&lt;br /&gt;
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.&lt;br /&gt;
==== Tabellenansicht ====&lt;br /&gt;
* 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.&lt;br /&gt;
* (Farbliche) Markierung des Zielattributs.&lt;br /&gt;
&lt;br /&gt;
==== Baum interaktiv ====&lt;br /&gt;
* Zu Beginn wird nur der oberste Knoten (also der, der allen Objekten in der Tabelle entspricht) dargestellt.&lt;br /&gt;
* Das gilt ebenso, wenn in der Tabellenansicht ein Attribut hinzugefügt oder gelöscht oder das Zielattribut geändert wird.&lt;br /&gt;
* In jedem Knoten ist die Zahl der enthaltenden Objekte, die Zahl der Objekte jeder Klasse und die Entropie angegeben.&lt;br /&gt;
* Die Kanten sind mit dem entsprechenden Attributwert markiert.&lt;br /&gt;
* Bei Identifikation eines Knotens des Baumes wird eine Tabelle mit den Objekten, die von diesem Knoten repräsentiert werden, dargestellt.&lt;br /&gt;
* Wird in dieser Tabelle ein Attribut identifiziert, wird die gewichtete Entropie, die sich bei Aufteilung nach diesem Attribut ergeben würde, ausgegeben.&lt;br /&gt;
* In dieser Tabelle kann ein Attribut selektiert werden, so dass entsprechend den Werten dieses Attributes Unterknoten entstehen. Die Tabelle verschwindet. Hatte der Knoten schon Unterknoten, verschwinden diese natürlich ebenfalls.&lt;br /&gt;
&lt;br /&gt;
==== Baum automatisch ====&lt;br /&gt;
* In jedem Knoten ist die Zahl der enthaltenden Objekte, die Zahl der Objekte jeder Klasse und die Entropie automatisch dargestellt.&lt;br /&gt;
* Die Kanten sind mit dem entsprechenden Attributwert markiert.&lt;br /&gt;
* Bei Identifikation eines Knotens des Baumes wird eine Tabelle mit den Objekten, die von diesem Knoten repräsentiert werden, dargestellt.&lt;br /&gt;
&lt;br /&gt;
=== Andere nicht-funktionale Anforderungen ===&lt;br /&gt;
&lt;br /&gt;
== Systemmodelle ==&lt;br /&gt;
&amp;lt;b&amp;gt;Dieses Kapitel sollte eines oder mehrere Systemmodelle festlegen, die die Beziehung zwischen den Systemkomponenten und dem System und seiner Umgebung aufzeigen. Dies können Objekt-, Datenfluss- und semantische Datenmodelle sein.&amp;lt;/b&amp;gt;&lt;br /&gt;
=== Datenmodelle === &lt;br /&gt;
=== Andere Modelle === &lt;br /&gt;
&lt;br /&gt;
== Anforderungen an die Entwicklungsumgebung ==&lt;br /&gt;
Die hier genannten Aspekte werden für die qualitative Entwicklung der Software benötigt.&lt;br /&gt;
=== Software ===&lt;br /&gt;
Das Betriebssystem spielt keine Rolle, da Eclipse und Java Plattformunabhängig ist.&lt;br /&gt;
*Die Software &amp;quot;Eclipse&amp;quot; zur Programmierung mit Java wird benötigt. Hinzu kommt das Eclipse PlugIn &amp;quot;subversive&amp;quot; zur Handhabung der Versionsverwaltung&lt;br /&gt;
*Eine aktuelle Java-Developer-Version (jdk) wird zur Kompilierung benötigt. Außerdem werden folgende externe Bibliotheken benötigt:&lt;br /&gt;
** &amp;quot;dom4j&amp;quot;, &amp;quot;poi&amp;quot; zur Konvertierung und Erstellung von Excel-Spreadsheet Tabellen&lt;br /&gt;
** &amp;quot;swt&amp;quot;, das genutzte Framework zur Erstellung der grafischen Benutzeroberfläche&lt;br /&gt;
** &amp;quot;xmlbeans&amp;quot; zur Erstellung und Lesen von XML-Dateien&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
Für die verwendete Hardware sollten mindestens 2 GB Arbeitsspeicher verfügbar sein, um ein flüssiges Abarbeiten und Darstellen der relevanten Inhalte zu gewährleisten.&lt;br /&gt;
&lt;br /&gt;
=== Orgware ===&lt;br /&gt;
Vorrangig geschah die Kommunikation im Team über E-Mail Nachrichten und Kurzmitteilungen. Hier wurde beispielsweise Skype intensiv genutzt.&lt;br /&gt;
&lt;br /&gt;
== Ergänzungen ==&lt;br /&gt;
&lt;br /&gt;
== Anhang ==&lt;/div&gt;</summary>
		<author><name>Chge</name></author>	</entry>

	<entry>
		<id>https://www.p-servus.net/mediawiki/index.php?title=Optimaler_Entscheidungsbaum:_Pflichtenheft</id>
		<title>Optimaler Entscheidungsbaum: Pflichtenheft</title>
		<link rel="alternate" type="text/html" href="https://www.p-servus.net/mediawiki/index.php?title=Optimaler_Entscheidungsbaum:_Pflichtenheft"/>
				<updated>2012-05-22T09:57:27Z</updated>
		
		<summary type="html">&lt;p&gt;Chge: /* Technische Systemumgebung */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Über ==&lt;br /&gt;
Projekt: Optimaler Entscheidungsbaum &amp;lt;br /&amp;gt;&lt;br /&gt;
Autoren: Christian Gebauer, Sebastian Große, Jonathan Wiens, Benjamin Pfeiffer, Nico Smeenk &amp;lt;br /&amp;gt;&lt;br /&gt;
Modul: Software-Engineering II &amp;lt;br /&amp;gt;&lt;br /&gt;
Studiengang: Informatik 2010 &amp;lt;br /&amp;gt;&lt;br /&gt;
Fachbereich: Fachbereich 2, Duales Studium Wirtschaft • Technik, HWR Berlin &amp;lt;br /&amp;gt;&lt;br /&gt;
Datum:&lt;br /&gt;
&lt;br /&gt;
== Vorwort ==&lt;br /&gt;
Dieses Pflichtenheft ist eine Vereinbarung zwischen der Dozentin Frau Prof. Dr. Monett Diaz als Auftraggeberin und der Gruppe 1 des Kurses &amp;quot;Software-Engineering II&amp;quot; aus dem Studiengang &amp;quot;Informatik 2010&amp;quot;. Die Vereinbarung enthält alle Anforderungen an ein zu erstellendes Chat-Programm für die Hochschule für Wirtschaft und Recht Berlin. Das Dokument dient zur Strukturierung und genaueren Einschätzung des zeitlichen Aufwandes des Projektes und der Priorisierung der einzelnen Module. Somit lässt sich auch einschätzen, ob und mit welchen Kosten das Projekt durchführbar ist.&lt;br /&gt;
=== Erwartete Leserschaft ===&lt;br /&gt;
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.&lt;br /&gt;
=== Versionsgeschichte des Dokumentes ===&lt;br /&gt;
Dies ist die erste Version des Pflichtenheftes, weitere Versionen sind noch nicht in Planung.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
=== Allgemeines ===&lt;br /&gt;
Ein Entscheidungsbaum ist ein speziell aufgebauter Baum aus der Graphentheorie. Im Gegensatz zu einem &amp;quot;normalen&amp;quot; Baum ist ein Entscheidungsbaum geordnet und gerichtet und dient dem Zweck Entscheidungsregeln darzustellen. Ein Entscheidungsbaum kann durch Algorithmen auf Basis von tabellarischen Daten erstellt werden. Aufgrund der Tatsache, dass diese Bäume Entscheidungsprobleme lösen  bzw. vereinfachen können, wird diese Methode in vielen Bereichen angewandt. Hauptsächlich benutzt, wird ein Entscheidungsbaum beim Data-Mining, also der umfassenden Theroie der Datenauswertung; aber auch in der Betriebswirtschaftslehre, um effektives Marketing zu betreiben, oder Investment-Geschäfte zu bewerten. Darüber hinaus gibt es viele denkbare Einsatzbereiche, da Entscheidungen fast überall getroffen werden müssen.&lt;br /&gt;
&lt;br /&gt;
Ein Entscheidungsbaum besteht aus Knoten und Blättern. Er muss einen Wurzelknoten besitzen und wird durch Kanten verbunden.&lt;br /&gt;
Ein Knoten repräsentiert ein(en) Attribut(-namen), Kanten die zulässigen Attributwerte und die Blätter zeigen die Attributwerte (meistens klassifiziert) des Zielattributs an.&lt;br /&gt;
&lt;br /&gt;
In diesem Pflichtenheft wird nun ein Programm beschrieben, dass einen Entscheidungsbaum auf Basis einer Tabelle konstruieren kann. Dieses Programm ist als Auftragsarbeit von Hr. Prof. Dr. Höhne und Fr. Prof. Dr. Monett-Diaz zu sehen, bestimmte Funtktionen und Kriterien sind bereits vorgegeben.&lt;br /&gt;
=== Abgrenzungen ===&lt;br /&gt;
==== Ausgangssituation ====&lt;br /&gt;
Im Auftrag von Hr. Prof. Dr. Höhne und Fr. Prof. Dr. Monett-Diaz wird ein Programm, im Rahmen des Moduls SWE-2, entwickelt, welches dazu dienen soll Entscheidungsbäume zu konstruieren und darzustellen. Als Datenbasis dienen Excel- und CSV-Dateien.&lt;br /&gt;
Mit Hilfe dieser Daten soll dann ein &amp;quot;optimaler Entscheidungsbaum&amp;quot; aufgebaut werden, wobei zu beachten ist, dass der Begriff &amp;quot;optimal&amp;quot; nur relativ gesehen werden kann, und abhängig vom gewählten Algorhitmus und der Art des Datenbestandes ist.&lt;br /&gt;
&lt;br /&gt;
=== Systemname ===&lt;br /&gt;
Aufgrund der Tatsache, dass ein Entscheidungsbaum nach bestimmten Regeln ''aufgebaut'' wird und der Anwender einen ''Lerneffekt'' aus diesem Baum ziehen kann, in dem Entscheidungen vereinfacht werden, wurde beschlossen das Projekt und das Programm &amp;quot;Baumschule - Optimale Entscheidungsbäume&amp;quot; zu nennen. &lt;br /&gt;
==== Allgemeine Systembeschreibung ====&lt;br /&gt;
Das System bzw. das Programm bietet hauptsächlich drei grobe Funtkionen an:&lt;br /&gt;
* Laden/Editieren eines Datenbestands durch eine Datei (Excel bzw. CSV)&lt;br /&gt;
* Erstellen eines Entscheidungsbaumes durch einen gegebenen Algorithmus, oder einer Nutzervorgabe&lt;br /&gt;
* Präsentation des Ergebnisses&lt;br /&gt;
&lt;br /&gt;
Diese 3 Hauptfunktionen lassen sich näher beschreiben:&lt;br /&gt;
* Es gibt eine graphische Benutzeroberfläche mit der der Endandwender alle Funktionen des Programms benutzen kann&lt;br /&gt;
* Es gibt eine Funktion zum Laden/Speichern einer Excel- oder CSV-Datei&lt;br /&gt;
* Geladene Tabellendaten können editiert werden.&lt;br /&gt;
* Ein Baum kann automatisch generiert werden, ein ZielAttribut kann vorher gewählt werden.&lt;br /&gt;
* Ein Baum kann teilweise manuell erstellt werden, in dem für jeden Knoten die nächste Attributebene selbst gewählt werden kann.&lt;br /&gt;
* Es können jederzeit detaillierte Informationen über einen Baum bzw. dessen Tabellendaten angezeigt werden.&lt;br /&gt;
&lt;br /&gt;
==== Vorteile und Nutzen ====&lt;br /&gt;
&lt;br /&gt;
Das System bietet die Bearbeitung eines Datenbestandes an und arbeitet nach dem Laden einer Datei formatunabhängig. Ist ein Datenbestand bearbeitet worden, ist dieser auch wieder exportierbar.&lt;br /&gt;
Die Oberfläche bietet die Möglichkeit einen, gemäß des Algorithmus, optimalen Baumes darzustellen. Die Stärke liegt hierbei einerseits auf der Präsentation und andererseits bei der leichten Editierbarkeit, denn der Baum kann einfach durch Mausklicks bearbeitet und untersucht werden. Ein manuelles zeichnen und berechnen des Baumes entfällt. &lt;br /&gt;
Gerade bei großen Daten ist ein Baum nur durch ein Programm wie dieses erstellbar. Arbeitet der Algorithmus fehlerfrei, kann ''immer wieder'' und ''reproduzierbar'' ein Baum aufgebaut werden.&lt;br /&gt;
&lt;br /&gt;
=== Überblick über den Rest des Dokuments ===&lt;br /&gt;
&lt;br /&gt;
Die nachfolgenden Abschnitte befassen sich detaillierter und gründlicher mit den Funktionen des Programms. Es werden Vereinbarungen festgelegt, welches Verhalten das Programm leisten kann und muss.&lt;br /&gt;
&lt;br /&gt;
== Fachbegriffe, Akronyme und Abkürzungen ==&lt;br /&gt;
&amp;lt;b&amp;gt;Dieser Teil soll die im Dokument verwendeten technischen Fachbergriffe festlegen. Dabei soll keine Erfahrung oder Fachwissen beim Leser vorausgesetzt werden.&amp;lt;/b&amp;gt;&lt;br /&gt;
=== Glossar ===&lt;br /&gt;
=== Akronyme ===&lt;br /&gt;
=== Abkürzungen ===&lt;br /&gt;
&lt;br /&gt;
== Zielbestimmungen ==&lt;br /&gt;
Die folgenden Ziele sind in 3 Kategorien (Muss-, Soll- , Kannkriterien) unterteilt. Durch diese Unterteilung wird eine Prioritätshierarchie geschaffen, wobei Musskriterien die höchste Priorität erhalten und entsprechend vorrangig abgearbeitet werden. &lt;br /&gt;
&lt;br /&gt;
=== Musskriterien ===&lt;br /&gt;
Die Muss-Kritierien ergeben sich größtenteils aus der Aufgabenbeschreibung von Hr. Höhne und Fr. Monett-Diaz und sollen hier abgekürzt wiedergegeben werden:&lt;br /&gt;
* Das Programm muss in der Lage sein mit einem Datenbestand von bis zu 10 Attributen und 100 Objekten arbeiten zu können.&lt;br /&gt;
* Das Programm muss mit Tabellen-Dateien umgehen können. (Laden/Speichern von Excel- und CSV-Dateien)&lt;br /&gt;
* Das Programm muss ein Bearbeiten der Tabellendaten zulassen.&lt;br /&gt;
* Es muss eine graphische Benutzeroberfläche geben.&lt;br /&gt;
* Das Zielattribut muss farblich hervorgehoben werden.&lt;br /&gt;
&lt;br /&gt;
* Das Programm muss eine Möglichkeit bieten den Baum, durch Auswahl des nächsten Attributs, teilweise manuell aufzubauen.&lt;br /&gt;
* Wenn der Baum interaktiv zusammengestellt wird, darf(muss) nur der oberste Knoten präsentiert werden.&lt;br /&gt;
* Bei der Präsentation des interaktiven Baums kann dieser durch ein Mausklick &amp;quot;untersucht&amp;quot; werden. Es wird bei einem Knoten eine Tabelle angezigt, die die Objekte anzeigt, die durch den Knoten repräsentiert werden.&lt;br /&gt;
* Es kann in der Tabelle ein Attribut untersucht werden, woraufhin die gewichtete Entropie, die sichbei Aufteilung nach diesem Attribut ergeben würde, angezeigt wird.&lt;br /&gt;
&lt;br /&gt;
* Das Programm muss anhand eines vorgegebenen Algorithmus (''Konzept der Entropie'') einen Entscheidungsbaum erstellen können.&lt;br /&gt;
* Bei der automatischen Erstellung wird ein Knoten der nur noch Objekte einer Klasse enthält nicht weiter aufgeteilt, selbiges gilt wenn der Knoten eine (einstellbare) Anzahl von Elementen enthält.&lt;br /&gt;
* Bei der Präsentation des autmatischen Baums kann dieser durch ein Mausklick &amp;quot;untersucht&amp;quot; werden. Es wird bei einem Knoten eine Tabelle angezigt, die die Objekte anzeigt, die durch den Knoten repräsentiert werden.&lt;br /&gt;
&lt;br /&gt;
* Bei der Präsentation des interaktiven und autmatischen Baums müssen die Kanten mit dem entsprechenden Attributewert angezeigt werden.&lt;br /&gt;
* Bei der Präsentation des interaktiven und automatischen Baums muss die Zahl der enthaltenen Objekte, die Zahl jeder Klasse und die Entropie in jedem Knoten angezeigt werden.&lt;br /&gt;
* Der Entscheidungsbaum muss, egal ob manuell oder autmoatisch erstellt, bei Änderungen des Datenbestandes aktualisiert werden.&lt;br /&gt;
&lt;br /&gt;
* Das Programm muss lauffähig sein und ausführbar vorliegen.&lt;br /&gt;
&lt;br /&gt;
=== Sollkriterien ===&lt;br /&gt;
* Das Programm soll an den wichtigen Stellen durchdachte Hilfebeschreibungen(ToolTips) anzeigen können.&lt;br /&gt;
* Das Programm soll für den Benutzer ein vollständiges Handbuch bereitstellen, dass jederzeit über das Menü aufgerufen werden kann.&lt;br /&gt;
* Das Programm soll bei bestimmten Fehlern oder unerlaubten Nutzeraktionen eine graphische Fehlermeldung anzeigen.&lt;br /&gt;
* Das Programm soll zum Nachverfolgen von Programm-Algorithmen und -Abläufen eine Log-Datei erstellen.&lt;br /&gt;
* Die Oberfläche soll für den Nutzer farblich und organisatorisch übersichtlich und leicht zu bedienen sein.&lt;br /&gt;
* Das Erstellen eines Baumes soll nicht länger als 5 Sekunden dauern. (Vorrausgesetzt das Datenlimit von 10*100 Attributwerten wird eingehalten)&lt;br /&gt;
* Die Oberfläche soll neben der einfachen Ansicht einen Präsentationsmodus bieten, in dem der Baum als Vollbild dargestellt wird.&lt;br /&gt;
* Für die Anzeige des Baumes soll eine Legende bereitgestellt werden, die den Aufbau eines dargestellten Baumes erklärt.&lt;br /&gt;
&lt;br /&gt;
=== Kannkriterien ===&lt;br /&gt;
* Das Programm kann die Möglichkeit bieten, über eine Konfigurationsschnittstelle verschiedene Programmparameter anzupassen.&lt;br /&gt;
* Für den Benutzer kann es eine grafische Möglichkeit geben die Konfigurationsschnittstelle zu nutzen.&lt;br /&gt;
* Der Nutzer kann die Möglichkeit erhalten den dynamisch erstellten Baum als xml-Datei zu speichern.&lt;br /&gt;
* Der Nutzer kann die Möglichkeit erhalten die abgespeicherte xml-Datei wieder zu laden; die Oberfläche stellt dann automatisch die Tabelle und die Bäume wieder her.&lt;br /&gt;
* Das Programm kann die Möglichkeit bieten den dynamischen und automatischen Baum als Bild-Datei(*.png ; *.jpg) abzuspeichern.&lt;br /&gt;
* Die Zeichenoberfläche, in dem der Baum (dynamisch oder manuell) präsentiert wird, kann durch einen Schieberegler heran- bzw. herausgezoomt werden.&lt;br /&gt;
&lt;br /&gt;
=== Abgrenzungskriterien ===&lt;br /&gt;
&lt;br /&gt;
* Die Software setzt eine installierte Version von Java voraus.&lt;br /&gt;
* Es gibt für jedes Betriebssystem (Windows, Linux, Mac) und dessen Ausprägung (x64, x32) jeweils eine Version.&lt;br /&gt;
* Die Software kann nur mit Datenformaten umgehen, die Excel-Konform sind- (bis 2003: .xls, ab 2007: .xlsx) oder dem CSV-Format entsprechen (Trennzeichen: &amp;quot;,&amp;quot; (Ausgesprochen: Komma)&lt;br /&gt;
* Die Software benutzt einen fest vorgegebenen Algorithmus (''Konzept der Entropie'').&lt;br /&gt;
* Die Tabelle kann maximal 10 Attribute und jeweils 100 Attributwerte enthalten und darf innerhalb der Tabellengrenzen keine leeren Zellenwerte (leere Strings) enthalten.&lt;br /&gt;
&lt;br /&gt;
== Systemeinsatz ==&lt;br /&gt;
=== Anwendungsbereiche === &lt;br /&gt;
=== Zielgruppen === &lt;br /&gt;
=== Betriebsbedingungen === &lt;br /&gt;
&lt;br /&gt;
== Technische Systemumgebung ==&lt;br /&gt;
=== Software === &lt;br /&gt;
*Das Programm soll auf allen gängigen Windows-Betriebssystemen lauffähig sein.&lt;br /&gt;
*Es soll eine Version für 32- und eine für 64 Bit Systeme geben.&lt;br /&gt;
*Es sollen weitere Betriebssysteme (Linux, Mac) unterstützt werden (optional).&lt;br /&gt;
*Eine Java-Umgebung wird auf den Systemen vorausgesetzt.&lt;br /&gt;
*Das Programm soll ohne Installation lauffähig sein.&lt;br /&gt;
=== Hardware === &lt;br /&gt;
*Es wird ein aktuell üblicher Standard-PC vorausgesetzt(auf dem Windows mit Standardsoftware lauffähig ist).&lt;br /&gt;
*Es wird ein präsentationsfähiges Ausgabegerät (großer Monitor, Beamer, etc.) benötigt, da das Programm u.A. für Präsentationen eingesetzt werden soll.&lt;br /&gt;
=== Orgware ===&lt;br /&gt;
*Es wird keine explizite Orgware benötigt. Der Anwender kann alle relevanten Einstellungen direkt in der Software bzw. in der Konfigurations-Datei vornehmen.&lt;br /&gt;
&lt;br /&gt;
== Systemübersicht und -architektur ==&lt;br /&gt;
=== Übersicht über das System === &lt;br /&gt;
=== Systemarchitektur === &lt;br /&gt;
&amp;lt;b&amp;gt;Dieses Kapitel sollte einen groben Überblick über die erwartete Systemarchitektur geben, der die Verteilung der Funktionen auf die Systemmodule zeigt. Wiederverwendete Komponenten sollten gekennzeichnet werden.&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Schnittstellen des Systems ===&lt;br /&gt;
&lt;br /&gt;
== Systemanforderungen ==&lt;br /&gt;
Das Programm soll den Argorithmus, einen optimalen Entscheidungsbaum zu finden, demonstrieren.&lt;br /&gt;
=== Funktionale Anforderungen ===&lt;br /&gt;
* Das Programm soll unter allen gängigen Windows-Betriebssystemen ohne Installation lauffähig sein (Java darf vorrausgesetzt werden, sonst nichts spezielles).&lt;br /&gt;
==== Tabellenansicht ====&lt;br /&gt;
* Einlesen / Speichern einer Tabelle im .csv-Format (wobei das Trennzeichen ein Komma ist).&lt;br /&gt;
* Alle Attribute sind Zeichenketten.&lt;br /&gt;
* Eingeben / Editieren einer Tabelle muss möglich sein.&lt;br /&gt;
* Import und Export von Excel-Dateien.&lt;br /&gt;
&lt;br /&gt;
==== Baum automatisch ====&lt;br /&gt;
* Der optimale Entscheidungsbaum wird mit dem Algorithmus, der sukzessiv für jeden Knoten jeweils das Attribut mit der minimalen gewichteten Entropie auswählt, erzeugt und dargestellt.&lt;br /&gt;
* Wenn ein Knoten nur noch Objekte einer Klasse enthält, wird dieser nicht weiter aufgeteilt.&lt;br /&gt;
* Wenn ein Knoten nur noch eine bestimmte Anzahl (einstellbar - Voreinstellung 1) von Elementen enthält, wird nicht weiter aufgeteilt.&lt;br /&gt;
&lt;br /&gt;
=== Qualitätsanforderungen ===&lt;br /&gt;
=== Benutzeroberfläche ===&lt;br /&gt;
Weil das Programm auch für Präsentationszwecke eingesetzt werden soll, ist insbesondere auf eine entsprechende Gestaltung der Oberfläche (aussagekräftige Verwendung von Farben, ausreichend großer Schriftgrad, etc.) zu achten.&amp;lt;br&amp;gt;&lt;br /&gt;
Im Programm kann zwischen drei verschiedenen Ansichten hin- und hergeschalten werden, von denen stets genau eine sichtbar ist:&lt;br /&gt;
* Tabellenansicht&lt;br /&gt;
* Baum interaktiv&lt;br /&gt;
* Baum automatisch&lt;br /&gt;
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.&lt;br /&gt;
==== Tabellenansicht ====&lt;br /&gt;
* 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.&lt;br /&gt;
* (Farbliche) Markierung des Zielattributs.&lt;br /&gt;
&lt;br /&gt;
==== Baum interaktiv ====&lt;br /&gt;
* Zu Beginn wird nur der oberste Knoten (also der, der allen Objekten in der Tabelle entspricht) dargestellt.&lt;br /&gt;
* Das gilt ebenso, wenn in der Tabellenansicht ein Attribut hinzugefügt oder gelöscht oder das Zielattribut geändert wird.&lt;br /&gt;
* In jedem Knoten ist die Zahl der enthaltenden Objekte, die Zahl der Objekte jeder Klasse und die Entropie angegeben.&lt;br /&gt;
* Die Kanten sind mit dem entsprechenden Attributwert markiert.&lt;br /&gt;
* Bei Identifikation eines Knotens des Baumes wird eine Tabelle mit den Objekten, die von diesem Knoten repräsentiert werden, dargestellt.&lt;br /&gt;
* Wird in dieser Tabelle ein Attribut identifiziert, wird die gewichtete Entropie, die sich bei Aufteilung nach diesem Attribut ergeben würde, ausgegeben.&lt;br /&gt;
* In dieser Tabelle kann ein Attribut selektiert werden, so dass entsprechend den Werten dieses Attributes Unterknoten entstehen. Die Tabelle verschwindet. Hatte der Knoten schon Unterknoten, verschwinden diese natürlich ebenfalls.&lt;br /&gt;
&lt;br /&gt;
==== Baum automatisch ====&lt;br /&gt;
* In jedem Knoten ist die Zahl der enthaltenden Objekte, die Zahl der Objekte jeder Klasse und die Entropie automatisch dargestellt.&lt;br /&gt;
* Die Kanten sind mit dem entsprechenden Attributwert markiert.&lt;br /&gt;
* Bei Identifikation eines Knotens des Baumes wird eine Tabelle mit den Objekten, die von diesem Knoten repräsentiert werden, dargestellt.&lt;br /&gt;
&lt;br /&gt;
=== Andere nicht-funktionale Anforderungen ===&lt;br /&gt;
&lt;br /&gt;
== Systemmodelle ==&lt;br /&gt;
&amp;lt;b&amp;gt;Dieses Kapitel sollte eines oder mehrere Systemmodelle festlegen, die die Beziehung zwischen den Systemkomponenten und dem System und seiner Umgebung aufzeigen. Dies können Objekt-, Datenfluss- und semantische Datenmodelle sein.&amp;lt;/b&amp;gt;&lt;br /&gt;
=== Datenmodelle === &lt;br /&gt;
=== Andere Modelle === &lt;br /&gt;
&lt;br /&gt;
== Anforderungen an die Entwicklungsumgebung ==&lt;br /&gt;
Die hier genannten Aspekte werden für die qualitative Entwicklung der Software benötigt.&lt;br /&gt;
=== Software ===&lt;br /&gt;
Das Betriebssystem spielt keine Rolle, da Eclipse und Java Plattformunabhängig ist.&lt;br /&gt;
*Die Software &amp;quot;Eclipse&amp;quot; zur Programmierung mit Java wird benötigt. Hinzu kommt das Eclipse PlugIn &amp;quot;subversive&amp;quot; zur Handhabung der Versionsverwaltung&lt;br /&gt;
*Eine aktuelle Java-Developer-Version (jdk) wird zur Kompilierung benötigt. Außerdem werden folgende externe Bibliotheken benötigt:&lt;br /&gt;
** &amp;quot;dom4j&amp;quot;, &amp;quot;poi&amp;quot; zur Konvertierung und Erstellung von Excel-Spreadsheet Tabellen&lt;br /&gt;
** &amp;quot;swt&amp;quot;, das genutzte Framework zur Erstellung der grafischen Benutzeroberfläche&lt;br /&gt;
** &amp;quot;xmlbeans&amp;quot; zur Erstellung und Lesen von XML-Dateien&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
Für die verwendete Hardware sollten mindestens 2 GB Arbeitsspeicher verfügbar sein, um ein flüssiges Abarbeiten und Darstellen der relevanten Inhalte zu gewährleisten.&lt;br /&gt;
&lt;br /&gt;
=== Orgware ===&lt;br /&gt;
Vorrangig geschah die Kommunikation im Team über E-Mail Nachrichten und Kurzmitteilungen. Hier wurde beispielsweise Skype intensiv genutzt.&lt;br /&gt;
&lt;br /&gt;
== Ergänzungen ==&lt;br /&gt;
&lt;br /&gt;
== Anhang ==&lt;/div&gt;</summary>
		<author><name>Chge</name></author>	</entry>

	<entry>
		<id>https://www.p-servus.net/mediawiki/index.php?title=Projekt:_Optimaler_Entscheidungsbaum</id>
		<title>Projekt: Optimaler Entscheidungsbaum</title>
		<link rel="alternate" type="text/html" href="https://www.p-servus.net/mediawiki/index.php?title=Projekt:_Optimaler_Entscheidungsbaum"/>
				<updated>2012-05-22T09:10:21Z</updated>
		
		<summary type="html">&lt;p&gt;Chge: /* Teilnehmer */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Optimaler_Entscheidungsbaum-Logo.png|thumb|Das ist das Logo von unserem Programm &amp;quot;Baumschule - Optimaler Entscheidungsbäme&amp;quot;]]&lt;br /&gt;
==Einleitung==&lt;br /&gt;
Dies ist die Hauptseite für das Projekt &amp;quot;Optimaler Entscheidungsbaum&amp;quot;.&lt;br /&gt;
===Aufgabenstellung===&lt;br /&gt;
Die offizielle Aufgabenstellung, gestellt von Prof. Dr. Höhne, kann {{pdf|Aufgabenstellung.pdf | hier}} runtergeladen werden.&lt;br /&gt;
&lt;br /&gt;
[[Optimaler Entscheidungsbaum: Kurze Einführung]]&lt;br /&gt;
&lt;br /&gt;
== Konzepte ==&lt;br /&gt;
=== Technische Konzepte ===&lt;br /&gt;
[[Technische Konzepte: Logger]] &amp;lt;br&amp;gt;&lt;br /&gt;
[[Technische Konzepte: Config Manager]] &amp;lt;br&amp;gt;&lt;br /&gt;
[[Technische Konzepte: Observer Pattern]]&lt;br /&gt;
&lt;br /&gt;
=== Fachliche Konzepte ===&lt;br /&gt;
[[Optimaler Entscheidungsbaum: GUI-Entwurf]]&amp;lt;br /&amp;gt;&lt;br /&gt;
[[Optimaler Entscheidungsbaum: Datenschnittstelle]] (Repräsentation der Tabellen / Bäume in Java) &amp;lt;br&amp;gt;&lt;br /&gt;
[[Optimaler Entscheidungsbaum: Systemarchitektur]] &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Linksammlung / Wissensdatenbank ==&lt;br /&gt;
&lt;br /&gt;
http://www.rob.uni-luebeck.de/Lehre/2011s/KI/lectures/10_SS/ai_ch9.pdf &amp;lt;br&amp;gt;&lt;br /&gt;
http://www.youtube.com/watch?v=4BmQ4YAoa8Q &amp;lt;br&amp;gt;&lt;br /&gt;
http://de.wikipedia.org/wiki/Entscheidungsbaum&lt;br /&gt;
&lt;br /&gt;
==Teilnehmer==&lt;br /&gt;
[[Benutzer:Jonw|Jonathan Wiens]]: Teamleiter, Entwickler, SVN-Administrator&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:Bepf|Benjamin Pfeiffer]]: Entwickler&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:Nics|Nico Smeenk]]: Systemarchitekt, Entwickler&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:Segr|Sebastian Große]]: Entwickler, Server-Administrator (Wiki), Grafiker, Dokumentar&amp;lt;br&amp;gt;&lt;br /&gt;
[[Benutzer:Chge|Christian Gebauer]]: Entwickler, Grafiker, Dokumentar&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Projektmanagement==&lt;br /&gt;
[[Optimaler Entscheidungsbaum: Projektorganisation]]&lt;br /&gt;
===SE-Techniken===&lt;br /&gt;
Bla Text zu Se-Techniken&lt;br /&gt;
&lt;br /&gt;
[[Allgemein: Agile Softwareentwicklung | Agile Softwareentwicklung]]&lt;br /&gt;
&lt;br /&gt;
===Vorgehensmodell===&lt;br /&gt;
Für das Projekt &amp;quot;Optimaler Entscheidungsbaum&amp;quot; wurde die Form der iterativen Entwicklung ausgewählt.&lt;br /&gt;
Bestimmte Phasen können dabei dynamisch abgearbeitet werden. Es gibt dennoch einen groben Ablaufplan, in dem versucht wird verschiedene Arbeitsabläufe primär abzuarbeiten. Für das Projekt wurde entschieden die Phasen: Planung/Konzeption , Entwicklung, Test, Auslieferung zu unterscheiden.&lt;br /&gt;
&lt;br /&gt;
[[Optimaler Entscheidungsbaum: Planung der Iterationen]]&lt;br /&gt;
&lt;br /&gt;
===Protokolle der Sitzungen===&lt;br /&gt;
[[Optimaler Entscheidungsbaum: Meetings]]&lt;br /&gt;
&lt;br /&gt;
==Dokumentation==&lt;br /&gt;
[[Optimaler Entscheidungsbaum: Story Cards]] &amp;lt;br /&amp;gt;&lt;br /&gt;
[[Optimaler Entscheidungsbaum: Handbuch]]&lt;br /&gt;
===Dokumentation der Aufgaben===&lt;br /&gt;
===Pflichtenheft===&lt;br /&gt;
{{pdf | baum_pflichtenheft.pdf | Hier}} kann das Pflichtenheft runtergeladen werden, die Inhalte können jedoch auch [[Optimaler Entscheidungsbaum: Pflichtenheft | hier]] im Portal gelesen werden.&lt;br /&gt;
&lt;br /&gt;
===Präsentation===&lt;br /&gt;
Downloadlink für die Folien zum &lt;br /&gt;
* {{pdf|Baum_zwischenvortrag.pdf | Zwischenvortrag}},&lt;br /&gt;
* {{pdf|Baum_endvortrag.pdf | Endvortrag}}&lt;br /&gt;
&lt;br /&gt;
==Download Optimaler Entscheidungsbaum==&lt;/div&gt;</summary>
		<author><name>Chge</name></author>	</entry>

	<entry>
		<id>https://www.p-servus.net/mediawiki/index.php?title=Optimaler_Entscheidungsbaum:_Story_Cards</id>
		<title>Optimaler Entscheidungsbaum: Story Cards</title>
		<link rel="alternate" type="text/html" href="https://www.p-servus.net/mediawiki/index.php?title=Optimaler_Entscheidungsbaum:_Story_Cards"/>
				<updated>2012-05-02T12:23:26Z</updated>
		
		<summary type="html">&lt;p&gt;Chge: /* Done */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Aktuell höchste Nummer: 22&lt;br /&gt;
&lt;br /&gt;
==In Arbeit==&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardYellow&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #8 (GUI) Detailsbereich für den Baum&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 11.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Nico Smeenk&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Einen Bereich der entweder editierbar oder fest ist, in dem ein Node des Baumes angezeigt werden kann. Dort sollen allle wichtigen Informationen stehen:&amp;lt;br&amp;gt;&lt;br /&gt;
- Anzahl enthaltener Objekte&amp;lt;br&amp;gt;&lt;br /&gt;
- alle vorhandenen Objekte&amp;lt;br&amp;gt;&lt;br /&gt;
- Liste enthaltener Objekte&amp;lt;br&amp;gt;&lt;br /&gt;
- berechnete Entropie&amp;lt;br&amp;gt;&lt;br /&gt;
- Atribut Auswahlmöglichkeit für folgendes Attribut mit Angabe der Entropie&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 3h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 1h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: ||&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: || Nico Smeenk&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 1&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardYellow&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #10 (GUI) Tab Interaktiver Baum&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 11.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Nico Smeenk&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Ein Baum den man sich selber zusammenbauen kann. Besteht aus #8 und #7&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 2h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 0.5h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: ||&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: ||&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 1&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Done==&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardGreen&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #1 (GUI) Hauptoberfläche&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 11.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Nico Smeenk&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Es soll eine Grafische Oberfläche erstellt werden, die Ein Menü und eine Hauptansicht enthält.&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 1h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 1h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: || 18.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: || Nico Smeenk, Jonathan Wiens&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 1&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardGreen&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #2 (GUI) Datei Menü&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 11.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Nico Smeenk&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Menü mit folgenden Optionen:&amp;lt;br&amp;gt;&lt;br /&gt;
- *.csv öffnen&amp;lt;br&amp;gt;&lt;br /&gt;
- als *.csv speichern&amp;lt;br&amp;gt;&lt;br /&gt;
- aus Excel importieren&amp;lt;br&amp;gt;&lt;br /&gt;
- in Excel Exportieren&amp;lt;br&amp;gt;&lt;br /&gt;
- interaktiven Baum als *.jpg exportieren (Optional)&amp;lt;br&amp;gt;&lt;br /&gt;
- automatisch Baum als *.jpg exportieren (Optional)&amp;lt;br&amp;gt;&lt;br /&gt;
- Beenden&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 2h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 3,5h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: || 18.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: || Nico Smeenk, Jonathan Wiens&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 1&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardGreen&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #3 (GUI) Hilfe Menü&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 11.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Nico Smeenk&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Ein Hilfemenü mit folgenden Optionen:&amp;lt;br&amp;gt;&lt;br /&gt;
- Hilfe&amp;lt;br&amp;gt;&lt;br /&gt;
- Optionen&amp;lt;br&amp;gt;&lt;br /&gt;
- Über...	&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 1h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 1,5h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: || 18.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: || Nico Smeenk, Jonathan Wiens&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 1&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardGreen&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #4 (GUI) About Dialog&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 11.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Nico Smeenk&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Ein Extrafenster welches Namen, Icon, Entwickler und die Version enthält.	&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 1h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 1h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: || 18.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: || Nico Smeenk, Jonathan Wiens&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 2&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardGreen&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #5 (GUI) Handbuch Fenster&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 11.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Nico Smeenk&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Fenster mit HTML Teil, der zum Handbuch weiterleitet.&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 1h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 1h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: || 22.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: || Jonathan Wiens&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 2&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardGreen&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #6 (GUI) Öffnen/Speicherndialoge&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 11.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Nico Smeenk&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Ein Fenster zum Öffnen und Speichern im Dateisystem.&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 1h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 1h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: || 30.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: || Nico&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 1&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardGreen&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #7 (GUI) Baumzeichenbereich&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 11.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Nico Smeenk&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Ein Feld, in dem ein Baum Objekt abgebildet werden kann. Außerdem soll es möglich sein einen Listener an den Bereich zu hängen der auf Klicks auf die Knoten reagiert. Anmerkung: Listener geht direkt auf Details View und nicht mit add/delete Listener usw.&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 5h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 5h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: || 05.04.2012&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: || Nico Smeenk&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 1&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardGreen&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #9 (GUI) Tab Tabellenansicht&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 11.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Nico Smeenk&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Eine Ansicht der Tabelle mit sämtlichen Operationen in einer oben liegenden Toolbar.&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 3h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 5h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: || 05.04.2012&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: || Nico Smeenk&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 1&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardGreen&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #11 (GUI) Tab Automatischer Baum&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 11.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Nico Smeenk&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Ein Baum, der automatisch optimal erzeugt wird. Besteht aus #8 und #7&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 2h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 0.5h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: || 05.04.2012&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: || Nico Smeenk&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 1&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardGreen&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #12 (Tools) Ein individueller Logger&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 11.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Benjamin Pfeiffer&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Ein Logger mit dem verschiedene Inhalte aus dem Quellcode protokolliert werden sollen.&lt;br /&gt;
Es sollen verschiedene Stufen geben, um später Protokollierungen für einen End-User anzupassen.&lt;br /&gt;
Handelt es sich um kritische Fehler, sollen diese nicht nur textlich, sondern auch visuell durch ein PopUp&lt;br /&gt;
angezeigt werden.&lt;br /&gt;
Es kann in die Konsole und in ein LogFile protokolliert werden. &lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 4h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 5h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: || 25.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: || Benjamin Pfeiffer&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 2&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardGreen&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #13 (Tools) Anlegen einer Konfiguration durch eine Config-Datei&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 11.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Benjamin Pfeiffer&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Es soll die Möglichkeit geben eine Konfigurationsdatei anzulegen, mit der verschiedene Parameter ohne Änderung des Quellcodes&lt;br /&gt;
verändert werden können. Mit Hilfe einer Klasse soll diese Datei ausgelesen werden, die Konfigurationen werden dann bereitgestellt.&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 3h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 5h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: || 25.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: || Benjamin Pfeiffer&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 2&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardGreen&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #14 (Datenmodell) Eine Tabelle in Java repräsentieren&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 15.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Benjamin Pfeiffer&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Um die geforderten Daten einzulesen und zu bearbeiten, muss es im Programm eine Datenstruktur geben, die&lt;br /&gt;
eine Tabelle abbilden kann. Dieses Datenobjekt soll alle benötigten Methoden enthalten die zum auslesen/manipulieren&lt;br /&gt;
der Daten notwendig ist, also auch jene Methoden die später beim Erstellen des Baumes (hinsichtlich der Tabelle) gebraucht werden.&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 8h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 10h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: || 25.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: || Benjamin Pfeiffer&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 2&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardGreen&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #15 (Import) Verschiedene Excel-Formate und CSV-Dateien einlesen&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 11.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Benjamin Pfeiffer&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Zum Einlesen von Datensätzen sollen Excel und CSV Dateien benutzt werden. Es muss also eine Schnittstelle geschaffen werden, die&lt;br /&gt;
aus den verschiedenen Formaten, die Daten so aufbereitet dass sie in Java repräsentiert werden (siehe auch #14).&lt;br /&gt;
Es gibt dabei folgende Formate: XLS (bis Excel 2003), XLSX (ab Excel 2007), CSV (mit Komma als Trennzeichen).&lt;br /&gt;
Genau diese Formate sollen benutzt werden, andere Formate werden nicht unterstützt.&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 10h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 12h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: || 25.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: || Benjamin Pfeiffer&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 2&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardGreen&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #16 (Export) Tabellendatenmodell in eine Excel/CSV Datei exportieren&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 11.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Benjamin Pfeiffer&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Mit Hilfe der GUI bearbeitete Datentabellen sollen wieder als Dateien abgespeichert werden können.&lt;br /&gt;
Dabei sollen dieselben Formate wie beim Import (#15) unterstützt werden.&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 8h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 7h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: || 25.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: || Benjamin Pfeiffer&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 2&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardGreen&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #17 (Datenmodell) Einen Baum in Java repräsentieren&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 15.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Christian Gebauer&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Eine Klasse für einen Baumknoten muss implementiert werden. Dieser Knoten muss weitere Knoten beinhalten können.&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 3h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 5h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: || 05.04.2012&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: || Nico Smeenk&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 2&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardGreen&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #18 (Datenmodell) Einen Entscheidungsbaum in Java repräsentieren&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 15.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Christian Gebauer&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Eine Klasse für einen Knoten eines gewichteten Baumes muss implementiert werden. Soll von der Klasse des Baumknotens erben.&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 4h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 4h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: || 23.04.2012&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: || Christian Gebauer, Sebastian Große&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 2&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardGreen&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #19 (Logik) Berechnung der Entropie eines Knotens&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 15.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Sebastian Große&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Es soll zu jedem Knoten eines Entscheidungsbaumes die Entropie berechnet werden können.&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 6h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 6h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: || 23.04.2012&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: || Sebastian Große, Christian Gebauer&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 2&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardGreen&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #20 (Logik) Berechnung der gewichteten Entropie eines Knotens&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 15.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Sebastian Große&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Es soll zu jedem Knoten eines Entscheidungsbaumes die gewichtete Entropie berechnet werden können.&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 6h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 4h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: || 23.04.2012&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: || Sebastian Große, Christian Gebauer&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 2&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardGreen&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #21 (Logik) Erstellung eines optimalen Entscheidungsbaumes&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 15.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Christian Gebauer&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Es soll ein Optimaler Entscheidungsbaum aus einer Tabelle erstellt werden können.&amp;lt;br&amp;gt;&lt;br /&gt;
Dazu sollen die zu #19 und #20 erstellten Methoden verwendet werden.&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 8h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 8h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: || 23.04.2012&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: || Sebastian Große, Christian Gebauer&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 2&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Standby==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardRed&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #22 (GUI) Hervorheben der Auwahl im Baum&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 05.04.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Nico Smeenk&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
In einem Baum soll hervorgehoben werden, welches Element gerade markiert ist. (optional)&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 2h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: ||&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: ||&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: ||&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 3&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;/div&gt;</summary>
		<author><name>Chge</name></author>	</entry>

	<entry>
		<id>https://www.p-servus.net/mediawiki/index.php?title=Optimaler_Entscheidungsbaum:_Story_Cards</id>
		<title>Optimaler Entscheidungsbaum: Story Cards</title>
		<link rel="alternate" type="text/html" href="https://www.p-servus.net/mediawiki/index.php?title=Optimaler_Entscheidungsbaum:_Story_Cards"/>
				<updated>2012-05-02T12:21:39Z</updated>
		
		<summary type="html">&lt;p&gt;Chge: /* In Arbeit */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Aktuell höchste Nummer: 22&lt;br /&gt;
&lt;br /&gt;
==In Arbeit==&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardYellow&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #8 (GUI) Detailsbereich für den Baum&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 11.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Nico Smeenk&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Einen Bereich der entweder editierbar oder fest ist, in dem ein Node des Baumes angezeigt werden kann. Dort sollen allle wichtigen Informationen stehen:&amp;lt;br&amp;gt;&lt;br /&gt;
- Anzahl enthaltener Objekte&amp;lt;br&amp;gt;&lt;br /&gt;
- alle vorhandenen Objekte&amp;lt;br&amp;gt;&lt;br /&gt;
- Liste enthaltener Objekte&amp;lt;br&amp;gt;&lt;br /&gt;
- berechnete Entropie&amp;lt;br&amp;gt;&lt;br /&gt;
- Atribut Auswahlmöglichkeit für folgendes Attribut mit Angabe der Entropie&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 3h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 1h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: ||&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: || Nico Smeenk&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 1&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardYellow&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #10 (GUI) Tab Interaktiver Baum&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 11.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Nico Smeenk&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Ein Baum den man sich selber zusammenbauen kann. Besteht aus #8 und #7&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 2h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 0.5h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: ||&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: ||&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 1&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Done==&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardGreen&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #1 (GUI) Hauptoberfläche&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 11.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Nico Smeenk&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Es soll eine Grafische Oberfläche erstellt werden, die Ein Menü und eine Hauptansicht enthält.&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 1h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 1h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: || 18.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: || Nico Smeenk, Jonathan Wiens&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 1&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardGreen&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #2 (GUI) Datei Menü&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 11.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Nico Smeenk&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Menü mit folgenden Optionen:&amp;lt;br&amp;gt;&lt;br /&gt;
- *.csv öffnen&amp;lt;br&amp;gt;&lt;br /&gt;
- als *.csv speichern&amp;lt;br&amp;gt;&lt;br /&gt;
- aus Excel importieren&amp;lt;br&amp;gt;&lt;br /&gt;
- in Excel Exportieren&amp;lt;br&amp;gt;&lt;br /&gt;
- interaktiven Baum als *.jpg exportieren (Optional)&amp;lt;br&amp;gt;&lt;br /&gt;
- automatisch Baum als *.jpg exportieren (Optional)&amp;lt;br&amp;gt;&lt;br /&gt;
- Beenden&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 2h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 3,5h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: || 18.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: || Nico Smeenk, Jonathan Wiens&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 1&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardGreen&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #3 (GUI) Hilfe Menü&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 11.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Nico Smeenk&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Ein Hilfemenü mit folgenden Optionen:&amp;lt;br&amp;gt;&lt;br /&gt;
- Hilfe&amp;lt;br&amp;gt;&lt;br /&gt;
- Optionen&amp;lt;br&amp;gt;&lt;br /&gt;
- Über...	&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 1h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 1,5h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: || 18.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: || Nico Smeenk, Jonathan Wiens&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 1&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardGreen&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #4 (GUI) About Dialog&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 11.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Nico Smeenk&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Ein Extrafenster welches Namen, Icon, Entwickler und die Version enthält.	&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 1h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 1h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: || 18.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: || Nico Smeenk, Jonathan Wiens&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 2&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardGreen&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #5 (GUI) Handbuch Fenster&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 11.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Nico Smeenk&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Fenster mit HTML Teil, der zum Handbuch weiterleitet.&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 1h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 1h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: || 22.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: || Jonathan Wiens&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 2&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardGreen&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #6 (GUI) Öffnen/Speicherndialoge&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 11.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Nico Smeenk&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Ein Fenster zum Öffnen und Speichern im Dateisystem.&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 1h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 1h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: || 30.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: || Nico&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 1&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardGreen&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #7 (GUI) Baumzeichenbereich&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 11.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Nico Smeenk&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Ein Feld, in dem ein Baum Objekt abgebildet werden kann. Außerdem soll es möglich sein einen Listener an den Bereich zu hängen der auf Klicks auf die Knoten reagiert. Anmerkung: Listener geht direkt auf Details View und nicht mit add/delete Listener usw.&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 5h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 5h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: || 05.04.2012&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: || Nico Smeenk&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 1&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardGreen&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #9 (GUI) Tab Tabellenansicht&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 11.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Nico Smeenk&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Eine Ansicht der Tabelle mit sämtlichen Operationen in einer oben liegenden Toolbar.&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 3h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 5h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: || 05.04.2012&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: || Nico Smeenk&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 1&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardGreen&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #11 (GUI) Tab Automatischer Baum&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 11.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Nico Smeenk&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Ein Baum, der automatisch optimal erzeugt wird. Besteht aus #8 und #7&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 2h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 0.5h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: || 05.04.2012&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: || Nico Smeenk&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 1&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardGreen&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #12 (Tools) Ein individueller Logger&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 11.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Benjamin Pfeiffer&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Ein Logger mit dem verschiedene Inhalte aus dem Quellcode protokolliert werden sollen.&lt;br /&gt;
Es sollen verschiedene Stufen geben, um später Protokollierungen für einen End-User anzupassen.&lt;br /&gt;
Handelt es sich um kritische Fehler, sollen diese nicht nur textlich, sondern auch visuell durch ein PopUp&lt;br /&gt;
angezeigt werden.&lt;br /&gt;
Es kann in die Konsole und in ein LogFile protokolliert werden. &lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 4h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 5h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: || 25.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: || Benjamin Pfeiffer&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 2&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardGreen&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #13 (Tools) Anlegen einer Konfiguration durch eine Config-Datei&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 11.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Benjamin Pfeiffer&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Es soll die Möglichkeit geben eine Konfigurationsdatei anzulegen, mit der verschiedene Parameter ohne Änderung des Quellcodes&lt;br /&gt;
verändert werden können. Mit Hilfe einer Klasse soll diese Datei ausgelesen werden, die Konfigurationen werden dann bereitgestellt.&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 3h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 5h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: || 25.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: || Benjamin Pfeiffer&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 2&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardGreen&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #14 (Datenmodell) Eine Tabelle in Java repräsentieren&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 15.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Benjamin Pfeiffer&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Um die geforderten Daten einzulesen und zu bearbeiten, muss es im Programm eine Datenstruktur geben, die&lt;br /&gt;
eine Tabelle abbilden kann. Dieses Datenobjekt soll alle benötigten Methoden enthalten die zum auslesen/manipulieren&lt;br /&gt;
der Daten notwendig ist, also auch jene Methoden die später beim Erstellen des Baumes (hinsichtlich der Tabelle) gebraucht werden.&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 8h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 10h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: || 25.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: || Benjamin Pfeiffer&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 2&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardGreen&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #15 (Import) Verschiedene Excel-Formate und CSV-Dateien einlesen&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 11.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Benjamin Pfeiffer&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Zum Einlesen von Datensätzen sollen Excel und CSV Dateien benutzt werden. Es muss also eine Schnittstelle geschaffen werden, die&lt;br /&gt;
aus den verschiedenen Formaten, die Daten so aufbereitet dass sie in Java repräsentiert werden (siehe auch #14).&lt;br /&gt;
Es gibt dabei folgende Formate: XLS (bis Excel 2003), XLSX (ab Excel 2007), CSV (mit Komma als Trennzeichen).&lt;br /&gt;
Genau diese Formate sollen benutzt werden, andere Formate werden nicht unterstützt.&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 10h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 12h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: || 25.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: || Benjamin Pfeiffer&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 2&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardGreen&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #16 (Export) Tabellendatenmodell in eine Excel/CSV Datei exportieren&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 11.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Benjamin Pfeiffer&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Mit Hilfe der GUI bearbeitete Datentabellen sollen wieder als Dateien abgespeichert werden können.&lt;br /&gt;
Dabei sollen dieselben Formate wie beim Import (#15) unterstützt werden.&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 8h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 7h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: || 25.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: || Benjamin Pfeiffer&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 2&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardGreen&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #17 (Datenmodell) Einen Baum in Java repräsentieren&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 15.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Christian Gebauer&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Eine Klasse für einen Baumknoten muss implementiert werden. Dieser Knoten muss weitere Knoten beinhalten können.&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 3h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 5h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: || 05.04.2012&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: || Nico Smeenk&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 2&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Standby==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardRed&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #22 (GUI) Hervorheben der Auwahl im Baum&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 05.04.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Nico Smeenk&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
In einem Baum soll hervorgehoben werden, welches Element gerade markiert ist. (optional)&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 2h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: ||&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: ||&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: ||&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 3&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;/div&gt;</summary>
		<author><name>Chge</name></author>	</entry>

	<entry>
		<id>https://www.p-servus.net/mediawiki/index.php?title=Optimaler_Entscheidungsbaum:_Handbuch</id>
		<title>Optimaler Entscheidungsbaum: Handbuch</title>
		<link rel="alternate" type="text/html" href="https://www.p-servus.net/mediawiki/index.php?title=Optimaler_Entscheidungsbaum:_Handbuch"/>
				<updated>2012-05-02T11:28:36Z</updated>
		
		<summary type="html">&lt;p&gt;Chge: /* Tabellenansicht */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Handbuch=&lt;br /&gt;
In diesem Handbuch geht es um die Nutzung des Programms: &amp;quot;Baumschule - Optimaler Entscheidungsbäme&amp;quot;. Hier werden alle Elemente und deren Zusammenwirken erklärt.&lt;br /&gt;
==Menüs==&lt;br /&gt;
[[Datei:FileMenu.png]][[Datei:HelpMenu.png|top]]&lt;br /&gt;
&lt;br /&gt;
In den Menüs am oberen Rand des Programmes sind folgende allgemeine Operationen möglich:&lt;br /&gt;
* Datei&lt;br /&gt;
** Tabelle laden... - Bietet die Möglichkeit eine Tabelle aus dem Dateisystem zu laden. Es können folgende Formate geladen werden: *.csv *.xls *.xlsx &lt;br /&gt;
** Tabelle speichern... - Speichert die momentan bearbeitete Tabelle unter einem anzugebenden Pfad.&lt;br /&gt;
** Interaktiven Baum speichern... - Speichert den interaktiven Baum als Bild unter einem anzugebenden Pfad.&lt;br /&gt;
** Optimalen Baum speichern... - Speichert den optimalen Baum als Bild unter einem anzugebenden Pfad.&lt;br /&gt;
** Beenden - Beendet das Programm.&lt;br /&gt;
* Hilfe&lt;br /&gt;
** Handbuch... - Öffnet dieses Handbuch in einem programminternen Browser.&lt;br /&gt;
** Über... - Öffnet den About Dialog, der Informationen über Version und Entwickler beinhaltet.&lt;br /&gt;
&lt;br /&gt;
==Tabellenansicht==&lt;br /&gt;
[[Datei:TableView.png]]&lt;br /&gt;
&lt;br /&gt;
In der Tabellenansicht wird die momentan geladene Tabelle angezeigt. Im oberen Berich sind die verschiedenen Operationen, die auf die Tabelle ausgeführt werden können, zu finden. Die verschiedenen Buttons haben folgende Wirkungen:&lt;br /&gt;
*[[Datei:AddRow.png]] - Einen neuen Datensatz hinzufügen. Die notwendigen Daten werden in der Folgemaske angegeben.&lt;br /&gt;
*[[Datei:DeleteRow.png]] - Den momentan markierten Datensatz löschen. Es folgt eine Sicherheitsabfrage, um den Vorgang im Falle eines Versehens abzubrechen.&lt;br /&gt;
*[[Datei:EditRow.png]] - Die momentan markierte Zeile kann editiert werden. Auch dies geschieht in einer Folgemaske.&lt;br /&gt;
*[[Datei:AddColumn.png]] - Eine neue Spalte (neues Attribut) kann hinzugefügt werden. Die Daten werden auch hier in der Folgemaske angegeben.&lt;br /&gt;
*[[Datei:RemoveColumn.png]] - Eine Spalte löschen, die in der Folgemaske angegeben wird.&lt;br /&gt;
*[[Datei:EditColumn.png]] - Eine Spalte editieren. Die Angaben dazu finden sich wie gewohnt in der Folgemaske.&lt;br /&gt;
*[[Datei:TargetAttribute.png]] - Angabe des Zielattributs, welches bei der Berechnung der Entropien und der Erstellung des Baumes als Ziel der Optimerung dient. Standardmäßig ist dies die letzte Spalte bzw. das letzte Attribut.&lt;br /&gt;
&lt;br /&gt;
==Interaktiver Baum==&lt;br /&gt;
==Optimaler Baum==&lt;/div&gt;</summary>
		<author><name>Chge</name></author>	</entry>

	<entry>
		<id>https://www.p-servus.net/mediawiki/index.php?title=Optimaler_Entscheidungsbaum:_Handbuch</id>
		<title>Optimaler Entscheidungsbaum: Handbuch</title>
		<link rel="alternate" type="text/html" href="https://www.p-servus.net/mediawiki/index.php?title=Optimaler_Entscheidungsbaum:_Handbuch"/>
				<updated>2012-05-02T11:26:36Z</updated>
		
		<summary type="html">&lt;p&gt;Chge: /* Menüs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Handbuch=&lt;br /&gt;
In diesem Handbuch geht es um die Nutzung des Programms: &amp;quot;Baumschule - Optimaler Entscheidungsbäme&amp;quot;. Hier werden alle Elemente und deren Zusammenwirken erklärt.&lt;br /&gt;
==Menüs==&lt;br /&gt;
[[Datei:FileMenu.png]][[Datei:HelpMenu.png|top]]&lt;br /&gt;
&lt;br /&gt;
In den Menüs am oberen Rand des Programmes sind folgende allgemeine Operationen möglich:&lt;br /&gt;
* Datei&lt;br /&gt;
** Tabelle laden... - Bietet die Möglichkeit eine Tabelle aus dem Dateisystem zu laden. Es können folgende Formate geladen werden: *.csv *.xls *.xlsx &lt;br /&gt;
** Tabelle speichern... - Speichert die momentan bearbeitete Tabelle unter einem anzugebenden Pfad.&lt;br /&gt;
** Interaktiven Baum speichern... - Speichert den interaktiven Baum als Bild unter einem anzugebenden Pfad.&lt;br /&gt;
** Optimalen Baum speichern... - Speichert den optimalen Baum als Bild unter einem anzugebenden Pfad.&lt;br /&gt;
** Beenden - Beendet das Programm.&lt;br /&gt;
* Hilfe&lt;br /&gt;
** Handbuch... - Öffnet dieses Handbuch in einem programminternen Browser.&lt;br /&gt;
** Über... - Öffnet den About Dialog, der Informationen über Version und Entwickler beinhaltet.&lt;br /&gt;
&lt;br /&gt;
==Tabellenansicht==&lt;br /&gt;
[[Datei:TableView.png]]&lt;br /&gt;
&lt;br /&gt;
In der Tabellenansicht wird die momentan geladene Tabelle angezeigt. Im oberen Berich sind die verschiedenen Operationen, ide auf die Tabelle ausgeführt werden können, zu finden. Die verschiedenen Buttons haben folgende Wirkungen:&lt;br /&gt;
*[[Datei:AddRow.png]] - Einen neuen Datensatz hinzufügen. Die Daten werden in der Folgemaske angegeben.&lt;br /&gt;
*[[Datei:DeleteRow.png]] - Den momentan markierten Datensatz löschen. Es folgt eine Sicherheitsabfrage, um den Vorgang im Falle eines Versehens abzubrechen.&lt;br /&gt;
*[[Datei:EditRow.png]] - Die momentan markierte Zeile kann editiert werden. Auch dies geschieht in einer Folgemaske.&lt;br /&gt;
*[[Datei:AddColumn.png]] - Eine neue Spalte (neues Attribut) kann hinzugefügt werden. Die Daten werden auch hier in der Folgemaske angegeben.&lt;br /&gt;
*[[Datei:RemoveColumn.png]] - Eine Spalte löschen, die in der Folgemaske angegeben wird.&lt;br /&gt;
*[[Datei:EditColumn.png]] - Eine Spalte Editieren. Die angaben dazu finden sich wie gewohnt in der Folgemaske.&lt;br /&gt;
*[[Datei:TargetAttribute.png]] - Angabe des Zielattributs, welches bei der Berechnung der Entropien und der Erstellung des Baumes als Ziel der Optimerung dient. Standartmäßig ist dies die letzte Spalte bzw. das letzte Attribut.&lt;br /&gt;
&lt;br /&gt;
==Interaktiver Baum==&lt;br /&gt;
==Optimaler Baum==&lt;/div&gt;</summary>
		<author><name>Chge</name></author>	</entry>

	<entry>
		<id>https://www.p-servus.net/mediawiki/index.php?title=Optimaler_Entscheidungsbaum:_Handbuch</id>
		<title>Optimaler Entscheidungsbaum: Handbuch</title>
		<link rel="alternate" type="text/html" href="https://www.p-servus.net/mediawiki/index.php?title=Optimaler_Entscheidungsbaum:_Handbuch"/>
				<updated>2012-05-02T11:25:00Z</updated>
		
		<summary type="html">&lt;p&gt;Chge: /* Handbuch */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Handbuch=&lt;br /&gt;
In diesem Handbuch geht es um die Nutzung des Programms: &amp;quot;Baumschule - Optimaler Entscheidungsbäme&amp;quot;. Hier werden alle Elemente und deren Zusammenwirken erklärt.&lt;br /&gt;
==Menüs==&lt;br /&gt;
[[Datei:FileMenu.png]][[Datei:HelpMenu.png|top]]&lt;br /&gt;
&lt;br /&gt;
In den Menüs am oberen Rand des Programmes sind folgende allgemeine operationen möglich:&lt;br /&gt;
* Datei&lt;br /&gt;
** Tabelle laden... - Bietet die Möglichkeit eine Tabelle aus dem Dateisystem zu laden. Es können folgende Formate geladen werden: *.csv *.xls *.xlsx &lt;br /&gt;
** Tabelle speichern... - Speichert die momentan bearbeitete Tabelle unter einem anzugebendem Pfad.&lt;br /&gt;
** Interaktiven Baum speichern... - Speichert den interaktiven Baum als Bild unter einem anzugebenden Pfad.&lt;br /&gt;
** Optimalen Baum speichern... - Speichert den optimalen Baum als Bild unter einem anzugebenden Pfad.&lt;br /&gt;
** Beenden - Beendet das Programm.&lt;br /&gt;
* Hilfe&lt;br /&gt;
** Handbuch... - Öffnet dieses Handbuch in einem programminternen Browser.&lt;br /&gt;
** Über... - Öffnet den About Dialog, der Informationen über Version und Entwickler gibt.&lt;br /&gt;
&lt;br /&gt;
==Tabellenansicht==&lt;br /&gt;
[[Datei:TableView.png]]&lt;br /&gt;
&lt;br /&gt;
In der Tabellenansicht wird die momentan geladene Tabelle angezeigt. Im oberen Berich sind die verschiedenen Operationen, ide auf die Tabelle ausgeführt werden können, zu finden. Die verschiedenen Buttons haben folgende Wirkungen:&lt;br /&gt;
*[[Datei:AddRow.png]] - Einen neuen Datensatz hinzufügen. Die Daten werden in der Folgemaske angegeben.&lt;br /&gt;
*[[Datei:DeleteRow.png]] - Den momentan markierten Datensatz löschen. Es folgt eine Sicherheitsabfrage, um den Vorgang im Falle eines Versehens abzubrechen.&lt;br /&gt;
*[[Datei:EditRow.png]] - Die momentan markierte Zeile kann editiert werden. Auch dies geschieht in einer Folgemaske.&lt;br /&gt;
*[[Datei:AddColumn.png]] - Eine neue Spalte (neues Attribut) kann hinzugefügt werden. Die Daten werden auch hier in der Folgemaske angegeben.&lt;br /&gt;
*[[Datei:RemoveColumn.png]] - Eine Spalte löschen, die in der Folgemaske angegeben wird.&lt;br /&gt;
*[[Datei:EditColumn.png]] - Eine Spalte Editieren. Die angaben dazu finden sich wie gewohnt in der Folgemaske.&lt;br /&gt;
*[[Datei:TargetAttribute.png]] - Angabe des Zielattributs, welches bei der Berechnung der Entropien und der Erstellung des Baumes als Ziel der Optimerung dient. Standartmäßig ist dies die letzte Spalte bzw. das letzte Attribut.&lt;br /&gt;
&lt;br /&gt;
==Interaktiver Baum==&lt;br /&gt;
==Optimaler Baum==&lt;/div&gt;</summary>
		<author><name>Chge</name></author>	</entry>

	<entry>
		<id>https://www.p-servus.net/mediawiki/index.php?title=Optimaler_Entscheidungsbaum:_Handbuch</id>
		<title>Optimaler Entscheidungsbaum: Handbuch</title>
		<link rel="alternate" type="text/html" href="https://www.p-servus.net/mediawiki/index.php?title=Optimaler_Entscheidungsbaum:_Handbuch"/>
				<updated>2012-05-02T11:24:44Z</updated>
		
		<summary type="html">&lt;p&gt;Chge: /* Handbuch */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Handbuch=&lt;br /&gt;
In diesem Handbuch geht es um die Nutzung des Programms: &amp;quot;Baumschule - Optimaler Entscheidungsbäme&amp;quot;. Hier werden alle Elemente und deren Zusammenwirkern erklärt.&lt;br /&gt;
==Menüs==&lt;br /&gt;
[[Datei:FileMenu.png]][[Datei:HelpMenu.png|top]]&lt;br /&gt;
&lt;br /&gt;
In den Menüs am oberen Rand des Programmes sind folgende allgemeine operationen möglich:&lt;br /&gt;
* Datei&lt;br /&gt;
** Tabelle laden... - Bietet die Möglichkeit eine Tabelle aus dem Dateisystem zu laden. Es können folgende Formate geladen werden: *.csv *.xls *.xlsx &lt;br /&gt;
** Tabelle speichern... - Speichert die momentan bearbeitete Tabelle unter einem anzugebendem Pfad.&lt;br /&gt;
** Interaktiven Baum speichern... - Speichert den interaktiven Baum als Bild unter einem anzugebenden Pfad.&lt;br /&gt;
** Optimalen Baum speichern... - Speichert den optimalen Baum als Bild unter einem anzugebenden Pfad.&lt;br /&gt;
** Beenden - Beendet das Programm.&lt;br /&gt;
* Hilfe&lt;br /&gt;
** Handbuch... - Öffnet dieses Handbuch in einem programminternen Browser.&lt;br /&gt;
** Über... - Öffnet den About Dialog, der Informationen über Version und Entwickler gibt.&lt;br /&gt;
&lt;br /&gt;
==Tabellenansicht==&lt;br /&gt;
[[Datei:TableView.png]]&lt;br /&gt;
&lt;br /&gt;
In der Tabellenansicht wird die momentan geladene Tabelle angezeigt. Im oberen Berich sind die verschiedenen Operationen, ide auf die Tabelle ausgeführt werden können, zu finden. Die verschiedenen Buttons haben folgende Wirkungen:&lt;br /&gt;
*[[Datei:AddRow.png]] - Einen neuen Datensatz hinzufügen. Die Daten werden in der Folgemaske angegeben.&lt;br /&gt;
*[[Datei:DeleteRow.png]] - Den momentan markierten Datensatz löschen. Es folgt eine Sicherheitsabfrage, um den Vorgang im Falle eines Versehens abzubrechen.&lt;br /&gt;
*[[Datei:EditRow.png]] - Die momentan markierte Zeile kann editiert werden. Auch dies geschieht in einer Folgemaske.&lt;br /&gt;
*[[Datei:AddColumn.png]] - Eine neue Spalte (neues Attribut) kann hinzugefügt werden. Die Daten werden auch hier in der Folgemaske angegeben.&lt;br /&gt;
*[[Datei:RemoveColumn.png]] - Eine Spalte löschen, die in der Folgemaske angegeben wird.&lt;br /&gt;
*[[Datei:EditColumn.png]] - Eine Spalte Editieren. Die angaben dazu finden sich wie gewohnt in der Folgemaske.&lt;br /&gt;
*[[Datei:TargetAttribute.png]] - Angabe des Zielattributs, welches bei der Berechnung der Entropien und der Erstellung des Baumes als Ziel der Optimerung dient. Standartmäßig ist dies die letzte Spalte bzw. das letzte Attribut.&lt;br /&gt;
&lt;br /&gt;
==Interaktiver Baum==&lt;br /&gt;
==Optimaler Baum==&lt;/div&gt;</summary>
		<author><name>Chge</name></author>	</entry>

	<entry>
		<id>https://www.p-servus.net/mediawiki/index.php?title=Optimaler_Entscheidungsbaum:_Story_Cards</id>
		<title>Optimaler Entscheidungsbaum: Story Cards</title>
		<link rel="alternate" type="text/html" href="https://www.p-servus.net/mediawiki/index.php?title=Optimaler_Entscheidungsbaum:_Story_Cards"/>
				<updated>2012-05-02T11:24:03Z</updated>
		
		<summary type="html">&lt;p&gt;Chge: /* In Arbeit */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Aktuell höchste Nummer: 22&lt;br /&gt;
&lt;br /&gt;
==In Arbeit==&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardYellow&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #8 (GUI) Detailsbereich für den Baum&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 11.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Nico Smeenk&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Einen Bereich der entweder editierbar oder fest ist, in dem ein Node des Baumes angezeigt werden kann. Dort sollen allle wichtigen Informationen stehen:&amp;lt;br&amp;gt;&lt;br /&gt;
- Anzahl enthaltener Objekte&amp;lt;br&amp;gt;&lt;br /&gt;
- alle vorhandenen Objekte&amp;lt;br&amp;gt;&lt;br /&gt;
- Liste enthaltener Objekte&amp;lt;br&amp;gt;&lt;br /&gt;
- berechnete Entropie&amp;lt;br&amp;gt;&lt;br /&gt;
- Atribut Auswahlmöglichkeit für folgendes Attribut mit Angabe der Entropie&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 3h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 1h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: ||&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: || Nico Smeenk&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 1&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardYellow&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #10 (GUI) Tab Interaktiver Baum&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 11.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Nico Smeenk&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Ein Baum den man sich selber zusammenbauen kann. Besteht aus #8 und #7&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 2h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 0.5h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: ||&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: ||&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 1&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardYellow&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #18 (Datenmodell) Einen Entscheidungsbaum in Java repräsentieren&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 15.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Christian Gebauer&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Eine Klasse für einen Knoten eines gewichteten Baumes muss implementiert werden. Soll von der Klasse des Baumknotens erben.&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 4h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 4h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: ||&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: || Christian Gebauer, Sebastian Große&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 2&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardYellow&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #19 (Logik) Berechnung der Entropie eines Knotens&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 15.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Sebastian Große&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Es soll zu jedem Knoten eines Entscheidungsbaumes die Entropie berechnet werden können.&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 6h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 6h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: ||&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: || Sebastian Große, Christian Gebauer&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 2&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardYellow&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #20 (Logik) Berechnung der gewichteten Entropie eines Knotens&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 15.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Sebastian Große&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Es soll zu jedem Knoten eines Entscheidungsbaumes die gewichtete Entropie berechnet werden können.&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 6h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 4h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: ||&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: || Sebastian Große, Christian Gebauer&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 2&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardYellow&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #21 (Logik) Erstellung eines optimalen Entscheidungsbaumes&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 15.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Christian Gebauer&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Es soll ein Optimaler Entscheidungsbaum aus einer Tabelle erstellt werden können.&amp;lt;br&amp;gt;&lt;br /&gt;
Dazu sollen die zu #19 und #20 erstellten Methoden verwendet werden.&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 8h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 8h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: ||&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: || Sebastian Große, Christian Gebauer&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 2&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Done==&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardGreen&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #1 (GUI) Hauptoberfläche&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 11.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Nico Smeenk&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Es soll eine Grafische Oberfläche erstellt werden, die Ein Menü und eine Hauptansicht enthält.&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 1h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 1h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: || 18.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: || Nico Smeenk, Jonathan Wiens&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 1&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardGreen&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #2 (GUI) Datei Menü&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 11.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Nico Smeenk&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Menü mit folgenden Optionen:&amp;lt;br&amp;gt;&lt;br /&gt;
- *.csv öffnen&amp;lt;br&amp;gt;&lt;br /&gt;
- als *.csv speichern&amp;lt;br&amp;gt;&lt;br /&gt;
- aus Excel importieren&amp;lt;br&amp;gt;&lt;br /&gt;
- in Excel Exportieren&amp;lt;br&amp;gt;&lt;br /&gt;
- interaktiven Baum als *.jpg exportieren (Optional)&amp;lt;br&amp;gt;&lt;br /&gt;
- automatisch Baum als *.jpg exportieren (Optional)&amp;lt;br&amp;gt;&lt;br /&gt;
- Beenden&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 2h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 3,5h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: || 18.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: || Nico Smeenk, Jonathan Wiens&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 1&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardGreen&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #3 (GUI) Hilfe Menü&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 11.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Nico Smeenk&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Ein Hilfemenü mit folgenden Optionen:&amp;lt;br&amp;gt;&lt;br /&gt;
- Hilfe&amp;lt;br&amp;gt;&lt;br /&gt;
- Optionen&amp;lt;br&amp;gt;&lt;br /&gt;
- Über...	&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 1h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 1,5h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: || 18.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: || Nico Smeenk, Jonathan Wiens&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 1&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardGreen&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #4 (GUI) About Dialog&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 11.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Nico Smeenk&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Ein Extrafenster welches Namen, Icon, Entwickler und die Version enthält.	&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 1h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 1h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: || 18.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: || Nico Smeenk, Jonathan Wiens&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 2&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardGreen&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #5 (GUI) Handbuch Fenster&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 11.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Nico Smeenk&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Fenster mit HTML Teil, der zum Handbuch weiterleitet.&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 1h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 1h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: || 22.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: || Jonathan Wiens&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 2&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardGreen&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #6 (GUI) Öffnen/Speicherndialoge&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 11.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Nico Smeenk&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Ein Fenster zum Öffnen und Speichern im Dateisystem.&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 1h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 1h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: || 30.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: || Nico&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 1&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardGreen&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #7 (GUI) Baumzeichenbereich&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 11.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Nico Smeenk&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Ein Feld, in dem ein Baum Objekt abgebildet werden kann. Außerdem soll es möglich sein einen Listener an den Bereich zu hängen der auf Klicks auf die Knoten reagiert. Anmerkung: Listener geht direkt auf Details View und nicht mit add/delete Listener usw.&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 5h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 5h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: || 05.04.2012&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: || Nico Smeenk&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 1&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardGreen&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #9 (GUI) Tab Tabellenansicht&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 11.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Nico Smeenk&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Eine Ansicht der Tabelle mit sämtlichen Operationen in einer oben liegenden Toolbar.&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 3h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 5h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: || 05.04.2012&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: || Nico Smeenk&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 1&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardGreen&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #11 (GUI) Tab Automatischer Baum&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 11.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Nico Smeenk&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Ein Baum, der automatisch optimal erzeugt wird. Besteht aus #8 und #7&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 2h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 0.5h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: || 05.04.2012&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: || Nico Smeenk&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 1&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardGreen&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #12 (Tools) Ein individueller Logger&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 11.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Benjamin Pfeiffer&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Ein Logger mit dem verschiedene Inhalte aus dem Quellcode protokolliert werden sollen.&lt;br /&gt;
Es sollen verschiedene Stufen geben, um später Protokollierungen für einen End-User anzupassen.&lt;br /&gt;
Handelt es sich um kritische Fehler, sollen diese nicht nur textlich, sondern auch visuell durch ein PopUp&lt;br /&gt;
angezeigt werden.&lt;br /&gt;
Es kann in die Konsole und in ein LogFile protokolliert werden. &lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 4h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 5h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: || 25.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: || Benjamin Pfeiffer&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 2&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardGreen&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #13 (Tools) Anlegen einer Konfiguration durch eine Config-Datei&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 11.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Benjamin Pfeiffer&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Es soll die Möglichkeit geben eine Konfigurationsdatei anzulegen, mit der verschiedene Parameter ohne Änderung des Quellcodes&lt;br /&gt;
verändert werden können. Mit Hilfe einer Klasse soll diese Datei ausgelesen werden, die Konfigurationen werden dann bereitgestellt.&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 3h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 5h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: || 25.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: || Benjamin Pfeiffer&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 2&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardGreen&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #14 (Datenmodell) Eine Tabelle in Java repräsentieren&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 15.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Benjamin Pfeiffer&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Um die geforderten Daten einzulesen und zu bearbeiten, muss es im Programm eine Datenstruktur geben, die&lt;br /&gt;
eine Tabelle abbilden kann. Dieses Datenobjekt soll alle benötigten Methoden enthalten die zum auslesen/manipulieren&lt;br /&gt;
der Daten notwendig ist, also auch jene Methoden die später beim Erstellen des Baumes (hinsichtlich der Tabelle) gebraucht werden.&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 8h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 10h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: || 25.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: || Benjamin Pfeiffer&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 2&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardGreen&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #15 (Import) Verschiedene Excel-Formate und CSV-Dateien einlesen&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 11.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Benjamin Pfeiffer&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Zum Einlesen von Datensätzen sollen Excel und CSV Dateien benutzt werden. Es muss also eine Schnittstelle geschaffen werden, die&lt;br /&gt;
aus den verschiedenen Formaten, die Daten so aufbereitet dass sie in Java repräsentiert werden (siehe auch #14).&lt;br /&gt;
Es gibt dabei folgende Formate: XLS (bis Excel 2003), XLSX (ab Excel 2007), CSV (mit Komma als Trennzeichen).&lt;br /&gt;
Genau diese Formate sollen benutzt werden, andere Formate werden nicht unterstützt.&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 10h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 12h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: || 25.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: || Benjamin Pfeiffer&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 2&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardGreen&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #16 (Export) Tabellendatenmodell in eine Excel/CSV Datei exportieren&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 11.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Benjamin Pfeiffer&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Mit Hilfe der GUI bearbeitete Datentabellen sollen wieder als Dateien abgespeichert werden können.&lt;br /&gt;
Dabei sollen dieselben Formate wie beim Import (#15) unterstützt werden.&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 8h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 7h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: || 25.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: || Benjamin Pfeiffer&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 2&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardGreen&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #17 (Datenmodell) Einen Baum in Java repräsentieren&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 15.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Christian Gebauer&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Eine Klasse für einen Baumknoten muss implementiert werden. Dieser Knoten muss weitere Knoten beinhalten können.&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 3h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 5h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: || 05.04.2012&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: || Nico Smeenk&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 2&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Standby==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardRed&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #22 (GUI) Hervorheben der Auwahl im Baum&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 05.04.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Nico Smeenk&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
In einem Baum soll hervorgehoben werden, welches Element gerade markiert ist. (optional)&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 2h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: ||&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: ||&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: ||&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 3&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;/div&gt;</summary>
		<author><name>Chge</name></author>	</entry>

	<entry>
		<id>https://www.p-servus.net/mediawiki/index.php?title=Optimaler_Entscheidungsbaum:_Story_Cards</id>
		<title>Optimaler Entscheidungsbaum: Story Cards</title>
		<link rel="alternate" type="text/html" href="https://www.p-servus.net/mediawiki/index.php?title=Optimaler_Entscheidungsbaum:_Story_Cards"/>
				<updated>2012-05-02T11:21:18Z</updated>
		
		<summary type="html">&lt;p&gt;Chge: /* Done */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Aktuell höchste Nummer: 22&lt;br /&gt;
&lt;br /&gt;
==In Arbeit==&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardYellow&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #8 (GUI) Detailsbereich für den Baum&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 11.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Nico Smeenk&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Einen Bereich der entweder editierbar oder fest ist, in dem ein Node des Baumes angezeigt werden kann. Dort sollen allle wichtigen Informationen Stehen:&amp;lt;br&amp;gt;&lt;br /&gt;
- Anzahl enthaltener Objekte&amp;lt;br&amp;gt;&lt;br /&gt;
- Auch alle vorhandenen Objekte&amp;lt;br&amp;gt;&lt;br /&gt;
- Liste enthaltener Objekte&amp;lt;br&amp;gt;&lt;br /&gt;
- berechnete Entropie&amp;lt;br&amp;gt;&lt;br /&gt;
- Atribut Auswahlmöglichkeit für folgendes Attribut mit Angabe der Entropie&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 3h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 1h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: ||&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: || Nico Smeenk&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 1&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardYellow&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #10 (GUI) Tab Interaktiver Baum&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 11.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Nico Smeenk&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Ein Baum den man sich selber zusammenbauen kann. Besteht aus #8 und #7&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 2h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 0.5h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: ||&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: ||&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 1&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardYellow&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #18 (Datenmodell) Einen Entscheidungsbaum in Java repräsentieren&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 15.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Christian Gebauer&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Eine Klasse für einen Knoten eines gewichteten Baumes muss implementiert werden. Soll von der Klasse des Baumknotens erben.&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 4h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 4h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: ||&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: || Christian Gebauer, Sebastian Große&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 2&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardYellow&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #19 (Logik) Berechnung der Entropie eines Knotens&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 15.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Sebastian Große&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Es soll zu jedem Knoten eines Entscheidungsbaumes die Entropie berechnet werden können.&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 6h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 6h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: ||&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: || Sebastian Große, Christian Gebauer&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 2&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardYellow&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #20 (Logik) Berechnung der gewichteten Entropie eines Knotens&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 15.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Sebastian Große&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Es soll zu jedem Knoten eines Entscheidungsbaumes die gewichtete Entropie berechnet werden können.&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 6h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 4h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: ||&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: || Sebastian Große, Christian Gebauer&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 2&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardYellow&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #21 (Logik) Erstellung eines optimalen Entscheidungsbaumes&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 15.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Christian Gebauer&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Es soll ein Optimaler Entscheidungsbaum aus einer Tabelle erstellt werden können.&amp;lt;br&amp;gt;&lt;br /&gt;
Dazu sollen die zu #19 und #20 erstellten Methoden verwendet werden.&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 8h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 8h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: ||&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: || Sebastian Große, Christian Gebauer&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 2&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Done==&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardGreen&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #1 (GUI) Hauptoberfläche&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 11.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Nico Smeenk&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Es soll eine Grafische Oberfläche erstellt werden, die Ein Menü und eine Hauptansicht enthält.&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 1h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 1h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: || 18.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: || Nico Smeenk, Jonathan Wiens&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 1&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardGreen&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #2 (GUI) Datei Menü&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 11.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Nico Smeenk&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Menü mit folgenden Optionen:&amp;lt;br&amp;gt;&lt;br /&gt;
- *.csv öffnen&amp;lt;br&amp;gt;&lt;br /&gt;
- als *.csv speichern&amp;lt;br&amp;gt;&lt;br /&gt;
- aus Excel importieren&amp;lt;br&amp;gt;&lt;br /&gt;
- in Excel Exportieren&amp;lt;br&amp;gt;&lt;br /&gt;
- interaktiven Baum als *.jpg exportieren (Optional)&amp;lt;br&amp;gt;&lt;br /&gt;
- automatisch Baum als *.jpg exportieren (Optional)&amp;lt;br&amp;gt;&lt;br /&gt;
- Beenden&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 2h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 3,5h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: || 18.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: || Nico Smeenk, Jonathan Wiens&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 1&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardGreen&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #3 (GUI) Hilfe Menü&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 11.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Nico Smeenk&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Ein Hilfemenü mit folgenden Optionen:&amp;lt;br&amp;gt;&lt;br /&gt;
- Hilfe&amp;lt;br&amp;gt;&lt;br /&gt;
- Optionen&amp;lt;br&amp;gt;&lt;br /&gt;
- Über...	&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 1h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 1,5h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: || 18.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: || Nico Smeenk, Jonathan Wiens&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 1&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardGreen&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #4 (GUI) About Dialog&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 11.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Nico Smeenk&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Ein Extrafenster welches Namen, Icon, Entwickler und die Version enthält.	&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 1h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 1h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: || 18.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: || Nico Smeenk, Jonathan Wiens&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 2&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardGreen&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #5 (GUI) Handbuch Fenster&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 11.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Nico Smeenk&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Fenster mit HTML Teil, der zum Handbuch weiterleitet.&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 1h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 1h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: || 22.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: || Jonathan Wiens&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 2&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardGreen&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #6 (GUI) Öffnen/Speicherndialoge&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 11.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Nico Smeenk&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Ein Fenster zum Öffnen und Speichern im Dateisystem.&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 1h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 1h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: || 30.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: || Nico&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 1&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardGreen&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #7 (GUI) Baumzeichenbereich&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 11.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Nico Smeenk&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Ein Feld, in dem ein Baum Objekt abgebildet werden kann. Außerdem soll es möglich sein einen Listener an den Bereich zu hängen der auf Klicks auf die Knoten reagiert. Anmerkung: Listener geht direkt auf Details View und nicht mit add/delete Listener usw.&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 5h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 5h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: || 05.04.2012&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: || Nico Smeenk&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 1&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardGreen&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #9 (GUI) Tab Tabellenansicht&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 11.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Nico Smeenk&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Eine Ansicht der Tabelle mit sämtlichen Operationen in einer oben liegenden Toolbar.&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 3h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 5h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: || 05.04.2012&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: || Nico Smeenk&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 1&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardGreen&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #11 (GUI) Tab Automatischer Baum&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 11.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Nico Smeenk&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Ein Baum, der automatisch optimal erzeugt wird. Besteht aus #8 und #7&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 2h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 0.5h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: || 05.04.2012&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: || Nico Smeenk&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 1&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardGreen&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #12 (Tools) Ein individueller Logger&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 11.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Benjamin Pfeiffer&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Ein Logger mit dem verschiedene Inhalte aus dem Quellcode protokolliert werden sollen.&lt;br /&gt;
Es sollen verschiedene Stufen geben, um später Protokollierungen für einen End-User anzupassen.&lt;br /&gt;
Handelt es sich um kritische Fehler, sollen diese nicht nur textlich, sondern auch visuell durch ein PopUp&lt;br /&gt;
angezeigt werden.&lt;br /&gt;
Es kann in die Konsole und in ein LogFile protokolliert werden. &lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 4h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 5h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: || 25.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: || Benjamin Pfeiffer&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 2&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardGreen&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #13 (Tools) Anlegen einer Konfiguration durch eine Config-Datei&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 11.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Benjamin Pfeiffer&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Es soll die Möglichkeit geben eine Konfigurationsdatei anzulegen, mit der verschiedene Parameter ohne Änderung des Quellcodes&lt;br /&gt;
verändert werden können. Mit Hilfe einer Klasse soll diese Datei ausgelesen werden, die Konfigurationen werden dann bereitgestellt.&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 3h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 5h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: || 25.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: || Benjamin Pfeiffer&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 2&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardGreen&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #14 (Datenmodell) Eine Tabelle in Java repräsentieren&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 15.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Benjamin Pfeiffer&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Um die geforderten Daten einzulesen und zu bearbeiten, muss es im Programm eine Datenstruktur geben, die&lt;br /&gt;
eine Tabelle abbilden kann. Dieses Datenobjekt soll alle benötigten Methoden enthalten die zum auslesen/manipulieren&lt;br /&gt;
der Daten notwendig ist, also auch jene Methoden die später beim Erstellen des Baumes (hinsichtlich der Tabelle) gebraucht werden.&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 8h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 10h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: || 25.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: || Benjamin Pfeiffer&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 2&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardGreen&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #15 (Import) Verschiedene Excel-Formate und CSV-Dateien einlesen&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 11.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Benjamin Pfeiffer&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Zum Einlesen von Datensätzen sollen Excel und CSV Dateien benutzt werden. Es muss also eine Schnittstelle geschaffen werden, die&lt;br /&gt;
aus den verschiedenen Formaten, die Daten so aufbereitet dass sie in Java repräsentiert werden (siehe auch #14).&lt;br /&gt;
Es gibt dabei folgende Formate: XLS (bis Excel 2003), XLSX (ab Excel 2007), CSV (mit Komma als Trennzeichen).&lt;br /&gt;
Genau diese Formate sollen benutzt werden, andere Formate werden nicht unterstützt.&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 10h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 12h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: || 25.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: || Benjamin Pfeiffer&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 2&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardGreen&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #16 (Export) Tabellendatenmodell in eine Excel/CSV Datei exportieren&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 11.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Benjamin Pfeiffer&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Mit Hilfe der GUI bearbeitete Datentabellen sollen wieder als Dateien abgespeichert werden können.&lt;br /&gt;
Dabei sollen dieselben Formate wie beim Import (#15) unterstützt werden.&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 8h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 7h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: || 25.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: || Benjamin Pfeiffer&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 2&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardGreen&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #17 (Datenmodell) Einen Baum in Java repräsentieren&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 15.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Christian Gebauer&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Eine Klasse für einen Baumknoten muss implementiert werden. Dieser Knoten muss weitere Knoten beinhalten können.&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 3h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 5h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: || 05.04.2012&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: || Nico Smeenk&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 2&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Standby==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardRed&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #22 (GUI) Hervorheben der Auwahl im Baum&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 05.04.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Nico Smeenk&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
In einem Baum soll hervorgehoben werden, welches Element gerade markiert ist. (optional)&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 2h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: ||&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: ||&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: ||&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 3&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;/div&gt;</summary>
		<author><name>Chge</name></author>	</entry>

	<entry>
		<id>https://www.p-servus.net/mediawiki/index.php?title=Optimaler_Entscheidungsbaum:_Story_Cards</id>
		<title>Optimaler Entscheidungsbaum: Story Cards</title>
		<link rel="alternate" type="text/html" href="https://www.p-servus.net/mediawiki/index.php?title=Optimaler_Entscheidungsbaum:_Story_Cards"/>
				<updated>2012-05-02T11:11:56Z</updated>
		
		<summary type="html">&lt;p&gt;Chge: /* Standby */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Aktuell höchste Nummer: 22&lt;br /&gt;
&lt;br /&gt;
==In Arbeit==&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardYellow&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #8 (GUI) Detailsbereich für den Baum&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 11.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Nico Smeenk&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Einen Bereich der entweder editierbar oder fest ist, in dem ein Node des Baumes angezeigt werden kann. Dort sollen allle wichtigen Informationen Stehen:&amp;lt;br&amp;gt;&lt;br /&gt;
- Anzahl enthaltener Objekte&amp;lt;br&amp;gt;&lt;br /&gt;
- Auch alle vorhandenen Objekte&amp;lt;br&amp;gt;&lt;br /&gt;
- Liste enthaltener Objekte&amp;lt;br&amp;gt;&lt;br /&gt;
- berechnete Entropie&amp;lt;br&amp;gt;&lt;br /&gt;
- Atribut Auswahlmöglichkeit für folgendes Attribut mit Angabe der Entropie&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 3h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 1h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: ||&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: || Nico Smeenk&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 1&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardYellow&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #10 (GUI) Tab Interaktiver Baum&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 11.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Nico Smeenk&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Ein Baum den man sich selber zusammenbauen kann. Besteht aus #8 und #7&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 2h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 0.5h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: ||&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: ||&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 1&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardYellow&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #18 (Datenmodell) Einen Entscheidungsbaum in Java repräsentieren&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 15.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Christian Gebauer&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Eine Klasse für einen Knoten eines gewichteten Baumes muss implementiert werden. Soll von der Klasse des Baumknotens erben.&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 4h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 4h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: ||&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: || Christian Gebauer, Sebastian Große&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 2&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardYellow&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #19 (Logik) Berechnung der Entropie eines Knotens&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 15.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Sebastian Große&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Es soll zu jedem Knoten eines Entscheidungsbaumes die Entropie berechnet werden können.&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 6h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 6h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: ||&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: || Sebastian Große, Christian Gebauer&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 2&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardYellow&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #20 (Logik) Berechnung der gewichteten Entropie eines Knotens&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 15.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Sebastian Große&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Es soll zu jedem Knoten eines Entscheidungsbaumes die gewichtete Entropie berechnet werden können.&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 6h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 4h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: ||&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: || Sebastian Große, Christian Gebauer&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 2&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardYellow&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #21 (Logik) Erstellung eines optimalen Entscheidungsbaumes&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 15.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Christian Gebauer&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Es soll ein Optimaler Entscheidungsbaum aus einer Tabelle erstellt werden können.&amp;lt;br&amp;gt;&lt;br /&gt;
Dazu sollen die zu #19 und #20 erstellten Methoden verwendet werden.&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 8h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 8h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: ||&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: || Sebastian Große, Christian Gebauer&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 2&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Done==&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardGreen&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #1 (GUI) Hauptoberfläche&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 11.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Nico Smeenk&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Es soll eine Grafische Oberfläche erstellt werden, die Ein Menü und eine Hauptansicht enthält.&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 1h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 1h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: || 18.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: || Nico Smeenk, Jonathan Wiens&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 1&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardGreen&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #2 (GUI) Datei Menü&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 11.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Nico Smeenk&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Menü mit folgenden Optionen:&amp;lt;br&amp;gt;&lt;br /&gt;
- *.csv öffnen&amp;lt;br&amp;gt;&lt;br /&gt;
- als *.csv speichern&amp;lt;br&amp;gt;&lt;br /&gt;
- aus Excel importieren&amp;lt;br&amp;gt;&lt;br /&gt;
- in Excel Exportieren&amp;lt;br&amp;gt;&lt;br /&gt;
- interaktiven Baum als *.jpg exportieren (Optional)&amp;lt;br&amp;gt;&lt;br /&gt;
- automatisch Baum als *.jpg exportieren (Optional)&amp;lt;br&amp;gt;&lt;br /&gt;
- Beenden&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 2h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 3,5h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: || 18.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: || Nico Smeenk, Jonathan Wiens&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 1&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardGreen&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #3 (GUI) Hilfe Menü&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 11.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Nico Smeenk&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Ein Hilfemenü mit folgenden Optionen:&amp;lt;br&amp;gt;&lt;br /&gt;
- Hilfe&amp;lt;br&amp;gt;&lt;br /&gt;
- Optionen&amp;lt;br&amp;gt;&lt;br /&gt;
- Über...	&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 1h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 1,5h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: || 18.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: || Nico Smeenk, Jonathan Wiens&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 1&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardGreen&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #4 (GUI) About Dialog&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 11.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Nico Smeenk&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Ein extrafenster welches Namen, Icon, Entwickler und die Version enthält	&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 1h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 1h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: || 18.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: || Nico Smeenk, Jonathan Wiens&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 2&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardGreen&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #5 (GUI) Handbuch Fenster&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 11.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Nico Smeenk&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Fenster mit HTML Teil der zum Handbuch weiterleitet&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 1h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 1h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: || 22.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: || Jonathan Wiens&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 2&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardGreen&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #6 (GUI) Öffnen/Speicherndialoge&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 11.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Nico Smeenk&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Ein Fenster zum öffnen und speichern im Dateisystem&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 1h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 1h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: || 30.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: || Nico&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 1&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardGreen&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #7 (GUI) Baumzeichenbereich&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 11.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Nico Smeenk&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Ein Feld, in dem ein Baum Objekt abgebildet werden kann. Außerdem soll es möglich sein einen Listener an den Bereich zu hängen der auf Klicks auf die Knoten reagiert. Anmerkung: listener geht direkt auf Details View und nicht mit add/delete Listener usw.&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 5h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 5h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: || 05.04.2012&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: || Nico Smeenk&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 1&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardGreen&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #9 (GUI) Tab Tabellenansicht&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 11.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Nico Smeenk&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Eine Ansicht der Tabelle mit sämtliche Operationen in einer oben liegenden Toolbar.&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 3h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 5h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: || 05.04.2012&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: || Nico Smeenk&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 1&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardGreen&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #11 (GUI) Tab Automatischer Baum&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 11.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Nico Smeenk&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Ein Baum der automatisch optimal erzeugt wird. Besteht aus #8 und #7&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 2h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 0.5h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: || 05.04.2012&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: || Nico Smeenk&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 1&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardGreen&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #12 (Tools) Ein individeueller Logger&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 11.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Benjamin Pfeiffer&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Ein Logger mit dem verschiedene Inhalte aus dem Quellcode protokolliert werden sollen.&lt;br /&gt;
Es sollen verschiedene Stufen geben, um später Protokollierungen für einen End-User anzupassen.&lt;br /&gt;
Handelt es sich um kritische Fehler sollen diese nicht nur textlich, sondern auch visuell durch ein PopUp&lt;br /&gt;
angezeigt werden.&lt;br /&gt;
Es kann in die Konsole und in ein LogFile protokolliert werden. &lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 4h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 5h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: || 25.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: || Benjamin Pfeiffer&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 2&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardGreen&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #13 (Tools) Anlegen einer Konfiguration durch eine Config-Datei&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 11.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Benjamin Pfeiffer&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Es soll die Möglichkeit geben eine Konfigurationsdatei anzulegen, mit der verschiedene Parameter ohne Änderung des Quellcodes&lt;br /&gt;
verändert werden können. Mit Hilfe einer Klasse soll diese Datei ausgelesen werden, die Konfigurationen werden dann bereitgestellt.&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 3h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 5h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: || 25.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: || Benjamin Pfeiffer&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 2&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardGreen&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #14 (Datenmodell) Eine Tabelle in Java repräsentieren&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 15.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Benjamin Pfeiffer&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Um die geforderten Daten einzulesen und zu bearbeiten, muss es im Programm eine Datenstruktur geben, die&lt;br /&gt;
eine Tabelle abbilden kann. Dieses Datenobjekt soll alle benötigten Methoden enthalten die zum auslesen/manipulieren&lt;br /&gt;
der Daten notwendig ist, also auch jene Methoden die später beim erstellen des Baumes (hinsichtlich der Tabelle) gebraucht werden.&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 8h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 10h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: || 25.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: || Benjamin Pfeiffer&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 2&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardGreen&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #15 (Import) Verschiedene Excel-Formate und CSV-Dateien einlesen&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 11.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Benjamin Pfeiffer&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Zum Einlesen von Datensätzen sollen Excel und CSV Dateien benutzt werden. Es muss also eine Schnittstelle geschaffen werden, die&lt;br /&gt;
aus den verschiedenen Formaten, die Daten so aufbereitet dass sie in Java repräsentiert werden (siehe auch #14).&lt;br /&gt;
Es gibt dabei folgende Formate: XLX (bis Excel 2003), XLSX (ab Excel 2007), CSV (mit Komma als Trennzeichen).&lt;br /&gt;
Genau diese Formate sollen benutzt werden, andere Formate werden nicht unterstützt.&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 10h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 12h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: || 25.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: || Benjamin Pfeiffer&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 2&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardGreen&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #16 (Export) Tabellendatenmodell in eine Excel/CSV Datei exportieren&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 11.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Benjamin Pfeiffer&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Mit Hilfe der GUI bearbeitete Datentabellen sollen wieder als Dateien abgespeichert werden können.&lt;br /&gt;
Dabei sollen dieselben Formate wie beim Import (#15) unterstützt werden.&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 8h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 7h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: || 25.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: || Benjamin Pfeiffer&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 2&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardGreen&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #17 (Datenmodell) Einen Baum in Java repräsentieren&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 15.01.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Christian Gebauer&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
Eine Klasse für einen Baumknoten muss implementiert werden. Dieser Knoten muss weitere Knoten beinhalten können.&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 3h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: || 5h&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: || 05.04.2012&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: || Nico Smeenk&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 2&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Standby==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--BEGIN-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable storyCard storyCardRed&amp;quot;  width=&amp;quot;1000&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;200&amp;quot;|Titel: !! #22 (GUI) Hervorheben der Auwahl im Baum&lt;br /&gt;
|-&lt;br /&gt;
|Datum: || 05.04.2012&lt;br /&gt;
|-&lt;br /&gt;
|Autor: || Nico Smeenk&lt;br /&gt;
|-&lt;br /&gt;
|Beschreibung || &lt;br /&gt;
In einem Baum soll hervorgehoben werden, welches Element gerade markiert ist. (optional)&lt;br /&gt;
|-&lt;br /&gt;
|Art: || technische Anforderung&lt;br /&gt;
|-&lt;br /&gt;
|Geschätzter Aufwand: || 2h&lt;br /&gt;
|-&lt;br /&gt;
|Tatsächlicher Aufwand: ||&lt;br /&gt;
|-&lt;br /&gt;
|Datum der Erledigung: ||&lt;br /&gt;
|-&lt;br /&gt;
|Entwickler: ||&lt;br /&gt;
|-&lt;br /&gt;
|Priorität: || 3&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;!--END-STORY-CARD---------------------------------------------------------------------------------------------------------&amp;gt;&lt;/div&gt;</summary>
		<author><name>Chge</name></author>	</entry>

	<entry>
		<id>https://www.p-servus.net/mediawiki/index.php?title=Optimaler_Entscheidungsbaum:_Projektorganisation</id>
		<title>Optimaler Entscheidungsbaum: Projektorganisation</title>
		<link rel="alternate" type="text/html" href="https://www.p-servus.net/mediawiki/index.php?title=Optimaler_Entscheidungsbaum:_Projektorganisation"/>
				<updated>2012-05-02T11:01:13Z</updated>
		
		<summary type="html">&lt;p&gt;Chge: /* Projektdesign */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Projektdesign ==&lt;br /&gt;
Der Projektablauf war bei dem Entscheidungsbaum nicht kompliziert.&lt;br /&gt;
Es wurde schnell entschieden, in welcher Form wir uns organisieren wollen, welche Rollenverteilung benötigt wird und auf welcher Art und Weise die Entwicklung des Projektes vorangehen soll. Dies war von großem Vorteil, da schnell ein Konsensus gefunden wurde und die Arbeit los gehen konnte. Durch die gemeinsame Teamarbeit in vorigen Projekten (siehe [[Projekt: HWR-Chat|HWR-Chat]] und [[Projekt: TSP-Ameisenalgorithmus|Ameisenalgorithmus]]). Da die etablierten Strukturen in den vergangenen Projekten bisher ausnahmslos zum Erfolg geführt haben, wurden sie beibehalten.&lt;br /&gt;
&lt;br /&gt;
Die [[Projekt: Optimaler Entscheidungsbaum#Teilnehmer | Rollenverteilung]] gab jeden Teilnehmenden seinen Aufgabenbereich, so dass jeder anfangen konnte sich zu spezialisieren. Im Projektablauf haben sich die Teilnehmenden regelmäßig zu [[Optimaler Entscheidungsbaum: Meetings | Meetings]] getroffen und in dieses Mediawiki mit aktuellen Inhalten gefüllt.&lt;br /&gt;
&lt;br /&gt;
== Projektplanung ==&lt;br /&gt;
Die Projektplanung umfasst Aufgaben wie die Planung von Personal, Termine, Sachmittel, Kosten usw. des Projektes.&lt;br /&gt;
&lt;br /&gt;
Da der Umfang des Projektes überschaubar war, jedoch aufgrund zeitlichen Drucks die Teilnehmer nicht viel Zeit investieren konnten, stellte sich die Planung des Projektes als eine Herausforderung dar.&lt;br /&gt;
Es wurden mit Absicht keine festen Deadlines gesetzt, um so den Teilnehmenden die Möglichkeit zu geben, an dem Projekt zu arbeiten, wenn persönlich Zeit zur Verfügung stand. Die Verteilung der Aufgaben über die Zeit geschah spontan während der Meetings.&lt;br /&gt;
&lt;br /&gt;
== Projektvorgaben ==&lt;br /&gt;
Die Anforderungen des Projektes standen relativ früh fest, da sie sich aus der [[Projekt: Optimaler Entscheidungsbaum#Aufgabenstellung|Aufgabenstellung]] herauskristalisiert haben. Die Anforderungen wurden ordungsgemäß im [[Optimaler Entscheidungsbaum: Pflichtenheft|Pflichtenheft]] dokumentiert. Dadurch hatten alle Teilnehmer eine gewisse Vision und konnten &amp;quot;das Licht am Ende des Tunnels sehen&amp;quot;.&lt;/div&gt;</summary>
		<author><name>Chge</name></author>	</entry>

	<entry>
		<id>https://www.p-servus.net/mediawiki/index.php?title=Optimaler_Entscheidungsbaum:_Projektorganisation</id>
		<title>Optimaler Entscheidungsbaum: Projektorganisation</title>
		<link rel="alternate" type="text/html" href="https://www.p-servus.net/mediawiki/index.php?title=Optimaler_Entscheidungsbaum:_Projektorganisation"/>
				<updated>2012-05-02T10:59:39Z</updated>
		
		<summary type="html">&lt;p&gt;Chge: /* Projektdesign */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Projektdesign ==&lt;br /&gt;
Der Projektablauf war bei dem Entscheidungsbaum nicht kompliziert.&lt;br /&gt;
Es wurde schnell entschieden, in welcher Form wir uns organisieren wollen, welche Rollenverteilung benötigt wird und auf welcher Art und Weise die Entwicklung des Projektes vorangehen soll. Dies war von großem Vorteil, da schnell ein Konsensus gefunden wurde und die Arbeit los gehen konnte. Durch die gemeinsame Teamarbeit in vorigen Projekten (siehe [[Projekt: HWR-Chat|HWR-Chat]] und [[Projekt: TSP-Ameisenalgorithmus|Ameisenalgorithmus]]). Da die etablierten Strukturen in den vergangenen Projekten bisher ausnahmslos zum Erfolg geführt haben, wurden sie beibehalten.&lt;br /&gt;
&lt;br /&gt;
Die [[Projekt: Optimaler Entscheidungsbaum#Teilnehmer | Rollenverteilung]] gab jeden Teilnehmenden seinen Aufgabenbereich, so dass sich jeder anfangen konnte sich zu spezialisieren. Als Projektablauf haben sich die Teilnehmenden regelmäßig zu [[Optimaler Entscheidungsbaum: Meetings | Meetings]] getroffen und in dieses Mediawiki aktuelle Inhalte geschrieben.&lt;br /&gt;
&lt;br /&gt;
== Projektplanung ==&lt;br /&gt;
Die Projektplanung umfasst Aufgaben wie die Planung von Personal, Termine, Sachmittel, Kosten usw. des Projektes.&lt;br /&gt;
&lt;br /&gt;
Da der Umfang des Projektes überschaubar war, jedoch aufgrund zeitlichen Drucks die Teilnehmer nicht viel Zeit investieren konnten, stellte sich die Planung des Projektes als eine Herausforderung dar.&lt;br /&gt;
Es wurden mit Absicht keine festen Deadlines gesetzt, um so den Teilnehmenden die Möglichkeit zu geben, an dem Projekt zu arbeiten, wenn persönlich Zeit zur Verfügung stand. Die Verteilung der Aufgaben über die Zeit geschah spontan während der Meetings.&lt;br /&gt;
&lt;br /&gt;
== Projektvorgaben ==&lt;br /&gt;
Die Anforderungen des Projektes standen relativ früh fest, da sie sich aus der [[Projekt: Optimaler Entscheidungsbaum#Aufgabenstellung|Aufgabenstellung]] herauskristalisiert haben. Die Anforderungen wurden ordungsgemäß im [[Optimaler Entscheidungsbaum: Pflichtenheft|Pflichtenheft]] dokumentiert. Dadurch hatten alle Teilnehmer eine gewisse Vision und konnten &amp;quot;das Licht am Ende des Tunnels sehen&amp;quot;.&lt;/div&gt;</summary>
		<author><name>Chge</name></author>	</entry>

	<entry>
		<id>https://www.p-servus.net/mediawiki/index.php?title=Optimaler_Entscheidungsbaum:_Projektorganisation</id>
		<title>Optimaler Entscheidungsbaum: Projektorganisation</title>
		<link rel="alternate" type="text/html" href="https://www.p-servus.net/mediawiki/index.php?title=Optimaler_Entscheidungsbaum:_Projektorganisation"/>
				<updated>2012-05-02T10:59:16Z</updated>
		
		<summary type="html">&lt;p&gt;Chge: /* Projektdesign */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Projektdesign ==&lt;br /&gt;
Der Projektablauf war bei dem Entscheidungsbaum nicht kompliziert.&lt;br /&gt;
Es wurde schnell entschieden, in welcher Form wir uns organisieren wollen, welche Rollenverteilung benötigt wird und auf welcher Art und Weise die Entwicklung des Projektes vorangehen soll. Dies war von großem Vorteil, da schnell ein Konsensus gefunden wurde und die Arbeit los gehen konnte. Durch die gemeinsame Teamarbeit in vorigen Projekten (siehe [[Projekt: HWR-Chat|HWR-Chat]] und [[Projekt: TSP-Ameisenalgorithmus|Ameisenalgorithmus]]). Da die etablierten Strukturen in den vergangenen Projekten bisher ausnahmslos zum Erfolg gedient haben, wurden sie beibehalten.&lt;br /&gt;
&lt;br /&gt;
Die [[Projekt: Optimaler Entscheidungsbaum#Teilnehmer | Rollenverteilung]] gab jeden Teilnehmenden seinen Aufgabenbereich, so dass sich jeder anfangen konnte sich zu spezialisieren. Als Projektablauf haben sich die Teilnehmenden regelmäßig zu [[Optimaler Entscheidungsbaum: Meetings | Meetings]] getroffen und in dieses Mediawiki aktuelle Inhalte geschrieben.&lt;br /&gt;
&lt;br /&gt;
== Projektplanung ==&lt;br /&gt;
Die Projektplanung umfasst Aufgaben wie die Planung von Personal, Termine, Sachmittel, Kosten usw. des Projektes.&lt;br /&gt;
&lt;br /&gt;
Da der Umfang des Projektes überschaubar war, jedoch aufgrund zeitlichen Drucks die Teilnehmer nicht viel Zeit investieren konnten, stellte sich die Planung des Projektes als eine Herausforderung dar.&lt;br /&gt;
Es wurden mit Absicht keine festen Deadlines gesetzt, um so den Teilnehmenden die Möglichkeit zu geben, an dem Projekt zu arbeiten, wenn persönlich Zeit zur Verfügung stand. Die Verteilung der Aufgaben über die Zeit geschah spontan während der Meetings.&lt;br /&gt;
&lt;br /&gt;
== Projektvorgaben ==&lt;br /&gt;
Die Anforderungen des Projektes standen relativ früh fest, da sie sich aus der [[Projekt: Optimaler Entscheidungsbaum#Aufgabenstellung|Aufgabenstellung]] herauskristalisiert haben. Die Anforderungen wurden ordungsgemäß im [[Optimaler Entscheidungsbaum: Pflichtenheft|Pflichtenheft]] dokumentiert. Dadurch hatten alle Teilnehmer eine gewisse Vision und konnten &amp;quot;das Licht am Ende des Tunnels sehen&amp;quot;.&lt;/div&gt;</summary>
		<author><name>Chge</name></author>	</entry>

	<entry>
		<id>https://www.p-servus.net/mediawiki/index.php?title=Optimaler_Entscheidungsbaum:_Projektorganisation</id>
		<title>Optimaler Entscheidungsbaum: Projektorganisation</title>
		<link rel="alternate" type="text/html" href="https://www.p-servus.net/mediawiki/index.php?title=Optimaler_Entscheidungsbaum:_Projektorganisation"/>
				<updated>2012-05-02T10:58:26Z</updated>
		
		<summary type="html">&lt;p&gt;Chge: /* Projektdesign */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Projektdesign ==&lt;br /&gt;
Der Projektablauf war bei dem Entscheidungsbaum nicht kompliziert.&lt;br /&gt;
Es wurde schnell entschieden, in welcher Form wir uns organisieren wollen, welche Rollenverteilung benötigt wird und auf welcher Art und Weise die Entwicklung des Projektes vorangehen soll. Dies war von großem Vorteil, da schnell ein Konsensus gefunden wurde und die Arbeit los gehen konnte. Durch die gemeinsame Teamarbeit in vorigen Projekten (siehe [[Projekt: HWR-Chat|HWR-Chat]] und [[Projekt: TSP-Ameisenalgorithmus|Ameisenalgorithmus]]). Da die vorigen Strukturen in den vorigen Projekten bisher ausnahmslos zum Erfolg gedient haben, wurden sie beibehalten.&lt;br /&gt;
&lt;br /&gt;
Die [[Projekt: Optimaler Entscheidungsbaum#Teilnehmer | Rollenverteilung]] gab jeden Teilnehmenden seinen Aufgabenbereich, so dass sich jeder anfangen konnte sich zu spezialisieren. Als Projektablauf haben sich die Teilnehmenden regelmäßig zu [[Optimaler Entscheidungsbaum: Meetings | Meetings]] getroffen und in dieses Mediawiki aktuelle Inhalte geschrieben.&lt;br /&gt;
&lt;br /&gt;
== Projektplanung ==&lt;br /&gt;
Die Projektplanung umfasst Aufgaben wie die Planung von Personal, Termine, Sachmittel, Kosten usw. des Projektes.&lt;br /&gt;
&lt;br /&gt;
Da der Umfang des Projektes überschaubar war, jedoch aufgrund zeitlichen Drucks die Teilnehmer nicht viel Zeit investieren konnten, stellte sich die Planung des Projektes als eine Herausforderung dar.&lt;br /&gt;
Es wurden mit Absicht keine festen Deadlines gesetzt, um so den Teilnehmenden die Möglichkeit zu geben, an dem Projekt zu arbeiten, wenn persönlich Zeit zur Verfügung stand. Die Verteilung der Aufgaben über die Zeit geschah spontan während der Meetings.&lt;br /&gt;
&lt;br /&gt;
== Projektvorgaben ==&lt;br /&gt;
Die Anforderungen des Projektes standen relativ früh fest, da sie sich aus der [[Projekt: Optimaler Entscheidungsbaum#Aufgabenstellung|Aufgabenstellung]] herauskristalisiert haben. Die Anforderungen wurden ordungsgemäß im [[Optimaler Entscheidungsbaum: Pflichtenheft|Pflichtenheft]] dokumentiert. Dadurch hatten alle Teilnehmer eine gewisse Vision und konnten &amp;quot;das Licht am Ende des Tunnels sehen&amp;quot;.&lt;/div&gt;</summary>
		<author><name>Chge</name></author>	</entry>

	<entry>
		<id>https://www.p-servus.net/mediawiki/index.php?title=Optimaler_Entscheidungsbaum:_Datenschnittstelle</id>
		<title>Optimaler Entscheidungsbaum: Datenschnittstelle</title>
		<link rel="alternate" type="text/html" href="https://www.p-servus.net/mediawiki/index.php?title=Optimaler_Entscheidungsbaum:_Datenschnittstelle"/>
				<updated>2012-05-02T10:53:20Z</updated>
		
		<summary type="html">&lt;p&gt;Chge: /* Entscheidungsbaum */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Einleitung ==&lt;br /&gt;
&lt;br /&gt;
Die Daten die in unserem Projekt verarbeitet werden sollen, liegen zunächst in Form einer Tabelle vor.&lt;br /&gt;
Diese Tabelle muss irgendwie in Java abgebildet werden.&lt;br /&gt;
Diese Datenorganisation bildet dann auch die Schnittstelle zu unseren Export- und Import-Klassen.&lt;br /&gt;
&lt;br /&gt;
In einem weiteren Schritt müssen die Daten noch in eine Baumstruktur gewandelt werden.&lt;br /&gt;
&lt;br /&gt;
== Repräsentation der Tabellendaten ==&lt;br /&gt;
&lt;br /&gt;
In Java könnte eine Tabelle folgendermaßen abgebildet werden:&lt;br /&gt;
&lt;br /&gt;
Jeder Zeile ist ein Listenelement, welches wiederum eine Liste ist, das allen zu dieser Zeile gehören Spaltenattribute enthält.&lt;br /&gt;
Es gibt also eine Liste in einer Liste und kann daher ähnlich angesprochen werden wie ein Koordinatensystem.&lt;br /&gt;
&lt;br /&gt;
== Aufbau eines Baums ==&lt;br /&gt;
Bäume werden in diesem Projekt wie folgt dargestellt:&amp;lt;br&amp;gt;&lt;br /&gt;
Es gibt eine Klasse die einen Knoten repräsentiert. Ein solcher Knoten hat als Attribute einen Namen, ein Daten-Objekt und eine Liste von weiteren Knoten, die dann seine Kind-Knoten darstellen. Um einfacher mit einem Baum arbeiten zu können, ist in jedem Knoten zusätzlich auch der Eltern-Knoten hinterlegt.&amp;lt;br&amp;gt;&lt;br /&gt;
Um den Baum anzusprechen oder zu kopieren, wird der Root-Knoten angesprochen.&lt;br /&gt;
&lt;br /&gt;
== Entscheidungsbaum ==&lt;br /&gt;
Um Entscheidungsbäume darzustellen wurde eine Klasse für dessen Knoten implementiert, welche von der Klasse der Baumknoten erbt. Diese speichert zusätzlich noch die zugehörige Tabelle, den Attributnamen des Knoten und das Ziel-Attribut.&amp;lt;br&amp;gt;&lt;br /&gt;
Weiter bietet es Methoden zur Berechnung der Entropie, zur Berechnung der gewichteten Entropie und zur Erstellung eines optimalen Entscheidungsbaumes, ausgehend von sich selbst.&amp;lt;br&amp;gt;&lt;br /&gt;
=== Entropie ===&lt;br /&gt;
Die Entopie eines Knotens wird von der Methode calculateEntropy() wiefolgt berechnet: [[Datei:Formel_Entropie.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
Dabei ist '''n''' die Anzahl der verschiedenen Werte des Zielattributes in dem Knoten,&amp;lt;br&amp;gt;&lt;br /&gt;
'''x_n''' die Anzahl der Elemente des Knotens, die den n-ten Zielattributwert besitzen und&amp;lt;br&amp;gt;&lt;br /&gt;
'''y''' die Anzahl aller Elemente des Knotens.&lt;br /&gt;
&lt;br /&gt;
=== gewichtete Entropie ===&lt;br /&gt;
Die gewichtete Entropie eines Knotens wird mit folgender Formel von der Methode calculateWeightedEntropy() berechnet: [[Datei:Formel_gewichtete_Entropie.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
Dabei ist '''n''' die Anzahl der Kinder des Knotens,&amp;lt;br&amp;gt;&lt;br /&gt;
'''x_n''' die Anzahl der Elemente des n-ten Kindes,&amp;lt;br&amp;gt;&lt;br /&gt;
'''y''' die Anzahl der Elemente des Knotens und&amp;lt;br&amp;gt;&lt;br /&gt;
'''z_n''' die Entropie des n-ten Knotens.&lt;br /&gt;
&lt;br /&gt;
=== Generierung eines Optimalen Entscheidungsbaumes ===&lt;br /&gt;
Ein optimaler Entscheidunsbaum wird von der Methode generateOptimizedTree(), wie im nachfolgendem Diagramm dargestellt, erzeugt.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Datei:Flussdiagramm_generateOptimizedTree.png]]&lt;/div&gt;</summary>
		<author><name>Chge</name></author>	</entry>

	<entry>
		<id>https://www.p-servus.net/mediawiki/index.php?title=Optimaler_Entscheidungsbaum:_Datenschnittstelle</id>
		<title>Optimaler Entscheidungsbaum: Datenschnittstelle</title>
		<link rel="alternate" type="text/html" href="https://www.p-servus.net/mediawiki/index.php?title=Optimaler_Entscheidungsbaum:_Datenschnittstelle"/>
				<updated>2012-05-02T10:51:38Z</updated>
		
		<summary type="html">&lt;p&gt;Chge: /* Aufbau eines Baums */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Einleitung ==&lt;br /&gt;
&lt;br /&gt;
Die Daten die in unserem Projekt verarbeitet werden sollen, liegen zunächst in Form einer Tabelle vor.&lt;br /&gt;
Diese Tabelle muss irgendwie in Java abgebildet werden.&lt;br /&gt;
Diese Datenorganisation bildet dann auch die Schnittstelle zu unseren Export- und Import-Klassen.&lt;br /&gt;
&lt;br /&gt;
In einem weiteren Schritt müssen die Daten noch in eine Baumstruktur gewandelt werden.&lt;br /&gt;
&lt;br /&gt;
== Repräsentation der Tabellendaten ==&lt;br /&gt;
&lt;br /&gt;
In Java könnte eine Tabelle folgendermaßen abgebildet werden:&lt;br /&gt;
&lt;br /&gt;
Jeder Zeile ist ein Listenelement, welches wiederum eine Liste ist, das allen zu dieser Zeile gehören Spaltenattribute enthält.&lt;br /&gt;
Es gibt also eine Liste in einer Liste und kann daher ähnlich angesprochen werden wie ein Koordinatensystem.&lt;br /&gt;
&lt;br /&gt;
== Aufbau eines Baums ==&lt;br /&gt;
Bäume werden in diesem Projekt wie folgt dargestellt:&amp;lt;br&amp;gt;&lt;br /&gt;
Es gibt eine Klasse die einen Knoten repräsentiert. Ein solcher Knoten hat als Attribute einen Namen, ein Daten-Objekt und eine Liste von weiteren Knoten, die dann seine Kind-Knoten darstellen. Um einfacher mit einem Baum arbeiten zu können, ist in jedem Knoten zusätzlich auch der Eltern-Knoten hinterlegt.&amp;lt;br&amp;gt;&lt;br /&gt;
Um den Baum anzusprechen oder zu kopieren, wird der Root-Knoten angesprochen.&lt;br /&gt;
&lt;br /&gt;
== Entscheidungsbaum ==&lt;br /&gt;
Um Entscheidungsbäume darzustellen wurde eine Klasse für dessen Knoten implementiert, welchen von der Klasse der Baumknoten erbt. Diese Speichert zusätzlich noch die zugehörige Tabelle, den Attributnamen des Knoten und das Ziel-Attribut.&amp;lt;br&amp;gt;&lt;br /&gt;
Weiter bietet es Methoden zur Berechnung der Entropie, zur Berechnung der gewichteten Entropie und zur erstellung eines optimalen Entscheidungsbaumes, ausgehend von sich selbst.&amp;lt;br&amp;gt;&lt;br /&gt;
=== Entropie ===&lt;br /&gt;
Die Entopie eines Knotens wird von der Methode calculateEntropy() wiefolgt berechnet: [[Datei:Formel_Entropie.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
Dabei ist '''n''' die Anzahl der verschiedenen Werte des Zielattributes in dem Knoten,&amp;lt;br&amp;gt;&lt;br /&gt;
'''x_n''' die Anzahl der Elemente des Knotens, die den n-ten Zielattributwert besitzen und&amp;lt;br&amp;gt;&lt;br /&gt;
'''y''' die Anzahl aller Elemente des Knotens.&lt;br /&gt;
&lt;br /&gt;
=== gewichtete Entropie ===&lt;br /&gt;
Die gewichtete Entropie eines Knotens wird mit folgender Formel von der Methode calculateWeightedEntropy() berechnet: [[Datei:Formel_gewichtete_Entropie.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
Dabei ist '''n''' die Anzahl der Kinder des Knotens,&amp;lt;br&amp;gt;&lt;br /&gt;
'''x_n''' die Anzahl der Elemente des n-ten Kindes,&amp;lt;br&amp;gt;&lt;br /&gt;
'''y''' die Anzahl der Elemente des Knotens und&amp;lt;br&amp;gt;&lt;br /&gt;
'''z_n''' die Entropie des n-ten Knotens.&lt;br /&gt;
&lt;br /&gt;
=== Generierung eines Optimalen Entscheidungsbaumes ===&lt;br /&gt;
Ein optimaler Entscheidunsbaum wird von der Methode generateOptimizedTree(), wie im nachfolgendem Diagramm dargestellt, erzeugt.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Datei:Flussdiagramm_generateOptimizedTree.png]]&lt;/div&gt;</summary>
		<author><name>Chge</name></author>	</entry>

	<entry>
		<id>https://www.p-servus.net/mediawiki/index.php?title=Optimaler_Entscheidungsbaum:_Datenschnittstelle</id>
		<title>Optimaler Entscheidungsbaum: Datenschnittstelle</title>
		<link rel="alternate" type="text/html" href="https://www.p-servus.net/mediawiki/index.php?title=Optimaler_Entscheidungsbaum:_Datenschnittstelle"/>
				<updated>2012-05-02T10:50:18Z</updated>
		
		<summary type="html">&lt;p&gt;Chge: /* Repräsentation der Tabellendaten */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Einleitung ==&lt;br /&gt;
&lt;br /&gt;
Die Daten die in unserem Projekt verarbeitet werden sollen, liegen zunächst in Form einer Tabelle vor.&lt;br /&gt;
Diese Tabelle muss irgendwie in Java abgebildet werden.&lt;br /&gt;
Diese Datenorganisation bildet dann auch die Schnittstelle zu unseren Export- und Import-Klassen.&lt;br /&gt;
&lt;br /&gt;
In einem weiteren Schritt müssen die Daten noch in eine Baumstruktur gewandelt werden.&lt;br /&gt;
&lt;br /&gt;
== Repräsentation der Tabellendaten ==&lt;br /&gt;
&lt;br /&gt;
In Java könnte eine Tabelle folgendermaßen abgebildet werden:&lt;br /&gt;
&lt;br /&gt;
Jeder Zeile ist ein Listenelement, welches wiederum eine Liste ist, das allen zu dieser Zeile gehören Spaltenattribute enthält.&lt;br /&gt;
Es gibt also eine Liste in einer Liste und kann daher ähnlich angesprochen werden wie ein Koordinatensystem.&lt;br /&gt;
&lt;br /&gt;
== Aufbau eines Baums ==&lt;br /&gt;
Bäume wurden in diesem Projekt wie folgt dargestellt:&amp;lt;br&amp;gt;&lt;br /&gt;
Es gibt eine Klasse die einen Knoten Repräsentiert. Ein solcher Knoten hat als Attribute einen Namen, ein Daten-Objekt und eine Liste von weiteren Knoten, die dann seine Kind-Knoten darstellen. Um einfacher mit einem Baum arbeiten zu können, ist in jedem Knoten auch noch der Eltern-Knoten hinterlegt.&amp;lt;br&amp;gt;&lt;br /&gt;
Um den Baum anzusprechen oder zu kopieren, wird der Root-Knoten angesprochen.&lt;br /&gt;
&lt;br /&gt;
== Entscheidungsbaum ==&lt;br /&gt;
Um Entscheidungsbäume darzustellen wurde eine Klasse für dessen Knoten implementiert, welchen von der Klasse der Baumknoten erbt. Diese Speichert zusätzlich noch die zugehörige Tabelle, den Attributnamen des Knoten und das Ziel-Attribut.&amp;lt;br&amp;gt;&lt;br /&gt;
Weiter bietet es Methoden zur Berechnung der Entropie, zur Berechnung der gewichteten Entropie und zur erstellung eines optimalen Entscheidungsbaumes, ausgehend von sich selbst.&amp;lt;br&amp;gt;&lt;br /&gt;
=== Entropie ===&lt;br /&gt;
Die Entopie eines Knotens wird von der Methode calculateEntropy() wiefolgt berechnet: [[Datei:Formel_Entropie.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
Dabei ist '''n''' die Anzahl der verschiedenen Werte des Zielattributes in dem Knoten,&amp;lt;br&amp;gt;&lt;br /&gt;
'''x_n''' die Anzahl der Elemente des Knotens, die den n-ten Zielattributwert besitzen und&amp;lt;br&amp;gt;&lt;br /&gt;
'''y''' die Anzahl aller Elemente des Knotens.&lt;br /&gt;
&lt;br /&gt;
=== gewichtete Entropie ===&lt;br /&gt;
Die gewichtete Entropie eines Knotens wird mit folgender Formel von der Methode calculateWeightedEntropy() berechnet: [[Datei:Formel_gewichtete_Entropie.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
Dabei ist '''n''' die Anzahl der Kinder des Knotens,&amp;lt;br&amp;gt;&lt;br /&gt;
'''x_n''' die Anzahl der Elemente des n-ten Kindes,&amp;lt;br&amp;gt;&lt;br /&gt;
'''y''' die Anzahl der Elemente des Knotens und&amp;lt;br&amp;gt;&lt;br /&gt;
'''z_n''' die Entropie des n-ten Knotens.&lt;br /&gt;
&lt;br /&gt;
=== Generierung eines Optimalen Entscheidungsbaumes ===&lt;br /&gt;
Ein optimaler Entscheidunsbaum wird von der Methode generateOptimizedTree(), wie im nachfolgendem Diagramm dargestellt, erzeugt.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Datei:Flussdiagramm_generateOptimizedTree.png]]&lt;/div&gt;</summary>
		<author><name>Chge</name></author>	</entry>

	<entry>
		<id>https://www.p-servus.net/mediawiki/index.php?title=Optimaler_Entscheidungsbaum:_Datenschnittstelle</id>
		<title>Optimaler Entscheidungsbaum: Datenschnittstelle</title>
		<link rel="alternate" type="text/html" href="https://www.p-servus.net/mediawiki/index.php?title=Optimaler_Entscheidungsbaum:_Datenschnittstelle"/>
				<updated>2012-05-02T10:47:27Z</updated>
		
		<summary type="html">&lt;p&gt;Chge: /* Einleitung */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Einleitung ==&lt;br /&gt;
&lt;br /&gt;
Die Daten die in unserem Projekt verarbeitet werden sollen, liegen zunächst in Form einer Tabelle vor.&lt;br /&gt;
Diese Tabelle muss irgendwie in Java abgebildet werden.&lt;br /&gt;
Diese Datenorganisation bildet dann auch die Schnittstelle zu unseren Export- und Import-Klassen.&lt;br /&gt;
&lt;br /&gt;
In einem weiteren Schritt müssen die Daten noch in eine Baumstruktur gewandelt werden.&lt;br /&gt;
&lt;br /&gt;
== Repräsentation der Tabellendaten ==&lt;br /&gt;
&lt;br /&gt;
In Java könnte eine Tabelle folgendermaßen abgebildet werden:&lt;br /&gt;
&lt;br /&gt;
Jeder Zeile ist ein Listenelement, dass wiederum eine Liste ist aus allen Spaltenattributen, die zu dieser Zeile gehören.&lt;br /&gt;
Es gibt dann also eine Liste in einer Liste und kann ähnlich angesprochen werden wie ein Koordinatensystem.&lt;br /&gt;
&lt;br /&gt;
== Aufbau eines Baums ==&lt;br /&gt;
Bäume wurden in diesem Projekt wie folgt dargestellt:&amp;lt;br&amp;gt;&lt;br /&gt;
Es gibt eine Klasse die einen Knoten Repräsentiert. Ein solcher Knoten hat als Attribute einen Namen, ein Daten-Objekt und eine Liste von weiteren Knoten, die dann seine Kind-Knoten darstellen. Um einfacher mit einem Baum arbeiten zu können, ist in jedem Knoten auch noch der Eltern-Knoten hinterlegt.&amp;lt;br&amp;gt;&lt;br /&gt;
Um den Baum anzusprechen oder zu kopieren, wird der Root-Knoten angesprochen.&lt;br /&gt;
&lt;br /&gt;
== Entscheidungsbaum ==&lt;br /&gt;
Um Entscheidungsbäume darzustellen wurde eine Klasse für dessen Knoten implementiert, welchen von der Klasse der Baumknoten erbt. Diese Speichert zusätzlich noch die zugehörige Tabelle, den Attributnamen des Knoten und das Ziel-Attribut.&amp;lt;br&amp;gt;&lt;br /&gt;
Weiter bietet es Methoden zur Berechnung der Entropie, zur Berechnung der gewichteten Entropie und zur erstellung eines optimalen Entscheidungsbaumes, ausgehend von sich selbst.&amp;lt;br&amp;gt;&lt;br /&gt;
=== Entropie ===&lt;br /&gt;
Die Entopie eines Knotens wird von der Methode calculateEntropy() wiefolgt berechnet: [[Datei:Formel_Entropie.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
Dabei ist '''n''' die Anzahl der verschiedenen Werte des Zielattributes in dem Knoten,&amp;lt;br&amp;gt;&lt;br /&gt;
'''x_n''' die Anzahl der Elemente des Knotens, die den n-ten Zielattributwert besitzen und&amp;lt;br&amp;gt;&lt;br /&gt;
'''y''' die Anzahl aller Elemente des Knotens.&lt;br /&gt;
&lt;br /&gt;
=== gewichtete Entropie ===&lt;br /&gt;
Die gewichtete Entropie eines Knotens wird mit folgender Formel von der Methode calculateWeightedEntropy() berechnet: [[Datei:Formel_gewichtete_Entropie.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
Dabei ist '''n''' die Anzahl der Kinder des Knotens,&amp;lt;br&amp;gt;&lt;br /&gt;
'''x_n''' die Anzahl der Elemente des n-ten Kindes,&amp;lt;br&amp;gt;&lt;br /&gt;
'''y''' die Anzahl der Elemente des Knotens und&amp;lt;br&amp;gt;&lt;br /&gt;
'''z_n''' die Entropie des n-ten Knotens.&lt;br /&gt;
&lt;br /&gt;
=== Generierung eines Optimalen Entscheidungsbaumes ===&lt;br /&gt;
Ein optimaler Entscheidunsbaum wird von der Methode generateOptimizedTree(), wie im nachfolgendem Diagramm dargestellt, erzeugt.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Datei:Flussdiagramm_generateOptimizedTree.png]]&lt;/div&gt;</summary>
		<author><name>Chge</name></author>	</entry>

	<entry>
		<id>https://www.p-servus.net/mediawiki/index.php?title=Technische_Konzepte:_Observer_Pattern</id>
		<title>Technische Konzepte: Observer Pattern</title>
		<link rel="alternate" type="text/html" href="https://www.p-servus.net/mediawiki/index.php?title=Technische_Konzepte:_Observer_Pattern"/>
				<updated>2012-05-02T10:32:05Z</updated>
		
		<summary type="html">&lt;p&gt;Chge: /* Allgemein */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Das Observer Design Pattern=&lt;br /&gt;
&lt;br /&gt;
==Allgemein==&lt;br /&gt;
&lt;br /&gt;
Das Observer Design Pattern wird genutzt, wenn es ein zu beobachtendes Objekt gibt, und eine Menge von Beobachtern, die über alle Ereignisse in dem beobachteten Objekt informiert werden wollen. Die zu beobachtenden Objekte heißen hierbei Subjekte und die Beobachter Observer.&lt;br /&gt;
&lt;br /&gt;
[[Datei:observer_pattern.png]]&lt;/div&gt;</summary>
		<author><name>Chge</name></author>	</entry>

	<entry>
		<id>https://www.p-servus.net/mediawiki/index.php?title=Technische_Konzepte:_Config_Manager</id>
		<title>Technische Konzepte: Config Manager</title>
		<link rel="alternate" type="text/html" href="https://www.p-servus.net/mediawiki/index.php?title=Technische_Konzepte:_Config_Manager"/>
				<updated>2012-05-02T10:29:41Z</updated>
		
		<summary type="html">&lt;p&gt;Chge: /* Wie kann ein Wert aus dem ConfigManager gelesen werden? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Einleitung ==&lt;br /&gt;
&lt;br /&gt;
Für viele Bereiche unserer Anwendung sind Konfigurationen notwendig. In unserem Projekt sollen aus einer Konigurations-Datei verschiedene Einstellungen ausgelesen werden können. Diese können z.B. einfach irgendwelche Ports / Addressen beinhalten, die nicht statisch im Quelltext vorliegen sollen. Natürlich können diese Konfigurationen auch in der Oberfläche verwaltet werden, manche Einstellungen sollen aber z.B. garnicht für einen Nutzer sichtbar sein oder es würde sich schlichtweg nicht lohnen dafür eine Oberfläche zu entwerfen.&lt;br /&gt;
&lt;br /&gt;
== Format für die Einstellungen ==&lt;br /&gt;
&lt;br /&gt;
In einer textlich lesbaren Datei sind die Einstellungen gespeichert. Pro Zeile soll eine Konfiguration verwendet werden.&lt;br /&gt;
Dabei gibt es immer einen Schlüssel und einen dazugehörigen Wert. Beide sind durch ein Gleichheitszeichen voneinander getrennt.&lt;br /&gt;
&lt;br /&gt;
'''Beispielschlüssel = Beispielwert'''&lt;br /&gt;
&lt;br /&gt;
== Wie kann ein Wert aus dem ConfigManager gelesen werden? ==&lt;br /&gt;
&lt;br /&gt;
Wie auch der Logger, so ist der ConfigManager nun statisch und braucht nicht initialisiert werden.&lt;br /&gt;
Es kann eine komplette Liste gelesen werden aus einer Datei (oder aus einer Standarddatei), die Liste bleibt zur Laufzeit auch dem ConfigManager bekannt und muss nicht manuell verwaltet werden. Durch die Methode &amp;quot;getValueFromKey&amp;quot; wird durch einen Parameterangabe des Schlüssels ein Wert herausgesucht aus dieser Liste und zurückgegeben. Sollte die Liste leer sein, versucht das Programm eine Standarddatei zu lesen. Ist kein Schlüssel gefunden worden ist der zurückgegebene Wert &amp;quot;null&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
Durch die Methode &amp;quot;writeConfigLine&amp;quot; wird der zuletzt geöffneten Konfigurationsdatei eine Zeile hinzugefügt.&lt;br /&gt;
Wurde noch keine Datei angegeben bleibt die Methode funktionslos.&lt;br /&gt;
&lt;br /&gt;
== Wo ist der ConfigManager zu finden? ==&lt;br /&gt;
&lt;br /&gt;
Der ConfigManager ist Bestandteil des Jar-Files &amp;quot;tools&amp;quot;, dass auch noch den Logger beherbergt.&lt;br /&gt;
Das Paket ist mit einer Classpath Variable bereits in unserem Projekt eingebunden.&lt;br /&gt;
Er kann einfach mit ConfigManager.xx (xx für die entsprechende Methode) benutzt werden.&lt;br /&gt;
Da der ConfigManager statisch ist muss nichts initialisiert werden. &lt;br /&gt;
Es sollte aber an einer zentralen Stelle das ConfigFile definiert werden (durch &amp;quot;readConfig(File file)), die angebene Datei bleibt zur Laufzeit gespeichert, alle anderen Methoden beziehen sich nun auf diese Datei.&lt;/div&gt;</summary>
		<author><name>Chge</name></author>	</entry>

	<entry>
		<id>https://www.p-servus.net/mediawiki/index.php?title=Technische_Konzepte:_Config_Manager</id>
		<title>Technische Konzepte: Config Manager</title>
		<link rel="alternate" type="text/html" href="https://www.p-servus.net/mediawiki/index.php?title=Technische_Konzepte:_Config_Manager"/>
				<updated>2012-05-02T10:24:39Z</updated>
		
		<summary type="html">&lt;p&gt;Chge: /* Einleitung */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Einleitung ==&lt;br /&gt;
&lt;br /&gt;
Für viele Bereiche unserer Anwendung sind Konfigurationen notwendig. In unserem Projekt sollen aus einer Konigurations-Datei verschiedene Einstellungen ausgelesen werden können. Diese können z.B. einfach irgendwelche Ports / Addressen beinhalten, die nicht statisch im Quelltext vorliegen sollen. Natürlich können diese Konfigurationen auch in der Oberfläche verwaltet werden, manche Einstellungen sollen aber z.B. garnicht für einen Nutzer sichtbar sein oder es würde sich schlichtweg nicht lohnen dafür eine Oberfläche zu entwerfen.&lt;br /&gt;
&lt;br /&gt;
== Format für die Einstellungen ==&lt;br /&gt;
&lt;br /&gt;
In einer textlich lesbaren Datei sind die Einstellungen gespeichert. Pro Zeile soll eine Konfiguration verwendet werden.&lt;br /&gt;
Dabei gibt es immer einen Schlüssel und einen dazugehörigen Wert. Beide sind durch ein Gleichheitszeichen voneinander getrennt.&lt;br /&gt;
&lt;br /&gt;
'''Beispielschlüssel = Beispielwert'''&lt;br /&gt;
&lt;br /&gt;
== Wie kann ein Wert aus dem ConfigManager gelesen werden? ==&lt;br /&gt;
&lt;br /&gt;
Wie auch der Logger, so ist der ConfigManager nun statisch und braucht nicht initialisiert werden.&lt;br /&gt;
Es kann eine komplette Liste gelesen werden aus einer Datei (oder aus einer Standarddatei), die Liste bleibt zur Laufzeit auch dem ConfigManager bekannt und muss nicht manuell verwaltet werden. Durch die Methode &amp;quot;getValueFromKey&amp;quot; wird durch einen Parameterangabe des Schlüssels ein Wert herausgsucht aus dieser Liste und zurückgegeben. Sollte die Liste leer sein, versucht das Programm eine Standarddatei zu lesen. Ist kein Schlüssel gefunden worden ist der zurückgegebene Wert &amp;quot;null&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
Durch die Methode &amp;quot;writeConfigLine&amp;quot; wird der zuletzt geöffneten Konfigurationsdatei eine Zeile hinzugefügt.&lt;br /&gt;
Wurde noch keine Datei angegeben bleibt die Methode funktionslos.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Wo ist der ConfigManager zu finden? ==&lt;br /&gt;
&lt;br /&gt;
Der ConfigManager ist Bestandteil des Jar-Files &amp;quot;tools&amp;quot;, dass auch noch den Logger beherbergt.&lt;br /&gt;
Das Paket ist mit einer Classpath Variable bereits in unserem Projekt eingebunden.&lt;br /&gt;
Er kann einfach mit ConfigManager.xx (xx für die entsprechende Methode) benutzt werden.&lt;br /&gt;
Da der ConfigManager statisch ist muss nichts initialisiert werden. &lt;br /&gt;
Es sollte aber an einer zentralen Stelle das ConfigFile definiert werden (durch &amp;quot;readConfig(File file)), die angebene Datei bleibt zur Laufzeit gespeichert, alle anderen Methoden beziehen sich nun auf diese Datei.&lt;/div&gt;</summary>
		<author><name>Chge</name></author>	</entry>

	<entry>
		<id>https://www.p-servus.net/mediawiki/index.php?title=Technische_Konzepte:_Logger</id>
		<title>Technische Konzepte: Logger</title>
		<link rel="alternate" type="text/html" href="https://www.p-servus.net/mediawiki/index.php?title=Technische_Konzepte:_Logger"/>
				<updated>2012-05-02T10:23:12Z</updated>
		
		<summary type="html">&lt;p&gt;Chge: /* Wo ist der Logger zu finden? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Einleitung ==&lt;br /&gt;
&lt;br /&gt;
Für diverse Stellen in einem Programm muss es möglich sein bestimmte Schritte zu loggen. Das heißt konkret es werden Informationen, in welcher Form auch immer, gespeichert und protokolliert.&lt;br /&gt;
Welche Informationen und wieviel protokolliert wird, legt ein sogenannter LogLevel fest. Beim Entwicklen soll z.B. möglichst viel geloggt werden, im echten Betrieb nur wichtige Fehler.&lt;br /&gt;
&lt;br /&gt;
== LogLevel ==&lt;br /&gt;
&lt;br /&gt;
Für unser relativ kleines Projekt sind nicht viele LogLevel notwendig.&lt;br /&gt;
* Debug&lt;br /&gt;
Das DebugLevel ist für Meldungen gedacht, die eher zum Programmablauf gehören, um zu verstehen wie ein Fehler auftreten kann. Es muss hier also kein konkreter Fehler direkt damit in Verbindung stehen.&lt;br /&gt;
* Info&lt;br /&gt;
Das Info-Level ist für Informationen gedacht, die auch eher den Programmablauf protokollieren, aber auch für den Anwender von Bedeutung sind. (z.B. irgendwelche Verzweigungen, die zwar unvorhergesehen sind, das Programm aber durchaus weiterlaufen kann --&amp;gt; Eine Variable kann nicht gelesen werden, es wird eine StandardVariable benutzt)&lt;br /&gt;
Das Info-Level ist standardmäßig eingestellt!&lt;br /&gt;
* Error&lt;br /&gt;
Wird ein Error geloggt, dann handelt es sich um einen kritischen Fehler, das Programm (oder die gerade benutzte Funktion) kann so nicht weiter benutzt werden. Ein Error manifestiert sich außerdem zusätzlich in einem Fehlerfenster, das dem Nutzer angezeigt wird. (z.B. damit nicht einfach das Programm ohne Fehlermeldung abstürzt)&lt;br /&gt;
&lt;br /&gt;
== Auf welche Arten wird geloggt? ==&lt;br /&gt;
&lt;br /&gt;
Der Logger gibt einerseits eine Meldung an die Konsole, außerdem wird ein Log-File erstellt.&lt;br /&gt;
In besonders kritischen Fällen wird zusätzlich ein GUI-Error-Fenster angezeigt, das dem Nutzer den Fehler direkt präsentiert.&lt;br /&gt;
&lt;br /&gt;
An dieser Stelle soll nochmals betont werden, dass wirklich nur geloggt wird, wenn das LogLevel stimmt. D.h. das LogLevel muss mindestens genauso &amp;quot;schlimm&amp;quot; sein oder noch &amp;quot;schlimmer&amp;quot; wie das, was im Logger definiert ist.&lt;br /&gt;
&lt;br /&gt;
Das LogLevel kann im laufenden Betrieb geändert werden.&lt;br /&gt;
&lt;br /&gt;
== Welche Methoden stellt der Logger bereit? ==&lt;br /&gt;
&lt;br /&gt;
Es gibt verschiedene Methoden um z.B. das LogLevel oder den Dateipfad für die LogDatei zu ändern.&lt;br /&gt;
&lt;br /&gt;
Viel wichtiger sind aber die beiden Methoden zum eigentlichen Loggen.&lt;br /&gt;
Einerseits gibt es die Methode &amp;quot;log&amp;quot; mit 2 Parametern. Wird diese Methode verwendet wird nur das LogLevel benötigt für das diese LogNachricht bestimmt ist und mit dem zweiten Parameter wird die eigentliche LogMessage angegeben. &lt;br /&gt;
&lt;br /&gt;
Über diese Methode hinaus gibt es die Methode &amp;quot;log&amp;quot; mit insgesamt 5 Parametern. Diese enthält die beiden, wie sie eben beschrieben wurden und zusätzlich verschiedene Angaben, die die Meldung näher spezifizieren. Es kann ein bestimmter &amp;quot;Header&amp;quot; für die Error Nachricht angegeben werden, die dem User grafisch bei einem Error präsentiert wird. Es kann ein Klassenname (als String) und eine Exception als Objekt übergeben werden.&lt;br /&gt;
Sollte ein Parameter mit null oder leer (&amp;quot;&amp;quot;) belegt sein, so wird dieser ignoriert.&lt;br /&gt;
&lt;br /&gt;
== Wo ist der Logger zu finden? ==&lt;br /&gt;
&lt;br /&gt;
Der Logger ist Bestandteil des Jar-Files &amp;quot;tools&amp;quot;, das auch noch den ConfigManager beherbergt.&lt;br /&gt;
Das Paket ist mit einer Classpath Variable bereits in unserem Projekt eingebunden.&lt;br /&gt;
Er kann einfach mit Logger.xx (xx für die entsprechende Methode) benutzt werden. Wobei aufgepasst werden muss, dass auch unser Logger verwendet wird (Auswahlliste in Eclipse). Da der Logger statisch ist muss nichts initialisiert werden. Es sollte aber das LogLevel nur an einer zentralen Stelle geändert werden. (z.B. gleich in der Starter--&amp;gt;main)&lt;br /&gt;
&lt;br /&gt;
Der Logger benutzt Standardmäßig das LogLevel INFO.&lt;/div&gt;</summary>
		<author><name>Chge</name></author>	</entry>

	<entry>
		<id>https://www.p-servus.net/mediawiki/index.php?title=Technische_Konzepte:_Logger</id>
		<title>Technische Konzepte: Logger</title>
		<link rel="alternate" type="text/html" href="https://www.p-servus.net/mediawiki/index.php?title=Technische_Konzepte:_Logger"/>
				<updated>2012-05-02T10:20:52Z</updated>
		
		<summary type="html">&lt;p&gt;Chge: /* Welche Methoden stellt der Logger bereit? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Einleitung ==&lt;br /&gt;
&lt;br /&gt;
Für diverse Stellen in einem Programm muss es möglich sein bestimmte Schritte zu loggen. Das heißt konkret es werden Informationen, in welcher Form auch immer, gespeichert und protokolliert.&lt;br /&gt;
Welche Informationen und wieviel protokolliert wird, legt ein sogenannter LogLevel fest. Beim Entwicklen soll z.B. möglichst viel geloggt werden, im echten Betrieb nur wichtige Fehler.&lt;br /&gt;
&lt;br /&gt;
== LogLevel ==&lt;br /&gt;
&lt;br /&gt;
Für unser relativ kleines Projekt sind nicht viele LogLevel notwendig.&lt;br /&gt;
* Debug&lt;br /&gt;
Das DebugLevel ist für Meldungen gedacht, die eher zum Programmablauf gehören, um zu verstehen wie ein Fehler auftreten kann. Es muss hier also kein konkreter Fehler direkt damit in Verbindung stehen.&lt;br /&gt;
* Info&lt;br /&gt;
Das Info-Level ist für Informationen gedacht, die auch eher den Programmablauf protokollieren, aber auch für den Anwender von Bedeutung sind. (z.B. irgendwelche Verzweigungen, die zwar unvorhergesehen sind, das Programm aber durchaus weiterlaufen kann --&amp;gt; Eine Variable kann nicht gelesen werden, es wird eine StandardVariable benutzt)&lt;br /&gt;
Das Info-Level ist standardmäßig eingestellt!&lt;br /&gt;
* Error&lt;br /&gt;
Wird ein Error geloggt, dann handelt es sich um einen kritischen Fehler, das Programm (oder die gerade benutzte Funktion) kann so nicht weiter benutzt werden. Ein Error manifestiert sich außerdem zusätzlich in einem Fehlerfenster, das dem Nutzer angezeigt wird. (z.B. damit nicht einfach das Programm ohne Fehlermeldung abstürzt)&lt;br /&gt;
&lt;br /&gt;
== Auf welche Arten wird geloggt? ==&lt;br /&gt;
&lt;br /&gt;
Der Logger gibt einerseits eine Meldung an die Konsole, außerdem wird ein Log-File erstellt.&lt;br /&gt;
In besonders kritischen Fällen wird zusätzlich ein GUI-Error-Fenster angezeigt, das dem Nutzer den Fehler direkt präsentiert.&lt;br /&gt;
&lt;br /&gt;
An dieser Stelle soll nochmals betont werden, dass wirklich nur geloggt wird, wenn das LogLevel stimmt. D.h. das LogLevel muss mindestens genauso &amp;quot;schlimm&amp;quot; sein oder noch &amp;quot;schlimmer&amp;quot; wie das, was im Logger definiert ist.&lt;br /&gt;
&lt;br /&gt;
Das LogLevel kann im laufenden Betrieb geändert werden.&lt;br /&gt;
&lt;br /&gt;
== Welche Methoden stellt der Logger bereit? ==&lt;br /&gt;
&lt;br /&gt;
Es gibt verschiedene Methoden um z.B. das LogLevel oder den Dateipfad für die LogDatei zu ändern.&lt;br /&gt;
&lt;br /&gt;
Viel wichtiger sind aber die beiden Methoden zum eigentlichen Loggen.&lt;br /&gt;
Einerseits gibt es die Methode &amp;quot;log&amp;quot; mit 2 Parametern. Wird diese Methode verwendet wird nur das LogLevel benötigt für das diese LogNachricht bestimmt ist und mit dem zweiten Parameter wird die eigentliche LogMessage angegeben. &lt;br /&gt;
&lt;br /&gt;
Über diese Methode hinaus gibt es die Methode &amp;quot;log&amp;quot; mit insgesamt 5 Parametern. Diese enthält die beiden, wie sie eben beschrieben wurden und zusätzlich verschiedene Angaben, die die Meldung näher spezifizieren. Es kann ein bestimmter &amp;quot;Header&amp;quot; für die Error Nachricht angegeben werden, die dem User grafisch bei einem Error präsentiert wird. Es kann ein Klassenname (als String) und eine Exception als Objekt übergeben werden.&lt;br /&gt;
Sollte ein Parameter mit null oder leer (&amp;quot;&amp;quot;) belegt sein, so wird dieser ignoriert.&lt;br /&gt;
&lt;br /&gt;
== Wo ist der Logger zu finden? ==&lt;br /&gt;
&lt;br /&gt;
Der Logger ist Bestandteil des Jar-Files &amp;quot;tools&amp;quot;, dass auch noch den ConfigManager beherbergt.&lt;br /&gt;
Das Paket ist mit einer Classpath Variable bereits in unserem Projekt eingebunden.&lt;br /&gt;
Er kann einfach mit Logger.xx (xx für die entsprechende Methode) benutzt werden. Wobei aufgepasst werden muss dass auch unser Logger verwendet wird (Auswahlliste in Eclipse). Da der Logger statisch ist muss nichts initialisiert werden. Es sollte aber das LogLevel nur an einer zentralen Stelle geändert werden (z.b. gleich in der Starter--&amp;gt;main)&lt;br /&gt;
&lt;br /&gt;
Der Logger benutzt Standardmäßig das LogLevel INFO&lt;/div&gt;</summary>
		<author><name>Chge</name></author>	</entry>

	<entry>
		<id>https://www.p-servus.net/mediawiki/index.php?title=Technische_Konzepte:_Logger</id>
		<title>Technische Konzepte: Logger</title>
		<link rel="alternate" type="text/html" href="https://www.p-servus.net/mediawiki/index.php?title=Technische_Konzepte:_Logger"/>
				<updated>2012-05-02T09:47:22Z</updated>
		
		<summary type="html">&lt;p&gt;Chge: /* Auf welche Arten wird geloggt? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Einleitung ==&lt;br /&gt;
&lt;br /&gt;
Für diverse Stellen in einem Programm muss es möglich sein bestimmte Schritte zu loggen. Das heißt konkret es werden Informationen, in welcher Form auch immer, gespeichert und protokolliert.&lt;br /&gt;
Welche Informationen und wieviel protokolliert wird, legt ein sogenannter LogLevel fest. Beim Entwicklen soll z.B. möglichst viel geloggt werden, im echten Betrieb nur wichtige Fehler.&lt;br /&gt;
&lt;br /&gt;
== LogLevel ==&lt;br /&gt;
&lt;br /&gt;
Für unser relativ kleines Projekt sind nicht viele LogLevel notwendig.&lt;br /&gt;
* Debug&lt;br /&gt;
Das DebugLevel ist für Meldungen gedacht, die eher zum Programmablauf gehören, um zu verstehen wie ein Fehler auftreten kann. Es muss hier also kein konkreter Fehler direkt damit in Verbindung stehen.&lt;br /&gt;
* Info&lt;br /&gt;
Das Info-Level ist für Informationen gedacht, die auch eher den Programmablauf protokollieren, aber auch für den Anwender von Bedeutung sind. (z.B. irgendwelche Verzweigungen, die zwar unvorhergesehen sind, das Programm aber durchaus weiterlaufen kann --&amp;gt; Eine Variable kann nicht gelesen werden, es wird eine StandardVariable benutzt)&lt;br /&gt;
Das Info-Level ist standardmäßig eingestellt!&lt;br /&gt;
* Error&lt;br /&gt;
Wird ein Error geloggt, dann handelt es sich um einen kritischen Fehler, das Programm (oder die gerade benutzte Funktion) kann so nicht weiter benutzt werden. Ein Error manifestiert sich außerdem zusätzlich in einem Fehlerfenster, das dem Nutzer angezeigt wird. (z.B. damit nicht einfach das Programm ohne Fehlermeldung abstürzt)&lt;br /&gt;
&lt;br /&gt;
== Auf welche Arten wird geloggt? ==&lt;br /&gt;
&lt;br /&gt;
Der Logger gibt einerseits eine Meldung an die Konsole, außerdem wird ein Log-File erstellt.&lt;br /&gt;
In besonders kritischen Fällen wird zusätzlich ein GUI-Error-Fenster angezeigt, das dem Nutzer den Fehler direkt präsentiert.&lt;br /&gt;
&lt;br /&gt;
An dieser Stelle soll nochmals betont werden, dass wirklich nur geloggt wird, wenn das LogLevel stimmt. D.h. das LogLevel muss mindestens genauso &amp;quot;schlimm&amp;quot; sein oder noch &amp;quot;schlimmer&amp;quot; wie das, was im Logger definiert ist.&lt;br /&gt;
&lt;br /&gt;
Das LogLevel kann im laufenden Betrieb geändert werden.&lt;br /&gt;
&lt;br /&gt;
== Welche Methoden stellt der Logger bereit? ==&lt;br /&gt;
&lt;br /&gt;
Es gibt zum einen verschiedene Methoden um z.B. das LogLevel zu ändern oder den Dateipfad für die LogDatei.&lt;br /&gt;
&lt;br /&gt;
Viel wichtiger sind die beiden Methoden zum eigentlichen loggen.&lt;br /&gt;
Zum einen gibt es die Methode &amp;quot;log&amp;quot; mit 2 Parametern. Wird diese Methode verwendet wird nur das LogLevel benötigt für das diese LogNachricht bestimmt ist und mit dem zweiten Parameter wird die eigentliche LogMessage angegeben. &lt;br /&gt;
&lt;br /&gt;
Über diese Methode hinaus gibt es die Methode &amp;quot;log&amp;quot; mit insgesamt 5 Parametern. Diese enthält die beiden, wie sie eben beschrieben wurden und zusätzlich verschiedene Angaben, die die Meldung näher spezifizieren. Es kann ein bestimmter &amp;quot;Header&amp;quot; für die Error Nachricht angegeben werden, die dem User Grafisch bei einem Error präsentiert wird. Es kann ein Klassenname (als String) und eine Exception als Objekt übergeben werden.&lt;br /&gt;
Sollte ein Parameter mit null oder leer (&amp;quot;&amp;quot;) belegt sein, so wird dieser ignoriert.&lt;br /&gt;
&lt;br /&gt;
== Wo ist der Logger zu finden? ==&lt;br /&gt;
&lt;br /&gt;
Der Logger ist Bestandteil des Jar-Files &amp;quot;tools&amp;quot;, dass auch noch den ConfigManager beherbergt.&lt;br /&gt;
Das Paket ist mit einer Classpath Variable bereits in unserem Projekt eingebunden.&lt;br /&gt;
Er kann einfach mit Logger.xx (xx für die entsprechende Methode) benutzt werden. Wobei aufgepasst werden muss dass auch unser Logger verwendet wird (Auswahlliste in Eclipse). Da der Logger statisch ist muss nichts initialisiert werden. Es sollte aber das LogLevel nur an einer zentralen Stelle geändert werden (z.b. gleich in der Starter--&amp;gt;main)&lt;br /&gt;
&lt;br /&gt;
Der Logger benutzt Standardmäßig das LogLevel INFO&lt;/div&gt;</summary>
		<author><name>Chge</name></author>	</entry>

	<entry>
		<id>https://www.p-servus.net/mediawiki/index.php?title=Technische_Konzepte:_Logger</id>
		<title>Technische Konzepte: Logger</title>
		<link rel="alternate" type="text/html" href="https://www.p-servus.net/mediawiki/index.php?title=Technische_Konzepte:_Logger"/>
				<updated>2012-05-02T09:34:40Z</updated>
		
		<summary type="html">&lt;p&gt;Chge: /* LogLevel */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Einleitung ==&lt;br /&gt;
&lt;br /&gt;
Für diverse Stellen in einem Programm muss es möglich sein bestimmte Schritte zu loggen. Das heißt konkret es werden Informationen, in welcher Form auch immer, gespeichert und protokolliert.&lt;br /&gt;
Welche Informationen und wieviel protokolliert wird, legt ein sogenannter LogLevel fest. Beim Entwicklen soll z.B. möglichst viel geloggt werden, im echten Betrieb nur wichtige Fehler.&lt;br /&gt;
&lt;br /&gt;
== LogLevel ==&lt;br /&gt;
&lt;br /&gt;
Für unser relativ kleines Projekt sind nicht viele LogLevel notwendig.&lt;br /&gt;
* Debug&lt;br /&gt;
Das DebugLevel ist für Meldungen gedacht, die eher zum Programmablauf gehören, um zu verstehen wie ein Fehler auftreten kann. Es muss hier also kein konkreter Fehler direkt damit in Verbindung stehen.&lt;br /&gt;
* Info&lt;br /&gt;
Das Info-Level ist für Informationen gedacht, die auch eher den Programmablauf protokollieren, aber auch für den Anwender von Bedeutung sind. (z.B. irgendwelche Verzweigungen, die zwar unvorhergesehen sind, das Programm aber durchaus weiterlaufen kann --&amp;gt; Eine Variable kann nicht gelesen werden, es wird eine StandardVariable benutzt)&lt;br /&gt;
Das Info-Level ist standardmäßig eingestellt!&lt;br /&gt;
* Error&lt;br /&gt;
Wird ein Error geloggt, dann handelt es sich um einen kritischen Fehler, das Programm (oder die gerade benutzte Funktion) kann so nicht weiter benutzt werden. Ein Error manifestiert sich außerdem zusätzlich in einem Fehlerfenster, das dem Nutzer angezeigt wird. (z.B. damit nicht einfach das Programm ohne Fehlermeldung abstürzt)&lt;br /&gt;
&lt;br /&gt;
== Auf welche Arten wird geloggt? ==&lt;br /&gt;
&lt;br /&gt;
Der Logger gibt einerseits eine Meldung an die Konsole und außerdem wird ein Log-File erstellt.&lt;br /&gt;
Im besonders kritischen Fall wird außerdem ein GUI-Error-Fenster angezeigt, dass dem Nutzer den Fehler direkt präsentiert.&lt;br /&gt;
&lt;br /&gt;
An dieser Stelle soll nochmal betont werden, dass wirklich nur geloggt wird wenn das LogLevel stimmt. Das LogLevel muss mindestens genauso &amp;quot;schlimm&amp;quot; sein oder noch &amp;quot;schlimmer&amp;quot; als das, was im Logger eingestellt ist.&lt;br /&gt;
&lt;br /&gt;
Das LogLevel kann im laufenden Betrieb geändert werden.&lt;br /&gt;
&lt;br /&gt;
== Welche Methoden stellt der Logger bereit? ==&lt;br /&gt;
&lt;br /&gt;
Es gibt zum einen verschiedene Methoden um z.B. das LogLevel zu ändern oder den Dateipfad für die LogDatei.&lt;br /&gt;
&lt;br /&gt;
Viel wichtiger sind die beiden Methoden zum eigentlichen loggen.&lt;br /&gt;
Zum einen gibt es die Methode &amp;quot;log&amp;quot; mit 2 Parametern. Wird diese Methode verwendet wird nur das LogLevel benötigt für das diese LogNachricht bestimmt ist und mit dem zweiten Parameter wird die eigentliche LogMessage angegeben. &lt;br /&gt;
&lt;br /&gt;
Über diese Methode hinaus gibt es die Methode &amp;quot;log&amp;quot; mit insgesamt 5 Parametern. Diese enthält die beiden, wie sie eben beschrieben wurden und zusätzlich verschiedene Angaben, die die Meldung näher spezifizieren. Es kann ein bestimmter &amp;quot;Header&amp;quot; für die Error Nachricht angegeben werden, die dem User Grafisch bei einem Error präsentiert wird. Es kann ein Klassenname (als String) und eine Exception als Objekt übergeben werden.&lt;br /&gt;
Sollte ein Parameter mit null oder leer (&amp;quot;&amp;quot;) belegt sein, so wird dieser ignoriert.&lt;br /&gt;
&lt;br /&gt;
== Wo ist der Logger zu finden? ==&lt;br /&gt;
&lt;br /&gt;
Der Logger ist Bestandteil des Jar-Files &amp;quot;tools&amp;quot;, dass auch noch den ConfigManager beherbergt.&lt;br /&gt;
Das Paket ist mit einer Classpath Variable bereits in unserem Projekt eingebunden.&lt;br /&gt;
Er kann einfach mit Logger.xx (xx für die entsprechende Methode) benutzt werden. Wobei aufgepasst werden muss dass auch unser Logger verwendet wird (Auswahlliste in Eclipse). Da der Logger statisch ist muss nichts initialisiert werden. Es sollte aber das LogLevel nur an einer zentralen Stelle geändert werden (z.b. gleich in der Starter--&amp;gt;main)&lt;br /&gt;
&lt;br /&gt;
Der Logger benutzt Standardmäßig das LogLevel INFO&lt;/div&gt;</summary>
		<author><name>Chge</name></author>	</entry>

	<entry>
		<id>https://www.p-servus.net/mediawiki/index.php?title=Technische_Konzepte:_Logger</id>
		<title>Technische Konzepte: Logger</title>
		<link rel="alternate" type="text/html" href="https://www.p-servus.net/mediawiki/index.php?title=Technische_Konzepte:_Logger"/>
				<updated>2012-05-02T09:32:04Z</updated>
		
		<summary type="html">&lt;p&gt;Chge: /* LogLevel */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Einleitung ==&lt;br /&gt;
&lt;br /&gt;
Für diverse Stellen in einem Programm muss es möglich sein bestimmte Schritte zu loggen. Das heißt konkret es werden Informationen, in welcher Form auch immer, gespeichert und protokolliert.&lt;br /&gt;
Welche Informationen und wieviel protokolliert wird, legt ein sogenannter LogLevel fest. Beim Entwicklen soll z.B. möglichst viel geloggt werden, im echten Betrieb nur wichtige Fehler.&lt;br /&gt;
&lt;br /&gt;
== LogLevel ==&lt;br /&gt;
&lt;br /&gt;
Für unser relativ kleines Projekt sind nicht viele LogLevel notwendig.&lt;br /&gt;
* Debug&lt;br /&gt;
Das DebugLevel ist für Meldungen gedacht die eher zum Programmablauf gedacht sind, um zu verstehen wie ein Fehler auftreten kann. Es muss hier also kein konkreter Fehler direkt damit in Verbindung stehen.&lt;br /&gt;
* Info&lt;br /&gt;
Das Info-Level ist für Informationen gedacht, die auch eher den Programmablauf protokollieren, aber auch für den Anwender von Bedeutung sind. (Z.b. irgendwelche Verzweigungen, die zwar unvorhergesehen sind, das Programm aber durchaus weiterlaufenn kann --&amp;gt; Eine Variable kann nicht gelesen werden, es wird eine StandardVariable benutzt)&lt;br /&gt;
Das Info-Level ist standardmäßig eingestellt!&lt;br /&gt;
* Error&lt;br /&gt;
Wird ein Error geloggt, dann handelt es sich um einen kritischen Fehler, das Programm (oder die gerade benutzte Funktion) kann so nicht weiter benutzt werden. Ein Error manifestiert sich außerdem zusätzlich in einem Fehlerfenster, das dem Nutzer angezeigt wird. (Z.b. damit nicht einfach das Programm ohne Fehlermeldung abschmiert!)&lt;br /&gt;
&lt;br /&gt;
== Auf welche Arten wird geloggt? ==&lt;br /&gt;
&lt;br /&gt;
Der Logger gibt einerseits eine Meldung an die Konsole und außerdem wird ein Log-File erstellt.&lt;br /&gt;
Im besonders kritischen Fall wird außerdem ein GUI-Error-Fenster angezeigt, dass dem Nutzer den Fehler direkt präsentiert.&lt;br /&gt;
&lt;br /&gt;
An dieser Stelle soll nochmal betont werden, dass wirklich nur geloggt wird wenn das LogLevel stimmt. Das LogLevel muss mindestens genauso &amp;quot;schlimm&amp;quot; sein oder noch &amp;quot;schlimmer&amp;quot; als das, was im Logger eingestellt ist.&lt;br /&gt;
&lt;br /&gt;
Das LogLevel kann im laufenden Betrieb geändert werden.&lt;br /&gt;
&lt;br /&gt;
== Welche Methoden stellt der Logger bereit? ==&lt;br /&gt;
&lt;br /&gt;
Es gibt zum einen verschiedene Methoden um z.B. das LogLevel zu ändern oder den Dateipfad für die LogDatei.&lt;br /&gt;
&lt;br /&gt;
Viel wichtiger sind die beiden Methoden zum eigentlichen loggen.&lt;br /&gt;
Zum einen gibt es die Methode &amp;quot;log&amp;quot; mit 2 Parametern. Wird diese Methode verwendet wird nur das LogLevel benötigt für das diese LogNachricht bestimmt ist und mit dem zweiten Parameter wird die eigentliche LogMessage angegeben. &lt;br /&gt;
&lt;br /&gt;
Über diese Methode hinaus gibt es die Methode &amp;quot;log&amp;quot; mit insgesamt 5 Parametern. Diese enthält die beiden, wie sie eben beschrieben wurden und zusätzlich verschiedene Angaben, die die Meldung näher spezifizieren. Es kann ein bestimmter &amp;quot;Header&amp;quot; für die Error Nachricht angegeben werden, die dem User Grafisch bei einem Error präsentiert wird. Es kann ein Klassenname (als String) und eine Exception als Objekt übergeben werden.&lt;br /&gt;
Sollte ein Parameter mit null oder leer (&amp;quot;&amp;quot;) belegt sein, so wird dieser ignoriert.&lt;br /&gt;
&lt;br /&gt;
== Wo ist der Logger zu finden? ==&lt;br /&gt;
&lt;br /&gt;
Der Logger ist Bestandteil des Jar-Files &amp;quot;tools&amp;quot;, dass auch noch den ConfigManager beherbergt.&lt;br /&gt;
Das Paket ist mit einer Classpath Variable bereits in unserem Projekt eingebunden.&lt;br /&gt;
Er kann einfach mit Logger.xx (xx für die entsprechende Methode) benutzt werden. Wobei aufgepasst werden muss dass auch unser Logger verwendet wird (Auswahlliste in Eclipse). Da der Logger statisch ist muss nichts initialisiert werden. Es sollte aber das LogLevel nur an einer zentralen Stelle geändert werden (z.b. gleich in der Starter--&amp;gt;main)&lt;br /&gt;
&lt;br /&gt;
Der Logger benutzt Standardmäßig das LogLevel INFO&lt;/div&gt;</summary>
		<author><name>Chge</name></author>	</entry>

	<entry>
		<id>https://www.p-servus.net/mediawiki/index.php?title=Technische_Konzepte:_Logger</id>
		<title>Technische Konzepte: Logger</title>
		<link rel="alternate" type="text/html" href="https://www.p-servus.net/mediawiki/index.php?title=Technische_Konzepte:_Logger"/>
				<updated>2012-05-02T09:31:37Z</updated>
		
		<summary type="html">&lt;p&gt;Chge: /* Einleitung */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Einleitung ==&lt;br /&gt;
&lt;br /&gt;
Für diverse Stellen in einem Programm muss es möglich sein bestimmte Schritte zu loggen. Das heißt konkret es werden Informationen, in welcher Form auch immer, gespeichert und protokolliert.&lt;br /&gt;
Welche Informationen und wieviel protokolliert wird, legt ein sogenannter LogLevel fest. Beim Entwicklen soll z.B. möglichst viel geloggt werden, im echten Betrieb nur wichtige Fehler.&lt;br /&gt;
&lt;br /&gt;
== LogLevel ==&lt;br /&gt;
&lt;br /&gt;
Für unser relativ kleines Projekt sind, denke ich, nicht viele LogLevel notwendig.&lt;br /&gt;
* Debug&lt;br /&gt;
Das DebugLevel ist für Meldungen gedacht die eher zum Programmablauf gedacht sind, um zu verstehen wie ein Fehler auftreten kann. Es muss hier also kein konkreter Fehler direkt damit in Verbindung stehen.&lt;br /&gt;
* Info&lt;br /&gt;
Das Info-Level ist für Informationen gedacht, die auch eher den Programmablauf protokollieren, aber auch für den Anwender von Bedeutung sind. (Z.b. irgendwelche Verzweigungen, die zwar unvorhergesehen sind, das Programm aber durchaus weiterlaufenn kann --&amp;gt; Eine Variable kann nicht gelesen werden, es wird eine StandardVariable benutzt)&lt;br /&gt;
Das Info-Level ist standardmäßig eingestellt!&lt;br /&gt;
* Error&lt;br /&gt;
Wird ein Error geloggt, dann handelt es sich um einen kritischen Fehler, das Programm (oder die gerade benutzte Funktion) kann so nicht weiter benutzt werden. Ein Error manifestiert sich außerdem zusätzlich in einem Fehlerfenster, das dem Nutzer angezeigt wird. (Z.b. damit nicht einfach das Programm ohne Fehlermeldung abschmiert!)&lt;br /&gt;
&lt;br /&gt;
== Auf welche Arten wird geloggt? ==&lt;br /&gt;
&lt;br /&gt;
Der Logger gibt einerseits eine Meldung an die Konsole und außerdem wird ein Log-File erstellt.&lt;br /&gt;
Im besonders kritischen Fall wird außerdem ein GUI-Error-Fenster angezeigt, dass dem Nutzer den Fehler direkt präsentiert.&lt;br /&gt;
&lt;br /&gt;
An dieser Stelle soll nochmal betont werden, dass wirklich nur geloggt wird wenn das LogLevel stimmt. Das LogLevel muss mindestens genauso &amp;quot;schlimm&amp;quot; sein oder noch &amp;quot;schlimmer&amp;quot; als das, was im Logger eingestellt ist.&lt;br /&gt;
&lt;br /&gt;
Das LogLevel kann im laufenden Betrieb geändert werden.&lt;br /&gt;
&lt;br /&gt;
== Welche Methoden stellt der Logger bereit? ==&lt;br /&gt;
&lt;br /&gt;
Es gibt zum einen verschiedene Methoden um z.B. das LogLevel zu ändern oder den Dateipfad für die LogDatei.&lt;br /&gt;
&lt;br /&gt;
Viel wichtiger sind die beiden Methoden zum eigentlichen loggen.&lt;br /&gt;
Zum einen gibt es die Methode &amp;quot;log&amp;quot; mit 2 Parametern. Wird diese Methode verwendet wird nur das LogLevel benötigt für das diese LogNachricht bestimmt ist und mit dem zweiten Parameter wird die eigentliche LogMessage angegeben. &lt;br /&gt;
&lt;br /&gt;
Über diese Methode hinaus gibt es die Methode &amp;quot;log&amp;quot; mit insgesamt 5 Parametern. Diese enthält die beiden, wie sie eben beschrieben wurden und zusätzlich verschiedene Angaben, die die Meldung näher spezifizieren. Es kann ein bestimmter &amp;quot;Header&amp;quot; für die Error Nachricht angegeben werden, die dem User Grafisch bei einem Error präsentiert wird. Es kann ein Klassenname (als String) und eine Exception als Objekt übergeben werden.&lt;br /&gt;
Sollte ein Parameter mit null oder leer (&amp;quot;&amp;quot;) belegt sein, so wird dieser ignoriert.&lt;br /&gt;
&lt;br /&gt;
== Wo ist der Logger zu finden? ==&lt;br /&gt;
&lt;br /&gt;
Der Logger ist Bestandteil des Jar-Files &amp;quot;tools&amp;quot;, dass auch noch den ConfigManager beherbergt.&lt;br /&gt;
Das Paket ist mit einer Classpath Variable bereits in unserem Projekt eingebunden.&lt;br /&gt;
Er kann einfach mit Logger.xx (xx für die entsprechende Methode) benutzt werden. Wobei aufgepasst werden muss dass auch unser Logger verwendet wird (Auswahlliste in Eclipse). Da der Logger statisch ist muss nichts initialisiert werden. Es sollte aber das LogLevel nur an einer zentralen Stelle geändert werden (z.b. gleich in der Starter--&amp;gt;main)&lt;br /&gt;
&lt;br /&gt;
Der Logger benutzt Standardmäßig das LogLevel INFO&lt;/div&gt;</summary>
		<author><name>Chge</name></author>	</entry>

	<entry>
		<id>https://www.p-servus.net/mediawiki/index.php?title=Optimaler_Entscheidungsbaum:_Kurze_Einf%C3%BChrung</id>
		<title>Optimaler Entscheidungsbaum: Kurze Einführung</title>
		<link rel="alternate" type="text/html" href="https://www.p-servus.net/mediawiki/index.php?title=Optimaler_Entscheidungsbaum:_Kurze_Einf%C3%BChrung"/>
				<updated>2012-05-02T09:29:46Z</updated>
		
		<summary type="html">&lt;p&gt;Chge: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ein Ziel von Entscheidungsbäumen ist, aus vorhandenen Daten Regeln abzuleiten, mit denen man Voraussagen treffen kann. Somit findet sich das Thema der Entscheidungsbäume in unzähligen Bereichen wieder. Um nur einige zu nennen: Entscheidungsbäume spielen eine Rolle in der Stochastik zur Veranschaulichung von Wahrscheinlichkeiten, im Maschinellen Lernen zur automatischen Klassifikation von Objekten, im Datamining, der Entscheidungstheorie, sowie der Medizin.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Ein oft zitiertes Beispiel kommt aus dem Investmentbanking, bei dem Entscheidungsbäume nach maximaler Gewinnausschüttung optimiert werden:&lt;br /&gt;
[[Datei:Investment decision Insight.png|800px|center|Investment decision]]&lt;br /&gt;
&lt;br /&gt;
Wenn eine Menge von Datenobjekten gegeben wird, kann man durch die Anwendung von Entscheidungsbäumen diese Datenobjekte automatisiert klassifizieren. Ein Entscheidungsbaum besteht dabei aus einem Wurzelknoten und beliebig vielen inneren Knoten, sowieso mindestens zwei Blättern.&lt;br /&gt;
Jeder Knoten repräsentiert eine logische Regel und jedes Blatt eine Antwort auf das Entscheidungsproblem.&lt;br /&gt;
Die Komplexität und Semantik der Regeln sind in keiner Weise beschränkt.&lt;br /&gt;
&lt;br /&gt;
Somit lassen sich mit Entscheidungsbäumen aus einem Wust von scheinbar unabhängigen Daten logisch zusammenhängende Daten mit Wahrscheinlichkeiten zur Entscheidungsfindung bilden.&lt;/div&gt;</summary>
		<author><name>Chge</name></author>	</entry>

	<entry>
		<id>https://www.p-servus.net/mediawiki/index.php?title=Optimaler_Entscheidungsbaum:_Kurze_Einf%C3%BChrung</id>
		<title>Optimaler Entscheidungsbaum: Kurze Einführung</title>
		<link rel="alternate" type="text/html" href="https://www.p-servus.net/mediawiki/index.php?title=Optimaler_Entscheidungsbaum:_Kurze_Einf%C3%BChrung"/>
				<updated>2012-05-02T09:28:14Z</updated>
		
		<summary type="html">&lt;p&gt;Chge: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ein Ziel von Entscheidungsbäumen ist, aus vorhandenen Daten Regeln abzuleiten, mit denen man Voraussagen treffen kann. Somit findet sich das Thema der Entscheidungsbäume in unzähligen Bereichen wieder. Um nur einige zu nennen: Entscheidungsbäume spielen eine Rolle in der Stochastik zur Veranschaulichung von Wahrscheinlichkeiten, im Maschinellen Lernen zur automatischen Klassifikation von Objekten, im Datamining, der Entscheidungstheorie, sowie der Medizin.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Ein oft zitiertes Beispiel kommt aus dem Investmentbanking, bei dem Entscheidungsbäume nach maximaler Gewinnausschüttung optimiert werden:&lt;br /&gt;
[[Datei:Investment decision Insight.png|800px|center|Investment decision]]&lt;br /&gt;
&lt;br /&gt;
Wenn eine Menge von Datenobjekten gegeben wird, kann man durch die Anwendung von Entscheidungsbäumen diese Datenobjekte automatisiert klassifizieren. Ein Entscheidungsbaum besteht dabei aus einem Wurzelknoten und beliebig vielen inneren Knoten, sowieso mindestens zwei Blätter.&lt;br /&gt;
Jeder Knoten repräsentiert eine logische Regel und jedes Blatt eine Antwort auf das Entscheidungsproblem.&lt;br /&gt;
Die Komplexität und Semantik der Regeln sind in keiner Weise beschränkt.&lt;br /&gt;
&lt;br /&gt;
Somit lassen sich mit Entscheidungsbäumen aus einem Wust von scheinbar unabhängigen Daten logisch zusammenhängende Daten mit Wahrscheinlichkeiten zur Entscheidungsfindung bilden.&lt;/div&gt;</summary>
		<author><name>Chge</name></author>	</entry>

	<entry>
		<id>https://www.p-servus.net/mediawiki/index.php?title=Optimaler_Entscheidungsbaum:_Pflichtenheft</id>
		<title>Optimaler Entscheidungsbaum: Pflichtenheft</title>
		<link rel="alternate" type="text/html" href="https://www.p-servus.net/mediawiki/index.php?title=Optimaler_Entscheidungsbaum:_Pflichtenheft"/>
				<updated>2012-05-02T09:26:29Z</updated>
		
		<summary type="html">&lt;p&gt;Chge: /* Hardware */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Über ==&lt;br /&gt;
Projekt: Optimaler Entscheidungsbaum &amp;lt;br /&amp;gt;&lt;br /&gt;
Autoren: Christian Gebauer, Sebastian Große, Jonathan Wiens, Benjamin Pfeiffer, Nico Smeenk &amp;lt;br /&amp;gt;&lt;br /&gt;
Modul: Software-Engineering II &amp;lt;br /&amp;gt;&lt;br /&gt;
Studiengang: Informatik 2010 &amp;lt;br /&amp;gt;&lt;br /&gt;
Fachbereich: Fachbereich 2, Duales Studium Wirtschaft • Technik, HWR Berlin &amp;lt;br /&amp;gt;&lt;br /&gt;
Datum:&lt;br /&gt;
&lt;br /&gt;
== Vorwort ==&lt;br /&gt;
Dieses Pflichtenheft ist eine Vereinbarung zwischen der Dozentin Frau Prof. Dr. Monett Diaz als Auftraggeberin und der Gruppe 1 des Kurses &amp;quot;Software-Engineering II&amp;quot; aus dem Studiengang &amp;quot;Informatik 2010&amp;quot;. Die Vereinbarung enthält alle Anforderungen an ein zu erstellendes Chat-Programm für die Hochschule für Wirtschaft und Recht Berlin. Das Dokument dient zur Strukturierung und genaueren Einschätzung des zeitlichen Aufwandes des Projektes und der Priorisierung der einzelnen Module. Somit lässt sich auch einschätzen, ob und mit welchen Kosten das Projekt durchführbar ist.&lt;br /&gt;
=== Erwartete Leserschaft ===&lt;br /&gt;
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.&lt;br /&gt;
=== Versionsgeschichte des Dokumentes ===&lt;br /&gt;
Dies ist die erste Version des Pflichtenheftes, weitere Versionen sind noch nicht in Planung.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
=== Allgemeines ===&lt;br /&gt;
Ein Entscheidungsbaum ist ein speziell aufgebauter Baum aus der Graphentheorie. Im Gegensatz zu einem &amp;quot;normalen&amp;quot; Baum ist ein Entscheidungsbaum geordnet und gerichtet und dient dem Zweck Entscheidungsregeln darzustellen. Ein Entscheidungsbaum kann durch Algorithmen auf Basis von tabellarischen Daten erstellt werden. Aufgrund der Tatsache, dass diese Bäume Entscheidungsprobleme lösen  bzw. vereinfachen können, wird diese Methode in vielen Bereichen angewandt. Hauptsächlich benutzt, wird ein Entscheidungsbaum beim Data-Mining, also der umfassenden Theroie der Datenauswertung; aber auch in der Betriebswirtschaftslehre, um effektives Marketing zu betreiben, oder Investment-Geschäfte zu bewerten. Darüber hinaus gibt es viele denkbare Einsatzbereiche, da Entscheidungen fast überall getroffen werden müssen.&lt;br /&gt;
&lt;br /&gt;
Ein Entscheidungsbaum besteht aus Knoten und Blättern. Er muss einen Wurzelknoten besitzen und wird durch Kanten verbunden.&lt;br /&gt;
Ein Knoten repräsentiert ein(en) Attribut(-namen), Kanten die zulässigen Attributwerte und die Blätter zeigen die Attributwerte (meistens klassifiziert) des Zielattributs an.&lt;br /&gt;
&lt;br /&gt;
In diesem Pflichtenheft wird nun ein Programm beschrieben, dass einen Entscheidungsbaum auf Basis einer Tabelle konstruieren kann. Dieses Programm ist als Auftragsarbeit von Hr. Prof. Dr. Höhne und Fr. Prof. Dr. Monett-Diaz zu sehen, bestimmte Funtktionen und Kriterien sind bereits vorgegeben.&lt;br /&gt;
=== Abgrenzungen ===&lt;br /&gt;
==== Ausgangssituation ====&lt;br /&gt;
Im Auftrag von Hr. Prof. Dr. Höhne und Fr. Prof. Dr. Monett-Diaz wird ein Programm, im Rahmen des Moduls SWE-2, entwickelt, welches dazu dienen soll Entscheidungsbäume zu konstruieren und darzustellen. Als Datenbasis dienen Excel- und CSV-Dateien.&lt;br /&gt;
Mit Hilfe dieser Daten soll dann ein &amp;quot;optimaler Entscheidungsbaum&amp;quot; aufgebaut werden, wobei zu beachten ist, dass der Begriff &amp;quot;optimal&amp;quot; nur relativ gesehen werden kann, und abhängig vom gewählten Algorhitmus und der Art des Datenbestandes ist.&lt;br /&gt;
&lt;br /&gt;
=== Systemname ===&lt;br /&gt;
Aufgrund der Tatsache, dass ein Entscheidungsbaum nach bestimmten Regeln ''aufgebaut'' wird und der Anwender einen ''Lerneffekt'' aus diesem Baum ziehen kann, in dem Entscheidungen vereinfacht werden, wurde beschlossen das Projekt und das Programm &amp;quot;Baumschule - Optimale Entscheidungsbäume&amp;quot; zu nennen. &lt;br /&gt;
==== Allgemeine Systembeschreibung ====&lt;br /&gt;
Das System bzw. das Programm bietet hauptsächlich drei grobe Funtkionen an:&lt;br /&gt;
* Laden/Editieren eines Datenbestands durch eine Datei (Excel bzw. CSV)&lt;br /&gt;
* Erstellen eines Entscheidungsbaumes durch einen gegebenen Algorithmus, oder einer Nutzervorgabe&lt;br /&gt;
* Präsentation des Ergebnisses&lt;br /&gt;
&lt;br /&gt;
Diese 3 Hauptfunktionen lassen sich näher beschreiben:&lt;br /&gt;
* Es gibt eine graphische Benutzeroberfläche mit der der Endandwender alle Funktionen des Programms benutzen kann&lt;br /&gt;
* Es gibt eine Funktion zum Laden/Speichern einer Excel- oder CSV-Datei&lt;br /&gt;
* Geladene Tabellendaten können editiert werden.&lt;br /&gt;
* Ein Baum kann automatisch generiert werden, ein ZielAttribut kann vorher gewählt werden.&lt;br /&gt;
* Ein Baum kann teilweise manuell erstellt werden, in dem für jeden Knoten die nächste Attributebene selbst gewählt werden kann.&lt;br /&gt;
* Es können jederzeit detaillierte Informationen über einen Baum bzw. dessen Tabellendaten angezeigt werden.&lt;br /&gt;
&lt;br /&gt;
==== Vorteile und Nutzen ====&lt;br /&gt;
&lt;br /&gt;
Das System bietet die Bearbeitung eines Datenbestandes an und arbeitet nach dem Laden einer Datei formatunabhängig. Ist ein Datenbestand bearbeitet worden, ist dieser auch wieder exportierbar.&lt;br /&gt;
Die Oberfläche bietet die Möglichkeit einen, gemäß des Algorithmus, optimalen Baumes darzustellen. Die Stärke liegt hierbei einerseits auf der Präsentation und andererseits bei der leichten Editierbarkeit, denn der Baum kann einfach durch Mausklicks bearbeitet und untersucht werden. Ein manuelles zeichnen und berechnen des Baumes entfällt. &lt;br /&gt;
Gerade bei großen Daten ist ein Baum nur durch ein Programm wie dieses erstellbar. Arbeitet der Algorithmus fehlerfrei, kann ''immer wieder'' und ''reproduzierbar'' ein Baum aufgebaut werden.&lt;br /&gt;
&lt;br /&gt;
=== Überblick über den Rest des Dokuments ===&lt;br /&gt;
&lt;br /&gt;
Die nachfolgenden Abschnitte befassen sich detaillierter und gründlicher mit den Funktionen des Programms. Es werden Vereinbarungen festgelegt, welches Verhalten das Programm leisten kann und muss.&lt;br /&gt;
&lt;br /&gt;
== Fachbegriffe, Akronyme und Abkürzungen ==&lt;br /&gt;
&amp;lt;b&amp;gt;Dieser Teil soll die im Dokument verwendeten technischen Fachbergriffe festlegen. Dabei soll keine Erfahrung oder Fachwissen beim Leser vorausgesetzt werden.&amp;lt;/b&amp;gt;&lt;br /&gt;
=== Glossar ===&lt;br /&gt;
=== Akronyme ===&lt;br /&gt;
=== Abkürzungen ===&lt;br /&gt;
&lt;br /&gt;
== Zielbestimmungen ==&lt;br /&gt;
=== Musskriterien ===&lt;br /&gt;
Die Muss-Kritierien ergeben sich größtenteils aus der Aufgabenbeschreibung von Hr. Höhne und Fr. Monett-Diaz:&lt;br /&gt;
* Es muss eine graphische Benutzeroberfläche geben.&lt;br /&gt;
* Das Programm muss lauffähig sein und ausführbar vorliegen.&lt;br /&gt;
* Das Programm muss mit Tabellen-Dateien umgehen können. (Laden/Speichern von Excel- und CSV-Dateien)&lt;br /&gt;
* Das Programm muss ein Bearbeiten der Tabellendaten zulassen.&lt;br /&gt;
* Das Programm muss anhand eines vorgegebenen Algorithmus (''Konzept der Entropie'') einen Entscheidungsbaum erstellen können.&lt;br /&gt;
* Das Programm muss eine Möglichkeit bieten den Baum, durch Auswahl des nächsten Attributs, teilweise manuell aufzubauen.&lt;br /&gt;
* Der Entscheidungsbaum muss in der Oberfläche präsentiert werden und die Parameter (wie z.B. die Entropie) anzeigen können.&lt;br /&gt;
&lt;br /&gt;
=== Sollkriterien ===&lt;br /&gt;
* Das Programm soll an den wichtigen Stellen durchdachte Hilfebeschreibungen anzeigen können.&lt;br /&gt;
* Das Programm soll bei bestimmten Fehlern oder unerlaubten Nutzeraktionen eine graphische Fehlermeldung anzeigen.&lt;br /&gt;
* Das Programm soll zum Nachverfolgen von Programm-Algorithmen und -Abläufen eine Log-Datei erstellen.&lt;br /&gt;
* Das Log-Verhalten soll konfigurierbar sein.&lt;br /&gt;
* Die Oberfläche soll farblich und organisaorisch übersichtlich und leicht zu bedienen sein.&lt;br /&gt;
* Das Erstellen eines Baumes soll nicht länger als 5 Sekunden dauern. (Vorrausgesetzt das Datenlimit von 10*100 Attributwerten wird eingehalten)&lt;br /&gt;
* Die Oberfläche soll neben der einfachen Ansicht einen Präsentationsmodus bieten, in dem der Baum als Vollbild dargestellt wird.&lt;br /&gt;
&lt;br /&gt;
=== Kannkriterien ===&lt;br /&gt;
* Das Programm kann die Möglichkeit bieten, über eine Konfigurationsschnittstelle verschiedene Programmparameter anzupassen.&lt;br /&gt;
* Das Programm kann die Möglichkeit bieten, den erstellten Baum als Text-Datei abzuspeichern.&lt;br /&gt;
&lt;br /&gt;
=== Abgrenzungskriterien ===&lt;br /&gt;
&lt;br /&gt;
* Die Software setzt eine installierte Version von Java voraus.&lt;br /&gt;
* Es gibt für jedes Betriebssystem (Windows, Linux, Mac) und dessen Ausprägung (x64, x32) jeweils eine Version.&lt;br /&gt;
* Die Software kann nur mit Datenformaten umgehen, die Excel-Konform sind- (bis 2003: .xls, ab 2007: .xlsx) oder dem CSV-Format entsprechen (Trennzeichen: &amp;quot;,&amp;quot; (Ausgesprochen: Komma)&lt;br /&gt;
* Die Software benutzt einen fest vorgegebenen Algorithmus (''Konzept der Entropie'').&lt;br /&gt;
* Die Tabelle kann maximal 10 Attribute und jeweils 100 Attributwerte enthalten und darf innerhalb der Tabellengrenzen keine leeren Zellenwerte (leere Strings) enthalten.&lt;br /&gt;
&lt;br /&gt;
== Systemeinsatz ==&lt;br /&gt;
=== Anwendungsbereiche === &lt;br /&gt;
=== Zielgruppen === &lt;br /&gt;
=== Betriebsbedingungen === &lt;br /&gt;
&lt;br /&gt;
== Technische Systemumgebung ==&lt;br /&gt;
=== Software === &lt;br /&gt;
=== Hardware === &lt;br /&gt;
=== Orgware === &lt;br /&gt;
&lt;br /&gt;
== Systemübersicht und -architektur ==&lt;br /&gt;
=== Übersicht über das System === &lt;br /&gt;
=== Systemarchitektur === &lt;br /&gt;
&amp;lt;b&amp;gt;Dieses Kapitel sollte einen groben Überblick über die erwartete Systemarchitektur geben, der die Verteilung der Funktionen auf die Systemmodule zeigt. Wiederverwendete Komponenten sollten gekennzeichnet werden.&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Schnittstellen des Systems ===&lt;br /&gt;
&lt;br /&gt;
== Systemanforderungen ==&lt;br /&gt;
Das Programm soll den Argorithmus, einen optimalen Entscheidungsbaum zu finden, demonstrieren.&lt;br /&gt;
=== Funktionale Anforderungen ===&lt;br /&gt;
* Das Programm soll unter allen gängigen Windows-Betriebssystemen ohne Installation lauffähig sein (Java darf vorrausgesetzt werden, sonst nichts spezielles).&lt;br /&gt;
==== Tabellenansicht ====&lt;br /&gt;
* Einlesen / Speichern einer Tabelle im .csv-Format (wobei das Trennzeichen ein Komma ist).&lt;br /&gt;
* Alle Attribute sind Zeichenketten.&lt;br /&gt;
* Eingeben / Editieren einer Tabelle muss möglich sein.&lt;br /&gt;
* Import und Export von Excel-Dateien.&lt;br /&gt;
&lt;br /&gt;
==== Baum automatisch ====&lt;br /&gt;
* Der optimale Entscheidungsbaum wird mit dem Algorithmus, der sukzessiv für jeden Knoten jeweils das Attribut mit der minimalen gewichteten Entropie auswählt, erzeugt und dargestellt.&lt;br /&gt;
* Wenn ein Knoten nur noch Objekte einer Klasse enthält, wird dieser nicht weiter aufgeteilt.&lt;br /&gt;
* Wenn ein Knoten nur noch eine bestimmte Anzahl (einstellbar - Voreinstellung 1) von Elementen enthält, wird nicht weiter aufgeteilt.&lt;br /&gt;
&lt;br /&gt;
=== Qualitätsanforderungen ===&lt;br /&gt;
=== Benutzeroberfläche ===&lt;br /&gt;
Weil das Programm auch für Präsentationszwecke eingesetzt werden soll, ist insbesondere auf eine entsprechende Gestaltung der Oberfläche (aussagekräftige Verwendung von Farben, ausreichend großer Schriftgrad, etc.) zu achten.&amp;lt;br&amp;gt;&lt;br /&gt;
Im Programm kann zwischen drei verschiedenen Ansichten hin- und hergeschalten werden, von denen stets genau eine sichtbar ist:&lt;br /&gt;
* Tabellenansicht&lt;br /&gt;
* Baum interaktiv&lt;br /&gt;
* Baum automatisch&lt;br /&gt;
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.&lt;br /&gt;
==== Tabellenansicht ====&lt;br /&gt;
* 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.&lt;br /&gt;
* (Farbliche) Markierung des Zielattributs.&lt;br /&gt;
&lt;br /&gt;
==== Baum interaktiv ====&lt;br /&gt;
* Zu Beginn wird nur der oberste Knoten (also der, der allen Objekten in der Tabelle entspricht) dargestellt.&lt;br /&gt;
* Das gilt ebenso, wenn in der Tabellenansicht ein Attribut hinzugefügt oder gelöscht oder das Zielattribut geändert wird.&lt;br /&gt;
* In jedem Knoten ist die Zahl der enthaltenden Objekte, die Zahl der Objekte jeder Klasse und die Entropie angegeben.&lt;br /&gt;
* Die Kanten sind mit dem entsprechenden Attributwert markiert.&lt;br /&gt;
* Bei Identifikation eines Knotens des Baumes wird eine Tabelle mit den Objekten, die von diesem Knoten repräsentiert werden, dargestellt.&lt;br /&gt;
* Wird in dieser Tabelle ein Attribut identifiziert, wird die gewichtete Entropie, die sich bei Aufteilung nach diesem Attribut ergeben würde, ausgegeben.&lt;br /&gt;
* In dieser Tabelle kann ein Attribut selektiert werden, so dass entsprechend den Werten dieses Attributes Unterknoten entstehen. Die Tabelle verschwindet. Hatte der Knoten schon Unterknoten, verschwinden diese natürlich ebenfalls.&lt;br /&gt;
&lt;br /&gt;
==== Baum automatisch ====&lt;br /&gt;
* In jedem Knoten ist die Zahl der enthaltenden Objekte, die Zahl der Objekte jeder Klasse und die Entropie automatisch dargestellt.&lt;br /&gt;
* Die Kanten sind mit dem entsprechenden Attributwert markiert.&lt;br /&gt;
* Bei Identifikation eines Knotens des Baumes wird eine Tabelle mit den Objekten, die von diesem Knoten repräsentiert werden, dargestellt.&lt;br /&gt;
&lt;br /&gt;
=== Andere nicht-funktionale Anforderungen ===&lt;br /&gt;
&lt;br /&gt;
== Systemmodelle ==&lt;br /&gt;
&amp;lt;b&amp;gt;Dieses Kapitel sollte eines oder mehrere Systemmodelle festlegen, die die Beziehung zwischen den Systemkomponenten und dem System und seiner Umgebung aufzeigen. Dies können Objekt-, Datenfluss- und semantische Datenmodelle sein.&amp;lt;/b&amp;gt;&lt;br /&gt;
=== Datenmodelle === &lt;br /&gt;
=== Andere Modelle === &lt;br /&gt;
&lt;br /&gt;
== Anforderungen an die Entwicklungsumgebung ==&lt;br /&gt;
Die hier genannten Aspekte werden für die qualitative Entwicklung der Software benötigt.&lt;br /&gt;
=== Software ===&lt;br /&gt;
Das Betriebssystem spielt keine Rolle, da Eclipse und Java Plattformunabhängig ist.&lt;br /&gt;
*Die Software &amp;quot;Eclipse&amp;quot; zur Programmierung mit Java wird benötigt. Hinzu kommt das Eclipse PlugIn &amp;quot;subversive&amp;quot; zur Handhabung der Versionsverwaltung&lt;br /&gt;
*Eine aktuelle Java-Developer-Version (jdk) wird zur Kompilierung benötigt. Außerdem werden folgende externe Bibliotheken benötigt:&lt;br /&gt;
** &amp;quot;dom4j&amp;quot;, &amp;quot;poi&amp;quot; zur Konvertierung und Erstellung von Excel-Spreadsheet Tabellen&lt;br /&gt;
** &amp;quot;swt&amp;quot;, das genutzte Framework zur Erstellung der grafischen Benutzeroberfläche&lt;br /&gt;
** &amp;quot;xmlbeans&amp;quot; zur Erstellung und Lesen von XML-Dateien&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
Für die verwendete Hardware sollten mindestens 2 GB Arbeitsspeicher verfügbar sein, um ein flüssiges Abarbeiten und Darstellen der relevanten Inhalte zu gewährleisten.&lt;br /&gt;
&lt;br /&gt;
=== Orgware ===&lt;br /&gt;
Vorrangig geschah die Kommunikation im Team über E-Mail Nachrichten und Kurzmitteilungen. Hier wurde beispielsweise Skype intensiv genutzt.&lt;br /&gt;
&lt;br /&gt;
== Ergänzungen ==&lt;br /&gt;
&lt;br /&gt;
== Anhang ==&lt;/div&gt;</summary>
		<author><name>Chge</name></author>	</entry>

	<entry>
		<id>https://www.p-servus.net/mediawiki/index.php?title=Optimaler_Entscheidungsbaum:_Pflichtenheft</id>
		<title>Optimaler Entscheidungsbaum: Pflichtenheft</title>
		<link rel="alternate" type="text/html" href="https://www.p-servus.net/mediawiki/index.php?title=Optimaler_Entscheidungsbaum:_Pflichtenheft"/>
				<updated>2012-05-02T09:26:12Z</updated>
		
		<summary type="html">&lt;p&gt;Chge: /* Hardware */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Über ==&lt;br /&gt;
Projekt: Optimaler Entscheidungsbaum &amp;lt;br /&amp;gt;&lt;br /&gt;
Autoren: Christian Gebauer, Sebastian Große, Jonathan Wiens, Benjamin Pfeiffer, Nico Smeenk &amp;lt;br /&amp;gt;&lt;br /&gt;
Modul: Software-Engineering II &amp;lt;br /&amp;gt;&lt;br /&gt;
Studiengang: Informatik 2010 &amp;lt;br /&amp;gt;&lt;br /&gt;
Fachbereich: Fachbereich 2, Duales Studium Wirtschaft • Technik, HWR Berlin &amp;lt;br /&amp;gt;&lt;br /&gt;
Datum:&lt;br /&gt;
&lt;br /&gt;
== Vorwort ==&lt;br /&gt;
Dieses Pflichtenheft ist eine Vereinbarung zwischen der Dozentin Frau Prof. Dr. Monett Diaz als Auftraggeberin und der Gruppe 1 des Kurses &amp;quot;Software-Engineering II&amp;quot; aus dem Studiengang &amp;quot;Informatik 2010&amp;quot;. Die Vereinbarung enthält alle Anforderungen an ein zu erstellendes Chat-Programm für die Hochschule für Wirtschaft und Recht Berlin. Das Dokument dient zur Strukturierung und genaueren Einschätzung des zeitlichen Aufwandes des Projektes und der Priorisierung der einzelnen Module. Somit lässt sich auch einschätzen, ob und mit welchen Kosten das Projekt durchführbar ist.&lt;br /&gt;
=== Erwartete Leserschaft ===&lt;br /&gt;
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.&lt;br /&gt;
=== Versionsgeschichte des Dokumentes ===&lt;br /&gt;
Dies ist die erste Version des Pflichtenheftes, weitere Versionen sind noch nicht in Planung.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
=== Allgemeines ===&lt;br /&gt;
Ein Entscheidungsbaum ist ein speziell aufgebauter Baum aus der Graphentheorie. Im Gegensatz zu einem &amp;quot;normalen&amp;quot; Baum ist ein Entscheidungsbaum geordnet und gerichtet und dient dem Zweck Entscheidungsregeln darzustellen. Ein Entscheidungsbaum kann durch Algorithmen auf Basis von tabellarischen Daten erstellt werden. Aufgrund der Tatsache, dass diese Bäume Entscheidungsprobleme lösen  bzw. vereinfachen können, wird diese Methode in vielen Bereichen angewandt. Hauptsächlich benutzt, wird ein Entscheidungsbaum beim Data-Mining, also der umfassenden Theroie der Datenauswertung; aber auch in der Betriebswirtschaftslehre, um effektives Marketing zu betreiben, oder Investment-Geschäfte zu bewerten. Darüber hinaus gibt es viele denkbare Einsatzbereiche, da Entscheidungen fast überall getroffen werden müssen.&lt;br /&gt;
&lt;br /&gt;
Ein Entscheidungsbaum besteht aus Knoten und Blättern. Er muss einen Wurzelknoten besitzen und wird durch Kanten verbunden.&lt;br /&gt;
Ein Knoten repräsentiert ein(en) Attribut(-namen), Kanten die zulässigen Attributwerte und die Blätter zeigen die Attributwerte (meistens klassifiziert) des Zielattributs an.&lt;br /&gt;
&lt;br /&gt;
In diesem Pflichtenheft wird nun ein Programm beschrieben, dass einen Entscheidungsbaum auf Basis einer Tabelle konstruieren kann. Dieses Programm ist als Auftragsarbeit von Hr. Prof. Dr. Höhne und Fr. Prof. Dr. Monett-Diaz zu sehen, bestimmte Funtktionen und Kriterien sind bereits vorgegeben.&lt;br /&gt;
=== Abgrenzungen ===&lt;br /&gt;
==== Ausgangssituation ====&lt;br /&gt;
Im Auftrag von Hr. Prof. Dr. Höhne und Fr. Prof. Dr. Monett-Diaz wird ein Programm, im Rahmen des Moduls SWE-2, entwickelt, welches dazu dienen soll Entscheidungsbäume zu konstruieren und darzustellen. Als Datenbasis dienen Excel- und CSV-Dateien.&lt;br /&gt;
Mit Hilfe dieser Daten soll dann ein &amp;quot;optimaler Entscheidungsbaum&amp;quot; aufgebaut werden, wobei zu beachten ist, dass der Begriff &amp;quot;optimal&amp;quot; nur relativ gesehen werden kann, und abhängig vom gewählten Algorhitmus und der Art des Datenbestandes ist.&lt;br /&gt;
&lt;br /&gt;
=== Systemname ===&lt;br /&gt;
Aufgrund der Tatsache, dass ein Entscheidungsbaum nach bestimmten Regeln ''aufgebaut'' wird und der Anwender einen ''Lerneffekt'' aus diesem Baum ziehen kann, in dem Entscheidungen vereinfacht werden, wurde beschlossen das Projekt und das Programm &amp;quot;Baumschule - Optimale Entscheidungsbäume&amp;quot; zu nennen. &lt;br /&gt;
==== Allgemeine Systembeschreibung ====&lt;br /&gt;
Das System bzw. das Programm bietet hauptsächlich drei grobe Funtkionen an:&lt;br /&gt;
* Laden/Editieren eines Datenbestands durch eine Datei (Excel bzw. CSV)&lt;br /&gt;
* Erstellen eines Entscheidungsbaumes durch einen gegebenen Algorithmus, oder einer Nutzervorgabe&lt;br /&gt;
* Präsentation des Ergebnisses&lt;br /&gt;
&lt;br /&gt;
Diese 3 Hauptfunktionen lassen sich näher beschreiben:&lt;br /&gt;
* Es gibt eine graphische Benutzeroberfläche mit der der Endandwender alle Funktionen des Programms benutzen kann&lt;br /&gt;
* Es gibt eine Funktion zum Laden/Speichern einer Excel- oder CSV-Datei&lt;br /&gt;
* Geladene Tabellendaten können editiert werden.&lt;br /&gt;
* Ein Baum kann automatisch generiert werden, ein ZielAttribut kann vorher gewählt werden.&lt;br /&gt;
* Ein Baum kann teilweise manuell erstellt werden, in dem für jeden Knoten die nächste Attributebene selbst gewählt werden kann.&lt;br /&gt;
* Es können jederzeit detaillierte Informationen über einen Baum bzw. dessen Tabellendaten angezeigt werden.&lt;br /&gt;
&lt;br /&gt;
==== Vorteile und Nutzen ====&lt;br /&gt;
&lt;br /&gt;
Das System bietet die Bearbeitung eines Datenbestandes an und arbeitet nach dem Laden einer Datei formatunabhängig. Ist ein Datenbestand bearbeitet worden, ist dieser auch wieder exportierbar.&lt;br /&gt;
Die Oberfläche bietet die Möglichkeit einen, gemäß des Algorithmus, optimalen Baumes darzustellen. Die Stärke liegt hierbei einerseits auf der Präsentation und andererseits bei der leichten Editierbarkeit, denn der Baum kann einfach durch Mausklicks bearbeitet und untersucht werden. Ein manuelles zeichnen und berechnen des Baumes entfällt. &lt;br /&gt;
Gerade bei großen Daten ist ein Baum nur durch ein Programm wie dieses erstellbar. Arbeitet der Algorithmus fehlerfrei, kann ''immer wieder'' und ''reproduzierbar'' ein Baum aufgebaut werden.&lt;br /&gt;
&lt;br /&gt;
=== Überblick über den Rest des Dokuments ===&lt;br /&gt;
&lt;br /&gt;
Die nachfolgenden Abschnitte befassen sich detaillierter und gründlicher mit den Funktionen des Programms. Es werden Vereinbarungen festgelegt, welches Verhalten das Programm leisten kann und muss.&lt;br /&gt;
&lt;br /&gt;
== Fachbegriffe, Akronyme und Abkürzungen ==&lt;br /&gt;
&amp;lt;b&amp;gt;Dieser Teil soll die im Dokument verwendeten technischen Fachbergriffe festlegen. Dabei soll keine Erfahrung oder Fachwissen beim Leser vorausgesetzt werden.&amp;lt;/b&amp;gt;&lt;br /&gt;
=== Glossar ===&lt;br /&gt;
=== Akronyme ===&lt;br /&gt;
=== Abkürzungen ===&lt;br /&gt;
&lt;br /&gt;
== Zielbestimmungen ==&lt;br /&gt;
=== Musskriterien ===&lt;br /&gt;
Die Muss-Kritierien ergeben sich größtenteils aus der Aufgabenbeschreibung von Hr. Höhne und Fr. Monett-Diaz:&lt;br /&gt;
* Es muss eine graphische Benutzeroberfläche geben.&lt;br /&gt;
* Das Programm muss lauffähig sein und ausführbar vorliegen.&lt;br /&gt;
* Das Programm muss mit Tabellen-Dateien umgehen können. (Laden/Speichern von Excel- und CSV-Dateien)&lt;br /&gt;
* Das Programm muss ein Bearbeiten der Tabellendaten zulassen.&lt;br /&gt;
* Das Programm muss anhand eines vorgegebenen Algorithmus (''Konzept der Entropie'') einen Entscheidungsbaum erstellen können.&lt;br /&gt;
* Das Programm muss eine Möglichkeit bieten den Baum, durch Auswahl des nächsten Attributs, teilweise manuell aufzubauen.&lt;br /&gt;
* Der Entscheidungsbaum muss in der Oberfläche präsentiert werden und die Parameter (wie z.B. die Entropie) anzeigen können.&lt;br /&gt;
&lt;br /&gt;
=== Sollkriterien ===&lt;br /&gt;
* Das Programm soll an den wichtigen Stellen durchdachte Hilfebeschreibungen anzeigen können.&lt;br /&gt;
* Das Programm soll bei bestimmten Fehlern oder unerlaubten Nutzeraktionen eine graphische Fehlermeldung anzeigen.&lt;br /&gt;
* Das Programm soll zum Nachverfolgen von Programm-Algorithmen und -Abläufen eine Log-Datei erstellen.&lt;br /&gt;
* Das Log-Verhalten soll konfigurierbar sein.&lt;br /&gt;
* Die Oberfläche soll farblich und organisaorisch übersichtlich und leicht zu bedienen sein.&lt;br /&gt;
* Das Erstellen eines Baumes soll nicht länger als 5 Sekunden dauern. (Vorrausgesetzt das Datenlimit von 10*100 Attributwerten wird eingehalten)&lt;br /&gt;
* Die Oberfläche soll neben der einfachen Ansicht einen Präsentationsmodus bieten, in dem der Baum als Vollbild dargestellt wird.&lt;br /&gt;
&lt;br /&gt;
=== Kannkriterien ===&lt;br /&gt;
* Das Programm kann die Möglichkeit bieten, über eine Konfigurationsschnittstelle verschiedene Programmparameter anzupassen.&lt;br /&gt;
* Das Programm kann die Möglichkeit bieten, den erstellten Baum als Text-Datei abzuspeichern.&lt;br /&gt;
&lt;br /&gt;
=== Abgrenzungskriterien ===&lt;br /&gt;
&lt;br /&gt;
* Die Software setzt eine installierte Version von Java voraus.&lt;br /&gt;
* Es gibt für jedes Betriebssystem (Windows, Linux, Mac) und dessen Ausprägung (x64, x32) jeweils eine Version.&lt;br /&gt;
* Die Software kann nur mit Datenformaten umgehen, die Excel-Konform sind- (bis 2003: .xls, ab 2007: .xlsx) oder dem CSV-Format entsprechen (Trennzeichen: &amp;quot;,&amp;quot; (Ausgesprochen: Komma)&lt;br /&gt;
* Die Software benutzt einen fest vorgegebenen Algorithmus (''Konzept der Entropie'').&lt;br /&gt;
* Die Tabelle kann maximal 10 Attribute und jeweils 100 Attributwerte enthalten und darf innerhalb der Tabellengrenzen keine leeren Zellenwerte (leere Strings) enthalten.&lt;br /&gt;
&lt;br /&gt;
== Systemeinsatz ==&lt;br /&gt;
=== Anwendungsbereiche === &lt;br /&gt;
=== Zielgruppen === &lt;br /&gt;
=== Betriebsbedingungen === &lt;br /&gt;
&lt;br /&gt;
== Technische Systemumgebung ==&lt;br /&gt;
=== Software === &lt;br /&gt;
=== Hardware === &lt;br /&gt;
=== Orgware === &lt;br /&gt;
&lt;br /&gt;
== Systemübersicht und -architektur ==&lt;br /&gt;
=== Übersicht über das System === &lt;br /&gt;
=== Systemarchitektur === &lt;br /&gt;
&amp;lt;b&amp;gt;Dieses Kapitel sollte einen groben Überblick über die erwartete Systemarchitektur geben, der die Verteilung der Funktionen auf die Systemmodule zeigt. Wiederverwendete Komponenten sollten gekennzeichnet werden.&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Schnittstellen des Systems ===&lt;br /&gt;
&lt;br /&gt;
== Systemanforderungen ==&lt;br /&gt;
Das Programm soll den Argorithmus, einen optimalen Entscheidungsbaum zu finden, demonstrieren.&lt;br /&gt;
=== Funktionale Anforderungen ===&lt;br /&gt;
* Das Programm soll unter allen gängigen Windows-Betriebssystemen ohne Installation lauffähig sein (Java darf vorrausgesetzt werden, sonst nichts spezielles).&lt;br /&gt;
==== Tabellenansicht ====&lt;br /&gt;
* Einlesen / Speichern einer Tabelle im .csv-Format (wobei das Trennzeichen ein Komma ist).&lt;br /&gt;
* Alle Attribute sind Zeichenketten.&lt;br /&gt;
* Eingeben / Editieren einer Tabelle muss möglich sein.&lt;br /&gt;
* Import und Export von Excel-Dateien.&lt;br /&gt;
&lt;br /&gt;
==== Baum automatisch ====&lt;br /&gt;
* Der optimale Entscheidungsbaum wird mit dem Algorithmus, der sukzessiv für jeden Knoten jeweils das Attribut mit der minimalen gewichteten Entropie auswählt, erzeugt und dargestellt.&lt;br /&gt;
* Wenn ein Knoten nur noch Objekte einer Klasse enthält, wird dieser nicht weiter aufgeteilt.&lt;br /&gt;
* Wenn ein Knoten nur noch eine bestimmte Anzahl (einstellbar - Voreinstellung 1) von Elementen enthält, wird nicht weiter aufgeteilt.&lt;br /&gt;
&lt;br /&gt;
=== Qualitätsanforderungen ===&lt;br /&gt;
=== Benutzeroberfläche ===&lt;br /&gt;
Weil das Programm auch für Präsentationszwecke eingesetzt werden soll, ist insbesondere auf eine entsprechende Gestaltung der Oberfläche (aussagekräftige Verwendung von Farben, ausreichend großer Schriftgrad, etc.) zu achten.&amp;lt;br&amp;gt;&lt;br /&gt;
Im Programm kann zwischen drei verschiedenen Ansichten hin- und hergeschalten werden, von denen stets genau eine sichtbar ist:&lt;br /&gt;
* Tabellenansicht&lt;br /&gt;
* Baum interaktiv&lt;br /&gt;
* Baum automatisch&lt;br /&gt;
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.&lt;br /&gt;
==== Tabellenansicht ====&lt;br /&gt;
* 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.&lt;br /&gt;
* (Farbliche) Markierung des Zielattributs.&lt;br /&gt;
&lt;br /&gt;
==== Baum interaktiv ====&lt;br /&gt;
* Zu Beginn wird nur der oberste Knoten (also der, der allen Objekten in der Tabelle entspricht) dargestellt.&lt;br /&gt;
* Das gilt ebenso, wenn in der Tabellenansicht ein Attribut hinzugefügt oder gelöscht oder das Zielattribut geändert wird.&lt;br /&gt;
* In jedem Knoten ist die Zahl der enthaltenden Objekte, die Zahl der Objekte jeder Klasse und die Entropie angegeben.&lt;br /&gt;
* Die Kanten sind mit dem entsprechenden Attributwert markiert.&lt;br /&gt;
* Bei Identifikation eines Knotens des Baumes wird eine Tabelle mit den Objekten, die von diesem Knoten repräsentiert werden, dargestellt.&lt;br /&gt;
* Wird in dieser Tabelle ein Attribut identifiziert, wird die gewichtete Entropie, die sich bei Aufteilung nach diesem Attribut ergeben würde, ausgegeben.&lt;br /&gt;
* In dieser Tabelle kann ein Attribut selektiert werden, so dass entsprechend den Werten dieses Attributes Unterknoten entstehen. Die Tabelle verschwindet. Hatte der Knoten schon Unterknoten, verschwinden diese natürlich ebenfalls.&lt;br /&gt;
&lt;br /&gt;
==== Baum automatisch ====&lt;br /&gt;
* In jedem Knoten ist die Zahl der enthaltenden Objekte, die Zahl der Objekte jeder Klasse und die Entropie automatisch dargestellt.&lt;br /&gt;
* Die Kanten sind mit dem entsprechenden Attributwert markiert.&lt;br /&gt;
* Bei Identifikation eines Knotens des Baumes wird eine Tabelle mit den Objekten, die von diesem Knoten repräsentiert werden, dargestellt.&lt;br /&gt;
&lt;br /&gt;
=== Andere nicht-funktionale Anforderungen ===&lt;br /&gt;
&lt;br /&gt;
== Systemmodelle ==&lt;br /&gt;
&amp;lt;b&amp;gt;Dieses Kapitel sollte eines oder mehrere Systemmodelle festlegen, die die Beziehung zwischen den Systemkomponenten und dem System und seiner Umgebung aufzeigen. Dies können Objekt-, Datenfluss- und semantische Datenmodelle sein.&amp;lt;/b&amp;gt;&lt;br /&gt;
=== Datenmodelle === &lt;br /&gt;
=== Andere Modelle === &lt;br /&gt;
&lt;br /&gt;
== Anforderungen an die Entwicklungsumgebung ==&lt;br /&gt;
Die hier genannten Aspekte werden für die qualitative Entwicklung der Software benötigt.&lt;br /&gt;
=== Software ===&lt;br /&gt;
Das Betriebssystem spielt keine Rolle, da Eclipse und Java Plattformunabhängig ist.&lt;br /&gt;
*Die Software &amp;quot;Eclipse&amp;quot; zur Programmierung mit Java wird benötigt. Hinzu kommt das Eclipse PlugIn &amp;quot;subversive&amp;quot; zur Handhabung der Versionsverwaltung&lt;br /&gt;
*Eine aktuelle Java-Developer-Version (jdk) wird zur Kompilierung benötigt. Außerdem werden folgende externe Bibliotheken benötigt:&lt;br /&gt;
** &amp;quot;dom4j&amp;quot;, &amp;quot;poi&amp;quot; zur Konvertierung und Erstellung von Excel-Spreadsheet Tabellen&lt;br /&gt;
** &amp;quot;swt&amp;quot;, das genutzte Framework zur Erstellung der grafischen Benutzeroberfläche&lt;br /&gt;
** &amp;quot;xmlbeans&amp;quot; zur Erstellung und Lesen von XML-Dateien&lt;br /&gt;
&lt;br /&gt;
=== Hardware ===&lt;br /&gt;
Für die verwendete Hardware sollten mindestens 2 GB Arbeitsspeicher verfügbar sein, um ein flüssiges Abarbeiten und Darstellen der relavanten Inhalte zu gewährleisten.&lt;br /&gt;
&lt;br /&gt;
=== Orgware ===&lt;br /&gt;
Vorrangig geschah die Kommunikation im Team über E-Mail Nachrichten und Kurzmitteilungen. Hier wurde beispielsweise Skype intensiv genutzt.&lt;br /&gt;
&lt;br /&gt;
== Ergänzungen ==&lt;br /&gt;
&lt;br /&gt;
== Anhang ==&lt;/div&gt;</summary>
		<author><name>Chge</name></author>	</entry>

	</feed>