Made in Germany: Komponentenentwicklung mit NetCCM

Die NetCCM GmbH möchte mit der Entwicklung flexibel anpassbarer Software etablierten Branchengrößen Konkurrenz machen. Mit der aktuellen Ausgabe der Entwicklungsumgebung NetCCM Studio stehen die Chancen nicht schlecht.

In Pocket speichern vorlesen Druckansicht
Lesezeit: 9 Min.
Von
  • Markus Franz
  • Alexander Neumann
Inhaltsverzeichnis

Die NetCCM GmbH ist ein Spin-off des Instituts für Informatik der Humboldt-Universität zu Berlin. Sie entwickelt Lösungen, die bei der Entwicklung flexibel anpassbarer Software helfen sollen – und möchte etablierten Branchengrößen Konkurrenz machen. Mit der aktuellen Ausgabe der Entwicklungsumgebung NetCCM Studio stehen die Chancen nicht schlecht.

Mehr Infos

Made in Germany – innovative Softwareentwicklung aus Deutschland

Dieser Artikel ist Auftakt der "Made in Germany"-Artikelserie. heise Developer stellt Unternehmen aus dem deutschsprachigen Raum vor, die mit innovativen Produkten im Bereich Softwareentwicklung oder angrenzenden Gebieten aufwarten. Diese Hidden Champions der IT-Branche brauchen sich international nicht zu verstecken.

Seit 2006 führen Alexander und Peter Auerbach mit NetCCM ein technikorientiertes Spin-off des Instituts für Informatik der Humboldt-Universität zu Berlin, das seinen Sitz im Wissenschafts- und Technologiepark Adlershof hat. Sie erhalten Unterstützung durch die Hightech Gründerfonds sowie die Humboldt-Innovation GmbH.

Ausgangspunkt für die Geschäftsidee der Firma ist, dass seit Jahren ausgereifte IDEs für die objektorientierte Softwareentwicklung (oder andere Paradigmen) zur Verfügung stehen, aber die effiziente Kapselung beliebiger Software in Komponenten nur schwer möglich ist. Jede Plattform und Programmiersprache kocht ein eigenes Süppchen und definiert neue Standards. NetCCM hat deswegen das sogenannte Unified Component Model (UCM) entwickelt: Über System- und Sprachgrenzen hinweg ist Software in eine Komponente "einzutüten", sodass sich die Bestandteile einer Applikation weiterverwenden lassen. Als Produkte für das UCM hat die Firma die Entwicklungsumgebung NetCCM Studio sowie die NetCCM IRE (Infrastructure Runtime Environment) entwickelt. Letztere vereinfacht das Deployment gekapselter Anwendungen in verteilten Umgebungen.

Das UCM-Konzept setzt sich über Sprachgrenzen hinweg: NetCCM Studio arbeitet mit C, C++, C#, Java und PHP zusammen. Damit erstellte Komponenten sind in sich abgeschlossen. Erzeugt man mit NetCCM eine Assembly, lassen sich sowohl C# als auch Java-Komponenten mischen und ohne spezielle Anforderungen an die Zielplattform einsetzen. Ein UCM-Funktionsblock kapselt wiederum mehrere Komponenten.

Modellierung einer einfachen PIM-Anwendung mit Caller und Callee in NetCCM Studio (Abb. 1).

Die IDE gibt es in Editionen für die jeweiligen Programmiersprachen. Sie ist in Java geschrieben und benötigt mindestens eine Java 5 Runtime. Zu den unterstützen Plattformen gehören Windows (alle Ausgaben seit Windows 2000) sowie diverse Linux-Distributionen. Unnötig kompliziert wird es, wenn man die Anforderungen für die gewählte Programmiersprache erfüllen möchte:

Für Java-Assemblies muss ein Java Development Kit (JDK) installiert sein, um damit zu programmieren. Den PHP-Interpreter benötigt man im Gegensatz dazu nur für die Ausführung von PHP-Assemblies – nicht aber für die eigentliche Entwicklung in PHP, die mit NetCCM Studio ohne Plug-in möglich ist. Im Einzelfall muss man im Handbuch genau nachlesen, um die Systemanforderungen zu erfüllen.

