IDE`s im¨Uberblick

Transcription

IDE`s im¨Uberblick
IDE’s im Überblick
Vergleich verschiedener Entwicklungsumgebungen
BA Stuttgart AS Horb, Flrorianstr. 15, 72160 Horb am Neckar
Andreas Schwer
Patrick Schilling
Stefan Kramer
Tobias Pfau
Abstract:
Softwareentwicklung findet heute typischerweise mit IDE (Integrierte Entwicklungsumgebung) statt. Dabei haben in den letzten Jahren auf dem Plugin-Konzept basierende Werkzeuge starke Verbreitung gefunden. Im Rahmen der Seminararbeit sind
die Anforderungen an IDE zu ermitteln und einige Plattformen (z.B. Eclipse, NetBeans, JDeveloper, JCreator) genauer zu untersuchen. Außerdem soll das Eclipse PluginKonzept vertieft betrachtet werden.
Inhaltsverzeichnis
1
2
Integrierte Entwicklungsumgebungen
5
1.1
Aufgaben einer IDE . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
1.2
Geschichte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
1.3
Beispiele verschiedener IDE’s . . . . . . . . . . . . . . . . . . . . . . .
6
JDeveloper
8
2.1
Core API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
2.2
Geschichte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
2.3
Versionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9
2.3.1
Java-Edition . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9
2.3.2
J2EE-Edition . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9
2.3.3
Studio-Edition . . . . . . . . . . . . . . . . . . . . . . . . . . .
9
Eigenschaften & Besonderheiten . . . . . . . . . . . . . . . . . . . . . .
9
2.4.1
Complete Lifecycle . . . . . . . . . . . . . . . . . . . . . . . . .
9
2.4.2
Code-Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10
2.4.3
Debugger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11
2.4.4
Online-Hilfe . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12
2.4.5
XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12
2.4.6
Application Development Framework . . . . . . . . . . . . . . .
13
2.4.7
Java Swing . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13
2.4.8
UML-Modellierung . . . . . . . . . . . . . . . . . . . . . . . . .
13
2.4.9
JSP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14
2.4.10 Struts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14
2.4.11 Ant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14
2.4.12 JUnit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15
2.4.13 CVS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15
2.4
3
IntelliJ
16
3.1
Allgemeines zu IntelliJ . . . . . . . . . . . . . . . . . . . . . . . . . . .
16
3.1.1
Systemvorraussetzungen . . . . . . . . . . . . . . . . . . . . . .
16
3.1.2
Lizenz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16
Geschichte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17
3.2
3.2.1
3.3
3.4
4
5
Erfolge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17
Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
18
3.3.1
Codevervollständigung . . . . . . . . . . . . . . . . . . . . . . .
18
3.3.2
Code Layout Manager . . . . . . . . . . . . . . . . . . . . . . .
19
3.3.3
Refactoring . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19
3.3.4
Webanwendungen . . . . . . . . . . . . . . . . . . . . . . . . .
20
3.3.5
Sprachen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20
3.3.6
Live Templates . . . . . . . . . . . . . . . . . . . . . . . . . . .
21
3.3.7
Versionskontrolle . . . . . . . . . . . . . . . . . . . . . . . . . .
21
3.3.8
Fehlerverarbeitung . . . . . . . . . . . . . . . . . . . . . . . . .
21
3.3.9
Clipboard Stacking . . . . . . . . . . . . . . . . . . . . . . . . .
23
Erweiterungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24
JCreator
26
4.1
Allgemeines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
26
4.2
Besonderheiten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
26
4.3
Funktionsumfang . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
27
4.3.1
Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
28
4.3.2
User Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . .
28
4.3.3
File Management . . . . . . . . . . . . . . . . . . . . . . . . . .
29
4.3.4
JAVA-Unterstützung . . . . . . . . . . . . . . . . . . . . . . . .
29
4.3.5
JSP-Unterstützung . . . . . . . . . . . . . . . . . . . . . . . . .
30
4.3.6
Ant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
30
NetBeans
31
5.1
Allgemeines zu NetBeans . . . . . . . . . . . . . . . . . . . . . . . . . .
31
5.2
Geschichte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
32
5.3
Die Anfänge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
32
5.4
Der Einstieg von Sun Microsystems . . . . . . . . . . . . . . . . . . . .
32
5.5
NetBeans wird Open Source . . . . . . . . . . . . . . . . . . . . . . . .
32
5.6
Funktionen von NetBeans . . . . . . . . . . . . . . . . . . . . . . . . . .
32
5.7
GUI Builder – Matisse . . . . . . . . . . . . . . . . . . . . . . . . . . .
33
5.8
Funktionen des Quelltexteditors . . . . . . . . . . . . . . . . . . . . . .
34
5.9
CVS Unterstützung . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
36
6
5.10 Debugger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
36
5.11 Erweiterungskonzept von NetBeans . . . . . . . . . . . . . . . . . . . .
38
5.11.1 NetBeans Packs . . . . . . . . . . . . . . . . . . . . . . . . . . .
38
5.11.2 NetBeans Plugins . . . . . . . . . . . . . . . . . . . . . . . . . .
38
Eclipse
40
6.1
Eclipse Allgemein . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
40
6.2
Die Entstehung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
40
6.3
Die Eclipse Architektur . . . . . . . . . . . . . . . . . . . . . . . . . . .
41
6.4
Platform Runtime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
42
6.4.1
OSGi-Framework . . . . . . . . . . . . . . . . . . . . . . . . . .
42
Die Eclipse Platform . . . . . . . . . . . . . . . . . . . . . . . . . . . .
43
6.5.1
SWT (Standard Widget Toolkit) . . . . . . . . . . . . . . . . . .
43
6.5.2
JFace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
44
6.5.3
Workbench . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
45
6.5.4
Help / Team / Debug . . . . . . . . . . . . . . . . . . . . . . . .
45
6.5.5
Eclipse RichClient Platform . . . . . . . . . . . . . . . . . . . .
46
JDT - Eclipse IDE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
46
6.6.1
JDT - Features . . . . . . . . . . . . . . . . . . . . . . . . . . .
47
Übersicht über Eclips Plugins . . . . . . . . . . . . . . . . . . . . . . . .
47
6.5
6.6
6.7
Abbildungsverzeichnis
49
7
50
Abkürzungen
1
1.1
Integrierte Entwicklungsumgebungen
Aufgaben einer IDE
Die Vorläufer heutiger Entwicklungsumgebungen waren einfache Texteditoren. Mit diesem Programm arbeiteten viele Programmierer, um in Java, PHP oder C++ zu programmieren. Unter Windows ist hier UltraEdit sehr beliebt und weit verbreitet. Unter Linux
sind Emacs oder vi bekannte Texteditoren, die zur täglichen Ausstattung gehören. Macianer nutzen gerne BBEdit. Ein Programmierer braucht heute allerdings viel mehr als nur
einen Texteditor. Er muss im Falle von Java den Compiler aufrufen bzw. den Interpreter
starten. Oder bei der Entwicklung für PHP den Apache-Server mit PHP-Modul starten
bzw. stoppen. Diese Aktivitäten werden oft nebenbei über andere Tools oder Skripte erledigt. So nach und nach wurden die Texteditoren aufgebohrt und verbessert. Viele bieten so
genanntes Syntax-Highlighting an, um bestimmte Schlüsselworte einer Programmiersprache farbig zu markieren. Hinzu kamen oft weitere Verbesserungen, z.B. ein automatisierter
Aufruf des Compilers. Aber oft war ein Texteditor an die Programmiersprache gekoppelt
oder er bot nur für einige ausgewählte Sprachen eine spezielle Unterstützung an. Hinzu
kommt, dass einige Editoren nur auf einem Betriebssystem verfügbar sind (z.B. ist der gute UltraEdit nur für Windows erhältlich und BBEdit gibt es nur für Mac OS Classic bzw.
X).
Die Aufgaben und Fähigkeiten einer Integrierten Entwicklungsumgebung reichen weit
über das Können früherer Texteditoren hinaus. Eine moderne IDE umfasst im Regelfall
folgende Komponenten:
• Texteditor
• Compiler bzw. Interpreter
• Linker
• Debugger
• Teamwork-Unterstützungen
• GUI-Builder
• Build-Tools
• UML-Modellierung
• ...und vieles mehr
Insgesamt kann man sagen, dass man heute Software benötigt, die den gesamten Softwarelebenszyklus unterstützt.
Wer sich auf die Suche nach einer integrierten Entwicklungsumgebung für Java macht,
sieht sich einer beeindruckend großen und zudem stetig wachsenden Auswahl gegenübergestellt. Die Palette reicht von aufgebohrten Editoren bis hin zu umfangreichen Entwick-
lungsstudios mit riesigem Funktionsumfang. Ein ähnliches Spektrum decken auch die
Preise ab: von gratis“ bis für Privatleute unerschwinglich“ ist alles dabei.
”
”
1.2
Geschichte
Die weltweit erste Integrierte Entwicklungsumgebung für die Erstellung von Software
war die Maestro I von Softlab, welche ursprünglich Programm-Entwicklungs-Terminal”
System“ kurz PET“ genannt wurde. Maestro I wurde weltweit 22.000 mal installiert,
”
davon 6.000 mal in der Bundesrepublik Deutschland und war in den 70er und 80er Jahren
führend auf diesem Gebiet.
1975 Erste Vorstellung einer Entwicklungsumgebung: Harald Wieler, Mitgesellschafter
von Softlab, hat einen ersten Prototyp des PET auf Basis des Philips X 1150 Datensammelsystemes seit 1974 entwickelt. Wieler war vorher Architekt (und Programmierer) Betriebssystementwicklung für Großrechner von Radio Corporation of America und Siemens. Die
Entwicklung von Maestro I wurde mit BMFT-Mitteln gefördert. Ziel: interaktiver Programmierplatz für monatlich 1000 Mark.
Eine Woche lang und unermüdlich demonstrierte die charmante Spezialistin des Softlabs,
”
München, Frau Dr. Christiane Floyd - umringt von Trauben von Fachleuten - auf dem
Systems-Stand des Software-Hauses das Programm-Entwicklungs-Terminal-System PET“
– 21. November 1975 Computerwoche.
In den 80er Jahren kamen neben den Integrierten Entwicklungsumgebungen für Standardprogrammiersprachen der dritten Generation solche für 4GL-Programmiersprachen wie z.
B. Natural auf. Auch diese bieten neben der Programmiersprache in einer interaktiven integrierten Entwicklungsumgebung alle Werkzeuge wie: Analyse- und Designwerkzeug,
Texteditor, Maskeneditor, GUI Designer, Compiler bzw. Interpreter, Linker, Debugger,
Quelltextformatierungsfunktion.
1.3
Beispiele verschiedener IDE’s
• Eclipse
• Visual Studio
• NetBeans
• JDeveloper
• JCreator
• IntelliJ
Im folgenden Diagramm 1 sind die vier weit verbreitesten IDE’s mit ihrer prozentualen
Markverteilung angegeben: [1]
Abbildung 1: Top 4 IDE’s
1. Eclipse : 54,05 %
2. Intellij IDEA : 21,62 %
3. NetBeans : 21,62 %
4. JBuilder : 2,7 %
2
JDeveloper
JDeveloper ist eine integrierte Entwicklungsumgebung (IDE von engl. integrated development environment) der Firma Oracle ([8]). Die aktuelle Version trägt die Versionsnummer
10.1.3.3 (Stand 10/2007). Die verwendete Programmiersprache ist Java.
Neben der Entwicklung mit der Programmiersprache Java bietet der JDeveloper für folgende Programmier- und Skriptsprachen Bearbeitungs-Funktionen:
• XML
• SQL
• HTML
• Java Script
Der JDeveloper ist seit 2005 unter der Oracle Technology Network (OTN) Developer Li”
cense“ frei verfügbar und somit für Entwicklung und Deployment kostenlos. Die OTN
”
Developer License Terms “ können unter [9] eingesehen werden. Der JDeveloper ist einzeln oder als Teil der Oracle Business Platform erhältlich und kann über die Webseite der
Firma Oracle (siehe [8]) bezogen werden.
2.1
Core API
Die IDE stellt eine API (engl. Application Programming Interface), also eine Programmierschnittstelle, zu Verfügung mit welcher Erweiterungen geschrieben werden können.
So bauen auch viele weitere Oracle-Produkte auf dieser API auf, z.B. Oracle Business
Intelligence, BPEL und Portal (als Teil der Oracle Business Platform). Ebenfalls baut der
SQL-Developer auf dieser API auf. Zusätzlich gibt es auch ein PHP-Plugin welches über
diese Schnittstelle integriert wird.
2.2
Geschichte
Die erste Version des JDevelopers basiert auf dem JBuilder der Firma Borland (ebenfalls
eine IDE) und ist 1998 erschienen. Im Jahr 2001 wurde eine komplett auf Java-basierende
Neuentwicklung vorgenommen um ein rein Java-basierendes Produkt zu erhalten, die
Versionsnummer wurde damals als 9i“ bezeichnet. Die Versions-Nummer 10g“ führ”
”
te das ADF (engl. Application Development Framework) ein. Die aktuelle Version der
10g“ Entwicklungsreihe ist 10.1.3.3 (Stand 10/2007). Seit März 2007 bietet Oracle ei”
ne Vorschau-Version (Preview) der kommenden Versionen 11g“ an. Unter dem in [11]
”
angegeben Link gibt es weitere Informationen zur Geschichte.
2.3
Versionen
Der JDeveloper wird in drei unterschiedlichen Versionen angeboten. Dies sind die Versionen Java-Edition (Kapitel 2.3.1 auf Seite 9), J2EE-Edition (Kapitel 2.3.2 auf Seite 9) und
Studio-Edition (Kapitel 2.3.3 auf Seite 9). Alle Versionen werden für die Betriebssystem
Windows XP, 2003 und 2000, Linux sowie Max OS X 10.4 und höher angeboten.
2.3.1
Java-Edition
Die Java-Edition ist die Standard-Version und enthält die wichtigsten Programm-Features
einer IDE, so z.B. den Code-Editor und den Debugger. In Kapitel 2.4 auf Seite 9 wird näher
auf die wichtigsten Eigenschaften eingegangen. Die Bestandteile die für die DatenbankEntwicklung nötig sind fehlen, ebenso der UML-Teil sowie die Unterstützung für das Application Development Framework (siehe auch Kapitel 2.4.6 auf Seite 13).
2.3.2
J2EE-Edition
Die J2EE-Version enthält in Abgrenzung zur Java-Edition differenzierte Datenbank- und
UML-Funktionen sowie alle Features der Java-Edition.
2.3.3
Studio-Edition
Die Studio Edition enthält alle Features der Java- und J2EE-Edition und kann als komplet”
te Version“ angesehen werden, da in dieser Version auch das JDK (Java Development Kit)
enthalten ist. Das JDK besteht aus der Java-Laufzeitumgebung JRE (Java Runtime Environment), dem Java-Compiler und diversen Entwicklungswerkzeugen. In Abgrenzung zur
J2EE-Edition können in der Studio-Edition zusätzlich Applikationen nach dem Application Development Framework (siehe auch Kapitel 2.4.6 auf Seite 13) entwickelt werden.
2.4
Eigenschaften & Besonderheiten
Der JDeveloper bietet viele Komfort-Funktionen die dem Benutzer das entwickeln von
Applikationen erleicherten können, die Wichtigsten werden in diesem Abschnitt vorgestellt. Viele Funktionen gelten inzwischen als Trivial und werden nicht mehr dargestellt.
2.4.1
Complete Lifecycle
Der JDeveloper unterstützt die Entwicklung der Applikation während der gesamten Entwicklungsdauer. Die einzelnen Phasen die der JDeveloper in der Entwicklung abdeckt sind
in der folgenden Aufzählung und in der Abbildung 2 auf Seite 10 dargestellt.
Full Life Cycle Support:
1. Design (siehe auch UML (Kapitel 2.4.8 auf Seite 13))
2. Code (siehe auch Code-Editor (Kapitel 2.4.2 auf Seite 10))
3. Debug and Test (siehe auch Debugger (Kapitel 2.4.3 auf Seite 11) und JUnit (Kapitel
2.4.12 auf Seite 15))
4. Analyze
5. Tune
6. Deploy
7. Versioning (siehe auch CVS (Kapitel 2.4.13 auf Seite 15))
Abbildung 2: Full Life Cycle Support (Quelle: [8])
2.4.2
Code-Editor
Der Code-Editor des JDevelopers ist ein moderner Texteditor mit vielen Methoden der
Textmanipulierung, unter anderem bietet er ein Syntax-Highlighting, wodurch wichtige Schlüsselwörter und Sprachelemente der Programmiersprachen durch unterschiedliche
Schrift- und Farbvarienten gekennzeichnet. Diese Funktion ist für den Entwickler von erheblichem Vorteil, da das Syntax-Highlighting die Struktur des Quellcodes besser erkennen lässt. Auch vereinfacht es die Erstellung von XML- und HTML-Dateien erheblich.
Abbildung 3: Code-Editor (Quelle: [8])
Als weiteres Feature besitzt der Code-Editor ein Auto-Vervollständigung von bereits vorhanden Methoden, Klassen oder Objekten, dies spart Tipparbeit und Zeit. Dieses Feature
ist in Abbildung 3 auf Seite 11 dargestellt.
Zur einfacheren Navigation innerhalb eines Projektes gibt es einen Projekt-Explorer welcher einen Überblick über alle eingefügten Klassen und Ressourcen gibt. In diesem sind
die Klassen hierarchisch in einem Projekt-Baum eingefügt. Hierdurch ist ein einfaches
Suchen und Finden von bestimmten Methoden und Klassen möglich.
Der Code-Editor funktioniert nach dem heute üblichen Konzept What you see is what you
”
get“ (WYSIWYG, deutsch Was du siehst, ist was du bekommst“), das heisst Änderungen
”
am Code werden in Echtzeit umgesetzt und die Auswirkungen sind unmittelbar sichtbar.
Dies ist sowohl bei der Bearbeitung von HTML, JSF, JSP und Swing als auch bei der Bearbeitung des Quell-Codes ein Vorteil. Hierdurch ist eine komfortable visuelle Gestaltung
der Bedien-Oberfläche möglich.
2.4.3
Debugger
Der JDeveloper enthält einen modernen Debugger der dem Entwickler die üblichen Funktionen wie Break-Points und dem Anzeigen von Variablen-Inhalten während der Laufzeit
des Programms bietet. Mit dem Debugger reduziert sich der Aufwand für das Auffinden
von Fehler während der Entwicklung deutlich.
2.4.4
Online-Hilfe
Oracle bietet eine Online-Hilfe über die Taste F1“ oder die Menu-Taste Help“ an. In
”
”
ihr befindet sich Hilfe zu den wichtigsten Stichworten und Sprachelementen. Über die
Tastenkombination STRG+D“ können zusätzlich zu jeder Klasse die Informationen der
”
JavaDoc-Dokumentation abgefragt werden.
2.4.5
XML
Abbildung 4: XML-Modeler (Quelle: [8])
Mit dem JDeveloper können XML-Dateien (.XML) visuell erstellt und bearbeitet werden. Zusätzlich können XML-Schema-Dateien (.XSD) mit dem XML-Modeler erstellt,
ein Screenshot dieser Eingabe-Maske ist in Abbildung 4 auf Seite 12 zu sehen.
2.4.6
Application Development Framework
Der JDeveloper unterstützt mit der Studio-Edition (Kap. 2.3.3, Seite 9) die Entwicklung
von Anwendungen mit dem Application Development Framework, kurz ADF. ADF ist ein
Werkzeug mit welchem Applikationen nach dem MVC (Model-View-Controller) Architektur entwickelt werden können.
ADF basiert auf vier Schichten:
1. Business Services
2. Model
3. View
4. Controller
Die letzten drei Schichten basieren auf der MVC-Architektur. Die View-Schicht stellt z.B.
User-Interface (UI) der Applikation zu Verfügung. Dieses kann entweder Serverseitig über
JSP (Java Server Pages) oder JSF (Jave Server Pages) oder Clientseitig über Java Swing
angezeigt werden. Der Controller, steuert den Datenfluß innerhalb der Appikation, bei
Web-Applikationen meist über Struts oder JSF, welche von der Model-Schicht mit den
Business Services verknüpft werden. In dieser Business-Services-Schicht werden Verbindungen mit einer persistenten Datenschicht hergestellt. Das können zum Beispiel relationale Datenbanken oder XML-Dateien sein.
Die Architektur mit den verschiedenen Schichten kann in Abbildung 5 auf Seite 14 eingesehen werden. Weitere Informationen hierzu können auch unter [10] der Oracle Applica”
tion Development Framework FAQ“ nachgesehen werden.
2.4.7
Java Swing
Swing ist eine Java-Bibliothek zum Erstellen von graphischen Benutzer-Oberflächen. Swing
ist Bestandteil jeder Java-Installation und wird somit auch vom JDeveloper unterstützt.
2.4.8
UML-Modellierung
Mit dem JDeveloper können Applikationen unter Verwendung des UML-Models (Unified Modeling Language) entwickelt werden. UML wird eingesetzt um Prozesse als Form
einer Qualitätssicherung, meist graphisch, zu standardisieren. Die Maske für die Erstellung von Use-Cases ist in Abbildung 6 auf Seite 15 dargestellt. Auch Klassendiagramme
können mit UML und dem JDeveloper erstellt werden, als zusätzliche Komfort-Funktion
können daraus dann automatasiert echte“ Java-Klassen mit den jeweils passenden Metho”
denrümpfen erstellt werden. Dieses Feature gibt es erst ab der J2EE-Edtion (Kap. 2.3.2,
Seite 9).
Abbildung 5: Application Development Framework (Quelle: [8])
2.4.9
JSP
Der JDeveloper bietet Funktionen für die Entwicklung von JSP (Java Server Pages). Mit
JSP kann Java-Code innerhalb von HTML- und XML-Dateien eines Web-Servers dynamische Ausgaben erzeugen.
2.4.10
Struts
Der JDeveloper unterstützt die Java-Entwicklung unter Verwendung von Struts. Struts ist
ein freies Framework für die Entwicklung von Web-Applikationen.
2.4.11
Ant
Ant ist ein Entwicklungsprogramm mit welchem, ähnlich dem Programm make“, die
”
Erstellung und Kompilierung von Quellcode automatisiert werden kann. Der JDeveloper
unterstützt Ant.
Abbildung 6: UML Use-Case (Quelle: [8])
2.4.12
JUnit
JUnit ist eine Java-Test-Framework, welches zur Qualitätssicherung innerhalb des JDevelopers eingesetzt werden kann. Dabei werden meist einzelne Methoden oder Klassen
getestet.
2.4.13
CVS
CVS steht für Concurrent Versions System“ und wird zur Versionsverwaltung in der
”
Software-Entwicklung eingsetzt. JDeveloper bietet hier alle nötigen Funktionen um ein
Projekt über einen CVS-Server zu verwalten.
3
IntelliJ
3.1
Allgemeines zu IntelliJ
Die Java Entwicklungsumgebung IntelliJ IDEA ist von der Firma JetBrains und bekam
ihren Namen durch ihr verhalten, d.h. Sie unterstützt den Entwickler durch ein intelligen”
tes“ Verhalten. Die IDE bringt einigs schon mit sich, zum einen bestizt sie einen gut handhabbaren GUI-Generator, weiter besitzt sie auch Funktionen zur Versionierung(Rational
ClearCase, CVS), für Junit, für Ant und Unterstützt J2EE. Da die IDE komplett in Java entwickelt wurde ist sie Betriebssystem unabhängig und kann somit auf fast allen Systemen
benutzt werden. Des weiteren ist das Motto von IntelliJ IDEA develop with pleasure“
”
( entwickle mit Freude“) weshalb sehr auf umfangreiche Hilfefunktionen und niedriger
”
Verbrauch von Rechnerressourcen geachtet wurde
3.1.1
Systemvorraussetzungen
Diese System Voraussetzungen gelten für die aktuelle Version IntelliJ IDEA 7.0.1.[2]
Sprache: Englisch
Betriebssysteme: Windows NT, 2000, XP, 2003, Vista,
Linux,
Mac OS X, Mac OS X/Intel
Voraussetzungen: 800 MHz CPU,
256 MByte RAM,
300 MByte HD,
MacOS X 10.4 oder höher
3.1.2
Lizenz
IntelliJ ist kostenpflichtig für kleine Projekte ist es jedoch möglich eine Testversion zu
downloaden die man drei Monate benutzen kann.
Preise:[2]
3Monate Testversion kostenlos
Schullizenz kostenlos
Private Lizenz 249 USD
Kommerzielle Lizenz 499 USD
3.2
Geschichte
Die Wurzeln der IntelliJ IDEA IDE der polnischen Softwarefirma JetBrains liegen im
Refactoring. Anfangs wurden Refactoring Plugins für damals aktuelle Entwicklungsumgebungen wie z.B. der JBuilder von Borland erstellt. Über diesen Umweg mit den Plugins
wurde dann unter dem Motto IntelliJ: Develop with pleasure eine eigenständige IDE entwickelt, die mittlerweile zu den innovativsten und ausgereiftesten JAVA IDE’s gehört. Der
Name IntelliJ entstand daher, dass man über bestimmte intelligente“ Funktionen dem
”
Entwickler das Programmieren erleichtern wollte.
[7]
3.2.1
Erfolge
Best Java Application - IntelliJ IDEA 6.0
Best Java Debugging Tool - IntelliJ IDEA 6.0
Best Java EE App Dev. Framework - IntelliJ IDEA 6.0
Best Java IDE Environment - IntelliJ IDEA 6.0
Best Team Development Tool - “IntelliJ IDEA 6.0 / TeamCity 1.0
Best Tool for Rich Internet Applications - IntelliJ IDEA 6.0
Best IDE - IntelliJ IDEA 6.0
Best Web Development Tool - IntelliJ IDEA 6.0
IntelliJ IDEA wurde 2005 und 2006 von den über 17.000 Lesern des Java Developer’s
Journal (JDJ) zur besten Java-IDE gewählt.
3.3
3.3.1
Funktionen
Codevervollständigung
Der größte Vorteil der Codevervollständigung Funktion, ist dass man den genauen Aufbau des JDK nicht kennen muss, z.B. weißt IDEA auf vergessene bzw. fehlende importAnweisungen hin oder aber löscht nicht verwendete imports. Diese Funktion kommt vorallem Anfängern entgegen die sich dann mehr um das Programmdesign kümmern könnnen
und nicht erst nach richtiger Syntax und Einstellungen suchen müssen. Dadurch nimmt
IntelliJ auch ein Großteil der Tipparbeit für den Benutzer ab.
Selbstverständl ich können über die Codevervollständigung auch Klassennamen, Variablen, Methoden und Schlüsselwörter vervollständigt werden. Über diese vorgeschlagenen
Werte kann man sich somit auch einen Überblick verschaffen z.B. welche Methoden auf
eine Variable aufgerufen werden können.
Abbildung 7: Beispeil einer Codevervollständigung
[7]
Des Weiteren öffnet sich ein Popup Fenster, beim eingeben eines Methodenaufrufs, in
welchem alle möglichen Methodensignaturen aufgelistet werden, dies ist vor allem bei
Methoden hilfreich die sehr oft überladen wurden. Dazu wird der Entwickler noch weiter
von der IntelliJ IDEA unterstützt, da diese die Jeweilige Parameter Position in der auf
gepopten Parameterliste hervorhebt.
Abbildung 8: Popup Fenster bei Eingabe einer Methode
[7]
3.3.2
Code Layout Manager
Die Funktion des Code Layout Managers liegt darin den Code auf Wunsch des Users neu
und gut leserlich zu formatieren. Dazu bringt er auch noch den Vorteil, dass wenn man
im Team entwickelt man eine einheitlich Formatierung bekommt, ohne vorher erst groß
Regel festlegen zu müssen.
3.3.3
Refactoring
Da die Wurzeln von IntelliJ IDEA im Refactoring liegen wurde natürlich auch viel Wert
auf die Refactoringfähigkeiten gelegt. Hier eine kleine Beschreinung der bekanntesten Refactoring Funktionen[6].
Abbildung 9: alle Refactoringfunktionen im Überblick
[7]
Renaming:
über diese Funktion können Pakete, Klassen Methoden oder Variablen problemlos umbenannt werden. Hierzu wird zu allen betroffenen Sourcen und Referenzen ein Sourcebaum
erzeugt über den, dann die gewünschten Änderungen ganz oder aber auch wahlweise auf
einzelne Teile vorgenommen werden.
Move:
per move Funktion können komfortabel Klassen oder Pakete verschoben werden und die
Vererbungshierarchie wird ggf. angepasst.
Copy:
Klassen können hierdurch einfach kopiert werden, hierzu muss man nur noch den neuen
Klassennamen und der Name des Zielpakets angeben.
Introduce:
ein weiteres Refactoring Mittel ist das Introduce Verfahren, das ermöglich Variablen, Konstanten und Parameter für selektierte Ausdrücke zu erzeugen und eine Wertzuweisung vorzunehmen.
Extract:
Ausgewählte Anweisungen können über eine Extrahierungsfunktion unter Angabe von
Methodenname, Zugriffsmodifizierer und gegebenenfalls Übergabeparameter leicht zu einer Methode umgewandelt werden. Die Ausgliederung von Klasseneigenschaften in Interfaces oder Superklassen lässt sich über Extract Interface bzw. Extract Method bewerkstelligen.
3.3.4
Webanwendungen
Um Webanwendungen entwickeln zu können wurden von den JetBrains Entwicklern die
Technologien JSP und XML in die IDE eingefügt. Dadurch werden die User der IDE bei
der Entwicklung von JSP- bzw. XML-Programmen von der Quelltextvervollständigung
und der Syntaxhervorhebung unterstützt.
3.3.5
Sprachen
Zusätzlich zu Java unterstützt IntelliJ auch noch folgende weiter Sprachen ohne, dass der
Benutzer ein Plugin oder ähnliches installieren muss.
Java Script, Flex
HTML, XHTML, CSS
XML, XSL
Ruby, Jruby
Groovy
3.3.6
Live Templates
Unter Live Templates werden Makros verstanden, die teilweise vordefiniert aber auch vom
Benutzer erstellt werden können. Das Prinzip der Live Templates ist über ein Kürzel und
der Tab-Taste wird der Code vervollständigt.
Z.B. gibt man ein sout ein und drückt danach die Tab-Taste, erhält man ein in dieser Zeile
ein System.out.println( “).
”
3.3.7
Versionskontrolle
Neben den Plugins für alle aktuellen Versionskontollsystemen(CVS, Visual Source Save,
Startteam und ClearCase) bietet IntelliJ IDEA auch noch eine lokale History Verwaltung
mit der man alle Änderungen am Sourcecode überwachen kann und ggf. auf einen älteren
Stand zurück gehen kann.
Da CVS, aus Sicht der IntelliJ Entwicklern das beliebteste Versionskontrollsystem ist, wurde dieses umfangreich in diese Entwicklungsumgebung eingebettet, sodass kein weiterer
externer CVS Client nötig sein wird.
Dafür wurde eine grafische Komponete entwickelt die den Namen CVS File View“ hat.
”
Das CVS File View kann alle Daten in einer Listen- oder in einer Baumstruktur darstellen.
Dazu werden zu jeder Datei ihr Status(geändert, neu, gelöscht, zusammengefügt, Konflikte) angezeigt. Zusätzlich wird auch die CVS Historie mit allen Informationen(Versionsnummer,
Datum, CVS-Kommentar, Tag- und Branch-Angaben) übersichtlich dargestellt.
Darüber hinaus besitzt der CVS File Viewer den sogenannten Differce Viewer, der durch
Angabe einer Versionsnummer oder eines Datums die aktuelle Version mit der gewünschten Version vergleicht. Einen weitere Funktion ist Annotate, über die man sich am linken
Rand des Editors zu jeder Zeile CVS Informationen(z.B. Versionsnummer, Name des Entwicklers, ...) anzeigen lassen kann.
3.3.8
Fehlerverarbeitung
Der Editor dieser IDE erkennt sofort Synataxfehler und unterstreicht diese rot, Warnungen,
Fehler die in der Laufzeit auftreten können, werden gelb hinterlegt. Will man den Grund
eines Fehlers erfahren so muss man mit der Maus nur über die jeweilige Stelle fahren und
eine Fehlermeldung wird angezeigt.
Zusätzlich besitzt IntelliJ noch eine sogenannte Intention Action“, welche Fehlermeldun”
gen und Warnungen analysiert und dafür dann entsprechende Lösungsvorschläge bietet.
Verwendet man beispielsweise eine Anweisung, die eine Exception auslösen kann und es
Abbildung 10: CVS File Client
[7]
Abbildung 11: Feherlmarkierung in IntelliJ IDEA
[7]
Abbildung 12: Verbesserungsvorschläge
[7]
gibt weder eine throws-Deklaration noch einen entsprechenden try...catch-Block, unterbreitet IntelliJ beide Möglichkeiten als Lösungsvorschlag. Wählt man nun einen Lösungsvorschlag aus erzeugt IntelliJ das jeweilige Konstrukt.
Natürlich werden Fehler auch schon durch einfache Funktionen des Editors, wie SyntaxHighlighting, Codestyling und Formatierungsregeln, Farbschemata für verschiedene Dateitypen, übersichtliche Darstellung der geöffneten Dateien durch einzelne Reiter und Nettigkeiten wie das Auf- und Zuklappen von Methoden, symbolische Kennzeichnung von
überschriebenen und implementierten Methoden durch kleine Icons am linken Rand, Splitten des Editors in zwei Teile und ein Werkzeug zum Optimieren der Imports vorgebeugt.
3.3.9
Clipboard Stacking
Die Clipboard Stacking ist eine überaus nützliche Funktion die mit dieser Entwicklungsumgebung mitgeliefert wird. Hier werden in einem Stack mehrer Copy Aufrufe gespeichert, sodass man beim Einfügen auf mehrere kopierte Daten zurück greifen kann.
3.4
Erweiterungen
Die Entwicklungsumgebung wird über Plugins erweitert, die teileweise vom Hersteller
und teilweise von der IntelliJ Community entwickelt werden. Mittlerweile gibt es über
400 Verschidene Plugins, die die IDE um weitere Funktionen bereichern. Die Erweiterungen können auf der Plugin Seite des Herstellers begutachtet und heruntergeladen werden
(http://plugins.intellij.net/).
Grundsätzlich ist zu sagen dass es vom Hersteller JetBrains erwünscht ist, das Plugins für
IntelliJ entwickelt werden. Der Hersteller geht sogar noch ein Stück weiter und veranstalltet Wettbewerbe in denen Entwickler hoch dotierte Preise gewinnen können. Im Folgenden
die 10 beliebtesten und die 10 best bewertesten Plugins:
10 Top Downloads: (Downloads)[5]
1. SQL Query Plugin(98625) SQL Plugin das die JDBC nutzt.
2. IdeaJad(60354) Plugin für den Decompiler JAD
3. GenerateToString(60236) Fügt die toString() Methode in das Genarate Menü ein
4. simpleUML(53065) ermöglicht das erstellen von Klassen-, Abhänigkeits-, Paket
und Sequenzdiagrammen
5. JBoss Integration(50381) erlaubt das konfigurieren und benutzen des Jboss Apllication Servers
6. JunitGenerator(42776) erlaubt das erstellen vom JUnit Tests
7. unitTest(41652) vereinfacht das erstellen und erhalten von Unit Tests
8. RegexPlugin(40110) ein Explorer für Regular Expressions
9. Hibernate Tools(37154) ein Plugin für das Hibernate Framework
10. XPathView + XSLT-Support(34068) Plugin für XPath und XSLT Sprachen
10 Top Rated: (Ratings)[5]
1. ToggelTest(5.0) ermöglicht das springen zwischen dem Code und eines Testprogramms
2. MKS(5.0) Plugin für MKS Source Integrity Versionkontrollsystem
3. Describe Key(5.0) mit diesem Plugin kann man raus finden was für eine Funktion
ein Schlüssel oder ein Shortcut hat
4. Lineage(5.0) erstellt eine Klasse die alle nicht finalen Klassen einbindet
5. FaTPlug(5.0) FTP Plugin
6. Axis TCP Monitor Plugin(5.0) integriet die Apache Axis Engine
7. TunnelliJ(5.0) erlaubt das sniffen einer TCP Verbindung
8. IdeaVIM(5.0) VI Emulator
9. TabRecoder(5.0) Tabellenverarbeitung
10. File Info(5.0) zeigt Informationen über das aktuelle File an
4
JCreator
Abbildung 13: Logo Xinox JCreator
4.1
Allgemeines
JCreator ist eine integrierte Entwicklungsumgebung für JAVA von der Firma Xinox Software.[17]
Xinox Software ist mit dieser Entwicklungsumgebung seit dem Jahr 2000 am Markt und
bietet den JCreator derzeit in der Version 4.5 in zwei Asführungen, einer kostenlosen Lite Edition und einer kommerziellen Pro Version, welche einige zusätzliche Features unterstützt. Die Lite Version ist allerdings nur für kleinere Projekte geeignet, da bei dieser Variante des JCreator einige wichtige Funktionen, wie zum Beipiel ein Debugger, Codevervollständigung oder eine CVS Integration nicht vorhanden sind. Die bessere Pro-Version
der IDE kann beim Hersteller als Trial heruntergeladen werden und muss nach Ablauf der
Testzeit für 89 US$ registriert werden. Eine Übersicht über den genauen Funktionsumfang
der beiden JCreator Versionen wir in Abschnitt 4.3 auf Seite 27 gegeben.
Insgesamt ist diese integrierte Entwicklungsumgebung sowohl für Fortgeschrittene Programmierer als auch für Anfänger im Bereich der JAVA Programmierung ausgelegt. Die
Philosophie des JCreator ist die allgemeine Einfachheit und Übersichtlichkeit der Bedienung, die vor allem Anfängern, den Einstieg in das Arbeiten mit Entwicklungstools
erleichtern sollen. Der Entwickler soll sich voll und ganz auf seine eigentliche Arbeit,
das Programmieren konzentrieren können, und sich nicht durch unverständliche Menüs
quälen.
4.2
Besonderheiten
JCreator wurde im Gegensatz zu den meisten anderen Java Entwicklungsumgebungen
nicht in Java sondern in C++ implementiert. Durch die C++ Implementation ist diese Platform sehr viel performanter und Ressourcen sparender als vergleichbare Softwarelösungen
und ermöglicht ein sehr flüssiges Arbeiten mit der grafischen Bedienoberfläche. Desweiteren ermöglichte es die Entscheidung zu C++ als Programmiersprache eine echtes“ Win”
dows Look & Feel“ bei der Benutzeroberfläche zu erhalten.[15] In Java programmierte
”
Oberflächen erreichen dies meistens nur eingeschränkt und das Look & Feel“ ist einge”
fleischten Windows-Benutzern immer ein wenig fremd. Das flüssiges Arbeiten mit JAVA basierten grafischen Oberflächen erfordert außerdem deutlich schnellere Systeme und
mehr Systemressourcen. Allerdings hat JCreator den Nachteil, dass es nur für Windows
Betriebssysteme erhältlich ist. Abbildung 14 zeigt den Startbildschirm und das typische
Windows Look & Feel“.
”
Abbildung 14: JCreator Start Bildschirm
Für JCreator spricht außerdem der übersichtliche Aufbau und die relativ einfache Bedienung der Oberfläche. Gerade Einsteiger freuen sich, wenn Sie vor dem ersten Kompilieren nicht liebevoll und sorgfältig in der Menüstruktur versteckte Parameter konfigurieren
müssen. Auch laufen JCreator-Benutzer nicht Gefahr, sich von vorlauten Assistenten fertige Applikations-Gerüste monströsen Ausmaßes vorwerfen zu lassen die sie nicht verstehen. Trotzdem finden auch Profis reichlich Möglichkeiten ihre Arbeit zu optimieren.
4.3
Funktionsumfang
JCreator verfügt weitestgehen über alle üblichen Fähigkeiten moderner integrierter Entwicklungsumgebungen. Der IDE fehlt jedoch im Vergleich zu manchen Konkurrenzproukten ein GUI Builder, der nicht einmal in der Pro Version enthalten ist. Der genaue Funktionsumfang des JCreator kann in die Bereiche [16]
• Editor
• GUI
• File Management
• JAVA
• JSP
• Ant
gegliedert werden und wird in den folgenden Unterkapiteln näher erleutert.
4.3.1
Editor
Der Quelltexteditor enthält folgende Features:
• Syntaxhervorhebung
• Zeilennummerierung
• Search and Replace Funktionen
• Auto-Vervollständigung
• Bookmarking
• Intelligente Formatierung und Einrückung des Codes
• Blockauswahl
Die Pro Version enthält zusätzlich die Unterstützung von Code Templates und Macros.
4.3.2
User Interface
Die Benutzeroberfläche von JCreator lässt sich individuell anpassen und konfigurieren. Sie
bietet die üblichen Sichten, wie beispielsweise eine Package-Ansicht oder eine Taskansicht
für Aufgabenlisten. Außerdem gibt es noch eine Klassenansicht und eine Dateiansicht. Die
Abbildung 15 zeigt den Editor mit Java Code Beispiel und den Ansichten Package-View“
”
und File-View“.
”
Beim Anpassen der Oberfläche helfen unterstützende Docking Assistenten, es lassen sich
eigene Buttons definieren man kann Code im Vollscreen Modus bearbeiten. Aus den Menüs
lassen sich diverse Assistenten starten, die das bequeme Erstellen von Projekten über
Projektmanagementfunktionen, Klassen, Schnittstellen, Java Beans und anderem ermöglichen.
Abbildung 15: JCreator User Interface
4.3.3
File Management
JCreator bietet eine Workspace Struktur, in die sich mehrere Projekte integrieren lassen.
Projekte werden in virtuellen Ordnern verwaltet. Dateien können direkt aus der Datei Ansicht des Editors gelöscht, umbenannt, importiert und exportiert werden. Weitere Einstellungen können über den File Properties Viewer vorgenommen werden. In der Pro-Version
verfügt der JCreator außerdem über eine CVS Unterstützung zur Teamarbeit.
4.3.4
JAVA-Unterstützung
• Klassen und Schnittstellen Wizard
• File Splitter
• Projekt Builder
• JDK Tools
• Classpath Management
• Java Console
Die Pro Version enthält außerdem:
• Schnittstellen Wizard
• Java Beans Wizard
• Java Debugger
• Code Vervollständigung
• Context-sensitive Hilfe für Java Klassen, Methoden und Variablen
4.3.5
JSP-Unterstützung
JCreator verfügt standartmäßig ebenfalls über eine JSP-Unterstützung mit speziell eingefärbter Syntaxhervorhebung. In der Professional Ausführung kommt eine Code Vervollständigung für JAVA und HTML Tags und die Unterstützung für spezielle Code Templates hinzu.
4.3.6
Ant
Das Build Tool Ant wird ebenfalls unterstützt und die Syntax besonders hervorgehoben.
In der kostenpflichtigen Version gibt es auch hier weitere Funtkionen die sich wie folgt
darstellen:
• Code-Vervollständigung
• Code-Templates
• Explorer Ansicht
• Zuweisen von IDE Kommandos
5
5.1
NetBeans
Allgemeines zu NetBeans
NetBeans ist eine integrierte Entwicklungsumgebung, die unter einer dualen Lizenz, bestehend aus der Common Development and Distribution License (CDDL) v1.0 und der
GNU General Public License (GPL) v2 steht.
Abbildung 16: NetBeans 5.5.1 – Willkommensbildschirm
Die Entwicklungsumgebung (kurz IDE, Integrated Development Environment) ist komplett in Java geschrieben, daher kann sie grundsätzlich auf allen Plattformen, für welche
eine Java Virtual Machine verfügbar ist, eingesetzt werden. NetBeans ist in erster Linie
für die Entwicklung von Java Programmen erstellt worden, doch durch den modularen
Aufbau kann die IDE auch für Sprachen wie C, C++, Ruby und Fortan verwendet werden. NetBeans verfügt bereits ohne die Installation zusätzlicher Komponenten über einen
GUI-Builder, mit dem sehr einfach Grafische Benutzeroberflächen erstellt werden können.
Außerdem wird vom NetBeans Projekt das NetBeans Framework zur Verfügung gestellt.
Dabei handelt es sich um eine “leere Anwendung”, die lediglich Grundfunktionen zur
Verfügung stellt. Um eine vollwertige Anwendung zu erhalten, muss das Framework nur
noch um die entsprechenden Funktionen erweitert werden.
Informationen zur Entstehung von NetBeans findet man in Absatz 5.2.
5.2
Geschichte
5.3
Die Anfänge
Der Ursprung der Entwicklungsumgebung geht auf das Jahr 1996 zurück. Studenten aus
der Tschechischen Republik riefen das Projekt “Xelfi” ins Leben. Ziel von “Xelfi” war eine
JAVA Entwicklungsumgebung, welche über Funktionen zur einfachen Erstellung von grafischen Benutzeroberflächen (kurz GUI, Graphical User Interface) verfügen sollte. Kurze
Zeit später entstand aus dem Projekt die Firma “NetBeans”. Dabei wurde die Entwicklungsumgebung unter dem Namen “Developer” vermarktet.
5.4
Der Einstieg von Sun Microsystems
Im Oktober 1999 wurde die Firma “NetBeans” von Sun Microsystems übernommen. Kurze Zeit nach der Übernahme wurde “Forté for Java Community Edition IDE” veröffentlicht. Dies basierte zu großen Teilen auf “Developer 3.0” von NetBeans.
5.5
NetBeans wird Open Source
Einige Monate Später, im Juni 2000, wurde “Forté for Java Community Edition IDE” unter
dem Namen “NetBeans” der Open Source Community zur Verfügung gestellt. Heute hat
die Community von “NetBeans” weltweit über 100 Partner, darunter Firmen wie ebay,
Nokia, und Hewlett-Packard[19].
Abbildung 17: Logo von NetBeans
5.6
Funktionen von NetBeans
NetBeans bietet eine Fülle von Funktionen, die den Programmierer bei seiner Tätigkeit
unterstützen. Einige davon werden in den folgenden Absätzen näher erläutert.
5.7
GUI Builder – Matisse
Matisse, der GUI Builder von NetBeans erlaubt das einfache und schnelle Erstellen von
grafischen Benutzeroberflächen. Dabei sind keine tiefgreifenden Java-Kenntnisse zur GUI
Erstellung erforderlich. Der GUI-Builder bringt einen eigenen Layoutmanager (“GroupLayout”) mit. Abbildung 18 zeigt einen Screenshot des GUI-Builders.
Abbildung 18: Matisse – der NetBeans GUI-Builder
Grafische Benutzeroberflächen werden mit Matisse einfach per Drag & Drop erstellt. Hierzu werden einfach die Bestandteile der GUI von der Palette (Bereich 2) auf ein leeres Panel
oder Frame (Bereich 1) gezogen. Bei der Anordnung der Komponenten wird der Anwender von dynamischen Hilfslinien unterstützt. Die Eigenschaften einer Komponente, wie
beispielsweise die Beschriftung eines Buttons, können im Bereich 3 geändert werden.
Hierzu muss man die entsprechende Komponente einfach mit der Maus auf dem Panel
oder Frame auswählen. Es ist auch möglich, die Eigenschaften mehrerer Komponenten
gleichzeitig zu bearbeiten. Hierzu müssen einfach mehrere Komponenten ausgewählt bzw.
markiert werden. In Bereich 4 wird die hierarchische Aufbau der GUI in einem Baum
dargestellt. Aus ihm kann man beispielsweise entnehmen welcher Button welchem Panel zugeordnet ist, außerdem kann hier auch eine Komponente selektiert werden um ihre
Eigenschaften zu bearbeiten.
5.8
Funktionen des Quelltexteditors
Der Quelltexteditor einer Entwicklungsumgebung bietet dem Programmierer, im Gegensatz zu einem herkömmlichen Texteditor, viele Funktionen welche die Codeeingabe deutlich erleichtern. Was der Quelltexteditor von NetBeans bietet wird in den folgenden Absätzen
erläutert.
Syntaxhervorhebung Wörter im Quelltext werden abhängig von ihrer Bedeutung in unterschiedlichen Farben dargestellt. Dadurch wird die Lesbarkeit des Sourcecode deutlich
gesteigert. Abbildung 5.8 zeigt die Syntaxhervorhebung von NetBeans.
Abbildung 19: NetBeans – Syntaxhervorhebung
Codevervollständigung Die Codevervollständigung in NetBeans unterstützt den Programmierer bei der Eingabe des Quellcodes, und kann diese deutlich beschleunigen. Sie
tritt an mehreren Stellen auf. Gibt man den Name eines Pakets ein, werden die im Paket
enthaltenen Klassen und Methoden in einem Auswahlfenster (Abbildung 5.8) angezeigt.
Das selbe Verhalten tritt auch bei der Eingabe eines Objektnamen auf, hier werden jedoch
die zugehörigen sichtbaren Methoden, bzw. Variablen angezeigt. Daneben bietet die Co-
devervollständigung aber auch andere Funktionen, wie das automatische generieren der
Getter- und Setter-Methoden einer Klasse.
Abbildung 20: NetBeans – Syntaxvervollständigung
Refactoring Refactoring bezeichnet die Umgestaltung des Quelltextes eines Computerprogramms. NetBeans stellt hierzu mehrere Funktionen zur Verfügung. In den folgenden
Zeilen werden einige der wichtigsten beschrieben.
Umbenennen Mit dieser Funktion können Klassen, Variablen und Methoden umbenannt
werden. Dabei wird aber deren Gültigkeitsbereich beachtet. Soll beispielsweise ein
Klassenvariable umbenannt werden, und es existiert eine gleichnamige lokale Variable, bleibt letztere unverändert.
Methode extrahieren Diese Funktion verschiebt ein markiertes Stück Quelltext in eine
Methode. Dabei wird falls erforderlich die Parameterliste automatisch generiert.
Methodenparameter ändern Diese Funktion erlaubt das ändern der Parameterliste einer Methode. Es können Parameter hinzugefügt und ungenutzte Parameter entfernt
werden.
In Superklasse/Subklasse verschieben Mit dieser Funktion können Methoden und Variablen in eine abgeleitete bzw. übergeordnete Klasse verschoben werden.
Klasse verschieben Damit kann eine Klasse in ein anderes Paket verschoben werden.
5.9
CVS Unterstützung
CVS (Concurrent Versions System) ist ein weit verbreitetes System zur Versionsverwaltung von Softwareprojekten, an denen auch mehrere Entwickler beteiligt sein können.
Dabei wird der Quellcode zentral auf einem Server gespeichert und vom Entwickler vor
dem bearbeiten “ausgecheckt”. NetBeans unterstützt den Entwickler beim Umgang mit
CVS-Projekten.
5.10
Debugger
NetBeans stellt dem Entwickler auch einen Debugger zur Verfügung. Damit kann er das
Programm zur Laufzeit auf Fehler untersuchen. Mit dem Debugger kann das Programm
zeilenweise durchlaufen werden. Dabei können Objekte und Variablen überwacht, also
ihre Werte beobachtet werden. Abbildung 5.10 zeigt einen Screenshot des Debuggers.
Steuerung des Debuggers Die wichtigsten Funktionen des Debuggers, also die zeilenweise Ausführung eines Programms, können gänzlich über die Tastatur gesteuert werden.
Alternativ stehen in der Debuggersymbolleiste auch Buttons zur Verfügung. In den folgenden Zeilen sind die einzelnen Funktionen aufgeführt, und kurz beschrieben.
Debugger starten (F5) Um die im Folgenden beschriebenen Funktionen nutzen zu können
muss man den Debugger starten. Nachdem Start des Debuggers wird das Programm
normal ausgeführt, bis es auf einen Haltepunkt trifft. Enthält das Programm keine
Haltepunkte, oder ist keiner erreichbar, wird das Programm normal ausgeführt.
Weiterlaufen (Strg + F5) Durch Betätigung der Tastenkombination oder des entsprechenden Buttons wird der Debugger beendet, und das Programm wieder normal
ausgeführt, bis es erneut auf einen Haltepunkt trifft, oder zu Ende ist.
In Methode hineingehen (F7) Diese Funktion führt die nächste Anweisung im Sourcecode aus. Handelt es sich dabei um einen Methodenaufruf, wird der Methodenrumpf
zeilenweise durchlaufen.
Methode verlassen (Strg + F7) Wird durch die vorhergehend beschriebene Funktion
eine Methode zeilenweise durchlaufen, kann mit dieser Funktion zum Ende der Methode gesprungen werden.
Abbildung 21: NetBeans – Debugger
Methode überspringen (F8) Mit dieser Funktion wird der Quelltext ebenfalls zeilenweise durchlaufen. Wird in der aktuellen Zeilen jedoch eine Methode aufgerufen, wird
nicht in diese hineingegangen, sondern das Debugging in der Folgezeile fortgesetzt.
Während dem Debugging ist der Quelltexteditor nicht gesperrt, es können also Änderungen am Quelltext vorgenommen werden. Damit Änderungen jedoch wirksam werden,
muss das debuggen beendet und neu gestartet werden.
Variablen Überwachen In Bereich 2 werden die lokalen Variablen und ihre Werte angezeigt. Zusätzlich kann man auch beliebige Variablen überwachen. Hierzu markiert man die
entsprechende Variable und wählt im Kontextmenü “Variable überwachen” aus oder fügt
sie mit Shift + Strg + F7 zu den überwachten Variablen in Bereich 3 hinzu. Mit
der Überwachungsfunktion können nicht nur Variablen eines primitiven Datentyps überwacht werden, sondern auch Objekte. Letztere werden in einer Baumstruktur hierarchisch
dargestellt (Siehe Abbildung 5.10 Bereich 2, Vector<Double> numbers).
5.11
Erweiterungskonzept von NetBeans
Aufgrund der starken Beliebtheit und großen Verbreitung von NetBeans sind viele Erweiterungen verfügbar. Bei Erweiterungen für NetBeans unterscheidet man zwischen Packs
und Plugins. In den Absätzen 5.11.1 und 5.11.2 wird auf die beiden Erweiterungstyps
ausführlicher eingegangen, und interessante Erweiterungen des jeweiligen Typs vorgestellt.
5.11.1
NetBeans Packs
Packs sind in der Regel größere Erweiterungen, die der IDE zu vielen neuen Funktionen
verhelfen. Beispiele[20] Für Packs sind:
Mobility Pack Diese Erweiterung unterstützt den Programmierer bei der Entwicklung
von Anwendungen für mobile Endgeräte, wie Handys, PDAs und sonstige Geräte,
die die Java Micro Edition unterstützen.
Visual Web Pack Dieses Pack bietet dem Entwickler die Möglichkeit, einfach und intuitiv Benutzerschnittstellen für Webanwendungen per Drag & Drop zu erstellen.
Enterprise Pack Mit dieser Erweiterung erhält der Programmierer Unterstützung bei der
Entwicklung von Java Enterprise-Anwendungen.
Profiler Mit dem NetBeans Profiler kann der Entwickler das Laufzeitverhalten seiner Anwendung untersuchen und verbessern. So können zum Beispiel durch überwachen
der CPU-Last oder der Speicherausnutzung Flaschenhälse entdeckt werden.
C/C++ Pack Durch das C/C++ Pack können mit NetBeans auch Programme in den Sprachen C oder C++ entwickelt werden. Die C/C++ Funktionen beziehen sich nicht nur
auf den Quelltexteditor, sondern auch auf den Debugger.
5.11.2
NetBeans Plugins
Durch Plugins wird der Funktionsumfang von NetBeans erweitert. Es sind freie und kommerzielle Plugins verfügbar. Jeder kann mit NetBeans eigene neue Plugins entwickeln, und
im Internet auf der NetBeans Seite1 anderen zum Download anbieten. In der folgenden
Liste sind einige interessante Plugins[21] für NetBeans aufgeführt und kurz beschrieben.
Plugin Portal Update Center Nach erfolgreicher Installation dieses Plugins, sucht das
NetBeans Updatezentrum auch nach Updates für andere, vom NetBeans Plugin Portal installierte Plugins.
Spellchecker Dieses Plugin überprüft Javadoc Kommentare auf korrekte Rechtschreibung.
1 NetBeans
Plugins im Internet: http://plugins.netbeans.org/
Regular Expression Highlighter Dieses Plugin stellt in der Hauptsymbolleiste von NetBeans ein Textfeld zur Verfügung, in welches reguläre Ausdrücke eingegeben werden können. Zeichenketten im Quelltexteditor, welche den regulären Ausdruck erfüllen,
werden farblich hervorgehoben.
Plugins werden in NetBeans mit Hilfe des Updatezentrums installiert, welches man im
Menü Extras findet. Dabei handelt es sich um einen Assistenten, der einem durch den
Installationsvorgang führt.
6
Eclipse
Abbildung 22: Eclipse Logo [22]
6.1
Eclipse Allgemein
Eclipse ist eine javabasierte, erweiterbare Open Source Plattform für alles Mögliche und
”
nichts im Besonderen“. Es dient zum Einen hauptsächlich als Integrierte Entwicklungsumgebung, aber auch als Basis für Werkzeugintegration und andere Anwendungen. Eclipse selbst ist in JAVA implementiert und ist eine betriebssystemübergreifende Plattform
die zum Beisiel auf Windows, Linux, Solaris, Mac OSX und weiteren Systemen eingesetzt werden kann. Zudem ist das Produkt Open Source“ und steht jedem kostenlos zur
”
Verfügung.
6.2
Die Entstehung
Die Eclipse Plattform entstand als Nachfolger der kommerziellen Entwicklungsumgebung
Visual Age von IBM[24]. Ziel war es, eine leicht erweiterbare Entwicklungsumgebung
für jede erdenkliche Anwendung zu schaffen. Der Gedanke dahinter war, dass es eine offene Plattform ermöglicht, sämtliche Werkzeuge auf einer Plattform zu integrieren, um
den Aufwand für Portierung und Kommunikation bei der Entwicklung zu minimieren.
Eclipse wurde hauptsächlich durch die 1996 von IBM gekauften OTI Labs entwickelt, die
vorher bereits an Visual Age for Java“ und anderen IBM Entwicklungswerkzeugen gear”
beitet hatten. Parallel zum Erscheinen von Version 1.0 und der Freigabe als Open Source“
”
im November 2001 gründete IBM die Eclipse Community, die eine breite Unterstützung
der Plattform sichern und die Anzahl der verfügbaren Plugins schnell vergrößern sollte.
Neben IBM waren bei der Gründung Borland, Merant, QNX, Rational, Red Hat, SuSE,
TogetherSoft und Webgain beteiligt (3, S. 5). Hier zeigt sich eine Besonderheit im Gegensatz zu anderen Open-Source-Projekten: Von Anfang an war es das erklärte Ziel, neben einer Open-Source-Entwicklergemeinde auch ein ”funktionierendes Ökosystem” von
kommerziellen Anbietern zu etablieren. Im März 2003 erschien die Version 2.1 von Eclipse, die den endgültigen Durchbruch als Java IDE bringen sollte. Im Februar 2004 wurde
die Eclipse Community schließlich in eine gemeinnützige Organisation umgewandelt. Dahinter stehen mehrere Unternehmen, u.a. IBM, Hewlett Packard, Intel, SAP AG, Borland,
Rational Software, Red Hat, Suse, OMG, TogetherSoft.
Im Juni 2004 wurde schließlich die Version 3.0 freigegeben. Diese brachte grundlegende
Änderungen in der Architektur der Plattform. Die interne Plugin-Verwaltung wurde komplett auf eine eigene OSGi-Implementierung aufgebaut, so dass Plugins nun zur Laufzeit
ge- und entladen werden können. Zusammen mit einer neuen Aufteilung der verschieden
Komponenten, die den IDE-spezifischen Teil sauber von der Funktionalität als Plattform
trennt, eröffnet die überarbeitete Archtektur völlig neue Möglichkeiten für Eclipse als Basis von Rich-Client- Anwendungen. Aktuell ist Eclipse (Stand 29.11.2007) in der Version
3.3. erhältlich.[23]
6.3
Die Eclipse Architektur
Seit der ersten Version verfolgt Eclipse das Konzept einer reinen Plugin-Architektur. Das
bedeutet, dass nicht nur eine bestimmte Funktionalität über Plugins erweitert werden kann,
sondern praktisch jeder Teil von Eclipse ein Plugin darstellt. Dieser streng komponentenbasierte Ansatz bietet größtmögliche Flexibilität für den Ausbau der Plattform und die
Erweiterung um einzelne Features, sei es durch das Entwicklungsteam von Eclipse oder
durch die Anwender selbst.
Wie in Abbildung 23 zu sehen ist, wird Eclipse wird als Software Development Kit mit
zwei Plugins ausgeliefert, dem Java Development Tooling (JDT), das Eclipse zur Java
IDE erweitert und dem Plugin Developer Environment (PDE), mit dem man neue Plugins für Eclipse entwickeln kann. Damit ist Eclipse nach der Installation eine vollständige
Entwicklungsumgebung und liefert bereits alles, was man braucht um eigene Erweiterungen vorzunehmen. Die beiden mitgelieferten Komponenten sollen neben der Funktionalität, die sie bereitstellen auch als Beispiel und Vorlage für eigene Plugins dienen.
Plugins werden über Extension Points verschachtelt. Ein Plugin baut eine Menge von Erweiterungen (extensions) auf einen oder mehrere Extension Points auf. Die erweiterten
Plugins befinden sich dabei auf derselben oder einer untergeordneten Ebene der PluginHierarchie, normalerweise können mehrere Plugins an einen Extension Point angeschlossen werden. Die Extension Points, die ein Plugin zur Verfügung stellt, werden in einem
Manifest beschrieben.[25] Auf diese Weise ist das Laufzeitsystem in der Lage, sämtliche
Verbindungen zwischen den verschiedenen Komponenten nachzuvollziehen, ohne Exemplare von ihnen erzeugen zu müssen - Plugins werden erst in den Speicher geladen, wenn
ihre Funktionalität benötigt wird. Dieses verzögerte Laden ermöglicht es, Eclipse-basierte
Anwendungen mit einer nahezu unbegrenzten Anzahl von Plugins zu erweitern, da eine
installiertes Erweiterung zunächst so gut wie keine Ressourcen benötigt. Da Plugins über
Abbildung 23: Eclipse Plugin Konzept [26]
die OSGi-Registry auch wieder entladen werden können, lassen sich Anwendugen auf eine
hochgradig flexible Weise mit Plugin-Funktionalität ausstatten.
Konzeptionelle Sicht auf Eclipse:
6.4
Platform Runtime
Die Platform Runtime ist der Kernel von Eclipse, der selbst kein Plugin ist, da er nicht
auf Extension Points anderer Plugins aufsetzt. Die Runtime Verwaltet jedoch Plug-ins und
bietet Extension Points an. Die Runtime Erkennt dynamisch Plug-ins und verwaltet die
Plug-in Registry. Seit der Version 3 verwendet die Platform Runtime das OSGi Framework
(Open Sevice Gateway Initiative).
6.4.1
OSGi-Framework
Die Open Services Gateway Initiative ist ein Industriekonsortium, das eine Softwareplattform für die Verwaltung von Diensten auf Komponentenbasis standardisiert. [29]
Das ursprüngliche Einsatzgebiet von OSGi ist die Automatisierung von elektronischen
Geräten in Haushalten und Fahrzeugen, das Modell passt aber so gut für Eclipse, dass
man sich entschloss, das proprietäre Komponentenmanagement von Eclipse 2 durch eine
eigene OSGi- Implementierung zu ersetzen. Abb. 2: Zustandsdiagramm OSGi-Bundles
Abbildung 24: Konzeptionelle Sicht [27]
OSGi-Komponenten (sog. Bundles) sind, wie Eclipse, in Java geschrieben und bieten
Dienste an, die ¨uber einen OSGi-Server geliefert werden. Dieser hält Informationen über
sämtliche verfügbaren Dienste vor und ¨ubernimmt die Verwaltung des Lebenszyklus. In
Eclipse erfüllt die Laufzeitumgebung die Aufgabe des OSGi-Servers, genauer das Plugin org.eclipse.osgi, das Teil der Laufzeitumgebung ist. Die Eclipse-Plugins bilden das
Äquivalent zu den Bundles von OSGi und bekommen vom Laufzeitsystem mit der Plugin
Registry eine Anlaufstelle für das Auffinden und Registrieren von Diensten zur Verfügung
gestellt.
6.5
Die Eclipse Platform
Die Eclipse Plattform bietet auf verschiedenen Ebenen Möglichkeiten zur Erweiterung und
Nutzung der gelieferten Funktionalität. Eclipse selbst kann über Plugins erweitert werden,
um speziellen Bedürfnissen als Entwicklungswerkzeug zu genügen. Ebenfalls möglich ist
die Nutzung von Eclipse als Plugin-Verwaltung, um beliebige Programme komponentenbasiert erweiterbar zu gestalten. Des weiteren können, aufbauend auf die neue Rich Client
Platform, Eclipse-basierte Anwendungen erstellt werden, die die verschiedenen Elemente
der Plattform nutzen. Und nicht zuletzt bieten die Bibliothek des SWT und das Framework
JFace die Option, losgelöst von der Eclipse Plattform bei der Erstellung von Benutzeroberflächen eingesetzt zu werden.
6.5.1
SWT (Standard Widget Toolkit)
Eclipse ist in Java geschrieben, nutzt aber mit dem Standard Widget Toolkit (SWT) ein
eigenes Framework für das User Interface, das - anders als Java Swing - auf die GUIElemente des Betriebssystemwidgets zurückgreift, wodurch auch die komplex verschach-
telte Eclipse GUI noch relativ performant läuft. Allerdings bedingt diese Tatsache auch,
dass Eclipse nicht der Java-Doktrin ”Code once, run everywhere” folgt, da das SWT nicht
für sämtliche Plattformen portiert wird, auf denen Java läuft. In der Praxis stellt dies allerdings nur eine geringe Einschränkung dar, da die ”drei Großen” im Desktopbereich
(Windows, Linux und OS X) unterst¨utzt werden. Die foglende Abbildung zeigt SWT
Kompinenten auf verschiedenen Platformen.
Abbildung 25: Eclipse SWT [30]
Das SWT bildet eine dünne Schicht, die GUI-Aufrufe über das Java Native Interface direkt an das Betriebssystem weiterleitet. Dies bedingt, dass man - für Java- Programmierer
ungewohnt - Speicherplatz manuell freigeben muss, wenn Widgets nicht mehr benötigt
werden. Allerdings verwaltet das SWT die Elemente in einer Baumstruktur: Wird ein Elternknoten gelöscht, wird auch der Speicher der untergeordneten Elemente freigegeben.
Im Gegensatz zum Java-eigenen Abstract Windowing Toolkit muss man sich beim SWT
nicht mit dem kleinsten gemeinsamen Nenner von Widgets für sämtliche unterstützten
Plattformen begnügen. Elemente, die auf einer Plattform nicht existieren, werden entweder emuliert oder sind schlicht nicht benutzbar. Auch hier ist SWT deutlich von ”Code
once, run everywhere” entfernt, die Zielplattform sollte zum Zeitpunkt der Programmierung bekannt sein.
6.5.2
JFace
Da die Programmierung von SWT (ähnlich wie bei Swing) die Trennung von Modell und
Darstellung stark erschwert, gibt es die Erweiterung JFace. JFace ist ein Framework, das
Viewer als Abstraktion von komplexen SWT-Komponenten wie Dialogen und Wizards bereitstellt. Außerdem verfügt JFace über ein eigenes Ereignismodell für Viewer, mit dem
verschiedene Viewer nach dem MVC-Prinzip verwendet werden können: Viewer sind keine reinen Repräsentationsobjekte der GUI, sondern verwalten auch ihre Dateninhalte wie
z.B. Tabelleneinträge, aber eben streng getrennt in Model und View. Das hat zum Beispiel
den Vorteil, dass verschiedene Viewer auf ein Modell angewendet werden können. Mit
Hilfe von JFace l¨asst sich das SWT auch gut f¨ur komplexe Benutzeroberflächen einsetzen.
6.5.3
Workbench
Die Workbench bedient sich der Elemente aus JFace und SWT und bildet das Eclipse
Plattform User Interface. Es definiert das Zusammenspiel von Editoren, Sichten und Perspektiven. Standartmäßig definiert sind Editoren für Java un XML. Eine Sicht stellet Informationen über andere Objekte zur Verfügung (Task-View, Outline-View) und Perspektiven
fassen Editoren und Views zu einer thematisch bezogenen Einheit zusammen (Java, CVS)
und ist schnell anpassbar und wechselbar für den Benutzer.
Abbildung 26: Workbench von Eclipse
6.5.4
Help / Team / Debug
Help Einbindung in das Online Hilfe System in Form von HTML Online Books
Team Basis für Versions- und Konfigurationsmanagement und gleichzeitige Nutzung von
Ressourcen innerhalb des Teams Konkrete Implementierung: CVS Extension Points
und Repository Provider API ermöglichen Nutzung von Team Repositories
Debug Darauf basiert Java-Debugger-Implementierung
6.5.5
Eclipse RichClient Platform
Seit Version 3.0 (2004) bietet Eclipse eine Rich Client Platform, d.h. es lässt sich ohne IDE-spezifische Funktionen starten und bietet einen extrem flexiblen und portierbaren
Rahmen für beliebige Anwendungen.
Eine der bekanntesten, auf der Eclipse Rich Client Platform basierten Anwendungen ist
der Lotus Notes Client, der in Abbildung 27 dargestellt wird.
Abbildung 27: Lotus Notes Client auf Rich Client Basis [31]
6.6
JDT - Eclipse IDE
Das JDT (JAVA Development Toolkit ist ein Plugin der Eclipse Platform, welches die eigentliche Entwicklungsumgebung darstellt. Dieses Plugin gehört standartmäßig zu Eclipse
und enthält folgende Komponenten:
• JDT-Core: nicht grafischer Teil des JDT (Java-Compieler)
• JDT-UI: Java-Editor + GUIs
• JDT Debug : Debug-User-Interface
• JDT Launching: Start von Anwendungen
• JUnit: TestFramework
6.6.1
JDT - Features
• Java-Editor mit umfangreichen Programmierhilfen
– Projektverwalung
– Syntax-Highlighting
– Content Assist
– Quickfix
– Unterstützung mehrerer installierter Java-Versionen
• Refactoring
• Support von Javadoc
• Generieren von jar-Dateien
• Debugger
• Teamentwicklung
• Ant
• JUnit-Tests
• Verschiedene Perspektiven
– Java
– Java Browsing
– Debug
6.7 Übersicht über Eclips Plugins
Im folgenden sind einige wichtige Plugins aufgelistet. Eine Beschreibung aller bekannter
Plugins wäre kaum möglich, da allein auf der officiellen Homepage www.eclipseplugincentral.com
knapp 1000 Plugins zum Download bereitstehen.[32] (Stand 1.12.2007)
Eclipse Web Tools Platform (WTP) Das WTP ist ein Plug-in von der Eclipse Foundation und bietet Erweiterung von Eclipse für J2EE- und Webentwicklung und eine API
für herstellerspezifische Erweiterungen. Außerdem enthält es Quelltexteditoren für
HTML, Javascript, CSS, JSP und SQL.
WSDL enthält Graphische Editoren für XSD und WSDL, Assistenten und Wizards für
die J2EE Entwicklung und Datenbank Tools
Checkclipse Integriert den Coding Guideline Checker Checkstyle“ in Eclipse und über”
prüft QuellCode auf:
– JavaDoc Kommentare
– Namenskonventionen
– Imports
– Coding Probleme
– Class Design
– Doppelten Code
MyEclipse kommerzielle Eclipse Version – Preis: $30 Standard Edition, $50 Professional Edition Features – J2EE Development Tools – Visual Web Designer – Struts
Designer und Java Server Faces Designer – Database Explorer – EJB, XDoclet, Hibernate und JSTL Support – Application Server Connectors – Tapestry und Spring
IDE Integration – Prof. Edition: MyEclipse UML und Enhanced Oracle Connecto
PMD Plug-in zur statischen Code Analyse Features – Logging – Migrating – JUnit Tests
XMLBuddy Wizards, Validation, Codeassist, Generation für XML, XSD, DTD, XSLT,
XPATH
Sonstige DBEdit, JDBC Client, SQL Editor, Eclipse Profiler, Sysedo Tomcat Launcher,
Omondo Eclipse UML, Together Community Edition for Eclipse, JBossIDE
Abbildungsverzeichnis
1
Top 4 IDE’s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
2
Full Life Cycle Support (Quelle: [8]) . . . . . . . . . . . . . . . . . . . .
10
3
Code-Editor (Quelle: [8]) . . . . . . . . . . . . . . . . . . . . . . . . . .
11
4
XML-Modeler (Quelle: [8]) . . . . . . . . . . . . . . . . . . . . . . . .
12
5
Application Development Framework (Quelle: [8]) . . . . . . . . . . . .
14
6
UML Use-Case (Quelle: [8]) . . . . . . . . . . . . . . . . . . . . . . . .
15
7
Beispeil einer Codevervollständigung . . . . . . . . . . . . . . . . . . .
18
8
Popup Fenster bei Eingabe einer Methode . . . . . . . . . . . . . . . . .
18
9
alle Refactoringfunktionen im Überblick . . . . . . . . . . . . . . . . . .
19
10
CVS File Client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
22
11
Feherlmarkierung in IntelliJ IDEA . . . . . . . . . . . . . . . . . . . . .
22
12
Verbesserungsvorschläge . . . . . . . . . . . . . . . . . . . . . . . . . .
23
13
Logo Xinox JCreator . . . . . . . . . . . . . . . . . . . . . . . . . . . .
26
14
JCreator Start Bildschirm . . . . . . . . . . . . . . . . . . . . . . . . . .
27
15
JCreator User Interface . . . . . . . . . . . . . . . . . . . . . . . . . . .
29
16
NetBeans 5.5.1 – Willkommensbildschirm . . . . . . . . . . . . . . . . .
31
17
Logo von NetBeans . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
32
18
Matisse – der NetBeans GUI-Builder . . . . . . . . . . . . . . . . . . . .
33
19
NetBeans – Syntaxhervorhebung . . . . . . . . . . . . . . . . . . . . . .
34
20
NetBeans – Syntaxvervollständigung . . . . . . . . . . . . . . . . . . . .
35
21
NetBeans – Debugger . . . . . . . . . . . . . . . . . . . . . . . . . . . .
37
22
Eclipse Logo [22] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
40
23
Eclipse Plugin Konzept [26] . . . . . . . . . . . . . . . . . . . . . . . .
42
24
Konzeptionelle Sicht [27] . . . . . . . . . . . . . . . . . . . . . . . . . .
43
25
Eclipse SWT [30] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
44
26
Workbench von Eclipse . . . . . . . . . . . . . . . . . . . . . . . . . . .
45
27
Lotus Notes Client auf Rich Client Basis [31] . . . . . . . . . . . . . . .
46
7
Abkürzungen
IDE
GUI
PDA
CVS
FTP
VI
JDBC
JUint
Integrated Development Environment
Graphical User Interface
Personal Digital Assistant
GNU Concurrent Versions System
File Transfer Protocol
Unix Editor
Java Database Connectivity
Java Testframework
Literatur
[1] Blog Jughh http://blog.jughh.org/?m=200709
[2] Homepage JetBrains, http://www.jetbrains.com/idea/
[3] Documentations, http://www.jetbrains.com/idea/documentation/documentation.html
[4] Wikipedia, http://de.wikipedia.org
[5] Plugin Center, http://plugins.intellij.net/
[6] Wiki Freitagsrunde, https://wiki.freitagsrunde.org
[7] ORDIX News, http://www.ordix.de
[8] Homepage Oracle, http://www.oracle.com
[9] Oracle
Technology
Network
Developer
License
http://www.oracle.com/technology/software/popup-license/jdev-license.html
Terms,
[10] Oracle Application Development Framework FAQ, http://www.oracle.com/technology/products/jdev/htdocs/905/adffaq otn.html
[11] Versionsgeschichte Oracle JDeveloper,
http://radio.weblogs.com/0118231/stories/2005/02/25/historyOfJdeveloperReleases.html
[12] Oracle JDeveloper, http://www.oracle.com/technology/products/jdev/index.html
[13] Oracle JDeveloper Overview,
http://www.oracle.com/technology/products/jdev/collateral/papers/1013/jdev1013 overview.pdf
[14] Oracle JDeveloper Demo Servlet,
http://www.oracle.com/technology/products/jdev/viewlets/1013/JDev complete viewlet swf.html
[15] Homepage JCreator, http://www.jcreator.com/
[16] JCreator Funktionsbeschreibung, http://www.jcreator.com/features.htm
[17] Wikipedia, http://de.wikipedia.org/wiki/JCreator
[18] Artikel zu NetBeans“ bei Wikipedia, http://de.wikipedia.org/wiki/Netbeans
”
[19] NetBeans
Community-Partner,
http://www.netbeans.org/community/partners/listcommunity.html
[20] NetBeans Packs, http://www.netbeans.org/
[21] NetBeans Plugins, http://plugins.netbeans.org/PluginPortal/
[22] Eclipse Logo auf piksu.com, http://www.piksu.com/utils/ohjelmat ammattikayttoon/logo eclipse.jpg
[23] Eclipse Download Portal, http://www.eclipse.org/downloads
[24] Wikipedia, http://de.wikipedia.org/wiki/Eclipse
[25] Eclipse
Plugin
Architektur,
architecture/plugin architecture.html
http://www.eclipse.org/articles/Article-Plug-in-
[26] Hilfeseite auf Eclipse.org,
http://help.eclipse.org/help32/index.jsp?topic=/org.eclipse.platform.doc.user/tips/platform tips.html
[27] FHM Softwarearchitektur Axel Böttcher, http://www.cs.fhm.edu/ boettcha/swa/plugin-dev.pdf
[28] Eclipse Homepage Help, http://help.eclipse.org/help32/index.jsp
[29] OSGi HP, http://www.osgi.org
[30] Eclipse Homepage, http://www.eclipse.org/swt/
[31] Cargal.org Gallerie, http://www.cargal.org/images/gallery/albums/album31/Notes75.jpg
[32] Plugin Central, http://www.eclipseplugincentral.com/