TECHNOLOGY
Software-Design und die Evolution © Dr. Roberto Lopez-Herrejon

Roberto Erick Lopez-Herrejon von der Johannes Kepler Universität Linz.

© Dr. Roberto Lopez-Herrejon

Roberto Erick Lopez-Herrejon von der Johannes Kepler Universität Linz.

13.11.2015

Software-Design und die Evolution

Ein vom Wissenschaftsfonds FWF finanziertes Projekt ­untersucht die Möglichkeiten der automatisierten Software-Entwicklung für komplette Produktlinien.

••• Von Christoph Fellmer

LINZ. Ohne Software geht in Zeiten wie diesen gar nichts mehr. Die meisten Dinge des täglichen Gebrauchs basieren auf Mikrochips und einer für den jeweiligen Einsatzzweck adaptierten Software­lösung – von der Zündsteuerung im Auto bis zum Mikrowellenherd. Software für ganze Produktlinien aufeinander abzustimmen, geht laut den Ergebnissen eines Projekts des Wissenschaftsfonds FWF auch automatisch und intelligent – und nicht wie bisher „manuell” und unkoordiniert. Im Rahmen des Projekts wurden Algorithmen zur Abstimmung entwickelt, die auf Prinzipien der Evolution beruhen.

Die Funktionalität der einzelnen Komponenten eines Produkts aufeinander abzustimmen, ist keine einfache Angelegenheit, wie sich beispielsweise schon an einem Smartphone zeigt: Jede Komponente – wie Kamera, Akku oder App – hat ihre eigene Software und deren Abstimmung aufeinander ist selbst heute noch eher dem Zufalls­prinzip überlassen. Ganz besonders eklatant wird dieses Problem bei Produktfamilien, bei denen die Software eines Produkts (wie zum Beispiel ein Smartphone) auch für viele andere Produkte (Tablet) verwendet wird.

Komplexe Verfahren

„Die Anpassung von Software aneinander ist hoch komplex”, umreißt Roberto Erick Lopez-Herrejon von der Johannes Kepler Universität Linz sein im Rahmen des Lise Meitner-Programms des FWF realisiertes Projekt. „Die nahezu unendlich vielen Möglichkeiten, wie diese interagieren, sind unüberblickbar. Die Probleme, die auftauchen können, sind also gar nicht alle vorhersehbar – und genau deswegen sucht man nach Lösungen, diese zu vermeiden. Dabei wird trotz des enormen Zeitdrucks bei der Entwicklung noch immer auf die Leistung individuellen Fachpersonals gesetzt, anstatt den Prozess zu automatisieren. Wir haben nun nach Wegen gesucht, diesen Optimierungsprozess durch Einsatz intelligenter Algorithmen zu automatisieren.”

Einer dieser Wege nennt sich „Search Based Software Engineering” und basiert auf metaheuristischen Methoden, einem näherungsweisen Verfahren, das allgemeingültige Lösungen in unüberschaubaren Problemen schafft. Selbst wenn das Wissen über die Struktur der Software nur teilweise bekannt ist, können dennoch Lösungsszenarien berechnet werden, die zwar nicht unbedingt das absolute Optimum darstellen, in der Praxis die Breite aber ausreichend gut abdecken – und mit überschaubarer Rechnerleistung kalkuliert werden können.
„Wir haben nun in unserem Projekt Algorithmen entwickelt, die sich an Prozessen der natürlichen Evolution orientieren”, sagt Lopez-Herrejon. „Darin werden Prinzipien der Vererbung und von Mutationen genauso abgebildet wie Selektion. So erhalten wir näherungsweise Lösungsansätze, die sich in der ­Realität bewähren.”
Das Team konnte dabei einen allgemeinen Ansatz entwickeln, der diese Kontrolle (Consistency Checking) für die gesamte Familie von Softwareprodukten (alle Komponentenkombinationen auf einmal) erlaubt – und zwar in einem sehr frühen Stadium der Entwicklung dieser Software, in dem Korrekturen noch einfach möglich sind.

BEWERTEN SIE DIESEN ARTIKEL

TEILEN SIE DIESEN ARTIKEL

Ihr Kommentar zum Thema