3D Visualisierung von Software

November 26th, 2009 by Steffen Stundzig

Vergangenen Freitag waren wir von Prof. Eisenecker eingeladen, 3D-Visualisierung von Softwareartefakten und Methoden im neuen 3D Labor in der Uni Leipzig zu erleben. Ich war etwas skeptisch gegenüber der Vorstellung mit einer 3D-Brille auf dem Kopf im Raum stehend Software entwickeln zu müssen. Klingt fast ein bischen wie Holodeck auf dem Raumschiff Enterprise.

Durch die Motivation des Themas am Anfang der Session, mehrere unserer menschlichen Sinnesorgane zur Wahrnehmung und Bewältigung der Komplexität in der Softwareentwicklung zu nutzen, machte mich dann aber doch sehr neugierig. Aktuell nutzen wir (Softwareentwickler) nur 2D-Monitore obwohl unsere Augen auf 3D-Bewegungen optimiert sind. Und zusätzlich nutzen wir meist nur noch die Finger zum Tippen oder Maus bewegen. Es gibt aber viel mehr, dass wir ohne Probleme wahrnehmen können, Geruch, Ton oder auch Druck auf der Haut oder winzige Reizströme oder eben 3-dimensionale Darstellungen. ;)

Von den Institutsmitarbeitern wurden ihre jeweiligen aktuellen Arbeiten vorgestellt, wie momentan eher statisch, Softwareartefakte mit 3D navigierbar gemacht werden können. Besonders interessant fand ich dabei den Vortrag in dem Softwaremetriken genutzt wurden, um die räumliche Aufteilung der jeweiligen Klassen und Methoden zu parametrisieren. Somit ist es sehr leicht und intuitiv erfassbar, wo besonders große Klumpen (zu hohe Komplexität und dadurch sehr große räumliche Dichte) und weniger stark ausgeprägte Beziehungen existierten.

Kurzum, die Vision Softwarekomplexität durch Aktivierung weiterer Sinnesorgane beherrschbarer zu machen, find ich gut. Die aktuellen Forschungsarbeiten dazu stehen noch ganz am Anfang. Und die Kombination modellbasierter Entwicklung, eclipse Laufzeitumgebung und 3D Hardware scheint mir eine sehr gute Basis.

Anbei sind noch die Vorträge von den wissenschaftlichen Mitarbeitern des Lehrstuhls zum Download.

Viel Spass beim Lesen.

maven, osgi-bundles and eclipse-plugins – Part I

November 26th, 2009 by Steffen Stundzig

Developing OSGi bundles or eclipse plugins, features, updateSites, products or fragments within eclipse and the PDE is excellent. Headless build automation and dependency management for java based projects is also excellent with maven from Apache.

But the combination of maven based builds and eclipse development was till recently awful.

Since some days ago the brand new maven 3 alpha 4 and the new tycho 0.5.0 are available for download.

With these two new versions it’s more easier to enable headless eclipse or OSGi bundle builds based on maven. Included is also, e.g. target platform management and P2 integration.

Thanks to the people from sonatype for this great work.

I will describe in some more posts, the steps on migrating existing eclipse builds to maven.

Maven folder structure for Xtext projects

November 25th, 2009 by Alexander Nittka

Creating a new Xtext project by default creates src and src-gen folders. However, sometimes one may wish for a more maven-like structure using src/main/java and src/generated/java. I want to briefly describe how to refactor an existing Xtext project (such that regenerating from the grammar file still works afterwards). Using these steps it should easily be possible to adapt new Xtext projects before the first generation of the Xtext artifacts, as well.

There are two main steps involved:
1) replacing the source folders src and src-gen by src/main/java and src/generated/java
2) making these changes known to the workflow file, so that these folders are used instead

Apply steps a)-c) to all three Xtext projects (they are essential only for the grammar and the ui one, though).

a) Remove <classpathentry kind="src" path="src"/> and <classpathentry kind="src" path="src-gen"/> from the .classpath files. And while you are at it, change the output entry from “bin” to “target/classes”.

b) Use the “New Src Folder”-Wizard to create src/main/java and src/generated/java. This adds them automatically to the .classpath file. But you still have to adapt the source..-entry in the build.properties. Use the quick fix (in the textual representation of the file) to add the new folders and remove src and src-gen manually.

c) Move the previous contents of src to the source folder src/main/java (don’t move the subfolders main or generated). Move the previous contents of src-gen to src/generated/java.

d) In the workflow file, point the directory cleaner components the the new folders, replacing src-gen by src/generated/java.

e) Also add the following properties to the Generator component in order to let it know the new folders:
<srcPath value="/src/main/java"/> and
<srcGenPath value="/src/generated/java"/>

Xtext sample project after maven structure refactoring

Xtext sample project after maven structure refactoring

f) You may want to delete the src-gen- and the bin-folders in all the projects. The generator project may call for a different folder structure. Feel free to choose your own. I also recommend to use package names more unique than templates, model and workflow, in particular if you have several Xtext projects in the same environment. Don’t forget to modify the generator-project’s workflow file (targetDir, template path etc.), template and extension file(s) accordingly.

P.S.: Of course it would be nice if the New Xtext Project wizard had a tick box “use Maven folder structure” ;-)

3. eclipse democamp

November 19th, 2009 by Steffen Stundzig

Nun ist unser drittes eclipse Democamp in Leipzig schon wieder Geschichte. Wir hatten erfreulicherweise über 40 Teilnehmer, obwohl nur 30 gemeldet waren. Dies führte kurzfristig zu Engpässen bei der Bestuhlung und Verpflegung, die wir rechtzeitig zum Beginn 17:30 Uhr gelöst bekamen. Wir hatten 5 Vorträge aus den über 10 Meldungen ausgewählt, die jeweils auch sehr interessant waren, siehe eclipse Wiki.

Danke nochmal an alle Referenten und Interessenten. Ich freue mich auf das nächste Camp in Leipzig.

Und hier noch ein Foto aufgenommen von der großen Dachterrasse aus, die wir bei wärmerem Wetter auch mit nutzen werden.

eclipse Democamp 1. Pause