Benutzerdruck veranlaßt Hersteller zu Normprüfungen:

Zertifikat soll Mißgriffe verhindern

23.11.1984

Normen nützen nichts, wenn sie nicht eingehalten werden. Selbst wenn eine Entwicklungsgruppe die anwendbaren Normen befolgen will, können sich Abweichungen einschleichen, besonders bei sehr komplexen Normen wie denen für Programmiersprachen. Nicht selten sind kleine Abweichungen von Normen beabsichtigt, insbesondere zur technischen Verbesserung der Produkte. Erst das Bevorstehen einer Konformitätsprüfung durch eine unabhängige Prüfstelle hat in solchen Fällen den Hersteller veranlaßt, zumindest als Option auch eine normgerechte Version vorzusehen.

Mancher Hersteller erklärt für ein Produkt, daß es den Bedingungen bestimmter Normen entspricht. Die rechtliche Wirkung einer solchen Erklärung ist in der Bundesrepublik leider geringer, als der arglose Benutzer erwarten mag. Auch das spricht - in Benutzersicht - für Prüfungen durch unabhängige Prüfstellen.

Die Benutzer haben zwei weitere Vorteile von den Konformitätsprüfungen: Sie können Programme und Daten leichter austauschen, weil die Normen häufiger eingehalten werden, und sie finden in den Prüfberichten nützliche Informationen über die Produkte, insbesondere

- bis zu welcher Normstufe geprüft wurde,

- welche Abweichungen dabei gefunden werden und

- in welcher Weise mögliche Optionen in der Norm gewählt wurden.

Trotz vorangegangener Eigenprüfung des Herstellers mit den offiziellen Prüfmitteln haben unsere bisherigen Konformitätsprüfungen noch jedesmal Mißverständnisse oder Abweichungen von der Norm aufgedeckt. Hier macht sich die spezielle Erfahrung der Prüfer bemerkbar: Sie kennen die Norm, und sie kennen Produkte mehrerer Hersteller. Die Prüfung durch eine Prüfstelle ist also nicht nur formal, sondern auch sachlich nützlich.

Implementation des GKS wird vorbereitet

Eine erfolgreiche Normkonformitätsprüfung kann dem Hersteller ebenso wie dem Benutzer helfen, Ansprüche abzuwenden, die auf angebliche Fehler der Software gestützt werden: Er kann damit belegen, daß er den Stand der Technik beachtet hat, so daß die Beweislast für ein mögliches Versäumnis dem anderen zufällt (1).

Aus allen diesen Gründen sollten die Benutzer von den Herstellern den Nachweis der förmlichen Konformitätsprüfung verlangen.

Prüfdienste gibt es vor allem für Normen von Programmiersprachen: erst für Cobol, dann für Fortran, jetzt auch für Ada, Minimal Basic und Pascal.

Ein Prüfdienst für "Kennsätze und Dateiordnung auf Magnetbändern für den Datenaustausch" ist startbereit. Ein Check für Implementationen des Graphischen Kernsystems (GKS) wird vorbereitet.

Eine Studie für die Kommission der Europäischen Gemeinschaft (KEG) hat kürzlich die Möglichkeit für weitere Prüfdienste untersucht. Der zugehörige Bericht enthält auch die Anschriften der Prüf- und Zertifizierstellen.

Alle diese Prüfdienste prüfen Implementationen von Software und Hardware. Die Prüfung von Hardware allein (zum Beispiel physikalische Eigenschaften magnetischer Datenträger, in den USA Schaltkreise zur Datenkryptierung, in Frankreich Kreditkarten mit Magnetstreifen oder mit Mikroprozessoren) wird hier nicht betrachtet.

Es bleibt der Initiative einzelner Prüfstellen überlassen, Prüfdienste für bestimmte Normen einzurichten. Der Kasten nennt existierende und geplante Prüfdienste für Normen der ISO und ihrer Mitgliedsorganisationen.

Über die Tabelle hinaus sind folgende Normen erwähnenswert (2):

- Für "Kennsätze und Dateianordnung auf Disketten für den Datenaustausch" gibt es Ansätze zur Entwicklung von Prüfmitteln und Pläne zur Einrichtung von Prüfdiensten.

