"Java ist raus aus den Kinderschuhen"

Eine Welt ohne Java? – Das ist für doubleSlash-Mitbegründer Oliver Belikan nicht vorstellbar. Ganz im Gegenteil: doubleSlash hat bei der Entwicklung der objektorientierten Programmiersprache selbst einen entscheidenden Anteil geleistet und sich von Anfang an in der Entwicklercommunity engagiert. Die objektorientierte Programmiersprache ist heute nicht nur bei Software und Webanwendungen, sondern auch bei uns ein fester Bestandteil bei der Softwareentwicklung in Kundenprojekten und bei der eigenen Produktentwicklung. So steckt die Java-Technologie beispielsweise im Postfinder oder dem BMW-Produktkonfigurator. Im Interview berichtet Oliver Belikan von Java-Erfahrungen aus der Praxis und wirft einen Blick in die Zukunft.

Continue reading

Zertifizierte Qualitätssicherung – Mit qualifizierten Tests zu erfolgreichenen Projekten

Qualitätssicherung – german testing boardGeschafft! Vier Tage Schulung und anschließend eine Prüfung. Jetzt bin ich zertifizierter Softwaretester und habe eine ganze Menge gelernt, was das professionelle Testen von Software angeht. Nicht nur bezüglich des eigentlichen Testens, sondern auch zur Planung, Vor- und Nachbereitung und Konzeption. Für viele ist das ein eher unangenehmes Thema – langweilig und unproduktiv, muss man eben machen. Aber Qualitätssicherung ist nicht nur ungemein wichtig, sondern auch spannend, wenn man sie professionell betreibt.
Continue reading

Usability als zentraler Erfolgsfaktor für gute Unternehmenssoftware

Finger pointing a network with blue and beige tones, concept of best solution or networking.

„Software für Unternehmen entspricht häufig nicht den Erwartungen“ – so lautet der Titel einer News-Meldung[1], die vergangene Woche im iX Fachmagazin für professionelle Informationstechnik erschienen ist. Laut der genannten Studie des Beratungsunternehmens FleishmanHillard[2] belegen Entwickler von Software für Unternehmen den letzten Platz in der Kategorie Innovation.
Continue reading

10 Erfolgsfaktoren für das Anforderungsmanagement in agilen Software-Großprojekten

Prozess_ScrumEine der Hauptaufgaben des Product Owners in agilen Softwareprojekten ist es, die Produktanforderungen mit dem Kunden abzustimmen und in sogenannten User Stories zu beschreiben. Diese werden dann von den Entwicklern Stück für Stück in Form von darin heruntergebrochenen Tasks umgesetzt. Nach jeder Entwicklungsiteration – dem Sprint – entsteht ein auslieferfähiges Ergebnis. Die Abstimmung der User Stories und Akzeptanzkriterien ist ein zentraler Prozess der agilen Entwicklungsmethodik, der in der Praxis meist mehrere Abstimmungschleifen durchläuft.
Continue reading

Themen und Trends der EclipseCon Europe 2013

Brian Fitzpatrick (Google)Die EclipseCon Europe zählt zu den größten Veranstaltungen der Eclipse Foundation in Europa und stellt eine Plattform für die europäische Entwickler- und Anwender-Community dar. Ganz deutlich zu erkennen war in diesem Jahr unter anderem der Trend zu Machine-to-Machine (M2M) und Internet of Things (IoT), der mittlerweile auch Einzug in die Eclipse Plattform hält.
Continue reading

Warum sich nicht drängen?

Nein, nicht sich drängen lassen, sondern sich drängen. Gemeint ist damit SCRUM (englisch für Gedränge), was ein Vorgehensmodell der Softwaretechnik ist, das sich immer größerer Beliebtheit erfreut.
Der Ansatz von Scrum[ref]Beschreibung des Projektmanagement-Frameworks http://de.wikipedia.org/wiki/Scrum[/ref] ist empirischinkrementell und iterativ. Er beruht auf der Ansicht, dass die meisten modernen Entwicklungsprojekte zu komplex sind, um durchgängig planbar zu sein. Scrum versucht, die Komplexität durch drei Prinzipien zu reduzieren:

SCRUM bei doubleSlash

  1. Transparenz: Der Fortschritt und die Hindernisse eines Projektes werden täglich und für alle sichtbar festgehalten.
  2. Überprüfung: In regelmäßigen Abständen werden Produktfunktionalitäten geliefert und beurteilt.
  3. Anpassung: Die Anforderungen an das Produkt werden nicht ein und für alle Mal festgelegt, sondern nach jeder Lieferung neu bewertet und bei Bedarf angepasst. Continue reading

Mehr Flexibilität durch Eclipse 4

