20 Jahre otris.
Wissenschaftler werden Unternehmer.
8. März 2018

JANUS – Software, die Software generiert

Wie weit Theorie und Praxis auseinanderliegen, haben Dr. Christoph Niemann und Dr. Frank Hofmann während ihrer akademischen Laufbahn festgestellt. An der Ruhr-Universität Bochum arbeiteten sie Mitte der 90er Jahre an einer Software, die auf Knopfdruck gebrauchsfähige Anwendungen generiert. Die Theorie: Ein UML-Klassendiagramm wird in maschinenlesbaren Text und anschließend in Programmcode gewandelt. Die Praxis: Unzählige Entwicklungsstunden und die Erkenntnis, dass erfolgreiche Softwareprojekte Agilität und fortlaufendes Umdenken erfordern.
Bild Vorstand der otris software AG - Dr. Frank Hofmann und Dr. Christoph Niemann

Dr. Frank Hofmann und Dr. Christoph Niemann sind heute Vorstände der otris software AG. Die meisten ihrer damaligen Studenten sind in führenden Positionen bei der otris tätig. Die Forschungsergebnisse ihrer wissenschaftlichen Arbeit sind – ergänzt um viele Weiterentwicklungen – nach wie vor Grundlage für den Unternehmenserfolg. 

Das Forschungsprojekt, in dem der Softwaregenerator entwickelt wurde, hieß JANUS. „Janus war in der römischen Mythologie der Gott des Anfangs und des Endes. Professor Balzert hat den Namen gewählt, da er die Grundidee widerspiegelt: Ein Generator, der fortlaufend Anfang und Ende – also Fachkonzept und Softwareanwendung – miteinander in Einklang bringt“, erklärt Dr. Christoph Niemann den Hintergrund zum Namen. Um das Fachkonzept möglichst genau in der Softwareanwendung abzubilden, sollten Entwickler mit JANUS iterativ und agil arbeiten können. Iterativ und agil heißt, dass eine Anwendung nicht als Ganzes geplant, entworfen und umgesetzt wird, sondern in vielen kleinen Teilschritten. Jeder Teilschritt besteht aus einer Entwurfs-, Programmier-, und Testphase. Stellt sich beim Testen heraus, dass ein Teilschritt nicht in die gewünschte Richtung führt, wird das Ergebnis verworfen und neu geschrieben. „Software auf diese Art zu entwickeln, war damals noch nicht etabliert. Dass wir auf dem richtigen Weg waren, sieht man daran, dass agile, iterative Entwicklungsmethoden wie Scrum heute zum Standard geworden sind“, verdeutlicht Dr. Frank Hofmann. Noch ein weiterer, wesentlicher Aspekt zeigt, dass das Forscher-Team auf dem richtigen Weg war: das Endergebnis. Am Ende einer mehrjährigen Entwicklung stand eine funktionsfähige Software, die Software generiert.

Vom Fachkonzept zur Fachanwendung
Anfang der 90er Jahre entwickelten die Wissenschaftler Grady Booch, Ivar Jacobson und James Rumbaugh die Unified Modeling Language (kurz UML). UML ist eine grafische Modellierungssprache, um vor der Programmierung ein Fachkonzept zu entwerfen. Verkürzt ausgedrückt zeigt ein UML-Diagramm, welche Objekte der realen Welt (z.B. ein Kunde, ein Angebot, ein Angestellter) in der Software interagieren sollen. Festgelegt wird ebenfalls, welche Attribute die Objekte haben (z.B. Kundennummer, Angebotsnummer, Benutzername) und welche Aktivitäten sie ausführen können (z.B. Angebot anfordern, Artikel aufnehmen, Angebot versenden).

JANUS - Abbildung 1 UML Klassendiagramm (Beispiel)

Beispiel eines UML-Klassendiagramms

