Softwareentwicklung: Prüfen leicht gemacht

Shoppingtour im Internet: Es gibt – Kreditkarte vorausgesetzt – nichts Einfacheres. In Software-Systemen setzen Online-Bestellungen jedoch verzweigte Prozesse in Gang. Informatiker Uwe Zdun sorgt mit einem innovativen "Containment Checking" für eine Verbesserung in der Entwicklung komplexer Systeme.

SoftwarearchitektInnen entwerfen, klären, prüfen und kommunizieren – und sie alle kennen folgendes Problem: Am Anfang eines Softwareprojekts findet eine umfangreiche Anforderungsanalyse statt. Und ein sogenanntes Analysemodell des zu erstellenden Systems wird erarbeitet. Dabei werden oft wichtige Aspekte übersehen oder Fehler eingebaut. So passiert es zum Beispiel, dass der Auftraggeber für das Softwareprojekt ein Modell mit den einzelnen Arbeitsschritten erstellt und dabei einige – für die Firma selbstverständliche – Schritte im Arbeitsablauf nicht notiert.

Übersetzungsfehler und Fehlinterpretationen beheben

Für die TechnikerInnen wird das Modell wiederum in ein hoch komplexes Implementierungsmodell übersetzt. Dabei kommt es regelmäßig zu "Übersetzungsfehlern" bzw. zu Fehlinterpretationen – und in der Folge werden die fehlenden Schritte vom Programmierer in der Softwareentwicklung nicht berücksichtigt. Zu kontrollieren, ob das ursprüngliche Modell noch im Implementierungsmodell enthalten ist – und umgekehrt – ist dabei äußerst aufwendig.

"Wir wollen ein Tool entwickeln, das diese Fehlerquellen sofort überprüft und beim Korrigieren der Fehler hilft", erklärt Uwe Zdun, Leiter der Forschungsgruppe Software Architecture, das WWTF-Projekt "Containment Checking". Das neue Instrument soll das aufwendige "Prüfen" wesentlich erleichtern und somit die model-basierte Softwareentwicklung vereinfachen.



Um zu "checken", ob das ursprüngliche Modell noch im implementierten vorhanden ist, entwickelt der Informatiker Uwe Zdun gemeinsam mit seinem Team ein neues Tool für SoftwareentwicklerInnen – das sogenannte "Containment Checking". Die Grafik zeigt ein stark vereinfachtes Beispiel eines implementierungsnahen Modells.



Automatisiertes Kontrollsystem

Das geplante Unterfangen ist – aufgrund der umfangreichen und komplexen Modelle, von denen hier die Rede ist – sehr knifflig. "Deshalb läuft diese Kontrolle in der Softwareentwicklung bis dato noch manuell ab: Das heißt, es werden umfangreiche Analysemodelle durchgearbeitet und auf ihre Übereinstimmung mit den Implementierungsmodellen überprüft", so Zdun zur gängigen Vorgangsweise. "Wir arbeiten daran, diese Kontrolle automatisiert durchzuführen – und eventuelle Fehler vorab zu identifizieren." So weiß der oder die SoftwareentwicklerIn sofort, wo das Problem liegt, und kann den Fehler beheben.

Anwendung in allen Bereichen

Das neue Tool ist für alle Softwaresysteme anwendbar. "Denn jede Software hat ein bestimmtes Verhalten, das vorher umfangreich und im Detail spezifiziert werden muss – von Arbeitsabläufen im medizinischen Bereich bis hin zu Geschäftsprozessen in der Telekommunikations- oder Versicherungsbranche", erklärt der Informatiker.



Diese Grafik ist das zum obigen Modell dazugehörige vereinfachte Beispiel eines Analysemodells für einen Bestellungsablauf.



Im Forschungsalltag bedeutet das für Zdun und sein Team: Systeme designen, programmieren und schließlich Prototypen erstellen. "Diese testen wir dann in Zusammenarbeit mit den EndnutzerInnen, sprich verschiedenen Firmen – oder direkt hier am Institut." Das ist der praktische Teil. "In der Theorie überlegen wir uns, mit welchen Modellen, Formalisierungen und Algorithmen das 'Containment Checking' durchgeführt werden muss."

Sind die Machbarkeitsstudien und der Prototyp am Ende erfolgreich, soll es eine eigene Software für die Entwicklungsumgebung von ProgrammiererInnen oder DesignerInnen geben. "Unsere Zielgruppe sind nicht die EndnutzerInnen von Software, sondern deren EntwicklerInnen", betont Zdun.

Wissenschaftstheorie in der Praxis

"Dabei liegt eine große Herausforderung darin, ein ausreichend schnelles Verfahren zu entwickeln, das maximal einige Sekunden für die Berechnung des 'Checks' braucht", so Zdun. Er findet es vor allem spannend, dass das Projekt Theorie und Praxis – sprich fundamentale Fragestellungen der Softwareentwicklung und ihre konkrete Anwendung – vereint. "Wenn wir Erfolg haben, könnte das die Arbeitsläufe in der Softwareentwicklung weltweit vereinfachen und beschleunigen", bringt es Zdun auf den Punkt.



Hinter fast jedem System steht ein – oder meist mehrere – Programmierer. "Doch das Berufsbild des oder der InformatikerIn ist viel breiter und vor allem kreativer als viele annehmen", betont Uwe Zdun, der seit 2010 Professor für Softwarearchitekturen an der Fakultät für Informatik ist.



Multidisziplinäre Informatik

Von rascheren Entwicklungsverfahren – und der damit einhergehenden Kostenersparnis – würden schlussendlich auch die EndnutzerInnen profitieren. "Es gibt heute ja kaum ein System, hinter dem nicht eine Menge an informatischem Wissen steht. Ob wir mit dem Aufzug fahren, ins Flugzeug steigen oder telefonieren: Hinter all diesen Technologien liegen weitere Systeme, die meist von multidisziplinären Teams entwickelt worden sind", so Zdun.

Breites Berufsbild

Vom Projektmanagement über Medieninformatik, Wirtschaftsinformatik, Softwarearchitektur und Design – das Berufsbild des Informatikers ist sehr breit. "Informatik ist mehr als 'nur' programmieren", erklärt Zdun und bedauert, dass dies in der Öffentlichkeit oft so wahrgenommen wird. "Dem Informatik-Studium hängt leider ein extrem techniklastiges Image an, das manche vom Studium abschreckt. In Wirklichkeit ist die Informatik aber Schnittstelle zu vielen anderen Bereichen und deshalb gesellschaftlich äußerst relevant", betont der begeisterte Forscher und Lehrende.

Abschließend weist er noch auf die Zukunftsrelevanz des Berufsbilds hin:
"In unserem Alltag werden wir ständig von Informatik begleitet, aber am Arbeitsmarkt fehlen tausende InformatikerInnen: Unsere AbsolventInnen haben oft einen guten Job bereits in der Tasche, bevor sie die Uni überhaupt verlassen." (ps)

Das Projekt "Supporting Containment Checking for UML Behaviour Diagrams" (CONTAINER) läuft von 1. Dezember 2012 bis 30. November 2015 und wird im Rahmen des IKT Calls 2012 (Informations- und Kommunikationstechnologien) des WWFT gefördert. Projektleiter ist Univ.-Prof. Dr. Uwe Zdun, Leiter der Forschungsgruppe Software Architecture, ProjektmitarbeiterInnen sind: Dr. Huy Tran, Forschungsgruppe Software Architecture, und Mag. Faiz UL Muram, Forschungsgruppe Software Architecture.