Was bei der Hardware schon verbreitet ist, will Softema bei der Software erreichen: mehr Verständnis dafür, welche Anforderungen die Norm und ihre Umsetzung stellen. Darüber hinaus sollen Entwickler sicherheitsbezogener Software ein Werkzeug in die Hand bekommen, das für eine normgerechte Erstellung des Codes sorgt. Der Assistent leitet die Programmierer durch den gesamten Entwicklungsprozess der Software – von der Spezifikation über die Kodierung bis zu den Verifikations- und Validierungsmaßnahmen. Auf diese Weise hilft er von Beginn an, systematische Fehler zu vermeiden.
Das Arbeiten mit Softema beruht auf Microsoft-Excel-Arbeitsblättern, die wahlweise mit dem Tabellenkalkulationsprogramm oder mit Softema ausgefüllt werden können. In der Spezifikationsphase kann der Entwickler das von ihm erzeugte Programm auf mehreren Excel-Arbeitsblättern beschreiben – von der Spezifikation der Sicherheitsfunktion über die I/O-Belegung und die Software-Architektur mit Nutzung der Vorverarbeitungs- und Ansteuerungs-Ebene bis zur Cause-and-Effect-Matrix. Die Ansteuerlogik wird auf Basis der Cause-and-Effect-Matrix programmiert (Bild 2). Meist setzt die Arbeit mit Softema voraus, dass die Vorverarbeitungs- und Ansteuerungs-Ebene mit vorgefertigten Funktionsbausteinen realisiert werden (Bild 3).
Um die Software auf den verschiedenen Ebenen effizient testen zu können, hilft Softema ebenfalls den Prüfern. Hierzu werden die Spezifikations-Arbeitsblätter wiederverwendet und ausschließlich um Prüfspalten erweitert. Zur Vervollständigung der Tests – wie beispielsweise Code-Review und Validierung – sowie von deren Dokumentation stehen zusätzliche Arbeitsblätter zur Verfügung (Bild 4). Seit Frühjahr 2019 liegt der Software-Assistent als Beta-Version für einen eingeschränkten Kreis von rund 300 Nutzern vor. Um wertvolle Erkenntnisse für die Weiterentwicklung zu sammeln, wird Softema derzeit in einer lang angelegten Testphase den ersten praktischen Prüfungen unterzogen.
Bald automatische Code-Erzeugung
In Maschinen steigt der Anteil komplexer sicherheitsbezogener Software stetig. Deshalb müssen die Methoden zur Erstellung und Überprüfung entsprechender Programme in der Theorie weiterentwickelt und in der Praxis angewendet werden. Nur so werden die in der Maschinenrichtlinie dargelegten Anforderungen an die Zuverlässigkeit von Steuerungstechnik auch künftig erfüllbar sein. Die Einführung und fortlaufende Optimierung des Software-Assistenten Softema ist ein wichtiger Schritt in diese Richtung. Sicherheitsbezogene Software muss spezifiziert werden, um systematische Fehler zu vermeiden. Ohne eine ordnungsgemäße Spezifikation lassen sich Verifikation und Validierung nicht durchführen. Bei Spezifikation und Verifikation wird der Maschinenhersteller oder Programmierer perspektivisch durch Softema unterstützt.
Es ist davon auszugehen, dass ab Mitte 2020 eine für den gesamten Markt freigegebene Version des Software-Assistenten zur Verfügung steht. Parallel befindet sich ein Code-Generator in der Entwicklungsphase, der in Kombination mit Softema erhältlich sein soll. Auf der Grundlage eines Softema-Projekts erzeugt der Code-Generator dann sicherheitsbezogene Code-Abschnitte, die sich in verschiedene Steuerungssysteme einbinden lassen. Im Rahmen der Integration können Programmierer zwischen unterschiedlichen Dateiausgabeformaten wählen und die Code-Abschnitte so einfach in ihre Projekte übernehmen. Es wird spannend sein zu beobachten, wie der Markt den Software-Assistenten annimmt und wie seine Weiterentwicklung auf Basis des Feedbacks aus der Praxis vorangetrieben wird. Im Sinne der funktionalen Sicherheit wäre es wünschenswert, dass Softema eine ähnliche Erfolgsgeschichte wie Sistema schreibt.