Java Entwicklung mit Open Source Tools

Autoren:
Steffen Schluff
Orientation in Objects GmbH
Kristian Köhler
Orientation in Objects GmbH
Steffen Schluff
Steffen Schluff
Kristian Köhler
Kristian Köhler
Datum:Juni 2002

Abstrakt

Der vorliegende Artikel liefert eine kurze Übersicht, welche Tools für ein professionelles und effizientes Arbeiten selbst bei kleinen Software-Projekten unverzichtbar sind. Insbesondere wird demonstriert, wie sich im Java Umfeld eine vollständig auf Open Source Technologien basierende Entwicklungslandschaft aufbauen und betreiben läßt. Die hier vorgestellten Erkenntnisse resultieren aus eigener Projekterfahrung sowie aus dem Einsatz bei Kunden.

Motivation

Zur Entwicklung guter und wartbarer Software ist ein gewisser Grundbestand an Hilfs- und Unterstützungswerkzeugen absolut unerläßlich. Die Erfahrung zeigt, daß winzige oder kurzlebige Projekte quasi nicht existieren. Selbst bei nur wenig beteiligten Programmieren und einer kurzen Entwicklungsdauer erwarten die Anwender über einen mittel- bis längerfristigen Zeitraum eine adäquate Wartung und Pflege. Dies läßt sich ohne die entsprechende Tooling Unterstützung gar nicht oder nur mit unverhältnismäßig hohem Aufwand erreichen.

In der Praxis wird oft aus Kostengründen auf die Anschaffung und Nutzung der entsprechenden Entwicklungshilfen verzichtet. Somit gilt es, kostengünstige oder sogar kostenfreie Lösungen, etwa aus dem Open Source Bereich, zu finden, die auf Dauer im professionellen Entwicklungsumfeld eingesetzt werden können.

Entwicklungswerkzeuge

Source Code Management System

Aufgabe

Ein Source Code Management System ist das mit Abstand wichtigste Werkzeug bei der Softwareentwicklung und bietet die folgenden Möglichkeiten:

Open Source Tool: CVS - Concurrent Version System

Das Concurrent Version System, kurz CVS, ist eines der populärsten Source Code Management Systeme überhaupt. Die hohe Verbreitung rührt neben seiner Zuverlässigkeit daher, daß es seit seiner Entstehung Mitte der 80er Jahre kostenfrei für nahezu jedes Betriebssystem verfügbar ist.

Neben der reinen Kommandozeilenversion existieren auch eine Vielzahl graphischer Ergänzungen zu CVS, die ein GUI basiertes Arbeiten mit Source Code Archiven ermöglichen. Außerdem bietet so gut wie jede moderne integrierte Entwicklungsumgebung (IDE) mittlerweile eine eingebaute Unterstützung für CVS an.

CVS Perspective der Eclipse IDE
Unterschiede zwischen zwei Dateiversionen (CVS Perspective der Eclipse IDE)

Bug Tracking System

Aufgabe

Ein unerwünschter, aber doch allseits bekannter Vorgang während der Softwareentwicklung ist das Auftreten von Fehlern. Da es unmöglich ist, daß sich eine einzelne Person alle während oder nach der Entwicklung auftretenden Fehler inklusive aller Details merkt, ist ein Bug Tracking System unerlässlich. Ein solches System sollte dabei die folgenden Funktionen anbieten:

Open Source Tool: Bugzilla

Bugzilla ist ein Bug Tracking System, das vor allem durch seinen Einsatz im Rahmen des Mozilla Open Source Browser Projektes bekannt wurde. Es ist in Perl geschrieben und läßt sich problemlos auf verschiedenen Plattformen mit der ebenfalls als Open Source verfügbaren Datenbank MySQL betreiben.

Bugzilla bietet ein einfach zu bedienendes HTML Interface und einen Email basierten Benachrichtigungsmechanismus. Durch die vielseitigen Konfigurationsmöglichkeiten läßt sich vor allem auch das Aussehen leicht an bestimmte Vorgaben anpassen.