Eclipse ist den Meisten als Integrierte Entwicklungsumgebung (IDE) für Java bekannt. Mit einem Marktanteil von über 65% stellt sie heute die führende Entwicklungsumgebung für Java dar. Doch Eclipse ist weitaus mehr als das.

eclipse-juno-logoSeit dem Release der Version 3.0 im Jahr 2004 unterstützt Eclipse die Wiederverwendung seiner Platform für das Erzeugen von Stand-Alone-Applikationen, bekannt unter der Bezeichnung RCP (Rich Client Platform). Eclipse 4 ist die nächste Generation der Platform für das Entwickeln Eclipse basierter Anwendungen. Bei doubleSlash setzen wir Eclipse 4 bereits seit 2011 in einem Projekt für unseren Kunden BMW ein.

Das Entwickeln von Softwareapplikationen auf Basis von Eclipse hat sehr viele Vorteile. Eine der Kernkomponenten der Eclipse Platform ist die OSGI-Implementierung Equinox. Sie ermöglicht die Entwicklung und Ausführung modularer Eclipse Applikationen unter dem Einsatz von Plug-ins. Des Weiteren verwendet die Eclipse Platform native User-Interface-Komponenten, die stabil und zuverlässig sind. Große Unternehmen wie IBM und Google verwenden die Eclipse Platform für ihre Produkte und stellen dadurch sicher, dass die Platform flexibel und schnell bleibt und sich weiterentwickelt.

Das Application Model

Eclipse 4 entstammt dem Inkubatorprojekt Eclipse E4, einem Projekt zur Verbesserung der Eclipse Platform. Es rationalisiert die besten Teile der 3.x APIs und löst gleichzeitig viele bekannte Probleme der RCP Entwicklung mit Eclipse 3.x.
In Eclipse 4 wird die Struktur einer Applikation über ein abstraktes Modell beschrieben, dem Application Model. Dieses beinhaltet sowohl die visuellen Elemente (z.B. Windows und Parts) als auch die nicht visuellen Elemente (z.B. Commands und Handler) der Anwendung. Das Application Model kann sowohl deklarativ während der Entwicklung, als auch während der Laufzeit verändert werden. Außerdem ist es möglich, das Model über Fragmente zu erweitern, die über Plug-ins hinzugefügt werden.

Neue Technologien

Eclipse 4 führt zudem neue Technologien ein, welche die RCP Entwicklung deutlich flexibler machen. Dies sind unter Anderem die Unterstützung von Dependency Injection und die Realisierung von API Definitionen über Annotations. Bei Eclipse 3.x müssen Komponenten wie Handler bestimmte Interfaces implementieren oder von abstrakten Klassen ableiten um ein gewünschtes Verhalten des Frameworks zu indizieren. Das koppelt die entsprechenden Klassen eng an das Framework und erschwert unter Anderem das framework-unabhängige Testen dieser. In Eclipse E4 werden API Definitionen durch Annotationen umgesetzt. Dadurch können z.B. Handler-Klassen als POJOs (Plain Old Java Object) realisiert und damit unabhängig getestet werden.

Einfache UI-Erstellung

Eclipse 4 ermöglicht außerdem das Stylen von UI-Widgets unter Einsatz von CSS. Ähnlich wie bei Webseiten kann so das Aussehen einer Applikation durch Austauschen der CSS-Dateien individuell angepasst werden, ohne dass der Quellcode der Applikation von Anpassungen betroffen ist. Dies kann auch während der Laufzeit passieren.
Eine weitere revolutionäre Verbesserung in Eclipse 4 ist die Entkopplung des Application Models von seiner Präsentationsschicht. Während Eclipse 3.x fest an SWT gebunden ist, sind unter Eclipse 4 andere UI-Toolkits wie z.B. Swing oder JavaFX zum Rendern der Oberfläche möglich.

Da Eclipse 4 ein anderes Programmiermodell verwendet als Eclipse 3.x, sind Eclipse 4 Applikationen nicht abwärtskompatibel. Die Eclipse 4 Platform stellt jedoch das sogenannte Compatibility Layer zur Verfügung. Hierbei handelt es sich um eine Komponente, welche die Schnittstellen der 3.x API auf die 4.0 API mappt und dadurch eine Verwendung von 3.x basierten Komponenten unter Eclipse 4 ohne jegliche Anpassungen ermöglicht.

Die aktuelle Version 4.2 von Eclipse 4 wurde im Juni 2012 unter dem Namen „Juno“ released. Eclipse 4 löst mit diesem Release Eclipse 3.x als Mainstream Platform für das Eclipse Projekt ab. Gebunden an den Eclipse Release Train kann auch in den kommenden Jahren jeweils im Juni mit dem Release der neuesten Version der Platform gerechnet werden. Damit ist sichergestellt, dass  Eclipse 4 auch in Zukunft eine stabile und etablierte Platform zur Entwicklung modularer Anwendungen sein wird.