Archiv


Programmierer ex Machina

Informationstechnologie. - Mit einer erstaunlich anmutenden Entwicklung will ein junges IT-Unternehmen in den Markt. Die Firma Care Technologies bietet Systemhäusern die Dienste ihrer Programmiermaschine an. Ein Stück Software, das selbst wiederum Software zu schreiben verspricht - fehlerfrei, versteht sich, und schneller als der geübteste menschliche Programmierer es könnte.

Von Achim Killer |
    Es hört sich schon recht abenteuerlich an, was Joachim Fischer, der Deutschland-Geschäftsführer von Care Technologies, da über die Programmiermaschine seines Unternehmens erzählt, ein handelsüblicher Server, auf dem ein Programm läuft, das programmiert:

    Bei unserer Maschine gibt es kein manuelles Programmieren mehr. Was Sie machen - wie beim Hausbau - Sie bauen ein Modell der Software. Wie beim Hausbau brauchen Sie auch einen Software-Architekten, der dieses Modell erstellen kann. Manuelle Programmierung fällt weg, denn die Maschine erstellt aus dem Modell plattformübergreifend die fertige Software.

    Hört sich Aufsehen erregend an, ist es auch, aber trotzdem eigentlich nur die konsequente Fortsetzung der Entwicklung, die die Programmiertechnik bislang genommen hat. Konrad Zuse weiland schrieb noch direkt im Maschinen-Kode, also Software in Form von Nullen und Einsen. Es folgte die Assembler-Programmierung. Software wird dabei als Abfolge von vielen kurzen Einzelbefehlen entwickelt. Und heute üblich sind höhere Programmiersprachen, also relativ wenige mächtige Befehle, die dann zusammen ein Programm bilden. Auch die weitgehend automatisierte Umsetzung eines Software-Entwurfs in Quell- oder Maschinen-Code ist schon länger bekannt. Die UML, die Uniform Modelling Language, ist so ein Ansatz. Allerdings ist sie sehr kompliziert. Und der Programmierer muss deshalb auch weiterhin Hand anlegen. Die Care-Programmiermaschine hingegen kommt mit sehr wenigen Entwurfsmustern aus und funktioniert deswegen vollständig automatisch. Entwickelt worden ist sie von dem spanischen Informatik-Professor Oscar Pastor:

    Der Input ist genau definiert. Er besteht aus einem Katalog genau festgelegter konzeptioneller Muster. Ich würde nicht sagen, dass es einfach ist. Aber es ist eben auch nicht sehr schwierig, diese exakt definierten Muster in Software umzusetzen.

    Der geringen Anzahl von Entwurfsmustern entspricht natürlich auch ein relativ begrenztes Einsatzgebiet der Programmiermaschine. Computerspiele oder Mulitmedia-Software kann man damit nicht entwickeln, sehr wohl aber Programme, wie sie in Wirtschaft und Verwaltung gebraucht werden.

    Was wir sehr gut beherrschen, ist die Programmierung von Organisations-Software, also von Programmen, die man braucht, um die Verwaltungsaufgaben in einer Universität zu bewältigen oder in einem Krankenhaus oder in einem Lager. Üblicherweise baut man solche System aus drei Teilen auf. Einer besteht aus der Anwendungslogik. Es gibt eine Datenbank und die Schnittstelle zum Anwender. Und zusammengehalten wird das ganze durch die Kommunikations-Funktionen.

    Und die Entwürfe solcher Software-Systeme kann die Progammiermaschine im Unterschied zum menschlichen Programmierer fehlerfrei umsetzen, vorausgesetzt, man hat beim Entwurf keinen Fehler gemacht.

    Also wir können nicht abchecken, ob alle Anforderungen an die Software im Modell drin sind, genauso, wie es keine Automatik gibt, ob das, was Sie von einem Haus wollten, der Architekt auch umgesetzt hat. Der Software-Architekt ist weiterhin ein Mensch, ganz klar. Aber dieser Prozess, wie ich dieses Modell erstelle mit diesem Software-Architekten, kommt eben unserem kognitiven Verstehen viel näher als irgendeine andere Programmiersprache.

    Und diese automatisierte Form der Software-Entwicklung kommt jetzt auf den Markt, als Dienstleistung, wie Siegfried Borho erläutert, der Eigentümer von Care Technologies:

    Wir haben das Ziel, dass wir das rein als Dienstleistung verkaufen, und zwar in der Form, dass wir das Modellierwerkzeug verkaufen, aber relativ günstig für 1200 Euro und dass wir nachher die Umwandlung der Modelle in Programme, dass wir das entsprechend dem Volumen, nach Funktionspunkten, berechnen.

    Die Vision der Software-Entwicklung ohne Zutun des Menschen ist nach alldem weit entfernt von ihrer Verwirklichung. Aber eine neue Stufe der Programmierungtechnik könnte die Care-Maschine durchweg einläuten - wenn sie sich denn bewährt im Alltagsgeschäft mit Maschinen- und Quell-Code.