- Für Kommunikationsprotokolle gibt es leistungsfähige Prüfmittel, diese sind aber als Implementationshilfe gedacht und nicht für förmliche Prüfdienste. Für Kommunikationsprotokolle niederer Schichten liegt das daran, daß das Fernmeldetechnische Zentralamt die Zulassungsprüfung kaum an unabhängige Prüfstellen delegieren wird.

- Für die Programmiersprache APL und Pearl wurden Wünsche nach Prüfdiensten an die GMD herangetragen, doch rechtfertigt die erwartete geringe Nachfrage nicht die kostspielige Entwicklung zureichender Prüfmittel.

Alle hier betrachteten Normen sind keine Produktnormen, sie legen Produkte nicht fest. Die Normen für Programmiersprachen zum Beispiel sind keine Normen für Kompeiler (oder DIN 44 300 "Kompilierer", aber das Wort ist wohl nicht durchsetzbar, und wir schreiben ja auch "Streik" statt "strike"). So eine

Sprachnorm beschreibt also nur eine Eigenschaft eines Kompeilers (wenn auch eine sehr wichtige).

Eine weitere Eigenschaft, die Codierung, wird durch die Normen ISO 646 und DIN 66 003 beschrieben (aber viele Rechenanlagen folgen einem alten Unternehmensstandard). Über Fehlermeldungen sagt die Pascal-Norm viel, die Ada-Norm weniger, die anderen Sprachnormen wenig oder nichts. Die Sprachnormen sagen nichts aus über das Wiederaufsetzen nach Fehlern, nichts über die Kapazitäten, nichts über Geschwindigkeiten der Übersetzung und Ausführung und nichts über Speicherplatzbedarf des Kompeilers und der erzeugten Maschinenprogramme.

Theoretisch könnte also eine Implementation normgerecht und trotzdem im Extremfall unbrauchbar sein. Normkonformitätsprüfung (im DIN-Sprachgebrauch übrigens genauer: Normenkonformitätsprüfung) ist ein wichtiges Mittel zur Qualitätssicherung, aber niemals das einzige.

Der Benutzer muß nach geprüften Produkten fragen

Fortran-Programme werden seit den sechziger Jahren in großer Zahl zwischen Rechnern verschiedener Hersteller übertragen. Dabei gibt es zwar Probleme mit der Genauigkeit der Zahlendarstellung und mit der Rundung, aber die Norm (die darüber nichts sagt) wird eingehalten.

Die US-Regierung hat die ersten Prüfdienste eingerichtet, um für Cobol, später auch für Fortran und Ada auf Einhaltung der Norm drängen zu können: Alle Regierungsstellen beschaffen nur geprüfte Implementationen, das hat die Einhaltung aller Vorschriften der Normen gefördert.

Ob die Hersteller die Normen befolgen oder nicht, hängt also von den Benutzern ab. Erst wenn die Benutzer nach geprüften, zertifizierten Produkten fragen, werden mehr Hersteller die Mühen und Kosten für offizielle Normkonformitätsprüfungen aufwenden.

Von den vielen Pascal-Kompeilern sind erst vier geprüft und zertifiziert (alle fehlerfrei). Es sind so wenige, weil kein Großeinkäufer das Zertifikat verlangt und weil die meisten Implementationen nicht normgerecht sind.

Ein Untersuchung für die KEG (3) hat gezeigt, daß die Norm für "Kennsätze und Dateianordnung für den Datenaustausch auf Magnetbändern" noch recht selten eingehalten wird. Bei Disketten sieht es noch schlimmer aus (4): "Of 40 machines with flexible diskettes, only twelve claimed compliance with the diskette formats. (. . . Of these) only one was found to comply when checked."

Es wird nur die Funktion einer Implementation geprüft, und zwar durch Testprogramme. Die innere Struktur der Implementation wird dabei nicht beachtet.

