CORDIS - Forschungsergebnisse der EU
CORDIS

Article Category

Story
Inhalt archiviert am 2024-04-23

Article available in the following languages:

Feature Stories - Einfach ist Trumpf: Softwarekomplexität unter Kontrolle bringen

"Dummköpfe ignorieren Komplexität. Pragmatiker ertragen sie. Manche meiden sie. Genies beseitigen sie." So die Worte des wegweisenden Informatikers Alan Perlis, der wahrscheinlich vor lauter Bestürzung über die Komplexität der modernen Softwaresysteme nur den Kopf schütteln könnte. Ein Team aus EU-finanzierten Forschern, die sich wohl kaum selbst als Genies beschreiben würden, will nun diese Komplexität unter Kontrolle bringen und einen alternativen Ansatz für die Softwareentwicklung liefern, mit dem sicherere, kostengünstigere und robustere Systeme aufzubauen sind.

Digitale Wirtschaft icon Digitale Wirtschaft

Software ist im Laufe der Jahre nicht nur immer komplexer geworden, sie hat sich überdies immer weiter ausgebreitet: Denken Sie nur an Ihr Auto oder Ihren Stromzähler; Software findet sich in Kraftwerken, Flugzeugen, Zügen, Banken und Krankenhäusern. Sie betreibt kritische Systeme, bei denen schon ein einziger Fehler katastrophale Konsequenzen haben kann. Und das höhere Ausfallrisiko aufgrund der zunehmenden Komplexität von Software ist nicht das einzige Problem - die Komplexität geht außerdem in die Kosten. Die Prüfsoftware auf Programmfehler macht derzeit rund die Hälfte der Pre-Release-Ausgaben und etwa 70 % der Post-Release-Kosten aus. Der Kern des Problems ist die Tatsache, dass traditionelle Softwareentwicklungsprozesse nur schlecht dazu geeignet sind, um die enorme Komplexität und Diversität moderner Softwaresysteme in den Griff zu bekommen. "Schaut man sich zum Beispiel ein modernes Auto an, so finden sich hunderte zusammengestoppelte Softwareelemente, die von der Klangqualität bis hin zum Tempomaten alles mögliche zu verantworten haben. Da in die Systeme immer mehr Elemente und immer mehr Funktionalitäten gepackt werden, beklagen die Ingenieure, dass sie die Kontrolle über die Komplexität verlieren. Sie sorgen sich darum, dass sie eines Tages nicht mehr in der Lage sein könnten, die erforderlichen Qualitätssicherungen zu gewährleisten", erklärt Alexander Romanovsky, Professor für Informatik an der Universität Newcastle im Vereinigten Königreich. "Und diese Komplexität findet sich überall und in allem: Unternehmen, die eigentlich Fahrzeuge, Züge, Flugzeuge und dergleichen herstellen, opfern einen großen Teil, vielleicht sogar die Hälfte ihrer Zeit und ihrer Ressourcen der Entwicklung von Software. Im Grunde genommen entwickelt die gesamte Industrie Software." Die Frage ist nun, ob die Industrie einen besseren Weg zur Entwicklung von Software, insbesondere für kritische Systeme, finden kann. Für die am Deploy-Projekt beteiligten Forscher lautet die Antwort darauf zweifellos "Ja!". "Industrial deployment of advanced system engineering methods for high productivity and dependability" (Deploy) wird mit Finanzmitteln in Höhe von 12,4 Millionen EUR von der Europäischen Kommission unterstützt und von Professor Romanovsky koordiniert. Ihr Ansatz folgt formalen entwicklerischen Methoden (Formal Engineering), die nun, was in großem Maße den Anstrengungen des Teams zu verdanken ist, bei Unternehmen und Ingenieure wieder als ein effizienterer, praktischer Weg zur Entwicklung komplexe Softwaresysteme an Akzeptanz gewinnen. Die Deploy-Prozesse sind bereits bei der Entwicklung sicherheitskritischer Software für U-Bahn-Linien und Flughafenzubringerzüge zum Einsatz gekommen. Im Unterschied zu traditionellen Softwareentwicklungskonzepten gründen formale Methoden in der mathematischen Modellierung und Analyse, wobei mehreren Ebenen der Abstraktion die Schlussfolgerungen stützen, um einen systematischen Entwicklungsablauf von der Anforderungsspezifikation über die Modellierung der Architektur und den detaillierten Entwurf bis hin zur Implementierung, zum Testen und zur Bereitstellung zu ermöglichen. Für das Projekt setzte das Team die Weiterentwicklung von "Event-B", einer formalen Methode zur Modellierung auf Systemebene und Analyse fort, die erstmals im Rahmen des EU-finanzierten Projekts Rodin ("Rigorous open development environment for complex systems") entwickelt wurde und von "Rodin Tools", einer integrierten Entwicklungsumgebung, unterstützt wird. Ingenieure zum Andersdenken ermutigen "Die Ingenieure bekommen es hier mit einer grundlegenden Veränderung zu tun. Typischerweise sind sie daran gewöhnt, zu Beginn eines Projekts mit der Entwicklung der Software zu starten, diese auszubauen und dann zum Ende hin hart an ihrer Implementierung, Verifizierung und Prüfung zu arbeiten. Formal Engineering kehrt aber die Sache um: Die harte Arbeit findet am Anfang statt, beginnt dabei mit einer Zusammenfassung der Systemanforderungen und folgt einem strengen, logischen und mathematischen Entwicklungsprozess", erläutert Professor Romanovsky. Der Vorteil dabei ist, dass nun Fehler schon frühzeitig in der Entwicklung erkannt werden. Der konsequente und logische Ansatz bedeutet, dass die Komplexität innerhalb vorher festgelegter Grenzen bleibt. Und all das reduziert die erforderlichen Tests in den Endphasen. Ergebnis sind letztlich robustere und zuverlässige Systeme, die möglicherweise spürbar niedrigere Kosten als beim Einsatz herkömmlicher Entwicklungsmethoden verursachen. Das hört sich nach einer Situation an, die für beide Seiten ein Gewinn ist. In Wahrheit verbirgt sich hier allerdings eine riesige Herausforderung: Ingenieure sind meistens keine Mathematiker. "Formale Entwicklungsmethoden erfordern mathematisches Wissen, das die meisten Ingenieure, die an traditionelle Herangehensweisen gewöhnt sind, einfach nicht besitzen, und da der Prozess so völlig anders ist, fordert er überdies eine veränderte Denkweise von ihnen. Außerdem ist es schwierig, ein Unternehmen, das die Softwareentwicklung in den letzten 10, 20 oder sogar 30 Jahren auf eine bestimmte Weise vorangetrieben hat, davon zu überzeugen, es plötzlich ganz anders zu machen", verdeutlicht Professor Romanovsky. Das Deploy-Projekt, das wahrscheinlich die größte, jemals durchgeführte Bereitstellungsinitiative für formale Softwareentwicklung im industriellen Maßstab ist, hat schon einen weiten Weg zurückgelegt, um all diese Hürden zu überwinden. Das Team implementierte zum Beispiel in Zusammenarbeit mit dem Projektpartner SAP formale Prozesse auf transparente Weise. So konnten die Ingenieure weiter domänenspezifische Programmiersprachen bei der Entwicklung geschäftsentscheidender Software verwenden, die dann mit Unterstützung von Spezialisten für formelle Entwicklung automatisch in Event-B übersetzt wurden. Bei Siemens, wo die Ingenieurinnen und Ingenieure bereits über umfangreiche Erfahrungen mit formaler Modellierung verfügten, setzte man Event-B ein, um Software zu entwickeln, die derzeit in den U-Bahn-Netzen von Barcelona und Paris sowie anderswo zur Zugsteuerung und in Signalgebungssystemen verwendet wird. Bosch setzte den Ansatz bei der Entwicklung von Geschwindigkeitsregelanlagen (Tempomat) und des Start-/Stopp-Automatiksystems für Fahrzeuge ein. Bei Space Systems Finland, einem weiteren Projektpartner, nutzte man den Prozess für Komponenten der BepiColombo-Raumsonde der Europäischen Weltraumorganisation und für Systeme zur Lage- und Bahnregelung. Beim französischen Partner Systerel wird mittlerweile Event-B für etliche Eisenbahn- sowie Luft- und Raumfahrtsysteme verwendet. Die Deploy-Forscher haben zwei Spin-off-Unternehmen, Rodin Tools und Formal Mind, auf den Weg gebracht, um die Instrumente zu vermarkten und sie im erweiterten Maßstab bereitzustellen. Sie haben überdies ein mit EU-Finanzmitteln ausgestattetes Folgeprojekt (Advance, "Advanced design and verification environment for cyber-physical system engineering") in Angriff genommen. Die erfolgreiche Bereitstellung und der kontinuierliche Einsatz formaler Entwicklungsmethoden in den beteiligten Firmen bietet anderen Unternehmen ein klares Beispiel, welchen Strategien sie auf der Suche nach neuen Wegen im Umgang mit der Komplexität folgen sollten. "Wir geben der Industrie auf jeden Fall Gedankenanstöße zu derzeitigen Entwicklungsmethoden und den Vorteilen, die der Wechsel zu einem formalen Ansatz in bestimmten Fällen mit sich bringt", bilanziert Professor Romanovsky. Die Werkzeuge, eine umfangreiche Event-B-Dokumentation sowie die von den Deploy-Partnern angebotene Unterstützung werden sicher dazu beitragen, die Ingenieure davon zu überzeugen, sich auf Projekte mit formaler Entwicklung einzulassen. "Auf lange Sicht werden Softwaresysteme immer nur noch komplexer - Formal Engineering ist, wie wir beweisen konnten, ein Weg, um dieses Problem in den Griff zu bekommen", bekräftigt Professor Romanovsky. Deploy erhielt eine Forschungsfinanzierung innerhalb des Siebten Forschungsrahmenprogramms (RP7) der Europäischen Union. Links zu Projekten auf CORDIS: - RP7 auf CORDIS - Deploy-Projektfactsheet auf CORDIS Link zur Projekt-Website: - Website "Industrial deployment of advanced system engineering methods for high productivity and dependability" Weitere Links: - Website der Europäischen Kommission zur Digitalen Agenda