NetCCM Studio besteht aus der IDE selbst und einigen Tools, die mitzuinstallieren sind. Dazu gehört der NetCCM Generator, der Assemblies aus dem jeweiligen Quellcode erzeugt und so das UCM in lauffähige Anwendungen übersetzt. Wer sich an die erste einfache Hello-World-Applikation wagt, der macht sogleich mit einem neuen Konzept Bekanntschaft: die Kombination aus Caller und Callee, die sich durch alle Anwendungen und Komponenten der IDE wie ein roter Faden zieht. Die Caller-Instanz ist immer der Teil, der eine Instanz des Callee aufruft und Daten anfordert. Mit diesem einfachen Konzept lassen sich Caller und Callee in unterschiedlichen Programmiersprachen realisieren und komplexe Prozesse kapseln und wiederverwenden.

Das Verhältnis zwischen Auftraggebern und -nehmern bei der Entwicklung von Software ist davon geprägt, dass Erstere ihre Anforderungen an das von Letzteren zu entwickelnde Softwaresystem zunächst unspezifisch formulieren. Durch die hohe Komplexität heutiger Softwaresysteme – mehrere 10.000 Anforderungen sind typisch – sind beide daran interessiert, im Nachhinein die Realisierung der einzelnen Anforderungen nachvollziehen zu können und bei Bedarf weitere Features schnell zu implementieren. Das ist bisher nur eingeschränkt möglich. Selbst die Prüfung, ob wichtige Anforderungen vergessen wurden, lässt sich oft nicht unsetzen. Insbesondere Projektmanager und Qualitätsverantwortliche sind sich des Problems bewusst und suchen aktiv nach effektiveren Lösungen.

Modellierte Anforderungen und automatisierte Testcases ergeben am Ende eine fertige Applikation (Abb. 2).

An dieser Stelle kommt die NetCCM-Entwicklungsumgebung ins Spiel, indem man die Fähigkeiten der IDE und des UCM nutzt, um ein vollständiges, verlässliches Modell des Softwaresystems bereitzuhalten. Den einzelnen Modellelementen lassen sich Anforderungen zuordnen, wodurch Entwicklern, die nur für die Realisierung eines kleinen Modellteils zuständig sind, die für sie relevanten Requirements zur Verfügung stehen. Sie müssen nicht mehr alle Anforderungen komplett überblicken. Über Auswertungen ist außerdem erkennbar, welche Requirements noch nicht zugeordnet wurden.

Besonders im industriellen Umfeld ist es unerlässlich, Komponenten einer Software gezielt auf die korrekte Funktionsfähigkeit zu testen. Frühzeitig Fehler zu beseitigen ist eine allgemein anerkannte Anforderung für das Testen. Die realen Möglichkeiten werden jedoch stark durch den dafür im Projekt entstehenden Aufwand beschränkt. Alles, was die mit dem Testen verbundene Arbeitsmenge senkt, erfährt deshalb eine hohe Nachfrage. Mit NetCCM Studio lässt sich integratives Testen praktizieren.

Anforderungsmanagement und Test von Anwendungen sind einheitlich über mehrere Sprachen hinweg umsetzbar (Abb. 3).

Der mit dem Testen verbundene Aufwand ist deutlich zu senken, weil Testanwendungen automatisch generiert werden – hier verhält sich die IDE intelligent. Die IDE generiert automatische Testfälle aus der Caller/Callee-Beziehung. Über Konnektoren bindet die IDE die jeweiligen Tests an die automatisierten Testsysteme der jeweiligen Programmiersprache (zum Beispiel JUnit) an. Tests auf Fachseite können zu jedem Entwicklungszeitpunkt und von beliebigen Software- und Systemartefakten aus durchgeführt werden.

Neben der plattformübergreifenden Entwicklung von Software und dem standardisierten Testen legt NetCCM mit IDE und NetCCMGenerator den Fokus auf einen weiteren wichtigen Aspekt für Entwickler: In immer mehr Branchen wird der Nachweis der Softwarequalität zu einer unvermeidlichen Voraussetzung, um Aufträge zu erhalten. Die Einführung von SPICE, CMMI oder V-Modell XT als verbindliche Qualitätsstandards durch die Auftraggeber verdeutlicht das.

