Inhaltsverzeichnis

Transcription

Inhaltsverzeichnis
Werkzeuge_zur_GUI-Entwicklung_im_Vergleich
Fallstudienarbeit
Hochschule:
Hochschule für Oekonomie & Management
Standort:
Essen
Studiengang:
Bachelor Wirtschaftsinformatik
Veranstaltung:
Fallstudie / Wissenschaftliches Arbeiten
Betreuer:
Dipl-Inf._(FH)_Christian_Schäfer
Typ:
Fallstudienarbeit
Themengebiet:
GUI
Autor(en):
C. Schröter, A. Warmers
Studienzeitmodell:
Abendstudium
Semesterbezeichnung: SS11
Studiensemester:
2
Bearbeitungsstatus:
Bearbeitung abgeschlossen
Prüfungstermin:
Abgabetermin:
Hinweise für Studenten
Inhaltsverzeichnis
• 1 Einleitung und Vorgehensweise
• 2 Graphical User Interface
♦ 2.1 Definition
♦ 2.2 Geschichte
♦ 2.3 Anforderungen an ein
GUI
◊ 2.3.1 1.
Aufgabenangemessenheit
◊ 2.3.2 2.
Selbstbeschreibungsfähigkeit
◊ 2.3.3 3.
Erwartungskonformität
◊ 2.3.4 4.
Fehlertoleranz
◊ 2.3.5 5. Steuerbarkeit
◊ 2.3.6 6.
Individualisierbarkeit
◊ 2.3.7 7.
Lernförderlichkeit
♦ 2.4 GUI-Elemente
• 3 Geschichte der
Programmiersprachen
♦ 3.1 1. Generation
♦ 3.2 2. Generation
♦ 3.3 3. Generation
♦ 3.4 4. Generation
• 4 Bestandteile der GUI-Entwicklung
♦ 4.1 Editor
Inhaltsverzeichnis
1
Werkzeuge_zur_GUI-Entwicklung_im_Vergleich
♦ 4.2 Integrierte
Entwicklungsumgebung
(IDE)
◊ 4.2.1 Texteditor
◊ 4.2.2 Compiler
◊ 4.2.3 Linker
◊ 4.2.4 Debugger
◊ 4.2.5
Quelltextformatierer
◊ 4.2.6 GUI-Builder
♦ 4.3 Framework
◊ 4.3.1 Aufgabe
◊ 4.3.2 Funktionsweise
⋅ 4.3.2.1
White-Box
⋅ 4.3.2.2
Black-Box
◊ 4.3.3 Arten
⋅ 4.3.3.1
Application
Frameworks
⋅ 4.3.3.2
Domain
Frameworks
⋅ 4.3.3.3
Support
Frameworks
◊ 4.3.4 Vor- u.
Nachteile
♦ 4.4 Layoutmanager
• 5 Werkzeuge zur GUI-Entwicklung
♦ 5.1 NetBeans
◊ 5.1.1 Swing
◊ 5.1.2 Matisse
♦ 5.2 ECLIPSE
◊ 5.2.1 SWT
Framework
◊ 5.2.2 UI-BUILDER
◊ 5.2.3 Visual Editor
◊ 5.2.4 Jigloo
◊ 5.2.5
Matisse4MyEclipse
◊ 5.2.6 Übersicht der
GUI-Builer für
Eclipse
♦ 5.3 Qt
♦ 5.4 Microsoft Visual Studio
◊ 5.4.1 .Net
Framework
◊ 5.4.2 IDE und
Inhaltsverzeichnis
2
Werkzeuge_zur_GUI-Entwicklung_im_Vergleich
GUI-Designer
• 6 Ausblick
• 7 Abbildungsverzeichnis
• 8 Tabellenverzeichnis
• 9 Fußnoten
• 10 Literatur- und Quellenverzeichnis
1 Einleitung und Vorgehensweise
Im Laufe der Jahre wurden einige Werkzeuge zur Entwicklung grafischer Benutzeroberflächen entworfen. Im
Vordergrund steht hierbei natürlich die Verringerung der Komplexität hinsichtlich der Software-Entwicklung und
Anwendung. In dieser Hausarbeit werden wir versuchen einen Überblick über die grafische Benutzeroberfläche
und deren Editoren im Allgemeinen zu vermitteln, sowie konkret auf einzelne Editoren einzugehen und diese
miteinander zu vergleichen, um Gemeinsamkeiten, sowie Unterschiede zu ermitteln.
2 Graphical User Interface
2.1 Definition
Graphical User Interface [GUI] bedeutet übersetzt, grafische Benutzeroberfläche. Die GUI dient als Schnittstelle
zwischen Programm und Anwender.[1] Mit Hilfe von Icons, Eingabefeldern, Buttons und Fenstern, hat der
Benutzer die Möglichkeit, z.B. bei einer hinterlegten Datenbank Daten einzugeben, zu manipulieren, zu löschen
oder abzufragen. Der Anwender benötigt daher keinerlei Programmierkenntnisse und kann das Programm einzig
und allein mit der GUI bedienen.
Abbildung 1: GUI[2]
1 Einleitung und Vorgehensweise
3
Werkzeuge_zur_GUI-Entwicklung_im_Vergleich
2.2 Geschichte
Die ersten Annäherungen an eine GUI entstanden schon in den 60er Jahren. Douglas Engelbart entwickelte in
dieser Zeit bereits die erste Maus. Umgesetzt wurde die GUI zum ersten Mal dann Anfang der 80er Jahre vom
Kopiererhersteller Xerox PARC, die 1974 den Xerox Alto auf den Markt brachten. Bekannt wurde die GUI
allerdings erst durch Apple, die neue Ideen wie z.B. verschiebbare Icons oder Pull-down-Menüs umgesetzt haben.
Als Reaktion entwickelte Microsoft 1985 ihr erstes Betriebssystem ?Windows 1.0?. Die Entwicklung der GUI
nahm fortan ihren Lauf. Immer mehr Ideen und Verbesserungen flossen in die Konzeption mit ein und versuchen
bis heute dem Benutzer die Anwendung von Computern und Programmen zu erleichtern.[3]
2.3 Anforderungen an ein GUI
Die Anorderungen an eine GUI sind in der europäischen Norm EN ISO 9241 festgelegt. Deutsche Fassung:
?Ergonomische Anforderungen für Bürotätigkeiten mit Bildschirmgeräten Teil 10: Grundsätze der
Dialoggestaltung (ISO 9241-10 : 1995)?[4]
Nach dieser Norm müssen 7 Grundsätze der Dialoggestaltung stets beachtet werden:
2.3.1 1. Aufgabenangemessenheit
?Ein Dialog ist aufgabenangemessen, wenn er den Benutzer unterstützt, seine Arbeitsaufgabe effektiv und
effizient zu erledigen.?[4]
Im Beispiel einer konkreten Arbeitsanweisung bedeutet dies z.B., dass dem Benutzer nur die Informationen zur
Verfügung stehen sollen, die auch der Verwirklichung seiner Arbeit dienlich sind. Der Dialog soll so simple wie
möglich gehalten werden und keine unnötigen Arbeitsschritte enthalten.[5]
2.3.2 2. Selbstbeschreibungsfähigkeit
?Ein Dialog ist selbstbeschreibungsfähig, wenn jeder einzelne Dialogschritt durch Rückmeldung des
Dialogsystems unmittelbar verständlich ist oder dem Benutzer auf Anfrage erklärt wird.?[4]
Durch Rückmeldungen des Systems wie z.B. ?Änderungen wurden übernommen? oder ?Datensatz wird
gespeichert?, erhält der Anwender Informationen über Änderungen am System. Des Weiteren impliziert
Selbstbeschreibungsfähigkeit auch das Einbinden einer Begriffserklärung oder das eigenständige Anhängen von
Informationen an einen Datensatz, wie z.B. das Datum.[5]
2.3.3 3. Erwartungskonformität
?Ein Dialog ist erwartungskonform, wenn er konsistent ist und den Merkmalen des Benutzers entspricht, z.B. den
Kenntnissen aus dem Arbeitsgebiet, der Ausbildung und der Erfahrung des Benutzers sowie den allgemein
anerkannten Konventionen.?[4]
Erwartungskonform betrifft im eigentlichen die Einheitlichkeit des Dialoges. Sprich die Verwendung von
Fachbegriffen, Funktionen von Tasten und Buttons, Rückmeldungen vom System usw.[5]
2.2 Geschichte
4
Werkzeuge_zur_GUI-Entwicklung_im_Vergleich
2.3.4 4. Fehlertoleranz
?Ein Dialog ist fehlertolerant, wenn das beabsichtigte Arbeitsergebnis trotz erkennbar fehlerhafter Eingaben
entweder mit keinem oder mit minimalem Korrekturaufwand durch den Benutzer erreicht werden kann.?[4]
Durch Prüfung der Eingaben können schon unzulässige Eingaben vermieden werden. Es wird eine entsprechende
Rückmeldung vom System gegeben und auf den entsprechenden Fehler verwiesen. Ein zusätzlicher Punkt der
Fehlertoleranz kann beispielsweise eine Rechtschreibprüfung sein oder eine Anfrage an den Benutzer, ob die
ausgewählten Datensätze wirklich gelöscht werden sollen.[5]
2.3.5 5. Steuerbarkeit
?Ein Dialog ist steuerbar, wenn der Benutzer in der Lage ist, den Dialogablauf zu starten sowie seine Richtung
und Geschwindigkeit zu beeinflussen, bis das Ziel erreicht ist.?[4]
Beispiele für Steuerbarkeit eines Dialoges sind die Auswahl der Eingabegeräte (Maus oder Tastatur) und
Kurzwahltasten, die dem Benutzer ermöglichen, Arbeitsschritte zu überspringen oder zu verkürzen. Weiterhin
spricht man von Steuerbarkeit, wenn die Möglichkeit einer textlichen und bildlichen Darstellung einer Ausgabe
besteht. Der Zugriff auf bereits gelöschte Objekte ist hier als weiterer Punkt aufzuführen.[5]
2.3.6 6. Individualisierbarkeit
?Ein Dialog ist individualisierbar, wenn das Dialogsystem Anpassungen an die Erfordernisse der Arbeitsaufgabe,
individuelle Vorlieben des Benutzers und Benutzerfähigkeiten zuläßt.?[4]
Individualisierbarkeit ist mit Anpassungsfähigkeit gleichzusetzen. Das bedeutet der Anwender kann den Dialog
bzw. die Ausgabe seinen eigenen Wünschen anpassen. Somit können z.B. Schriftgröße und Schriftart, sowie
Farben oder Scrollgeschwindigkeiten verändert werden. Das Anpassen der Maus an die linke oder rechte Hand
zählt auch zur Individualisierbarkeit.[5]
2.3.7 7. Lernförderlichkeit
?Ein Dialog ist lernförderlich, wenn er dem Benutzer beim Erlernen des Dialogsystems unterstützt und
anleitet.?[4]
Lernförderlichkeit bedeutet, der Benutzer kann zusätzliche Informationen über die Anwendung abrufen. Er erhält
somit Hintergrundinformationen, die über den Dialog hinausgehen, z.B. hinsichtlich der hinterlegten Datenbank.
Des Weiteren sollen konkrete Beispiele das Konzept ?Learning-by-doing? ermöglichen. Der User kann an Hand
von Beispielen erkennen, was passiert, wenn er bestimmte Funktionen verwendet. Das verringert die Fehlerquote
und schult den Anwender.[5]
2.4 GUI-Elemente
GUI-Elemente werden zumeist über die Verwendung einer Maus oder einer Tastatur gesteuert und bedient. Aber
auch Touch-Screens rücken heutzutage immer mehr im Fokus der Bedienung von grafischen
Benutzeroberflächen.
2.3.4 4. Fehlertoleranz
5
Werkzeuge_zur_GUI-Entwicklung_im_Vergleich
Zu den gängigsten GUI-Elementen heute gehören Schaltflächen, Toolbars, Textfelder, Checkboxes, Radiobuttons,
Listenfelder, Dialogboxen und Symbole.
Schaltfläche: Schaltflächen sind Buttons mit einer i.d.R. hinterlegten Funktion. Ausgeführt werden diese durch
einen Mausklick oder Tastaturkürzel.[6]
Toolbar: Auch als Werkzeugleiste bekannt. Die Toolbar erweitert das Menü um eine Anreihung von
Schaltflächen, meistens waagerecht, bei denen häufig verwendete Funktionen hinterlegt sind z.B. Drucken oder
Speichern.[7]
Textfeld: Ein Steuerelement, das die Eingabe von Zeichensätzen (Buchstaben, Ziffern, Sonderzeichen, ?)
übergeben kann.[8]
Checkbox: Steuerelemente die dem Benutzer eine Mehrfachauswahl ermöglichen. Hier kann der Benutzer keins,
eins, mehrere oder alle Elemente auswählen.[9]
Radiobutton: Weitere Bezeichnung: Optionsfeld. Im Gegensatzzur Checkbox, kann hier keins oder nur ein
Optionsfeld aktiviert werden.[10]
Listenfeld: Ansammlung von Einträgen. Diese basieren meist auf schriftlicher Basis. Angezeigt wird die Liste
i.d.R. durch aktivieren des Steuerelementes mit einem Mausklick.[11]
Dialogboxen: Dialogboxen sind Fenster die dem Anwender begrenzte Eingabemöglichkeiten bieten. Hierzu
werden Schaltflächen, Textfelder oder Checkboxes verwendet.[12]
Symbole: Bildlich dargestellte Steuerelemente die meist durch einen Doppelklick mit der Maus ausgeführt
werden. Symbole können sein: ausführbare Exe-Dateien, Ordner, Dokumente usw.[13]
3 Geschichte der Programmiersprachen
3.1 1. Generation
Der Grund für das Entwickeln einer Programmiersprache war die Industrielle Revolution. Im 19. Jahrhundert
wurden immer mehr Maschinen entwickelt. Um diese maximal auslasten zu können, wurde gefordert, dass die
Maschinen auch wechselnde Tätigkeiten übernehmen können. Joseph-Marie Jacquard hatte die ersten
programmierbaren Webstühle in seine Werkstätten integriert. Diese Webstühle konnten alle möglichen Arten von
Muster herstellen. Die Lochstreifen der Webstühle wurden mit Nadeln abgetastet. So wurde entweder bei einem
Loch der Faden gehoben oder gesenkt. [14]
3.2 2. Generation
Die logische Programmierung hatte allerdings ihre Anfänge erst in den 30er Jahren des 20. Jahrhunderts. Die
Prozessoren arbeiten nur mit 2 Zuständen. Strom and und Strom aus. Das ist die Maschinensprache und die
Befehle wurden also binär mit 0 und 1 eingegeben. [14]
In Folge darauf wurden die ersten Assemblersprachen entwickelt. Hier können bereits die Befehle als
Buchstabencode eingegeben werden. Da sich die Assemblersprachen stark an die Maschine orientiert mussten
2.4 GUI-Elemente
6
Werkzeuge_zur_GUI-Entwicklung_im_Vergleich
diese Buchstabenkombinationen mit Hilfe von speziellen Compilern individuell umgeschrieben werden.
Mittlerweile konnte man schon diverse Werte in den Speicherplatz der CPU schreiben. [14]
3.3 3. Generation
Mit zunehmender Komplexität der zu erfüllenden Aufgaben, war schnell klar, dass Informatiker die
Programmiersprachen weiter entwickeln müssen. Einerseits sollen die Programme rechnerunabhängig eingesetzt
werden können. Andererseits soll keine Spezialkenntnis über die Rechner vorausgesetzt sein.[14]
Die erste so genannte Hochsprache war FORTRAN, gefolgt von LISP und COBOL. Im Laufe der Jahre
entwickelten sich dann weitere nicht so spezialisierte Programmiersprachen wie z.B. BASIC, C, PASCAL, C++,
JAVA oder HTML. [14]
3.4 4. Generation
Fourth Generation Language (4GL) bezeichnet die Kombination verschiedener Programmiersprachen und
Programmierumgebungen für die Dateneingabe, Datenabfrage oder Datenmanipulation. Hinzu kommt die
Berichterstellung sowie Formularerstellung. Die Benutzer sollen mit möglichst wenig Fachwissen Programme
schreiben können. Ein gutes Beispiel hierfür ist Structured Query Language (SQL). Der Benutzer muss lediglich
angeben welche Daten er haben will. Der Computer sucht die passenden Informationen entsprechend der Abfrage
selbstständig heraus.[14]
4 Bestandteile der GUI-Entwicklung
4.1 Editor
Definition: Ein Editor ist ein Programm aus der EDV und dient der Eingabe, Änderung und Aufbereitung von
Texten und Grafiken. [15]
Man unterscheidet zwischen Texteditor und Grafikeditor.
Texteditor: Sie dienen der grafischen Aufbereitung von Texten. Dies geschieht mit Hilfe von bereits
implementierten Funktionen, wie z.B. automatischen Umbrüchen oder Rechtschreibkorrektur. Unterstützte
Zeichensätze sind z.B. ASCII und der Unicode. [15]
Grafikeditor: Grafikeditoren werden zum Erstellen von Bildern und Grafiken verwendet. Eines der wohl
bekanntesten Grafikeditoren ist Microsoft Paint. Es eignet sich besonders gut zum Darstellen einfacher Formen
wie z.B. Linien, Kreise, Ovale, usw.[15]
4.2 Integrierte Entwicklungsumgebung (IDE)
IDE entstand aus der Idee, den Programmierern eine Reihe von Werkzeugen zur Software-Entwicklung durch
eine grafische Benutzeroberfläche zur Verfügung zu stellen. So sollten z.B. der Zugriff auf wiederkehrende
Funktionen handlicher und schneller gemacht werden.[16]
3.2 2. Generation
7
Werkzeuge_zur_GUI-Entwicklung_im_Vergleich
Die erste IDE wurde unter den Namen Maestro I von Softlab bekannt. ?Sie wurde insgesamt 22.000 mal
installiert, davon allein 6.000 mal in der Bundesrepublik Deutschland.?[17] Als Nachfolger zu nennen ist das auch
noch heute bekannte Turbo Pascal.[16]
IDEs existieren für fast jede Programmiersprache. Sie sind oftmals als Open-Source oder Freeware zu haben.
Open-Source: Frei zur Verfügung stehende Lizenzen für Programme. Der Quelltext ist frei einsehbar und durch
die Linzens veränderbar.[16]
Freeware: Im Gegensatz zu Open-Source, sind Freiheiten wie z.B. das Verändern des Quellcodes verboten.[16]
Eine Integrierte Entwicklungsumgebung besitzt folgende Elemente:[16]
• Texteditor
• Compiler oder Interpreter
• Linker
• Debugger
• Quelltextformatierer
4.2.1 Texteditor
Der Editor in diesem Sinne, ist die Entwicklungsumgebung der Software-Entwickler. Die Informationen werden
solange flüchtig gespeichert, bis die Endgültige Speicherung ausgeführt wird. Mit Hilfe von Funktion wie ?Undo?
können Eingaben rückgängig gemacht werden. [16]
4.2.2 Compiler
Compiler sind wie bereits in der ?Geschichte der Programmiersprachen? beschrieben Übersetzer, die den
geschriebenen Code in Assemblersprache, Bytecode oder Maschinensprache umwandeln.[16]
Analysiert werden hier die Lexikalik, Syntaktik und die Semantik.[16]
Lexikalik: Beschreibt die gültigen Worte und Zeichen der Programmiersprache.
Syntaktik: Beschreibt den formalen Aufbau von Anweisungen und Programmen.
Semantik: Beschreibt die Bedeutung von Anweisungen und Programmen.
4.2.3 Linker
Ein Linker dient der Zusammenführung unterschiedlicher Programmmodule. Dadurch entsteht letztendlich ein
ausführbares Programm. [16]
Da kompilierte Module auch in anderen Programmen Verwendung finden können, ist es möglich sie zu einer
Funktionsbibliothek hinzuzufügen. Der Code wird durch den Linker im Hauptprogramm unterlegt, sodass sie
jederzeit aufrufbar ist.[16]
4.2 Integrierte Entwicklungsumgebung (IDE)
8
Werkzeuge_zur_GUI-Entwicklung_im_Vergleich
Um diese Module jedoch verwenden zu können, müssen die symbolischen Adressen der Funktionen und
Variablen in Speicheradressen umgewandelt. Die Verlinkung erfolgt am Ende der Programmierung. [16]
Man unterscheidet zwischen Statisches Linken und Dynamisches Linken:
Statisches Linken: Verlinkung erfolgt in Fertigung ? Nutzer erhält sofort ausführbares Programm[16] Dynamisches
Linken: Verlinkung erfolgt bei Ausführung ? Speicher wird nur einmal benötigt und Bibliotheken sind leicht
austauschbar[16]
4.2.4 Debugger
Die Hauptaufgabe eines Debuggers besteht darin, das Programm auf Fehler zu überprüfen. Er prüft den
Programmcode, Speicher und das Register. Sie dienen dazu die Fehler aufzuspüren, Rückmeldung zu geben und
gegebenenfalls selber zu beheben. [16]
4.2.5 Quelltextformatierer
Er dient zur Verschönerung des Quelltextes. Er kann den Code nachträglich formatieren und vereinheitlichen. Es
verbessert die Lesbarkeit und Wartung. [16]
4.2.6 GUI-Builder
Ein weiterer Bestandteil der IDE kann der GUI-Builder oder GUI-Designer sein. Mit Hilfe dieses ?Builders?
können die Steuerelemente via Drag & Drop nach belieben platziert werden. Dies geschieht frei nach dem Motto:
?What you see is what you get.? Ohne dieses Werkzeug, müssen die Steuerelemente durch Programmierung
angeordnet werden. [18]
4.3 Framework
Ein Framework ist eine Art Grundstruktur in der Softwareentwicklung. Das Framework ist das Grundgerüst der
Anwendungsprogrammierung, welches den Entwicklungsrahmen zur Programmierung vorgibt. Sie sind selbst
eine Ansammlung abstrakter und konkreter Klassen und dienen der Wiederverwendung von Designs. Bestandteil
des Frameworks sind unter anderem Bibliotheken und Komponenten, wie z.B. Laufzeitumgebungen und
Designstrukturen. Frameworks sind überwiegend in der objektorientierten Programmierung vorzufinden. Mit
Hilfe von Frameworks wird das entwerfen ähnlicher Programme erheblich erleichtert.[19]
4.3.1 Aufgabe
Frameworks haben die Aufgabe den Kontrollfluss der Anwendungen und Schnittstellen zu definieren. Es legt fest,
wie die Anwendungen funktionieren, indem es die Strukturen bestimmter Klassen des Programms definiert. [20]
4.2.3 Linker
9
Werkzeuge_zur_GUI-Entwicklung_im_Vergleich
4.3.2 Funktionsweise
Wie schon erwähnt besteht das Framework aus abstrakter und konkreter Klassen. Die Klassen arbeiten eng
zusammen. Der Entwickler registriert seine Implementierungen. Die Steuerung und Verwendung erfolgt dann
aber über das Framework. Programmierer nennen diesen Ablauf ?Umkehrung der Steuerung?.[20]
4.3.2.1 White-Box
Das White-Box Framework besteht aus abstrakten Klassen. Der Softwareentwickler, kann aus diesen Klassen
eigene ableiten. Sie sind daher in der Nutzung komplizierter, da sie Klasseninterne Kenntnisse erfordern. In
diesem Fall wird häufig die Klassenvererbung angewendet.[21]
4.3.2.2 Black-Box
Das Black-Box Framework dagegen enthält fertige Klassen, welche nur noch konfiguriert werden müssen. Die
Klassen haben den Vorteil, dass sie keine großartigen Kenntnisse erfordern und sind daher leicht zu nutzen.
Allerdings ist die Leistungsfähigkeit auf die Funktionen dieser Komponenten beschränkt, da die Klassen wenig
flexibel sind.[21]
4.3.3 Arten
4.3.3.1 Application Frameworks
Diese Art von Frameworks ist überwiegend in der GUI-Entwicklung und bei Datenbanken zu finden. Designs und
Codes werden hier zur erneuten Verwendung zur Verfügung gestellt und unterstützen somit die
Software-Entwicklung.[21]
4.3.3.2 Domain Frameworks
Domain Frameworks sind auf bestimmte Probleme zugeschnitten. Daher steigert es Qualität und verringert den
Zeitaufwand der zur Anwendungsprogrammierung benötigt wird. Einsatzgebiete können hier z.B. Banken oder
Arlarmsysteme sein.[21]
4.3.3.3 Support Frameworks
Support Frameworks sind für spezielle Computerbereiche, wie z.B. Speicherverwaltung oder Dateisysteme
gedacht. Sie werden oft in Kombination mit Application Frameworks oder Domain Frameworks verwendet.[21]
4.3.4 Vor- u. Nachteile
Vorteile
Wiederverwendbarkeit[21]
Wiedererkennungswert
4.3.2 Funktionsweise
Nachteile
Oft mehrere Frameworks erforderlich[21]
Frameworks können sich gegenseitig
Kontrolle entziehen[21]
10
Werkzeuge_zur_GUI-Entwicklung_im_Vergleich
Genormte Schnittstellen
Erweiterbarkeit[21]
Funktionsstörungen möglich[21]
Entwicklen sich weiter - Anpassung der
Anwengung notwendig[21]
Lernkurve[21]
Effizienz
4.4 Layoutmanager
Layoutmanger sind für die Anordnung und Positionierung visueller Komponenten in der objektorientierten
Programmierung zuständig. Das kann beispielsweise ein einfaches Dialogfenster sein. Auch hierbei gibt es ein
vordefiniertes Regelwerk, an das sich der Layoutmanager bei der Positionierung der Komponenten orientiert.
Vorteil: Zeichensatz und Fenstergröße sind unabhängig.[22]
Das absolute Positionieren von Komponenten ist mit erheblichem Aufwand verbunden. Diese Aufgabe
übernimmt der Layoutmanager. Der Programmierer muss lediglich qualitative Aufgaben übernehmen. Z.B. muss
er nur angeben, dass die Komponenten nebeneinander oder untereinander stehen sollen. Mit Hilfe der Methoden
getMinimumSize() und getPreferredSize() werden die Komponentengrößen durch den Layoutmanager generiert.
Sie geben die Mindestgröße und die bevorzugte Größe an. Buttons richten sich nach dem beschrifteten Text. Wird
dieser länger, erweitert sich z.B. auch automatisch die Buttongröße. Bei Änderung einer Komponentengröße,
berücksichtigt der Layoutmanager alle mit ihm in Verbindung stehenden Komponenten. So wird auch hier dem
Programmierer die Festlegung von Größen erspart. Die Methoden getMinimumSize() und getPreferredSize()
können natürlich vom Entwickler überschrieben werden. [22]
Ein Nachteil von Layoutmanagern ist, dass sie nicht zwangsläufig Plattformunabhängig sind. Es kann also
passieren, dass die Koordinaten unter Windows nicht mehr dem gewünschten Erscheinungsbild der Komponente
auf anderen Betriebssystemen gleichen. Beispielsweise können Texte in Eingabefeldern abgeschnitten sein. [22]
Sogar die Änderung der Auflösung kann zu Komplikationen führen.
Am häufigstens vorzufinden ist der Layoutmanager in Java.[22]
Mögliche Beispiele für Layouts:[22]
• BorderLayout
• BoxLayout
• CardLayout
• FlowLayout (Standardmäßig aktiviert)
• GridLayout
• GridBagLayout
• SpringLayout
BorderLayout: In einem BorderLayout kann mit 5 Komponenten arbeiten. Nach den Regeln des BorderLayouts
werden die Komponenten jeweils links, rechts, oben, unten und zentral angeordnet. Die Richtungen werden
bezeichnet als ?West?, ?East?, ?North?, ?South? und ?Center?. Das kann z.B. wie folgt aussehen:[22]
Man kann das BorderLayout individuell gestalten. Lässt man beispielsweise North and South leer, so kann sich
West und East in voller Höhe erstrecken. Wenn man nachträglich North and South füllt, sind diese in der Breite
begrenzt. [22]
4.3.4 Vor- u. Nachteile
11
Werkzeuge_zur_GUI-Entwicklung_im_Vergleich
Abbildung 2: BorderLayout[2]
BoxLayout: Das Boxlayout ähnelt dem GridBagLayout. Die Komponenten orientieren sich an einer vorgegeben
Linie. Die Komponenten können folgendermaßen angeordnet werden:[23] - X-Axis: Horizontal, von links nach
rechts.[23] - Y-Axis: Vertikal, von oben nach unten.[23] - Line_Axis: Horizontal mit Berücksichtung des
ComponentOrientation des Container. Das gibt an, ob die Komponenten von links nach rechts oder von rechts
nach links angeordnet werden. Bei einer vertikalen Ausrichtung, wird immer von oben nach unten
ausgerichtet.[23] - Page_Axis: Die Komponenten werden in Zeilenform ausgerichtet.[23]
Abbildung 3: BoxLayout, horizontal[2]
Abbildung 4: BoxLayout, vertikal[2]
CardLayout: Bei einem CardLayout kann man es sich wie bei einem Kartenspiel vorstellen. Die Karten sind in
diesem Beispiel die Container. Zieht man die erste Karte (Container 1) aus dem Stapel, so erscheint die zweite
(Container 2).[24] Mit Hilfe von folgenden Befehlen können alle möglichen Container angesprochen werden:[24]
• next(Container) - Zeigt das nächste Element an[24]
• previous(Container) - Zeigt das vorherige Element an[24]
• first(Container) - Zeigt das erste Element an[24]
• last(Container) - Zeigt das letzte Element an[24]
• show(Container, String) - Zeigt ein bestimmtes Element direkt an[24]
4.4 Layoutmanager
12
Werkzeuge_zur_GUI-Entwicklung_im_Vergleich
Abbildung 4: CardLayout[2]
FlowLayout: Hier werden die Komponenten nacheinander angeordnet, sowie sie auf dem Panel hinzugefügt
worden sind. Ist das Ende des Frames erreicht, so wird ein Zeilenumbruch hinzugefügt und in einer neuen Reihe
weiter gemacht.[25]
Abbildung 5: FlowLayout[2]
GridLayout Das GridLayout arbeitet mit einem Gitternetz mit Zellen gleicher Größe. Anzahl der Spalten und
Zeilen des Gitters sind frei wählbar. Die einzelnen Zellen werden komplett mit den Komponenten ausgefüllt. Dies
geschieht zeilenweise.[26]
Abbildung 6: GridLayout[2]
GridBagLayout Dieses Layout basiert auf ein Gitter. Hierbei spielt die Größe der Komponenten keine Rolle.
Diese können Gitterzellen übergreifend dargstellt werden. Der Programmierer kann die Gitterzellen beliebig den
Größenänderungen des Containers anpassen, sodass beispielsweise Höhenänderungen eines Fensters auch nur
Auswirkung auf bestimmte Gitterzellen haben. Spalten und Zeilen können hierbei unterschiedliche Größen haben.
[27]
Abbildung 7: GridBagLayout[2]
SpringLayout Hier werden die die Abstände zwischen den einzelnen Buttons definiert. [28]
4.4 Layoutmanager
13
Werkzeuge_zur_GUI-Entwicklung_im_Vergleich
Abbildung 8: SpringLayout[2]
Das Panel kann nun beliebig gefüllt werden. Z.B. kann der Northbereich wieder in einem FlowLayout belegt
werden, welches mit Symbolleisten-Schaltflächen gefüllt ist. Der South-Bereich kann ebenfalls mit Schaltflächen,
wie z.B. ?Ok? oder ?Abbrechen? mit Hilfe eines FlowLayouts belegt werden. Im Center-Bereich sollte man einen
GridBagLayout verwenden, da hier größtenteils die Eingaben getätigt werden.[22]
5 Werkzeuge zur GUI-Entwicklung
5.1 NetBeans
NetBeans bezeichnet eine Plattform für Java-Desktop-Anwendungen, als auch eine integrierte
Entwicklungsumgebung (IDE). NetBean begann als ein studentisches Projekt, welches so erfolgreich war, dass
kurze Zeit später eine Firma gegründet wurde, welche die Entwicklungsumgebung ?NetBeans IDE? kommerziell
verkaufte. 1999 kaufte Sun Microsystems die Firma und veröffentliche ein halbes Jahr später die
Entwicklungsumgebung als Open-Source-Projekt.[29]
Die NetBeans IDE ist zwar in Java geschrieben, allerdings werden auch andere Programmiersprachen unterstützt,
wie z. B. JavaScript, PHP, Python, als auch C und C++. Sprachen die nicht in der Basisversion enthalten sind,
können durch Plug-ins auf einfache Weise zusätzlich installiert werden.[30]
Alle Funktionen der IDE werden durch Module zur Verfügung gestellt und lassen sich problemlos erweitern.
Neue Features, die von NetBeans oder der Community zur Verfügung gestellt werden, können durch das
Update-Center auf einfache heruntergeladen werden und können direkt in die Applikation eingefügt werden. Für
die Entwicklung mit Java werden alle Module in einem einzigen Download zur Verfügung gestellt.
NetBeans ist plattformunabhänig und kann somit mit Windows, Linux,Solaris als auch Mac OS X genutzt
werden. Die aktuelle Version ist die 7.0.[31]
5.1.1 Swing
Für die Erstellung einer Java-Applikation mit NetBeans wird das GUI-Framework Swing benötigt. Swing ist das
primäre Java GUI-Framework. Es ist der Nachfolger des Abstract Window Toolkit (AWT) und wurde entwickelt
um komplexere GUI-Komponenten darzustellen. Neben den bekannten Komponenten wie Schaltflächen,
Kontrollkästchen und Labels, bietet Swing mehrere erweiterte Elemente wie Tabellen, Listen, Menü-Bäume und
Registerkarten. Im Gegensatz zu den AWT-Komponenten sind Swing-Komponenten nicht von
Plattform-Spezifischen Code implementiert. Stattdessen sind sie komplett in Java geschrieben und daher
plattformunabhängig.[32]
5.1.2 Matisse
5 Werkzeuge zur GUI-Entwicklung
14
Werkzeuge_zur_GUI-Entwicklung_im_Vergleich
Abbildung 9: GUI-Builder Matisse[2]
Zur Erstellung von grafischen Benutzeroberflächen wird der GUI-Builder ?Matisse? zur Verfügung gestellt. Die
einzelnen GUI-Komponenten findet man auf mehreren Menü-Leisten und diese lassen sich durch einfaches
ziehen auf die Programmieroberfläche positionieren. Der GUI-Builder kümmert sich automatisch um den
richtigen Abstand und die Ausrichtung zu den anderen Elementen.
Über das Kontextmenü können die Eigenschaften der Elemente wie z. B. Buttons, Textfelder, oder Labels
bearbeitet werden. Die Hilfsleiste zeigt direkt an, was mit dem ausgewählten Element durchgeführt werden kann
und welche anderen Elemente als Verknüpfung in Frage kommen. Wie die meisten GUI-Builder besitzt Matisse
eine WYSIWYG-Ansicht. GUI-Anwendungen müssen somit nicht jedes Mal ausgeführt werden, wenn man eine
Änderung vorgenommen hat und sich die Auswirkungen anschauen möchte.
5.2 ECLIPSE
Eclipse ist primär eine Java-Entwicklungsumgebung, welche aber auch durch das integrierte Plug-in-System für
weitere Sprachen genutzt werden. Die ersten Versionen von Eclipse wurden in einem Projekt von IBM
entwickelt. IBM wollte die Anzahl ihrer IDEs reduzieren und eine einzige Entwicklungsumgebung anbieten. Im
Jahr 2001 wurde die Eclipse Foundation gegründet und Eclipse als freie Entwicklungsumgebung angeboten.
Abbildung 10: Eclipse IDE[2]
Die ersten Versionen von Eclipse wurden unter der Common Public License (CPL) veröffentlicht, später jedoch
unter der Eclipse Public Licenz (EPL). Diese Lizenz gewährt das Recht zur freien Nutzung, Weiterverbreitung
und auch Veränderung der Software. Nach Aussage der ?Free Software Foundation? sind beides freie Lizenzen,
allerdings nicht zu vergleichen mit der General Public Lizenz (GPL). Anzumerken sei hier, dass selbst erstellte
Plug-ins nicht unter der EPL veröffentlicht werden müssen.
Wie auch die NetBeans IDE ist Eclipse in Java geschrieben und unterstützt unter anderem die Programmierung in
C, C++, PHP, oder auch Perl. Auch die plattformunabhängigkeit ist wie bei NetBeans gegeben.
Neben der klassischen Version von Eclipse, welche das JDT enthält (Java Development Tools), werden weitere
Pakete angeboten, die sich in der Zusammenstellung der Komponenten und Plug-ins unterscheiden.
Paketname
5.1.2 Matisse
Beschreibung
15
Werkzeuge_zur_GUI-Entwicklung_im_Vergleich
Eclipse IDE for Java Developers
Besteht aus den Basis Komponenten zum Entwickeln von Java
-Anwendungen
Eclipse IDE for Java EE
Enthält die Java IDE und zusätzlich Tools für Java EE und Webentwicklung
Developers
Eclipse IDE for C/C++ Developers Speziell auf die C/C++ Programmierung abgestimmtes Paket
Eclipse for PHP Developers
Paket für die Entwicklung von Webseiten mit PHP.
Pulsar for Mobile Java Developers Stellt Tools für die Erstellung von Applikationen für Handys bereit.
Heutzutage gibt es rund um Eclipse eine große Community, welche freie, aber auch zum Teil kommerzielle
Plug-ins zur Verfügung stellt. Allgemein hat die Eclipse-Community einen sehr guten Ruf für die Bereitstellung
qualitativ hochwertiger Plug-ins. Dies ist vor allem auf das Engagement der Eclipse Foundation zurückzuführen,
welche einige Dienstleistungen im Hinblick auf die Entwicklung von Plug-in-Projekten anbietet. Die Installation
von Plug-ins ist bei Eclipse sehr benutzerfreundlich gestaltet. Möchte man ein Plug-in online installieren, so
gelangt man über den Menüpunkt ?Install New Software? zu einem Formular, bei dem man nur die URL
eingeben muss und das Plug-in wird automatisch heruntergeladen und installiert. Falls zusätzlich Features
benötigt werden, werden diese ebenfalls mit installiert. Nichts desto trotz kann man die Pakete auch auf manuelle
Weise installieren.
Die Mitarbeiter der Stiftung helfen bei der Implementierung der Eclipse Development Process. Dieser Prozess
unterstützt einen Projekt-Start und gewährleistet, dass alle Eclipse Projekte in einer offenen, transparenten und
leistungsorientierten Art und Weise ausgeführt werden. Als Teil dieses Prozesses, organisiert die Stiftung
Beiträge für qualifizierte Projekte. Einmal jährlich organisiert die Eclipse Community einen Release Termin, so
dass neue und weiterentwickelte Plug-ins gleichzeitig veröffentlicht werden.
5.2.1 SWT Framework
In der Eclipse-Plattform implementiert ist das Java-GUI-Framework SWT (Standard Widget Toolkit), welches
gleichzeitig mit der Entwicklungsumgebung entwickelt wurde. SWT und Swing sind zwei verschiedene
Frameworks, die mit unterschiedlichen Zielen im Hinterkopf entstanden sind. Der Zweck der SWT ist es, eine
gemeinsame API für den Zugriff standardisierten UI-Widgets (Fensterelemente) der unterschiedlichen
Plattformen anzubieten. Primäre Ziele von SWT sind eine hohe Leistung, ein natives Look & Feel und eine tiefe
Plattform-Integration. Swing ist auf der anderen Seite so konzipiert, dass sich Elemente hochgradig anpassen
lassen und das über alle Plattformen hinweg.
5.2.2 UI-BUILDER
Im Unterschied zu NetBeans enthält die Entwicklungsumgebung von Eclipse keinen integrierten GUI-Builder. Es
gibt aber eine Vielzahl an freien GUI-Buildern und welche, die man käuflich erwerben kann.
5.2.3 Visual Editor
Einer der meistgenutzten freien GUI-Builder ist der Visual Editor. Dieser unterstützt die GUI-Frameworks
SWING, AWT und SWT.
Wie die meisten Editoren besteht auch der Visual Editor aus mehreren Fenstern. So werden im oberen Bereich die
erstellten GUI-Elemente angezeigt und darunter der entsprechende Code. Je nachdem, welche Version von
Eclipse eingesetzt wird, werden die einzelnen Fenster anders angeordnet. Diese kann man aber nach seinen
eigenen Bedürfnissen anpassen. Die erforderlichen Bausteine für die Erstellung der Oberfläche findet man in
5.2 ECLIPSE
16
Werkzeuge_zur_GUI-Entwicklung_im_Vergleich
einer übersichtlichen Palette auf der rechten Seite. Die Bausteine können per Drag-and-Drop in den oberen Editor
platziert werden. Ist der Layoutmanager ausgeschaltet, können die Elemente frei positioniert werden. Ansonsten
werden sie automatisch angeordnet. Mit Hilfe der Properties-Sicht können die Eigenschaften der einzelnen
Komponenten eingestellt werden und die zugehörigen Ereignisse werden in dem Bereich der
Komponentenansicht Java-Beans angezeigt. Wählt man ein Element der Komponentenansicht aus, springt die
Einfügemarke zum entsprechenden Programmcode.
5.2.4 Jigloo
Jigloo ist ein GUI-Builder der Firma Cloudgarden. Dieser kann auf sehr einfache Weise als Plugi-in installiert
werden, da er nur sehr wenig Speicherplatz benötigt. Bei Jigloo wird bei der Installation die Online-Hilfe direkt
mitinstalliert. Für den nichtkommerziellen Einsatz ist Jigloo kostenlos und ohne Funktionseinschränkungen
verwendbar, für eine kommerzielle Nutzung muss man ihn käuflich erwerben. Jigloo besitzt keinen
Layout-Assistenten, wodurch sich das Erstellen von komplexen Layouts etwas schwierig ereignet, da alle
Komponenteneigenschaften manuell eingestellt werden müssen.
Abbildung 11: GUI-Builder Jigloo[2]
5.2.5 Matisse4MyEclipse
Matisse4MyEclipse ist ein kommerzieller GUI-Builder der Firma Genuitec, für die Entwicklungsumgebung
MyEclipse. Wie der Name schon erahnen lässt, ist der GUI-Builder an den bereits erwähnten GUI-Builder
Matisse von NetBeans angelehnt. Er enthält unter anderem einen Formular-Designer mit einem Source-Modus
und eine erweiterbaren Palette von SWING und AWT-Steuerelementen. Der Formular-Editor bietet erweiterte
Hilfslinien und ein Design-Tool zur schnellen Entwicklung von Benutzeroberflächen. Matisse4MyEclipse hat
gegenüber anderen GUI-Buildern allerdings einen großen Nachteil, da er ausschließlich nur mit der IDE
MyEclipse verwendet werden kann, arbeitet er nur mit dem Framework Swing und muss käuflich erworben
werden.
5.2.6 Übersicht der GUI-Builer für Eclipse
GUI-Builder
Hersteller
Webseite
5.2.3 Visual Editor
Visual Editor
Eclipse Foundation
eclipse.org
Jigloo
Cloudgarden
cloudgarden.com
Matisse4MyEclipse
Genuitec
genuitec.com
17
Werkzeuge_zur_GUI-Entwicklung_im_Vergleich
Version
Downloadgröße
Betriebssystem
SWT
Swing / AWT
Preis
kommerziell /
1.5
418 MB
Linux, Mac OS X, Solaris,
Windows
Ja
Ja
kostenlos/ kostenlos
4.6.4
14 MB
Linux, Mac OS X, Solaris,
Windows
Ja
Ja
kostenlos / 85 Dollar
6.0
Linux, Windows
Nein
Ja
Inklusive IDE
MyEclipse
63 ? 158 Dollar
nicht kommerziell
Alle drei GUI-Builder bieten eine ergonomische Oberfläche und erzeugen einen übersichtlichen Code.
Matisse4MyEclipse kann nur in Verbindung mit der Entwicklungsumgebung MyEclipse verwendet werden,
weshalb viele auf die kostenlosen GUI-Builder zurückgreifen. Der Vorteil von Visual Editor ist, das er
Open-Source ist und durch die Eclipse Community stetig weiterentwickelt wird. Im Gegegensatz zum Visual
Editor ist das Installationspaket von Jigloo nur wenige MB groß, was aber keine Auswirkungen auf den
Funktionsumfang des Buildes hat.
5.3 Qt
Qt alleine bezeichnet eine C++ Klassenbibliothek, welche häufig für die Entwicklung von Anwendungen mit
einer grafischen Benutzeroberfläche verwendet wird. Ein zusätzliches Einsatzgebiet ist die Entwicklung von
Kommandozeilen-Tools und Serverkonsolen. Die integrierte Entwicklungsumgebung nennt sich Qt Creator. Ins
Leben gerufen wurde Qt von der Firma Trolltech. Diese wurde von Nokia aufgekauft und seitdem wird es von der
Tochterfirma Qt Development Frameworks Devision weiterentwickelt.[33]
Abbildung 12: Qt[34]
Am meisten wird bei Qt die Programmiersprache C++ verwendet. Allerdings muss dies nicht zwingend so sein.
Durch die zusätzliche Installation von Sprachpaketen, welche von der Entwicklerhomepage heruntergeladen
werden können, kann man auch mit anderen Programmiersprachen grafische Benutzeroberflächen erstellen. Z. B.
kann man mit dem Paket Qt Jambi auch in Java programmieren. Weitere Sprachen wie Ada, PHP, Perl, Python,
oder Ruby werden ebenfalls unterstützt.
Qt ist plattformübergreifend und kann mit dem Windows Betriebssystem verwendet werden, aber auch mit Mac
OS X, Symbion OS, Unix, Linux und weiteren Systemen.
5.2.6 Übersicht der GUI-Builer für Eclipse
18
Werkzeuge_zur_GUI-Entwicklung_im_Vergleich
Der Quellcode steht unter verschiedenen Open Source Lizenzen zur Verfügung, wie z. B. der General Public
License (GPL) und kann somit frei benutzt werden. Seit der Qt-Version 4.5 wird neben der kommerziellen Lizenz
und auch eine LGPL-Variante (Lesser General Public License) angeboten.[35]
Qt Creator
Der Qt Creator verfügt über zwei integrierte GUI-Builder, den Qt Designer und den Qt Quick Designer. Mit dem
Qt Designer lassen sich grafische Benutzeroberflächen entwerfen und erstellen. Dialoge oder Widgets können mit
wenigen klicks in unterschiedlichen Stilen und Auflösungen getestet werden.
Abbildung 13: Qt Designer[2]
Mit dem Qt-Designer ist es nicht nur möglich die Oberfläche zu erstellen, sondern auch den einzelnen Elementen
direkt Variablen und Werte zu zuordnen. Zusätzlich können die einzelnen GUI-Elemente miteinander verknüpft
werden. "Die Oberflächenbeschreibung wird dabei in einer XML-Datei gespeichert und ist somit auch für den
Menschen lesbar und auch bedingt ohne den Qt-Designer veränderbar. Der Quellcode, der zu der Oberfläche
gehört, wird automatisch während des Build-Vorgangs erzeugt."[36] Sollte man bei der Erstellung der GUI auf
Probleme stoßen, kann man getrost auf die sehr ausführliche und umfangreiche Dokumentation zurückgreifen.
Der Qt Quick Designer ermöglicht die einfache Entwicklung von Animationen durch eine Programmiersprache
namens QML.
5.4 Microsoft Visual Studio
Microsoft Visual Studio ist eine integrierte Entwicklungsumgebung, welche nur auf dem Windows-Beriebssystem
zum Einsatz kommt. Die Microsoft Corporation veröffentlichte 1995 die erste Version von Visual Studio.
Seitdem sind 7 weitere Versionen hinzugekommen. In Visual Studio 2010 - der aktuellsten Version von Visual
Studio - werden die Programmiersprachen C, C++, C#, VB und F# unterstützt. Für Programmiersprachen wie z.
B. Ruby oder Python, müssen zusätzliche Sprachpakete installiert werden. Microsoft bietet verschiedene
Versionen der Entwicklungsumgebung an
Visual Studio
Express
Visual Studio
LightSwitch
Visual Studio
Professional
5.3 Qt
Microsoft bietet mit den so genannten Express Editions abgespeckte Versionen von Visual
Studio an, die jeweils nur eine Programmiersprache beinhalten. * Visual Basic Express * Visual
C++ Express * Visual C# Express * Visual Web Developer Express * Express for Windows
Phone
Microsoft Visual Studio LightSwitch ist eine IDE speziell für die Erstellung von
Line-of-Business-Anwendungen. Sie kann als Stand-alone Version und als Add-in für höhere
Versionen installiert werden.
Die Professional-Version bietet eine Entwicklungsumgebung für alle unterstützten
Programmiersprachen. Sie umfasst unter anderem Werkzeuge für die Entwicklung von
Anwendungen für Windows Phone 7
19
Werkzeuge_zur_GUI-Entwicklung_im_Vergleich
Visual Studio
Premium
Visual Studio
Ultimate
Visual Studio Premium Edition enthält alle Tools von Visual Studio Professional und bietet
zusätzliche Funktionen, wie Profiling, Statische Code-Analyse und Datenbank-Unit-Tests.
Die Ulimate-Edition ist die umfangreichste IDE von Visual Studio und ist hauptsächlich für
Softwareentwicklungsteams gedacht. So enthält sie eine größere und erweiterte Bericht- und
Projektmanagementfunktionen als die Professional-Edition.
5.4.1 .Net Framework
Um mit Visual Studio arbeiten zu können, wird das .Net Framework 4.0 benötigt. ?Das .NET Framework bietet
über 8000 Objekte (Klassen) mit wiederverwendbaren Funktionen für z. B. performante Grafik- und
Fensterdarstellung, Website-Entwicklung und Datenzugriff. Microsoft .NET ist auf vielen Geräten und
Plattformen verfügbar und unterstützt über 30 Programmiersprachen wie z. B. Visual Basic.NET. Microsoft setzt
.NET selbst für die Entwicklung seiner Produkte ein - so ist z. B. Microsoft Sharepoint mit .NET entwickelt
worden.? GRAFIKFRAMEWORK WPF
Für die Entwicklung von GUI-Elementen ist in dem .Net Framework (ab Version 3.5) das Grafikframework
Windows Presentation Foundation (WPF) integriert. Vor WPF konnten grafische Benutzeroberflächen nur mit
Hilfe von Windows Forms entwickelt werden. Zur Gestaltung von Formularen stehen bei Windows Forms
allgemeine Steuerelemente zur Verfügung, wie z. B. Buttons oder Text-Boxen. Diese beruhen auf Klassen und
werden in die entwickelten Methoden implementiert. Die Formulare werden somit über den reinen
Programmcode definiert. WPF-Anwendungen bestehen unter anderem auch aus Steuerelemente, diese werden
aber über ein XAML-Dokument (Extensible Application Markup Language) definiert. Microsoft entwickelte
dafür die Beschreibungssprache XAML, welche auf XML (Extensible Markup Language) basiert. Durch die
zusätzlich erstellten XAML-Dateien lassen sich Formulare unabhängig von der Programmlogik designen.
Bei der Erstellung eines einfachen RadioButtons wird folgender XALM-Code ausgegeben:
*
*
*
*
*
*
*
*
*
<Window x:Class="MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<RadioButton Content="RadioButton" Height="16" HorizontalAlignment="Left"
Margin="161,140,0,0" Name="RadioButton1" VerticalAlignment="Top" />
</Grid>
</Window>
5.4.2 IDE und GUI-Designer
Die Benutzeroberfläche der Entwicklungsumgebung bietet eine große Anzahl an Fenstern für die Entwicklung
von GUIs an, wodurch man schnell den Überblick verlieren kann. Aber auch bei dieser IDE kann man die Fenster
auf seine eigenen Bedürfnisse zuschneiden und mit Hilfe der Registerkarten lassen sie sich leicht verwalten.
5.4 Microsoft Visual Studio
20
Werkzeuge_zur_GUI-Entwicklung_im_Vergleich
Abbildung 14: WPF-Designer[2]
Ein Standard-Fenster ist der Projektmappen-Explorer, mit dessen Hilfe man einen Überblick über alle
verwendeten Dateien behält. Für die Bearbeitung der Steuerelemente für die GUI-Entwicklung steht das
Eigenschaftsfenster bereit. Beim Kompilieren des Programmcodes werden in der Fehlerliste nicht nur die
einzelnen Fehler angezeigt, sondern auch Warnungen, zusätzliche Informationen und Hinweise. Beim
Kompilieren werden normalerweise die meisten Fehler angezeigt. Allerdings wird der XALM-Code erst in der
Laufzeit ausgeführt, wodurch Fehler bei der GUI-Programmierung erst beim Debuggen erkannt werden.
Mit dem Windows Presentation Foundation-Designer (WPF-Designer) kann man WPF-Anwendungen und
benutzerdefinierte Steuerelemente in der IDE erstellen. Die Bearbeitung der GUI-Elemente kann man direkt in
dem Fenster mit dem XALM-Code vornehmen, oder in dem Fenster mit der grafischen Oberfläche. Wie bei den
meisten GUI-Builder, lassen sich die Steuerelemente per Drag and Drop aus der Toolbox in das Fenster ziehen
und anschließend bearbeiten.
Entwickler
Webseite
Aktuelle Version
Betriebssystem
Programmiersprache
(hauptsächlich)
Weitere unterstützte
Programmiersprachen
NetBeans
Oracle Corporation
netbeans.org
7.0
Eclipse
Eclipse Foundation
eclipse.org
3.7
Linux, Mac OS X,
plattformunabhängig
Solaris, Windows
Qt
Nokia, Qt community
qt.nokia.com
4.7.3
Linux, Mac OS X,
Symbian, Windows
Visual Studio
Microsoft
microsoft.com
2010
Java
Java
C++
C, C++, C#,
VB, F#
Ja
Ja
Ja
Ja
Windows
Eclipse Public
GNU GPL, GNU
Nicht Frei
License
LGPL
Integrierter GUI-Builder
Matisse
Qt Designer
WPF-Designer
Ein großer Vorteil von Eclipse ist die große Community, wodurch eine Vielzahl von Plug-ins zur Verfügung
gestellt und ständig weiterentwickelt werden. Auch die einfache Installation von Plug-ins kann sich sehen lassen.
Bevor man mit der GUI-Programmierung beginnen kann, muss man sich für einen GUI-Builder entscheiden, da in
Eclipse keine eigener integriert ist. Für Anfänger ist dies kein leichter Schritt, da mehrere GUI-Builder zur
Auswahl stehen und diese nicht unbedingt jedes Framework unterstützen. NetBeans ermöglicht es, direkt mit der
Programmierung von grafischen Benutzeroberflächen zu beginnen, da mit der Entwicklungsumgebung auch
Matisse installiert wird. Qt liefert mit dem Qt Designer ebenfalls einen integrierten GUI-Builder. Die sehr
ausführliche Dokumentation von Qt bietet eine gute Hilfe bei der Arbeit mit den verschiedenen
GUI-Komponenten. Bei der Programmierung mit Visual Studio muss sich der Anwender als erstes für eine
passende Version der Entwicklungsumgebung entscheiden. Anfänger oder Entwickler die gelegentlich
Programmieren, können auf die kostenlose Express Edition zurückgreifen. Für eine professionelle
GUI-Programmierung sollte man sich aber für die Professional-Edition, oder eine höhere Edition entscheiden.
Lizenz
CDDL or GPL2
5.4.2 IDE und GUI-Designer
21
Werkzeuge_zur_GUI-Entwicklung_im_Vergleich
Diese sind zwar kostenpflichtig, aber die enthaltenden Features vereinfachen auf längere Zeit gesehen die Arbeit.
Mit dem WPF-Designer erhält man ein umfangreiches Werkzeug, in dem auch neuere Steuerelemente enthalten
sind. Ein Nachteil von Visual Studio ist, dass die Entwicklungsumgebung nur auf dem Windows-Betriebssystem
lauffähig ist. Was die hier aufgeführten Entwicklungsumgebungen gemeinsam haben, ist die zusätzliche
Unterstützung für weitere Programmiersprachen. Bei der Erstellung von Anwendungen mit unterschiedlichen
Sprachen, muss nicht zwingend eine andere Entwicklungsumgebung verwendet werden, sondern es können
zusätzliche Pakete installiert und die Arbeit in der gewohnten Umgebung fortgesetzt werden.
6 Ausblick
Grundsätzlich ist zu sagen, dass sich die Entwicklung neuer GUIs immer mehr von der textbasierten
Programmierung entfernt und die Modellierung von Benutzeroberflächen immer weiter in den Vordergrund gerät.
Durch die steigende Anzahl von Endgeräten gewinnt die Kompatibilität mit diversen Plattformen immer mehr an
Wichtigkeit.
7 Abbildungsverzeichnis
Abb.-Nr.
1
2
3
4
5
6
7
8
8
9
10
11
12
13
14
Abbildung
GUI
BorderLayout
BoxLayout, horizontal
BoxLayout, vertikal
Cardlayout
FlowLayout
GridLayout
GridBagLayout
SpringLayout
GUI-Builder Matisse
Eclipse IDE
GUI-Builder Jigloo
Qt
Qt Designer
WPF-Designer
8 Tabellenverzeichnis
Tabelle Nr.
1
2
3
4
5
6 Ausblick
Quelle
Vor- u. Nachteile von Frameworks
Eclipse-Pakete
Übersicht der GUI-Builer für Eclipse
Visual Studio Editions
Übersicht der Entwicklungsumgebungen
22
Werkzeuge_zur_GUI-Entwicklung_im_Vergleich
9 Fußnoten
1. ? Vgl. Weblink: http://www.bullhost.de/b/benutzeroberflaeche.html
2. ? 2,00 2,01 2,02 2,03 2,04 2,05 2,06 2,07 2,08 2,09 2,10 2,11 2,12 2,13 Selbst erstellte Abbildung
3. ? Vgl. Weblink: http://derstandard.at/866936/Die-Geschichte-des-User-Interfaces
4. ? 4,0 4,1 4,2 4,3 4,4 4,5 4,6 4,7 Weblink: http://www.interactive-quality.de/site/DE/int/pdf/ISO_9241-10.pdf
5. ? 5,0 5,1 5,2 5,3 5,4 5,5 5,6 Vgl. Weblink: http://www.interactive-quality.de/site/DE/int/pdf/ISO_9241-10.pdf
6. ? Vgl. Weblink: http://de.mimi.hu/infotech/button.html
7. ? Vgl. Weblink: http://szenesprachenwiki.de/definition/toolbar/
8. ? Vgl. Weblink: http://woerterbuch.babylon.com/textfeld/
9. ? Vgl. Weblink: http://szenesprachenwiki.de/definition/checkbox/
10. ? Vgl. Weblink:
http://www.akademie.de/gestalten/html-und-css/kurse/html-lernen-formulare-einbinden/radiobuttons/radiobuttons.
11. ? Vgl. Weblink: http://www.at-mix.de/listenfeld.htm
12. ? Vgl. Weblink: http://www.bullhost.de/d/dialogbox.html
13. ? Vgl. Weblink: http://www.bullhost.de/i/icon.html
14. ? 14,0 14,1 14,2 14,3 14,4 14,5 Vgl. Weblink:
http://www.weiterbildung-programmierer.de/programmiersprachen/entwicklung.php
15. ? 15,0 15,1 15,2 Vgl. Weblink:
http://www.weiterbildung-programmierer.de/programmiersprachen/entwicklung.php
16. ? 16,00 16,01 16,02 16,03 16,04 16,05 16,06 16,07 16,08 16,09 16,10 16,11 16,12 16,13 16,14 Vgl. Weblink:
http://www.weiterbildung-programmierer.de/programmieren/integrierte-entwicklungsumgebung.php
17. ? Weblink:
http://www.weiterbildung-programmierer.de/programmieren/integrierte-entwicklungsumgebung.php
18. ? Vgl. Weblink: http://wiki.computerwoche.de/doku.php/programmierung/gui-builder_fuer_eclipse
19. ? Vgl. Weblink: http://www.itwissen.info/definition/lexikon/Framework-framework.html
20. ? 20,0 20,1 Vgl. Weblink: http://www.madeyourweb.com/webentwicklung/was-sind-frameworks.html
21. ? 21,00 21,01 21,02 21,03 21,04 21,05 21,06 21,07 21,08 21,09 21,10 21,11 Vgl. Weblink:
http://www-gs.informatik.tu-cottbus.de/projektstudium/vortraege/Frameworks.pdf
22. ? 22,0 22,1 22,2 22,3 22,4 22,5 22,6 22,7 Vgl. Weblink:
http://www.dpunkt.de/java/Programmieren_mit_Java/Oberflaechenprogrammierung/72.html
23. ? 23,0 23,1 23,2 23,3 23,4 Vgl. Weblink:
http://www.dpunkt.de/java/Programmieren_mit_Java/Oberflaechenprogrammierung/84.html
24. ? 24,0 24,1 24,2 24,3 24,4 24,5 24,6 Vgl. Weblink: http://www0.fh-trier.de/~rudolph/gdv/cg/node14.html
25. ? Vgl. Weblink:
http://www.dpunkt.de/java/Programmieren_mit_Java/Oberflaechenprogrammierung/74.html
26. ? Vgl. Weblink: http://www.teialehrbuch.de/Kostenlose-Kurse/JAVA/6705-GridLayout.html
27. ? Vgl. Weblink:
http://www.dpunkt.de/java/Programmieren_mit_Java/Oberflaechenprogrammierung/82.html
28. ? Vgl. Weblink:
http://www.dpunkt.de/java/Programmieren_mit_Java/Oberflaechenprogrammierung/85.html
29. ? Vgl. Weblink: http://netbeans.org/about/history.html
30. ? Vgl. Weblink: http://netbeans.org/features/index.html
31. ? Vgl. Weblink: http://netbeans.org/downloads/index.html
32. ? Vgl. Krüger (2008), Seite 529 ff.
33. ? Vgl. Weblink:
http://www.heise.de/newsticker/meldung/Nokia-kauft-Qt-Entwickler-Trolltech-183652.html
34. ? Vgl. Weblink: http://qt.nokia.com
35. ? Vgl. Weblink: http://qt.nokia.com/about/licensing
36. ? Weblink: http://wiki.ubuntuusers.de/Qt
9 Fußnoten
23
Werkzeuge_zur_GUI-Entwicklung_im_Vergleich
10 Literatur- und Quellenverzeichnis
10 Literatur- und Quellenverzeichnis
24