Archiv der Kategorie: Entwicklungsumgebung

UML-Werkzeuge für die Java-Entwicklung

Hier eine Auswahl von Produkten:

§ Enterprise Architect (http://www.sparxsystems.de/) ist ein Produkt von Sparx Systems; es unterstützt UML 2.5 und bietet umfangreiche Modellierungsmöglichkeiten. Für die Business & Software Engineering Edition Standard License sind 599 USD fällig. Eine 30-tägige Testversion ist frei. Das Tool ist an sich eine eigenständige Software, die Integration in Eclipse (und MS Visual Studio) ist möglich.

§ MyEclipse (https://www.genuitec.com/products/myeclipse/) von Genuitec besteht aus seiner großen Sammlung von Eclipse-Plugins, unter anderem auch mit einem UML-Werkzeug. Einblick in das kommerzielle Werkzeug gibt https://www.genuitec.com/products/myeclipse/learning-center/uml/myeclipse-uml2-development-overview/.

§ ObjectAid UML Explorer for Eclipse (http://www.objectaid.com/) ist ein kleines und kompaktes Werkzeug, das Klassen aus Eclipse einfach visualisiert. Es entwickelt sich langsam zu einem größeren kommerziellen Produkt.

§ TOPCASED/PolarSys (http://www.topcased.org/) ist ein umfangreicher UML-Editor für Eclipse.

§ Together (http://www.borland.com/products/together/) ist ein alter Hase unter den UML-Tools – mittlerweile ist der Hersteller Borland bei Micro Focus gelandet. Es gibt eine 30-tägige Demoversion. Die Version 12.7 basiert auf Eclipse 4.4, ist also hinreichend aktuell.

§ Rational Rose (http://www-01.ibm.com/software/de/rational/design.html) ist das professionelle UML-Werkzeug von IBM. Es zeichnet sich durch seinen Preis aus, aber auch durch die Integration einer ganzen Reihe weiterer Werkzeuge, etwa für Anforderungsdokumente, Tests usw.

§ UMLet (http://www.umlet.com/) ist ein UML-Zeichenwerkzeug und geht auf ein Projekt der Vienna University of Technology zurück. Es kann alleinstehende eingesetzt oder in Eclipse eingebettet werden. Auf Google Code liegt der offene Quellcode: https://code.google.com/p/umlet/.

§ Der quelloffene UML Designer (https://obeonetwork.github.io/UML-Designer/) greift auf viele Eclipse-Projekte zurück.

§ UML Lab von yatta (http://www.uml-lab.com/de/uml-lab/).

Viele Werkzeuge kamen und gingen, unter ihnen:

§ eUML2 (http://www.soyatec.com/euml2/) und EclipseUML von Omondo (http://www.omondo.com/) sind Eclipse-basierte UML-Tools. Es gibt ältere freie, eingeschränkte Varianten. eUML2 basiert auf Eclipse 4.3, die letzte Version ist von Dezember 2013. Bei EclipseUML hält das Unternehmen sogar an Eclipse 3.7 fest, und schreibt „Omondo will not anymore deliver builds for Eclipse 4 because it was a technological failure.“

§ ArgoUML (http://argouml.tigris.org/) ist ein freies UML-Werkzeug mit UML 1.4-Notation auf der Basis von NetBeans. Es ist eigenständig und nicht in Eclipse integriertEnde 2011 stoppte die Entwicklung, die letzte Version ist 0.34.

§ NetBeans hatte lange Zeit ein schönes UML-Werkzeug, das jedoch nicht auf die neuen Versionen portiert wurde.

Fehlt was?

Eclipse Project 4.5 (Mars) M4

Je länger ich Eclipse benutze, desto seltener beschäftige ich mich mit Release-Dates oder den Features — es sei denn, ich warte auf die Unterstützung von neuen Sprache-Features.

So gingen auch die bisherigen Milestones von 4.5 an mir spurlos vorbei, auch der letzte Milestone M4 vom 12.12. Zusammenfassend Neuerungen, die (für mich) interessanter sind:

https://www.eclipse.org/eclipse/news/4.5/M4/

Assigning stdin to a file
Stdin can now be assigned to a file in the „Common“ tab of launch configuration dialogs.

Automatic scroll lock in Console view
Scrolling up in the Console view using keys, mouse wheel, or scroll bar now automatically enables the Scroll Lock mode.

When you scroll down to the end of the console, the scroll lock is automatically released again.

Improved flow analysis for loops
Flow analysis has been improved to more precisely capture the flow of null values in loops. This mainly achieves a reduction of false positive reports from null analysis.

Previously, example method „test1“ would raise a potential null pointer warning at point (3). To correct this issue the merging of information leading towards point (3) has been improved to correctly see that the null value from point (1) can never reach point (3).

In example method „test2“ JDT previously reported a redundant null check at (3), because analysis didn’t see that the assignment directly above could indeed assign a non-null value.

In example method „test3“ it was reported that „o can only be null“ at (3), because the information from the two null-assignments wrongly overruled the one assignment from non-null. With improved analysis this is now softened to saying „o may be null“.

The graph on the right hand side illustrates the new composition of flow information: for each relevant point (3) inside a loop, the analysis first merges the flows that lead into (1). This result is concatenated with the partial flow (b.c), which leads from the loop start to point (3). Improved precision has thus been achieved within the design limits of a single AST traversal in order to minimize impact on compiler performance.

https://www.eclipse.org/eclipse/news/4.5/M3:

‚Terminate/Disconnect All‘ in Console view
You can invoke the Terminate/Disconnect All action from the Console view’s context menu:

Add inferred lambda parameter types
You can explicitly add the inferred types of the parameters in a lambda expression by invoking the Quick Assist (Ctrl+1) – Add inferred lambda parameter types:

Convert method reference to lambda and back
New Quick Assists (Ctrl+1) have been added to convert…

  • from method reference to lambda expression:Integer::toHexString
  • from lambda expression to method reference:t -> Integer.toHexString(t)

https://www.eclipse.org/eclipse/news/4.5/M2/

Compiler schneller.

https://www.eclipse.org/eclipse/news/4.5/M1/

Word wrap in the Console
A new formatting option has been contributed to the Console view for all I/O consoles: Word Wrap.

The new option is available on the Console view toolbar and in the content popup menu within the Console view.

The new word wrap toolbar and popup menu command

Der http://www.eclipse.org/projects/project-plan.php?planurl=/eclipse/development/plans/eclipse_project_plan_4_5.xml gibt uns noch einen Milestone vor, dann beginnt die Feinarbeit:

  • M5 2015-01-30 4.5M5
  •     2015-02-13 CQ Submission Deadline
  • M6 2015-03-20 .5M6 (API Freeze)
  • M7 2015-05-01 4.5M7 (Feature Freeze)

Android Studio basiert auf IntelliJ, Eclipse ist raus

Googles Android-IDE war lange Zeit ein ADT-Plugin für Eclipse. Das ist nun vorbei, das Plugin wird nicht mehr (von Google offiziell) weiterentwickelt. Eine Version auf der Basis der quelloffenen Community Edition von IntelliJ war seit 2 Jahren in Entwicklung, und ist nun die offizielle IDE für Android-Anwendungen. Mit IntelliJ hat man sich sicherlich eine gute Basis ausgesucht, nur wird es viele Eclipse-IDE-Nutzer verprellen, die bei den Shortcuts und der Projektorganisation dazulernen müssen.

Links:

IntelliJ IDEA 14, tolle neue Features

Alle Details unter https://www.jetbrains.com/idea/whatsnew/. Auf die Schnelle:

  • built-in decompiler
  • Show Referring Objects im Debugger
  • evaluate to operator expressions im Debugger
  • infers the@NotNull, @Nullable and @Contract
  • Scala plugin comes with theChange Signature refactoring, reworked SBT integration, faster performance, brand new project configuration model, and many more
  • enhancements and new features introduced in Android Studio Beta, including support for Google Wear andTV.
  • Advanced coding assistance for Thymeleaf
  • visual diagrams forSpring Integration
  • standard Test Runner für Gradle task
  • The Scene Builder is now built into the Editor.
  • support for GlassFish 4.1, TomEE 1.7.1, WildFly 9.0.0 and tcServer 3.0.1.
  • better log viewer for Git and Mercurial
  • tools for SQL developers have been improved

Eclipse 4.4 M7 (Luna)

http://download.eclipse.org/eclipse/downloads/drops4/S-4.4M7-201405010200/news/

Für mich ist wichtig:

Java 8: Java™ 8 is here, and JDT fully supports it:

  • The Eclipse compiler for Java (ECJ) implements all the new Java 8 language enhancements
  • Updated significant features to support Java 8, such as Search and Refactoring
  • New formatter options for lambdas
  • Quick Assist and Clean Up to migrate anonymous class creations to lambda expressions and back:

    Before:

    anonymous class with a 1-line method body

    After the Quick Assist (Ctrl+1), the 6 lines are condensed into 1:

    lambda expression -- everything on 1 line

Heute kommt auch der erste Release Candidate (RC) raus.

Java 8 Syntax-Migration mit Eclipse

Seit der Version Eclipse 4.4 (bzw. Eclipse 4.3 mit Java 8-Erweiterung) integriert die IDE einen Code-Transformator, der Klassen-Implementierung von funktionalen Schnittellen in Lambda-Ausdrücke verkürzen kann. Diese Transformationen ist über die Quick-Fix/Quick-Assist möglich.

Eclipse_ConvertToLambda

Leider kann diese Umsetzung (bisher) nicht für ein ganzes Projekt erfolgen, und keine umfangreiche Code-Basis komplett und automatisch auf die neuen Lambda-Ausdrücke gebracht werden.

Official Eclipse Support for Java 8

So ist zu lesen unter https://dev.eclipse.org/mhonarc/lists/eclipse.org-committers/msg00948.html:

The Eclipse top-level project is very proud to announce official support for Java 8. Starting with I20140318-0830 all Luna (4.4) builds contain the Eclipse support for Java™ 8. For Kepler SR2 (4.3.2) a feature patch is available. For future builds visit our downloads page.
The Java™ 8 support contains the following:
– Eclipse compiler implements all the new Java™ 8 language enhancements.
– Significant features, like Search and Refactoring, have been updated to support Java™ 8.
– Quick Assist and Clean Up to migrate anonymous class creations to lambda expressions and back.
– New formatter options for lambdas.
Note that PDE API Tools has not yet adopted the new language constructs. This will be completed in the final Luna release.
Big thanks to everyone who worked on this effort!

NetBeans IDE 7.4 mit JDK 8 und mehr

Das konnte ich gerade bei http://www.theserverside.com/discussions/thread.tss?thread_id=77744 lesen:

  • HTML5 features available in Java EE and PHP projects
  • Cordova application development
  • Support for Android and iOS devices and emulators
  • Preview support for JDK 8 features
  • Initial editing support for Knockout, AngularJS, and ExtJS frameworks

Mehr unter https://netbeans.org/community/releases/74/ und Download bei https://netbeans.org/downloads/.

GUI-Builder für JavaFX und Swing

Mit einem GUI-Builder lassen sich grafische Oberflächen über ein grafisches Werkzeug einfach aufbauen. In der Regel bietet ein GUI-Bilder eine Zeichenfläche und eine Symbolleiste mit Komponenten, die per Drag and Drop angeordnet werden. Zentral bei dem Ansatz ist das WYSIWYG-Prinzip (What You See Is What You Get), dass nämlich im Designschritt schon abzulesen ist, wie die fertige Oberfläche aussieht.

Ein GUI-Builder erzeugt eine Repräsentation der grafischen Oberfläche, die im Prinzip auch von Hand zu erstellen wäre – allerdings ist der Aufwand sehr groß und für jeden nachvollziehbar, der schon einmal in HMTL eine neue Tabellenspalte hinzugeführt hat. Es gibt immer wieder Diskussion über das Für und Wider doch ist es wie mit allen Tools: richtig eingesetzt kann ein GUI-Builder viel Arbeit sparen.

GUI-Builder für JavaFX

Der JavaFX Scene Builder ist ein Werkzeug von Oracle und nennt sich selbst „A Visual Layout Tool for JavaFX Applications“. Er ist kein Teil vom JDK, sondern muss unter http://www.oracle.com/technetwork/java/javafx/tools/index.html bezogen und installiert werden. Danach stehen komfortable Werkzeuge zum Entwurf von Oberflächen und deren Verschönerung mit CSS nichts im Wege.

NetBeans bietet von Haus aus Unterstützung im Entwurf grafischer Oberflächen, denn ein GUI-Bilder ist integriert, und eine Zusatzinstallation ist nicht nötig. Das gibt uns direkte Möglichkeiten, Swing und auch JavaFX spielerisch zu erfahren.[1]

Für Eclipse gibt es keinen speziellen GUI-Builder, das ist auch eigentlich gar nicht nötig, denn der Scene Builder kann in Eclipse integriert werden.[2] Zwar kein direkter WYSIWYG-Editor, aber immerhin ein Werkzeug im Umgang mit XML ist das quelloffenes Eclipse-Plugin e(fx)clipse unter http://efxclipse.org/.

GUI-Builder für Swing

Während NetBeans für Swing gute Unterstützung mitbringt, ist bei Eclipse standardmäßig kein GUI-Builder integriert. Es gilt also, ein Plugin nachzuinstallieren. In den letzten Jahren kamen und gingen verschiedene GUI-Builder, aber letztendlich hat sich der WindowsBuilder (https://developers.google.com/java-dev-tools/wbpro/) von Google als De-facto-Standard etabliert. Über den Update-Mechanismus von Eclipse wird er installiert. Eine Installationsanleitung findet sich auf der Webseite. Neben Swing nimmt der WindowsBuilder gleich noch GWT, SWT und XWT (Eclipse XML Window Toolkit) mit.


[1] Didaktiker nennen das »exploratives Lernen«.

[2] http://docs.oracle.com/javafx/scenebuilder/1/use_java_ides/sb-with-eclipse.htm