Blick ins „Gehirn“ des Computers

Neue Visualisierungstechniken helfen, in komplexen Softwareroutinen Safety- und Securitylücken schneller zu „sehen“

155

©  — 

VORHERIGES BILD
NÄCHSTES BILD
<>

Innovationsgrad

REDAKTION:

7

7

COMMUNITY:

7

7

Marktreife2010

27. Mai 2010 — 

Kaiserslautern, Fraunhofer IESE –

Sicher, zuverlässig und unangreifbar - drei zentrale Attribute kennzeichnen die Solidität einer Software. Die Produkte daraufhin zu testen, vorhandene Schwachstellen zu beseitigen und schließlich zuverlässig zu bewerten, ob ein Softwareprodukt die an sie gestellten Anforderungen auch erfüllen kann, ist eine zunehmend komplexe Herausforderung. Das hat zwei Gründe: Erstens sind Programme die Schnittstelle zum Benutzer, um Arbeitsaufträge zu definieren und Parameter einzustellen. Und sie übernehmen immer mehr Aufgaben, um immer mehr Funktionalitäten und Abläufe zu steuern. Doch mit wachsender Leistungsfähigkeit werden die in den Steuerungseinheiten arbeitenden Softwarecodes auch immer komplexer und umfangreicher. Zweitens werden die meisten Softwarelösungen nicht mehr als Stand-Alone-System betrieben, sondern arbeiten in einem komplexen Netzwerk intelligent zusammen. Dies gilt für die Bordelektronik in Autos und Flugzeugen ebenso wie für lebenserhaltende Systeme auf Intensivstationen oder die Prozesssteuerung ganzer Industrieanlagen. Damit im Alltagseinsatz technische Geräte und Maschinen störungsfrei und sicher funktionieren, testen Planer und Entwicklungsingenieure das Zusammenspiel der mechanischen und elektronischen Komponenten an virtuellen Abbildern der Wirklichkeit. Bevor Maschinen und Anlagen tatsächlich produziert werden, entstehen sie als dreidimensionale und bewegliche Modelle im Computer. Gesteuert werden sie (genau wie im Realbetrieb) über die dazugehörigen Softwaresysteme. Unterschiedlichste Abläufe und Parameterkonstellationen lassen sich so im virtuellen Probelauf ausgiebig testen. Probleme im Zusammenspiel mechanischer Komponenten sind am Computermodell unmittelbar sichtbar. Die Prüfung der Softwarekomponenten auf ihre Funktionsfähigkeit erfordert allerdings einen umfassenderen Einblick in die Strukturen der Programmcodes. Denn es reicht nicht aus, im simulierten Probelauf Fehlsteuerungen zu finden. Um sie beheben zu können, muss auch exakt festgestellt werden können, welcher Softwarebaustein und welche Rechenroutine sie verursacht hat. Aus der bloßen Anzeige der Programmzeilen und der Ergebniswerte von Berechnungsroutinen am Bildschirm lassen sich solche Ursache-Wirkungszusammenhänge jedoch nur schwer erkennen. Zudem müssen für eine Analyse von Qualitätsattributen wie Sicherheit und Zuverlässigkeit zusätzliche Informationen berücksichtigt werden. Dazu gehört beispielsweise die Häufigkeit, mit der bestimmte Systemzustände in der Praxis auftreten oder Aussagen zur Wahrscheinlichkeit des Eintretens kritischer Parameterkonstellationen. All dies sind allerdings Faktoren, die in der realen Welt unsichtbar sind. Auch die virtuelle Nachbildung als Computermodell kann sie also nicht zeigen. Um sie dennoch „greifbar“ zu machen und damit in ihren Zusammenhängen zu verstehen, entwickeln die Forscher am Fraunhofer IESE neue Verfahren, mit denen auch sehr umfangreiche und komplexe Softwaresysteme „durchschaubar“ gemacht werden können. Genutzt wird dabei eine zunächst eher klassische Methode: Die Übersetzung von Softwarestrukturen in eine überschaubare Form wie beispielsweise die Erstellung von Fehlerbäumen. Die Verzweigungen solcher Diagramme verdeutlichen auf einen Blick, wie die einzelnen Softwarebausteine aufeinander aufbauen und miteinander verknüpft sind. Wird ein Fehlverhalten des Systems festgestellt, kann zuverlässig abgeschätzt werden, zu welchen Folgereaktionen ein falscher Ausgabewert einer Softwareroutine innerhalb des vernetzten Berechnungssystems führt. Die komplexen Strukturen heute üblicher Softwarelösungen sprengen allerdings rasch die Grenzen dieser Visualisierungsform. Die Hierarchieebenen und die Verästelungen sind schlicht zu zahlreich, als dass sie in einem zweidimensionalen Baumdiagramm übersichtlich angeordnet werden könnten. Um dieses Problem zu lösen, arbeiten die Forscher am Fraunhofer IESE mit Algorithmen, die Wissenschaftler in der Natur entdeckt haben: Sonnenblumen zum Beispiel ordnen ihre vielen Blütenblätter und Samen nach einer strengen mathematischen Methode an. Sie erreichen damit, dass sich die Blätter gegenseitig nur minimal beschatten und damit die beste Lichtausbeute erzielt wird.