Der Auftraggeber (meist der Anbieter einer Implementation) erhält von der Prüfstelle die neueste Version der Prüfwerkzeuge mit einem Benutzerhandbuch (entweder als erste Leistung aus dem Prüfvertrag oder auf Einzelbestellung). Er kann damit sein Produkt allein vorprüfen, und wenn sich Abweichungen von der Norm zeigen, verbessern.

Der Auftraggeber bestimmt die Installation, auf der geprüft wird. Zu einem verabredeten Zeitpunkt reisen dann ein oder zwei Vertreter der Prüfstelle dorthin und lassen sich die Prüfung vollständig vorführen. Die Prüfstelle stellt (weitgehend automatisch) einen Entwurf zum Prüfbericht her und sendet ihn dem Auftraggeber; erst der abgestimmte Prüfbericht wird veröffentlicht (bei Pascal jedoch nur vom Auftraggeber an jeden Interessierten abgegeben.)

Neue Probleme bei förmlichen Prüfungen

Ziel der Prüfung ist bestmögliche Normkonformität der Produkte. Deshalb legen alle Prüfstellen Wert auf gute Kooperation, und sie helfen den Auftraggebern beim Umgang mit den Prüfmitteln, insbesondere bei der Anpassung an die jeweilige Implementation. Übrigens wird diese Anpassung automatisch protokolliert. Für Pascal prüft ein spezielles Programm, ob die Prüfwerkzeuge beim Überspielen auf die zu prüfende Installation wirklich unverändert geblieben sind.

Alle hier betrachteten Dienste führen keine Überraschungsprüfungen durch, das heißt, der Auftraggeber erhält rechtzeitig vor der Prüfung alle Prüfmittel, und die Prüfung führt nicht einmal unvorgesehene Parameter in die Programme ein. Nur für Pascal schreibt BSI vor, daß außer den Prüfprogrammen noch irgendein weiteres Programm läuft, um zu sichern, daß es sich überhaupt um einen Kompeiler handelt und nicht um ein spezialisiertes Antwortsystem.

Obwohl es keine Überraschungsprüfungen gibt, tauchen bei der förmlichen Prüfung häufig neue Probleme auf, die bei der Eigenprüfung des Auftraggebers mit denselben Prüfmitteln noch nicht bemerkt oder nicht richtig interpretiert wurden.

Eine Prüfung durch Testen kann zwar prinzipiell nie die fehlerfreie Erfüllung der Norm beweisen. Doch werden die Prüfwerkzeuge mit den wachsenden Erfahrungen ständig verbessert. Deshalb können die Prüfungen einen starken Grund für Vertrauen in die Konformität der Produkte legen.

Effizienz-Daten werden bei der Prüfung nicht registriert, weil die Normen darüber nichts sagen und weil die Prüfprogramme völlig untypisch für Programmentwicklung und Produktionsläufe sind.

Eine vollständige Normkonformitätsprüfung mit vorangehender Auslieferung der Prüfmittel kostet zum Beispiel für Cobol bei einer Erstprüfung 12 000 Mark, bei späteren Prüfungen 8000 Mark, jeweils plus Mehrwertsteuer, und Reisekosten für normalerweise drei bis fünf Arbeitstage, abhängig von der Vorbereitung durch den Auftraggeber und auch von der Rechengeschwindigkeit und Peripherie-Ausstattung der Rechenanlage.

Die Lieferung der Prüfmittel allein kostet für Cobol 1600 Mark plus Mehrwertsteuer und berechtigt zur beliebigen Nutzung für eigene Zwecke.

Für die anderen genannten Prüfobjekte liegen die Preise in derselben Größenordnung.

Alle in der Tabelle genannten Prüfstellen sind gemeinnützige oder staatliche Organisationen. Bisher deckt keiner der Prüfdienste seine Kosten.

Für manche Prüfdienste bestätigt die Prüfstelle selbst dem Auftraggeber die Prüfung, für andere stellt eine dritte Stelle (die Zertifizierstelle) Bescheinigungen aus. Diese Zertifizierung durch Dritte setzt die Anerkennung der Prüfstelle durch die Zertifizierstelle voraus.

