Normkonforme Softwareentwicklung
Die Entwicklung technischer Software erfordert häufig die Einhaltung von Normen und Standards wie beispielsweise der EN 50128 für den Bahnbereich, der DO-178B für den Luftfahrtbereich oder das V-Modell des Bundes. Insbesondere bei Systemen mit Sicherheitsverantwortung müssen dabei die von den Normen und Standards vorgeschriebene Verfahrensweisen und Methoden eingehalten werden.
DO-178B, Software Considerations in Airborne Systems and Equipment Certification (in Europa ED-12B) ist ein Standard in der Softwareentwicklung. Der Standard wurde von der RTCA entwickelt und von der EUROCAE übernommen. Einhaltung des Standards ist Voraussetzung der FAA und der EASA für eine Zertifizierung von Software für den Einsatz in der Luftfahrt.
DO-178B legt zunächst fünf Sicherheitsstufen von A (am kritischsten) bis E (harmlos) fest und orientiert sich dabei am möglichen Schaden bei Fehlfunktion der Software, von „katastrophal" bis „keine Auswirkungen". Ein Software-Projekt muss in eine dieser Stufen eingeordnet werden. In Abhängigkeit davon entstehen unterschiedliche Dokumentations- und Reviewpflichten während des Entwicklungsvorgangs.
Die IEC 61508 ist eine internationale Norm zur Schaffung von elektrischen, elektronischen und programmierbar elektronischen (E/E/PE) Systemen, die eine Sicherheitsfunktion ausführen. Sie wird von der International Electrotechnical Commission (IEC) herausgegeben.
Die Norm besteht aus sieben Teilen und trägt den Titel „Funktionale Sicherheit sicherheitsbezogener elektrischer/elektronischer/programmierbar elektronischer Systeme“. Sie wurde 1998 veröffentlicht, wovon einige Teile im Jahr 2000 in einer überarbeiteten Fassung neu veröffentlicht wurden. Vom Europäischen Komitee für Normung (CEN) wurde die Norm im Jahr 2001 inhaltsgleich als EN 61508 übernommen. In Deutschland hat sie als deutsche Fassung unter den Namen DIN EN 61508 und VDE 0803 Gültigkeit, ihre Anwendung ist freiwillig.
Die Norm kann auf alle sicherheitsbezogenen Systeme, die elektrische, elektronische oder programmierbar elektronische Komponenten (E/E/PES) enthalten und deren Ausfall ein maßgebliches Risiko für Mensch oder Umwelt bedeutet, herangezogen werden. Sie ist allerdings in der EU nicht entsprechend dem New Approach harmonisiert. Daher kann sie nicht als Konformitätsvermutung zu den europäischen Richtlinien beitragen. Sie bezieht sich nicht auf bestimmte Anwendungen. Systeme, die auf Anforderung eine Sicherheitsfunktion ausführen, sind zum Beispiel das Antiblockiersystem bei einem Kraftfahrzeug, und Systeme, die auf ständige Ausführung der Sicherheitsfunktion angewiesen sind, zum Beispiel die Steuerungseinheit einer Trägerrakete. Gemäß der Norm bilden die Funktionen der sicherheitsbezogenen Systeme die funktionale Sicherheit des Gesamtsystems. Die IEC 61508 ist als „Sicherheits-Grundnorm“ ausgewiesen, das heißt sie kann als Basis für anwendungsspezifische Normen dienen.
Die EN 50128 ist eine Europäische Norm für sicherheitsrelevante Software der Eisenbahn. Die EN 50128 ist von CENELEC erstellt und 2001 in Kraft gesetzt worden. Der volle Name der in Deutschland gültigen Fassung lautet: DIN EN 50128; VDE 0831-128:2001-11: Bahnanwendungen - Telekommunikationstechnik, Signaltechnik und Datenverarbeitungssysteme - Software für Eisenbahnsteuerungs- und Überwachungssysteme; Deutsche Fassung EN 50128:2001. In Österreich ist diese Norm als OEVE/OENORM EN 50128 und in der Schweiz als SN EN 50128 veröffentlicht.
Die EN 50128 bezieht sich unmittelbar auf die Norm EN 50129 für sicherheitsrelevante Systeme der Eisenbahn-Signaltechnik. Die EN 50129 beinhaltet die Anforderungen an die sicherheitsgerichtete Hardware und den Zulassungsprozess. Die EN 50128 stellt dar, mit welchen Verfahren, Prinzipien und Maßnahmen man für Sicherheitsanforderungen geeignete Software erhält.
Die EN 50128 ist eine Prozessnorm. Sie definiert einen bestimmten Software-Entwicklungsprozess. Wird dieser Software-Entwicklungsprozess eingehalten, begründet dies das Vertrauen, dass die Software anforderungsgemäß arbeitet. Folgende Prinzipien sind unter anderem anzuwenden:
Die EN 50128 gilt für jegliche sicherheitsrelevante Software der Eisenbahn. In Deutschland hat das Eisenbahn-Bundesamt (EBA) mit seiner Verwaltungsvorschrift für die Abnahme von Eisenbahnfahrzeugen gemäß § 32 Abs. 1 EBO im Zuständigkeitsbereich des Eisenbahn-Bundesamt (VwV Abnahme § 32) die Anwendung der EN 50128 ausdrücklich für sicherheitsrelevante Software an Bord der Eisenbahn-Fahrzeuge verbindlich gemacht (siehe Anhang 1, Nr. 13 der VwV Abnahme § 32). Das EBA hat in Zusammenarbeit mit dem Verband der Bahnindustrie in Deutschland (VDB) und der Deutschen Bahn die Anforderungen der EN 50128 leicht modifiziert, sofern es um die Abnahme von Fahrzeug-Software geht:
RAMS ist die Abkürzung für das Begriffspaket "Zuverlässigkeit, Verfügbarkeit, Instandhaltbarkeit, Sicherheit" (im englischen: Reliability, Availability, Maintainability, Safety - daher die Abkürzung). Diese Definition findet sich in der CENELEC-Norm EN 50126, welche auch als DIN-Norm veröffentlicht ist. Die Norm EN 50126 wird ständig erweitert und modifiziert durch das Europäisches Komitee für elektrotechnische Normung, CENELEC (Comité Européen de Normalisation Electrotechnique). RAMSS beinhaltet darüber hinaus "Security", den Schutz des Systems gegen Angriffe von außen.
Die ISO 26262 („Road vehicles - Functional safety“) ist eine entstehende ISO-Norm für sicherheitsrelevante Systeme in Kraftfahrzeugen. Die ISO 26262 wird ein Prozess-Rahmenwerk und Vorgehensmodell zusammen mit geforderten Aktivitäten und Arbeitsprodukten sowie anzuwendenden Methoden definieren. Die Umsetzung der Norm soll die funktionale Sicherheit eines elektronischen Systems im Kraftfahrzeug gewährleisten. Damit ist die kommende Norm eine Adaption der IEC 61508 an die spezifischen Gegebenheiten im Automobilbereich.