Natürliche Auslese in der Technik
Martina Seidl, die 31-jährige Informatikerin aus Klosterneuburg, stellt sich vor und erzählt über ihre Forschungsarbeit an der Technischen Universität Wien, Baupläne von Computerprogrammen und die Software-Evolution.
Sabine Seidl: "Meine Forschung läuft darauf hinaus, Methoden, Techniken und Werkzeuge zu entwickeln, die Software 'richtiger' machen."
Forschen & Entdecken: Welche Ausbildung haben Sie durchlaufen?
Martina Seidl: Nach der Absolvierung des BG/BRG Klosterneuburg studierte ich von 1998 bis 2003 Informatik an der Technischen Universität Wien. Direkt im Anschluss schrieb ich am Institut für Informationssysteme der TU Wien meine Doktorarbeit „A Solver for Quantified Boolean Formulas in Negation Normal Form“, die ich im Frühjahr 2007 erfolgreich verteidigte. Derzeit arbeite ich in der Business Informatics Group der Technischen Universität Wien und dem Institut für Formale Modelle und Verifikation der Johannes Kepler Universität Linz. Das heißt, ich pendle zwischen Wien und Linz.
Wie lange sind Sie schon in Ihrem Forschungsbereich tätig?
Meine Forschungsarbeit ist in zwei Bereichen der Informatik anzusiedeln. Einerseits beschäftige ich mich mit Fragestellungen des automatischen Beweisens, und andererseits beschäftige ich mich mit Fragestellungen des Model Engineerings. Mit dem ersten Themenbereich, der in der theoretischen Informatik anzusiedeln ist, setzte ich mich bereits während meines Diplomstudiums intensiv auseinander. In dem zweiten Themenbereich, der im Bereich der praktischen Informatik anzusiedeln ist, arbeite ich seit 2006.
Mit welchen Fragestellungen beschäftigen Sie sich?
Schlussendlich läuft meine Forschung darauf hinaus, Methoden, Techniken und Werkzeuge zu entwickeln, die Software „richtiger“ machen, sodass bei der Entwicklung von Software Fehler vermieden oder zumindest frühzeitig entdeckt werden. Wenn ein Programm vollständig erstellt worden ist, heißt das ja noch lange nicht, dass es für immer unverändert bleibt – selbst wenn es erfolgreich eingesetzt wird. Mit der Zeit ändern sich die Erwartungen und Anforderungen an die Software, neue Technologien müssen berücksichtigt werden, aber auch Fehler im Programm werden erkannt, die korrigiert werden müssen.
Was bedeutet das im Detail?
Das Programm muss also weiterentwickelt werden – man spricht hierbei auch von Software-Evolution. Evolution ist ein Begriff, der vor allem aus der Biologie bekannt ist. Evolution beschreibt die Veränderung von gewissen Merkmalen über Generationen hinweg. Evolution ist eng mit dem Begriff der natürlichen Selektion verbunden, der von Charles Darwin geprägt worden ist. In der Informatik haben wir eine ähnliche Situation vorliegen wie in einem biologischen System: Nur die beste Software „überlebt“, wird also langfristig zum Einsatz kommen. Hier reicht es natürlich nicht, dass neue Features hinzukommen, sondern die müssen auch gut funktionieren.
Woran scheitern Programme oft?
Folgendes Szenario ist wahrscheinlich, sollte jedoch unbedingt vermieden werden: Software wird an unterschiedlichen Stellen verändert, womöglich von unterschiedlichen Personen, die sich nicht ausreichend koordinieren. Die Wahrscheinlichkeit ist dann hoch, dass die Änderungen über die Zeit nicht zusammenpassen und das Gesamtsystem zum Absturz bringen, auch wenn jede Änderung für sich in Ordnung gewesen wäre.
Wollten Sie schon immer in diesem Bereich tätig sein?
Für mich war schon während meiner Schulzeit klar, dass ich später etwas mit Informatik machen möchte und dass ich besser verstehen wollte, wie Computer eigentlich funktionieren. Daher entschied ich mich für das Informatikstudium an der TU Wien. Mein Interesse an der theoretischen Informatik hat sich im Laufe meines Studiums entwickelt, mein Interesse an der Modellierung wurde im Rahmen eines anwendungsorientierten Forschungsprojekts geweckt.
Was hat Sie daran fasziniert bzw. fasziniert Sie daran?
Mir gefällt es, Lösungen für Probleme theoretisch zu überlegen und diese dann aber auch praktisch umzusetzen und zu evaluieren. Ich empfinde den Prozess, neues Wissen zu generieren, und den wissenschaftlichen Diskurs als äußerst spannend.
Was erforschen Sie aktuell?
Ich beschäftige mich im Moment mit Verfahren, die es erlauben, Informationen derart umzuformen und aufzubereiten, dass sie besser verarbeitbar sind – ohne dabei ihre Bedeutung zu verändern. Konkret geht es dabei um die Darstellung von Modellen als „mathematische Formeln“.
Was heißt das genau?
Unter einem Modell kann man sich in diesem Kontext den „Bauplan der Software“ vorstellen. In der mathematischen Repräsentation ist es möglich, gewisse Fragen wie „Ist das Modell in sich konsistent oder enthält es widersprüchliche Aussagen?“ zu beantworten. Allerdings sind diese Formeln im Allgemeinen sehr groß und der Aufwand sie auszuwerten ist sehr hoch. Ohne geeignete Optimierungsverfahren wäre es nicht möglich, die Formeln in absehbarer Zeit auszurechnen. Daher ist es notwendig, die Formeln in eine entsprechende Form zu bringen, die wichtige Informationen speziell auszeichnet.