Alle Standards fordern den Nachweis der Prozessqualität durch das Vorhalten von Dokumenten, sogenannten Work Products, die das Ergebnis erwarteter Prozessschritte protokollieren. Der mit dem zusätzlichen Erstellen der Dokumente verbundene Aufwand ist erheblich und findet vor allem bei Entwicklern nur wenig Zustimmung. Neben der Zusammenarbeit mit spezialisierten Beratern nimmt deshalb die Nachfrage nach Tools schnell zu, die eine Zertifizierung erleichtern.

Bei der Entwicklung von Software versucht NetCCM, alle Interessengruppen (Stakeholder) auf technischer Ebene zusammenzuführen (Abb. 4).

Allein die Nutzung von NetCCM Studio ermöglicht im Engineering-Bereich SPICE-Level 1, was andere IDEs nur über Zusatz-Tools unterstützen. Durch die Aufnahme der im unmittelbaren Entwicklungsprozess vorhandenen Informationen ist eine Reihe von für den Qualitätsnachweis erforderlichen Work Products zu generieren, wodurch sich Overhead vermeiden lässt. Damit schlägt man eine Brücke zwischen Qualitätsmanagement und Entwicklung, weil NetCCM Studio in beiden Bereichen wesentliches Potenzial aufzuweisen hat.

Das Zusammenführen von Testing und Anforderungsmanagement macht die Entwicklung von Software zwar insgesamt nicht schneller, erleichtert aber die Planung insbesondere industrieller Projekte. Hier muss man von Anfang an die Applikation planen, um ein Projekt erfolgreich zu entwickeln. NetCCM kann im Einzelfall durch die Verbindung von Tests und Anforderungsmanagement sowie der plattformübergreifenden Sprachunterstützung die kritische Bereiche gemeinsam organisieren.

Wer Anwendungen mit der IDE entwickelt, erhält als Ausgabe immer eine Assembly, die auf der NetCCM Infrastructure Runtime Environment (IRE) auszuführen ist. Dieses zweite Hauptprodukt der Berliner Softwareschmiede befindet sich derzeit noch in der Entwicklung, ist jedoch als Vorabversion verfügbar und sieht vielversprechend aus: Es vereinfacht das Deployment von Software in verteilten Umgebungen.

Die Laufzeitumgebung wird auf mehreren Cluster-Nodes installiert, und wer mit NetCCM Studio eine Assembly erstellt, kann die Runtime automatisch auf den Cluster aufspielen und dort ausführen. Sie erkennt, welche Teile der Anwendungen die IDE als Client definiert hat (Caller und Callee) und welche Komponenten auf einem zentralen Server vorzuhalten sind. Das erspart dem Entwickler zahlreiche Aufgaben bei der Planung komplexer Cluster. Aus einem in der Assembly definierten Client oder Server erzeugt IRE zur Laufzeit ausführbaren Code, der sich auf beliebigen Systemen des Cluster ausführen lässt.

NetCCM hat sich in einer Nische etabliert: komponentenbasierte Softwareentwicklung für Kunden, die über Plattform- und Systemgrenzen hinweg die Entwicklung von Software vereinfachen möchten. Dabei dient NetCCM besonders solchen Projekten, die viele komplexe Anforderungen bearbeiten müssen. Gleichzeitig ermöglicht die IDE das standardisierte Testen und Zertifizieren von Software auf einem solch hohen Niveau, wie man es von vielen anderen IDEs her nicht kennt.

Preise für NetCCM Studio und NetCCM IRE sind direkt beim Hersteller zu erfragen und richten sich nach dem jeweiligen Einsatzgebiet und der Menge der Lizenzen. Zwar ist die Firma komplett auf proprietäre Lösungen ausgerichtet, ermöglicht aber nach eigener Aussage auch die Anpassung der Software an eigene Anforderungen.

Die Dokumentation zu NetCCM Studio ist ausgereift: Es gibt für jede Programmiersprache und Systemumgebung dezidierte Handbücher, die den Einstieg in die IDE erleichtern. Es bleibt spannend, wie sich das Unternehmen NetCCM und das UCM-Konzept weiterentwickeln. In jedem Fall sieht man ein Beispiel für eine gelungene Speziallösungen im Bereich der Softwareentwicklung, die aus Deutschland kommt.

Markus Franz
ist Managing Partner der Sugoma KG in Jena. Er arbeitet dort mit Fokus auf offene Techniken und Tests von Software.
(ane)