OIOzilla Queryseite
OIOzilla Fehlercharts
Von OIO verwendeter Bugzilla (OIOzilla)

Build Management Tool

Aufgabe

Ein weiterer Grundpfeiler in der Softwareentwicklung ist eine solide Buildumgebung, die das einfache und konsistente Übersetzen eines Projektes ermöglicht. Die nachfolgenden Features erweisen sich in diesem Zusammenhang als nützlich:

Open Source Tool: Apache Ant (Java only)

Bei Apache Ant handelt es sich um ein Java basiertes Buildtool für Java Projekte. Es läßt sich entfernt mit Make vergleichen, ist jedoch vor allem durch seine XML Builddateien ungleich einfacher in der Handhabung.

Ant läßt sich in fast jede populäre Entwicklungsumgebung integrieren und ist bei Bedarf auch beliebig erweiterbar. Die Tatsache, daß mittlerweile Sun selbst für viele Java Beispiele Ant verwendet, zeigt deutlich, daß es zur Quasi-Standard Buildumgebung für Java geworden ist.

Apache Ant auf der Konsole
Apache Ant in der Eclipse IDE
Verschiedene Aufrufe von Apache Ant

Testing Framework

Aufgabe

Testen von Software ist ein unverzichtbarer Bestandteil eines soliden Entwicklungsprozesses. Obwohl je nach Projekt die notwendigen Tests stark variieren können, sollten die folgenden Punkte bei allen Tests sichergestellt sein:

Open Source Tool: JUnit (Java only)

Bei JUnit handelt es sich um ein Open Source Unit Testing Framework, welches das automatisierte Testen von Java Software ermöglicht. Mittlerweile existieren schon einige Ableger von JUnit, die sich schwerpunktmäßig auf bestimmte Umgebungen spezialisieren, etwa HttpUnit zum Testen von HTML basierten Oberflächen. Wie bereits bei dem zuvor erwähnten Ant, bieten die meisten Java Entwicklungsumgebungen eine graphische Integration von JUnit an.

JUnit Testrunner für Swing
JUnit Testreport aus Apache Ant
Durch JUnit erzeugte Testergebnisse

Integrierte Entwicklungsumgebung (IDE)

Aufgabe

Für ein produktives Entwicklungsumfeld ist es notwendig, die bereits vorgestellten Tools effizient miteinander zu verbinden. Hierzu werden in der Regel integrierte Entwicklunsgumgebungen, sogenannte IDEs, verwendet, die dem Entwickler alle notwendigen Werkzeuge gebündelt zur Verfügung stellen. Folgende Merkmale sollte eine modernen IDE besitzen:

Open Source Tool: Eclipse (Mainly Java)

Eclipse ist eine erweiterbare, auf Java basierende IDE, die das komfortable Entwicklen mit Java und anderen Sprachen ermöglicht. Sie zeichnet sich neben ihren eigenen Features, erwähnt sei hier zum Beispiel die hervorragende Refactoring Unterstützung, durch einen starken Integrationscharakter aus, der das Einbinden externer Tools ermöglicht. Insbesondere können alle zuvor erwähnten Open Source Tools integriert eingesetzt werden.

Eclipse IDE
Eclipse IDE

Fazit

Zusammenfassend läßt sich sagen, daß es problemlos möglich ist, eine vollständige Java Entwicklungslandschaft basierend auf Open Source Tools zu schaffen. Der Verbreitungsgrad der vorgestellten Werkzeuge spricht sowohl für ihre Qualität, als auch für ihre praktische Anwendbarkeit, was in zahlreichen kleinen wie großen eigenen Projekten bestätigt werden konnte.

Referenzen

CVS Home
(http://ximbiot.com/cvs/wiki/index.php)

Bugzilla Project Home Page
(http://www.bugzilla.org/)

Apache Ant
(http://ant.apache.org/)

JUnit
(http://www.junit.org/)

Eclipse
(http://www.eclipse.org/)

Zum Geschaeftsbreich Competence Center
Online Artikel
Gründe warum Sie mit eclipse entwickeln sollten, erfahren Sie im Online Artikel zur eclipse IDE.
Newsletter abonnieren