Für Konformitätsprüfungen gegen DIN-Normen zertifiziert die Deutsche Gesellschaft für Warenkennzeichnung (DGWK), eine 1OOprozentige Tochter des DIN. Die DGWK hat die GMD als Prüfstelle für DIN 66 028 (Cobol) und DIN 66 027 (Fortran) anerkannt. Die GMD hat die Anerkennung als Prüfstelle für DIN 66 256 (Pascal) und für DIN 66 029 (Kennsätze ... Magnetbändern) bei der DGWK beantragt. (Die DGWK gibt ein Verzeichnis der von ihr anerkannten Prüfstellen heraus).

Die in der Tabelle genannten Prüfstellen im Ausland stellen alle selbst die Zertifikate aus.

Das Europäische Komitee für Normung (CEN) und die ISO haben eigene Zertifizierungsabteilungen, nämlich CENCER bei CEN und CERTICO bei ISO. Beide haben eigene Zertifizierungssysteme entwickelt. Doch wird noch kein Produkt zur Informationsverarbeitung dort zertifiziert. Die KEG bemüht sich darum, existierende und geplante Prüfdienste in diese Systeme einbringen zu lassen.

Jede Zertifizierstelle versendet gegen eine Schutzgebühr eine regelmäßig erscheinende Liste der zertifizierten Produkte. In dieser Liste steht bei jedem Produkt, welche Stufe der Norm (zum Beispiel Subset) geprüft wurde und ob die Prüfung Abweichungen ergab oder nicht.

Bei Cobol, Minimal Basic und Fortran wird auch bei Fehlern ein Erst-Zertifikat ausgestellt. Ein Folgezertifikat wird nur ausgestellt, wenn alle früher schon bekannten Fehler beseitigt sind. Neue Fehler dürfen auftreten. Die Liste der zertifizierten Kompeiler ist getrennt nach solchen mit und ohne Fehler.

Bei Pascal gibt es Zertifikate der Klasse A für vollständige Implementationen ohne Abweichungen und der Klassen B1, B2, B3 und C für andere Implementationen.

Für Ada gibt es Zertifikate nur dann, wenn keine Abweichungen gefunden wurden.

Zertifikate für Pascal gelten 24 Monate (Klasse C nur 12 Monate), die für die anderen Programmiersprachen zwölf Monate mit der Möglichkeit zur Verlängerung um zwölf Monate dann, wenn sich im ersten Jahr die Implementation und die Prüfmittel nicht geändert haben und die Prüfung ohne Abweichung von der Norm bestanden wurde.

Für die anderen Dienste (Magnetband-Software und GKS) hat die GMD der DGWK eine Gültigkeitsdauer von 18 Monaten vorgeschlagen.

Bei allen in der Tabelle genannten Normen hat eine der Prüfstellen die Rechte an den Prüfmitteln und vergibt Lizenzen an andere Prüfstellen, deren Prüfungen sie dann anerkennt. Lizenzgebende Prüfstellen für Ada, Basic, Cobol und Fortran ist FSTC, für Pascal BSI, für GKS und Magnetband-Kennsätze die GMD. (Für GKS hat die GMD die Prüfmittel durch die Technische Hochschule Darmstadt und die Universität Leicester entwickeln lassen, und zwar mit Förderung durch die KEG.)

Für Cobol und Fortran genügt eine Prüfung in Deutschland, Frankreich, Großbritannien oder in den USA für die Ausstellung von Zertifikaten in allen vier Ländern.

Für Pascal genügt eine Prüfung in Großbritannien, Frankreich oder in der Bundesrepublik Deutschland für ein Zertifikat der British Standards Institution und (wenn die DGWK einen ihr vorliegenden Vorschlag annimmt) der DGWK.

Für GKS und für Magnetband-Kennsätze haben Gespräche über Lizenzvergabe und gegenseitige Anerkennung der Prüfungen und Zertifikate erst begonnen.

Alle Prüfstellen arbeiten international unbürokratisch zusammen.

*Eberhard Wegner ist Bereichsleiter des Instituts für Technologie-Transfer der Gesellschaft für Mathematik und Datenverarbeitung (GMD) Bonn. Der Beitrag basiert auf einem Vortrag anläßlich der Compas'84, Berlin.