Am Ende des Modellierungsprozesses steht ein Klassendiagramm, das auch Menschen ohne Programmierkenntnisse verstehen. Die Herausforderung für Programmierer besteht darin, die Vorgaben des Klassendiagramms in Software zu wandeln. An dieser Stelle setzten Dr. Niemann und Dr. Hofmann an, um ihre Forschungsfragen abzuleiten: Können wir Klassendiagramme so aufbereiten, dass sie maschinenlesbar werden. Und wie können wir den maschinenlesbaren Code so weiterverarbeiten, dass daraus eine Softwareanwendung entsteht? Ziel war es, dass nicht ein Programmierer, sondern eine Software die Programmierarbeit ausführt. „Um unser Ziel umzusetzen haben wir uns darauf konzentriert, wiederkehrende Muster zu finden. Dabei haben wir erkannt, dass viele UML-Notationen nach der Umsetzung in einer Software ähnliche Strukturen aufweisen. Diese Strukturen zu identifizieren, zu standardisieren und die Umsetzung in Programmcode zu automatisieren ist uns gelungen. Das Ergebnis ist unser Softwaregenerator, den wir JANUS genannt haben“, erklärt Dr. Christoph Niemann.

Von der Uni in die Wirtschaft
Das wirtschaftliche Potenzial von JANUS lag auf der Hand. Dr. Christoph Niemann und Dr. Frank Hofmann beschlossen, ein Unternehmen (die heutige otris software AG) zu gründen, um dieses Potenzial zu nutzen. Studenten, die Dr. Christoph Niemann und Dr. Frank Hofmann an der Uni betreut hatten, stiegen mit ein und sind heute tragende Säulen des Unternehmens. Zusammen entwickelte das junge Team eine Strategie: „Da wir erkannt hatten, dass sich JANUS hervorragend eignet, um kaufmännische/administrative Modelle umzusetzen, haben wir uns auf Business-Software spezialisiert“, beschreibt Dr. Frank Hofmann die Grundausrichtung der otris software AG.

Technisch ausgedrückt liest JANUS ein plattformunabhängiges Modell (Platform Independent Model), das mit einigen Zusatzinformationen angereichert wird. Daraus erzeugt JANUS intern ein plattformabhängiges Modell (Platform Specific Model) und generiert den gesamten Quellcode und Deployment–Informationen (Installationsprogramm) in einer objektorientierten Programmiersprache. Bei der Transformation kann der Software–Entwickler zwischen verschiedenen Grundarchitekturen auswählen, z.B. Einzelplatz- oder Mehrplatz-Anwendung, mandantenfähige Anwendung, Web-Anwendung usw.

JANUS - Grafik

Von Individual-Projekten zu Standard-Software
Bereits kurze Zeit nach der Gründung akquirierte otris erste Kunden und setzte Individualprojekte mit JANUS um. Eines der größten Projekte der Anfangsjahre war ein Entwicklungsauftrag der Personal & Informatik AG. Noch heute nutzt P&I die ERP-Software, die mit JANUS entwickelt wurde. Ausbau und Erweiterungen des Systems werden nach wie vor mit JANUS umgesetzt. „Sehr schnell stellte sich heraus, dass JANUS nicht nur großes Potenzial bei der Individualprogrammierung besitzt, sondern auch sehr gut geeignet ist, um Standard-Software zu generieren und permanent weiterzuentwickeln“, erläutert Dr. Christoph Niemann. Das erste Standard-Produkt, das otris mit JANUS entwickelt hat, war eine Risiko-Management-Software der Schleupen AG. „Der Erfolg dieser Systeme ist nicht zuletzt darauf zurückzuführen, dass wir damals zukunftsfähige Standards verwendet haben. C++ oder Objektorientierte Programmierung – was wir in den 90er Jahren als Pioniere genutzt haben, ist heute aktueller denn je“, so Dr. Christoph Niemann.

Von der Auftragsentwicklung zu eigenen Produkten
Seit 2003, also 5 Jahre nach der Gründung, entwickelt und vertreibt das otris-Team neben Software-Tools und Individualentwicklungen auch eigene Standard-Software. Aus Sicht der Unternehmensentwicklung war das ein Meilenstein. Mittlerweile bietet otris vier Produkte im Eigenvertrieb und zusätzlich die OEM-Software DOCUMENTS an, die mit über 3.000 Installationen eine fest etablierte Größe am DMS/ECM-Markt ist. Mit den Produkten otris privacy (Datenschutzmanagement) und otris contract (Vertragsmanagement) prägt otris den Markt in der D-A-CH-Region. „Wir sind als kleines Uni-Spin-off gestartet. Wie weit Theorie und Praxis auseinanderliegen, haben wir schnell gelernt. Nichtsdestotrotz hilft uns unser wissenschaftlicher Hintergrund, technische Herausforderungen genau zu analysieren, um lösungsorientierte Software zu entwickeln“, fasst Dr. Frank Hofmann zusammen.