|
|
|
»manage
it«
als
|
Programmiermaschine Beim Programmieren auf Auto-Pilot schalten Nachdem das Modellieren von Geschäftsabläufen immer mehr zum Standard der Software-Entwicklung wird, wächst das Interesse der Auftraggeber am nächsten logischen Schritt: Modelle per Knopfdruck ins vollständige Applikationen transformieren. Die »erste Programmiermaschine der Welt« hat bereits eine Million an Manntagen ersetzt.
rüher waren sie stärker abgenutzt, die Tastaturen von Thomas Reinberger und seinem Team bei C5 Solutions. Die Softwareentwickler haben sich vor einem Jahr entschlossen, nicht mehr manuell zu programmieren. Weniger Arbeit haben sie seither jedoch nicht: Statt Zehntausende von Zeilen Programmcode einzutippen, setzen sie auf »Olivanova– Die Programmiermaschine«, wie inzwischen viele Softwarehäuser. Sie haben dadurch beim Programmieren die Hände frei – wie mit einem Auto-Piloten. Die automatische Transformation von Modellen in Software optimiert die Faktoren Zeit, Kosten und Qualität drastisch. Doppelt so schnell, halb so teuer und fehlerfrei ist das, was aus der Programmiermaschine herauskommt, verspricht deren Hersteller Integranova. Und immer mehr Kunden aus allen Branchen kommen auf den Geschmack. Nach drei Jahren sind bereits 500 IT-Projekte automatisiert abgeschlossen – das entspricht einer Million an Programmierer-Manntagen. Im Schnitt erledigt der Rechner von Integranova also in einem Jahr die Arbeit von weit mehr als eintausend Programmierern. Ohne Automatisierung könnten gestiegene Komplexität und wachsender Kostendruck in der Informationstechnologie nicht mehr bewältigt werden. In einem Tag war die Lösung modelliert und nach drei Minuten transformiert Eine Studie von Deutsche Bank Research nennt automatisierte Software-Entwicklung denn auch eine »wegweisende Innovation«. Die Effizienz steige und das Problem kostspieliger Ausfälle durch Softwarefehler werde gelöst. Aber auch Zeit ist Geld: Vergingen vor wenigen Jahren noch Monate zwischen Auftragserteilung und Lieferung einer Applikation, so steigt der Bedarf nach rascher Umsetzung von Konzepten in einsatzbereite Anwendungen, weil der Return on Investment eines ganzen Projekts nicht selten von der Software abhängt, die dazu benötigt wird. Ein Beispiel dafür aus der Praxis von Integranova: Ein deutscher Telekommunikationsanbieter entschied im November 2004, Internet-Telefonie als Dienst aufzunehmen. Die Telekommunikationstechnik war bereit, doch ohne eine neue Software zur Teilnehmer-Registrierung und -Freischaltung konnte der Dienst nicht starten. Der Unternehmensleitung war klar, dass wertvolle Zeit ins Land gegangen wäre, wenn man herkömmliche Programmierer beauftragt hätte. Vor dem Hintergrund des hohen Wettbewerbsdrucks in der Telekommunikations-Branche entschied man sich dafür, die »erste Programmiermaschine der Welt« zu testen. Das Wagnis lohnte sich: Innerhalb eines einzigen Tages war die Lösung modelliert. Nach Freigabe des Modells dauerte es drei Minuten, bis der Server von Integranova in Valencia alles zurücksandte, was für die Applikation benötigt wurde: Fertiger Sourcecode, Build Scripts für die Datenbankstruktur, eine ausführliche Dokumentation sowie eine Online-Hilfe. Aus Programmierern werden IT-Analysten, die Geschäftsprozesse modellieren Was in diesem und inzwischen hunderten weiterer Fälle zwischen San Fransisco und Budapest passiert ist, klingt wie Hexerei. Doch sachlich betrachtet, geschieht in der Softwareentwicklung nun genau das, was zuvor – meist mit Hilfe von Software – in den traditionellen Industriezweigen vollzogen wurde: Standardisierung und Automatisierung, kurz: die Industrialisierung. Der Traum von einer automatisierten Software-Entwicklung ist nicht neu: Bereits 1971 dachten die beiden Autoren Daniel Teichroew und Hasan Sayani unter der Überschrift »Automation of System Building« über Prozessverbesserungen nach. Kosten und Komplexität der damaligen IT-Projekte waren für sie Anlass genug. Die eingangs zitierten Trendforscher der Deutschen Bank gewinnen dem 35 Jahre später stattfindenden Paradigmenwechsel der Branche viel Positives ab: so wandle sich das Berufsbild des IT-Spezialisten vom simplen Codieren hin zum kreativen Modellieren. Programmierer, die diesen Trend frühzeitig erkennen, haben die Chance, IT-Analysten zu werden und die Geschäftsprozesse der Kunden im Beratungsgespräch zu modellieren. Computer machen keine Flüchtigkeitsfehler – und können Modelle verbessern Zu den beiden geschilderten Phänomenen, dem Trend zur Modellierung und dem Trend zur Beschleunigung der Softwareentwicklung tritt ein drittes Bedürfnis der Auftraggeber hinzu. Sie fordern ein Rezept gegen die kostenintensive Häufigkeit von Softwarefehlern. Der Grund liegt auf der Hand: Aus Programmfehlern resultierende Produktionsausfälle belaufen sich den Experten zufolge allein in den USA pro Jahr auf umgerechnet 50 Milliarden Euro. Computer selbst werden dabei behilflich sein. Denn sie machen keine Flüchtigkeitsfehler, sondern lösen eine Aufgabe auch bei beliebiger Iteration immer auf die gleiche Weise. Bei der Entwicklung der »Programmiermaschine« hat Professor Pastor in Valencia ein inzwischen patentiertes Verfahren zur Validierung von Modellen entwickelt. Es verhindert, dass Fehler im Modell zu Fehlern in der Applikation werden. Warum jedes Modell vor der Transformation in eine lauffähige Anwendung zunächst validiert werden muss, veranschaulicht ein einfacher Vergleich: Mit fehlerhaften Anweisungen geht ein Computer genauso um wie ein Postbote mit falsch adressierten Briefen. Bei falschen Hausnummern oder Straßennamen weiß er meist nicht weiter. Wenn in der IT-Welt Hausnummern doppelt vorkommen (also Attribute nicht eindeutig verwendet werden) oder sich plötzlich Sackgassen auftun, sind ein falsches Rechenergebnis oder gar ein Programm-Absturz im wahrsten Sinn des Wortes »vorprogrammiert«. Schon beim Modellieren werden rund 90 Prozent der üblichen Programmierfehler durch die dialogorientierte Eingabe des Modells verhindert. Die restlichen zirka 10 Prozent fängt das patentierte Validierungs-Verfahren ab. Es prüft drei Kriterien: Das Modell muss vollständig, eindeutig und korrekt sein. Alleine die Suche nach Fehlern und das Testen von Software beschäftigen herkömmliche Programmierer teilweise Wochen. Die Codegenerierung startet erst nach der Validierung, wenn alle Fehler behoben sind. So entfällt das Testen und Nachbessern des Codes. Mit automatisierter Programmierung entfallen viele Probleme des IT-Alltags • Wartezeit auf Software ist schon alleine deshalb lästig, weil der Kunde erst bei Lieferung wirklich erfährt, wo ihn der Programmierer falsch verstanden hat oder mit Lösungen aus der Schublade vertrösten will. Software-Architekten, die während einer Projektbesprechung mit dem Kunden bereits ein Modell anfertigen und dann per Programmiermaschine dieses Modell in eine funktionsfähige Applikation umwandeln, können ihre Kunden schneller zufrieden stellen. • Dann die Wandlungsfähigkeit während des Produkt-Lebenszyklusses. Dank der Geschwindigkeit und der Kosteneffizienz der Programmiermaschine sind Änderungen im Unternehmen durch Änderungen im Modell annähernd »in Echtzeit« zu verwirklichen. Die Software spiegelt also stets aktuelle Geschäftsabläufe im Unternehmen wieder. • Und schließlich das Maßschneidern der IT-Lösung. Durch das Fokussieren auf den Modellierungsprozess kann der Dienstleister das »Wie« des Programmierens vernachlässigen und sich gemeinsam mit dem Kunden rein in dessen Problemstellung bewegen und sich um das »Was« kümmern, statt über Datenbanken, Plattformen oder Programmiersprachen nachzudenken.
Analysten verwenden das Modellierwerkzeug »OlivanovaModeler«. Das zu erstellende Modell besteht aus vier Ansichten: aus einem statischen, einem funktionalen, einem dynamischen und einem Präsentations-Modell. • Im statischen Modell (das einem Klassendiagramm entspricht; Abbildung 1) werden alle Objekte, deren Beziehungen untereinander und die Berechtigungen der unterschiedlichen Usergruppen definiert. Die Rechtecke im Modell stellen die Klassen dar. Die Verbindungen zwischen den Rechtecken zeigen Relationen zwischen Klassen auf.
Abbildung 1: Im statischen Modell werden Klassen und deren Eigenschaften editiert.
• Im funktionalen Modell erfasst der Consultant die gewünschten Funktionen der Anwendung durch Transaktionen und Formeln (Abbildung 2). Die UML-ähnlichen Kommandos für das Formelwerk sind schnell erlernbar.
Abbildung 2: Im funktionalen Modell werden Transaktionen und Formeln hinterlegt.
• Das dynamische Modell gibt über das Laufzeitverhalten der Software Auskunft und legt fest, welche Funktion der Anwendung zu welchem Zeitpunkt ausgeführt werden darf. Es wird vom Tool automatisch erstellt (siehe Abbildung 3) und kann angepasst werden.
Abbildung 3: Das vom System erstellte dynamische Modell kann angepasst werden.
• Im Präsentationsmodell schließlich werden die gewünschten Ansichten der Bedienoberfläche (das Grafische User-Interface) vordefiniert, indem der Analyst diejenigen Informationen auswählt, die angezeigt werden sollen. Die Oberfläche lässt sich später den individuellen Gestaltungswünschen des Kunden anpassen. Das Präsentationsmodell beschreibt für jede Klasse, welche Attribute der Klasse in welcher Ansicht angezeigt werden (Abbildung 4)
Abbildung 4: Im Präsentationsmodell wird das grafische User-Interface erstellt.
Fertige Modelle werden automatisch in Programmcode transformiert »Olivanova– Die Programmiermaschine« erstellt nach dem Modellieren und Validieren im Gegensatz zu Modellierwerkzeugen keine Programmskelette, an die ein Programmierer noch Hand anlegen muss. Sie verwendet auch keine Fertigbausteine, die aneinander gereiht werden. Stattdessen vereint eine Transformation Engine als Herzstück der Programmiermaschine das beste verfügbare Programmier-Know-how, um effizienten Code zu erhalten. Der Analyst legt nach dem Modellieren fest, in welcher Programmiersprache, für welche relationale Datenbank und mit welchem Application Server die zu generierende Anwendung zusammenarbeiten soll, und ob das Userinterface auf Basis von Web-Client oder in Rich-Client erstellt werden soll. Die Programmiersprache sollte in Abhängigkeit der Zielplattform ausgewählt werden. Es spielt jedoch keine Rolle, ob die Software auf Windows/Apple, Unix/Linux oder MainFrame eingesetzt werden soll. Das System beherrscht serverseitig Com+ mit VB, C# oder CORBA-EJB. Auf der Client-Seite besteht die Wahl zwischen VB, JSP, Windows.Forms (C#) oder ASP.NET. Client und Server können gemischt werden, da die Kommunikation auf Standard-Protokolle aufsetzt. Kein anderes System am Markt leistet nach Aussagen der Entwickler derzeit eine so plattformunabhängige und vollständige Transformation von Modellen in fertige Applikationen wie »Olivanova– Die Programmiermaschine«.
Dipl.Ing. Joachim Fischer ___________________________________________________________ Joachim Fischer ist Mitglied der Geschäftsleitung der Integranova GmbH
|
|