-
Die Erfindung betrifft ein Verfahren zur Modellierung eines Komponentenfehlerbaums für mindestens eine Komponente eines Systems sowie ein Computerprogrammprodukt.
-
Die Entwicklung und Prüfung von Sicherheitsanalysemodellen eines Systems ist bereits in frühen Stadien der Entwicklung des Systems, insbesondere im Falle von sicherheitskritischen Systemen, äußerst wichtig. Solche Sicherheitsanalysemodelle sollen Schwachstellen oder Unzulänglichkeiten der Systemarchitektur, soweit sie die Sicherheit des Systems betreffen, identifizieren und abbilden.
-
Relevant sind Sicherheitsanalysemodelle insbesondere im gegenwärtig stark wachsenden Bereich der sogenannten ”Cyber-Physical-Systems (CPS)”, welche gleich einem modularen Baukastensystem ursprünglich isolierte eingebettete Systeme in ein anpassbares heterogenes System einfügen. Denn gerade eingebettete Systeme sind häufig sicherheitskritisch. Solche eingebetteten Systeme finden sich insbesondere in der Industrie-Automation, in medizinischen Geräten oder im Mobility-Bereich, etwa bei Transportsystemen.
-
Es ist bekannt, für modulare Systeme, welche mehrere Systemkomponenten aufweisen, Komponentenfehlerbäume für die einzelnen Komponenten des Systems zu modellieren und in der Entwicklung solcher modularen Systeme zu berücksichtigen.
-
Problematisch hieran ist jedoch, dass in Einzelfällen während der Systementwicklung für einzelne Komponenten eines solchen Systems keine Fehlerbäume bekannt sind. In solchen Fällen muss entweder die Entwicklung von Komponentenfehlerbäumen abgewartet werden – was die Systementwicklung bremst – oder aber im Extremfall kommt die Sicherheitsanalyse zu spät, sodass ein Systementwicklungsprojekt in einem späten Stadium an Sicherheitserfordernissen scheitert.
-
Es ist daher Aufgabe der Erfindung, ein verbessertes Verfahren zur Modellierung eines Komponentenfehlerbaums für mindestens eine Komponente eines Systems anzugeben, welches insbesondere leicht automatisierbar ist und vorzugsweise keine detaillierte Sicherheitsanalyse der Komponente des Systems erfordert. Es ist ferner Aufgabe der Erfindung, ein Computerprogrammprodukt anzugeben, welches eine Durchführung eines solchen Verfahrens ermöglicht.
-
Diese Aufgabe der Erfindung wird mit einem Verfahren zur Modellierung eines Komponentenfehlerbaums für mindestens eine Komponente eines Systems mit den in Anspruch 1 angegebenen Merkmalen sowie mit einem Computerprogrammprodukt mit den in Anspruch 10 angegebenen Merkmalen gelöst. Bevorzugte Weiterbildungen der Erfindung ergeben sich aus den zugehörigen Unteransprüchen, der nachfolgenden Beschreibung und der Zeichnung.
-
Das erfindungsgemäße Verfahren dient zur Modellierung eines Komponentenfehlerbaums für mindestens eine Komponente eines Systems. Bei dem erfindungsgemäßen Verfahren wird der Komponentenfehlerbaum signalflussaufwärts mit einem bekannten eingangsseitigen Komponentenfehlerbaum sowie signalflussabwärts mit einem bekannten ausgangsseitigen Komponentenfehlerbaum verknüpft, wobei ein oder mehrere Ausgangsfehlermodi des eingangsseitigen Komponentenfehlerbaums als Eingangsfehlermodi der Komponente herangezogen werden sowie ein oder mehrere Eingangsfehlermodi des ausgangsseitigen Komponentenfehlerbaums als Ausgangsfehlermodi der Komponente herangezogen werden.
-
Unter einem eingangsseitigen Komponentenfehlerbaum bezüglich der jeweils betrachteten Komponente ist im Rahmen dieser Anmeldung ein Komponentenfehlerbaum zu verstehen, welcher einer solchen Komponente zugeordnet ist, welche der betrachteten Komponente ein oder mehrere Signale übermittelt, also signalflussaufwärts mit der betrachteten Komponente verknüpft ist. Folglich propagieren auch Fehler vom eingangsseitigen Komponentenfehlerbaum zum erfindungsgemäß modellierten Komponentenfehlerbaum.
-
Unter einem ausgangsseitigen Komponentenfehlerbaum bezüglich der jeweils betrachteten Komponente ist ein Komponentenfehlerbaum zu verstehen, welcher einer solchen Komponente zugeordnet ist, welche von der betrachteten Komponente ein oder mehrere Signale empfängt, also signalflussabwärts mit der betrachteten Komponente verknüpft ist. Folglich propagieren auch Fehler vom erfindungsgemäß modellierten Komponentenfehlerbaum zum ausgangsseitigen Komponentenfehlerbaum.
-
Es versteht sich, dass signalflussaufwärts und signalflussabwärts jeweils eine Komponente mit solchen Komponentenfehlerbäumen zur Verfügung stehen muss, damit das erfindungsgemäße Verfahren durchgeführt werden kann.
-
Ein Komponentenfehlerbaum stellt dabei ein Bool'sches Modell dar, welches die Fehlerpropagation innerhalb einer Systemkomponente beschreibt. Der hier benutzte Begriff ”Komponentenfehlerbäume” ist in seiner Bedeutung identisch mit dem Terminus ”component fault tree” wie er insbesondere in Kaiser,
B., Liggesmeyer, P., Mäckel, O.: "A new component concept for fault trees" (Proceedings of the 8th Australian Workshop on Safety Critical Sytems and Software, Vol. 33, pp. 37–46, SCS, 03 (2003)) etabliert ist (insoweit wird der Inhalt dieses vorgenannten Dokuments ausdrücklich in den Offenbarungsgehalt des vorliegenden Anmeldungstexts mit einbezogen). Die Aussagekraft solcher Komponentenfehlerbäume ist mit derjenigen Aussagekraft klassischer Fehlerbäume äquivalent.
-
Mittels des erfindungsgemäßen Verfahrens lassen sich Ansätze für Komponentenfehlerbäume auch dann entwickeln, wenn die einzelnen Komponenten im Systemmodell noch gar nicht näher hinsichtlich der Fehlerpropagation spezifiziert sind. Da sich das erfindungsgemäße Verfahren zudem leicht automatisieren lässt, können Komponenten des Systems sehr flexibel zu diesem System hinzugefügt werden oder von diesem entfernt werden, wobei infolge der Automatisierung die Sicherheitsanalyse des Systems leicht automatisch auf das geänderte System hin aktualisiert werden kann.
-
Insbesondere können Systemingenieure bei der Planung des Systems eine unmittelbare Rückmeldung über die Systemsicherheit, zumindest in der Art eines ersten Anhaltspunktes für ein detaillierteres Sicherheitsmodell, erhalten.
-
Ferner kann das erfindungsgemäße Verfahren als Startpunkt für eine entsprechende Spezifizierung der Komponente betrachtet werden. So können Sicherheitsingenieure den mit dem erfindungsgemäßen Verfahren modellierten Fehlerbaum als Grundlage heranziehen, um ein präziseres Modell für die Fehlerpropagation der Komponente zu entwickeln.
-
Die mit dem erfindungsgemäßen Verfahren mögliche enge Kopplung zwischen der Systemarchitektur des mehrkomponentigen Systems sowie dem dazugehörigen Sicherheitsmodell erlaubt eine zeitnahe Reaktion auf Umstände, welche etwa aus dem Sicherheitsmodell resultieren: Etwaige Systemänderungen können mit dem erfindungsgemäßen Verfahren zeitnah und flexibel begleitet werden. Insbesondere sind erfindungsgemäß ”Plug & Play”-artige Lösungen bei sicherheitsrelevanten Systemen zur Laufzeit denkbar, wenn etwa neue Komponenten zu einem bereits bestehenden System hinzugefügt werden sollen, obwohl keine Modelle zur Fehlerpropagation hinsichtlich der neuen Komponente verfügbar sind. Gerade in ”Cyber-Physical-Systems”, bei welchen sich verschiedene eingebettete Systeme plötzlich zur Laufzeit miteinander austauschen müssen, lassen sich entsprechende Sicherheitsanforderungen mittels des erfindungsgemäßen Verfahrens einhalten.
-
Bevorzugt ist bei dem erfindungsgemäßen Verfahren der Komponentenfehlerbaum der Komponente mittels einer oder mehreren Eingangsschnittstelle/n der Komponente mit dem eingangsseitigen Komponentenfehlerbaum und/oder mittels einer oder mehreren Ausgangsschnittstelle/n der Komponente mit dem ausgangsseitigen Komponentenfehlerbaum verknüpft.
-
In einer vorteilhaften Weiterbildung werden bei dem erfindungsgemäßen Verfahren je Eingangsschnittstelle der Komponente die mit dieser Eingangsschnittstelle verknüpften Ausgangsfehlermodi des eingangsseitigen Komponentenfehlerbaums als Eingangsfehlermodi der Komponente mit dieser Eingangsschnittstelle verknüpft.
-
Bevorzugt werden bei dem erfindungsgemäßen Verfahren je Ausgangsschnittstelle die mit dieser Ausgangsschnittstelle verknüpften Eingangsfehlermodi des ausgangsseitigen Komponentenfehlerbaums als Ausgangsfehlermodi der Komponente mit dieser Ausgangsschnittstelle verknüpft.
-
In einer bevorzugten Weiterbildung des erfindungsgemäßen Verfahrens wird zu je einem Ausgangsfehlermodus der Komponente geprüft, ob zu diesem ein Eingangsfehlermodus der Komponente korrespondiert. Zweckmäßigerweise wird eine solche Prüfung für sämtliche Ausgangsfehlermodi der Komponente vorgenommen.
-
Zweckmäßig wird bei dem erfindungsgemäßen Verfahren dann, wenn zu einem Ausgangsfehlermodus ein Eingangsfehlermodus korrespondiert, der Ausgangsfehlermodus mit diesem korrespondierenden Eingangsfehlermodus verknüpft. Diese Art der Fehlerpropagation zwischen Eingangsfehlermodus und Ausgangsfehlermodus deckt typische in der Realität vorkommende Fälle bereits mithilfe eines einfachen und schematischen, leicht automatisierbaren Modells regelmäßig gut ab.
-
Bei dem erfindungsgemäßen Verfahren wird geeigneter Weise dann, wenn zu einem Ausgangsfehlermodus keiner der Eingangsfehlermodi korrespondiert, der Ausgangsfehlermodus mit sämtlichen Eingangsfehlermodi verknüpft. Auf diese Weise ist derjenige Fall, in welchem kein Anhaltspunkt für eine mögliche Fehlerpropagation vorliegt, möglichst konservativ abgedeckt. Auch diese Weiterbildung des erfindungsgemäßen Verfahrens bleibt leicht automatisierbar.
-
Das erfindungsgemäße Verfahren wie zuvor beschrieben wird in einer bevorzugten Weiterbildung für zwei oder mehr Komponenten des Systems durchgeführt.
-
Idealerweise umfassen bei dem erfindungsgemäßen Verfahren die Eingangsfehlermodi und/oder die Ausgangsfehlermodi ein oder mehrere Fehlermodi der folgenden, insbesondere abschließenden, Aufzählung: Omission-Fehler (Signale werden erwartet, aber nicht geliefert), Commission-Fehler (Signale werden geliefert, aber nicht erwartet), Too-low-Fehler (Signal ist in seiner Stärke zu niedrig), Too-high-Fehler (Signal ist in seiner Stärke zu hoch), False-Positive-Fehler (Es wird fälschlicherweise ein Signal registriert, obwohl keines anliegt), False-negative-Fehler (ein tatsächlich anliegendes Signal wird fälschlich nicht registriert), Service-Timing-Fehler, insbesondere Too-early-Fehler (Signal wird zu früh geliefert) oder Too-late-Fehler (Signal wird zu spät geliefert).
-
Das erfindungsgemäße Computerprogrammprodukt ist ausgebildet, als Eingangsdaten einen Fehlerbaum eines mehrkomponentigen Systems mit zumindest einer Komponente mit einem unvollständig modellierten Komponentenfehlerbaum entgegenzunehmen und ein Verfahren nach einem der vorstehenden Ansprüche zur Modellierung zumindest dieses Komponentenfehlerbaums durchzuführen und vorzugsweise bereitzustellen.
-
Bevorzugt ist das erfindungsgemäße Computerprogrammprodukt ausgebildet, ein Modell für zumindest diesen Komponentenfehlerbaum, vorzugsweise des gesamten Fehlerbaums des mehrkomponentigen Systems, auszugeben.
-
Nachfolgend wird die Erfindung anhand eines in der Zeichnung dargestellten Ausführungsbeispiels näher erläutert.
-
Es zeigen:
-
1 ein mehrere Komponenten umfassendes System mit einer Komponente mit einem unbekannten Fehlerbaum schematisch in einer Prinzipskizze sowie
-
2 das mehrkomponentige System gem. 1 mit einem mittels des erfindungsgemäßen Verfahrens für die Komponente mit dem unbekannten Fehlerbaum modellierten Fehlerbaum schematisch in einer Prinzipskizze.
-
Ein Modell für den Komponentenfehlerbaum wird mittels des erfindungsgemäßen Verfahrens zur Modellierung eines Komponentenfehlerbaums für mindestens eine Komponente eines Systems wie nachfolgend beschrieben entwickelt:
Das in 1 und 2 dargestellte System S besteht aus seiner Mehrzahl von Komponenten C = {c1, ..., cn}. Jede Komponente c ∊ C weist einen Satz von Eingangsschnittstellen IN(c) = {in1, ..., inp} sowie einen Satz von Ausgangsschnittstellen OUT(c) = {out1, ..., outq} auf.
-
Der Informationsfluss zwischen einer Ausgangsschnittstelle einer ersten Komponente c1 ∊ C und einer Eingangsschnittstelle einer zweiten Komponente c2 ∊ C (erste und zweite Komponente sind nicht identisch, c1 ≠ c2) erfolgt mittels eines Satzes von Verknüpfungen CON = {(outx, iny)|outx ∊ OUT(c1), iny ∊ IN(c2)}.
-
Das Beispielsystem gem. 1 ist demgemäß definiert durch den Satz von Komponenten C = {c1, c2, c3), den Satz von Eingangsschnittstellen IN(c1) = {}, IN(c2) = {in1, in2), IN(c3) = {in3}, den Satz von Ausgangsschnittstellen OUT(c1) = {out1, out2}, OUT(c2) = {out3}, OUT(c3) = {} sowie den Verknüpfungen zwischen den Komponenten ci CON = {(out1, in1), (out2, in2), (out3, in3)}.
-
Wenn die Komponente des Systems c1 ∊ C einen Komponentenfehlerbaum cft aufweist, dann ist CFT(ci) = cft mit cft ≠ 0. Für eine Komponente cj ∊ C, die keinen Komponentenfehlerbaum aufweist, ist CFT(cj) = Ø. Im dargestellten Ausführungsbeispiel weisen lediglich die Komponenten c1 und c3 einen Komponentenfehlerbaum auf, während hingegen die Komponente c2 keinen Komponentenfehlerbaum aufweist: CFT(c1) = cft1 ≠ Ø CFT(c2) = Ø CFT(c3) = cft3 ≠ Ø.
-
Mittels des erfindungsgemäßen Verfahrens wird der Komponentenfehlerbaum dieser Komponente c2 wie nachfolgend beschrieben angesetzt. Jeder Komponentenfehlerbaum CFT(ci) ≠ Ø einer Komponente ci ∊ C kann zum einen Eingangsfehlermodi IFM(ink) = {ifm1, ..., ifms} aufweisen, welche zu einer Eingangsschnittstelle ink ∊ IN(ci) gehören, sowie Ausgangsfehlermodi OFM(out1) = {ofm1, ..., ofmt}, welche zu einer Ausgangsschnittstelle out1 ∊ OUT(ci) gehören.
-
Im in 1 gezeigten Beispiel sind die zu den Ein- und Ausgangsschnittstellen gehörenden Eingangs- und Ausgangsfehlermodi: IFM(in1) = IFM(in2) = {} IFM(in3) = {K, L} OFM(out1) = {A, B} OFM(out2) = {C, D} OFM(out3) = {}
-
Um die Fehlermodi einer Komponente innerhalb des Komponenten- und Systemfehlerbaums einheitlich zu behandeln, wird jedem Eingangs- und Ausgangsfehlermodus ein Fehlertyp fty zugeordnet. Die unterschiedlichen Fehlertypen sowie die zwischen diesen bestehenden Beziehungen sind in einem Fehlertypensystem T (s. dazu insbesondere McDermid, J., Pumfrey, D.: A development of hazard analysis to aid software design, Proceedings oft the Ninth Annual Conference on Computer Assurance Safety, Reliability, Fault Tolerance, Concurrency and Real Time, Security (COMPASS, 94), pp. 17–25) im Einzelnen aufgelistet: FTY(fm) = fty, wobei fm ∊ {ifm1, ..., ifma, ofm1, ..., ofmb}; fty ∊ T. (17) Im gezeigten Beispiel sind die auftretenden Fehlertypen der Ein- und Ausgangsfehlermodi die explizit benannten Fehlertypen ft1, ft2, ft3, ft4, ft5: FTY(A) = FTY(K) = ft1 = omission FTY(B) = ft2 = commission FTY(C) = ft3 = too low FTY(D) = ft4 = too high FTY(L) = ft5 = false positive.
-
Wenn eine Komponente c
i ∊ C keinen Komponentenfehlerbaum aufweist (CFT(c
i) = Ø), jedoch jeweils alle diejenigen Komponenten {c'
1, ..., c'
u} = C' ⊆ C, an welchen die betrachtete Komponente des Sytems mit ihrer Eingangsseite, d. h. signalstromaufwärts, angebunden ist, sowie alle diejenigen Komponenten {c''
1, ..., c''
v} ∊ C'' ⊆ C, welche die betrachtete Komponente des Systems c
i ausgangsseitig, d. h. signalstromabwärts, speist, einen Komponentenfehlerbaum CFT(c
j) = cft
j ≠ Ø, c'
i, ..., c'
u ∪ c''
1, ..., c''
v) aufweisen, dann ist es möglich, einen Komponentenfehlerbaumansatz cft
stub für die betrachtete Komponente c
i zu entwickeln mit
welche auf der bislang verfügbaren Information beruht. Die Modellierung für einen solchen Ansatz cft
stub geschieht dabei wie folgt:
Zunächst wird für jeden Eingangsfehlermodus, der zu einer Eingangsschnittstelle die mit einer Ausgangsschnittstelle out
x ∊ OUT(c
i) der betrachteten Komponente C
i ∊ C verknüpft ist, ein Ausgangsfehlermodus für diese Ausgangsschnittstelle angesetzt in dem Ansatz für den Komponentenfehlerbaum
mit demselben Fehlertyp, wie er dem jeweiligen Eingangsfehlermodus entspricht:
∀iny ∊ IN(c''):∀ifmk ∊ IFM(iny):
→ ofm ∊ OFM(outx), FTY(ofm) = FTY(ifmk)
mit (outx, iny) ∊ OUT(ci), c'' ∊ C''.
-
Ferner wird für jeden Ausgangsfehlermodus, welcher zu einer Ausgangsschnittstelle gehört, die mit einer Eingangsschnittstelle in
y ∊ IN(c
i) of c
i ∊ C verknüpft ist, ein Eingangsfehlermodus für diese Eingangsschnittstelle angesetzt in den Ansatz für den Komponentenfehlerbaum
mit demselben Fehlertyp, wie er dem jeweiligen Ausgangsfehlermodus entspricht:
∀outy ∊ OUT(c'):∀ofml ∊ OFM(outx):
→ ifm ∊ IFM(iny), FTY(ifm) = FTY(ofml)
mit (outx, iny) ∊ CON, iny ∊ IN(ci), c' ∊ C'.
-
Nachfolgend werden die angesetzten Eingangs- und Ausgangsfehlermodi innerhalb der betrachteten Komponente ci ∊ C basierend auf dem zugehörenden Fehlertyp miteinander verbunden:
Wenn der Ausgangsfehlermodus denselben Fehlertyp aufweist wie einer oder mehrere Eingangsfehlermodi, so wird eine Verknüpfung zwischen diesem Ausgangsfehlermodus und diesem Eingangsfehlermodus angesetzt: ∀outi, ∊ OUT(c), inj ∊ IN(c):∀ofmk ∊ OFM(outi), ifml ∊ IFM(inj):
→ {(ifml, ofmk)|FTY(ofmk) = FTY(ifml)}.
-
In dem Falle, dass kein Eingangsfehlermodus in seine Fehlertyp einem Ausgangsfehlermodus gleicht (∀ink ∊ IN(c):∀ifmj ∊ OFM(ink):FTY(ofmi) ≠ FTY(ifmj)), wird vorsichtshalber als ”Worst-Case-Scenario” angesetzt, dass die Fehlerpropagation so umfassend als denkbar erfolgt: In diesem Ansatz werden, falls irgendein Eingangsfehlermodus der betrachteten Komponente ci ∊ C aktiv ist, sämtliche Ausgangsfehlermodi als aktiv angenommen: ∀outi ∊ OUT(c), inj ∊ IN(c):∀ofmk ∊ OFM(outi):
→ {(ifml, ofmk)|ifml ∊ IFM(inj)}.
-
Im in
2 gezeigten Ausführungsbeispiel kann ein Ansatz für den Komponentenfehlerbaum mit den folgenden Ein- und Ausgangsfehlermodi für die Komponente c
2 angesetzt werden
IFM(in1) = {E, F} IFM(in2) = {G, H} OFM(out3) = {I, J} FTY(E) = FTY(I) = omission FTY(F) = commission FTY(G) = too low FTY(H) = too high FTY(J) = falle positive.
-
Grundsätzlich können in weiteren, nicht eigens dargestellten Ausführungsbeispielen auch alternativ oder zusätzlich die Ein- und Ausgangsfehlermodi des Fehlertyps ”Falle-Negative-Fehler”, ”Too-early-Fehler” oder ”Too-late-Fehler” vorliegen.
-
Zudem kann der nachfolgend angegebene Satz von Verknüpfungen angesetzt werden: {(E, I)) {(E, J), (F, J), (G, J), (H, J)}
-
Der hieraus sich ergebende Ansatz für den Komponentenfehlerbaum
für die Komponente c
2 (stellenweise auch kurz als Komponentenfehlerbaum
cft stub / 2 bezeichnet) ist in
2 dargestellt.
-
Abhängig vom jeweiligen Anwendungsfall und Systemkontext können allerdings auch Situationen auftreten, in welchen der Fehlertyp sich in einer Komponente ändert, beispielsweise ist es denkbar, dass ein verzögertes Signal ein fehlerhaftes Ausgangssignal bedingt. Solche Fälle können beispielsweise manuell berücksichtigt werden, etwa durch eine entsprechende Ergänzung des erfindungsgemäß erhaltenen Ansatzes für den Komponentenfehlerbaum.
-
Das vorstehend erläuterte Verfahren wird in einem Ausführungsbeispiel des erfindungsgemäßen Computerprogrammprodukts von diesem Computerprogrammprodukt durchgeführt, welches ausgebildet ist, als Eingangsdaten einen Fehlerbaum eines mehrkomponentigen Systems mit zumindest einer Komponente mit einem unvollständig modellierten Komponentenfehlerbaum in an sich bekannter Weise mittels einer Benutzerschnittstelle entgegenzunehmen und ein Verfahren nach einem der vorstehenden Ansprüche zur Modellierung zumindest dieses Komponentenfehlerbaums durchzuführen und vorzugsweise bereitzustellen.
-
Das Computerprogrammprodukt ist in diesem Ausführungsbeispiel ausgebildet, ein Modell für zumindest diesen Komponentenfehlerbaum, vorliegend darüber hinaus einen vervollständigten Fehlerbaum des gesamten mehrkomponentigen Systems, über eine Benutzerschnittstelle wie an sich bekannt auszugeben.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Nicht-Patentliteratur
-
- B., Liggesmeyer, P., Mäckel, O.: ”A new component concept for fault trees” (Proceedings of the 8th Australian Workshop on Safety Critical Sytems and Software, Vol. 33, pp. 37–46, SCS, 03 (2003)) [0012]
- McDermid, J., Pumfrey, D.: A development of hazard analysis to aid software design, Proceedings oft the Ninth Annual Conference on Computer Assurance Safety, Reliability, Fault Tolerance, Concurrency and Real Time, Security (COMPASS, 94), pp. 17–25 [0037]