EvolutionÀre Software
Beim Schweizer Taschenmesser geht es einfach â beim Smartphone ist es komplizierter: die FunktionalitĂ€t der einzelnen Komponenten aufeinander abzustimmen. Jede Komponente â wie Kamera, Akku oder App â hat ihre eigene Software und deren Abstimmung aufeinander ist selbst heute noch eher dem Zufallsprinzip ĂŒ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 etc.) verwendet wird. Diese Software in der Entwicklungsphase richtig abzustimmen, hat sich Roberto Erick Lopez-Herrejon von der Johannes Kepler UniversitĂ€t Linz in einem Projekt des Lise Meitner-Programms des FWF zum Ziel gemacht. â Mit spannenden Ergebnissen, die nun in mehreren internationalen Publikationen veröffentlicht wurden.
Suchen & Finden
Zu den HintergrĂŒnden des Projekts meint Lopez-Herrejon: âDie Anpassung von Software aneinander ist hoch komplex. 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.â
Lösungsszenarien erarbeiten
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.
Vorbild Natur
âWir haben nun in unserem Projekt Algorithmen entwickelt, die sich an Prozessen der natĂŒrlichen Evolution orientierenâ, erlĂ€utert Lopez-Herrejon den besonderen Ansatz des Projekts und fĂ€hrt fort: â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.â Ein spezielles Problem, dem sich das Team um Lopez-Herrejon widmete, war das Kontrollieren der Richtigkeit, Sicherheit und ZuverlĂ€ssigkeit solcher Software. Dabei werden Softwareteile (Komponenten), daraufhin kontrolliert, ob und wie sie mit anderen Komponenten integrierbar sind, um eine falsche Verwendung zu vermeiden. Dies ist eine zwingende Voraussetzung fĂŒr die reibungslose Komponenteninteraktion innerhalb eines Softwareprodukts. Das Team konnte dabei einen allgemeinen Ansatz entwickeln, der diese Kontrolle (âConsistency Checkingâ) fĂŒr die gesamte Familie von Softwareprodukten, also allen Komponentenkombinationen auf einmal, erlaubt â und zwar bereits in einem sehr frĂŒhen Stadium der Entwicklung dieser Software. Zu einem Zeitpunkt also, zu dem etwaige Korrekturen noch ohne viel Aufwand möglich sind.
Liniengetreu
FĂŒr Lopez-Herrejon war es ganz klar, den Fokus des Projekts auf ganze Familien von Softwareprodukten zu legen: "Eine Software-Familie, auch âSoftware Product Lineâ genannt, ist eine Art modulares System, wo ein Softwareprodukt auf kombinierbaren Komponenten aufbaut. Und da manche dieser Komponenten öfter in Softwareprodukten verwendet werden, sind diese bereits zuverlĂ€ssiger und können mit weniger Testen in neuen Softwareprodukten wiederverwendet werden. Das verkĂŒrzt die Entwicklungszeit von neuen Produkten enorm und beschleunigt den Markteintritt." Gleichzeitig muss aber gerade bei âSoftware Product Linesâ die Abstimmung der Komponenten sehr sorgfĂ€ltig geplant werden, denn oftmals wurden ja diese Bestandteile zunĂ€chst fĂŒr eine andere Umgebung wie Smartphones entwickelt â und die âZusammenarbeitâ mit anderen Softwarekomponenten in einer neuen Umgebung, wie Tablets, kann dann voller Ăberraschungen sein. Oder eben auch nicht, wenn die in diesem FWF-Projekt entwickelten Algorithmen zukĂŒnftig bei der Entwicklung zum Einsatz kommen.
Zur Person Roberto Erick Lopez-Herrejon forscht am Institute for Software Systems Engineering der Johannes Kepler UniversitÀt Linz. Seine Forschung befasst sich u.a. intensiv mit Software Product Lines, der modellbasierten Entwicklung von Software, Softwareaufbau und -architektur sowie dem Consistency Checking. Im Rahmen seiner wissenschaftlichen Laufbahn erhielt er bisher ein Fulbright Stipendium, ein Fellowship der University of Oxford, ein IEF Marie Curie Fellowship sowie Förderung im Rahmen des Lise-Meitner-Programms des Wissenschaftsfonds FWF.
Publikationen