Wissenschaftsdisziplinen
Informatik (100%)
Keywords
-
Software Engineering Process,
Quality Assurance,
Process Deviation,
Constraint Violation,
Constraint Repair,
Violation Impact
Gerade in sicherheitskritischen Bereichen ist die Sicherstellung einer hohen Softwarequalität relevant. Stellen Sie sich die Folgen bei einer Rettungsaktion vor, wenn die Kommunikation zwischen Leitstelle und Rettungseinheiten aufgrund eines Softwarefehlers ausfällt. Unter den verschiedenen Maßnahmen zur Erzielung einer hohen Qualität sind Regelungen, wie die einzelnen Software-Engineering-Artefakte (wie Anforderungen, Designdokumente, Testfälle etc.) verknüpft werden müssen. Durch eine solche Verknüpfung (auch Tracing genannt) kann beispielsweise überprüft werden, ob alle Anforderungen umgesetzt und auch getestet werden. Richtigkeit und Vollständigkeit dieser Traces gehören zur Erfüllung der Qualitätssicherungskriterien (QS). Was die Entwicklung sicherheitskritischer Systeme erschwert, ist die Tatsache, dass das Erstellen oder Aktualisieren dieser Artefakte und deren Verknüpfung selten die Aufgabe eines einzelnen Ingenieurs ist. Vielmehr erfordert dies die Koordination mehrerer Ingenieure: einige sind für die Definition von High- Level-Anforderungen verantwortlich, andere für deren Verfeinerung auf Low-Level-Anforderungen, andere verantwortlich für die Entwicklung von Testfällen usw. Diese Ingenieure müssen sich daher koordinieren, um Fehler wie etwas das Fehlen eines Testfalls oder eine nicht nachgezogene Anforderungsaktualisierung zu vermeiden. Dazu beschreibt ein Software-Engineering-Prozess, wie sich diese Ingenieure koordinieren sollen. Den Prozess zu befolgen und sicherzustellen, dass die Qualitätskriterien erfüllt werden, ist nicht trivial. Oftmals müssen Ingenieure wissentlich aufgrund von Zeitdruck oder unvorhergesehene Situationen vorübergehend von den Prozess- und QS-Kriterien abweichen. Ziel des Projekts ist es, Ingenieure dabei zu unterstützen, eine Abweichung von den Prozess- und QS- Kriterien zu beheben, auch wenn einige Arbeiten bereits als erledigt gelten und andere auf diesen Ergebnissen aufbauen. Beispielsweise muss eine High-Level-Anforderung überarbeitet werden, obwohl diese bereits zu einer Low-Level-Anforderung verfeinert wurde. Eine strikte Befolgung des Prozesses erlaubt es eventuell nicht, dies zu tun. Der in diesem Forschungsprojekt untersuchte Ansatz unterstützt die Ingenieure dabei, bewusst zu werden, welche Artefakte von einer Änderung (und damit Prozessabweichung) betroffen sind, welche QS-Kriterien möglicherweise nicht mehr erfüllt sind und wer in die Entscheidung zur Behebung eingebunden werden soll. Letztendlich besteht das Ziel darin, detaillierte, umsetzbare Anleitungen zu den Behebungsmöglichkeiten zu geben, jedoch weiterhin Unterstützung zu bieten, welche Prozessschritte durchgeführt werden müssen und ob andere QS- Einschränkungen erfüllt sind, auch wenn die bestehende Abweichung noch nicht behoben ist. Das Projekt wird die Auswirkung einer solchen Engineering-Unterstützung durch die Anwendung in einer realen Software-Engineering-Umgebungen zeigen. Es wird erwartet, dass Software-Ingenieure weniger Zeit aufwenden müssen, um herauszufinden, gegen welche QS-Beschränkungen sie verstoßen oder wer davon betroffen ist, sowie dass sie weniger QS-Kriterien verletzen welche zu kostspieligen Fehlern und/oder deren zeitaufwändiger Behebung führen.
- Universität Linz - 100%
- Martina Seidl, Universität Linz , nationale:r Kooperationspartner:in
- Ruben Heradio, Spanish Open University - Spanien