Die Verwendung dieser Algorithmen zur Darstellung von Softwarestrukturen in dreidimensionalen Diagrammen hat mehrere Vorteile: Zum einen kann die gewohnte Baumstruktur damit auch für komplexe Systeme weiter angewendet werden. Zum anderen sichern die in der Natur optimierten Methoden, dass auch sehr viele Hierarchieebenen und erzweigungen automatisch so angeordnet werden, dass sie sich gegenseitig nicht verdecken. Für die Auswertung von Fehlerbäumen etwa bedeutet dies, dass mit dem Einsatz der dreidimensionalen Visualisierungstechniken kritische Systemzustände oder potentielle Fehlerquellen schneller und lückenlos am Bildschirm sichtbar werden. Um die Möglichkeiten der neuen Visualisierungstechnik erproben und demonstrieren zu können, „übersetzten“ die Forscher am Fraunhofer IESE die gesamte Hierarchiestruktur der Programmiersprache Java in eine 3D-Baumstruktur. Das Ergebnis umfasst knapp 8.000 Knoten und ungefähr ebenso viele Verknüpfungslinien. Alle derselben Hierachieebene zugehörigen Knoten lassen sich dennoch auf Anhieb erkennen. Jede Ebene hat ihre eigene Farbe. Und auf Knopfdruck wird die Baumstruktur in einem anderen Detaillierungsgrad angezeigt. So kann der Betrachter je nach Analyseziel die für ihn am besten „durchschaubare“ Darstellung wählen. Werden die Unterbäume der Softwarestruktur mit den Teilpaketen und Klassen sowie deren Attributen und Methoden zur Klärung einer Fragestellung nicht benötigt, lassen sich die Detailverzweigungen im übergeordneten Knoten zusammenfassen.

Auch bei der Prüfung und Bewertung der Zuverlässigkeit eingebetteter Softwaresysteme helfen geeignete dreidimensionale Visualisierungen. Jeder Testfall der Bordelektronik eines Autos beispielsweise bildet eine Verkettung der Zustände der einzelnen Subsysteme und Softwarekomponenten. Als dreidimensionale Kugel-Stab-Modelle (wie sie auch in der Chemie für Molekülstrukturen verwendet werden) lassen sich Verkettungen und Wahrscheinlichkeiten ihres Auftretens übersichtlich abbilden. Über die Größe und Farbe von Kugeln und Verbindunglinien ist es möglich, zusätzliche Informationen optisch „begreifbar“ hinzuzufügen. Der Softwaretester kann damit am Bildschirm zum Beispiel erkennen, welche Systemzustände in der Praxis besonders häufig sind oder wie oft in bestimmten Bereichen Fehler auftreten und so leichter sicherheitskritische Komponenten identifizieren. Wie die dreidimensionalen Visualisierungstechniken in der Praxis eingesetzt werden können, zeigt das Fraunhofer IESE unter anderem im Rahmen des vom Bundesforschungsministerium geförderten Projekt „ViERforES“. Insgesamt vier Wissenschaftseinrichtungen entwickeln dabei gemeinsam Lösungen, um mit Mitteln der virtuellen und erweiterten Realität eingebettete Systeme möglichst sicher und zuverlässig zu machen.

155 mal gelesen

0 Kommentar(e)

http://innovisions.de/beitraege/blick-ins-gehirn-des-computers/

Kommentare zu diesem Beitrag

0 Kommentare