Home
        Formale Fehlermodellierung fuer verteilte reaktive
         Contents
1.                                                     C       Abbildung 5 5  Kombination von Modifikations  und Treiberkomponente    Beispiel 5 5 Ein klassisches Beispiel f  r den sinnvollen Einsatz von Treibern stellen verlust   behaftete Kommunikationskan  le dar  Ein idealisierter   bertragungskanal Channel sei absolut  fehler  und verlustfrei  Er sei parametrisierbar  reagiere also auf gewisse Steuersignale mit un   terschiedlichen Qualit  tsmerkmalen  wie Datenrate oder Verz  gerungszeiten      Eine realistische Implementierung des Kanals kann jedoch dem Verlust von Nachrichten ausge   setzt sein  Dies k  nnen wir modellieren durch Hinzuf  gen einer  virtuellen  Komponente Loss   die den sporadischen Verlust von Nachrichten spezifiziert  Es gen  gt  diese Komponente auf  einer Seite des Kanals zu erg  nzen  da es beobachtungs  quivalent ist  ob eine Nachricht sofort  verloren wird oder erst Channel passiert und dann verloren geht              _      os me o         Sender Loss Channel Receiver   gt   lt    9     lt  gt    ee                                     Abbildung 5 6  Fehlerhafter   bertragungskanal mit Treibern    Zum Ausgleich dieses Fehlers erg  nzen wir entsprechend Abbildung B 6 das System um die zwei  Treiberkomponenten Sender und Receiver  die mit Hilfe eines Protokolls sicherstellen  dass  trotz auftretender Nachrichtenverluste alle Nachrichten durch entsprechende Wiederholungen    bertragen werden  Es gibt eine Vielzahl von Protokollen  beschrieben beispiel
2.                m gt  Modul 1  L          Modul 2   Voter  gt   e      Modul 3             Abbildung 2 6  Triple Modular Redundancy    gleiche  Replikation von Komponenten ist als Ma  nahme gegen  ber Hardwarefehlern  sinnvoll  aber nicht gegen  ber Softwarefehlern  die immer Designfehler sind    Hardwarefehler sind in den meisten F  llen physikalische Fehler  die tempor  r und  eher sporadisch auftreten  Das Auftreten dieser Fehler in verschiedenen  aber bauglei   chen Komponenten kann statistisch unabh  ngig sein  wenn sie nur von physikalischen  Zuf  lligkeiten abh  ngen  und nicht etwa beispielsweise durch die gleichen Umgebungs   einfl  sse beeintr  chtigt werden  Die Auftreten von Fehlern in der Hardware wird durch  Alterungs  und Verschleisserscheinungen beeinflu  t  Spielen diese Effekte eine Rolle  ist  es sinnvoll  eine identische Ersatzkomponente bereitzustellen  die bei Ausfall der ei   gentlichen Komponente deren Aufgabe   bernimmt  Auch permanenten Fehlern in der  Hardware kann durch Replikation begegnet werden  wenn diese ihren Ursprung in De   fiziten im Herstellungsproze   haben  Einen Fehler  den eine Komponente hat  wird mit  einer meist hohen  oft bekannten Wahrscheinlichkeit eine andere Komponente nicht  haben  Bekannte Techniken zur Hardwarefehler Toleranz mit Replikation sind Triple  Modular Redundancy und Standby Spares  die wir im folgenden kurz skizzieren     Triple Modular Redundancy Gegeben sei eine Komponente mit einer beliebigen  Ein  Ausgabefunkt
3.               Sind die Systeme durch Black Box Spezifikationen     und      spezifiziert  so liegt eine  Verhaltensverfeinerung vor  wenn    9   gt  6     68 KAPITEL 3  FORMALES SYSTEMMODELL       Lo  5  ze 9                               R   Ra  b          i    rd So j    YF     o              Abbildung 3 9  Schnittstellenverfeinerung    Ein typischer Schritt in der Entwicklung eines Systems ist die Reduktion von Nichtde   terminismus und Unterspezifikation  Dies kann durch eine Verhaltensverfeinerung for   malisiert werden  Ist das verfeinerte System aus Unterkomponenten zusammengesetzt   nennt man diesen Schritt auch strukturelle Verfeinerung     3 9 2 Schnittstellenverfeinerung    Die Schnittstellenverfeinerung erlaubt es  die Ver  nderung der Schnittstelle eines Sys   tems als Verfeinerungsschritt zu formalisieren  So k  nnen Anzahl und Typ der Nach   richtenkan  le und die Repr  sentation von Nachrichten ver  ndert werden  Prominentes  Beispiel ist die Verfeinerung von Nachrichten  die abstrakt durch nat  rliche Zahlen   implementierungsnah jedoch durch Bitsequenzen dargestellt werden     Die Schnittstellenverfeinerung wird in Abbildung  3 9  veranschaulicht  Die Nachrichten  des abstrakten Systems S   werden verm  ge der Abstraktions  bzw  Repr  sentationsre   lationen R   und Ra mit Nachrichten des konkreten Systems 53 in Beziehung gesetzt   Eine Verfeinerung liegt vor  wenn jedes Verhalten von S2 nach einer      bersetzung    mit  R   und Ra auch ein Verhalten von Sj
4.         Eine resultierende Modifikation des Gesamtsystems l    t sich auch informell interpre   tieren  Die Eigenschaft von S wird verst  rkt um die Konjunktion der zus  tzlichen Ei   genschaften  die von den modifizierten Komponenten erf  llt werden m  ssen  und die  durch die Komposition nicht ung  ltig gemacht werden  Durch neue als    r formulier   te Verhaltensm  glichkeiten hat S zus  tzliche Freiheiten in seinem Verhalten  Es darf  einerseits neue Verhaltensm  glichkeiten einer Teilkomponenten kombinieren mit dem  unver  nderten Verhalten der jeweils anderen Teilkomponente  andererseits darf es auch  die neuen Verhaltensm  glichkeiten beider Teilkomponenten kombiniert ausn  tzen     Gilt die Annahme der Unabh  ngigkeit der Modifikationen  wie wir sie bereits in Ab   schnitt  5 1  kennengelernt haben  also   amp     gt  67  und F     l     und zeigt S1    S2 genau das Verhalten von S  gilt also auch        2       so k  nnen  im Beweis die Implikationen ersetzt werden zu Gleichheiten und die Aussage der Pro   position MI  verst  rkt werden zu    BAM    8  AM    Q  P24 M       Auch f  r Transitionssysteme k  nnen wir eine Modifikation eines Systems S finden   die zu Modifikation von Teilkomponenten pa  t  Da wir aber keinen Verfeinerungsbe   griff zwischen Transitionssystemen definiert haben  wie in Abschnitt  3 9  begr  ndet    definieren wir die Aussage   ber die Gleichheit von modifizierten  zusammengesetzten  Systemen     Proposition 4 8 Fortpflanzung von Modifikatio
5.        Auch Zustand 5 ist ein Fehlzustand  der aber noch unsichtbar bleibt  Erst im Zustand 6 tritt ein  Versagen auf  da durch die zweite Anfrage R der interne Fehler offensichtlich wird  Das System  ZahlerAM reagiert mit einer 2  w  hrend das fehlerfreie System eine 3 ausgegeben h  tte     Im Falle einer Black Box Spezifikation sieht dieser Fall g  nzlich anders aus  Da wir uns auf ein  ungezeitetes Systemmodell beschr  nkt haben  kann der Z  hler nur sehr grob spezifiziert werden  durch     eo  r N  j lt k sej lt j k A  maz n  Ik    c k  n   lt   i       Auf jede Anfrage wird also reagiert  die ausgegebenen Zahlen wachsen monoton  und es k  nnen  nie mehr Daten gez  hlt werden als auf i verf  gbar sind  Es ist ohne explizite Modellierung der  Zeit nicht erkennbar  in welcher Reihenfolge die zu z  hlenden Daten und Anfragen vom System  empfangen wurden  So ist es m  glich  dass ein Datum  dann ein R  wieder ein Datum  das  zweite R und schlie  lich das dritte Datum empfangen wurden  Die Ausgabe  1 2  w  re also  eine korrekte und spezifizierte Reaktion des Systems  Insgesamt sind im ungezeiteten Modell  auf die Eingabe i    d    da  d3  und r    R  R  folgende Reaktionen m  glich     c       0 0    0 1    0 2    0 3    1 1    1  2    1 3    2 2    2 3    3 3       Der Verlust eines Datums macht sich im Verhalten dieses Beispiels nur dadurch bemerkbar   dass die Zahl 3 nicht mehr ausgegeben werden kann  Die Modifikation wird also durch eine  Einschr  nkung mittels    x ausge
6.    Die Verwendung formaler Methoden zielt   blicherweise ab auf den Nachweis der Ab   wesenheit von Fehlern in Systemen  Da ein formales Modell im allgemeinen aber eine  Abstraktion des realen Systems darstellt  die daher potentielle  beispielsweise implemen   tierungsbedingte Fehler nicht repr  sentieren kann  beinhaltet Fehlerfreiheit im formalen  Modell eine idealisierende Annahme  Diese Idealisierung ist f  r fr  he Entwicklungspha   sen zul  ssig  in denen die eigentliche  intendierte Kernfunktionalit  t des Systems im  Vordergrund der Untersuchungen steht     Im Rahmen einer weiteren Systementwicklung sollte es aber m  glich sein  Fehler als  unerw  nschten  aber dennoch unvermeidbaren Teil eines Systems explizit aufzunehmen  und zu behandeln  In dieser Arbeit wird hierf  r eine formale Unterst  tzung pr  sentiert     Die formale Methodik Focus wird dazu um Begriffe und Notationen erweitert  mit de   nen verschiedenste Klassen von Fehlern eines verteilten  reaktiven Systems sowohl in  abstrakter  eigenschaftsorientierter Black Box Sicht als auch im Kontext von Transiti   onssystemen als sogenannte Modifikationen explizit dargestellt werden k  nnen  Auf der  Grundlage einer formalen Darstellung wird es m  glich  pr  zise und nachweisbare Aus   sagen   ber Fehlertoleranz eines Systems und die Auswirkungen von Fehlern zu machen   Zur Unterst  tzung einer Systementwicklung wird die schrittweise  auch nachtr  gliche  Einf  hrung von Techniken zur Fehlererkennung  zur Generie
7.    x type o1     x     type om        Diese Sicht auf Systeme wird Black Box Sicht genannt  da nur das nach au  en sichtbare  Kommunikationsverhalten beschrieben wird  ohne Bezug auf Interna des Systems wie  lokale Variable  Zust  nde oder interne Operationen     Wir geben das Verhalten von Merge im folgenden Beispiel durch eine Relation an     Beispiel 3 2 Das Verhalten von Merge sei zun  chst informell beschrieben  Die Nachrichten   die auf i und iz empfangen werden  sollen auf o wieder ausgegeben werden  Die Reihenfolge der  Daten soll dabei nicht ver  ndert werden  Wenn also eine Nachricht d  vor einer Nachricht d  auf  Kanal i  empfangen wird  dann soll auch auf o wieder dj vor d  gesendet werden  f  r j      1 2     Die Art und Weise der Zusammenmischung von Nachrichten aus verschiedenen Kan  len bleibt  dabei beliebig  d h  ohne Vorgabe von Reihenfolgen oder Priorit  ten     Dieses Verhalten von Merge  dessen informelle Beschreibung trotz seiner Einfachheit bereits re   lativ aufwendig ist  wird formal spezifiziert durch eine Relation  die wir auch mit dem Bezeichner  Merge identifizieren     Merge C DY x DY x  Dy U D2        Sie ist beispielhaft angedeutet in Abbildung B2 und durch folgende explizite  aber nur partielle       Angabe  Dabei seien d    di     Elemente aus D    und da  d       Nachrichten aus Da   Merge    0       0     di        d              d2    d2      di d          d    di       di    d2    d    d2       di    d2    dz  d        0   d2  d3    d2  
8.   Aber auch im laufenden Betrieb k  nnen noch Fehler festgestellt werden  Typischerweise  wird ein System dann durch die Entwickler durch Erstellung einer neuen Version oder  das Ausliefern von Patches nachgebessert  Wir ordnen diese T  tigkeit auch noch der  Entwicklungszeit zu     Laufzeit    Die genannten T  tigkeiten w  hrend der Entwicklungszeit zielen alle auf ein fehlerfreies  System ab  Beim Umgang mit Fehlern w  hrend der Laufzeit eines Systems akzeptiert  man aber das Eingest  ndnis  dass Fehler in einem System enthalten sein k  nnen     seien  es Softwarefehler  die sich durch Defizite in der Entwicklung ergeben haben  Hardwa   refehler  die durch Probleme in der Herstellung  durch Verschlei   bzw  Alterung oder  andere physikalische Einfl  sse verursacht werden  oder andere unber  cksichtigte   u  ere    2 1  FEHLER 23    Einfl  sse wie beispielsweise Umgebungsfehler oder Viren     Ein Umgang mit derartigen Fehler zur Laufzeit muss durch das System selbst erfolgen   Wir k  nnen diesbez  glich folgende Systemaktivit  ten unterscheiden     e Fehlerentdeckung  Das System soll in der Lage sein  einen Fehler  im Sinne von  Fehlzustand oder Versagen  zu entdecken  um darauf reagieren zu k  nnen  Eine  Fehlerursache hingegen kann ein System normalerweise nicht selbst feststellen   W  ren daf  r Mechanismen vorhanden  h  tte man sie bereits vor Inbetriebnah   me des Systems verwenden k  nnen  um den Fehler zu beheben  Das System soll  w  hrend seiner Laufzeit aber die Wir
9.   Dh    Foleo    A Go  o  A if   fail             Als entsprechende Modifikation des Transitionssystems passen wir F so an  dass bei  Ausfall des Systems die Fehlermeldung sofort erzeugt wird     p d   Name Pre Input Output Post  Top true     f fail stop      true    Die Modifikationen M    true        bzw  M    E  F     beschreiben damit das fail stop  failure Modell f  r jedes System mit f     O     5 1 3 Omission failure    Mit omission failure bezeichnet man Verluste in der Ausgabe eines Systems  Wir be   schreiben dieses Fehlermodell bezogen auf einen Ausgabekanal o     O des Systems S   Die Verluste treten vollkommen nichtdeterministisch auf  d h  alle Varianten zwischen  den Extremen     Verlust aller Nachrichten einerseits und   berhaupt keinem Verlust an   dererseits     sind m  glich  Das Normalverhalten bleibt dabei also ebenso m  glich  so  dass wir Modifikationen mit   g   true bzw  E      w  hlen     F  r die neuen Paare  i  0  im Fehlerverhalten soll gelten  dass der Strom o eine beliebige  Zahl von Nachrichten nicht mehr enth  lt  Reichert man o wieder an zu o     so stellt o     ein Normalverhalten dar  Formal definieren wir dieses Fehlermodell durch    Bp    30    0 0       EXTEND type o   A D o    o        124 KAPITEL 5  METHODISCHER UMGANG MIT FEHLERN    Die Relation EXTEND M  enth  lt alle Strompaare  x y  vom Typ M  in denen y  durch eine Anreicherung von x um Nachrichten aus M entstehen kann     yeM         y      EXTEND M   dE MAz  ye M    Nz E M  A  a
10.   Soll die Modifikation der Ausgaben auch von der Eingabe abh  ngen  so ist nicht in  jedem Fall ausreichend Information an den Ausgabekan  len verf  gbar  Variante  schafft hier Abhilfe  da die Modifikationskomponente auch Kenntnis   ber die Eingabe  erh  lt  Im Prinzip ist diese Variante bereits m  chtig genug  um Modifikationen hin zu  einem beliebigem Verhalten zu modellieren  M k  nnte die Ausgaben von   ignorieren   und ein beliebiges  w  hlbares Verhalten erbringen  W  nschenswert ist aber vielmehr   die Funktionalit  t von   zu nutzen und in M wirklich nur die eigentliche Abweichung  vom Normalverhalten zu modellieren     Die in Abbildung  4 3 d   dargestellte Variante bietet hier noch mehr Ausdrucksm  ch   tigkeit  da sowohl die Ein  als auch Ausgabekan  le modifiziert werden k  nnen  Die  Modifikation kann unter Ausnutzung aller Informationen definiert werden  die in einer  Black Box Sicht verf  gbar sind  d h  mit Kenntnis der gesamten bisherigen Ein  und  Ausgabegeschichten der Komponente S     Die vier erw  hnten Varianten von Modifikationskomponenten werden wir nun formal  definieren     4 2  MODIFIKATION DES VERHALTENS 91    Definition 4 6 Modifikationskomponenten    Sei S ein System mit der Schnittstelle  I  O   Eine Komponente mit der Schnittstelle   X Y  hei  t Modifikationskomponente zu S  wenn eine der folgenden Bedingungen  erf  llt ist     i  X29 KRY Sd  Die Eingabe von M ist kompatibel zur Eingabe von I    ndert also nicht die  Schnittstelle  nur die Na
11.   die auf den  endlich vielen  Variablen des  Systems   bereinstimmen  aber anderen Variablen beliebige andere Werte zuweisen  Die    50 KAPITEL 3  FORMALES SYSTEMMODELL    relevanten Variablen eines Systems bezeichnen wir mit    V  IUOUA    Beschreibung konkreter Transitionssysteme Wie schon bei den Black Box Spe   zifikationen kann die meist unendliche Menge T nicht explizit durch Auflistung an   gegeben werden  Sie wird meist durch eine Menge von Pr  dikaten r angegeben  die  jeweils ganze Teilmengen von T beschreiben  Ein Pr  dikat 7 enth  lt freie Variablen aus  V UV     Die Variablen aus V beschreiben die Werte der Variablen in einem Zustand a   die    gestrichenen    Variablen aus V    die Werte im Nachfolgezustand 9  Einem Pr  dikat  T wird also die Menge von Transitionen      a  p    a  p 5 T     zugeordnet  und einer Menge von Pr  dikaten r wird erwartungsgem     die Vereini   gung der zugeh  rigen Transitionsmengen zugeordnet  Wir werden im folgenden auch  ein Pr  dikat 7 als Transition bezeichnen  obwohl dies eigentlich einer Menge von Tran   sitionen entspricht        Wir k  nnen nun definieren  wann eine Transition in einem Systemzustand schaltbereit  ist     Definition 3 6 Schaltbereitschaft  Sei ein Transitionssystem  I  O  A  T  T  gegeben     e Eine  Einzel   Transition  B  y  aus T hei  t schaltbereit in einem Zustand a   wenn sich 3 von a nur in der Zuweisung von Werten an Variable unterscheidet   die im System nicht auftreten  wenn also gilt     aX B    e
12.   die diesen Wert   ndern  ist dies im Ausf  hrungs   modell einer Programmiersprache automatisch sichergestellt  Solange der Wert einer  Variable nicht explizit ver  ndert wird  bleibt er gleich     Wir haben uns in dieser grundlagenorientierten Arbeit auf die Bereitstellung von allge   meinen Prinzipien und die Darstellung von elementaren Zusammenh  ngen fokussiert   F  r die Umsetzung unserer Ans  tze in die praktische Verwendung in einer Systement   wicklung sind noch weitere   berlegungen anzustellen  Im Vordergrund steht hierbei die  Bereitstellung eines Werkzeugs  das einen Entwickler in der Anwendung der Methodik  unterst  tzt  Ein derartiges Werkzeug sollte es m  glich machen  Systeme zu beschreiben   Modifikationen darauf anzuwenden und deren Auswirkungen zu untersuchen  So sollte  es idealerweise erm  glichen  aus einem Katalog von Fehlermodellen eine Fehlerklasse  zu w  hlen  diese einem System zuzuordnen  gegebenenfalls Fehlererkennungs  und Kor   rekturmechanismen vorzuschlagen und sogar Beweise anzupassen  Eine Realisierung  dieses idealisierten Werkzeugs erfordert aber noch die L  sung einiger Probleme  die wir  im n  chsten Kapitel zusammenfassen  Vielversprechend sind Ans  tze  die beispielswei   se Zust  nde identifizieren  f  r die die Reaktivit  t nicht sichergestellt ist oder die die  offenen Beweisverpflichtungen in einem modifizierten Beweisdiagramm ermitteln     156    KAPITEL 5  METHODISCHER UMGANG MIT FEHLERN    Kapitel 6    Zusammenfassung und Ausb
13.   f  hren     F    a B  ak init A BE  TA   init            Das resultierende System  S    I  O  AU  init   init   true   T E UF     hat demnach das gleiche Verhalten wie S  die Modifikation  E  F  stellt in diesem  konkreten Fall also eine neutrale Modifikation dar   aber mit einer vereinfachten   minimalen Initialbedingung     Soll das System nun in seinen Startzust  nden modifiziert werden  so ist dies mit  reinen Modifikationen entsprechend Definition MIB  m  glich     F  r eine praktische Beschreibung von Modifikationen ist selbstverst  ndlich eine Be   schreibungstechnik f  r Modifikationen von A und Y w  nschenswert  die auf die be   schriebenen schematischen Umsetzungen verzichtet  Da in dieser Arbeit aber prinzipi   elle   berlegungen im Vordergrund stehen  wollen wir hier darauf aber verzichten     Beispiel 4 5 Wir modellieren zun  chst die Entscheidung  von welchem Kanal die modifizierte  Komponente MergeAM ausschlie  lich liest  durch Verwendung einer neuen Variable c  choice    die unabh  ngig vom Startwert nichtdeterministisch auf einen der Werte 1 oder 2 gesetzt wird   der dann nicht mehr ver  ndert wird  Die entsprechenden  zu erg  nzenden  Transitionen 73 und  T4 beschreiben wir tabellarisch     F Name Pre Input Output Post  p  T3 c 1Ac 2       c 1  T4 c 1NX1c 2 e 2       4 2  MODIFIKATION DES VERHALTENS 89    Da die Variable c noch nicht in A enthalten war  k  nnen die Transitionen 7  und 72 in T den  Wert von c beliebig modifizieren  Dies schlie  en wir auf 
14.   ge der Fehlzust  nde ERROR S M  enth  lt alle Zust  nde a  die in einem Ablauf des  modifizierten Systems erreicht werden k  nnen  aber nur unter Verwendung von Fehler   transitionen aus F           ERROR S M      a   3 e3kEeNe amp k a A       a   gt  Jl lt ke     1      1 1   EF                 Die Menge E von Transitionen  die im modifizierten System nicht mehr ausgef  hrt wer   den k  nnen  reduziert im allgemeinen die Menge der erreichbaren Zust  nde und damit  auch die Zahl der Fehlzust  nde  Eine alternative Definition in  9  verzichtet auf die  Forderung der Erreichbarkeit und unterscheidet daher nicht zwischen Zust  nden  die  durch die Modifikation unerreichbar werden und Zust  nden  die bereits ohne Modifika   tion unerreichbar waren  F  r die hier gew  hlte Definition sprechen zwei Argumente     e Der vorgestellte Formalismus dieser Arbeit zielt darauf ab  mit Fehlern explizit  umgehen zu k  nnen  indem die Fehler  ihre Auswirkungen und Gegenma  nahmen  modelliert werden  Wie in Abbildung EI  skizziert  soll damit eine klare Grenze  gezogen werden zwischen einerseits den Fehlern  mit denen man rechnet umgehen  m  chte und andererseits den Fehlern  f  r die man eine Behandlung nicht vorsieht   Obige Definition unterst  tzt diese klare Trennung     e In Abschnitt b 3 werden Kriterien angegeben  die ein Pr  dikat zur Erkennung von  Fehlern zu erf  llen hat  Durch die Aufnahme unerreichbarer Fehler in die Menge  der Fehlerzust  nde m    ten auch diese  unn  tigerweis
15.   korrektur verwendet werden und werden im entsprechenden Ab   schnitt  5 3  wieder aufgegriffen     4 4 Fehlertoleranz    Fehlertoleranz l    t sich auf verschiedene Weisen interpretieren  Meist wird sie als die  Eigenschaft eines Systems betrachtet  auf auftretende Fehlern auf eine noch akzeptable  Weise zu reagieren  Eine pr  zise Fehlertoleranzaussage macht diese Aussage explizit  In  einer alternativen Interpretation des Begriffes l    t sich Fehlertoleranz als die F  higkeit  eines Systems verstehen  die Wirkung von auftretenden Fehlern einzud  mmen  Wir  werden beide Interpretationen im folgenden diskutieren     4 4 1 Fehlertoleranz als korrespondierende Modifikation    Betrachtet man Fehlertoleranz als die Eigenschaft eines Systems  auf das Auftreten  von Fehlern auf eine akzeptable Weise zu reagieren  m  ssen die folgenden zwei Fragen  beantwortet werden  um diese Aussage explizit zu machen     e Welche Fehler werden toleriert     Ein System kann im allgemeinen nicht beliebige Fehler tolerieren  sondern nur  eine bestimmte Fehlerklasse  In der Literatur finden sich teilweise standardisierte  Fehlermodelle  auf die sich Aussagen zur Fehlertoleranz beschr  nken  beispiels   weise in  60   Eine gr    ere Zahl wird aufgef  hrt in  23   darunter die Fehlerklassen  ommision  timing  response  crash failures und mehr  Pr  zisere Aussagen   ber Feh   lertoleranz lassen sich machen  wenn die Fehlerklassen individuell f  r gew  nschte  Aussagen der Fehlertoleranz formuliert we
16.   wie sich Modifikationen von Systemkomponenten auf das Gesamtsystem auswirken   Diese Auswirkung lie   sich wiederum als Modifikation des Gesamtsystems ausdr  cken   Es wurden sowohl die Komponenten als auch das System  das sie bilden  im gleichen  Formalismus beschrieben  also jeweils durch Black Box Spezifikationen oder durch Tran   sitionssysteme     In diesem Abschnitt behandeln wir den Zusammenhang von Modifikationen eines Sys   tems  das zweimal mit Hilfe verschiedener Techniken beschrieben wird  also sowohl  durch Black Box Eigenschaften als auch durch Transitionssysteme  Wir nennen Modi   fikationen der beiden Sichten korrespondierend  wenn ihre Wirkungen sich entsprechen   Man kann den Bedarf nach dem Begriff der korrespondierenden Modifikationen auf  verschiedene Arten motivieren     e Im Laufe eines Entwicklungsprozesses kann sich eine   nderung der Anforderungen  an ein System ergeben  beispielsweise durch eine ver  nderte Umgebung  durch das  Auftauchen neuer Kundenw  nsche oder durch eine Korrektur  die eine fehlerhafte  Spezifikation n  tig macht  Hat man aber bereits eine  abstrakte  Implementierung  des Systems in Form eines Transitionssystems  so mu   dieses an die neuen Forde   rungen angepasst werden     e Auch umgekehrt k  nnen sich Modifikationen ergeben  Werden beispielsweise Feh   ler in einer Implementierung beobachtet  so lassen sich diese in vielen konkreten  F  llen leicht durch zus  tzliche Transitionen nachmodellieren  Spontane   nderun   gen vo
17.  1  Mit jedem Empfang eines Datums verringert sich die Kapazit  t des Puffers um 1  mit  jeder Anfrage und dadurch ausgel  ster Ausgabe eines Datums erh  ht sich die Kapazit  t  wieder um 1  Die Differenz der empfangenen Daten und der empfangenen Anfragen darf  also niemals h  her als N liegen  nur dann w  rde der Puffer seine Kapazit  tsgrenze   ber   schreiten  Es muss also gelten     D  i       R  i  lt  N    Diese Forderung ist allerdings noch zu schwach  denn sie macht nur eine Aussage iiber die  gesamte  m  glicherweise unendliche Kommunikationsgeschichte  Die Forderung mu   aber    3 5  BLACK BOX SPEZIFIKATIONEN 47    w  hrend des gesamten Ablaufes  also auch in allen Zwischen  zust  nden    gelten  Dies wird  ausgedr  ckt  indem die G  ltigkeit der obigen Bedingung f  r alle Pr  fixe von i gefordert  wird        Vil Cie  DOi      R Oi  lt  N    2  Zu vermeiden ist der Fall  dass der Puffer eine Anfrage in einer Situation erh  lt  in der    berhaupt keine Daten im Puffer enthalten sind  Dies passiert  wenn mehr Anfragen als  Daten empfangen werden  wenn also obige Differenz negativ wird  Um dies auszuschlie  en   gehen wir davon aus  dass dieser Fall nie  also f  r keinen Pr  fix von i eintritt und fordern  entsprechend    Vi Cie  DOi        R Oi   gt  0    Die Konjunktion dieser beiden Forderungen ergibt unsere Umgebungsannahme  Unter dieser  Annahme ist nun das Verhalten des Puffers als Pr  dikat G zu formulieren        Der Inhalt der Ausgabe auf dem Kanal o wird in 
18.  Abweichungen dieser Attribute beschreiben  In den folgenden Kapiteln wer   den wir diese Sichtweise pr  zisieren  indem wir formale Definitionen dieser drei Begriffe  erarbeiten     Wir betrachten Systeme  die aus Komponenten zusammengesetzt sein k  nnen  Zur Mo   dellierung von Fehlern wollen wir auf eine Teilkomponente des Systems fokussieren   um darin enthaltene lokale Fehler zu modellieren und ihre Wechselwirkungen sowohl  mit dem restlichen System als auch mit der Umgebung explizit darzustellen und zu  untersuchen  Dies f  hrt zu einer Sicht auf Systeme  wie sie in Abbildung P I  dargestellt  ist     Dargestellt ist darin ein System  das in eine Teilkomponente 5 und ein Restsystem 9     untergliedert ist  Die Systemumgebung wird durch E repr  sentiert  Die Teilkomponente  S wird im Vergleich zum Restsystem S    hervorgehoben und damit in das Zentrum der    18 KAPITEL 2  DER FEHLERBEGRIFF                         E e co  ee 5        gt  g   w                         Abbildung 2 1  Zusammengesetztes System mit Umgebung    Betrachtungen ger  ckt  Die Komponente S  interagiert sowohl mit dem Restsystem       als auch direkt mit der Umgebung  w  hrend nat  rlich auch S    mit E interagiert     Durch die Wahl der Grenze zwischen   und      kann jeder beliebige Teil eines Systems  fokussiert werden  S kann das Gesamtsystem umfassen  mehrere zusammengefa  te Teil   komponenten oder auch nur eine Einzelkomponente  Im Rahmen einer Fehlermodellie   rung k  nnen damit Fehler eines 
19.  Ap  lt 4  e In dem durch o repr  sentierten Zustand ist das Ziel Y erreicht  d h     o  gt  Y    3 8  VERIFIKATION VON EIGENSCHAFTEN 65                y  N    gt    o gt k  k  lt  Hi      75                   Abbildung 3 8  Fortschrittsdiagramm f  r Merge    Befindet sich das System in einem Zustand  in dem    gilt  so befindet es sich auch in  einem durch   o         charakterisierten Zustand  Da immer eine Transition schaltbe   reit ist  wird aufgrund der Fairness jeder Zustand auch wieder verlassen  Beim Wechsel  in einen anderen Knoten wird dabei der Wert der Bewertungsfunktion reduziert  Da der  Wert nicht beliebig klein werden kann  muss schlie  lich im weiteren Systemablauf der  Knoten   o erreicht werden  der das Zustandspr  dikat Y erf  llt  K  nnen also alle gefor   derten Eigenschaften eines Fortschrittsdiagramms nachgewiesen werden  repr  sentiert  es einen Nachweis f  r die Aussage    SI  y    Diese Form der Fortschrittsdiagramme stellt eine Verallgemeinerung der Diagramme in   I0  dar  da Zyklen im Graph hier zugelassen werden  Eine Einbettung wird mit der  trivialen Bewertung 6    i erreicht     Beispiel 3 12 Wir wollen mit einem Diagramm beweisen  dass   Merge IF  0  k  k  lt   ut  i2    o gt k  gilt  d h  die Ausgabe wird verl  ngert  solange sie nicht genauso lang ist wie die Eingabestr  me  an beiden Eingabekan  len  Es werden also tats  chlich alle Eingaben wieder ausgegeben     Das einfache Beweisdiagramm mit nur zwei Knoten     und   o findet sich in Ab
20.  Das  neue Diagramm enth  lt 16 Beweisverpflichtungen  3 Knoten mit jeweils 5 Transitio   nen und die G  ltigkeit des Initialzustandes   Von diesen wurden 10 bereits im alten  Diagramm gezeigt  lediglich 6 neue Beweisverpflichtungen entstehen durch die beiden  neuen Transitionen     Selbstverst  ndlich ist der Grad der Wiederverwendung nicht in allen F  llen hoch  Bei  starken Modifikationen  die mit vielen neuen Transitionen viele neue Knoten erzeugen   entstehen auch viele neue Beweisverpflichtungen  Dennoch ist es auch in diesem Fall  lohnens  und erstrebenswert  auf einem bereits existierenden Beweis aufzubauen  auch  wenn dieser unter Umst  nden nur noch einen Spezialfall des Gesamtbeweises abdeckt     5 7 2 Fortschrittsdiagramme    Mit einem Fortschrittsdiagramm entsprechend Kapitel B 8 2 kann eine Eigenschaft der  Form      gt  WV nachgewiesen werden  Wird die Transitionsmenge des Systems ver  ndert   so erf  llt das System im allgemeinen diese Eigenschaft nicht mehr  Wir werden im  folgenden untersuchen  in welchen F  llen die G  ltigkeit erhalten bleibt oder wie die    5 7  WIEDERVERWENDUNG VON BEWEISEN 149    Eigenschaft an das ver  nderte System angepasst werden kann  Dabei unterscheiden wir  wieder zwischen dem Entfernen und Erg  nzen von Transitionen     Entfernen von Transitionen Eine mit einem Fortschrittsdiagramm verbundene Be   weisverpflichtung fordert  dass von jedem Knoten des Diagramms  au  er vom Zielknoten  o  mindestens eine ausgehende Transition schal
21.  Eine Transition smenge  T ist schaltbereit in einem Zustand a  wenn es einen  Nachfolgezustand gibt  der von   aus mit T erreichbar ist     SBea B    Er    Dies wird abgek  rzt durch                   a   En r   Wir veranschaulichen die Formalisierung von Transitionssystemen anhand des folgenden  Beispiels           Beispiel 3 5 Merge als Zustandstransitionssystem    Wir spezifizieren wieder das System Merge  das wir in BeispielBB schon kennengelernt haben   Die Ein  und Ausgabekan  le des Transitionsystems Merge    I  O  A  T  T  sind offensichtlich    I    i  i2  O    o     3 6  ZUSTANDSTRANSITIONSSYSTEME 51    Da wir uns keine Daten merken miissen  und unsere Reaktion auch nicht von der Vorgeschichte  abh  ngt  brauchen wir weder Daten  noch Kontrollzust  nde  und definieren ein minimales A  durch Hinzuf  gen der Variablen f  r den gelesenen und ungelesenen Teil der Eingabestr  me     A   i  ag ay is   Die Startzust  nde beschreiben wir durch das Pr  dikat  Yerv  a AR    N0       Das System Merge startet also ohne initiale Ausgabe und natiirlich ohne bereits konsumierte  Eingaben     Es soll nun in der Lage sein  Daten von beiden Kan  len auf den Ausgabekanal zu kopieren  F  r  den Kanal 7  definieren wir dazu ein Pr  dikat 7  durch    af       n 3de fti  d   is      if    d  A  o  07   d  A  ig    18 A  Oi Ayle          Die erste Zeile stellt sicher  dass eine Nachricht d auf dem Eingabekanal 7  vorliegt  Entspre   chend der zweiten und dritten Zeile wird diese Nachricht
22.  Invariante beweisen     Als Beispiel f  r eine Fortschrittseigenschaft geben wir folgende Behauptung an  Wird in einem  Ablauf ein Zustand erreicht  in dem die L  nge des Ausgabestromes k  rzer ist als die Summe  der L  ngen der Eingabestr  me  so wird im weiteren Ablauf die Ausgabe noch weiter verl  ngert     62 KAPITEL 3  FORMALES SYSTEMMODELL    Merge l   0  k  k  lt   i   i  gt   o gt k    Auch diese Aussage werden wir im folgenden mit Hilfe von Verifikationsdiagrammen beweisen                 Da in komponierten Systemen die Teilkomponenten nur   ber asynchrone und damit  nicht blockierenden Nachrichtenaustausch kommunizieren und interagieren  sonst je   doch entkoppelt bleiben  weist unser Systemmodell Kompositionalit  t auf  d h  die Ei   genschaften eines Systems bleiben im Kontext eines weiteren Systems erhalten  Es gilt  also  f  r j      1 2      S  I  inv    Sj Y  S   Q S2 IF inv    S1 Q S2 lF BOW  3 8 2 Verifikationsdiagramme    Ein formaler Beweis einer Eigenschaft eines Transitionssystems stellt sich klassischer   weise als eine lineare Folge von Aussagen dar  die ausgehend von Axiomen oder Tau   tologien unter Verwendung von Beweisregeln   ber Zwischenresultate hinweg die zu be   weisende Aussage herleiten  Eine derartige Darstellung folgt nicht der Intuition der  operativen Funktionsweise  die man mit einem Transitionssystem verbindet  Ein Ve   rifikationsdiagramm ist geeignet  einen Beweis zu veranschaulichen  Es stellt an sich  keinen Beweis dar  aber impli
23.  Komplexit  t bei der Systementwicklung bei  da sie ein  System auf seine f  r die intendierte Funktionalit  t relevanten Aspekte reduziert  For   male Methoden betrachten diese Klasse von Fehlern meist nicht  sondern gehen implizit  davon aus  dass diese Fehler auf implementierungsnaher Ebene abgefangen und behan   delt werden  also au  erhalb des formalen Rahmens  Damit wird die Anwendbarkeit der  formalen Methoden auf einen Teil der Systementwicklung beschr  nkt     Ein Ziel der Arbeiten auf dem Gebiet der formalen Methoden ist es aber  die erm  glichte  Pr  zision nicht nur auf Ausschnitte eines Systems zu begrenzen  sondern eine durchg  n   gige Verwendung zu erm  glichen  beispielsweise durch einen automatisierten   bergang  von Spezifikationen zu implementierungsnahen Systembeschreibungen bis zur Gene   rierung von Code  Dies erfordert den Umgang mit den letztendlich unvermeidbaren  Fehlern auch innerhalb der abstrakten Formalismen  Die durch die Abstraktion indu   zierte  idealisierte Annahme von Fehlerfreiheit soll bewu  t und auf systematische Weise  aufgegeben werden k  nnen  Fehler k  nnen damit formal erfa  t werden     Eine weitere Motivation zur Integration von Fehlern ist eine w  nschenswerte Unter   st  tzung der Entwicklung sogenannter fehlertoleranter Systeme  In diesen spielen Fehler  eine prominente Rolle  da Aussagen   ber das Systemverhalten diese explizit referenzie   ren  Fehlertoleranz ist eine Eigenschaft  die gerade bei sehr hohen Sicherheits  und 
24.  Komposition der restlichen Komponenten beinhal   tet  Wir wollen nun ermitteln  welche Modifikation des Gesamtverhaltens sich aus einer  Modifikation von 5  ergibt     Wir k  nnen f  r die Darstellungsform der Black Box Spezifikationen als auch der Transi   tionssysteme Charakterisierungen der Auswirkungen definieren  Dazu gehen wir jeweils  von einem zusammengesetzten System aus und definieren aus den Modifikationen der  Einzelkomponenten die   quivalente Modifikation des Gesamtsystems     Proposition 4 7 Fortpflanzung von Modifikationen bei Black Box Spezifikationen    Sei ein System S durch die Black Box Spezifikation    gegeben  das durch ein komponier   tes System aus zwei Komponenten S   und Sa verfeinert wird  Das Verhalten der beiden  Komponenten wird jeweils durch eine Black Box Spezifikation      und   a beschrieben   d h     P  P amp P oder auch     APR  gt P    Wird das Verhalten der Komponenten durch Modifikationen M       1  PL  und Ma     823 92  ver  ndert  so entspricht dies der Modifikation M      p   p  des Gesamt   systems mit    r  L APZ   Dr    P  A OF  v  8  A OL  V  PL A P23     Es gilt dann also    PAM    P1AM1  8  P24 M       108 KAPITEL 4  FORMALE MODELLIERUNG VON FEHLERN    Dies kann leicht bewiesen werden  wie folgende Deduktion zeigt      81AM    A  24M2           A PL  v OL  A     2 A 2  V 6       8  APh A Bp A 4  V  8  A OL A 62  V   BEN Ba A 8   V  Du  A DR    gt   1 APL A by A P3  V  8  A 64  V   Dh A   2  V  Ph A 4     gt  A z    r         
25.  Kontext verwendet wird  und dass  es seine Funktionalit  t tats  chlich nur unter diesen Bedingungen erbringen kann oder  wenn es m  glich ist  bei Kenntnis der Umgebungsannahmen eine  bez  glich geeigneter  Kriterien  g  nstigere Implementierung zu w  hlen     Eine Annahme bez  glich der Umgebung eines Systems ist eine Aussage   ber seine  Eingabestr  me  semantisch  im einfachsten Fal    also eine Teilmenge von    type i1     x     x type tn         Im allgemeinen Fall ist es n  tig  diese Menge auch in Abh  ngigkeit von den Ausgaben des Systems  selbst zu definieren  wie es in Kapitel B 5 motiviert wurde  Wir beschr  nken uns hier auf den einfachen  Fall     114 KAPITEL 4  FORMALE MODELLIERUNG VON FEHLERN    Diese Menge enth  lt alle Eingabestr  me  die die Umgebung an das System senden darf     Die Teilmenge der zugelassenen Eingabestr  me kann wieder   entsprechend den Be   schreibungstechniken aus den Kapiteln B 5 undB 6   auf zwei Arten beschrieben werden     e Eine Black Box Spezifikation der Umgebungsannahme wird durch eine Formel  A il     in     beschrieben  die die Namen der Eingabestr  me  und m  glicherwei   se auch der Ausgabestr  me  als freie Variable enth  lt  Diese Annahme kann un   abh  ngig von der Beschreibungstechnik f  r das System selbst formuliert werden   insbesondere also auch f  r Transitionssysteme  Wurde das System im Format ei   ner A G Spezifikation definiert  so ist die Annahme A darin bereits   blicherweise  definiert     e Die Menge der ge
26.  Nachweis sichergestellt werden  Im Rahmen einer Systementwicklung  kann es allerdings ausreichend sein  dies erst indirekt durch die Entwicklung einer Im   plementierung zu tun     Beispiel 3 3 Das System Merge kann sehr leicht in der Black Box Sicht spezifiziert werden   Betrachtet man im Ausgabestrom o die Nachrichten  die vom Eingabekanal 7  kommen k  nnen   so sind dies genau die Nachrichten  die auf i  tats  chlich empfangen wurden  und sie erscheinen  in unver  nderter Reihenfolge  Extrahiert man also aus o den Strom der Nachrichten vom Typ  Dj  so ist dieser identisch mit i1  Die analoge Forderung f  r iz ergibt die vollst  ndige Black Box  Spezifikation  Wir benennen das Pr  dikat entsprechend dem Namen des Systems     Merge     D    o   i A Do   ia             Die Stromtupel aus Beispiel BP  erfiillen alle die hier genannte Spezifikation        Eine spezielle Form von Black Box Spezifikationen stellen die sogenannten Assumpti   on Guarantee  oder auch Rely Guarantee oder Assumption Commitment  Spezifikatio   nen dar  die die Funktionalit  t eines Systems in Abh  ngigkeit von Eigenschaften der  Umgebung definieren     Einfache Assumption Guarantee Spezifikationen    Eine einfache A G Spezifikation besteht aus zwei Pr  dikaten A und G  Das Pr  dikat  A weist als freie Variable nur Kan  le aus   auf und beschreibt  welche Eingabestr  me  von der Umgebung an das System geschickt werden d  rfen  Darin ist also die Annahme  an die Umgebung formuliert  deren G  ltigkeit vo
27.  Nutzen der definierten Begriffe und des vorgeschlagenen methodischen Um   gangs sollte durch Fallbeispiele nachgewiesen werden     Die angestrebte Erweiterung formaler Methoden stellt einen weiteren Schritt hin zu  einer durchg  ngigen Verwendung formaler Methoden dar  die nicht nur Fehlervermei   dung  sondern den expliziten  bewu  ten und pr  zisen Umgang mit Fehlern erm  glicht     1 5   berblick    In KapitelP Jcharakterisieren und diskutieren wir den Begriff des Fehlers auf Grundlage  relevanter Literatur  Wir differenzieren Fehler in Fehlerursachen  Fehlerzust  nde und  Versagen  geben eine Klassifikation der Begriffe an und beschreiben Techniken zum Um   gang mit Fehlern  Das Thema der Fehlertoleranz wird ausf  hrlicher behandelt  indem  sowohl bekannte formale Ans  tze vorgestellt werden als auch etablierte Techniken  die  in fehlertoleranten Systemen zum Einsatz kommen     Um die Fehlerbegriffe formal definieren zu k  nnen  ist eine mathematische Grundlage  notwendig  Dazu pr  sentieren wir in Kapitel B ein Systemmodell  das zur Modellierung  verteilter  reaktiver Systeme geeignet ist  Ein System wird darin als eine Menge intera   gierender Komponenten dargestellt  die   ber Kommunikationskan  le asynchron Nach   richten austauschen  Die Kommunikationsgeschichte wird durch Nachrichtenstr  me     8 KAPITEL 1  EINF  HRUNG    Systemverhalten durch Relationen von Nachrichtenstr  men dargestellt  Es werden zwei  Beschreibungstechniken f  r Systeme pr  sentiert  die sich 
28.  Sicht auf Systeme steht uns mit den Transitionssys   temen eine ablauforientierte Sicht zur Verfiigung  Auch fiir diese Sichtweise wollen wir  nun Modifikationen einfiihren     4 2 3 Modifikationen von Transitionssystemen    Ein Transitionssystem kann auf zwei natiirliche Arten modifiziert werden  und zwar  durch das Hinzufiigen von Transitionen einerseits und durch das Entfernen von Transi   tionen andererseits  Die Modifikation des Zustandsraumes spielt eine nur untergeordnete  Rolle  wie wir im folgenden noch diskutieren werden  Wir definieren die Modifikation  eines Transitionssystems daher durch die Angabe entsprechender Transitionsmengen  wie folgt     Definition 4 5 Modifikation von Transitionssystemen    Sei S    I  O  A  Y  T  ein Transitionssystem  und seien E und F Mengen von Tran   sitionen E  F C VALx VAL  wobei F die Forderung  d  aus Definition BP  erf  llt  Die  Modifikation    M  E F     entfernt die Menge E der Transitionen aus der Transitionsmenge T  und f  gt die Tran   sitionen aus F hinzu     SAM    1 0 A Y  T E UF                 Die Forderung an F beschr  nkt uns in der Modifikation von Transitionssystemen  So  sollen auch modifizierte Systeme die Eigenschaft behalten  das Lesen von Nachrichten  nicht mehr r  ckg  ngig machen zu k  nnen  nur bereits gesendete Nachrichten zu lesen    4 2  MODIFIKATION DES VERHALTENS 87    und einmal geschriebene Ausgaben nicht mehr l  schen zu k  nnen  Die Beweisprinzipien  aus Abschnitt B 8 lerfordern diese Eigenschaf
29.  Typ des Kanals f bleibt dabei noch unspezi              fiziert        4 1  MODIFIKATION DER SCHNITTSTELLE 79    Eine Erweiterung der syntaktischen Schnittstelle soll unabh  ngig von einer Verhal   tens  nderung geschehen  Da sich die Typen der Kan  le ver  ndert haben  muss auch  die verhaltensbeschreibende Relation angepa  t werden  aber in einer Weise  die das  Verhalten nicht wesentlich ver  ndert  Wir m  ssen nun also definieren  welche an die  neue Schnittstelle angepa  te Relation wir als das    im wesentlichen gleiche    Verhalten  interpretieren  Ausgehend von der existierenden  auf die unmodifizierte Schnittstelle  bezogene Relation soll die angepa  te Verhaltensrelation folgende Eigenschaften aufwei   sen     e Die Eingabe   ber neue Kan  le soll ignoriert werden  also keinen Einflu   auf das  an den alten Ausgabekan  len sichtbare Ausgabeverhalten haben  Das Verhalten  darf nur abh  ngen von den Eingaben auf den urspr  nglichen  bereits vorhandenen  Kan  len     e Neue Nachrichten auf bereits vorhandenen Kan  len werden ignoriert     e Auf neuen Ausgabekan  len d  rfen beliebige Nachrichten  des passenden Typs   gesendet werden  Diese d  rfen zwar auch von den Eingaben an neuen Kan  len  abh  ngen  m  ssen es aber nicht     e Auf typerweiterten Ausgabekan  len werden nur Nachrichten vom urspr  nglichen  Typ gesendet     Ein derartiges in seiner Schnittstelle erweitertes und im Verhalten angepa  tes System  kann damit in der gleichen Umgebung eingesetzt werden wie
30.  Umgebung dies nicht  mit ihren bereits gesendeten Nachrichten tun kann  F  r alle Transitionen d  rfen die  Belegungen der i und o also nur l  nger werden  wie in der zweiten Zeile in  d  formali   siert  Schlie  lich d  rfen die Transitionen des Systems nicht das Verhalten der Umgebung  einschr  nken     gefordert in  e   Ein Berechnungsschritt darf nicht verbunden sein mit  einer spezifischen Verl  ngerung der Eingabe  sondern muss beliebige Verl  ngerungen  zulassen  Entsprechende Transitionen m  ssen also in T mit enthalten sein        F  r alle Eingabestr  me gilt jederzeit 7   E i  wie durch Induktion leicht zu zeigen ist   Initial gilt mit 7        die Aussage trivial  und f  r jeden Schritt mit  a  8      T gilt  aufgrund von  d  sofort B i   E a i C    i  Wir k  nnen daher den ungelesenen Teil eines  Eingabestromes definieren als i  durch die Forderung                i i   it  Die Umgebungstransitionen lassen alle kontrollierten Variablen eines Systems unver   n   dert  k  nnen jedoch die Eingabestr  me beliebig verl  ngern  Damit kann ein System f  r  jeden Eingabekanal jeden beliebigen Eingabestrom erzeugen  Damit wird sichergestellt   dass in der Menge der Abl  ufe  vgl  DefinitionBI7  wirklich f  r alle Eingaben Reaktionen  definiert werden     Ein Zustand eines Transitionssystems besteht aus einer Belegung a     VAL  die den Va   riablen aus JZU OU A Werte zuweist  Die Darstellung eines Zustandes ist nicht eindeutig   da es beliebig viele andere Belegungen gibt
31.  Verst  rkung einer Aussage  erm  glichen      Der Einfachheit halber haben wir die Fortschrittseigenschaft mehr als n  tig abgeschw  cht  und  haben nur gezeigt  dass die Ausgabe verl  ngert wird  wenn k  lt  min  t1   12  ist  Hat sich das System    verm  ge der Wahl eines c aber f  r einen Kanal entschieden  so muss k nur k  rzer als der entsprechende  Eingabestrom sein     5 8  ZUSAMMENFASSUNG UND DISKUSSION 153    Allerdings kann die Beweisanpassung im allgemeinen nicht automatisch erfolgen  Be   reits die Erstellung eines Diagramms f  r das unmodifizierte System erfordert ein Ver   st  ndnis seiner Funktionsweise  so dass auch die Anpassung Einsicht und Kreativit  t  erfordert  Die Anpassung eines Systems und der Beweisdiagramme ist eine komplexe  Aufgabe  Fehlertransitionen k  nnen teilweise durch weitere hinzuzuf  gende Modifika   tionen wieder unsch  dlich gemacht werden  Diese haben aber auf die beiden Diagramm   arten unterschiedliche Auswirkungen  So k  nnen beispielsweise durch neue Transitionen  Fortschrittseigenschaften einfach wieder g  ltig gemacht werden  wobei aber wiederum  Invarianten ihre G  ltigkeit verlieren k  nnen     Das F  hren von Beweisen mit Hilfe von Diagrammen ist in einem Entwicklungsproze    besonders dann hilfreich und gewinnbringend einzusetzen  wenn es durch ein Werkzeug  unterst  tzt wird  In  T3  wird dies vorbereitet  Ein Werkzeug sollte es erm  glichen   Beweisdiagramme zu erstellen  die implizierten Beweisverpflichtungen zu generiere
32.  Z 5Juntersuchen  Die Transitio   nen T   bzw  T   werden dort so eingeschr  nkt  dass sie nur f  r c   1 oder f  r c   2 schaltbereit  sind  Im Knoten     ist dazu keine Information verf  gbar  so dass die erforderliche Schaltbe   reitschaft in diesem Knoten nicht nachgewiesen werden kann  Wir spalten diesen Knoten auf  in drei Knoten  die disjunkten F  llen entsprechen  Das zugeh  rige Diagramm ist in Abbildung  5 10  dargestellt und hat die identische Aussage wie das Diagramm in B 8  Dabei beschreibt      wieder das Pr  dikat    9     0  k  k  lt   i    iz2    Zudem sind bereits die   berg  nge der neuen Transitionen von 73 und 74 eingetragen  Diese  legen den Wert von c auf 1 oder 2 fest und sind auch nur genau dann schaltbereit  wenn c noch  keinen dieser Werte hat     Wir modifizieren nun die Transitionen zu r  und 75  Durch die st  rkeren Vorbedingungen k  nnen  einige Kanten gel  scht werden  da rj nur im linken oberen Knoten und 73 nur im rechten Knoten  schaltbereit ist  Dennoch ist damit kein g  ltiges Diagramm erreicht  da die Schaltbereitschaft  von 7  und 73 nicht nachgewiesen werden kann  Wir setzen hier lediglich voraus  dass die Anzahl  der bisherigen Ausgaben unterhalb der Anzahl der Eingaben an beiden Eingabekan  len liegt   Daraus kann jedoch nicht geschlossen werden  dass an einem der beiden Kan  le noch Nachrichten  vorhanden sind  Die behauptete Aussage ist f  r das modifizierte System auch tats  chlich nicht    152 KAPITEL 5  METHODISCHER UMGANG MIT FE
33.  anhand von Beispielen veranschau   licht     Zur Formalisierung von Fehlern haben wir in Kapitel  4  die sogenannten Modi   fikationen M eingef  hrt  Mit einer Modifikation wird der Unterschied zwischen  einem System S und einer modifizierten Version SAM des Systems beschrieben     Mit   als einer Beschreibung des Soll Systems und SAM als Ist System ist die Mo   difikation M eine formale Charakterisierung eines Fehlers  der eine Abweichung  eines Soll vom Ist darstellt  Damit eignen sich Modifikationen hervorragend zur  Formalisierung von Fehlern     Zur Darstellung konkreter Modifikationen haben wir drei verschiedene Beschrei   bungstechniken vorgestellt  Die Modifikationen von Black Box Spezifikationen   Abschnitt E2 2   die Modifikationen von Transitionssystemen  Abschnitt   2 3     6 1  BEITRAG DIESER ARBEIT 159    und Modifikationskomponenten  Abschnitt    2 4   Damit k  nnen Fehler auf ver   schiedenen Abstraktionsniveaus beschrieben werden     Im Gegensatz zu fehlermodellierenden Techniken aus anderen formalen Ans  tzen  k  nnen unsere Modifikationen sowohl Verst  rkungen von Eigenschaften als auch  Abschw  chungen bzw  die Entfernung als auch das Erg  nzen von Transitionen  beschreiben  Sie sind damit in ihrer Ausdruckskraft sehr allgemein und k  nnen  nicht nur f  r Fehler  sondern auch zur Formalisierung intendierter   nderungen  wie f  r Updates oder Patches von Systemen verwendet werden     Den Modifikationsbegriff verwenden wir in Kapitel   3 als Grundlage zur f
34.  beispielsweise in  89   43   66   werden zwei m  gliche kausale Zusam   menh  nge zwischen den drei Fehlerbegriffen angesprochen     e Eine Fehlerursache bewirkt einen Fehlerzustand     e Ein Fehlerzustand f  hrt zu einem Versagen     In beiden F  llen sind die Konsequenzen m  glich  aber nicht zwingend  Eine Fehlerur   sache kann  muss aber nicht zu einem Fehlerzustand f  hren  Beispielsweise mu   ein     bug    in einem Programm nicht zu einem falschen Wert f  hren  wenn der fehlerhafte  Programmteil nicht ausgef  hrt wird  oder in einem konkreten Ablauf keine Folgen zeigt   Auch ein Fehlerzustand mu   nicht zu einem sichtbaren Ausfall f  hren  wenn  wie oben  schon erw  hnt  ein falscher Wert nie gelesen wird  oder vor dem Lesen durch einen kor   rekten Wert   berschrieben wird  Techniken der Fehlermaskierung und Fehlertoleranz  dienen genau dazu  diesen Kausalit  tszusammenhang zu durchbrechen     Die Zusammenh  nge der Kausalit  ten der drei eingef  hrten Begriffe sollen an einem  Beispiel erl  utert werden  Gehen wir aus von einem System  das entsprechend einem  Design  also einem Bauplan aus Komponenten zusammengesetzt ist  Im Design sei ein  Fehler enthalten  der eine mangelhafte Interaktion zweier Komponenten bewirkt  In  einem Ablauf f  hrt dies zu einer inkonsistenten Belegung von Variablen dieser beiden  Komponenten  Es liegt also ein Fehlzustand des Systems vor  Es kann sein  dass dieser  Fehlzustand nur erkennbar ist  wenn der Gesamtzustand betrachtet wird  aus
35.  ckt  die wir im Verlauf der Arbeit noch oft verwenden  werden     Notationelle Konvention Wir gehen f  r eine vereinfachte Notation f  r Charakte   risierungen von Verhaltensrelationen von nur einem Eingabekanal und einem Ausgabe   kanal aus  und identifizieren den Bezeichner f  r einen Kanal mit dem Strom  der auf  ihm   bertragen wird     44 KAPITEL 3  FORMALES SYSTEMMODELL    Wir w  hlen also f  r die Notation f  r die Str  me auf dem Eingabekanal die Bezeichnung  i  und f  r Str  me auf dem Ausgabekanal o  Damit vereinfacht sich beispielsweise der  Ausdruck    Vz     type t1          n     type in            zu einem kurzen  Vie     Die Forderung der Linkstotalit  t m    te ausf  hrlich notiert werden als    Vz     type i1          2n     type in         Iy       type 01          Ym     type Om         ee le  ER       Wie im Beispiel bereits angedeutet  enth  lt eine verhaltensbeschreibende Relation im  allgemeinen unendlich viele Tupel  wobei bereits ein einzelnes Tupel unendlich lange  Str  me enthalten kann  Daher kann eine konkrete Relation nicht durch explizite Auf   listung angegeben werden  was aber auch im Fall von endlichen Relationen keine an   gemessene Technik w  re  In den n  chsten Abschnitten werden wir Formeln  Abschnitt  B 5  und Diagramme  Abschnitt B 6  als geeignetere Beschreibungstechniken angeben     3 5 Black Box Spezifikationen    Wie wir im vorherigen Abschnitt gesehen haben  l    t sich das Verhalten eines Systems  abstrakt als eine Relation   b
36.  damit die  Eigenschaften des Ein  Ausgabeverhaltens unmittelbar beschreibt  Ein Transitionssys   tem gibt dagegen ein Verhalten operationell an und enth  lt keine unmittelbaren Aussa   gen   ber die Eigenschaften des Systemverhaltens  An der Transitionsmenge der m  gli   chen Einzelschritte ist das Verhalten  das daraus entstehen k  nnte  unter Umst  nden  schwer erkennbar  Dennoch ist man an der Verifikation von Eigenschaften der Abl  ufe  von Transitionssystemen interessiert  da sich damit ein Zusammenhang zwischen den  beiden Beschreibungstechniken herstellen l    t     Wir werden im folgenden mit den Invarianten und den Fortschrittseigenschaften zwei  Klassen von Eigenschaften der Transitionssysteme vorstellen  die mit den bekannten  Sicherheitseigenschaften beziehungsweise Lebendigkeitseigenschaften  diese werden vor   gestellt in  I   ein Literatur  berblick findet sich in  40   eng verwandt sind  Daraufhin  werden wir die Technik der Verifikationsdiagramme pr  sentieren  die sich eignet  forma   le Beweise auf abstraktem Niveau intuitiv darzustellen  Eine ausf  hrliche Behandlung  dieser Themen findet sich in  10   3      3 8 1 Eigenschaften von Transitionssystemen    Die Eigenschaft P eines Transitionssystems beschreiben wir durch ein Pr  dikat P  Weist  ein System S ein Pr  dikat P auf  so notieren wir dies als    SIF P    Wir sind hier nicht an statischen Eigenschaften eines Systems interessiert  wie beispiels   weise die Zahl der Transitionen  den Grad von Nichtde
37.  das  gar keine Ausgaben mehr erzeugt  Ist der Totalausfall erkennbar  kann dies mit  fail stop failure bezeichnet werden  Ist der Ausfall nicht unmittelbar erkennbar   sondern sind eigene Mechanismen au  erhalb der ausgefallenen Komponente n  tig  wie beispielsweise Timer  so spricht man von fail silent  oder crash Versagen  Ist  nach einem Totalausfall ein Neustart m  glich  so kann im Falle eines pause crash  failure das System in dem Zustand seine Aktivit  t fortsetzen  in dem das Versa   gen auftrat  oder einem Zustand kurz vor diesem   Startet das System ganz neu  im Grundzustand  also mit v  lligem Informationsverlust  nennt man dies amne   sia crash failure  F  hren die Auswirkungen eines Versagens zu einer Inkonsistenz  von Daten im System  wird ein Fehler corrupting genannt  Die  gravierendste     2 1  FEHLER 17    Klasse der sogenannten byzantine failures beschreibt ein chaotisches Versagen   bei dem beliebiges Verhalten m  glich wird  also keinerlei Information   ber das  Systemverhalten mehr verf  gbar ist     Auswirkungen Die Auswirkungen von Versagen k  nnen  wie Fehler  bewertet werden  nach ihrem Schweregrad  und beispielsweise in harmlos  oder unkritisch   kritisch  und katastrophal eingestuft werden  In komponierten Systemen ist es interessant   die Auswirkungen des Versagens von Komponenten auf das Gesamtverhalten zu  untersuchen  Dazu muss es m  glich sein  aus dem Verhalten von Komponenten  und der Kenntnis des Systemdesigns das Verhalten des Gesamtsyste
38.  das urspr  ngliche Sys   tem  ohne ein neues Verhalten zu erzeugen  Die genannten Anforderungen sind in der  folgenden Definition reflektiert     Definition 4 2 Verhaltensgleichheit bei ver  nderter Schnittstelle    Sei durch die Relation R das Verhalten eines Systems mit der Schnittstelle  I  O  spe   zifiziert  d h     R C typeli   x    x type in      x  type 01     x     type om        Sei ferner  T      eine erweiterte Schnittstelle mit k neuen Eingabe  und l neuen Aus   gabekan  len  Die Relation R vom Typ       C type h     x    x type in     x type ingi    x    x typelin r      x    type  01     x    x type   m     x type   m 1   x    x type Om 1        hei  t die verhaltensgleiche Relation zu R und ist definiert durch     OBERE ER ERLERNT eR   def   type  41 O2  Hg type in D amp n  Yl  Ym  ER                80 KAPITEL 4  FORMALE MODELLIERUNG VON FEHLERN    In der Definition wurden entgegen der Konvention die Kanalnamen und die Nachrichten   str  me nicht mit den gleichen Variablen bezeichnet  da dies zu verwirrenden Ausdr  cken  wie type i   i gef  hrt h  tte  Stattdessen wurden die neuen freien Variablen x und y  zur Repr  sentation der Ein  und Ausgabestr  me verwendet  Wir veranschaulichen die  Definition an einem Beispiel     Beispiel 4 2 Verhaltensgleichheit von Merge    Betrachten wir erneut die Komponente Merge mit der ver  nderten Schnittstelle  Das konkrete  Verhalten          d    high  di  di      ia    d2  dh  high    6    d    do  di  di     db   f      
39.  dem hier vorgestellten Systemmodell abst  tzen     Eine detailliertere Beschreibung von Focus findet sich in BI   9   Weitere Literatur  aus dem Projektumfeld zusammen mit Anwendungen von Focus ist in  25  aufgef  hrt   Die Beweiskonzepte und  regeln sind ausf  hrlich in  TO   12  vorgestellt  und  0  TI   enth  lt eine Beschreibung der Verwendung von Verifikationsdiagrammen in Kontext  von FOCUS     3 1   berblick    Ein System ist     im Sinne von FOCUS   eine von der Umgebung abgegrenzte Einheit  die  durch eine Definition ihrer Schnittstelle zur Umgebung und ihres Verhaltens vollst  ndig  charakterisiert werden kann     Die Schnittstelle besteht aus einer Menge von Kanalnamen  Ein Kanal ist eine Kommu   nikationsverbindung    ber die Nachrichten unidirektional  also in eine Richtung flie  en    37    38 KAPITEL 3  FORMALES SYSTEMMODELL    k  nnen  Einem Kanal ist ein Typ zugeordnet als eine Menge von Nachrichten  die auf  diesem Kanal gesendet und empfangen werden k  nnen     Das Verhalten wird durch eine Relation zwischen Eingabe und Ausgabe dargestellt  Ein   und Ausgaben werden durch Nachrichtenstr  me beschrieben  die den Kan  len zugeord   net werden  Ein Strom ist eine  m  glicherweise unendliche  Sequenz von Nachrichten   die die gesamte Kommunikationsgeschichte der Lebenszeit eines Systems beschreibt     Ein System ist typischerweise wieder aus Komponenten zusammengesetzt  Diese Kom   ponenten sind wiederum eigenst  ndige Systeme mit Schnittstelle und Verhalten  
40.  den  Eingaben an das System und den Ausgaben  mit denen das System auf erstere reagiert   Um ein konkretes Verhalten anzugeben  m  ssen wir also f  r jede m  gliche Eingabe  definieren  mit welcher Ausgabe das System darauf reagieren wird     Im allgemeinen h  ngt diese Reaktion nicht nur von einer einzelnen Nachricht in der  Eingabe zu einem bestimmten Zeitpunkt ab  sondern auch von der gesamten Vorge   schichte  also den zuvor bereits empfangenen und verarbeiteten Nachrichten  So h  ngt  beispielsweise die Reaktion eines Lesebefehls an einen Speicher davon ab  welche Daten  vorher in den Speicher geschrieben wurden  Eine derartige Information wird   blicher   weise in einem Zustand des Systems gespeichert  Da wir Zust  nde eines Systems aber   vorerst  nicht modellieren wollen  setzen wir komplette Eingabegeschichten mit Aus   gabegeschichten in Beziehung  Die Pr  fixe der Kommunikationsgeschichten lassen sich  als abstrakte Repr  sentationen von Zust  nden interpretieren     Formal k  nnen wir die Beziehung von Ein  und Ausgabegeschichten ausdr  cken durch  eine Relation R  die ganze Eingabestr  me und Ausgabestr  me zueinander in Beziehung    42 KAPITEL 3  FORMALES SYSTEMMODELL              di  di  di          Merge     d d  di     ds   2  9  93          Abbildung 3 2  Verhalten von Merge  Beispiel     setzt  Mit n Eingabekan  len  i1      in  und m Ausgabekan  len  01      Om  eines  Systems ergibt sich R formal als eine Relation vom Typ    R C type i     x    type in  
41.  der Anwendung der  Modifikationen M   und Ma keine Auswirkung auf das Resultat hat  und identisch ist  mit dem System  das durch die Kombination beider modifiziert wurde      BAM   AMa     A Mi  M2       AM2 AM     Dies wird einfach gezeigt unter Ausnutzung der Annahmen  die die   quivalenzen Ph A  3  Ph und 6  APh  amp  OF implizieren        AM  AM2          A B   V B    A 33  V O4     P A PL A 87  Vv  OL A 64  v OF        A  Bh A       V  BF V 04     Oa    b  Bh     04             A M    M2      A M2  M       ba  O   83     04  h          A  04 104  V  0  V Of        1 02  A OL  v  6   A BL  v bl          A      V 04  A Oh  V Of     PAM2 AM                 Die Forderung der Unabh  ngigkeit 64   gt  6    und umgekehrt  besagt durch Ausschlu    des Falles     A         dass durch Abschw  chung der Spezifikation durch eine der  beiden Modifikationen ein neu gestattetes Verhalten nicht im Widerspruch zur Eigen   schaft stehen darf  die durch die jeweils andere Modifikation eingefordert wird  Eine    4 5  EIGENSCHAFTEN VON MODIFIKATIONEN 105    neutrale Modifikation  true  false  ist immer unabh  ngig von einer beliebigen anderen  Modifikation  da false  gt  p und p   gt  true immer gelten     Modifikationen von Transitionssystemen lassen sich kombinieren  indem wir die Tran   sitionen  die mittels zweier Kombinationen hinzugef  gt  bzw  entfernt  werden  auf  einmal hinzuf  gen  bzw  entfernen   Wir verwenden wieder den Operator    der damit    berladen wird     Definition 4 1
42.  der Sicht  der einzelnen Komponenten ist der Fehlerzustand unter Umst  nden nicht erkennbar  Im  weiteren Ablauf des Systems k  nnen die inkonsistenten Werte schlie  lich zu Ausgaben  des Systems f  hren  die es korrekterweise nicht h  tte zeigen d  rfen  In diesem Beispiel  hat der Designfehler zu einem Fehlzustand gef  hrt  der ein Versagen nach sich zog     2 1 2 Klassifikationen    Die im vorigen Abschnitt beschriebenen Fehlerbegriffe sind sehr allgemein  und ihre  konkreten Auspr  gungen in konkreten Systemen k  nnen sehr verschiedenartige Eigen     14 KAPITEL 2  DER FEHLERBEGRIFF    schaften aufweisen  Wir werden in diesem Abschnitt die Fehlerursachen und Versagen  klassifizieren  um so das Spektrum dieser Begriffe aufzuzeigen und eine Strukturie   rungsm  glichkeit anzubieten     Eine derartige Klassifizierung kann helfen  einen vorliegenden Fehler und seine Eigen   schaften genauer zu beschreiben und bestimmten Fehlerklassen geeignete Umgangsm  g   lichkeiten zuzuordnen     Klassifikation von Fehlerursachen    Eine Fehlerursache  im Sinne von fault  ist  wie bereits beschrieben  der Unterschied  eines Systems von einer als korrekt definierten Fassung  Dieser Unterschied kann ver   schiedenste Charakteristika aufweisen  von denen wir hier einige angeben wollen  Ist eine  Fehlerursache in einem System bekannt  so sollte man in der Lage sein  diese gem      der folgenden Kriterien einordnen zu k  nnen  Die angegebene Klassifizierung fa  t die  Kriterien zusammen  wie si
43.  durch diese Transition konsumiert   also in if aufgenommen  und auch auf o ausgeben  Die n  chsten Zeilen stellen sicher  dass  keine Nachrichten von ia konsumiert werden  die Umgebung aber im gleichen Schritt beliebige  Nachrichten an Merge schicken darf  Das Lesen einer Nachricht von i2 wird durch T2 analog  definiert                 Transition 7  ist genau dann schaltbereit  wenn eine Nachricht auf i  vorliegt     In den n  chsten beiden Abschnitten werden wir kompaktere graphische und tabella   rische Beschreibungstechniken f  r Transitionen angeben  bei denen auf die explizite  Aufnahme von Aussagen   ber unver  nderte Werte oder die Handlungsfreiheit der Um   gebung verzichtet werden kann     Die Attraktivit  t von Transitionsystemen liegt in ihrer abstrakten Formalisierung von  Systemen bei gleichzeitiger Darstellung von operationellem Verhalten  Um einem Sys   tem ein Verhalten zuordnen zu k  nnen  definieren wir die Abl  ufe eines Systems     Definition 3 7 Ablauf    Sei ein Transitionssystem S    I  O  A  Y  T  gegeben  Ein Ablauf    ist eine unendliche  Sequenz von Zust  nden des Systems    f   a  B  Y     mit folgenden Eigenschaften     e Das System startet in einem Initialzustand  also    EIET    52 KAPITEL 3  FORMALES SYSTEMMODELL    e Die   berg  nge zwischen zwei in einem Ablauf aufeinanderfolgenden Zust  nden  sind zul  ssige Transitionen     VjeNe    amp j  amp  G  1  e TUT     e Sind in Zust  nden mehrere Transitionen schaltbereit  so geschieht ihre Auswah
44.  ein  Modul die geforderte Funktionalit  t  Versagt dieses Modul  wird dies durch eine Fehler   kennungskomponente an den Umschalter signalisiert  der dann nicht mehr die Ausgaben  des defekten ersten Moduls  sondern des zweiten Moduls an die Umgebung weiterleitet   Varianten und Verallgemeinerungen finden sich wieder in  66      Im Gegensatz zu Hardwarefehlern sind Softwarefehler in jedem Fall permanente Feh   ler  die im Design eines System lokalisiert sind  Repliziert man Software  so repliziert  man auch unweigerlich die darin enthaltenen Fehler  Techniken wir Triple Modular  Redundancy oder Standby Spares sind bei Softwarefehlern demzufolge nicht sinnvoll  einsetzbar  Es gibt aber   hnliche Techniken  die auf Diversifikation von Software beru   hen  und von denen wir hier Recovery Blocks und N Versionen Programmierung kurz  beschreiben  Sie basieren auf der Grundidee  verschiedene Versionen von Software zu  verwenden  Beide Techniken und ihr Vergleich sind ausf  hrlich in  44  58  diskutiert     Recovery Blocks Das Konzept der Recovery Blocks basiert auf verschiedenen Ver   sionen von Software und einem sogenannten Akzeptanztest  Dieser Test muss in der  Lage sein  die Ausgabe einer Komponente auf ihre Korrektheit oder Plausibilit  t zu    berpr  fen  Wird das Ergebnis eines Ablaufs f  r ung  ltig erkl  rt  so wird es verworfen   das System in einen Startzustand zur  ckgesetzt  also ein recovery durchgef  hrt  und  eine alternative Version gestartet  Dieser Vorgang l    
45.  ein System in einer Art und Weise  zu modifizieren  dass es auch in einer fehlerhaften Umgebung noch weitgehend sinn   voll  d h  auf definierbare Weise reagiert  Wir wollen also die Robustheit eines Systems  erh  hen     Wir werden im folgenden diskutieren  wie Entwicklungsschritte zur Erh  hung der Ro   bustheit formal in unserem Systemmodell dargestellt werden k  nnen  Dazu unterschei   den wir wie in Kapitel   amp  6 nach expliziten und impliziten Umgebungsannahmen     5 6 1 Explizite Umgebungsannahmen    Sind die Annahmen an eine Systemumgebung explizit formuliert  so k  nnen sie durch  ein Pr  dikat A  mit freien Variablen aus    dargestellt werden  Das Verhalten der  Komponente selbst wird im Rahmen von A G Spezifikationen dann durch ein Pr  dikat  G repr  sentiert     Fehler in der Umgebung f  hren in diesem Kontext zu Eingabestr  men  die die An   nahme A nicht erf  llen  Typischerweise interessiert man sich nicht f  r alle denkbaren  Fehler  die sich durch eine Negation von A charakterisieren lie  en  sondern nur f  r eine  gewisse Teilmenge dieser  f  r die die Systemrobustheit erh  ht werden soll  Wir k  nnen  diese gew  hlte Teilmenge der externen Fehler mit Hilfe einer Abschw  chung A    der  Umgebungsannahme formulieren  f  r die also A  gt  A    gilt     Das Verhalten des Systems wollen wir nun ver  ndern zu G     so dass es auch bei Ein   gaben  die zwar A     aber nicht mehr A erf  llen  ein definiertes Verhalten zeigt  Wel   ches konkrete Verhalten ein Ent
46.  ein System zu einem fehlerhaften macht     Ein Fehler muss nicht unbedingt einfach zu lokalisieren sein  wie zum Beispiel ein Tipp   fehler  ein falsches Datum oder ein verfehlter Prozeduraufruf in einem Programmcode   Ein Entwurfsfehler  inkompatible Schnittstellen oder inkonsistente Eigenschaften eines  Systems k  nnen zu einer informellen Bewertung wie    Das System hat einen Fehler     f  hren  ohne dass man auf den Fehler unmittelbar    zeigen    kann      2    Der Begriff der Modifikation wurde unter anderem dadurch motiviert  derartige Abwei   chungen zu repr  sentieren  Wir definieren Fehler daher direkt als Modifikationen     Definition 4 7 Fehler    Ein Fehler eines fehlerbehafteten Systems SAM bez  glich einer als korrekt definierten  Spezifikation S wird beschrieben durch die Modifikation M     Diese Definition charakterisiert den Fehler eines Systems SAM  also f  r ein System   das den Fehler bereits explizit in seiner Beschreibung enth  lt  F  r ein fehlerbehaftetes  System S     das relativ zu einer Spezifikation S einen Fehler aufweist  muss dieser Fehler  erst gefunden werden  Der Fehler in      ist dann das  nicht notwendigerweise eindeutige   M  f  r das                S    SAM    gilt  Die Beschreibungstechnik spielt in Definition MIZ  keine Rolle  Fehler k  nnen also  insbesondere mit Black Box Spezifikationen  Transitionssystemen und Modifikations   komponenten beschrieben werden  Es sei bemerkt  dass wir nicht unterscheiden zwi   schen einem und mehrer
47.  einer Nachricht nicht vor dem Senden einer Nachricht geschieht     Da wir verteilte Systeme modellieren wollen  in denen die Nachrichten  bermitt   lung unterbrochen oder verz  gert sein kann  und da wir keine Annahmen   ber  die   bertragungszeiten machen wollen  ist die Wahl des asynchronen Modells  angemessen     Focus bietet alle Varianten von Systemmodellen an  Im gezeiteten Modell wird Zeit  durch spezielle Nachrichten modelliert  die den Fortschritt der Zeit repr  sentieren  Im  taktsynchronen Modell wird auf allen Kan  len jeweils    gleichzeitig    genau eine Nach   richt gelesen und geschrieben  Ist eine Komponente nicht bereit  eine Nachricht zu lesen   so mu   die Nachricht explizit gepuffert werden  In  PI  werden die alternativen Modelle   die Focus bietet  vorgestellt     Im n  chsten Kapitel werden wir das Systemmodell so erweitern  dass damit die Fehler  eines Systems modelliert werden k  nnen     74    KAPITEL 3  FORMALES SYSTEMMODELL    Kapitel 4    Formale Modellierung von  Fehlern    Nachdem im vorangegangenen Kapitel das Systemmodell vorgestellt wurde  wollen wir  dieses nun um neue Begriffe erweitern  die es uns erm  glichen  mit Fehlern von Syste   men explizit umzugehen  Selbstverst  ndlich sind auch Fehler nur ein Teil von Systemen  und ihrem Verhalten und k  nnten aufgrund der Allgemeinheit und Ausdruckskraft des  Systemmodells auch ohne die folgenden Begriffe modelliert werden  Allerdings verhel   fen vorbereitete Begriffsbildungen zu einem besser
48.  gbar w  re     Andererseits darf das Pr  dikat nicht zu stark sein  um nicht zu viele weitere Knoten  zu generieren  Es sollte eine geeignete Abstraktion des Ausnahmezustandes beschrei   ben  Wird beispielsweise eine Variable x  die immer nicht negativ sein sollte  durch  einen Fehler dekrementiert  obwohl sie schon den Wert 0 hat  so kann es g  nstiger sein   diesen Fall als x  lt  0 zu beschreiben und nicht etwas als x      1  Bei einer weiteren  Dekrementierung durch die Fehlertransition bleibt dieser Zustand erhalten und es wer   den nicht weitere generiert mit x      2  x      3  und so weiter  Die geeignete Wahl  der Pr  dikate kann nur mit Kreativit  t  Intuition und einem Verst  ndnis der Funkti   onsweise des Systems geschehen  wie dies schon f  r die Erstellung des urspr  nglichen  Beweisdiagramms n  tig war     Werden mit einer Modifikation sowohl Transitionen erg  nzt als auch entfernt  empfiehlt  es sich  bei der Anpassung eines Beweisdiagramms in folgender Reihenfolge vorzugehen     1  Zun  chst werden m  glichst viele Kanten und Knoten aus dem Diagramm entfernt     5 7  WIEDERVERWENDUNG VON BEWEISEN 147                            7 o  10   io         s 0 el 9    c  1 c      Abbildung 5 8  Modifiziertes Invariantendiagramm fiir Merge                      Die Pr  dikate in den verbleibenden Knoten werden maximal verst  rkt     2  Erst dann werden die neuen Transitionen zusammen mit den notwendigen neuen  Knoten hinzugef  gt     Auf diese Weise wird eine unn  tig
49.  hohe Anzahl von Knoten  Kanten und Beweisver   pflichtungen vermieden  Im folgenden Beispiel veranschaulichen wir die Auswirkung von  Modifikationen auf ein Beweisdiagramm     Beispiel 5 8 Anpassung des Invariantendiagramms von Merge    In Beispiel BITTJhaben wir mit Hilfe des Invariantendiagramms in Abbildung B 7  gezeigt  dass  Fo  HE   Hi    eine Invariante des Systems Merge aus Beispiel BJ6 ist  Wir wollen dieses Beweisdiagramm nun  an die in Beispiel MiB  definierte Modifikation M    FE  U E2  F  anpassen     Die Entfernung der Transitionen aus E   U Ey f  hrt zu einer Verst  rkung der Vor  und Nach   bedingungen von r   und 72  Wir nennen die ver  nderten Transitionen ry  und 7   die wir in  Beispiel  bereits definiert haben als    Name Pre Input Output Post  T  c 1 i a ola d  c    Ty c 2 i a ola d c    Das BeweisdiagrammB 7 bleibt mit diesen Transitionen g  ltig  Wir k  nnen die Pr  dikate aber  nun verst  rken  Die Transition r     stellt sicher  dass nach ihrer Ausf  hrung c   1 gilt  Da  der linke mittlere Knoten nur mit Hilfe dieser Transition erreicht werden kann  k  nnen wir  diese Eigenschaft dem Pr  dikat erg  nzen  Analog kann c   2 dem rechten mittleren Knoten  hinzugef  gt werden     Mit c   1 im linken Knoten ist es offensichtlich  dass Transition 73 in diesem Zustand nicht  mehr schaltbereit ist  da c   2 in der Vorbedingung enthalten ist  Diese Kante kann also entfernt  werden  Entsprechend wird die Kante vom rechten Knoten zum unteren Knoten gel  scht  
50.  ist     Definition 3 15 Schnittstellenverfeinerung    Seien zwei Systeme S   und Sy mit den Schnittstellen  I  O  bzw   T    O     gegeben  und  zwei Stromrelationen R   und Ra mit den Schnittstellen  I I   und  O  O      Das System  S ist eine Schnittstellenverfeinerung von S   bez  glich  R    Ra   notiert durch    91 on S2    wenn gilt          Vi     o o  i   0     Een   gt  Ji  0     i  7     E    Ry X  4 0      Sy A  0  0         Ro             Die Schnittstellenverfeinerung ist eine Verallgemeinerung der Verhaltensverfeinerung   Mit R   und Ra als Identit  tsrelation fallen die beiden Verfeinerungsbegriffe zusam   men  Die beiden Abstraktions  bzw  Repr  sentationsrelationen k  nnen wie gew  hnli   che Systeme mit den bereits vorgestellten Beschreibungstechniken spezifiziert werden     3 10  ENTWICKLUNGSPROZESS 69    In  5 rA BI  sind Varianten obiger Definitionen angegeben und Kriterien  die die  Kompositionalit  t sicherstellen sowie F  lle von Verfeinerungen ausschlie  en  die aus  praktischer Sicht nicht sinnvoll sind     Auf eine Darstellung der noch allgemeineren bedingten Verfeinerung verzichten wir  da  sie in dieser Arbeit keine Rolle spielen wird  Mit ihr ist es m  glich  zus  tzliche Be   dingungen an die Eingaben des Systems zu formulieren  unter denen eine Verfeinerung  vorliegt  Eine detaillierte Diskussion findet sich wieder in PT      3 9 3 Kompositionalitat    Eine wichtige Eigenschaft der Verfeinerungsbegriffe im Rahmen einer methodischen  Systementw
51.  noch andere Transitionen schaltbereit  k  nnen auch die   se gew  hlt werden  Nur bei permanenten Fehlern wird r  aufgrund der Fairness im  Ausf  hrungsmodell irgendwann einmal ausgef  hrt  Bei transienten Fehlern  also nur  vor  bergehender G  ltigkeit des fehlererkennenden Zustandspr  dikates Y  kann es pas   sieren  dass eine Fehlernachricht nie gesendet wird  Ferner ist es m  glich  dass eine  Fehlermeldung mehrfach ausgegeben wird  Wir wollen nun zwei verfeinerte Modellie   rungen f  r sofortiges Senden und f  r einmaliges Senden einer Fehlermeldung angeben     Unmittelbare Fehlermeldung Eine Fehlermeldung wird sofort ausgegeben  wenn  wir die Schaltbereitschaft anderer Transitionen bei erkanntem Fehler aufheben  Dies  geschieht durch Entfernen von    E     a  p    a   Y     Damit beschreibt M     rf   E U E    die Modifikation  die ein System bei erkanntem  Fehler sofort eine Fehlermeldung ausgeben l    t     Einmalige Fehlermeldung Soll eine Fehlermeldung nur einmal gesendet werden  so  darf r nur dann schaltbereit sein  wenn der Fehler noch nicht gemeldet wurde  Dazu  w  hlen wir eine neue boolesche Variable sent  die mit false initialisiert wird und verm  ge    Ey     a       a sent    B sent      a  3   a U A bY A B sent     von keiner anderen Transition ver  ndert wird  Nur wenn ein Fehlerzustand nicht mehr  vorliegt  was am   bergang von W zu false erkennbar ist  soll der Wert von sent wieder  auf den Initialwert gesetzt werden  Mit TF als    Name Pre Input Outpu
52.  nur einmal geschickt wird     Damit die Fehlermeldung unmittelbar erfolgt  verst  rken wir auf schematische Weise entspre   chend E   die Vorbedingungen der Transitionen  Insgesamt wird der Puffer  der die Fehler er   kennt und darauf sofort mit einer Fehlermeldung sowie einer einfachen Fehlerkorrektur reagiert   folgenderma  en spezifiziert     Name Pre Input Output Post   Ti  4  lt  N A q z i d     d    qyr  d  Az     z 1  T2  q4  gt 0A q z iR o ft q q  rtq Nz  z   1   T3  q  gt  0A  q z   q  rtq nz  z    Tf  q  2 _ o  fail gd qh2z         In einer Realisierung des Puffers wird die Fehlertransition 73 nat  rlich nicht realisiert  sie re              pr  sentiert nur das ungewollte  jedoch als unvermeidbar eingesch  tzte Fehlerverhalten        5 5 Fehlerkorrektur    Die fr  hzeitige Ber  cksichtigung und Modellierung von Fehlern bereits w  hrend der  Entwicklungszeit erm  glicht es  Ma  nahmen und Techniken zur Fehlerkorrektur in ein  System zu integrieren  die w  hrend der Laufzeit des Systems die Auswirkungen der Feh   ler verbergen oder zumindest eind  mmen  Wir geben hier zwei Techniken an  die sich  zur Fehlerkorrektur im Rahmen unseres Systemmodells eignen  Die Erg  nzung einer  korrigierenden Transitionsmenge und die Verwendung von korrigierenden Treiberkom   ponenten     5 5  FEHLERKORREKTUR 133    AW       i er m         a   b   c     Abbildung 5 4  Varianten korrigierender Transitionen    5 5 1 Erg  nzung von korrigierenden Transitionen    Ist ein Fehler erkannt  
53.  physikalische oder effizienz   bedingte Notwendigkeiten sein  und ebenso ein Mittel  die Komplexit  t eines Systems  durch eine Aufteilung in   berschaubarere Teile handhabbar zu machen  Beispielsweise  muss ein internationales Buchungssystem auf viele physikalische Standorte verteilt sein   und wird sinnvollerweise in logische Anwendungsmodule strukturiert     Die verteilten  reaktiven Systeme stellen also eine Systemklasse dar  die in der Praxis  eine relevante Rolle spielt  Die Entwicklung dieser Systeme stellt durch ihre inh  rente  Komplexit  t eine gro  e Herausforderung dar  so dass eine formale Unterst  tzung not   wendig oder zumindest lohnenswert ist  Das in Kapitel B  vorgestellte Systemmodell ist  f  r diese Klasse hervorragend geeignet     Fehler Fehler spielen in sehr vielf  ltiger Weise eine Rolle im Umfeld informationstech   nischer Systeme  Sie k  nnen in Erwartungen  Spezifikationen  Programmen  Teilkompo   nenten  lokal oder verteilt  in Hard  oder Software oder auch in Abl  ufen auftreten  Sie  sind unter Umst  nden nicht exakt lokalisierbar und nicht quantifizierbar  Sie k  nnen  einen statischen oder dynamischen Charakter haben  Mit Fehlern kann auf verschiedens   te Weise umgegangen werden  So k  nnen sie vermieden  ignoriert  erkannt  behandelt   gesucht  entfernt  gemeldet und toleriert werden     Die vielf  ltigen Interpretationen des Fehlerbegriffes haben jedoch eine Gemeinsamkeit   Ein Fehler ist immer nur relativ zu einer definierten Korrektheit 
54.  sehr einfach modellierbar  W  hrend  F die Transitionen enth  lt  die den R  cksprung beschreiben  wird durch E das Sys   tem daran gehindert  bei einem entdeckten Fehler unbeeinflu  t seine normale Aktivit  t  fortzusetzen     F     a 8  aE VABEYT   E     a 8  aE Y     Das System SAM mit M    E  F  spezifiziert damit ein System  das sich von S darin  unterscheidet  dass es bei entdecktem  durch Y beschriebenem  Fehler neu startet           5 5  FEHLERKORREKTUR 135    Erg  nzen einer Ausnahmebehandlung AbbildungB Ac  illustriert den allgemein   sten Fall einer Fehlerbehandlung  Nach der Entdeckung eines Fehlers wird eine Fehler   behandlung gestartet  die als eigenes Transitionssystem spezifiziert ist  Ist die Fehler   behandlung abgeschlossen  erfolgt ein R  cksprung in das urspr  ngliche System  Diese  Reaktion entspricht einer Ausnahmebehandlung  wie man sie aus Programmiersprachen  als exceptions kennt     Wir beschreiben eine Ausnahmebehandlung mit Hilfe einer Transitionsmenge C und  zwei Zustandspr  dikaten Entry und Exit  Das Pr  dikat Entry beschreibt die zu er   f  llende Startbedingung der Ausnahmebehandlung und umfa  t eine Auszeichnung des  Kontrollzustandes  in dem das System gestartet wird wie auch die Initialisierung von  lokalen Variablen  Exit charakterisiert die Zust  nde  von denen aus der R  cksprung  in das Normalsystem erfolgen darf  Wir zeichnen eine bislang noch nicht im System  verwendete Variable xp aus  mit der es m  glich ist  die Normaltransition
55.  sentiert  Zur besseren Unterscheidung haben wir hier neue Namen f  r die Komponen   ten und ihre Modifikationen eingef  hrt     Damit sind M  und M    korrespondierende Modifikationen bez  glich Merge  und Merge                    4 6 Fehler in der Systemumgebung    Mit dieser Arbeit wollen wir   wie bereits in Kapitel   motiviert   Methoden daf  r anbie   ten  wie Systeme schrittweise entwickelt werden k  nnen  ausgehend von einer Idealisie   rung des Systems bis zu einer realen Implementierung  also auch unter Ber  cksichtigung    4 6  FEHLER IN DER SYSTEMUMGEBUNG 113    m  glicher  zu erwartender Fehler  Mit den in diesem Kapitel bisher vorgestellten Begrif   fen k  nnen wir Modifikationen an der Schnittstelle und dem Verhalten von Systemen  durchf  hren  Unber  cksichtigt blieb dabei bislang die Umgebung der Systeme     Fehler k  nnen auch in der Systemumgebung auftreten  Zu viele oder zu wenige  zu  schnelle oder zu langsame bzw  inkonsistente Eingaben sind Beispiele  die es einem  System unm  glich machen k  nnen  seine Funktionalit  t zu erbringen  Derartige F  lle  lassen sich nicht durch eine Modifikation der Schnittstelle oder des Systemverhaltens  darstellen     Aufgrund der Linkstotalit  t der Verhaltensrelationen scheint ein Begriff des externen  Fehlers nicht sinnvoll zu sein  F  r jede Eingabe an ein System muss eine Ausgabe  definiert sein  Die Umgebung kann also keine irgendwie gearteten falschen Nachrichten   str  me an ein System schicken  Bei Black Box Sp
56.  tze ist es also m  glich  Fehler in den Anforderungen an ein System zu  formulieren  Dies scheint aber unvermeidbar  da man f  r eine formale Untersuchung  mit der damit erwarteten Pr  zision eine fixierte Grundlage haben muss  so wie jeder  Kalk  l von akzeptierten Axiomen und Schlussregeln ausgehen muss     Da alle genannten Ans  tze Fehler durch Transitionen beschreiben  die dem System hin   zugef  gt werden  bleibt das urspr  ngliche  fehlerfreie Verhalten immer als eine Verhal   tensvariante m  glich  Die Fehlertransitionen erweitern die M  glichkeiten durch Erg  nz   ung nichtdeterministisch ausw  hlbarer Alternativen  aber sie schr  nken das Verhalten  nie ein  Diese Ans  tze eignen sich also eher zur Modellierung tempor  rer  physikalischer  Fehler  die w  hrend der Laufzeit auftreten  und weniger f  r permanente Softwarefehler   bei denen beispielsweise eine Rechnung in jedem Ablauf falsch durchgef  hrt wird     Die vorgestellten Modelle sind geschlossene Systeme und unterscheiden nicht zwischen  einem Innen und einem Au  en eines Systems  Demzufolge ist es auch nicht m  glich   zwischen internen und externen Fehlern eines Systems zu unterscheiden entsprechend  der Lokalisierung von Fehlern aus Abschnitt  2 1 2  Ferner werden die Zusammenh  nge  von Fehlern in Komponenten und ihre Auswirkungen auf das Gesamtsystem nicht oder  nur oberfl  chlich untersucht     Alle formalen Modelle dienen vorwiegend einer grundlegenden Modellierung von Feh   lern und Fehlertoleranz i
57.  ver  ndert  so   ndern sich auch seine Eigenschaften  Eine wesentli   che Voraussetzung f  r den Umgang mit Modifikationen von bestehenden  verifizierten  Systemen ist also eine Vorgehensweise  mit der auch die entsprechenden Beweise an   gepasst werden k  nnen  Dazu haben wir Techniken vorgestellt  wie durch Diagramme  repr  sentierte Beweise an Modifikationen von Transitionssystemen und entsprechenden  Modifikationen ihrer Eigenschaften angepasst werden k  nnen  Mit den Ergebnissen aus   4 5 2  k  nnen damit Zusammenh  nge von Modifikationen im gesamten Entwicklungs   baum entsprechend Abbildung B II  hergestellt werden     Die in diesem Kapitel vorgestellten methodischen Hinweise sind gr    tenteils abstrakt  formuliert  um m  glichst unabh  ngig von konkreten Beschreibungstechniken die eigent   lichen  zugrundeliegenden Anforderungen auszudr  cken  Beispielsweise sind die Krite   rien eines fehlererkennenden Pr  dikates   ber Ausf  hrungen und die darin enthaltenen  Zust  nde formuliert  Es ist w  nschenswert  auch f  r ein konkretes System  das beispiels   weise durch Programmcode beschrieben ist  angepa  te Beschreibungstechniken zu fin   den und die in diesem Kapitel definierten Kriterien entsprechend umzusetzen  Manche  Modifikationen lassen sich in konkreten Programmiersprachen sogar trivial umsetzen   W  hrend beispielsweise nach Einf  hrung einer neuen Variable unter Umst  nden alle    5 8  ZUSAMMENFASSUNG UND DISKUSSION 155    Transitionen entfernt werden m  ssen
58.  verwendet werden                 DO  d    z         Da wir Eigenschaften mit Hilfe von Formeln definieren wollen  bedarf es entsprechender  Begriffe  die wie   blich charakterisiert werden     Definition 3 2 Variable  Belegungen  Formeln    Die Menge VAR bezeichnet die Menge aller Variablen  Jeder Variable v     VAR ist  ein Typ zugewiesen  Ein Typ ist eine Menge von Werten  die eine Variable annehmen  kann     Eine Belegung a weist jeder Variablen v einen Wert a v ihres Typs zu  Die Menge  aller Belegungen wird durch VAL bezeichnet     Zwei Belegungen stimmen auf einer Variablenmenge V   berein  wenn sie allen Varia   blen aus V jeweils den gleichen Wert zuweisen     a  p    Yve V e a v   b v    Zu zwei Belegungen bezeichnet Agree a  3   f  r agreement  die maximale Menge von  Variablen  auf denen die Belegungen a und D   bereinstimmen     Agree a  3  C VAR  mit    a Agree    3  B AM yV    C VAR ea v B   gt  V        Agree a   3     Eine Formel    ist ein  wohlgeformter  Ausdruck  der sich mit einer Belegung a zur  Interpretation der freien Variablen zu einem booleschen Wahrheitswert aus  true  false     40 KAPITEL 3  FORMALES SYSTEMMODELL    auswerten l    t  Wird    unter  amp  zu true ausgewertet  notieren wir dies als    ake          F  r eine Variablenmenge V bezeichnet V    die zu V disjunkte Variablenmenge  die alle  Variable aus V mit einem Strich versieht  also    Vi  v  veEV   Dabei stellen v und v    verschiedene Variablen dar  F  r eine Belegung a kann eine  Bel
59.  wir dann die   bersetzung Fehlerursache verwenden  wenn der Unterschied zu den bei   den anderen Bedeutungen betont werden soll  ansonsten vereinfacht Fehler     Wir beschreiben die drei Begriffe und ihre Zusammenh  nge zun  chst nur informell  wie  sie in oben genannter Literatur dargestellt werden und geben eine Klassifizierung an   die die verschiedenen Aspekte der Begriffe beleuchtet  Wir werden dann in Abschnitt  B T 3lauf der Basis eines einfachen  aber allgemeinen Systemmodells die Fehlerbegriffe  konkreter als Abweichungen eines Jst von einem Soll bez  glich verschiedener Aspekte  eines Systems charakterisieren und systematisch darstellen  Eine entsprechende formale  Definition dieser Begriffe werden wir schlie  lich in Kapitel 1 3  vorstellen     Failure    Ein  System   Versagen  engl  failure  liegt vor  wenn das Verhalten eines Systems nicht  das Verhalten ist  das in der Spezifikation des Systems gefordert wird  Ein Versagen  kann demnach nur w  hrend des Betriebes eines Systems auftreten  oder beim Versuch  seiner Inbetriebnahme   und auch nur dann festgestellt werden  Die potentielle An  bzw   Abwesenheit von Versagen macht letztendlich die Korrektheit eines Systems aus  Kann  man die Abwesenheit von Ausf  llen in allen Systemabl  ufen garantieren  so sind das  System und all seine Komponenten vollst  ndig korrekt oder auftretende  lokale  Fehler  beliebiger Auspr  gung k  nnen  auf maskierende Weise  toleriert werden     Der Begriff des Versagens eignet sich 
60.  wir dazu die Kombi   nationen von Modifikationen     4 4 2 Fehlertoleranz als D  mpfung  quantitativ     Wird ein System dem Einflu   von Fehlern ausgesetzt  so hat dies im allgemeinen Aus   wirkungen auf das Systemverhalten  Bei einem System  das Fehler nicht tolerieren kann   werden sich die Fehler auf sch  dliche Weise auf das Verhalten auswirken  Ist das System  dagegen fehlertolerant  werden die Auswirkungen abgeschw  cht und im Idealfall sogar  vollkommen maskiert     4 4  FEHLERTOLERANZ 101    Die Fehler  denen ein System S ausgesetzt sein kann  k  nnen sowohl innerhalb des Sys   tems  in einer Teilkomponente  als auch au  erhalb  in der Systemumgebung  lokalisiert  sein  Wir gehen im folgenden von einem zusammengesetzten System S   S1    S2 aus  und betrachten einen Fehler in S1  Dabei kann S   sowohl die Teilkomponente von S als  auch die Umgebung von Sa repr  sentieren  Mit unserem Formalismus k  nnen wir diesen  Fehler durch eine Modifikation Mj  explizit angeben  Die durch diesen Fehler bewirkte  Abweichung des Systemverhaltens kann durch eine Modifikation M von S formalisiert  werden  In Abschnitt  5 2  werden wir Techniken kennen lernen  mit denen M aus M    ermittelt werden kann  Es gilt dann    SAM    S1AM    8 5    Der Grad der Fehlertoleranz l    t sich quantifizieren  wenn ein Ma   f  r den Schweregrad  von Modifikationen definiert werden kann  Sei d eine Funktion  die einer Modifikation  eine entsprechende Ma  zahl zuordnet  Das System    kann dann als fe
61.  zwei Varianten vor  die sich an der Beschreibung der Umgebungsan   nahme orientieren     e Ist eine Umgebungsannahme durch eine Black Box Spezifikation A beschrieben   so steht uns mit den Modifikationen bereits ein Formalismus bereit  mit dem  Abschw  chungen beschrieben werden k  nnen  Beschr  nken wir uns also auf eine  Modifikation M      true        so kann damit ein Umgebungsfehler spezifiziert  werden     Ist die Annahme an die Umgebung durch eine Umgebungskomponente A definiert   so k  nnen wir diese durch eine Modifikation f  r Transitionssysteme M4        F   spezifizieren  die der Umgebung damit zus  tzliche Freiheiten in ihrem Verhalten  zugesteht      Im allgemeinen Fall h  tte diese Formel die Form A i1      in  01 3    Om      4 6  FEHLER IN DER SYSTEMUMGEBUNG 115    Wir haben uns in beiden F  llen beschr  nkt auf eine reine Abschw  chung des Systemver   haltens  lassen also weder eine Verst  rkung      noch das Entfernen von Transitionen in  A   ber ein nichtleeres E zu  Wir interessieren uns im Rahmen unseres idealen Entwick   lungsprozesses f  r die Verbesserung von Systemen  was im Kontext von Umgebungs   fehlern eine Erh  hung der Robustheit bedeutet  Ein System soll also trotz auftretender  Umgebungsfehler sinnvolles Verhalten aufweisen  Im Kapitel 6 werden wir die Anpas   sung von Systemen an Umgebungsfehler diskutieren     Selbstverst  ndlich kann es m  glich sein  auch die Annahmen an das Umgebungsverhal   ten verst  rken zu wollen  Werden im Rahmen e
62. 2 Kombination von Modifikationen von Transitionssystemen    Die Kombination zweier Modifikationen M   und Ma eines Transitionssystems wird  definiert durch    d   E1  Fi     E2  Fo  af    1 U Eo  F1 U F3                 Eine Unabh  ngigkeit von Modifikationen liegt dann vor  wenn vermieden wird  dass  eine Modifikation Transitionen erg  nzt  die von der anderen entfernt werden  Es gilt  dann die folgende Eigenschaft     Proposition 4 6 Unabh  ngigkeit von Modifikationen von Transitionssystemen    Der Operator   f  r Modifikationen von Transitionssystemen ist assoziativ und kommu   tativ  wie sich unmittelbar aus der Assoziativit  t und Kommutativit  t der Mengenver   einigung U ergibt     Unter der Voraussetzung  EnR 8  1   ENF   O   f  r Modifikationen M      E1  Fi  und Ma    Eo  F2  gilt   SAM   AMa   SA M   M2     SAM2 AM     Die Voraussetzung stellt sicher  dass Fy N Ey        Fy Ey  so dass  mit T als  Transitionsmenge von S  die Behauptung bewiesen wird durch     TAM  AM2      T E   UH       T  Fi    Fo  U  Fi   Fh   U F2     T    Z1 U E2   U  F1 U Fo      TA M     Ma    TA M  2   M        T      2 U F    U  F2 U Fi       T   E2    Z1  U  F2   Z1   U Fa      T     2  U F2    Z1  U Fi      TAM2 A M       Eo  U Fo    C C                Wir illustrieren die Notwendigkeit der Unabh  ngigkeitsforderung an folgendem Beispiel     106 KAPITEL 4  FORMALE MODELLIERUNG VON FEHLERN    Beispiel 4 9 Kombination von Modifikationen von Transitionssystemen    Wir betrachten die Kompone
63. 6 2 Tabellarische Darstellung    Werden Systeme sehr gro   und besitzen sie sehr viele Kontrollzust  nde  kann die gra   phische Darstellung in Diagrammen sehr untibersichtlich werden  In solchen Fallen kann  eine tabellarische Darstellung besser geeignet sein     Die Transitionen werden nach dem gleichen Muster wie bei der graphischen Darstellung  der Transitionssysteme notiert  Kontrollzust  nde m  ssen aber explizit aufgenommen  werden als eine Datenvariable  zum Beispiel      die als Werte die Namen der Kon   trollzust  nde annehmen kann  Ihre   berg  nge m  ssen explizit angegeben werden  Die  tabellarische Darstellung wird auf analoge Weise in die formale Darstellung   bersetzt  wie dies bereits bei der graphischen Darstellung m  glich ist     Es sind auch Mischformen beider Darstellungen gebr  uchlich  Dabei werden in der  graphischen Darstellung die Transitionen nur mit ihrem Namen beschriftet  und die vier  Bestandteile in einer Tabelle angegeben  Damit kann die Lesbarkeit gro  er Diagramme  erh  ht werden     bei Erhalt einer intuitiven Darstellung des Kontrollflusses     Beispiel 3 7 Wir stellen die Transitionen von Merge als Tabelle auf offensichtliche Weise  folgendermassen dar     Name Pre Input Output Post    71   i d old    T2   ig  d old                  In Kapitel  4  werden wir weitere Beispiele der Verwendung von Tabellen zur Beschrei   bung von Fehlern prasentieren     3 7  KOMPOSITION 55    3 7 Komposition    Komplexere Systeme werden typischerweise aus 
64. 8   34   gezeigt     Die Knoten stellen wir durch Ovale dar  die mit dem Namen von Kontrollzust  nden  beschriftet werden  Der oder die Startknoten werden mit einem schwarzen Kreis mar   kiert  Die Beschriftung der Transitionskanten besteht aus vier Bestandteilen und hat  die Form     Pre  Inputs  gt  Outputs  Post   Das Eingabemuster Inputs besteht aus einer Liste von Ausdr  cken der Gestalt  i d    mit 7     I und d als transitionslokaler Variable oder Konstante vom Typ type i   Eine  Transition kann nur schalten  wenn die aktuellen Eingaben zu diesem Eingabemuster  passen  also auf den entsprechenden Eingabekan  len tats  chlich Nachrichten vorliegen   und diese entweder identisch sind mit der Konstante  oder die  f  r eine sp  tere Bezug   nahme  der transitionslokalen Variablen zugewiesen werden  Eine weitere Bedingung  an die Schaltbereitschaft ist die G  ltigkeit des Pr  dikates Pre  welches Datenvariablen  und auch die transitionslokalen Variablen in free Pre  enthalten darf  In Pre k  nnen  also weitere Vorbedingungen formuliert werden     Wird eine Transition ausgef  hrt  so produziert sie Ausgaben entsprechend der Liste  Outputs von Ausdr  cken der Form    olexp    mit o als Name eines Ausgabekanals o     O und exp als Ausdruck fiir den Wert  der  auf diesem Kanal gesendet wird  In Post wird die Nachbedingung formuliert  die ty   pischerweise den Datenvariablen neue Werte zuweist  und die daher die Variablen des  Systems auch in gestrichener Form enthalten darf  Po
65. Abh  ngigkeit von i ausgedr  ckt  Da gem      der informellen Spezifikation die Daten auf o genau die empfangenen Daten von i sind  wobei  auch die Reihenfolge der Daten erhalten bleibt  fordern wir    of DOi  Diese Sicherheitseigenschaft l    t es zu  dass ein System   berhaupt keine Ausgaben macht  Wenn  es aber Ausgaben macht  dann sind es die richtigen  Wir ben  tigen zus  tzlich noch eine Leben     digkeitsaussage  die fordert  dass Ausgaben tats  chlich gemacht werden  Dies k  nnen wir   ber  die L  nge des Stromes o formulieren  F  r jede Anfrage wird genau ein Datum auf o ausgegeben      0   Ri  Beide Aussagen k  nnen wir nun zusammenfassen zur A G Spezifikation  A  G  des Puffers mit  A X vi Cie0 lt  DOi      R O  i   lt N  G      oC D  i 1  0   RBi    Das Format von A G Spezifikationen schr  nkt das Verhalten nur ein f  r den Fall  dass die             Annahme A erf  llt ist  Gilt die Annahme f  r einen Eingabestrom i nicht  so ist auch das resul   tierende Verhalten des Puffers nicht spezifiziert  In Abschnitt B 6 werden wir den Puffer weiter   entwickeln  so dass auch diese F  lle ber  cksichtigt werden und der Puffer dann ein definiertes             und sinnvolles Verhalten zeigt        Allgemeine Assumption Guarantee Spezifikationen    Im allgemeinen sind die einfachen A G Spezifikationen nicht ausdrucksstark genug  Es  ist m  glich  dass eine Bedingung an die Umgebung nicht mit einem Pr  dikat definiert  werden kann  das nur auf die Eingabekan  le Bezug nimmt  
66. Box Charakterisierung von Versagen    Ist ein System S und seine Modifikation durch eine Black Box Spezifikation    und  M      5   r  beschrieben  so gilt    FAILURES S M      i  0      r An                    Die Abschw  chung   z hat demzufolge keinen Einflu   auf die Menge der Versagen eines  Systems  Da   p nur zus  tzliche Eigenschaften beschreibt  die das modifizierte System  zu erf  llen hat  k  nnen dadurch nat  rlich keine Abweichungen vom normalen System   verhalten bewirkt werden  Nur    p gibt dem System neue Freiheiten  die zu sichtbaren  Abweichungen f  hren k  nnen  In vielen formalen Ans  tzen zur Fehlermodellierung wird  daher auf die Modellierung von Eigenschaftsverst  rkungen daher auch verzichtet  Unser  Begriff der Modifikationen ist somit allgemeiner     Auf eine Unterscheidung der Begriffe Ausfall und Versagen  wie sie auch in Kapitel  B  angesprochen wird  haben wir verzichtet  da dies in unserem Kontext nicht sinnvoll  erscheint  Das Ziel der Arbeit ist es  die Beschreibung von Systemen und ihren Modifika   tionen zu erm  glichen  Ob der Ausfall physikalischer Natur ist oder nicht  spielt hierbei  keine prinzipielle Rolle  solange wir in der Lage sind  die Auswirkungen zu modellieren     Beispiel 4 7 Um den Unterschied zwischen einem Fehlzustand und einem Versagen veran   schaulichen zu k  nnen  definieren wir einen Z  hler  der einen internen Zustand besitzt  Der  Z  hler habe zwei Eingabekan  le  Auf i empf  ngt er zu z  hlende Daten vom Typ D   U 
67. DELL     Temporal Logic of Actions   UNITY oder Proze  algebren  Wir haben uns f  r Focus  entschieden  da es folgende Vorteile in sich vereint  die in dieser Kombination alternative  Systemmodelle nicht aufweisen     e Focus bietet ein einheitliches semantisches Grundmodell  auf das die verschie   densten Sichten eines Systems fundiert werden k  nnen  Von monolithischen  ab   strakten  eigenschaftsorientierten Black Box Spezifikationen bis hin zu ablaufori   entierten  implementierungsnahen Beschreibungen von Netzwerken interagieren   der Komponenten k  nnen Systeme auf allen Abstraktionsstufen spezifiziert wer   den  Alle Beschreibungen k  nnen mit Hilfe der Fundierung auf das Strommodell  zueinander in Beziehung gesetzt werden  Dies erm  glicht eine durchg  ngige Sys   tementwicklung ohne Wechsel des semantischen Modells     e Der Schnittstellenbegriff erm  glicht eine deutliche Trennung zwischen dem Sys   tem und seiner Umgebung und zwischen den verschiedenen Komponenten eines  zusammengesetzten Systems  Die Interaktion zwischen den Systemteilen ist so  klar definiert  unerw  nschte Seiteneffekte sind bereits durch Anforderungen des  Systemmodells ausgeschlossen     e Eine Konsequenz des Schnittstellenbegriffs liegt in der Kompositionalit  t des Mo   dells  Damit ist eine modulare Systementwicklung m  glich  Die Komponenten ei   nes Systems k  nnen demzufolge weitgehend unabh  ngig voneinander entwickelt  werden  da dies automatisch einer Weiterentwicklung des Gesamtsyste
68. Da  der untere Knoten nun nicht mehr erreichbar ist  wird auch er entfernt  Es verbleibt das in  Abbildung B 8  dargestellte Beweisdiagramm     Wir m  ssen nun die Auswirkung der neuen Transitionen aus F ber  cksichtigen  Dazu erg  nzen  wir zu jedem Knoten die beiden Transitionen    148 KAPITEL 5  METHODISCHER UMGANG MIT FEHLERN                            j imma cee ji  CE  Ep  c  1    os    Abbildung 5 9  Vollst  ndig modifiziertes Invariantendiagramm fiir Merge                         Name Pre Input Output Post  T3 cAlAc 2 c 1  T4 cl c   2 c 2       und pr  fen  in welche Knoten deren Ausf  hrung f  hrt  Da beide nur auf den Wert von c Einflu    haben  das im Pr  dikat des oberen Knoten nicht auftritt  erhalten diese Transitionen offensicht   lich die G  ltigkeit des Pr  dikates und k  nnen als Schleife eingetragen werden  In den beiden  unteren Knoten sind 73 und 74 nicht schaltbereit und m  ssen daher auch nicht erg  nzt werden     Als Ergebnis erhalten wir das Beweisdiagramm in Abbildung 5 9  Da keine neuen Knoten hin   zugef  gt werden mu  ten  beweist das angepa  te Diagramm noch immer die Invariante  Da ein  Knoten entfernt wurde  geht das ihm zugeordnete Pr  dikat nicht mehr in die Disjunktion ein   so dass mit dem Diagramm sogar    MergeAM IH  0    i    io A  Hie  0V R  0                    gezeigt wird     Das Beispiel verdeutlicht  wie das Beweisdiagramm des modifizierten Systems einen  nicht unerheblichen Teil des urspr  nglichen Beweisdiagramms wiederverwendet 
69. Die  Kommunikation zwischen den Komponenten findet ausschlie  lich   ber den Austausch  von Nachrichten   ber die Kan  le statt     F  r Systeme  ihre Schnittstellen  ihr Verhalten und ihre Komposition sind Beschrei   bungstechniken anzubieten  mit denen konkrete Instanzen beschrieben werden k  nnen   Wir geben hierf  r verschiedene Techniken an     Wir werden in der gesamten Arbeit die Begriffe Systeme und Komponenten synonym  verwenden  da es zwischen beiden Begriffen keinen prinzipiellen Unterschied gibt  Ein  System kann als Komponente Teil eines umfassenden Systems sein  und eine Kompo   nente ist selbst wieder ein System  Die Wahl der Bezeichnung f  r ein System bzw  f  r  eine Komponente h  ngt nur vom Kontext der Verwendung ab und dient bei komponier   ten Systemen zur besseren sprachlichen Unterscheidung zwischen dem Gesamtsystem  und seinen Komponenten     Wir beginnen den formalen Teil dieses Kapitel mit einer Einf  hrung in ben  tigte ma   thematische Grundlagen     3 2 Mathematische Grundlagen    Die Grundlage zur Darstellung von Kommunikation zwischen Systemen bilden die  Str  me  die als Sequenz von Nachrichten die Kommunikationsgeschichte auf einem Ka   nal darstellen k  nnen  Wir definieren sie zusammen mit den zugeh  rigen Operatoren     Definition 3 1 Str  me und ihre Operatoren    Sei M eine beliebige  nichtleere Menge  Ein Strom   ber M ist eine endliche oder un   endliche Sequenz von Elementen aus M  Die Menge der endlichen bzw  unendlichen  Str  me   be
70. Do  auf  r kann er Anfragen R empfangen  die ihn auffordern  auf dem Ausgabekanal c die bisherige  Anzahl von gez  hlten Daten auszugeben  Formal haben wir also die Schnittstelle    I   i r   O    c  mit type i    D   U Da  type r     R   type c    N  und definieren   Z  hler    I  O  i   r   n  n 0 T   mit n     N und T definiert durch    Name Pre Input Output Post  Ti     r R aln n  n  T2     i d     n  n 1    Wir definieren eine Modifikation M  die spontan Daten vom Eingabekanal   verliert  also Daten  unter Umst  nden nicht mitz  hlt  M    2  F  mit    df Name Pre Input Output Post  F   LK   T3     i d     n  n   Betrachten wir folgenden exemplarischen Ablauf  so erkennen wir  dass Zustand 4 durch die  fehlerhafte Transition T3 erreicht wurde  Es wurde ein Datum von o gelesen  aber n nicht  erh  ht        110 9         2  1  di          3  1  di   R   1   4 1  di  d2   R   1   5 2  d    d2 d3   R   1   6 2  d    d2 d3   R  R   1 2     4 3  FORMALISIERUNG DER FEHLERBEGRIFFE 97    Dieser Zustand ist ein Fehlzustand  da es keinen Ablauf ohne Verwendung von 73 gibt  der diesen  Zustand erreicht  Im unmodifizierten System Z  hler ist n    i   eine Invariante     Dennoch beschreibt Zustand 4 kein Versagen des Systems  d h  der Fehler ist noch nicht sichtbar  geworden  da es einen fehlerfreien Ablauf gibt  der nach aussen identisch aussieht  Zustand 4     unterscheidet sich von Zustand 4 durch den korrekten Wert f  r n  aber n ist als lokale Variable  vor der Umgebung verborgen 
71. ERHALTEN 41       i      Merge e 0    tz                    Abbildung 3 1  Schnittstelle von Merge    Beispiel 3 1 Wir betrachten in diesem und auch dem n  chsten Kapitel ein einfaches System  namens Merge  an dem sich die Konzepte dieser Arbeit gut veranschaulichen lassen  Das System  soll     hnlich einem Multiplexer   die Nachrichten  die es   ber zwei Kan  le empf  ngt  auf seinem  Ausgabekanal wieder ausgeben     Das System hat also zwei Eingabekan  le 7  und 22  Uber den Kanal i  k  nnen Nachrichten eines  Typs Dj    ber ig Nachrichten vom Typ Da empfangen werden  Die beiden Nachrichtenmengen  seien nicht weiter spezifiziert  F  r sie sei lediglich angenommen  dass sie disjunkt sind  also  D   N D        gilt  Auf dem Ausgabekanal o k  nnen alle empfangenen Nachrichten wieder  ausgegeben werden  wodurch sich der Typ von o als die Vereinigung aller Nachrichten von D   und Da ergibt  Formal definieren wir also    I  i i2  O    0   type      D       type t2    Do type o    D   U D                  In dem hier verwendeten Systemmodell ist die Schnittstelle eines Systems  bzw  einer  Komponente  statisch  bleibt also  nach der Implementierung  unver  ndert  Systeme  mit Komponenten  deren Schnittstellen sich zur Laufzeit   ndern  werden in der vorlie   genden Arbeit nicht betrachtet  Das derart verallgemeinerte mobile  dynamische FOCUS    wird in  29  30  B2  beschrieben      3 4 Systemverhalten    Das Verhalten eines Systems wird charakterisiert durch die Beziehung zwischen
72. Fehlertoleranz  Sei ein Transitionssystem S gegeben  das die Eigenschaft    habe  d h  es gelte    SE          Wir nennen das System S fehlertolerant bez  glich der Fehler MS und der Toleranz  M    wenn gilt    SAMS   aM        Ist M   die neutrale Modifikation  so liegt eine maskierende Fehlertoleranz vor  Die  auftretenden Fehler in S erhalten dann die Black Box Eigenschaften des Systems                 F  r eine sehr differenzierte Aussage   ber die Fehlertoleranz eines Systems kann unter  Umst  nden der Nachweis mehrerer dieser Eigenschaften notwendig sein  Ein System  kann bez  glich einer Abweichung M   die Fehler M  tolerieren  bez  glich einer Ab   weichung M  die Fehler M    und so weiter  In den meisten F  llen wird man sich aber  auf ein einziges    maximales    Fehlermodell konzentrieren und f  r diese Fehlerf  lle die  Auswirkungen ermitteln     Wir werden in Definition T3 lin Abschnitt Z5 3Jeine   hnliche Aussage wie in Definition   10  wiederfinden  Die Aussage der Fehlertoleranz stellt eine spezielle Interpretation der  korrespondierenden Modifikationen dar  Mit den Beschreibungstechniken f  r Systeme  und ihre Modifikationen zusammen mit den Beweistechniken k  nnen wir Fehlertoleranz  ausdr  cken und verifizieren  ohne neue Notationen oder Begriffe einf  hren zu m  ssen     Auf einen Unterschied zu anderen Ans  tzen zur Fehlermodellierung in der Literatur   insbesondere die Arbeiten von Joseph Liu  48  47  und Janowski  86  B5   ist hier  hinzuweisen  da er g
73. Formale Fehlermodellierung  f  r  verteilte reaktive Systeme    Max Breitling    Lehrstuhl f  r Software  amp  Systems Engineering  Institut f  r Informatik  Technische Universit  t M  nchen    Institut f  r Informatik  der Technischen Universit  t M  nchen  Lehrstuhl f  r Software  amp  Systems Engineering    Formale Fehlermodellierung  f  r  verteilte reaktive Systeme    Max Dieter Breitling    Vollst  ndiger Abdruck der von der Fakult  t f  r Informatik der Technischen Uni     versit  t M  nchen zur Erlangung des akademischen Grades eines  Doktors der Naturwissenschaften  Dr  rer  nat      genehmigten Dissertation     Vorsitzender  Univ  Prof  Dr  Christoph Zenger  Pr  fer der Dissertation    1  Univ  Prof  Dr  Manfred Broy   2  Univ  Prof  Dr  Eike Jessen    Die Dissertation wurde am 14 03 2001 bei der Technischen Universit  t M  nchen    eingereicht und durch die Fakult  t f  r Informatik am 18 06 2001 angenommen     Zusammenfassung    An die Entwicklung heutiger informationstechnischer Systeme werden aufgrund ihrer  hohen Komplexit  t  strenger Rahmenbedingungen und vielf  ltiger geforderter Qua   lit  tsmerkmale hohe Anforderungen gestellt  Insbesondere f  r Systeme oder System   teile  deren M  ngel zu erheblichen Sch  den f  hren k  nnten  ist die Entwicklung mit  Hilfe formaler Methoden ein Ansatz  diesen Anforderungen zu begegnen  Formale Me   thoden erm  glichen eine hohe Pr  zision in Spezifikationen und die akkurate Verifikation  kritischer Systemeigenschaften  
74. HLERN                                              2 A T3    A T4 2 A  c 1IX            cFlA  gt  c 2A  k  lt   i c 2 k  lt   i2  7  1    o gt k             Abbildung 5 11  Modifiziertes Fortschrittsdiagramm f  r Merge    g  ltig  Wir k  nnen sie aber abschw  cherf  und behaupten nur noch  Ho knk lt    rnk lt  an m  o gt k    Mit   2 definiert als  0   k A k  lt   i A k  lt     k  nnen wir die Knotenbeschriftungen  verst  rken und erhalten das Diagramm in Abbildung 5 11     Als Ausschnitt der darin enthaltenen Beweisverpflichtungen zeigen wir exemplarisch die Schalt   bereitschaft von rj  Dazu m  ssen wir die Eigenschaften aus dem linken oberen Knoten im  Diagramm sowie die Invariante verwenden  die wir in Beispiel BB  hergeleitet haben  die nach  einer weiteren  aber im Beweisdiagramm in Abbildung B Jleicht erkennbaren Verst  rkung als     o  ip   i A  Hi 0ONc 2  v  HR  0Ac 1    formuliert werden kann  Wir leiten aus c   1 daraus   Ho   if    i9  i  ab  so dass wir mit   fo k lt   4   Hip   Hirt  auf     it  gt 0             schlie  en k  nnen  Damit ist r  schaltbereit        Beweisdiagramme stellen also nicht nur eine geeignete Methode dar  Beweise zu re   pr  sentieren  sondern erm  glichen es durch ihre graphische und damit intuitive Dar   stellung auch  die Ver  nderungen von Eigenschaften bei modifizierten Transitionssys   temen zu ermitteln  Es l    t sich gut verfolgen  welche neue Transitionen aus dem Dia   gramm herausf  hren bzw  welche entfernten Transitionen die
75. LERN    Wir nennen eine Schnittstelle  I   O  eine Erweiterung einer Schnittstelle  J  O   wenn  neue Kan  le erg  nzt werden oder der Typ existierender Kan  le erweitert wird     Definition 4 1 Erweiterung der Schnittstelle  Die Schnittstelle          hei  t Erweiterung der Schnittstelle  I  O   wenn gilt    Vi     I e type i  C type i   Vo E    Oe type o  C type 6                 Die erweiterten Kan  le werden zur Unterscheidung von den urspr  nglichen Kan  len  mit   markiert  um die Typerweiterung zwischen den alten und den neuen Kan  len  ausdr  cken zu k  nnen  Die Kanalmenge I  bzw      enth  lt also alle Kanalnamen von  I  bzw  O   die darin aber markiert sind und m  glicherweise noch weitere  neue Kanal   namen     Beispiel 4 1 Schnittstellenerweiterung von Merge    Die Schnittstelle der Komponente Merge ist    I  f    ig   O    0   mit  type i1    DATA     type i2    DATA   type o    DATA  U DATA     Nehmen wir an  wir wollen den Typ der Eingabekan  le um ein weiteres Datum high    DATA  U  DATAg erg  nzen  das anzeigt  dass das folgende Datum  durch eine sp  ter zu erg  nzende ent   sprechende Modifikation des Verhaltens  mit h  herer Priorit  t eingemischt werden soll  Ferner  wollen wir die Komponente um einen neuen Ausgabekanal erweitern  auf dem Fehlermeldungen  gesendet werden k  nnen  Die neue Schnittstelle       i1  a       gt     mit  type 1    DATA  U  high     type t2    DATA U  high   type       DATA    ist eine Erweiterung gem     obiger Definition  Der
76. MAST 2000   Algebraic Methodology And Software Technology  number  1816 in Lecture Notes in Computer Science  pages 11 25  Springer  2000     165    166    13      20      21     22    23          24    LITERATURVERZEICHNIS    BREITLING  MAX und JAN PHILIPPS  Verification Diagrams for Dataflow Proper   ties  Technischer Bericht TUM I0005  Institut f  r Informatik  Technische Univer   sit  t M  nchen  2000     BROWNE  I  A   Z  MANNA  and H  B  SIPMA  Generalized temporal verification  diagrams  In Foundations of Software Technology  amp  Theoretical Computer Science   number 1026 in Lecture Notes in Computer Science  pages 484 498  1995     Broy  MANFRED  Interaction refinement     the easy way  In BRoy  M   editor    Program Design Calculi  Springer NATO ASI Series  Series F  Computer and  System Sciences  Vol  118  1993     Broy  MANFRED  A Functional Rephrasing of the Assumption Commitment Spe   cification Style  Technischer Bericht TUM I9417  Institut f  r Informatik  Techni   sche Universit  t M  nchen  1994     Broy  MANFRED  Compositional refinement of interactive systems  Journal of  the ACM  44 5   September 1997     Broy  MANFRED  The Specification of System Components by State Transition  Diagrams  Technischer Bericht TUM I9729  Institut f  r Informatik  Technische  Universitat Miinchen  1997     Broy  MANFRED  FRANK DEDERICHS  CLAUS DENDORFER  MAX FUCHS  THO   MAS F  GRITZNER und RAINER WEBER  The Design of Distributed Systems    An Introduction to FOCUS  Technisc
77. Nach den Zwischenformen  3a  und  3b  charakterisiert Spalte   4  die schw  chste Form der D  mpfung von Fehlereinfl  ssen  die     genaugenommen      keine wirkliche D  mpfung mehr darstellt  Fehler f  hren wieder zu sichtbaren Fehlern  des Gesamtsystems  chaotisches Verhalten der Teilkomponente bewirkt chaotisches Ge   samtverhalten     Die Tabelle ist vollst  ndig in dem Sinne  dass andere Kombinationen nicht mehr sinnvoll  als Fehlertoleranz verstanden werden k  nnen  So darf das Gesamtverhalten keine Fehler  aufweisen  wenn die betrachtete Teilkomponente korrekt ist  die erste Zeile darf also  nur die Eintr  ge Normal enthalten  Das Gesamtverhalten darf nicht ins Chaos verfallen   wenn die Komponente vorhergesehene Fehler zeigt  also kann Chaos nicht in der zweiten  Zeile erscheinen  Ein System  das auf vorhergesehene Fehler mit sichtbaren Fehlern  reagiert  auf unvorhergesehene Fehler aber mit Normalverhalten reagiert  stellt einen  unplausiblen Sonderfall dar  den wir nicht in unsere Untersuchungen aufnehmen     Wir k  nnen die verschiedenen Arten von Fehlertoleranz durch eine Ordnung  gt  verglei   chen  die wir durch    ee ee    definieren  Eine    gr    ere    Fehlertoleranz eines Systems besagt informell  dass gr    ere  Fehler eine geringere Auswirkungen haben     Die angegebene Klassifikation eignet sich also  bei gegebenen Modifikationen Systeme  bez  glich ihrer F  higkeit zur Fehlerd  mpfung zu bewerten     Die qualitative Bewertung der Fehlerd  mpfung eines S
78. Prozesskalk  ls CCS  mit dem es erm  glicht  wird  fehlerbehaftete Prozesse zu spezifizieren und Eigenschaften abzuleiten  Er defi   niert eine Ordnung   ber Fehlermodelle  die die Sch  dlichkeit von Fehlern vergleichen  l    t  In seinem Modell gilt Monotonie in folgendem Sinne  Toleriert ein System ein  gewisse Menge von Fehlern  so toleriert es auch jede Teilmenge davon  Diese Eigen   schaft steht in unmittelbarem Zusammenhang mit dem unvorhersehbaren Auftreten  von Fehlern  Janowski diskutiert erw  nschte Eigenschaften seines Ansatzes  der eine  schrittweise Entwicklung fehlertoleranter Systeme erm  glicht  Dazu geh  ren eine Un   abh  ngigkeit der Entwicklung von Systemkomponenten und die schrittweise Integration  von Mechanismen gegen wachsende Fehlerklassen ohne dabei bereits integrierte Tech   niken unwirksam oder sogar inkorrekt zu machen      Wir w  hlen hier nicht die Notation aus dem Originalpapier  sondern eine vereinfachte Version   die die enthaltene Idee aber angemessen ausdr  ckt  Die Autoren w  hlen in ihren diversen Arbeiten  verschiedene Notationen     2 2  FEHLERTOLERANZ 27       Abbildung 2 5  Normal  und Fehlerzust  nde    Arora Kulkarni Im Ansatz von Arora und Kulkarni  A B ZT A BE   42  wird Fehler   toleranz allgemeiner ausgedr  ckt  da nicht nur maskierende Fehlertoleranz betrachtet  wird  sondern auch Abschw  chungen von verhaltensbeschreibenden Aussagen     Ein Zustandspr  dikat S ist abgeschlossen f  r eine Transitionsmenge  wenn alle Tran   siti
79. RD SCHATZ  Herausgeber   Formale Beschrei   bungstechniken f  r verteilte Systeme  FBT99  GI ITG Fachgesprach  M  nchen   1999     STOLEN  KETIL  Assumption Commitment Rules for Data flow Networks     with  an Emphasis on Completeness  Technischer Bericht TUM I9516  Institut f  r In   formatik  Technische Universit  t M  nchen  1995     ST  LEN  KETIL  FRANK DEDERICHS und RAINER WEBER  Assump   tion Commitment Rules for Networks of Asynchronously Communicating Agents   Technischer Bericht TUM I9303  Institut f  r Informatik  Technische Universit  t  M  nchen  1993     STOREY  NEIL  Safety critical Computer Systems  Addison Wesley  1996   TANENBAUM  ANDREW S   Computer Networks  Prentice Hall  1989     Web Seite der Virtual Library  Formal Methods   http    archive comlab ox ac uk formal methods      VYTOPIL  JAN  editor   Formal Techniques in Real time and Fault Tolerant Sys   tems  Kluwer Academic Publishers  1993     WING  JEANNETTE M   Teaching mathematics to software engineers  Technical  Report CMU CS 95 118R  Carnegie Mellon University  1995     170 LITERATURVERZEICHNIS    Abbildungsverzeichnis    METER ee beet WERNER 18  2 2 Vereinfachtes Systemmodelll   2 2222    on nn 19  ed yee been ek ieee ee ae 20  ne bared ayes a 21  Bg ere ar Se Sn Pe 27  Len ede ae oe ee re 31  Stay ata wate ee hoe ay Rh ae 32  tigre u a es Se ee Se ee 33  Lieu tate eee ee eee shennan s 34    ee e ee ree ere 41  3 2 Verhalten von Merge  Beispiel     oo aaa a a 42  a ee ae E 46  EEE RE 54  a ee 
80. Spezifikation des Puffers entspricht  Beim  Entwurf des Transitionssystems ist diese Annahme implizit mit eingeflossen  Die Menge  a                   enth  lt die in Definition AMA  beschriebene Menge von Belegungen        Sind Fangzust  nde versehentlich  zum Beispiel durch einen Entwurfsfehler in einem  System enthalten  so kann eine explizite Formulierung der darin enthalten Umgebungs   annahme helfen  diesen Entwurfsfehler aufzudecken  Es lie  e sich erkennen  dass die  Umgebungsannahme nicht intendiert und nicht realistisch ist  da sie der Umgebung  zuviele Eingaben an das System verbietet     Fangzust  nde k  nnen auch bewu  t in ein System aufgenommen werden  da ein Sys   tem in bestimmten Zust  nden tats  chlich stehen bleiben soll  Der hier vorgestellte  Ansatz der impliziten Umgebungsannahmen scheint dann nicht anwendbar zu sein   denn es w  rde von der Umgebung gefordert werden  nur Eingaben zu senden  die nicht  zu diesen Zust  nden f  hren  Dieses Problem wird vermieden  indem zu den gewollten  Haltezust  nden Transitionen erg  nzt werden  die alle Nachrichten von allen Kan  len  konsumieren k  nnen ohne dabei eine Reaktion durch Ausgaben sichtbar zu machen  Be   folgt man dies als Entwurfsdisziplin  lassen sich die verbleibenden    wahren    impliziten  Umgebungsannahmen wieder sinnvoll definieren     Die Menge aller Eingaben  die die Annahme A S  verletzen  stellen Fehler der Umge   bung dar  wenn diese dennoch an das System geschickt werden  Eine sinnvolle We
81. Systems Ausdrucksm  glich   keiten der Fehlerbegriffe bietet     2 1 4 Umgang mit Fehlern    Nach der Kl  rung der grundlegenden Begriffe wollen wir nun den Umgang mit Fehlern  diskutieren  Es ist heutzutage weitgehend akzeptiert  dass Fehler in komplexen Syste   men nicht zu vermeiden sind oder nur mit einem erheblichem Aufwand  der nicht mehr  in einer rechtfertigbaren Relation zu potentiellen Sch  den steht  die durch tats  chlich  auftretende Fehler verursacht werden w  rden  Fehler sind ein Teil des Verhaltens  der  zwar unerw  nscht  aber dennoch unvermeidbar ist  und daher in einer Systementwick   lung ber  cksichtigt werden mu       22 KAPITEL 2  DER FEHLERBEGRIFF    Im Umgang mit Fehlern k  nnen wir zwischen zwei Phasen im Lebenszyklus eines Sys   tems unterscheiden  der Entwicklungszeit und der Zeit w  hrend des Betriebes eines  Systems  seiner Laufzeit     Entwicklungszeit    Der offensichtlich ideale Umgang mit Fehlern ist der Ansatz  jegliche Fehler zu ver   meiden  d h  nur absolut fehlerfreie System zu erstellen und zu betreiben  Inbesondere  f  r Softwaresysteme ist dieser Ansatz lohnenswert  da Software nicht altert  keine Ver   schleisserscheinungen zeigt und auf nahezu perfekte Weise replizierbar ist  Ist also ein  fehlerfreies Software System einmal geschaffen  bleibt es fehlerfrei     Die Disziplin des Software  und Requirement Engineerings erarbeitet Modelle  Vor   gehensweisen und Techniken  die dieses Ziel verfolgen  Anforderungen an ein System  m  sse
82. Systems auf verschiedenen Ebenen     von lokalen bis zu  systemglobalen Fehlern     untersucht werden     Der Unterschied zwischen E und S    besteht im wesentlichen darin  dass E die Sys   temumgebung beinhaltet  auf die ein Entwickler im allgemeinen keinen Einflu   hat   w  hrend 5    ein Teil des zu konstruierenden Systems ist  das im Entwicklungproze    noch entsprechend gestaltet werden kann  Aus der Sicht der Komponente S stellen  sowohl 9    als auch E externe Systemteile dar  die sich prinzipiell nicht mehr voneinander  unterscheiden  Sind wir also an der Fehlermodellierung bez  glich   interessiert  k  nnen  wir das Systemmodell noch etwas vereinfachen  Wir fassen E und      zusammen zu einer  Umgebung U des Systems S  wie in AbbildungB 2 dargestellt  Die Interaktion zwischen  5    und E stellt in diesem Modell nur noch eine interne Aktivit  t von U dail     Unser einfaches Systemmodell identifiziert also ein System S  eine Umgebung U und  eine Schnittstelle zwischen diesen  Wir k  nnen an diesem Modell nun verschiedene At   tributklassen charakterisieren     Durch die Schnittstelle und die klare Abgrenzung von internen und externen Merkmalen  k  nnen wir zwei Sichten auf ein System unterscheiden  In der Black Box Sicht auf  ein System h  lt man seine Interna vollst  ndig verborgen  nur seine Schnittstelle und  Au  enwirkung werden betrachtet  In der Glass  Box Sicht werden zus  tzlich die internen  Aspekte eines Systems dargestellt  beispielsweise seine interne Stru
83. T2 N T                   3 8  VERIFIKATION VON EIGENSCHAFTEN 59    Das komponierte System besitzt alle Variablen der Teilsysteme als lokale Variable   Gem     Voraussetzung gibt es hier keine Konflikte  Das System startet in einem Zustand   der die Initialbedingungen beider Komponenten erfiillt  Die Schnittmengenbildung im  Ausdruck fiir die Transitionsmenge T stellt sicher  dass jedes Belegungspaar  a  6   gleichzeitig eine Transition der einen Komponente und eine Umgebungstransition der  jeweils anderen Komponente darstellt  Die Zusicherung  dass eine Transition immer die  Umgebungstransition von jeweils einer Komponente ist stellt sicher  dass sich darin die  lokalen Variablen nicht spontan   ndern k  nnen  Die Transition einer Teilkomponente  hat  aufgrund der vorausgesetzten Disjunktheit der kontrollierten Variablen  au  er einer  Verl  ngerung der Eingabestr  me keine Wirkung auf die jeweils andere Komponente   also gibt es f  r sie immer eine passende Umgebungstransition     Falls beide Transitionssysteme die Eigenschaften aus Definition BBlerf  llen  erf  llt auch  das komponierte System wieder diese Eigenschaften  gezeigt in  T0    ist also wieder ein  wohlgeformtes Transitionssystem     3 8 Verifikation von Eigenschaften    Mit den bisher dargestellten Techniken sind wir in der Lage  Systeme sowohl durch  Black Box Spezifikationen als auch durch Transitionssysteme darzustellen  Black Box  Spezifikationen charakterisieren ein Systemverhalten durch eine Formel     die
84. Teilkomponenten zusammengesetzt  die  nach M  glichkeit unabh  ngig entwickelt werden k  nnen  In diesem Abschnitt wollen  wir beschreiben  wie Komponenten zusammengesetzt werden k  nnen  Dazu definieren  wir zun  chst  unter welchen Voraussetzungen Komponenten zusammengesetzt werden  d  rfen und welche Schnittstelle sich f  r ein zusammengesetztes System ergibt  Wir  geben dann sowohl f  r Black Box Spezifikationen als auch f  r Transitionssysteme an   wie das Verhalten des Gesamtsystems aus dem Verhalten der Komponenten abgeleitet  wird     Eine f  r die Komposition vorteilhafte Eigenschaft unseres Systemmodells ist es  dass  Systeme bzw  Komponenten nur   ber ihre Ein  und Ausgabekan  le mit ihrer Umge   bung interagieren  und keine weiteren Seiteneffekte eine Rolle spielen  Ein komponiertes  System entsteht daher auf einfache Weise aus den Einzelkomponenten durch die Ver   schaltung der Kan  le  Eine Verschaltung muss angeben  welche Komponenten welche  Ausgaben einer anderen Komponente als Eingabe erh  lt     Da alle Komponenten auf Kan  le zugreifen  die mit konkreten Namen referenziert wer   den  ergibt sich eine sehr einfache Technik zur Beschreibung der Komposition  Kan  le  mit gleichem Namen werden identifiziert  Ein Konflikt kann nur auftreten  wenn zwei  zu komponierende Systeme gemeinsame Ausgabekan  le haben  da dann beide auf dem  gleichen Kanal Nachrichten senden w  rden  Diesen Fall schlie  en wir mit Hilfe der  folgenden Definition aus     Definition 3 8 Ko
85. Tran   sitionen nicht in das System aufgenommen  die f  r eine volle Reaktivit  t notwen   dig sind     e Bei dem Entwurf des Systems wurden implizite Annahmen an die Umgebung  gemacht  die Eingaben ausschlie  en  die zu einem Fangzustand f  hren w  rden   So k  nnen beispielsweise Kontrollzust  nde in ein Transitionssystem aufgenom   men werden  in dem nicht von einem bestimmten Kanal gelesen werden kann   da der Entwickler annimmt  dass in einem solchen Systemzustand immer andere  Nachrichten auf anderen Kan  len vorliegen werden  die eine Weiterverarbeitung   und damit das Lesen der zun  chst nicht konsumierbaren Nachricht  in reaktiver  Weise m  glich machen  Diese Annahme wurde unter Umst  nden nicht explizit  dokumentiert  ist aber sozusagen    versteckt    im System enthalten     Wir gehen im folgenden vom letztgenannten Grund aus und interpretieren m  gliche    116 KAPITEL 4  FORMALE MODELLIERUNG VON FEHLERN      OO     Abbildung 4 7  Transitionssystem des Puffers    Fangzust  nde als implizite Umgebungsannahme  Diese fordert von den von der Um   gebung produzierten Eingaben  dass sie vollst  ndig gelesen werden k  nnen  also das  System nicht in einen Fangzustand geraten lassen     Definition 4 14 Implizite Umgebungsannahme    Die implizite Umgebungsannahme A eines Transitionssystems S wird definiert als die  Menge aller Eingabestr  me  die vollst  ndig gelesen werden k  nnen  f  r die das System  also in keinem Ablauf in einen Fangzustand ger  t  Die Menge wird ausg
86. Umst  nden vom Rech   ner selbst erkannt und an einen Benutzer weitergegeben wird  und eine klare Ursache  daf  r gefunden werden kann  ist ein Fehler in einer Spezifikation vielleicht nur schwer zu  erkennen und zu lokalisieren  seine Ursachen k  nnen in M  ngeln eines Entwicklungspro   zesses liegen  und die Folgen k  nnen sowohl wieder Fehler im Benutzerhandbuch sein  als auch unerwartetes  vielleicht sogar unsicheres oder unzuverl  ssiges Systemverhalten     Die Vielfalt von Bedeutungen  mit denen    Fehler    in Verbindung gebracht wird  legt es  nahe  diesen Begriff hier durch eine genauere Differenzierung zu diskutieren     Die obigen Beispiele zeigen eine Gemeinsamkeit  die alle Arten von Fehlern aufweisen   Ein Fehler beinhaltet immer eine Abweichung eines Ist von einem Soll  Fehler lassen sich  also nur relativ definieren zu einem Begriff von Korrektheit  der Fehlerfreiheit bedeu   tet  Diese Korrektheit ist oft mittels einer Spezifikation postuliert  Dennoch k  nnen in  einer realen Spezifikation nat  rlich Fehler enthalten sein  wenn die eigentlichen  wahren  Anforderungen an ein System nicht korrekt wiedergegeben werden konnten  Die Diskre   panz zwischen einem Ist und einem Soll kann auch durch ein inkorrektes Soll ausgel  st  sein  wie das Beispiel des vermeintlich falschen Kontoauszuges zeigt     Beispiel 2 1 Um die Schwierigkeiten der Qualifizierung  Quantifizierung und Lokalisierung  von Fehlern zu verdeutlichen  wollen wir ein einfaches Beispiel angeben  Ge
87. University  of Texas at Austin  1992     ARORA  ANISH and MOHAMED GOUDA  Closure and convergence  A foundation  of fault tolerant computing  IEEE Transactions on Software Engineering  1993     ARORA  ANISH and SANDEEP KULKARNI  Component based design of multitoler   ance  IKEE Transactions on Software Engineering  1998        ARORA  ANISH and SANDEEP KULKARNI  Detectors and correctors  A theory of  fault tolerance components  IEEE Transactions on Software Engineering  1999     Web Seite des Werkzeuges AUTOFOCUS  http   autofocus in tum de      BISHOP  PETER  Software fault tolerance by design diversity  In  49   1995  pages  211   229     BREITLING  Max  Modellierung und Beschreibung von Soll  Ist  Abweichungen   In  63   1999  Seiten 35 44     BREITLING  Max  Modeling faults of distributed  reactive systems  In JOSEPH   MATHAI  editor   FTRTFT 2000   Formal Techniques in Real Time and Fault   Tolerant Systems  number 1926 in Lecture Notes in Computer Science  pages 58 69   Springer  2000     BREITLING  MAX und JAN PHILIPPS  Black Box Views of State Machines  Tech   nischer Bericht TUM I9916  Technische Universit  t M  nchen  Dezember 1999     BREITLING  MAX und JAN PHILIPPS  Diagrams for Dataflow  In  GRABOWSKI   JENS und STEFAN HEYMER  Herausgeber   FBT 2000   Formale Beschreibungs   techniken f  r verteilte Systeme  10  GI ITG Fachgespr  ch  Seiten 101 110  Shaker  Verlag  Juni 2000     BREITLING  MAX and JAN PHILIPPS  Step by step to histories  In Rus  TEODOR   editor   A
88. W ein gro  er Teil des  urspr  nglichen Beweisdiagramms wiederverwendet  Die Abschw  chung erfolgt dabei  durch eine Verst  rkung von    oder eine Abschw  chung von WV     Erg  nzung von Transitionen Auch neue Transitionen k  nnen dazu f  hren  dass  ein Fortschrittsdiagramm nicht mehr g  ltig ist  Es ist m  glich  dass sie in neue Zust  nde  f  hren  die vom bestehenden Diagramm nicht erfa  t sind  und von denen unter Um   st  nden der Zielknoten nicht mehr erreichbar ist     Wir gehen wieder von einem bestehenden Diagramm aus  das einen Nachweis f  r     gt  WU  repr  sentiert  Wird das System erweitert um eine Transition 7  muss f  r jeden Knoten      untersucht werden  wohin diese Transition von ihm aus f  hrt  Wir unterscheiden  wieder drei F  lle  die wir schon von den Invariantendiagrammen kennen     e Die Transition 7 ist im Knoten nicht schaltbereit  also     A T  gt  false  Die G  ltig   keit des Diagramms bleibt erhalten     e Die Transition f  hrt in einen anderen existierenden Knoten     bei gleichzeitiger  Reduzierung der Bewertung  es gilt also    Pj Aj  UAT   gt  PAA  lt u    In diesem Fall bleibt weiterhin sichergestellt  dass das System auch nach Ausf  h   rung der neuen Transition noch den Zustand   o erreichen wird     Falls die Transition schaltbereit ist  jedoch kein Knoten im Diagramm vorhanden  ist  der die notwendigen Bedingungen erf  llt  so ist ein neuer Knoten       1   mit  einer Bewertung 6 41 zu erg  nzen  Wie schon bei neuen Knoten in Invariant
89. Wie beweist man die Korrektheit der modifizierten Eigenschaft     Selbstverst  ndlich l    t sich die Aussage SAM      PAM  mit den gleichen Me   thoden beweisen  wie wir sie in Abschnitt  3 8  dargestellt haben  Allerdings kann  der Aufwand relativ hoch sein  den Beweis vollkommen neu zu f  hren  W  nschens   werter ist es  den bereits existierenden Beweis f  r S      ausn  tzen zu k  nnen   um den darin bereits investierten Aufwand nicht zu verlieren  Wir wollen also  nach M  glichkeit bei Modifikationen von Systemen auch ihre Beweise entspre   chend modifizieren  Da wir Beweise durch Diagramme repr  sentieren  k  nnen wir  eine Beweismodifikation durch eine Anpassung der Beweisdiagramme darstellen   Wir werden dies im Abschnitt  5 7  diskutieren           Korrespondierende Modifikationen k  nnen zur Formulierung von Fehlertoleranzaussa   gen verwendet werden  Wie in Kapitel 2 2 beschrieben  sind f  r eine pr  zise Aussage die  Fehler und die tolerierbaren Auswirkungen explizit zu beschreiben  Mit M   als Feh   lermodell einer Implementierung und M   zum Formulieren ver  nderter Eigenschaften  stehen geeignete Ausdrucksm  glichkeiten bereit     Beispiel 4 11 Korrespondierende Modifikationen    Wir haben in BeispielBB die Komponente Merge    als Transitionssystem definiert  und in Bei   spiel BB  seine Black Box Eigenschaften Merge    Die Modifikation  nur noch von einem der  beiden Kan  le zu lesen  wurde in beiden Formalismen in Beispiel AH   M   und Beispiel AB    M5  pr 
90. Zu   verl  ssigkeitsforderungen an Systeme wichtig ist  f  r die sich die Verwendung formaler  Methoden also empfiehlt     Der Mangel klarer Begriffe im Umfeld der Fehler und einer Systematik im Umgang mit  ihnen wird auch von anderen Autoren identifiziert  Felix C  G  rtner h  lt die h  ufig  verwendeten Begriffe wie fault  error und failure f  r unscharf definiert  28         These terms are admitttedly vague  and here again formalization can help  clarification   Seite 4     Flaviu Cristian fordert in  23  eine einheitliche Begriffsbildung fiir die Fehlermodellie   rung     6 KAPITEL 1  EINF  HRUNG    One has to stay in control of not only the standard system activities when  all components are well  but also of the complex situations which can occur  when some components fail  The difficulty of this task can be exacerbated by  the lack of clear structuring concepts and the use of a confusing terminology   Presently  it is quite common to see different people use different names for  the same concept or use the same term for different concepts  For example   what one person calls a failure  a second person calls a fault  and a third  person might call it an error     Jeanette Wing beschreibt in  70  die folgenden Forderungen von Software Ingenieuren  hinsichtlich der Ausdrucksm  glichkeiten in Spezifikationen     When I have asked the question     Why specify formally      of a software  engineer  here are the kinds of responses I have heard         e to specify what happe
91. Zu seiner Formulierung  k  nnen auch Information   ber die Ausgaben des Systems notwendig werden  Dies kann  bei Systemen auftreten  bei denen die Umgebung Bedingungen erf  llen muss  die von ei   ner nichtdeterministischen Wahl der Ausgaben des Systems abh  ngen  Dann muss auch  die Formulierung der Umgebungsannahme Bezug auf die Ausgaben nehmen k  nnen  Ei   ne Annahme A hat dann also alle Kanalnamen J U O als freie Variable     Da wir allgemeine A G Spezifikationen in dieser Arbeit nicht ben  tigen  werden wir  uns auf einfache A G Spezifikationen beschr  nken und verweisen auf die ausf  hrliche  Behandlung dieses Spezifikationstypus in  16  BT  64 63      48 KAPITEL 3  FORMALES SYSTEMMODELL    3 6 Zustandstransitionssysteme    W  hrend Black Box Spezifikationen das Verhalten von Systemen durch die Relation  von vollst  ndigen Kommunikationsgeschichten der Ein  und Ausgabe beschreiben  wird  mit  Zustands   Transitionssystemen angegeben  wie das Verhalten schrittweise erzeugt  wird  Ein Schritt besteht aus dem   bergang von einem Zustand des Systems zu einem  Nachfolgezustand  wobei Nachrichten von den Eingabekan  len gelesen und auf den Aus   gabekan  len geschrieben werden k  nnen     Zustandstransitionssysteme sind durch das schrittweise Erbringen ihrer Ausgaben als  Reaktion auf jeweils aktuelle Eingaben unter Ber  cksichtigung eines Systemzustan   des sehr nahe an konkreten Systemimplementierungen  W  hrend wir die Verwendung  von Black Box Spezifikationen als eigensc
92. abekanal beliebigen Typs erg  nzt  Will  man ein System um neue Leistungsmerkmale erweitern  so muss dazu im allgemei   nen die Schnittstelle erweitert werden  damit die neuen Merkmale auch nutzbar  werden  Beispiele sind Signale zum R  cksetzen oder Neustarten eines Systems  oder Fehlermeldungen anderer Komponenten  auf die ein System zu reagieren  hat     e Der Typ eines bestehenden Eingabekanals wird erweitert  so dass   ber ihn neue  Nachrichten empfangen werden k  nnen  Diese Form der Schnittstellenerweiterung  motiviert sich erneut durch den Wunsch nach einer erweiterbaren Funktionalit  t  mit zu erg  nzenden neuen Nachrichten auf einem existierenden Kanal  Auch eine  Verallgemeinerung einer Systemfunktionalit  t kann eine Erweiterung des Kanal   typs bedingen  Soll beispielsweise eine Komponente nicht nur nat  rliche  sondern  ganze Zahlen verarbeiten  entspricht dies neuen Nachrichten auf einem bereits  existierenden Kanal     e Die Schnittstelle wird um einen neuen Ausgabekanal erg  nzt  Sollen beispielswei   se zus  tzliche  im System vorhandene Informationen oder errechnete Ergebnisse  ausgegeben oder auch Fehlermeldungen nach au  en sichtbar gemacht werden  ist  die Einf  hrung neuer Ausgabekan  le n  tig     e Der Typ eines Ausgabekanals wird erweitert  Wiederum k  nnen neue Nachrichten   die ausgeben werden sollen  nicht nur auf einem dedizierten Kanal  sondern auch  auf bereits existenten Kan  len verschickt werden     78 KAPITEL 4  FORMALE MODELLIERUNG VON FEH
93. ahl erweist sich dennoch g  nstiger  wie am Beispiel  BBlerkennbar wird  W  rde man zun  chst die Transitionen erg  nzen  die c auf 1 bzw  2  setzen  so d  rften diese danach nicht mehr entfernt werden  Die Formulierung von EF   w  re aufwendiger     120 KAPITEL 4  FORMALE MODELLIERUNG VON FEHLERN    Mit Hilfe der formalisierten Modifikationen waren wir in der Lage  die sonst nur infor   mell charakterisierten Begriffen f  r fault  error und failure mit einer formalen Definition  zu pr  zisieren  Im n  chsten Kapitel werden wir diese Begriffe nutzen k  nnen  um bei   spielsweise die Korrektheit von fehlererkennenden Mechanismen auszudr  cken     Auch den Begriff der Fehlertoleranz k  nnen wir mit Hilfe der Modifikationen pr  zise  definieren  Fehlertoleranz wird meist als die F  higkeit eines Systems verstanden  un   ter dem Einflu   von Fehlern dennoch eine akzeptable Leistung zu erbringen  Durch  Modifikationen k  nnen wir sowohl die Fehler als auch die Ver  nderung im Verhalten  explizit ausdr  cken  In einer anderen Sichtweise von Fehlertoleranz wird sie als die  Abschw  chung von Fehlereinfl  ssen interpretiert  Auftretende Fehler in einer Teilkom   ponente oder der Systemumgebung werden zumindest teilweise toleriert und zeigen nur  noch eine abgeschw  chte Wirkung auf das Gesamtverhalten  Wir haben diese Sichtwei   se skizziert  und eine Vereinfachung aufgezeigt  die auf quantitative Bewertungen der  Schwere von Fehlern verzichten kann     In weiteren Untersuchungen wur
94. alle Nachrichten von o  die in der Menge D  liegen   und zwar auch in der gleichen Reihenfolge     Das Verhalten des zusammengesetzten Systems Multiplex ergibt sich damit direkt zu der Kon   junktion aus Merge   und Split       Multipla        D amp o A w DOo A  o  D   amp o A o   Do    Aus dieser Verhaltensbeschreibung folgt i1   01 A ig   02  Dies beschreibt damit ein Verhalten                 wie man es von einem Multiplexer erwartet     3 7 2 Komposition von Zustandsmaschinen    Zwei Zustandsmaschinen k  nnen zu einer Zustandsmaschine komponiert werden  die  genau die Transitionen ausfiihren kann  die auch die beiden Komponenten durchfiihren  k  nnten  Das zusammengesetzte System kombiniert dazu eine Transition der einen Teil   maschine mit einer Umgebungstransition der anderen Maschine  und fiihrt sie gemein   sam aus  Damit keine Konflikte durch Uberlappungen von internen Variablen entstehen   m  ssen  neben der Kompatibilit  t der Schnittstellen  weitere Forderungen gestellt wer   den     Definition 3 11 Komposition von Zustandsmaschinen    Es seien zwei kompatible Zustandsmaschinen gegeben mit S      I  O1  A1  Y    T    und  S2    h  O2  Aa  Ya  Ta  f  r die  durch eventuelle Umbenennung  sichergestellt sei  dass     01 U A1  A  O2 U A2    BA  A  nk  amp AAnh    amp     Das Verhalten des komponierten Systems S   Q Sa ist definiert durch die Zustandsma   schine S    I  O  A  Y  T  mit I und O definiert wie in Definition  J und  A   A  U Aa    Y   T  XATa  T  FO T  U  
95. alle ausgehenden  Nachrichten  die aus lesenden Zugriffen auf diese Speicherzelle resultieren  konsequent  modifiziert werden  bis in diese Speicherzelle schlie  lich neu geschrieben wird  Diese  Modifikation ist durch eine entsprechende zus  tzliche Transition deutlich einfacher zu  repr  sentieren                 Beispiel 4 6 Die Modifikation von Merge zu einer Komponente  die nur einen Eingabekanal    bertr  gt  l    t sich auf verschiedene Weisen modellieren  von denen wir hier zwei skizzieren     92 KAPITEL 4  FORMALE MODELLIERUNG VON FEHLERN    e Eine vorgeschaltete Modifikationskomponente M vom Typ entsprechend Abbildung 4 3 a   kopiert nur einen der beiden Eingabestr  me  und blockiert den jeweils anderen  Als  Schnittstelle f  r M w  hlen wir   i  23    u  i2    womit Bedingung 1 erf  llt ist mittels  der Bijektion f    i  gt  i  i ig     Das Verhalten von M beschreiben wir mit Hilfe einer Black Box Spezifikation durch  Y  i 4 Ath    V  i     Aiz   i     Das modifizierte System hat die Schnittstelle     3    o    und zeigt das durch Kon   junktion beschriebene Verhalten    VAD amp   o iAD amp So ia  woraus sich durch Expansion und Ersetzung   Di  o   i A Do       v  Di  o      A DxSo   15     ableiten l    t  Nach einer Vereinfachung ergibt sich  bis auf Kanalumbenennung  genau  die in Beispiel AM  erwartete Eigenschaft         al     gl  o 4 Vo      e Der Verlust der Daten eines ganzen Eingabekanals kann auch durch eine nachgeschal   tete Modifikationskomponente  en
96. araus keine Eigenschaften mehr ableiten lassen  Es beschreibt damit das    schlimmste     aller denkbaren Fehlermodelle     Die Beliebigkeit des Verhalten ist etwas eingeschr  nkt  da in einem realen System  nat  rlich nicht alle Paare  i  0  bzw  alle Transitionen aus F wirklich auftreten k  nnen   So muss beispielsweise die Kausalit  t und die Monotonie auf den Kan  len  entsprechend  Abschnitt 8 4  erhalten bleiben  Auch durch einen Fehler kann ein System nicht an In   formationen gelangen  die noch nicht verf  gbar sind  Alle Fehler  die in der Realit  t  auftreten k  nnen  werden aber mit diesem Fehlermodell erfa  t     Mit unseren Beschreibungstechniken sind wir in der Lage  f  r verschiedenartige Feh   lermodelle eine Formalisierung anzugeben  Diese Modelle k  nnen in Untersuchungen  verwendet werden  in denen das Verhalten von Systemen unter dem Einflu   von Fehlern  analysiert wird  und es werden Fehlertoleranzaussagen m  glich gemacht  Als Beispiel    5 2  FORMULIERUNG VON FEHLERANNAHMEN 125    sei das Alternating Bit Protokoll erw  hnt  Dieses Protokoll erm  glicht eine   bertra   gung von Daten   ber Kan  le  die omission failures aufweisen  versagt aber  falls auf  den Kan  len ein crash failure auftritt  Ein formaler Beweis dieser Aussage kann auf die  hier vorformulierten Fehlermodelle zur  ckgreifen     5 2 Formulierung von Fehlerannahmen    Wie wir gesehen haben  k  nnen wir die Fehler eines Systems durch Modifikationen dar   stellen  Die Ausdruckskraft der M
97. ariante also erhalten     Das angegebene Beweisdiagramm ist nicht das einzige Diagramm  das die Invariante zeigt  Wir  haben hier nicht das einfachste Diagramm gew  hlt  um die Anwendung der Verifikationsdia              gramme besser veranschaulichen zu k  nnen        64 KAPITEL 3  FORMALES SYSTEMMODELL         o 4 4   4 as 0    vv Ne  A e 5   5  0  i   0  IN A    Fo   HY   Fi                                                       Abbildung 3 7  Invariantendiagramm fiir Merge    Fortschrittsdiagramme    Der Nachweis der Eigenschaft        W fiir alle Abl  ufe eines Systems kann mit einem  Fortschrittsdiagramm erfolgen  das die folgenden Eigenschaften erf  llt  Die Knoten wer   den zus  tzlich mit einer Bewertung 6  versehen  die einem Systemzustand einen Wert  aus einer wohlfundierten Ordnung  W  lt   zuordnet  also       a  gt  W     e Das Pr  dikat    impliziert mindestens eines der Pr  dikate im Diagramm  also       gt  oV    V       e Jeder Knoten              hat mindestens eine ausgehende Kante  Von den ausge   henden Kanten 7       T   eines Knotens     ist mindestens eine Transition schalt   bereit     j   gt  En 7     ViN En 7i       e F  r jeden Knoten     mit j      l     n  und jede Transition r     T gilt genau  einer der beiden folgenden F  lle         Vom Knoten     geht keine mit T beschriftete Kante aus  und es gilt  Pj Ad   UuAT  gt  PA  lt u        Vom Knoten     geht eine Kante zu einem Knoten      F  r alle derartigen  Knoten     gilt    DRG   UT  gt    P
98. as fehlerbehaftete System abgeleitet werden kann     In Abschnitt B 8 2  haben wir gesehen  wie Beweise f  r Invarianten und Fortschritts   eigenschaften mit Hilfe von Diagrammen repr  sentiert werden k  nnen  Wir gehen im  folgenden von einem Transitionssystem S aus     zusammen mit einem g  ltigen Beweis   diagramm f  r eine Eigenschaft     Sowohl f  r Invarianten  als auch Fortschrittsdia   gramme beschreiben wir nun  ob und wie diese an eine Ver  nderung der Transitionen  angepasst werden k  nnen     144 KAPITEL 5  METHODISCHER UMGANG MIT FEHLERN    5 7 1 Invariantendiagramme    Wir unterscheiden zwischen den Auswirkungen  die das Entfernen und das Hinzuf  gen  von Transitionen auf ein Invariantendiagramm haben     Entfernen von Transitionen In einem Invariantendiagramm ist mit jedem Knoten  und jeder davon ausgehenden Transition eine Beweisverpflichtung verbunden  Damit ist  es offensichtlich  dass durch die Entfernung von Transitionen die Zahl der Beweisver   pflichtungen reduziert wird  Liegt ein g  ltiges Beweisdiagramm f  r ein System S vor   so stellt dies automatisch auch ein g  ltiges Diagramm f  r das System SA E  amp   dar     Es kann m  glich sein  dass f  r das ver  nderte System mit weniger Transitionen eine  st  rkere Invariante gezeigt werden kann als die vom urspr  nglichen Diagramm bewie   sene Aussage    S IF inv o V    V        Folgende Ver  nderungen am Beweisdiagramm sind zul  ssig  ohne seine G  ltigkeit f  r  das System SA E    zu gef  hrden     e E
99. ationen exakt zu definieren  und formal zu   berpr  fen  ob  die Fehlererkennung eines Systems in Bezug auf diesen Fehler ad  quat ist     Als weiteren typischen Schritt in der Entwicklung eines fehlerbehafteten Systems haben  wir sowohl die Einf  hrung von  Varianten von  Fehlermeldungen angegeben als auch  eine schematische Erweiterung um eine allgemeine Fehlerbehandlung  Dabei haben wir  den Stopp eines Systems  zur Sicherstellung eines fail safe Verhaltens  und den Neustart  eines Systems als Spezialf  lle modelliert  Alle eingef  hrten   nderungen eines Systems  konnten wieder als Modifikationen eines Transitionssystems oder als Modifikationskom   ponenten dargestellt werden  so dass sich der bereits eingef  hrte Formalismus erneut  als ausreichend m  chtig erweist     Um ein System auch in einer Umgebung verwendbar zu machen  in der  zu definieren   de  Fehler auftreten  kann dieses auf systematische Weise robuster gemacht werden  Es  weist in einer gutartigen Umgebung das urspr  nglich spezifizierte Verhalten auf  zeigt  aber auch bei auftretenden Fehlern sinnvolle Reaktionen  die in Abh  ngigkeit vom je   weiligen Anwendungskontext zu definieren sind  Wir haben formale Kriterien f  r eine  Systemmodifikation vorgestellt  die eine derartige Erh  hung der Robustheit sicherstel   len     In einer formalen Systementwicklung im Rahmen unseres Modells kann man Black Box  Eigenschaften eines Transitionssystems verifizieren  Wird ein Transitionssystem durch  eine Modifikation
100. auf einen erkannten Fehler ist die Meldung des er   kannten Fehlers nach aussen an die Systemumgebung  Dazu kann ein bestehender oder  ein neuer  dedizierter Kanal f verwendet werden  Unter Verwendung der in Kapitel    LI vorgestellten Technik k  nnen wir zun  chst einen Kanal erg  nzen oder den Typ  eines bestehenden Kanals verhaltensneutral erweitern  Ein Fehler werde entsprechend  Abschnitt  5 3  durch ein Zustandspr  dikat Y erkannt  Das Senden einer Fehlermeldung    5 4  EINF  HRUNG VON FEHLERMELDUNGEN 131    fail auf dem Kanal f kann dann durch eine neue Transition der Form    Name Pre Input Output Post  TF vv   fifail post    modelliert werden  Die Nachbedingung post fordert typischerweise  dass der lokale Da   tenzustand bei Versenden der Fehlermeldung unver  ndert bleibt  Allerdings kann hier  auch eine Fehlerkorrektur initiiert werden  wie wir im folgenden Beispiel und im n  chs   ten Abschnitt sehen werden     Diese neue Transition   ndert das Verhalten des Systems nicht  solange kein Fehler  auftritt  Damit die Fehlermeldung nur genau dann geschickt wird  wenn ein Fehler  vorliegt  d  rfen bereits existierende Transitionen die Nachricht fail nicht versenden  Wir  stellen dies sicher durch das Entfernen aller Transitionen  die dies tun  Dabei sollen alle  anderen Nachrichten auf f noch immer gesendet werden k  nnen     E     a p   b f   af  fail      Die Transition tf muss bei dieser Modellierung aber nicht sofort ausgef  hrt werden   wenn ein Fehler vorliegt  Sind
101. be von zwei in Abbildung EL 2Ib   illustrierten Angaben explizit dargestellt werden  Der dunkel schattierte Teil E ist der  Teil des Verhaltens  den   durch die Modifikation verliert  Der durch F repr  sentierte  grau schattierte Teil stellt die neuen Anteile des Verhaltens dar  Diese Idee  die Ver  nde   rung durch Angabe von neuen und zu entfernenden Teilen explizit zu machen  wird sich  in den folgenden Formalisierungen von Modifikationen widerspiegeln     4 2  MODIFIKATION DES VERHALTENS 83                                                    Abbildung 4 2  Verhaltensmodifikation    Im folgenden geben wir an  wie konkrete Verhaltensmodifikationen in den in Kapitel  Bl vorgestellten Beschreibungstechniken notiert werden k  nnen  Wir behandeln die re   lationale Sicht  die Black Box Ebene  die Sicht der Transitionssysteme und sogenannte  Modifikationskomponenten  Die Zusammenh  nge von Modifikationen  die mittels ver   schiedener Techniken und damit auf verschiedenen Abstraktionsebenen angegeben wer   den  sind in Abschnitt  4 5 3  beschrieben     Wir greifen f  r die Beispiele dieses Abschnitts wieder die Komponente Merge aus Kapi   tel Blauf  die zwei Eingabestr  me zusammenmischt  Wir werden mit den im folgenden  dargestellten Beschreibungstechniken immer die gleiche Modifikation beschreiben  die  eine Abweichung vom eigentlich intendierten Systemverhalten darstellt  Das System soll  einen der beiden Kan  le ignorieren  und daher nur die empfangenen Nachrichten des  andere
102. beschrieben werden  Die Bl  tter unseres Ent   wicklungsbaumes enthalten daher Zustandstransitionssysteme  von denen mit den Me   thoden aus Abschnitt B 8 gezeigt wird  dass sie tats  chlich die geforderten Eigenschaften  aufweisen     Es sind noch weitere Verfeinerungen auf der Ebene der Transitionssysteme denkbar   Die praktische Anwendbarkeit ist jedoch beschr  nkt  so dass wir diese hier nicht n  her  beschreiben  sondern auf  56  verweisen  Auch auf den   bergang von Transitionssyste   men zu Implementierungen in konkreten Programmiersprachen  der wie im Werkzeug  AurtoFocus  6  weitgehend automatisiert erfolgen kann  wird hier nicht weiter einge   gangen     Das Ziel dieser Arbeit ist es  die m  glichen Fehler eines Systems zu modellieren und  sinnvoll mit ihnen umgehen zu k  nnen  Dazu sollen auch in einer bereits durchgef  hrten  Systementwicklung nachtr  glich noch Fehler ber  cksichtigt werden  Dies erfordert eine  Anpassung des Systementwicklungsbaumes  Wird ein Knoten des Baumes modifiziert   so m  ssen auch die damit verbundenen Knoten entsprechend modifiziert werden  so  dass wieder ein korrekter Systementwicklungsbaum vorliegt  In den Abschnitten 1 5 1   und  4 5 2  sowie in weiten Teilen von Kapitel 5  wird diese Thematik behandelt     3 11 Zusammenfassung    Neben dem hier vorgestellten Systemmodell von FOCUS gibt es weitere Systemmodelle   die geeignet sind  verteilte  reaktive Systeme zu modellieren  wie beispielsweise TLA    72 KAPITEL 3  FORMALES SYSTEMMO
103. bezogen  das vom Normalverhalten ab   weicht  Allerdings wird dabei nicht jedes abweichende Verhalten ber  cksichtigt  sondern  eine Unterscheidung gemacht zwischen Abweichungen  mit deren Auftreten man um   gehen m  chte und den restlichen Abweichungen  die man entweder f  r unm  glich oder  f  r unwahrscheinlich genug h  lt  um sie in Betracht ziehen zu m  ssen  Auch andere for     75    76 KAPITEL 4  FORMALE MODELLIERUNG VON FEHLERN       Normal  Fehler     verhalten verhalten  elites                   Abbildung 4 1  Verhaltensklassen    male Ans  tze zur Fehlermodellierung klassifizieren Verhalten in diese drei Typen  59    Mit dem Formalismus  den wir in dieser Arbeit pr  sentieren  ist es m  glich  eine schar   fe Trennung zwischen diesen drei Klassen zu ziehen  Wir k  nnen damit Abweichungen  vom Normalverhalten  die formal zu untersuchen und f  r die etwaige Gegenma  nahmen  zu erg  nzen sind  exakt spezifizieren     In den folgenden beiden Abschnitten beschreiben wir  was Modifikationen von Syste   men sind und wie sie formal repr  sentiert werden     unterschieden nach Modifikatio   nen der Schnittstelle eines Systems  Abschnitt LT  und Modifikationen des Verhaltens   Abschnitt 4 2   Wir nutzen in Abschnitt  4 3  und  4 4  die formalen Fundierungen zur  Definition von sonst meist nur informell beschreibbaren Begriffen aus dem Umfeld der  Fehler und Fehlertoleranz  In Abschnitt E5 Juntersuchen wir formale Eigenschaften von  Modifikationen wie ihre Kombination und ihr
104. bildungB 3  Als  Bewertung k  nnen wir die Konstanten 6    1 und 69   0 w  hlen  Fast alle Beweisverpflichtun   gen sind offensichtlich  nur die Schaltbereitschaft einer der beiden Transitionen in Zustand      muss nachgewiesen werden     Dazu m  ssen wir die in Beispiel BI  gezeigte Invariante  0    i     i verwenden  und  k  nnen folgern  dass    Hi  H   Ho   k  lt  Hi   Hi    Hi    Hit      8   Hi           im Knoten     g  ltig ist  woraus sich  i    i  gt  0 ergibt  Damit wissen wir  dass auf einem  der beiden Kan  le noch ungelesene Nachrichten vorhanden sind  woraus wir En 71  V En 72              schlie  en k  nnen  Das System Merge wird also noch Ausgaben produzieren        Wir k  nnen auch hierarchische Diagramme zulassen  in denen Knoten einander umfas   sen k  nnen  Dies kann dann n  tzlich sein und zur   bersichtlichkeit beitragen  wenn die  Knoten gemeinsame Konjunktionsglieder haben  die somit nur noch einmal notiert wer   den m  ssen  Hierarchische Diagramme k  nnen in flache Diagramme   bersetzt werden   die die gleiche M  chtigkeit aufweisen  Wir verzichten daher auf eine genauere Darstel   lung und verweisen auf  I3      66 KAPITEL 3  FORMALES SYSTEMMODELL    Aus einem Diagramm k  nnten mit Hilfe geeigneter Werkzeuge die darin enthaltenen Be   weisverpflichtungen generiert werden und sogar  automatisch oder interaktiv  bewiesen  werden  In  13  wird dieser Ansatz vorgestellt     In Kapitel 5 7  werden wir die Beweisdiagramme wieder aufgreifen und diskutiere
105. ch zu verifizieren  Es ist also lohnenswert  in dieser Rich   tung weiterf  hrende Untersuchungen durchzuf  hren und den Testbegriff auch im  formalen Umfeld zu etablieren     Um die pragmatische Verwendbarkeit der Ans  tze dieser Arbeit in einer realen System   entwicklung noch st  rker voranzutreiben  sind unter anderem die folgenden Arbeitfelder  sinnvoll     e In Kapitel 5  haben wir typische Schritte formal charakterisiert  die im Umfeld  einer Entwicklung eines fehlerbehafteten Systems auftreten  Die Darstellung ist  in gro  en Teilen allerdings noch sehr semantiknah  So werden beispielsweise Men   gen von Transitionen mit Hilfe von Belegungen definiert  die wiederum durch  Zustandspr  dikate beschrieben sind  Die Charakterisierung eines korrekten Feh   lererkennungspr  dikates st  tzt sich sogar auf Systemausf  hrungen ab     F  r die praktische Verwendung in einer Systementwicklung sollten diese forma   len Definitionen nach M  glichkeit aber verborgen und stattdessen auf der Ebene  der Beschreibungstechniken ausgedr  ckt werden  Beispielsweise ist die Ausnah   mebehandlung aus Definition BI  im Kontext einer konkreten Programmierspra   che durch Prozeduren und entsprechende Aufrufe realisierbar  unter Umst  nden  sogar unter Ausnutzung von in einer Sprache bereits implementierten exception   Mechanismen     Die in dieser Arbeit vorgestellten Techniken stellen damit eine allgemeine und  prinzipielle Grundlage zum Umgang mit Fehlern dar  die f  r die Anwendung in  eine
106. chiedenen Kriterien bewertet wer   den  Fehler k  nnen in Kategorien eingeordnet werden  wie beispielsweise unkri   tisch  kritisch und katastrophal  Unkritische Fehler betrachtet man als so harm   los  dass sie nur Auswirkungen haben  die keiner intensiven Beachtung bed  rfen   Kritische Fehler dagegen beeintr  chtigen die Systemleistung so erheblich  dass  Gegenma  nahmen zu ergreifen sind  Die schlimmste Klasse sind katastrophale  Fehler  Diese sind absolut untolerierbar und mit allen Mitteln zu vermeiden     Weitere M  glichkeiten zur Bewertung der Schwere von Fehlern bestehen in der  Ermittlung der Kosten  die zur Deckung der durch einen Fehler verursachten  Sch  den notwendig w  ren oder werden  Man kann das Ma   der Tolerierbarkeit von  Fehlern angeben  indem das erreichbare Niveau der Fehlertoleranz  besprochen in    16 KAPITEL 2  DER FEHLERBEGRIFF    Abschnitt B 2  bei Vorliegen der Fehler angegeben wird  Fehler k  nnen auch nach  dem Aufwand bewertet werden  der f  r ihre Behebung notwendig ist     Die angegeben Charakteristika kommen nicht in allen Kombinationen vor  Es gibt bei   spielsweise keine absichtlichen  physikalischen Fehler  da eine Absicht nur einem Men   schen zugesprochen werden kann  Es gibt ebensowenig tempor  re Softwarefehler  die  w  hrend der Laufzeit des Systems auftreten  Meist treten die Kriterien in wiederkeh   renden Gruppierungen auf  Beispiele sind    e Softwarefehler  die von Menschen begangen wurden  zur Entwicklungszeit auftre   ten  p
107. d3       di d     de    d2  d    di       d1  di    da    di  d2  dt       d   di    da    d    di  de       F  r die Eingabe  d    di  auf i und  da  auf ig gibt es beispielsweise drei m  gliche Reaktionen  im Sinne der informellen Beschreibung  da die Nachricht da vor  zwischen oder nach den beiden  Nachrichten von   wieder auf o ausgegeben werden kann     3 4  SYSTEMVERHALTEN 43    Selbstverst  ndlich ist es im allgemeinen nicht m  glich  alle potentiellen Verhalten explizit aufzu   listen  da die Relation unendlich viele Elemente enth  lt und sogar einzelne Elemente unendlich  lange Str  me enthalten k  nnen  Die Relation muss durch geeignete Beschreibungstechniken             angegeben werden        Mit Relationen k  nnen Paarungen von Ein  und Ausgaben ausgedr  ckt werden  die  einem nicht mehr sinnvollen  also kausalem und realisierbarem Verhalten entsprechen   Ein Verhalten ist realisierbar  wenn es eine Strategie gibt  die Eingaben an ein System  schrittweise liest und aus diesen die Ausgaben produziert  Dabei darf die Reaktion  nicht von Nachrichten abh  ngen  die zu einem aktuellen Verarbeitungszeitpunkt noch  gar nicht verf  gbar sind  Dies widerspr  che der Kausalit  t  und k  me der F  higkeit  des Systems gleich  in die Zukunft sehen zu k  nnen  In PI  wird die Realisierbarkeit  genauer im Rahmen eines gezeiteten Systemmodells diskutiert und begr  ndet  dass die  Realisierbarkeit im wesentlichen nur durch die Verletzung der Linkstotalit  t und der  Kausalit  t 
108. darf nur auf maximal zwei der drei Kan  le oc1  oc2 und oc3 die Nachricht true geschickt  werden  Dies l    t sich durch eine Spezifikation der virtuellen Komponente V ausdr  cken   Diese hat die Schnittstelle       oc    0c2  0c3   mit type oc      true   Die    Erlaubnis     zum Versagen wird durch die Nachricht true dargestellt  ansonsten wird keine Nachricht  verschickt     Das Verhalten l    t sich sowohl durch eine Black Box Beschreibung durch  ocy      V ocg      V 0c3         oder auch als einfaches Transitionssystem spezifizieren  in Abbildung B 2 graphisch dar   gestellt  Die Transitionen sind definiert durch    Name Pre Input Output Post  a a a a aid  Ti         oc   true      T2         oca true      T3         oc3 true      T12         oc   true  oca true      T13         oc   true  ocz true      T23         oca true  ocz true        Da wir das ungezeitete Modell als Grundlage haben  besteht kein unmittelbarer zeitlicher Zu   sammenhang zwischen der Entscheidung von V  welche Transition ausgef  hrt wird  und welche  Komponenten damit ausfallen d  rfen  und dem tats  chlichen Ausfall  Wird eine Nachricht true  von V auf einen Kanal oc  geschrieben  wird sie von einer der drei Transitionen Tstop zu einem  sp  teren  aber sonst beliebigen Punkt in der Systemausf  hrung gelesen  Aufgrund der Fairness  in den Ausf  hrungen ist sicher gestellt  dass eine vorhandene Nachrichten irgendwann gelesen  wird  also ein Ausfall tats  chlich stattfinden wird  Die Transition r be
109. dem informationstechnischen Umfeld  und beschreiben darin weitgehend akzeptierte  in  der Literatur h  ufiger wiederkehrende Darstellungen des Begriffes     2 1  FEHLER 11    2 1 1 Fehlerbegriffe der Literatur    In der Literatur findet sich eine ganze Reihe von Begriffen aus dem Umfeld der Feh   ler  W  hrend man in deutschen Texten beispielsweise die Begriffe Fehler  Versagen   Ausfall  St  rung und Fehlfunktion findet  liest man in englischsprachiger Literatur von  faults  errors  failures  malfunctions und mistakes  Zwischen dieses Begriffen lassen sich  nicht unmittelbar Entsprechungen finden  da sie sich in ihren intendierten Bedeutun   gen teilweise   berschneiden  So werden die Begriffe faults und errors meist jeweils beide  mit Fehler   bersetzt  w  hrend failure im Deutschen differenziert wird in Ausfall und  Versagen  Wir werden die unterschiedlichen Begriffe im folgenden herausarbeiten und  orientieren uns dabei an den im wesentlichen   bereinstimmenden Charakterisierungen    aus  B9 A3 44      Wir konzentrieren uns auf drei allgemeine  zentrale Begriffe  die im Englischen als fault   error und failure bezeichnet werden  Die verbleibenden Begrifflichkeiten wie malfunc   tion  mistake  St  rung und Ausfall werden wir als spezielle Auspr  gungen dieser drei  Begriffe interpretieren     Wir werden im Deutschen  entsprechend der in  43  vorgeschlagenen Ubersetzung    fail   ure    durch Versagen und    error    durch Fehlerzustand ausdr  cken  F  r    fault    werden 
110. demnach gut als Ma   zur Bewertung eines Systems  bzgl  seiner Fehleranf  lligkeit  Hat man keinerlei Information   ber die innere Struktur   sieht man das System also in einer Black Box Sicht  so ist der Begriff des Versagens der  einzige  der sinnvoll angewendet werden kann     In der deutschen Sprache wird failure genauer differenziert in Versagen und Ausfall   Ein Ausfall ist ein Versagen  das mit einer physikalischen und permanenten Ver  nde     12 KAPITEL 2  DER FEHLERBEGRIFF    rung einhergeht  Ein durchgebrannter Baustein in einer elektronischen Schaltung ist ein  Beispiel f  r einen Ausfall     Eine malfunction    bersetzbar mit Fehlfunktion  verstehen wir als eine inkorrekte Auf   tragsausf  hrung  Auch bei einer auftretenden Fehlfunktion liegt also eine sichtbare Ab   weichung vom erw  nschten Verhalten vor  Damit k  nnen wir eine Fehlfunktion als spe   zielle Form des Versagens bezeichnen  W  hrend man ein Versagen meist als endg  ltig  und fatal betrachtet  so dass eine Reparatur oder der Ersatz des Systems erforderlich  wird  interpretiert man eine Fehlfunktion eher als eine kurzfristige  harmlosere und to   lerierbare Abweichung vom spezifizierten Verhalten  Wir verzichten im Rahmen dieser  Arbeit auf eine derartige Bewertung der Schwere eines Versagens  und differenzieren  daher nicht weiter zwischen failure und malfunction     Error    Den Begriff des Fehlerzustands  oder auch Fehlzustandes  engl  error  l    t sich nur bei  zustandsbehafteten Systemen defini
111. den     4 2 4 Modifikationskomponenten    Modifikationskomponenten     vorgestellt in  8      erlauben es uns  ein zu modifizierendes  System unangetastet zu lassen  und die Ver  nderung in seinem Verhalten durch die  Komposition mit einer weiteren Komponente zu beschreiben  Die Modifikationskompo   nente wird zwischen die Umgebung und die eigentliche Komponente geschaltet  und  kann die ein  und ausgehenden Nachrichten ver  ndern  l  schen oder sogar neue Nach   richten erzeugen  Sowohl die Modifikationskomponente als auch die zu modifizierende  Komponente k  nnen dabei unabh  ngig voneinander in beliebig w  hlbaren Formalismen  beschrieben werden     Verschiedene Varianten  die sich in Ausdrucksm  chtigkeit und Komplexit  t unterschei   den  sind in Abbildung 4 3  graphisch dargestellt  Mit Hilfe einer vorgeschalteten Mo   difikationskomponente entsprechend Abbildung  4 3 a   k  nnen eingehende Nachrichten    90 KAPITEL 4  FORMALE MODELLIERUNG VON FEHLERN                                                                                  e  e S e    e S  l o   a   b           S       e      e S                                  c   a     Abbildung 4 3  Varianten von Modifikationskomponenten    manipuliert werden  Der Verlust von Eingabenachrichten ist beispielsweise auf diese  Weise modellierbar     Eine Modifikation der Ausgabe ist mit der in Abbildung 4 3 b   dargestellten Variante  m  glich  Der Verlust oder die Verf  lschung von Ausgaben kann damit gut modelliert  werden   
112. den formale Eigenschaften der Modifikationen behan   delt  die in einem Entwicklungsproze   fehlerbehafteter Systeme eingesetzt werden k  n   nen  Wie in Kapitel B 10  beschrieben  resultiert ein  idealisierter  Entwicklungsproze    in einem Entwicklungsbaum mit einer abstrakten Spezifikation als Wurzel  einer  ite   rierten  Verzweigung in Spezifikationen von Teilkomponenten  und schlie  lich einem    bergang zu Transitionssystemen als Bl  ttern  Werden an einer Stelle in diesem Baum  Modifikationen durchgef  hrt  ist man an einer Anpassung des Baumes interessiert  so  dass ein modifizierter  aber wieder korrekter Entwicklungsbaum vorliegt  Mit den Ab   schnitten   ber die Fehlerfortpflanzung sind die formalen Grundlagen f  r die Modifika   tionen innerhalb eines Beschreibungsformalismus bereits dargestellt  F  r die Anpassung  des   bergangs von Transitionssystemen zu Black Box Eigenschaften wird im n  chsten  Kapitel eine methodische Unterst  tzung angeboten     Schliesslich haben wir die Thematik der externen Fehler behandelt  Aufgrund des  Schnittstellenbegriffs unseres Systemmodells k  nnen wir klar zwischen internen und ex   ternen Fehlern trennen  Wir haben sowohl explizite als auch implizite Fehlerannahmen  diskutiert  mit den externe Fehler definiert werden k  nnen  Den Umgang mit externen  Fehlern werden wir in Abschnitt  5 6  behandeln     Kapitel 5    Methodischer Umgang mit  Fehlern    In den vorangegangenen Kapiteln wurden die formalen Grundlagen vorgestellt  m
113. des Systems vervielf  ltigt  Funktionale Redundanz  impliziert die Integration zus  tzlicher Komponenten  die gezielt f  r die Fehlertoleranz in  das System aufgenommen werden  Diese Form kommt in allen fehlertoleranten Systemen  vor  da immer Systemteile zur Fehlererkennung  zum R  cksetzen oder Vorausrechnen   zur Fehlerkompensation oder zum Melden von Fehlern notwendig sind  Informations   redundanz beinhaltet die Speicherung redundanter Daten im System  beispielsweise als  Pr  fsummen  Zeitliche Redundanz liegt vor  wenn zus  tzliche Zeit in einem Systemab   lauf aufgewendet wird  beispielsweise durch wiederholte Abl  ufe  Man spricht von sta   tischer Redundanz  wenn die redundanten Bestandteile im fehlerfreien Normalbetrieb  bereits einen Beitrag zur Systemleistung erbringen  Tun sie dies nur im Ausnahmefall   nennt man dies dynamische Redundanz     Die Wahl einer Technik zum Erreichen von Fehlertoleranz h  ngt von den Charakteristi   ka der zu tolerierenden Fehler ab  Es besteht hier ein wesentlicher Unterschied zwischen  der sogenannten Softwarefehler  Toleranz und der Hardwarefehler  Tolerand    Die  bau       Die englischen Begriffe software fault tolerance und hardware fault tolerance lassen sich auch inter     pretieren durch Software Fehlertoleranz bzw  Hardware Fehlertoleranz  Diese bezeichnen eine Fehlerto   leranz  die mit Software bzw  Hardware erreicht wird  Wir meinen hier aber die Toleranz von Software     2 2  FEHLERTOLERANZ 31                            
114. die  Beschreibung interner Teilkomponenten mit ihren Interaktionen  Da wir im Rahmen  dieser Arbeit auf die Untersuchung sogenannter dynamischer und mobiler Systeme ver   zichten  sind all diese Merkmale den statischen zuzuordnen  Die Abl  ufe eines Systems  stellen einen dynamischen Aspekt dar  Ein Ablauf eines Systems besteht aus einer Folge  von  Kontroll  und Daten   Zust  nden  Wir ordnen die Zust  nde und ihre   berg  nge  also den dynamischen Merkmalen der Glass Box Sicht zu     Die beschriebenen Aspekte eines Systems sind nicht unabh  ngig voneinander  sondern  m  ssen auf vielf  ltige Weise zusammenpassen  Abstraktionen der Zustandsfolgen aus  den Abl  ufen eines Systems werden als sein Black Box Verhalten sichtbar  das Umge   bungsverhalten hat durch Systemeingaben unmittelbaren Einflu   auf die Abl  ufe  das  Systemdesign legt die m  glichen Zustandswechsel fest und das Systemverhalten inklu   sive seiner Interaktionen mit der Umgebung muss mit der Schnittstelle vertr  glich sein   um einige Beispiele der Bez  ge zu nennen  Es ist die Aufgabe eines Entwicklers  eine  derartige Konsistenz innerhalb der verschiedenen Merkmale und Sichten auf ein System  zu erreichen     In vielen F  llen liegen die Bestandteile der Black Box Sicht als Spezifikation vor  Die in   ternen statischen Bestandteile des Systems werden dann entsprechend konstruiert  und  die Abl  ufe ergeben sich daraus meist aufgrund einer zugrundeliegenden Laufzeitumge   bung  Im Idealfall ist am Ende eine
115. die Wahl des  Bezeichners E    Definition 4 3 Modifikation von Relationen    Sei R eine Relation   ber der Schnittstelle  I  O   und seien auch E und F Relationen  vom gleichen Typ  also    R E F C type t   x    x type in     x type o1     x     type Om      Die durch   M  E F   definierte Modifikation modifiziert das System gem       RAM     R E UF                Die Ausdruckskraft dieser Modifikationen ist hinreichend allgemein  wie leicht einzuse   hen ist  Eine Relation R kann zu einer beliebigen Relation R    modifiziert werden mittels  der Modifikation M    R  R      Eine neutrale Modifikation  die keine   nderungen be   wirkt  f  r die die Bezeichnung Modifikation also nicht mehr wirklich zutrifft  wird durch   2 2  dargestellt  Die Modifikation mit F als der All Relation wandelt jedes System R  um in ein System mit beliebigem  also chaotischem Verhalten     Wir fordern in der Definition weder  dass die Stromtupel aus E wirklich in R enthalten  sind  noch dass die Str  me in F nicht bereits in R liegen  Es bleibt also formal ge   stattet  nicht vorhandene Stromtupel zu    entfernen    und bereits enthaltene Stromtupel  erneut in die Menge R aufzunehmen  Damit werden unn  tige Einschr  nkungen bei der  Formulierung von Modifikationen in konkreten Beschreibungstechniken vermieden  Wir  lassen hier auch zu  dass Str  me durch E entfernt und durch F wieder erg  nzt werden   In Abschnitt 45 1  werden wir allerdings die Disjunktheit der Mengen E und F zwi   schen verschieden
116. die Zahl von Anwendungen steigt  wachsen  auch die Fehlerwahrscheinlichkeiten  Auch ein unwahrscheinlicher Fehler wird bei mil   lionenfacher Verwendungen von Ger  ten irgendwann doch auftreten     2 KAPITEL 1  EINF  HRUNG    Die gestellten Kriterien an die Qualit  t betreffen im allgemeinen eine ganze Reihe von  Aspekten  die je nach Anwendungsgebiet unterschiedlich gewichtet sein k  nnen  So  sollen Systeme Verl    lichkeit aufweisen  also die von ihnen erwartete Leistung auf zu   verl  ssige Weise erbringen  Ein System soll sicher  im Sinne von safe  sein  so dass  keinerlei Gef  hrdung von ihm ausgeht und es nicht m  glicherweise Menschenleben be   droht oder Sch  den anderer Art verursachen kann  Es soll auch sicher  im Sinne von  secure  sein  also keine Informationen preisgeben an Personen  die nicht berechtigt sind   diese zu erhalten  Ein System soll korrekt sein  also genau das tun  was von ihm erwartet  wird  Ausf  hrlichere Diskussionen verschiedener Qualit  tsaspekte finden sich beispiels     weise in  58   45   43      Es ergibt sich noch eine Reihe weiterer Fragen  wie beispielsweise die Erwartungen an  ein System definiert werden  wie die Zuverl  ssigkeit ermittelt und bewertet wird  wie  eine ad  quate Spezifikation erstellt wird  die selbst wieder als korrekt bezeichnet werden  kann  und viele mehr  Diesen Fragestellungen wird in der Disziplin des Requirements  Engineering nachgegangen  Wir gehen im Rahmen dieser Arbeit von dem vereinfachten  Ansatz aus  das
117. dnis interpretiert werden  den Softwareentwicklungsproze   nicht ausreichend  gut zu beherrschen  so dass ein Entwicklungsteam darauf aus Imagegr  nden bevorzugt  verzichtet     Techniken der Fehlertoleranz werden daher vorwiegend in Systemen zum Einsatz kom   men  an die h  chste Qualit  tsanforderungen gestellt werden  Dabei sollte Fehlertoleranz  ein zus  tzliches Mittel zur Erreichung dieses Zieles sein  aber andere Techniken der Feh   lervermeidung keinesfalls ersetzen     2 3  ZUSAMMENFASSUNG 35    2 3 Zusammenfassung    Im Umgang mit Fehlern lassen sich sehr unterschiedliche Interpretationen der diffe   renzierten Fehlerbegriffe finden  Wir haben die drei wesentliche Begriffe Fehlerursa   che  Fehlerzustand und Versagen identifiziert und diese informell charakterisiert und  klassifiziert  Ein pr  ziser und formaler Umgang mit Fehlern erfordert also ein genaues  Verst  ndnis der m  glichen Varianten und geeignete Beschreibungstechniken  um mit  konkreten Fehlern in konkreten Systemen zielf  hrend umgehen zu k  nnen     Sowohl Fehler als auch Fehlertoleranz sind relative Begriffe  Fehler lassen sich nur relativ  zu einer definierten Korrektheit bestimmen  Ein einzelner Fehler kann nur als Abwei   chung von einem intendierten  erw  nschten System  Zustand oder Verhalten sinnvoll  angegeben werden  Wir haben eine systematische Darstellung der Fehlerbegriffe vor   gestellt  die diese in Abh  ngigkeit einer Soll  Ist Abweichung verschiedener Merkmale  eines Systems charakter
118. dr  ckt  und es liegt in unserem Modell kein Versagen im Sinne  von Definition AP vor  Die auf dem Transitionssystem basierende Spezifikation erlaubt also eine                deutlich differenziertere Untersuchung     In modifizierten Transitionssystemen lassen sich neben der Menge der normalen Zust  n   de  die auch im unmodifizierten System erreicht werden k  nnen   der Menge der Fehl   zust  nde und der Menge der Versagenszust  nde noch weitere Klassen von Zust  nden  auszeichnen     e Zust  nde  die zu Fangzust  nden geworden sind  da die von ihnen ausgehenden  Transitionen durch E entfernt wurden  Das System w  re in solchen Zust  nden  nicht mehr reaktiv und w  rde seine Aktivit  t beenden  K  nnen diese Zust  nde  durch einen dem System neu erg  nzten Mechanismus erkannt werden  so kann man  auch eine entsprechende Reaktion in das System integrieren  wie wir in Kapitel D   diskutieren     98 KAPITEL 4  FORMALE MODELLIERUNG VON FEHLERN    e Zust  nde  die aufgrund entfernter Transitionen nicht mehr erreichbar sind  K  n   nen Lebendigkeitseigenschaften mit dem Erreichen bestimmter Zust  nde verkn  pft  werden  so kann man untersuchen  ob eine Modifikation die Erreichbarkeit der  Knoten und damit eine Systemeigenschaft gef  hrdet  Wir werden in Abschnitt  B 7 2 zeigen  wie man die Auswirkungen von entfernten Transitionen im Rahmen  von Beweisdiagrammen ermittelt     Die in diesem Abschnitt definierten Begriffe k  nnen zur Definition von Techniken zur  Fehlererkennung und
119. dustriellen An   wendung h  ngt in starkem Ma  e von der Unterst  tzung durch ein Werkzeug  ab  Ein derartiges Werkzeug sollte einen Entwicklungsproze   durchg  ngig un   terst  tzen  indem es beispielsweise die Nutzung verschiedenster Beschreibungs   techniken anbietet  Konsistenz  berpr  fungen durchf  hren kann  Verfeinerungs   schritte unterst  tzt und auch bei der Beweisf  hrung durch die Erzeugung und  idealerweise sogar Verifikation von Beweisverpflichtungen entscheidende Hilfen  anbietet  Mit AUTOFocus  6  liegt bereits ein Werkzeug f  r unser Systemmo   dell vor  allerdings noch ohne die Integration der Fehlermodellierung     Dieses Werkzeug ist im Sinne dieser Arbeit durch die Unterst  tzung des explizi   ten Umgangs mit Modifikationen als eigenst  ndiges Konzept so zu erweitern  dass  damit zus  tzlich die Modellierung von Fehlern auf den verschiedensten Abstrak   tionsebenen und die Integration von Techniken zur Fehlerbehandlung m  glich  gemacht wird     Mit der vorliegenden Arbeit sind die Grundlagen f  r eine formale Fehlermodellierung  f  r verteilte reaktive Systeme zur Verf  gung gestellt worden  F  r einen pragmatischen  und unmittelbaren Einsatz der Techniken empfehlen sich die weiterf  hrenden Arbeiten   die in diesem Abschnitt aufgef  hrt wurden     Literaturverzeichnis          ALPERN  BOWEN and FRED B  SCHNEIDER  Defining Liveness  Information  Processing Letters  21 181 185  1985     ARORA  ANISH  A foundation of fault tolerant computing  PhD thesis  
120. e  ber  cksichtigt werden     Nicht jeder Zustand a  der   ber fehlerhafte Transitionen erreicht werden kann  ist un   bedingt ein Fehlzustand  Ist n  mlich auch ein anderer Ablauf m  glich  der zu demsel   ben Zustand a f  hrt  ohne dabei Fehlertransitionen zu verwenden  so ist   nicht in  der Menge ERROR S M  enthalten  Abbildung    4  veranschaulicht einen derartigen  Fall  Es werden zwei Abl  ufe mit gemeinsamen Zust  nden dargestellt  Runde Knoten  repr  sentieren Zust  nde  die keine Fehlzust  nde sind  quadratische Knoten sind Feh   lerzust  nde  die fett gezeichneten Pfeile repr  sentieren Transitionen aus F  Der mit x  markierte Knoten ist kein Fehlzustand  da dieser auch   ber einen fehlerfreien Ablauf  erreichbar ist     W  ren alle Nachfolgerknoten von Fehlzust  nden auch wieder Fehlzust  nde  w  ren Me   chanismen zur Fehlerkorrektur nicht sinnvoll definierbar     4 3  FORMALISIERUNG DER FEHLERBEGRIFFE 95    oO  oe    Abbildung 4 4  Fehlerzust  nde in einem Ablauf    4 3 3 Versagen    Ein Versagen  engl  failure  wird   blicherweise als eine  von aussen  sichtbare Abwei   chung des Verhaltens vom spezifizierten Verhalten bezeichnet  Wir stellen diesen Begriff  wieder im Rahmen der Black Box Spezifikationen und Transitionssysteme dar     Bei Black Box Sichten definieren wir Versagen auf naheliegende Weise als die Menge der  Verhalten  die im modifizierten System auftreten k  nnen  im spezifizierten Verhalten  aber nicht  Eine derartige Abweichung vom spezifizierte
121. e  lich jeweils zwei etablierte Techniken f  r Hardware  und Softwa   refehler darstellen     Eine Voraussetzung f  r Fehlertoleranz ist die Fehlererkennung  Fehler k  nnen mit Hilfe  von Replikation erkannt werden  wenn eine Komponente identisch oder variiert repli   ziert wird und die Ergebnisse der verschiedenen Versionen verglichen werden  Sind die  Ergebnisse nicht identisch oder ist ihre Abweichung au  erhalb tolerierbarer Werte  so ist  dies ein Indiz f  r ein aufgetretenes Versagen  Replikation ist zwar m  chtig  kann aber er   hebliche Ressourcen erfordern und daher zu kostenintensiv sein  Versagen k  nnen auch  durch Umkehrungstests aufgedeckt werden  Von der Ausgabe eines Systems wird auf  die Eingaben zur  ckgeschlossen und die Plausibilit  t   berpr  ft  Eine Probe ist hierf  r  ein g  ngiges Beispiel  Sie ist geeignet  wenn die Umkehrung sehr viel leichter zu berech   nen ist als die zu berechnende Funktion  So l    t sich beispielsweise die Berechnung des  Quadrats viel effizienter durchf  hren als die Berechnung der Quadratwurzeln  Konsis   tenztests sind eine weitere Technik zur Fehlererkennung  So kann die Konsistenz von  Datenstrukturen   berpr  ft werden oder es werden Quittungen bei Daten  bertragun   gen eingefordert  Beispielsweise k  nnten Sensorenfehler durch zu abrupte   nderungen  der gelieferten Daten erkannt werden  Weitere M  glichkeiten zur Fehlererkennung sind  zeitliche   berpr  fungen  die mit Timern realisiert werden oder Codierungstests  di
122. e Auswirkung   ber verschiedene Abstrak   tionsstufen hinweg  Fehler k  nnen nicht nur innerhalb eines Systems auftreten  sondern  ebenso in der Umgebung eines Systems  Dieses Thema behandeln wir in Abschnitt  4 6   Wir schlie  en in  amp 7 mit einer Diskussion     Im darauffolgenden Kapitel 5  werden wir die Verwendungsm  glichkeiten des dargestell   ten erweiterten Formalismus eingehender diskutieren     4 1 Modifikation der Schnittstelle    Wie in Kapitel B  beschrieben  definiert man ein System durch zwei wesentliche Teile   seine Schnittstelle und sein Verhalten  Wir wollen beide Teile unabh  ngig voneinander  modifizieren k  nnen  also die Schnittstelle ver  ndern  und dabei das Verhalten weitge   hend unver  ndert lassen  und dann das Verhalten modifizieren  ohne dabei gleichzeitige    nderungen in der Systemschnittstelle ber  cksichtigen zu m  ssen  Diese Trennung er   leichtert einerseits die formale Fehlermodellierung und entspricht auch dem Wunsch   bei einer Systementwicklung unterschiedliche Aspekte weitgehend getrennt zu halten  und damit die Komplexit  t einzelner Entwicklungsschritte im Rahmen zu halten     Im Laufe einer Systementwicklung ist es m  glich  dass nicht von vornherein absehbar  ist  welche Kan  le mit welchen Typen zwischen dem System und seiner Umgebung bzw   zwischen den Komponenten eines Systems notwendig sind  So kann in einer abstrakten   idealisierten Spezifikation  in der Fehlerf  lle noch g  nzlich unber  cksichtigt sind  keine  M  glichk
123. e mit  Hilfe von Pr  fsummen korrupte Datens  tze erkennen     Nach der Erkennung eines Fehlers folgt idealerweise seine Behebung  Folgende drei  Prinzipien k  nnen dabei zur Anwendung kommen     R  ckw  rts Fehlerbehebung Bei einem auftretenden Fehler wird zu einem rechtzei   tig gespeicherten  korrekten R  cksetzpunkt zur  ckgesprungen  Die Speicherung  muss also regelm    ig erfolgen  so dass ausreichend fr  h und m  glichst zeitnah  vor dem m  glichen Auftreten von Fehlern ein R  cksetzpunkt gespeichert wird   Der gespeicherte Zustand muss selbst vor Fehlern gesch  tzt sein  Ein Vorteil der  R  ckw  rts Fehlerbehebung ist die allgemeine Anwendbarkeit  da diese Technik  weitgehend systematisch auf viele Systeme angewendet werden kann  unabh  ngig  von ihrer spezifischen Funktionalit  t  Nachteile sind der relativ hohe Aufwand  und Verluste in der Performanz der Systeme  W  hrend bei selten gesicherten    30 KAPITEL 2  DER FEHLERBEGRIFF    R  cksetzpunkten unter Umst  nden weit zur  ckgesetzt und damit lange Abl  ufe  erneut durchgef  hrt werden m  ssen  f  hrt h  ufiges Sichern von R  cksetzpunkten  zu einer nicht unerheblichen dauerhaften Verlangsamung des Systems     auch oh   ne auftretende Fehler  Nicht geeignet ist diese Technik jedoch bei permanenten  Fehlern  bei denen ein erneutes Durchf  hren keine Verbesserung erbringt  und bei  Systemen  die viel Interaktion mit ihrer Umgebung aufweisen  die sich nicht oder  nur schwer zur  cksetzen l    t     Vorw  rts Fehlerbe
124. e mit hohen Qualit  tsanforderungen unterst  tzt   Systeme und ihre potentiellen Fehler werden damit auf systematische Weise  modellierbar  analysierbar und behandelbar     Im einzelnen erfordert dieses Ziel die L  sung der folgenden Teilaufgaben     e Zun  chst soll der Fehlerbegriff im Rahmen eines formalen Systemmodells unter   sucht und m  glichst in   bereinstimmung mit etablierten  informellen Charakte   risierungen des Begriffs formal definiert werden     Die Eigenschaften des Fehlerbegriffes sind zu untersuchen und zu differenzieren   Fragen nach der Auswirkung von Fehlern in Komponenten auf das Verhalten des  Gesamtsystems  nach der Wirkung von Kombinationen und   berlagerungen von  auftretenden Fehlern und nach den Zusammenh  ngen von internen und externen  Fehlern sollen unter Ausnutzung eines formalen Kalk  ls beantwortbar werden     Um mit konkreten Fehlern in einem konkreten System umgehen zu k  nnen  m  ssen  angemessene Beschreibungstechniken f  r Fehler angegeben werden  die es erlau   ben  auf verschiedenen Abstraktionsebenen die durch Fehler bedingten Abwei   chungen von Ist und Soll zu formulieren     e Fehler in einem System erfordern die Integration von Techniken  die mit diesen auf  sinnvolle Weise umgehen  Dazu sind methodische Anleitungen zu erarbeiten  wie  ein idealisiertes  fehlerfreies System schrittweise zu einem fehlerbehafteten System  entwickelt werden kann  in dem Fehlern durch Fehlererkennung   behebung und   toleranz begegnet wird     e Der
125. e neue Transition tats  chlich von s ausgeht und nur  dann schaltbereit ist  wenn keine der ursprtinglichen Transitionen schalten kann  Damit  bleibt das Verhalten bei fehlerfreien Eingaben unver  ndert  wie wir es auch bei Black   Box A G Spezifikationen verlangt haben  Die Nachbedingung und der nachfolgende  Kontrollzustand der neuen Transition k  nnen beliebig definiert werden  und sollten eine  sinnvolle Fehlerbehandlung bewirken  Durch iteriertes Erg  nzen von Transitionen kann  ein System schlie  lich beliebig robust gegen  ber externen Fehlern gemacht werden     5 7  WIEDERVERWENDUNG VON BEWEISEN 143    Beispiel 5 7 Unterlauf des Puffers  Transitionssystem    In Beispiel AT2 haben wir den Puffer als Transitionssystem spezifiziert und die darin enthaltene  implizite Umgebungsannahme abgeleitet  Wir wollen nun erneut wie in Beispiel Bf  leine Reak   tion auf einen Unterlauf spezifizieren  Dazu zeichnen wir den Zustand aus  der einen Unterlauf  charakterisiert und ein Fangzustand des Systems ist     D trap g fiit  R A   4  0    Es liegt in diesem Zustand eine Anfrage vor  es sind aber keine Daten in q gespeichert  Wir defi   nieren f  r diese Situation wieder eine Reaktion  um die Robustheit gegen  ber einem derartigen  Umgebungsfehler zu erh  hen  Mit Hilfe der neuen Transition    Name Pre Input Output Post  Tuf  9 0   R     q  q    wird die nicht sinnvoll beantwortbare Anfrage einfach ignoriert  Die Vorbedingung dieser Tran   sition ist disjunkt zu den Vorbedingungen de
126. e sich in der Literatur finden  beispielsweise in  43  44  62   66       Lokalisierung Ein Fehler kann bez  glich eines Systems intern oder extern auftreten   falls der verwendete Systembegriff eine klare Grenze zwischen einem Innen und  einem Au  en eines Systems zul    t     Ein Fehler kann lokal sein  also einen relativ kleinen    berschaubaren Bereich in  beispielsweise einer Spezifikation oder einem Programm betreffen  oder er kann  verteilt in einem System auftreten  so zum Beispiel in einem Programm als eine  Inkonsistenz in der Reihenfolge von   bergabeparametern zwischen der Definition  und der Aufrufstelle einer Funktion     Ein Fehler kann in einer Spezifikation  in einem Systemdesign  in der Implemen   tierung  dem Programmtext  oder auch in den Umgebungsannahmen liegen     Ein Fehler kann in einer einzelnen verwendeten Komponente des Systems lokali   siert sein  oder in der Architektur des Systems  die fehlerfreie Komponenten auf  ung  nstige Weise zusammensetzt     Fehler k  nnen in der Hardware liegen oder sie k  nnen in der Software eines Sys   tems enthalten sein  Hardware  und Softwarefehler haben recht unterschiedlich  Eigenschaften  die wir in B 2Jansprechen werden     Verursacher F  r den Verursacher eines Fehlers gibt es zwei M  glichkeiten  Der Feh   ler kann durch einen Menschen verursacht worden sein oder durch die physika   lische Umwelt  Einfl  sse durch elektromagnetische oder radioaktive Strahlungen  auf Daten  bertragungseinrichtungen  Hitze mit 
127. e von q die Kapazit  tsgrenze von N noch nicht erreicht hat  Die Transition T2  reagiert auf den Empfang einer Anfrage R durch die Ausgabe des ersten Elementes in q und    3 Der Ausdruck     00 beschreibt den fiktiven Zustand  den ein System nach einem unendlichen Ablauf     erreicht     Er wird definiert in Definition  BIZ     4 6  FEHLER IN DER SYSTEMUMGEBUNG 117    dem Entfernen dieses Elements aus q  aber nur  wenn wirklich Daten in q gespeichert sind   Diese Vorbedingung stellt sicher  dass der Ausdruck ft q definiert ist     Aus diesem Transitionssystem wollen wir nun die darin enthaltene implizite Umgebungsannah   me ableiten  Wir wollen dazu die Eingabestr  me betrachten  bei denen das System nicht in  einen blockierenden Zustand ger  t  Hierf  r charakterisieren wir zun  chst die Umkehrung  also  die Eingabestr  me  bei denen das System h  ngenbleibt  F  r unseren Puffer sind diese F  lle  relativ leicht zu charakterisieren  da es nur einen Eingabestrom und einen Kontrollzustand gibt   Wir unterscheiden dazu nach der n  chsten zu lesenden Nachricht m vom Eingabestrom  f  r die  also gilt     i    m  Ci       Entsprechend der Typinformation   ber den Kanal i sind zwei F  lle m  glich     e Die n  chste zu lesende Nachricht ist ein Element d vom Typ D  Diese muss von Transition  T   gelesen werden  die aber nur schaltbereit ist  wenn  q  lt  N  Der Puffer blockiert also   wenn gilt          0   Adei    dLirn qg gt N    e Als n  chste Nachricht muss die Nachricht R kons
128. edr  ckt durch  Belegungen  die  unter anderem  den Eingabekan  len i     I Str  me zuweisen     AS     fa veelS  eViele   odi       00 i   na       00                 Wir illustrieren diesen Ansatz  in dem wir den Puffer aus Beispiel BJ als Transitions   system spezifizieren und daraus eine implizite Umgebungsannahme ableiten     Beispiel 4 12 Ableitung einer Umgebungsannahme    Der Puffer kann als Transitionssystem S    I  O  A  T  T  folgenderma  en definiert werden  Die  Variablenmenge A wird definiert zu  7    q   Der gelesene Teil von    wird damit standardm    ig  erg  nzt  Die Variable q vom Typ type q    D    verwenden wir als eigentlichen Puffer  in dem  die Daten gespeichert werden  Die Konstante N muss nicht in A aufgenommen werden  da wir  sie als globale Gr    e voraussetzen  Da wir keine Kontrollzust  nde ben  tigen  ist daf  r auch  keine Variable n  tig  Die Initialbedingung definieren wir zu    Ss    r  q   AP   A0       Dies besagt  dass der Puffer initial leer ist und der Puffer weder Eingaben gelesen noch Nach   richten gesendet hat     Wir ben  tigen zwei Transitionen 7  und 72 in T  jeweils f  r eine Nachricht vom Typ D und f  r  eine Anfrage R  Das sehr einfache STD ist in Abbildung A 7 dargestellt  Die beiden Transitionen  spezifizieren wir tabellarisch     Name Pre Input Output Post  Ti  q lt N id     qd  q   da   T2  4 gt 0 WR olft g qg  rtq    Die Transition r   liest ein Datum d vom Eingabekanal und h  ngt dieses an q an  aber nur   wenn die L  ng
129. ee E 56  eee er en ee eee a Re Er 57  en nee Rie bee eae as 64   ohne abe ead  een Babe 65   piweG eee ee ee 68  EIERN 70    3 11 Idealisierter Entwicklungsproze  l     2 22  2 cm mn  71    Sgt EE ae er E eng 76  pee Shy ee ee ate ee ee dee 83  oh oe oa TETEE EEEE 90  pe Pees abe aaa eee ap as 95  ee eae eee a  107    171    172 ABBILDUNGSVERZEICHNIS    4 6 _Korrespondierende Modifikationen      22  22  nn m mn  111  4 7 __Transitionssystem des Puffersl       2 2 2  Hm m nn  116    se tay eta re a TEE 126  eaten eb  ee 127  eee ee eee 129  Pepa hans 133  ee entre 138  am ES 138  ee 146  ee  147       
130. eginnen zu m  ssen  Die   nderungen werden an allen  Knoten auf verschiedenen Abstraktionsstufen als Modifikationen repr  sentiert     Die Verwendbarkeit des Formalismus wird nachgewiesen  indem er in Abschnitt  BI  exemplarisch in typischen Anwendungsmustern dargestellt wird  wie sie bei  der Entwicklung eines Systems mit potentiellen Fehlern auftreten     Mit Hilfe von Orakelstr  men und virtuellen Komponenten aus Abschnitt 5 2  wird  es erm  glicht  Fehlerannahmen zu formulieren  die mehrere Komponenten betref   fen  Diese Annahmen treten somit explizit und gut dokumentiert als gew  hnliche  Teile des Systems auf  Sie m  ssen nicht  wie in anderen Formalismen oft notwen   dig  au  erhalb des formalen Rahmens erfa  t werden     In den Kapiteln  5 3  E J und  5 5  werden Techniken pr  sentiert  mit denen Fehler  erkannt  gemeldet und behandelt werden k  nnen  Es wurden Kriterien vorgestellt   die formalisieren  wann eine Fehlererkennung relativ zu einem gegebenen Fehler   modell korrekt ist  Wir haben Modifikationen erarbeitet  die     angewandt auf ein  System     dazu f  hren  dass auf einen erkannten Fehler mit einer Fehlermeldung  reagiert wird  Als Verallgemeinerung haben wir eine Modifikation angegeben  die  eine frei definierbare Reaktion auf einen erkannten Fehler in ein System einf  gt     6 2  WEITERF  HRENDE THEMENGEBIETE 161    Als konkrete Beispiele haben wir den Stopp oder Neustart als Fehlerreaktion eines  Systems vorgestellt     e Oft sind mit einem System Um
131. egung a  definiert werden  Diese weist einer Variablen v    denselben Wert zu  der  von Q an v zugewiesen wird  also   VveVeav av  Um einer Formel  die sowohl einfache als auch gestrichene Variablen enth  lt  einen  Wahrheitswert zuzuweisen  verwenden wir eine Belegung a und eine gestrichene Bele     gung B   Die Aussage    a  BK          gilt  wenn    wahr wird  wobei die einfachen Variablen mittels a  die gestrichenen Va   riablen mittels 3 ausgewertet werden     Die Menge der freien Variablen in    wird bezeichnet als free      Mit x     free      beschreibt    y x  die Formel     in der aber alle Vorkommen von z durch y ersetzt  sind                 3 3 Systemschnittstelle    Die Schnittstelle eines Systems beschreibt seine Ein  und Ausgabekan  le  Sie wird de   finiert durch zwei Mengen  die jeweils die Namen der Kan  le angeben  F  r die Kan  le  m  ssen zugeh  rige Typen definiert sein     Definition 3 3 Schnittstelle    Die Schnittstelle eines Systems wird durch ein Paar  I  O   bestehend aus einer end   lichen Menge I der Eingabekan  le sowie einer endlichen Menge O der Ausgabekan  le  beschrieben  mit IU O C VAR   Allen Kan  len ce IU O werden durch die Funktion  type Typen zugeordnet  die die Menge der m  glichen Nachrichten enthalten  die   ber  einen Kanal gesendet und empfangen werden k  nnen                 Die Mengen J und O werden typischerweise graphisch repr  sentiert  wie dies in Abbil   dung B 1  f  r das folgende Beispiel dargestellt ist     3 4  SYSTEMV
132. eise hat ein System nicht die gew  nschten Eigenschaften von Fehlertole   ranz  da es m  glicherweise noch ohne Ber  cksichtigung potentieller Fehler entwickelt  wurde  Nach der Identifikation der zu erwartenden Fehler und ihrer Formalisierung  durch Modifikationen ist das System im weiteren Verlauf des Entwicklungsprozesses  um entsprechende Mechanismen der Fehlertoleranz zu erweitern  Entsprechende Ent   wicklungsschritte werden in Kapitel  5  vorgestellt     4 5 Eigenschaften von Modifikationen    Wir werden in diesem Abschnitt weitere Konzepte und Eigenschaften definieren  die auf  Basis des vorgestellen Modifikationsbegriffes m  glich geworden sind  Dazu zeigen wir   wie mehrere Modifikationen zu einer Modifikation kombiniert werden k  nnen und unter   suchen ihre Wirkung   ber verschiedene Beschreibungsebenen hinaus  Wir diskutieren  die Zusammenh  nge von Modifikationen bez  glich verschiedener Beschreibungstechni   ken unter dem Stichwort der korrespondierenden Modifikationen     4 5 1 Kombination von Modifikationen    Im Laufe eines Entwicklungsprozesses ist es m  glich  dass ein System mehreren Modi   fikationen ausgesetzt wird  Es ist auf dem Weg zu einem realistischen System in einer  ebenso realistischen  also unter Umst  nden fehlerbehafteten Umgebung nicht immer  von Anfang an in vollem Umfang bekannt  wie ein System angepasst werden muss   Es sind stattdessen mehrere Iterationen m  glich  Eine Komponente wird ver  ndert   was die Modifikation einer anderen Kom
133. eit vorgesehen sein  um Fehlermeldungen zu   bertragen oder um Reaktionen  auf Fehlermeldungen  beispielsweise einen Neustartbefehl  auszugeben  Eine Modifikati     4 1  MODIFIKATION DER SCHNITTSTELLE 77    on der Schnittstelle muss also im Rahmen eines Entwicklungsprozesses m  glich gemacht  werden  In diesem Abschnitt stellen wir dazu die formalen Grundlagen bereit     Wir betrachten nur Modifikationen der Schnittstelle zur Entwicklungszeit des Systems   also im Rahmen einer Systementwicklung  Ver  nderungen der Schnittstelle zur Laufzeit  des Systems  wie dies in mobilen und dynamischen Systemen  32  B0   29  geschieht  sind  nicht Gegenstand unserer Untersuchungen     Wir gehen im folgenden     wie in Abschnitt B 3   von einem System   mit der Schnitt   stelle  I  O  aus  wobei    Leise   O    01      Om     Das Verhalten von S sei durch eine Relation R gegeben  Wir unterscheiden in den  n  chsten beiden Abschnitten die Erweiterung der Schnittstelle von der Einschr  nkung  der Schnittstelle  W  hrend wir eine Erweiterung als Entwicklungsschritt formal un   terst  tzen  werden wir die Einschr  nkung  unter Angabe von Gr  nden  nicht zulassen     4 1 1 Erweiterung der Schnittstelle    Eine Erweiterung der Schnittstelle eines Systems kann sich in vier Varianten auspr  gen   Diese im folgenden kurz beschriebenen vier Varianten lassen sich durch Beispiele moti   vieren  die ihre Relevanz in konkreten Entwicklungsszenarien zeigen     e Die Schnittstelle wird um einen neuen Eing
134. elder  identifizieren  Wir haben sie weitgehend im Einklang mit der in der Fachliteratur  aufzufindenden Terminologie zun  chst informell charakterisiert     Ein   berblick   ber die relevanten Ans  tze und den Stand der Technik zur forma   len Fehlermodellierung macht Defizite in diesem Gebiet deutlich  Oben genannte  Fehlerbegriffe sind nicht oder nur unzul  nglich formal definiert  und die Ans  tze  sind in ihrer Ausdruckskraft eingeschr  nkt  Sie bieten wenig methodische Un   terst  tzung eines Entwicklungsprozesses und keine pragmatischen Beschreibungs   techniken zur Spezifikation fehlerbehafteter Systeme     Damit motiviert sich der allgemeinere und umfassendere formale Ansatz  der mit  dieser Arbeit verfolgt wurde     Als Grundlage f  r einen pr  zisen und formalen Umgang mit Fehlern haben wir  die Methodik Focus ausgew  hlt  Sie bietet alle Voraussetzungen  die zur Ent   wicklung der wichtigen Systemklasse der verteilten  reaktiven Systeme notwendig  sind  Die verschiedenen Beschreibungstechniken  die kompositionale Semantik  die  m  chtigen Verfeinerungsbegriffe  die vorhandenen Beweistechniken und ein bereits  verf  gbares Werkzeug machen FOCUS zu einem guten Ausgangspunkt  um es zu   sammen mit den hier pr  sentierten Erweiterungen auch in der Praxis einzusetzen     Um diese Arbeit auch Lesern ohne Vorkenntnisse   ber die Methodik Focus  zug  nglich zu machen  haben wir in Kapitel Blalle Aspekte von Focus  die f  r  diese Arbeit relevant sind  kurz vorgestellt und
135. emverhalten nicht durch die Fehler  beeinflu  t  es liegt also maskierende  ansonsten nicht maskierende Fehlertoleranz vor   Kann ein System von beliebigen Zust  nden aus wieder in Normalzust  nde zur  ckfinden     28 KAPITEL 2  DER FEHLERBEGRIFF    nennt man dies global stabilisierendes System  ansonsten nur lokal stabilisierend   Ein  global stabilisierendes System ist ein selbst stabilisierendes System  vergleiche Abschnitt  RIJ    In ihren Arbeiten nutzen die Autoren ihren Ansatz  um sogenannte Detektoren und  Korrektoren als notwendige Bestandteile fehlertoleranter System charakterisieren zu  k  nnen  W  hrend Detektoren das Auftreten von Fehlern aufdecken  f  hren Korrekto   ren nach der Fehlererkennung das System wieder in einen fehlerfreien Zustand zur  ck   Detektoren sind die minimale Voraussetzung f  r Fehlertoleranz  mit der fail stop Ver   halten erreicht werden kann  Dabei wird beim Auftreten von Fehlern ein System an   gehalten  Mit Korrektoren k  nnen stabilisierende Systeme konstruiert werden  Sind  beide Bestandteile f  r ein Fehlermodell verf  gbar  kann maskierende Fehlertoleranz er   reicht werden  In  42  besch  ftigen sich die Autoren mit dem automatischen Erg  nzen  von Mechanismen der Fehlertoleranz f  r fail stop  maskierender und nicht maskierender  Fehlertoleranz mit Untersuchungen der Komplexit  t dieser Algorithmen     Bewertung der Ans  tze    Alle Autoren gehen von Systemspezifikationen aus  die als korrekt definiert werden  In  keinem der Ans 
136. en   diagrammen muss bei seiner Formulierung ein angemessener Kompromi   zwischen  einer spezifischen  starken und einer allgemeinen  aber daf  r schwachen Aussage  gew  hlt werden     Jeder neue Knoten muss wieder alle Eigenschaften erf  llen  die in einem Fort   schrittsdiagramm von den Knoten gefordert werden  Insbesondere m  ssen also  alle Transitionen wieder in bestehende Knoten f  hren  und immer muss mindes   tens eine ausgehende Transition schaltbereit sein  Alternativ ist es auch m  glich   die Fortschrittseigenschaft abzuschw  chen zu      Y V     1  Das Erg  nzen eines  neuen Knotens kann noch weitere neue Knoten erfordern     5 7  WIEDERVERWENDUNG VON BEWEISEN 151                                              PA  T3 1 TA  an pe cin        A    c 2 en  T2  Ti T2 T1  71 T2   o gt k             Abbildung 5 10  Erweitertes Fortschrittsdiagramm f  r Merge    Das Erweitern der Transitionsmenge eines Systems korrespondiert mit einer Erweite   rung des Fortschrittsdiagramms  Das urspr  ngliche Beweisdiagramm kann damit als  Teildiagramm vollst  ndig wiederverwendet werden  solange die Fortschrittseigenschaft  unver  ndert erhalten bleibt     Beispiel 5 9 Anpassung des Fortschrittsdiagramms von Merge    Die Komponente Merge gibt alle Nachrichten  die ihr   ber die beiden Eingabekan  le zugesen   det werden  auch wieder aus  Diese Fortschrittseigenschaft wurde mit Hilfe des Diagramms in  Abbildung BJ  gezeigt     Wir wollen nun die Auswirkungen der Modifikation aus Beispiel
137. en  Fehlerzustand genau dann  wenn in diesem Zu   stand W gilt  also    a     Error Buffer  2  73     lt  aY           130 KAPITEL 5  METHODISCHER UMGANG MIT FEHLERN    Korrektheit folgt daraus unmittelbar  Lebendigkeit zeigt sich mit der Wahl j   k  so dass das  erste Disjunktionsglied erf  llt ist  Mit      k  1      ergibt sich sofort die Disjunktion der  Stabilit  tsaussage     Den Beweis von     kann man auf das Invariantendiagramm in AbbildungB 3labst  tzen  Daran  ist einerseits erkennbar  dass nach der Ausf  hrung der Fehlertransition 73 das Pr  dikat    erf  llt  ist  und dass dieses andererseits auch nur durch Ausf  hrung von 73 wahr wird  Es liegt uns  hier wiederum ein Beispiel vor  das die Erweiterung von Beweisdiagrammen bei nachtr  glich  modellierten Fehlern illustriert  F  r den fehlerfreien Fall ohne die Ausf  hrung der Transition 73                zeigt das Diagramm die Aussage Buffer IF inv z    q     In anderen Ans  tzen  wie zum Beispiel in  47   48   wird Fehlererkennung vereinfacht   indem alle Fehlertransitionen in F eine boolesche Variable f von false auf true set   zen m  ssen  Wurde eine Fehlertransition ausgef  hrt  ist dies unmittelbar am Wert von  f erkennbar  Gegen diesen Ansatz sprechen einige Argumente  Zum einen ist es im  allgemeinen praktisch nicht m  glich  auftretende Fehlertransitionen sofort durch das  System selbst erkennen zu lassen  Beispielsweise ist der Verlust von Daten auf einem    bertragungskanal nicht ohne spezielle Mechanism
138. en Fall  Modifiziert beispielswei   se M   die Eingabekan  le  aber Ma die Ausgabekan  le  so ist M nur durch die Variante  darstellbar  die beide Kanaltypen modifiziert     4 5 2 Fortpflanzung von Modifikationen    Wird ein System modifiziert  so hat dies selbstverst  ndlich auch Auswirkungen auf die  Umgebung des Systems  Zeigt das System neues Verhalten  so wird die Umgebung mit  neuem Verhalten darauf reagieren  zeigt das System im Gegenteil ein bestimmtes Ver   halten nicht mehr  wird auch die Umgebung ein entsprechend anderes  meist reduziertes  Verhalten aufweisen     Da wir   nderungen im Verhalten von Systemen durch Modifikationen ausdr  cken k  n   nen  sind wir in der Lage  die Auswirkungen der Modifikation eines Systemteils erneut  als Modifikation des Gesamtsystems auszudr  cken  Wir gehen im folgenden entspre   chend Abbildung  4 5  von einem zusammengesetzten System   aus  das aus zwei Kom   ponenten S   und S2 besteht  d h     S   518 5    Aufgrund der Eigenschaften unseres Systemmodells sind wir durch die Abst  tzung der  folgenden Definition auf nur zwei Komponenten keineswegs in der Anwendbarkeit ein   geschr  nkt  da sich beliebig viele Komponenten immer durch eine Komponente aus   dr  cken lassen  die aus ihnen zusammengesetzt wird  So kann S4 tats  chlich nur eine    4 5  EIGENSCHAFTEN VON MODIFIKATIONEN 107                                                    I  5  ce  L   S  S    Abbildung 4 5  Zusammengesetztes System    Komponente sein  w  hrend S2 die
139. en Fehlern in einem System  da Fehler unter Umst  nden nicht  eindeutig lokalisiert und damit auch nicht sinnvoll quantifiziert werden k  nnen     4 3 2 Fehlzustand    Weist ein System einen Fehler auf  so kann dieser in einem Ablauf eines betroffenen  Systems eine Wirkung haben  und zwar sowohl auf interne Zust  nde als auch auf das  nach aussen sichtbare Verhalten  Nach aussen sichtbares Fehlverhalten werden wir noch  unter dem Begriff Versagen diskutieren  Die Sichtbarkeit ist in unserem Systemmodell  durch die Festlegung der Schnittstelle jedes Systems gegeben  Die in  J  O  enthaltenen  Kan  le sind sichtbar  w  hrend andere Bestandteile systemintern und f  r die Umgebung  unsichtbar bleiben     Die Beschreibungstechnik der Black Box Sichtweise wie auch die Modifikationskompo   nenten nehmen keinerlei Bezug zu Interna von Systemen  Daher k  nnen mit ihnen keine  internen Zust  nde eines Systems und somit auch keine Fehlzust  nde charakterisiert wer   den  Mit dem Formalismus der Transitionssysteme steht uns aber eine weitere Sicht auf    94 KAPITEL 4  FORMALE MODELLIERUNG VON FEHLERN    Systeme zur Verf  gung  mit dem Zust  nde und damit auch Fehlzust  nde angemessen  dargestellt werden k  nnen  Wir definieren Fehlzust  nde als die Zust  nde in einem Sys   temablauf  die nur unter Verwendung von Fehlertransitionen  aus F mit M    E  F    erreicht werden k  nnen     Definition 4 8 Fehlzustand    Sei ein Transitionssystem S und eine Modifikation M    E F  gegeben  Die Men 
140. en Modifikationen fordern  um die Kombination von Modifikationen  zu erleichtern     Beispiel 4 3 Da das modifizierte System MergeA M nur noch die Nachrichten eines der bei   den Eingabekan  le ausgeben soll  m  ssen wir alle Str  me entfernen  in denen auf o Nachrichten  von Kanal i und i2 vorkommen  Das modifizierte System zeigt kein neues Verhalten  so dass  keine neuen Stromtupel erg  nzt werden m  ssen  Wir definieren die Modifikation also zu    M    E         wobei E alle Tupel enth  lt  deren Ausgabestr  me sowohl Daten mit dem Index 1 als auch mit  dem Index 2 enthalten     E     di  di  di      da  dj  dy           di  d2         di  di  dy         J  d2  dy  dy      3  d2  d1          di  di  di      J  d2  d3  dy          d    di  d2            J  da  d3  dy          dz  d   di        d    di  dy                      4 2  MODIFIKATION DES VERHALTENS 85    Das Beispiel macht  erneut  deutlich  dass die explizite Angabe von Relationen durch  Auflistung nicht geeignet ist  um konkrete Systeme und ihre Modifikationen zu definie   ren  Wir geben im folgenden geeignetere Beschreibungtechniken an     4 2 2 Modifikationen von Black Box Spezifikationen    Eine Black Box Spezifikation    kann im wesentlichen auf zwei Arten modifiziert werden   Die durch    beschriebene Eigenschaft kann durch Hinzunahme weiterer Eigenschaften  verst  rkt werden  und sie kann durch Anbieten von alternativen Eigenschaften abge   schw  cht werden     Die Verst  rkung kann durch eine Konjunktion 
141. en Verst  ndnis und k  nnen einen  bewu  teren Umgang mit Fehlern und ihren spezifischen Eigenschaften erm  glichen     Fehler k  nnen nur relativ zu einer als korrekt und damit fehlerfrei akzeptierten Fassung  eines Systems definiert werden  Liegt ein korrektes System S und seine fehlerbehaftete  Version      vor  ist der Fehler als der Unterschied zwischen diesen beiden Fassungen  beschrieben  wenn auch nur sehr implizit  Der Fehler selbst w  re so noch nicht direkt  formal greifbar  Der Unterschied kann alle Merkmale eines Systems betreffen  wobei Un   terschiede im Verhalten im Vordergrund stehen  Wir werden noch genauer differenzieren  zwischen Unterschieden statischer Systemanteile  Unterschiede in der Schnittstelle und  Unterschiede im Verhalten eines Systems     Wir interpretieren Fehler eines Systems explizit als die Modifikation  die aus der fehler   freien Version die fehlerbehaftete macht  Eine derartige Modifikation erlaubt es damit   von einer idealisierten Sicht auf ein System zu einer realistischen und damit implemen   tierungsn  heren Sicht   bergehen zu k  nnen     Die formale Definition von Fehlern eines Systems erlaubt eine Unterscheidung von Sys   temverhalten in drei disjunkte Klassen  die in Abbildung   I  dargestellt sind  In der  Mehrzahl typischer formaler Ans  tze wird nur das intendierte Verhalten eines Systems  untersucht und spezifiziert  Bei der Ber  cksichtigung von Fehlern wird zus  tzliches Sys   temverhalten in die formale Behandlung mit ein
142. en des Systems  w  hrend der Ausnahmebehandlung zu deaktivieren     Eine Ausnahmebehandlung wird mit einem Transitionssystem verkn  pft  indem zwei  Pr  dikate W und    definiert werden  Dabei beschreibt Y einen Fehler  oder Ausnah   mezustand  in dem die Ausnahmebehandlung gestartet werden soll  w  hrend    die  Zust  nde des Systems charakterisiert  in die nach der Ausf  hrung der Ausnahmebe   handlung zur  ckgesprungen wird  Formal k  nnen wir dies folgenderma  en definieren     Definition 5 1 Ausnahmebehandlung in Transitionssystemen    Seien ein Transitionssystem S    I  O  A  T  T  mit xp    A und type xp     true  false   sowie zwei Pr  dikate W und    gegeben     Eine Ausnahmebehandlung wird durch eine Transitionsmenge C und die zwei Zustands   pr  dikate Entry und Exit definiert  Dabei gelte    v a  8  E    C    a   zp A p E zp          Die Erweiterung von S um die Ausnahmebehandlung  die bei G  ltigkeit von Y gestar   tet wird und die nach Ausf  hrung in einen Zustand zur  ckspringt  f  r den    gilt  ist  definiert durch    SA E F   mit  F  CU      a B   PsEmwnra FV  i  E Entry  AVB  e Agree a  3     C Agree a  3    U      a 8   BEaAaspAak ExitNBE    AV 3  o Agree a  3     C Agree a  P       E    a 8   of ap  U   a 8  ako      Dabei sei xp in diesem System mit false initialisiert                                      136 KAPITEL 5  METHODISCHER UMGANG MIT FEHLERN    Diese Definition bedarf einer Erl  uterung  Die Variable xp wird beim Eintritt in die Aus   nahmebeha
143. en erkennbar  Zum anderen k  nnen  Fehlertransitionen ausgef  hrt werden  ohne dass dies unbedingt zu einem Fehlerzu   stand f  hrt  So kann in bestimmten Situationen die Wirkung einer Fehlertransition von  einer normalen Transition nicht zu unterscheiden sein  wenn beispielsweise der Wert  von Variablen ver  ndert wird  die ohnehin ohne weiteren Lesezugriff neu   berschrieben  werden     Dennoch kann es n  tzlich sein  eine fehleranzeigende Variable f einzuf  hren  die bei  der Verifikation genutzt werden kann  um beispielsweise die Korrektheit eines Fehler   erkennungspr  dikates zu beweisen  Sie geh  rt aber nicht zu den Variablen  auf die das  System selbst zugreifen kann  darf also nicht Teil von W sein     Eine pragmatische Realisierung von fehlererkennenden Pr  dikaten im Rahmen konkre   ter Programmiersprachen wird in  55  diskutiert  Darin wird gezeigt  wie die G  ltigkeit  von Invarianten und Vor  und Nachbedingungen von Prozeduraufrufen mit program   miertechnischen Mitteln   berwacht wird und wie auf Verletzungen geforderter Eigen   schaften mit Hilfe von Exceptions reagiert werden kann  Definiert man ein fehlererken   nendes Zustandspr  dikat Y bereits auf der abstrakten Ebene des Transitionssysteme   kann es sowohl formal auf Korrektheit  Stabilit  t und Lebendigkeit untersucht werden  als auch mit den programmiersprachlichen Techniken konkret in einer Implementierung  verwendet werden     5 4 Einf  hrung von Fehlermeldungen    Eine einfache  m  gliche Reaktion 
144. en springt das System in den Fangzustand  von dem aus keine Transitionen  mehr m  glich sind  so dass insbesondere keine Ein  und Ausgaben mehr stattfinden   Damit bleiben automatisch alle Sicherheitseigenschaften des Systems erhalten     Der Sprung in den Fangzustand muss von allen erreichbaren Zust  nden des Systems  m  glich sein  In einer graphischen Repr  sentation eines Systems stellt sich wie in Ab   bildung 5 4Ja  der Fangzustand als ein neuer Knoten f dar  Zu diesem f  hren von allen  anderen Knoten des Systems jeweils eine Transition  w  hrend von ihm keine Transition  mehr ausgeht  F  r kleinere Systeme ist diese Darstellung sehr intuitiv  F  r gro  e  kom   plexe Systeme mit zahlreichen Kontrollzust  nden ist diese Darstellung allerdings nicht    134 KAPITEL 5  METHODISCHER UMGANG MIT FEHLERN    gut geeignet  da viele neue Kanten erg  nzt werden m  ssen  Wir k  nnen den Sprung in  einen Fangzustand auch sehr kompakt als Modifikation M ausdr  cken     Wir ben  tigen dazu eine neue boolesche Variable trap  die initial den Wert false besitzt   f  r die also gelten soll    Y     trap    Wird ein Fehler durch ein Pr  dikat    erkannt  soll     vollkommen unabh  ngig vom  Zustand des Systems   in den Fangzustand gesprungen werden  Dies wird erreicht durch  eine Modifikation mit    Name Pre Input Output Post    F    Ttrap U trap    Der Sprung in den Fangzustand soll sofort erfolgen  wenn der Fehler entdeckt wurde   Daher sind jene Transitionen zu entfernen  die es erlaub
145. en wiirden  dass das System  weiterarbeitet  obwohl der Fehler bereits entdeckt wurde  Da auch im Fangzustand das  Pr  dikat W wahr bleibt  ist sichergestellt  dass keine Transitionen von ihm ausgehen   Es ist also ausreichend  die folgenden Transitionen zu entfernen     E     a 8  a  U     Damit beschreibt der Ausdruck SA E  F  f  r jedes System S mit dem Fehlerpr  dikat Y  das System  das bei Auftreten eines an Y erkennbaren Fehlers seine Aktivit  t einstellt   Die sogenannten fail safe Systeme lassen sich mit dieser Technik modellieren        Im Unterschied zu Fehlermodellen wie crash failure und fail stop failure  die den Halt  des Systems bereits mit enthalten  wird hier bewu  t der Sprung in den Fangzustand  als Reaktion auf einen beliebigen  durch Y charakterisierbaren Fehler gew  hlt     Neustart des Systems In Abbildung B 4b  wird der Neustart eines Systems bei  einem auftretenden Fehler dargestellt  Wird ein Fehler durch Y erkannt  wird in einen  Startzustand s gesprungen     Soll diese Fehlerbehandlung graphisch repr  sentiert werden  gelten die gleichen Vor   und Nachteile wie beim Sprung in den Fangzustand  W  hrend die graphische Darstel   lung bei kleineren Systemen sehr intuitiv ist  wird sie bei komplexen Systemen schnell  un  bersichtlich  Da es mehrere Knoten geben kann  die Startzust  nde darstellen  ist es  hier sogar n  tig  von jedem Knoten des Systems eine Transition zu jedem Startknoten  zu erg  nzen     Ein Neustart ist durch eine Modifikation erneut
146. ene L  sung  So k  nnen Fehler in Einzelkomponenten nicht immer auf lokaler Ebene  maskiert werden  sondern setzen sich in ihrer Wirkung in andere Komponenten und  schlie  lich im Gesamtsystem durch  Sie m  ssen dann auch im Rahmen einer abstrak   ten  systemglobalen Sicht ber  cksichtigt werden  und entsprechend bei einer formalen  Beschreibung der Systeme mit erfa  t werden  Die Aufnahme und Ber  cksichtigung von  Fehlern stellt damit einen wichtigen Schritt dar von einer idealisierten  fehlerfreien Welt  hin zu einer realen Welt mit potentiellen Fehlern  Auch dieser Schritt muss im Rahmen  einer formalen Systementwicklung mit unterst  tzt werden     157    158    KAPITEL 6  ZUSAMMENFASSUNG UND AUSBLICK    Mit den in dieser Arbeit pr  sentierten Modellierungs  und Entwicklungstechniken lie   gen alle wesentlichen Grundlagen hierf  r vor  Der Fehlerbegriff und die damit zusam     menh  ngenden Konzepte aus seinem thematischen Umfeld wurden formal fundiert und  zusammen mit methodischen Hinweisen in die Methodik FOCUS eingebettet     Wir geben hier einen   berblick   ber die wichtigsten Beitr  ge dieser Arbeit mit ihren  jeweiligen Konsequenzen     Um sinnvolle und ad  quate Fehlerbegriffe zu definieren  haben wir in KapitelP die  in der Literatur auffindbaren Interpretationen dieses Begriffes diskutiert und ver   schiedene Klassifikationen dargestellt  Es lie  en sich die Begriffe der Fehlerursa   che  des Fehlerzustandes und des Versagens als die drei wesentlichen Begriffsf
147. er Komponente quantitativ  auszudr  cken  wobei aber die Kausalit  t dennoch sichergestellt bleibt   Wir be   schr  nken uns damit auf eine abstrakte Darstellung von Systemen  indem wir alle    3 11  ZUSAMMENFASSUNG 73    Varianten von Verhalten zusammenfassen  die sich nur in ihrem konkreten Ablauf  in der Zeit unterscheiden     Wir wollen uns in dieser Arbeit mit der Modellierung von Fehlern besch  ftigen   Auftretende Fehler k  nnen im allgemeinen neben einer Ver  nderung des Verhal   tens auch eine Ver  nderung in der Zeit bewirken  Diese Aspekte sind in einer  vollst  ndigen Behandlung von Fehlern selbstverst  ndlich zu ber  cksichtigen  im   plizieren aber eine zus  tzliche Komplexit  t in der Behandlung  F  r die Erarbei   tung der grundlegenden Techniken im Umgang mit Fehlern im Rahmen dieser  Arbeit wollen wir uns hier aber auf das ungezeitete Systemmodell beschr  nken   um die Modellierung von Fehlern zun  chst relativ einfach darstellen zu k  nnen   Daher fokussieren wir in dieser Arbeit zun  chst auf die Auswirkungen von Fehlern  ohne Ber  cksichtigung zeitlicher Aspekte und regen eine weiterf  hrende Untersu   chung in Kapitel  J an     e Im asynchronen Modell erfolgt die Kommunikation zwischen zwei Komponenten  so unabh  ngig wie m  glich  Das Senden einer Nachricht ist zu jedem Zeitpunkt  m  glich und vom Empfangen der Nachricht entkoppelt  Es gibt keine Garantien   wann und ob die Nachricht vom Empf  nger gelesen wird  Sichergestellt ist nur   dass der Empfang
148. er Str  men betrachten  Typischerweise beschreibt man  eine Relation durch eine Formel  die die Elemente charakterisiert  die in der Relation  enthalten sind  Diese Beschreibungstechnik verwenden wir auch f  r unsere Verhaltens   spezifikationen     Eine Black Box Spezifikation beschreibt das Verhalten eines Systems durch ein Pr  dikat   Wir gehen von einem System aus  f  r das die Schnittstelle bereits definiert sei  In dem  Pr  dikat d  rfen die Bezeichner f  r die Kan  le des Systems als freie Variable vorkommen   Das Pr  dikat charakterisiert dann diejenigen Tupel von Ein  und Ausgabestr  men  f  r  die das Pr  dikat wahr wird  wenn man die Kanalbezeichner durch die Str  me ersetzt   die auf ihnen empfangen bzw  gesendet werden     Definition 3 4 Black Box Spezifikation    Eine Black Box Spezifikation eines Systems mit der Schnittstelle  I  O  besteht aus  einem Pr  dikat     das Variablen aus TU O als freie Variablen hat  d h  free     C IUO    Das Pr  dikat beschreibt die Menge aller Ein  und Ausgabestr  me  die dieses Pr  dikat  erf  llen     KB E    m   6                  3 5  BLACK BOX SPEZIFIKATIONEN 45    Es ist m  glich  ein Pr  dikat zu definieren  das nicht konsistent  nicht linkstotal oder  auch nicht kausal ist  Das Pr  dikat beschreibt in einem solchen Fall kein realisierba   res Verhalten  und es gibt kein konkretes  implementiertes System  dessen Ein  und  Ausgabestr  me das Pr  dikat erf  llen k  nnten  Die Konsistenz und Kausalit  t muss  bei Bedarf durch
149. er der Baum aufgebaut wird  Die Wurzel des Entwicklungsbaumes enth  lt  eine abstrakte Black Box Spezifikation     die das Verhalten des gesamten Systems be   schreibt  Diese Spezifikation wird typischerweise pr  zisiert durch die Hinzunahme wei   terer Anforderungen und das F  llen von Entwurfsentscheidungen zu einer Spezifikation         Eine strukturelle Verfeinerung hat als Ergebnis eine Reihe von Unterspezifikationen    1             Dazu geh  rt eine  in der Abbildung nicht dargestellte  Verschaltung  die die  Kan  le zwischen den Komponenten und damit die m  glichen Interaktionen beschreibt   Die Komponenten selbst k  nnen wieder weiter in ihrem Verhalten  ihrer Schnittstelle  oder ihrer Struktur verfeinert werden     Da die Komposition und der Nachweis einer Verfeinerung auf der Ebene der Black Box  Spezifikationen relativ leicht durch einfache Konjunktionen und Implikationen auszu     3 11  ZUSAMMENFASSUNG 71                                                                         Verhaltens   Schnittstellen   verfeinerung  Black Box  Spezifikationen   p    Strukturelle Verfeinerung         s     vex    by       Eigenschaftsnachweise  Transitionssysteme er Si  los   oS vice    Sa                               Abbildung 3 11  Idealisierter Entwicklungsproze      dr  cken ist  empfiehlt es sich  die Systembeschreibungen m  glichst lange auf diesem  Abstraktionsniveau zu halten  Letztendlich sollten die Komponenten aber implemen   tierungsn  her durch Transitionssysteme 
150. erade in Bezug auf Fehlertoleranz eine Rolle spielt     Janowski argumentiert  dass man sich bei Aussagen   ber Fehlertoleranz nicht auf das  Auftreten von Fehlern verlassen darf  Fehler k  nnen auftreten  m  ssen es aber nicht  Er  fordert den Nachweis  dass ein fehlertolerantes System die Toleranzspezifikation nicht  nur bei Auftreten von Fehlern erf  llt  sondern auch dann  wenn Fehler nicht oder nur  teilweise auftreten  In den Arbeiten der genannten Autoren werden Fehler in einem  System nur durch zus  tzliche Transitionen modelliert     das Entfernen von Transitionen  wird nicht zugelassen  Zus  tzliche Transitionen spiegeln tats  chlich einen tempor  ren    100 KAPITEL 4  FORMALE MODELLIERUNG VON FEHLERN    Charakter von Fehlern besser wider  Die Fehlertransitionen k  nnen zwar jederzeit aus   gef  hrt werden  wenn sie schaltbereit sind   sie m  ssen aber nicht schalten  Das System  kann also immer noch ein fehlerfreies Verhalten zeigen und der Nachweis der Fehlerto   leranz umfa  t wie gefordert auch immer alle Abl  ufe  in denen Fehler nicht auftreten     Modifiziert man ein System nur durch Hinzuf  gen von neuen Transitionen  also durch  eine Modifikation  E F  mit E       so ist auch mit unserer Definition von Fehlerto   leranz sichergestellt  dass das Auftreten von Fehlern in allen Abl  ufen nicht postuliert  wird  Der Ansatz dieser Arbeit stimmt also in diesem Fall mit den Techniken der ge   nannten Ans  tze   berein     Es ist uns jedoch zus  tzlich m  glich  du
151. eren  Ein Fehlerzustand wird meist verstanden als  ein Zustand des Systems  der vom eigentlich erw  nschten Systemzustand abweicht  Ein  falscher Wert einer Variable  falsche Daten in einem Datenbankeintrag oder ein falscher  Kontrollzustand sind Beispiele f  r Fehlzust  nde     Ein Fehlzustand kann  mu   aber nicht zu einem Systemversagen f  hren  Wird ein  falscher Wert an Stelle eines korrekten ausgegeben oder ergibt sich durch einen anderen  Kontrollzustand ein nach au  en sichtbares ver  ndertes Verhalten  so liegt tats  chlich  ein Versagen vor  Wird jedoch ein falscher Wert durch einen korrekten Wert   ber   schrieben  bevor ersterer Wirkung zeigen konnte  kann der vor  bergehend vorliegende  Fehlerzustand nicht zu einem Versagen f  hren     Fault    Als Fehlerursache  engl  fault  bezeichnet man den Grund  der aus einem System ein  fehlerhaftes macht  Die Fehlerursache ist der eigentliche Unterschied zwischen einem  fehlerhaften System und seiner korrekten Fassung  Dieser Defekt kann auf allen Ebenen  in beliebigen Bestandteilen des Systems liegen  Es k  nnen Unzul  nglichkeiten in der  Hardware oder Software oder und im Design eines Systems sein  in der Beschreibung  der Anforderungen  in der Spezifikation  in der Implementierung  in den Umgebungsan   nahmen und allen anderen Aspekten eines Systems  Die Klassifikation im n  chsten Ab   schnitt zeigt die vielf  ltigen Auspr  gungen  in denen Fehlerursachen auftreten k  nnen     Die Differenzierung zwischen Fehlerzusta
152. erge definiert  die nur  noch von einem Kanal liest und den anderen ignoriert  Wir ermitteln nun  welche Auswirkung  die Anderung von Merge auf das zusammengesetzte System Multipler hat  bei unmodifizierter  Komponente Split  Die Modifikationen der Komponenten lauten also    M Merge    false  o iuVo  i2   M sput    true  false     Die  noch weiter zu vereinfachende  zusammengesetzte Modifikation M   M merge   M spuit  ergibt sich nach Definition AM  zu    M   false A  true   false V   Di   o   01 A Do   02  A  0   i V o   i2   V false      Wir m  ssen nun nicht die Modifikationen der Einzelkomponenten einzeln anwenden  sondern  k  nnen diese kombinierte Modifikation unmittelbar auf die Eigenschaft    des Gesamtsystems  anwenden  und erhalten    PAM    F false  v   Di o   01 A Do   02  A  0   i V 0   i2      Aus dem ersten Fall o   i der darin enthaltenen Disjunktion k  nnen wir D   o   o ableiten   und daraus sowohl 0    Di  o   o als auch      D8 o   o2 unter Ausnutzen der Disjunktheit  von D   und D    Mit einem   hnlichen Argument f  r den zweiten Fall k  nnen wir schlie  lich f  r  Multiplex mit dem modifizierten Merge die  zu erwartende  Eigenschaft herleiten  dass nur auf  genau einem der beiden Ausgabekan  le Nachrichten ausgegeben werden      o  i A 02       V  02   ig A 01                      110 KAPITEL 4  FORMALE MODELLIERUNG VON FEHLERN    4 5 3 Korrespondierende Modifikationen    Im vorherigen Abschnitt   ber die Fortpflanzung von Modifikationen wurde behandelt 
153. ermanent im System enthalten sind und versehentlich eingef  gt wurden   und    e Fehler in der Daten  bertragung  die einen physikalischen Ursprung haben  zur  Laufzeit und nur tempor  r auftreten und auch nicht absichtlich verursacht wur   den     Klassifikation von Versagen    F  r das Versagen  failure  von Systemen oder Komponenten finden sich Klassifizie   rungen in  23   27   43  62    die hier zusammengefa  t dargestellt werden  Ein Versagen  ist eine von au  en beobachtbare Abweichung des Verhaltens von der Erwartung  Wir  unterscheiden nach der Art  wie das Verhalten abweicht  klassifizieren nach den Aus   wirkungen und der Einheitlichkeit der Beobachtbarkeit     Art Man kann unterscheiden zwischen wert  und zeitbezogenen Versagen von Syste   men  Bei wertebezogenen Ausf  llen werden Leistungen zwar zum richtigen Zeit   punkt erbracht  aber die Ergebnisse sind nicht korrekt  Ein Beispiel daf  r ist ein  value failure  bei dem ein falscher Wert als Resultat geliefert wird  Zeitbezogenes  Versagen liegt vor  wenn zeitliche Bedingungen nicht eingehalten werden  Man  kann hier au  erdem die beiden F  lle des early und late timing unterscheiden     Die Klasse der omission oder response failures l    t sich nicht eindeutig als wert   oder zeitbezogenes Versagen bezeichnen  da das Ausbleiben eines Ergebnisses so   wohl als falscher Wert als auch als ein extrem versp  tetes Ergebnis interpretiert  werden kann  Ein Totalversagen beschreibt den v  lligen Ausfall eines Systems 
154. esem System also sichergestellt  dass die L  nge des Ausgabe   stroms schlie  lich die L  nge    erreichen wird    blicherweise h  ngt    von den Eingaben  ab  hat also Elemente aus I als freie Variablen     Zum Nachweis dieser Aussage eignet sich folgende Regel  die die Existenz einer zielf  h   renden Transition fordert  die schaltbereit ist und die Ausgabe tats  chlich verl  ngert   Aufgrund der Fairness in unserem Systemmodell wird diese Transition also tats  chlich  einmal ausgef  hrt und damit die Ausgabe wie gefordert verl  ngert  Der Beweis der  Regel findet sich wieder in  TO      F  r eine Transition 7     T    o k  k  lt L   gt  En T   und   o k nk lt lAT gt  H 0 gt k    Sl   0 k k lt l   0 gt k       In den Anwendungsbeispielen in  0  IT  72   T3  haben sich Aussagen zur Invarianz und  zur Ausgabeverl  ngerung als ausreichend erwiesen  um die interessanten Eigenschaf   ten eines Transitionssystems auszudr  cken  W  hrend mit Invarianten die Korrektheit  der ausgegebenen Nachrichten formalisiert wird  gibt die Aussage   ber die Ausgaben   verl  ngerung an  dass ausreichend viele Ausgaben gemacht werden     Beispiel 3 10 Eigenschaften von Merge    Wir greifen wieder das System Merge auf  Als Invariante formulieren wir die Aussage  dass in  jedem Zustand in jedem Ablauf des Systems genau so viele Daten ausgegeben sind  wie auf den  beiden Eingabekan  len bislang konsumiert wurden     Merge IF inv  0    i        Im n  chsten Abschnitt werden wir die G  ltigkeit dieser
155. ezifikationen wird die Linkstotalit  t  oft durch die Verwendung des Assumption Guarantee Formates erreicht  bei Transi   tionssystemen ist die Linkstotalit  t automatisch sichergestellt  Auch die Komposition  mit Modifikationskomponenten erh  lt die Linkstotalit  t     Dennoch kann ein Teil der Ausgaben unerw  nscht sein  obwohl er in der verhaltensbe   schreibenden Relation vorkommt  Existieren n  mlich Umgebungsannahmen  die genau  die Eingaben ausschlie  en  die zu den unerw  nschten Ausgaben f  hren  wird das Sys   tem diese Ausgaben nie zeigen  Wird eine Komponente beispielsweise in einem Kontext  verwendet  der bestimmte Eingaben f  r das System nie produzieren wird  darf die Re   aktion dieser Komponente auf diese Eingaben sogar beliebig sein   ihre Spezifikation  wird damit nicht gef  hrdet  wenn sie nur Aussagen macht   ber die Reaktion auf eine  Teilmenge der erlaubten Eingaben     Diese Umgebungsannahmen sind damit die wesentliche Voraussetzung  um   ber Feh   ler der Systemumgebung sprechen zu k  nnen  Die Systemumgebung kann nur Fehler  machen  wenn gewisse Anforderungen an sie gestellt werden  Diese Forderungen an die  Umgebung k  nnen explizit oder implizit definiert sein  Wir behandeln im folgenden  beide F  lle     4 6 1 Explizite Umgebungsannahmen    Eine Umgebungsannahme nennen wir explizit  wenn sie beim Entwurf des Systems  vom Entwickler identifiziert und dokumentiert wird  Dies geschieht  wenn erkennbar  ist  dass das System nur in einem entsprechenden
156. f  r Systembeschreibungen auf  verschiedenen Abstraktionsebenen eignen  Der   bergang zwischen den Ebenen basiert  auf einer Verifikationtechnik  deren Beweise mit Beweisdiagrammen visualisiert werden  k  nnen  Schliesslich beschreiben wir das Konzept der Verfeinerung und einen ideali   sierten Entwicklungsproze    Dieses Systemmodell sieht die explizite Modellierung von  Fehlern noch nicht vor     In Kapitel N erweitern wir das Systemmodell um sogenannte Modifikationen M  Mit  diesen ist es m  glich  eine Ver  nderung sowohl von Schnittstellen als auch von System   verhalten zu beschreiben  darstellbar mit Hilfe beider Beschreibungstechniken  F  r ein  System S beschreibt SAM das ver  nderte System  Damit steht ein geeigneter Forma   lismus bereit  mit dem Fehler  als Abweichung eines Ist von einem Soll  und verwandte  Begriffe formal definiert werden  Dar  ber hinaus werden in diesem Kapitel Kombinatio   nen von Modifikationen und ihre Eigenschaften untersucht  und die Modellierung von  externen Fehlern dargestellt     Um Nutzen aus einer formalen Methodik ziehen zu k  nnen  ist neben einer Sprache zur  Darstellung von Systemen und ihren m  glichen Fehlern auch ein zweckm    iger  zielge   richteter Umgang erforderlich  In Kapitel BJwerden methodische Hinweise zum Umgang  mit Fehlern gegeben  Wir erl  utern  wie pr  zise Fehlermodelle auch von zusammen   gesetzten Systemen formuliert und mit welchen Techniken Fehler im Rahmen unseres  Fehlermodells erkannt  gemeldet und kor
157. fikationen gew  hlt  so dass das ver  nderte System die ver  nder   ten Eigenschaften aufweist  so ist man an einer passenden Ver  nderung des Be   weisdiagrammes interessiert     Wir haben in Kapitel  5 7  sowohl f  r Invarianten  als auch f  r Fortschrittsdia   gramme Techniken erarbeitet  mit Hilfe derer die Diagramme bei Modifikationen  der Eigenschaften oder Systeme entsprechend angepa  t werden k  nnen  Ein nicht  unerheblicher Anteil der Diagramme bleibt dabei unangetastet  so dass die zu   geh  rigen Beweisverpflichtungen   bernommen und nicht neu nachgewiesen wer   den m  ssen     Eine Systementwicklung l    t sich im wesentlichen als ein Baum darstellen mit  einer abstrakten Systemspezifikation als Wurzel  verfeinerten Teilkomponenten  als Zwischenknoten und einer implementierungsnahen Beschreibung der Kompo   nenten als Bl  tter  Im Laufe eines Entwicklungsprozesses kann es sich nun erge   ben  dass ein Knoten im Baum modifiziert werden muss  Dies kann beispielsweise  durch vorherzusehende Fehler oder ver  nderte Anforderungen notwendig werden   Mit den Techniken  die uns mit dieser Arbeit vorliegen  ist es m  glich  ausgehend  vom modifizierten Knoten den Baum schrittweise in alle erforderlichen Richtungen  nachtr  glich anzupassen bis wieder ein korrekter Entwicklungsbaum vorliegt     Damit k  nnen Fehler oder andere Ver  nderungen in einem System auch nach   tr  glich in einer Systementwicklung ber  cksichtigt werden  ohne die Entwicklung  dabei vollkommen neu b
158. fordert sei ein Pro   gramm  das f  r nat  rliche Zahlen n  gt  2 die Fakult  t berechnet  Das Soll ist damit informell  definiert  Betrachten wir nun das folgende  funktionale Programm  ausgedr  ckt in ML B2       fun fac  n   int     if n 1 then 2  else n fac n 1      Dieses Programm berechnet nicht das geforderte Ergebnis  Man spricht intuitiv von einem  Fehler im Programm  ohne sich dabei unbedingt der verschiedenen m  glichen Bedeutungen  des Begriffes bewu  t zu sein  Aber wo liegt der Fehler  Der Fehler l    t sich nicht eindeutig  lokalisieren  denn es gibt zwei M  glichkeiten zur Korrektur  Das Resultat im Terminierungsfall  lie  e sich durch 1 ersetzen  denn 1    1   aber auch die 1 im Konditional der if Anweisung  k  nnte durch eine 2 ersetzt werden  da 2    2 und die Berechnung f  r n   1 in der Spezifikation  ausgeschlossen wurde     Das Problem der Lokalisierung wird noch deutlicher in folgender    L  sung    der Aufgabe     fun fac  n   int     if n  lt   1 then 1  else fac n 1    fac n 2      Dieses Programm berechnet eine vollst  ndige andere Funktion  Damit l    t sich nicht einmal auf  sinnvolle Weise sagen  wieviele Fehler dieses Programm enth  lt  Es gibt eine unmittelbare Ana   logie zur nat  rlichen Sprache  Ist die Aussage eines Satzes nicht korrekt  ist dies im allgemeinen             nicht auf ein einzelnes Zeichen oder Wort in diesem Satz zur  ckzuf  hren        In den folgenden Abschnitten besch  ftigen wir uns vornehmlich mit Fehlerbegriffen aus  
159. gebungsannahmen verbunden  die die Systemum   gebung zu erf  llen hat  damit das System korrekt funktioniert  M  chte man das  System so weiterentwickeln  dass es sich auch in einer Umgebung sinnvoll verh  lt   die nicht mehr alle Annahmen erf  llt  muss man seine Robustheit erh  hen     F  r einen entsprechenden Entwicklungsschritt haben wir in Kapitel 5 6  Techniken  und Korrektheitskriterien f  r verschiedene Arten von Beschreibungstechniken be   reitgestellt  Damit kann ein System auf formal unterst  tzte Weise um Reaktionen  auf externe Fehler erweitert werden     e Alle vorgestellten Techniken und Konzepte dieser Arbeit wurden durch eine Viel   zahl von Beispielen veranschaulicht  Damit werden f  r den Leser die Definitionen  und ihre Verwendung illustriert und alle Resultate verdeutlicht     Die Methodik Focus ist als Resultat der vorliegenden Arbeit um einen expliziten Feh   lerbegriff mit zugeh  rigen Entwicklungstechniken erweitert worden  mit dem Systeme  und ihre Fehler auf systematische und integrierte Weise modelliert  analysiert und be   handelt werden k  nnen  Die in Kapitel  L4  genannten Ziele wurden also erreicht     Allerdings sind f  r die Techniken und Konzepte bislang im wesentlichen gerade die  grundlegenden Fundamente gelegt worden  die einen gewinnbringenden Einsatz in einer  praktischen Systementwicklung zun  chst vorbereiten  F  r einen unmittelbaren Einsatz  in einer praktischen Systementwicklung sind weitere Schritte empfehlenswert  die wir  zusa
160. gef  hrdet werden kann     Um die Realisierbarkeit von Systemen in unserem Systemmodell sicherzustellen  fordern    wir von den Relationen die folgenden zwei Eigenschaften     Linkstotalit  t Ein System zeigt f  r jedes Verhalten der Umgebung   also f  r jede  Eingabe   eine Reaktion  Die verhaltensbeschreibende Relation muss also f  r jede  m  gliche Eingabe ein passendes Element besitzen  formal    Vied3oe i o eR       Monotonie Ein System darf eine einmal ausgesandte Nachricht nicht mehr zur  ck   nehmen  d h  verl  ngert man eine Eingabe i zu 1     so verl  ngert sich auch die  Ausgabe  oder bleibt unver  ndert            Vi  i  0 0    io  ERACE Ai  o O ERS gt o0oCo    In unserem ungezeiteten Modell stellt dies auch die Kausalit  t sicher  Haben zwei  Eingaben einen gemeinsamen Pr  fix 7  so haben auch ihre Ausgaben einen gemein   samen Pr  fix o  f  r den auch  i o      R gilt  Dies impliziert  dass die Reaktion  auf einen Teil der Eingaben wirklich nur durch diesen Teil  und nicht durch erst  noch zu empfangene Nachrichten bestimmt wird     In der Praxis ist ein Nachweis dieser Eigenschaften oft nicht erforderlich  da durch  die Beschreibungstechniken ihre Erf  llung automatisch sichergestellt ist  So stellen bei   spielsweise die in Abschnitt B 6 beschriebenen Transitionssysteme durch ihre schrittwei   se Verl  ngerung der Ausgaben die Monotonie sicher     Um die Lesbarkeit zu erh  hen  haben wir die beiden obigen Forderungen in einer ver   einfachten Notation ausgedr 
161. haftsorientierte Spezifikationstechnik bezeich   nen k  nnen  lassen sich Transitionssysteme als abstrakte Implementierungen begreifen   Transitionssysteme f  r unser Systemmodell wurden in   hnlicher Form in  10  pr  sen   tiert  Die Transitionen werden hier allerdings nicht durch Formeln  sondern spezifischer  durch Paare von Belegungen definiert  Wir motivieren die folgenden Forderungen  die  an ein Transitionssystem gestellt werden  im Anschlu   an die Definition     Definition 3 5 Transitionssystem    Ein Zustandstransitionssystem S wird definiert durch das Tupel  S  1 0 4 T T     das die folgenden Bedingungen erf  llt  Die Mengen I und O enthalten die Namen der  Ein  und Ausgabekan  le  und definieren damit die Schnittstelle des Systems  Die Menge  A definiert die zus  tzlichen lokalen Variablen des Systems  Es gelte      a   i lienca    Die Menge der Startzust  nde wird durch die Formel Y charakterisiert  free Y  C IU  OUA   Das System hat in einem Zustand zu starten  in dem Y erf  llt ist  Es gelte  f  r  alle i     I      b   EeTAtel s ar            c  aETABMasBET       Die Menge T C VALx VAL enth  lt die Menge der Transitionen  Sie hat  f  r alle i     I   folgende Bedingungen zu erf  llen           BET  gt  ai CBI A BA Cai A  aoE  o A ail Bi        d               e   Be Trasicyin  y  gt   ay eT    3 6  ZUSTANDSTRANSITIONSSYSTEME 49    Die Menge der Umgebungstransitionen T  eines Systems wird definiert durch    T      a B  a 4B AYicIoaiC pi                    Wir w
162. hebung Tritt ein Fehler auf  wird mit dieser Technik versucht   einen bereits entstandenen Schaden zu ermitteln  und diesen zu beheben  indem  das System in einen Zustand versetzt wird  den es ohne die aufgetretenen Fehler  h  tte erreichen m  ssen  M  glicherweise kann nur eine abgeschw  chte Form der  Fehlerbehebung erreicht werden  bei der nur ein Zielzustand angenommen wird   der vom Ideal auf noch akzeptable Weise abweicht  So k  nnen beispielsweise bei  einem   berlasteten System zur   bertragung von Daten Nachrichtenpakete ver   worfen werden  Diese Technik ist deutlich effizienter als die r  ckw  rts gerichtete   aber nur in Abh  ngigkeit von der konkreten Anwendung und sehr spezifisch ein   setzbar     Fehlerkompensation Bei der Fehlerkompensation werden Auswirkungen von Fehlern  mit Hilfe ausreichender Redundanz sofort vermieden  Beispiele sind fehlerkorri   gierende Codes zur Daten  bertragung und auch RAID 5 Systeme  Diese Systeme  halten ausreichend zus  tzliche Information verf  gbar  um Fehler nach Lokalisie   rung eines entstandenen Schadens sofort zu beheben  Die Fehlerkompensation l    t  sich als Mischform der Vorw  rts  und R  ckw  rtsfehlerbehebung interpretieren     Alle Techniken zur Fehlertoleranz ben  tigen Redundanz in einem System  Redundanz  wird etabliert durch die Bestandteile eines Systems  die bei Fehlerfreiheit des Systems  gar nicht notwendig w  ren  Redundanz kann in vielen Formen auftreten  Bei strukturel   ler Redundanz werden Komponenten 
163. her Bericht SFB 342 2 2 92 A  Technische  Universitat Miinchen  1993     Broy  MANFRED und OTTO SPANIOL  Herausgeber   Informatik und Kommuni   kationstechnik  VDI Lexikon  Springer  1999     BROY  MANFRED and KETIL ST  LEN  Specification and Development of Interac   tive Systems   FOCUS on Streams  Interfaces and Refinement  Monographs in  Computer Science  Springer  April 2001     CRISTIAN  FLAVIU  A rigorous approach to fault tolerant computing  IEEE Trans   Software Engineering  1985     CRISTIAN  FLAVIU  Understanding fault tolerant distributed systems  Communi   cation of ACM  34 2  56 78  December 1991     DOUGLASS  BRUCE POWEL  Doing Hard Time   Developing Real Time Systems  with UML  Objects  Frameworks  and Patterns  The Addison Wesley object tech   nology series  Addison Wesley  1999     Web Seite von FOCUS  http   www4 in tum de proj focus    Web Seite von Formal Methods Europe  http   www fmeurope org      GARTNER  FELIX C   Specifications for Fault Tolerance  A Comedy of Failures   Technischer Bericht TUD BS 1998 03  Technische Universitat Darmstadt  Oktober  1998     LITERATURVERZEICHNIS 167     28  G  RTNER  FELIX C   Fundamentals of fault tolerant distributed computing in  asynchronous environments  ACM Computing Surveys  31 1  1 26  1999      29  Grosu  RADU and KETIL STOLEN  A model for mobile point to point data flow  networks without channel sharing  In WIRSING  MARTIN and MAURICE NIVAT   editors   AMAST 1996   Algebraic Methodology And Software Technolog
164. hiedene Auspr  gungen von Fehlerd  mpfung  definieren  Seien dazu wieder eine Modifikation M   einer Teilkomponente bzw  der  Umgebung und eine Modifikation M des Gesamtsystems gegeben  Diese implizieren  eine Unterteilung des Verhaltens der fehlerhaften Teilkomponente  bzw  der Umgebung   und des Gesamtsystems in die drei genannten Klassen     102 KAPITEL 4  FORMALE MODELLIERUNG VON FEHLERN    Wir k  nnen nun jeweils untersuchen  in welche Klasse das Systemverhalten f  r jede der  drei Verhaltensklassen des fehlerhaften Teilsystems einzuordnen ist  Es gibt dabei die  in der folgenden Tabelle dargestellten M  glichkeiten     a   2   3a   3b   4        Normal   Normal Normal Normal Normal Normal  Fehler   Normal Normal Fehler Normal Fehler  Chaos   Normal Fehler Fehler Chaos Chaos    In der Spalte ganz links sind die Verhaltensm  glichkeiten des fehlerverursachenden  Teilsystems aufgef  hrt  in den anderen Spalten verschiedenen M  glichkeiten von Ver   haltensklassen des Gesamtsystems  In Spalte  1  sind die Reaktionen eines maximal  fehlertoleranten Systems dargestellt  Sogar wenn vollkommen unvorhergesehenes Ver   halten in der Teilkomponente auftritt  bleibt das Gesamtverhalten normal  Spalte  2   beschreibt eine etwas schw  chere Form der Fehlerd  mpfung  Unvorhergesehene Fehler  spiegeln sich nun in einem Fehlverhalten des Systems wider  w  hrend die vorhergesehe   nen und damit erwarteten Fehler aber noch keine Beeintr  chtigung des Gesamtverhal   tens nach sich ziehen  
165. hlertolerant be   zeichnet werden  wenn    d M   lt  d M       Der korrekte Teil S2 des Systems ist also in der Lage  die Auswirkungen des Fehlers  innerhalb von S   einzud  mmen     Diese Charakterisierung von Fehlertoleranz basiert somit auf einer geeigneten Definition  einer Bewertungsfunktion d von Modifikationen  Diese Funktion ist eng verbunden mit  einer Metrik  die den Unterschied von Systemen quantifiziert  und   ber einen Ahnlich   keitsbegriff zwischen Systemverhalten zu definieren ist  Der Unterschied zwischen zwei  Systemen wird der Bewertung d der Modifikation entsprechen  die S1 in das System Sa  umwandelt  Es ist zu vermuten  dass der Schweregrad d einer Modifikation in Abh  ngig   keit vom System zu definieren ist  auf das sie angewendet wird  Sinnvolle Definitionen  der genannten Begriffe verbleiben als offenes Problem     Wir beschr  nken uns im folgenden auf eine qualitative Bewertung von Fehlerd  mpfung   Mit dieser wird es m  glich  die Fehlertoleranz von Systemen einer von f  nf definierten  Klassen zuzuordnen     4 4 3 Fehlertoleranz als D  mpfung  qualitativ     Mit Hilfe unseres Formalismus sind wir in der Lage  das Systemverhalten in die drei  Klassen Normal  Fehler und Chaos zu unterteilen  vgl  Abbildung   I   Das Normal   verhalten wird durch eine Beschreibung von S charakterisiert und das Fehlerverhalten  durch SAM beschrieben  w  hrend alle restlichen Verhalten als Chaos bezeichnet wer   den k  nnen     Mit diesen drei Klassen k  nnen wir versc
166. hrend der Fertigstellung dieser Ar   beit f  r mich aufbrachten     F  r die Durchsicht einer Vorversion der Arbeit und ihre konstruktiven Vorschl  ge  m  chte ich Prof  Manfred Broy  Prof  Eike Jessen  Katharina Spies  Konstanze Tau   ber und Ingolf Kr  ger meinen herzlichsten Dank ausdr  cken     Die Arbeit wurde finanziell durch die Deutsche Forschungsgemeinschaft DFG im Rah   men des Sonderforschungsbereichs 342 unterst  tzt     Inhaltsverzeichnis    1 Einf  hrung         ee  SOT Tee eee ree  ea be eee Beene seas oe oes  as ee ee ee ea                           Formales Systemmodel       3    eisai Sot be ae ec ne oe oes  sik So in ee te en ee a  oat a Ae oe en Boe eb  E ei ee a  3 7 1 _ Komposition von Black Box Spezifikatione  E ew E  er EE E eee  3 8 1 Eigenschaften von Transitionssystemen  EEE REES RER                                              NID OW RF  amp           11  13  17  21  24  25  29  35    ii INHALTSVERZEICHNIS           3 9 1 Verhaltensverfeinerung       2m a a nn    3 9 3 _Kompositionalit  t     ne ane ah veh ee re Die  Bh  ee eee le a  4 1 2 Einschr  nkung der Schnittstelle  a a ee es  ee ee ae  Lead be ee ee bee ee eee BEN ee  ee ent    4 4 1 _Fehlertoleranz als korrespondierende Modifikation  4 4 2 Fehlertoleranz als D  mpfung  quantitativ  4 4 3 Fehlertoleranz als D  mpfung  qualitativ  ie ae ee ne  4 5 1 Kombination von Modifikatione  re ee    4 6 1 __Explizite Umgebungsannahmen  4 6 2 Implizite Umgebunssannahme    4 7 Zusammenfassung und Diskuss
167. icher Weise m  glichst viele Variablenwerte unver  ndert     Die Erg  nzung einer beliebig w  hlbaren Ausnahmebehandlung ist die allgemeinste Form  des Umgangs mit Fehlern  Damit sind alle denkbaren Reaktionen modellierbar  unter  anderem auch Techniken des Backward  und Forward Recovery  beschrieben beispiels   weise in  44    mit denen versucht wird  trotz auftretender Fehler m  glichst wenig vom  Normalablauf eines Systems abzuweichen  Als einfachere Beispiele definieren wir den  Sprung in einen Fangzustand und den Neustart eines Systems im formalen Rahmen der  Ausnahmebehandlungen     Beispiel 5 4 Wir k  nnen den Sprung in einen Fangzustand folgenderma  en als Ausnahme   behandlung definieren     c a      Entry true    Exit 2 false  Durch die Variable zp ist sichergestellt  dass keine Transitionen des Systems schaltbereit sind   Sie   bernimmt die Rolle von trap  Da es keinen Riicksprung gibt  ist    beliebig definierbar     Auch der Neustart des Systems kann leicht definiert werden  Wir ben  tigen in C erneut kei   ne Transitionen  da wir die Ausnahmebehandlung sofort wieder verlassen wollen  Das System  springt mittels Y als    in einen Startzustand von S zur  ck  Wir haben also    d  C Yo  Entry Z true  Exit a true  af       Y                5 5  FEHLERKORREKTUR 137    In allen vorgestellten Formalisierungen wird bei einem erkannten Fehler sofort die Feh   lerbehandlung gestartet  Es kann jedoch in konkreten Anwendungsf  llen sinnvoller sein   die normale Ausf  hrung e
168. ickeln  das trotz enthaltener und auftretender Fehler ein akzeptables Verhalten zeigt   Wir widmen diesem Thema den folgenden Abschnitt     Einen Sonderfall im Umgang mit Fehlern stellen die sogenannten selbststabilisierenden  Systeme  61  dar  Diese zustandsbasierten Systeme streben von  nahezu  jedem belie   bigen Zustand immer zu Zust  nden  die als korrekt definiert sind  und kommen unter  Umst  nden ohne explizite Fehlerentdeckung und  lokalisierung aus  Die Fehlerbehebung  ist damit ein integraler Bestandteil der Funktionsweise eines derartigen Systems  Diese  Systeme basieren auf speziellen Eigenschaften des zugrundeliegenden Algorithmus und  sind in der Praxis  nach  28   nur sehr selten anzutreffen     Die Techniken  die die Fehlertoleranz eines Systems erm  glichen  werden nat  rlich auch  schon w  hrend der Entwicklungszeit integriert  so dass in gewisser Weise der Umgang  mit Fehlern nicht nur w  hrend der Laufzeit erfolgt  sondern vorbereitend bereits zur    24 KAPITEL 2  DER FEHLERBEGRIFF    Entwicklungszeit  Dennoch besteht hier ein qualitativer Unterschied  Nur der auto   matisierte Umgang mit Fehlern zur Laufzeit kann  eventuell unvermeidbaren  Fehlern  begegnen  die erst zur Laufzeit auftreten oder w  hrend der Entwicklungszeit   bersehen  wurden  Die entsprechenden Techniken unterscheiden sich erheblich von Entwicklungs   techniken zur Vermeidung von Fehlern     2 2 Fehlertoleranz    Als Fehlertoleranz wird  zum Beispiel in  B0   die Eigenschaft eines Syste
169. icklung ist ihre Kompositionalit  t  Verfeinert man eine Komponente eines  zusammengesetzten Systems  so ergibt sich eine Verfeinerung des Gesamtsystems  Dies  ist f  r die Bew  ltigung der Komplexit  t in einem Entwicklungsproze   wesentlich  Die  Verfeinerung der einzelnen Komponenten kann damit unabh  ngig voneinander gesche   hen  Die Kompositionalit  t wird mit folgender Regel ausgedr  ckt     SS  S2   gt  5       S1 8 S2   Si   S3    Im Falle der Schnittstellenverfeinerung ist die Verfeinerung nicht g  nzlich unabh  ngig   da die Ver  nderung von Kan  len und ihren Nachrichtentypen jeweils eine schreibende  und eine lesende Komponente betrifft  Durch die explizite Formalisierung dieser   nde   rungen mit Hilfe der Abstraktions  und Repr  sentationsrelationen R ist der Zusammen   hang aber formal dokumentiert  und entsprechende Beweisverpflichtungen ergeben sich  aus der folgenden Regel  die in Abbildung B T0  illustriert ist     RiARx RoAR  5  R   x Ro y  s   5     RrARK RoARL     gt      ReARy RLARx     gt     2       S18 52 Si  amp  S   Die Relationen R m  ssen gewisse Voraussetzungen erf  llen  um die Kompositionalit  t  zu gew  hrleisten  wie in  17  BI  begr  ndet   Diese sind hinreichend durch die Umkehr   barkeit oder Linkseindeutigkeit von R sichergestellt  wenn also  x y      R A  2  y       R  gt  r  r gilt     3 10 Entwicklungsproze      Wie bereits in Abschnitt B 9  erw  hnt  ist es nicht m  glich  ein komplexes System in  einem Schritt zu entwickeln  Eine f
170. ie auf Zust  nden und Transitionen basieren   und die nun kurz charakterisieren     Ein System befindet sich zu jedem Zeitpunkt in einem Zustand  Ein Zustand besteht  im wesentlich aus einer Belegung aller Variablen des Systems mit konkreten Werten   Der   bergang zwischen zwei Folgezust  nden wird durch eine Transition beschrieben   die als bewachte Zuweisung ausgedr  ckt werden kann  Ein Ablauf eines Systems ist  eine endliche oder unendliche Folge von Zust  nden  in der zwei aufeinanderfolgende  Zust  nde einer legalen Transition des Systems entsprechen  Wir stellen in Kapitel B 6   ein Modell f  r Transitionssysteme vor  und verzichten hier daher auf eine detailliertere  Darstellung     Fehler werden in oben genannten Modellen als explizit angegebene Mengen zus  tzli   cher Transitionen dargestellt  wie bereits 1985 in  22  vorgeschlagen  Auf eine Aussage    ber die Ver  nderung der Systemeigenschaften verzichten einige formale Ans  tze  da  sie Fehlertoleranz nur als maskierende verstehen     Liu Joseph Liu und Joseph stellen in ihren Arbeiten  46   47   48  Fehlertoleranz nur in  der speziellen Form der maskierenden Fehlertoleranz dar  Sie bezeichnen mit P das Nor     26 KAPITEL 2  DER FEHLERBEGRIFF    malsystem  und mit F P  das durch eine definierte Fehlermenge beeinflu  te System   Das entstehende System wird fehlertolerant gegen  ber einer Spezifikation   genannt   wenn das System alle Eigenschaften von   erf  llt  also gilt    FUP    gt  8    Sie lassen im Falle ei
171. ierender Mo   difikationen  F  hrt man   nderungen an einem Transitionssystem durch  so    6 2  WEITERF  HRENDE THEMENGEBIETE 163    m  chte man die damit verbundenen   nderungen der Systemeigenschaften  ableiten  Selbst wenn eine allgemeine und in allen F  llen anwendbare Tech   nik kaum zu finden sein wird  ist eine Einschr  nkung auf Teilklassen von  Systemen vielversprechend  So ist etwa vorstellbar  aus bestimmten Klas   sen von Modifikationen an Transitionssystemen entsprechende Modifikatio   nen an den Systemeigenschaften konstruktiv ermitteln zu k  nnen  Beispiele  sind die Fehlerklassen aus Abschnitt  5 1  mit denen sich ihnen entsprechen   de   nderungen an den Systemeigenschaften assoziieren lassen  Entsprechend  lohnenswert ist die Entwicklung von Kriterien und Hinweisen  ob und wie Be   weisdiagramme m  glichst konstruktiv an die Modifikationen von Systemen  angepa  t werden k  nnen     e In engem Zusammenhang mit dem Fehlerbegriff steht das Themengebiet des Tes   tens  Ein Systemtest hat das Ziel  Fehler in einem System aufzudecken  Mit dem  in dieser Arbeit erarbeiteten formalen Fehlerbegriff wird auch eine formale Cha   rakterisierung von Tests m  glich  Damit ist man beispielsweise in der Lage  aus  definierten Fehlern eines Systems einen zugeh  rigen Test zu konstruieren  der  diese Fehler aufdecken wird  Mit Hilfe einer geeigneten Erweiterung unseres For   malismus wird man so in die Lage versetzt  die Korrektheit eines Tests explizit  zu formulieren und au
172. iert werden k  nnen     e Ein Transitionssystem kann gem     dem in Abschnitt B 6  beschriebenen System   modell beliebige Variablen aus der Menge der Variablen VAR verwenden  Die  Variablenmenge A dient dazu  die in einem System vorkommenden Variablen zu  dokumentieren  und damit die Kompositionalit  t leichter definieren zu k  nnen   Es ist damit durch reine Inspektion von J  O und A m  glich zu erkennen  welche  Variablen gelesen und welche geschrieben werden d  rfen  Solange sichergestellt  ist  dass bei der Komposition nicht etwa auf die interne Variablen einer anderen  Komponente zugegriffen wird  d  rfen ohne weiteres neue Variablen in A erg  nzt  werden  Da es beliebig viele    frische    Variablen gibt  k  nnen Konflikte leicht ver   mieden werden     Allerdings ist zu beachten  dass eine neue erg  nzte Variable in den existierenden  Transitionen bislang nicht vorkommt  und daher von dieser in beliebiger Weise bei  jedem Systemschritt ver  ndert werden kann  Dies kann bei Bedarf mit Hilfe einer  Modifikation durch Entfernen von Transitionen leicht behoben werden  Wird eine  neue Variable v     VAR in A aufgenommen  so werden durch eine Modifikation  M    E  F  mit    E 2   a  p    a v    B v      Ver  nderungen von v ausgeschlossen  die erst durch explizite Aufnahme durch  entsprechende Transitionen via F wieder eingef  hrt werden k  nnen  Dieser Ansatz  wird im Beispiel 5  veranschaulicht     88    KAPITEL 4  FORMALE MODELLIERUNG VON FEHLERN    Die Entfernung von Va
173. ilure  Fehler   Sicht  i AE  fault   Fehlerursache Fehlerzustand Glass Box    fault   error  Sicht             Abbildung 2 4  Fehlerbegriffe f  r Soll  Ist Abweichungen    werden oft erst im Systemablauf in Form von ausgel  sten Fehlerzust  nden oder Sys   temversagen erkannt     Abweichungen eines vorliegenden Ist Systemzustandes von einem erwarteten Soll Zu   stand k  nnen wieder in   bereinstimmung mit den etablierten Begriffen als Fehlerzu   stand bezeichnet werden     Die in Abbildung P A dargestellte Tabelle gibt uns einen   berblick  welchem Fehlerbe   griff eine vorliegende Abweichung eines Ist von einem Soll zuzuordnen ist  In Abh  ngig   keit des Merkmals  das eine vorliegende Diskrepanz aufweist  kann der zugeordnete  Fehlerbegriff ermittelt werden  Wir werden alle Aspekte eines Systems in den forma   len Definitionen in Kapitel B unmittelbar wiederfinden  Die Systemschnittstelle wird in  Abschnitt B 3 definiert  das Verhalten eines Systems in Abschnitt B 4  Das Umgebungs   verhalten wird in Abschnitt  3 5  behandelt  Internes Systemdesign wird in Kapitel B 6   mit Transitionssystemen dargestellt  die die entsprechenden Systemabl  ufe als dynami   schen Anteil definieren  Eine wichtige Frage dabei ist  wie konkrete Systeme und ihre  Fehler zu beschreiben sind  Wir werden dazu geeignete Beschreibungstechniken anbie   ten  Zur Darstellung der Soll  Ist Abweichungen f  hren wir in Kapitel  4 den Begriff der  Modifikationen ein  der f  r alle relevanten Merkmale eines 
174. in Computer Science  pages  82 93  Springer  2000     LAPRIE  JEAN CLAUDE  Dependability  Basic Concepts and Terminology  vol   ume 5 of Dependable Computing and Fault  Tolerant Systems  Springer  1992     LEE  PETE and TOM ANDERSON  Fault Tolerance   Principles and Practice   Springer  second  revised edition  1990     LEVESON  NANCY  Safeware  System Safety and Computers  Addison Wesley   1995     Liu  ZHIMING  Fault Tolerant Programming by Transformations  PhD thesis   University of Warwick  July 1991     Liu  ZHIMING and MATHAI JOSEPH  A formal framework for fault tolerant pro   grams  In IMA Conference on Mathematics of Dependable Systems  Oxford Uni   verity Press  1993     Liu  ZHIMING and MATHAI JOSEPH  Specification and verification of recovery in  asynchronous communicating systems  In  69   1995  pages 137   166     Lyu  MICHAEL R   editor   Software Fault Tolerance  John Wiley  amp  Sons  1995     MANNA  ZOHAR and AMIR PNUELI  Temporal verification diagrams  In Inter   national Symposium on Theoretical Aspects of Computer Software  number 789 in  Lecture Notes in Computer Science  pages 726 765  1994     MANTEL  HEIKO und FELIX C  GARTNER  A case study in the mechanical ve   rification of fault tolerance   Technischer Bericht TUD BS 1999 08  Institut f  r  Informatik  Technische Universit  t Darmstadt  November 1999     PAULSON  LAWRENCE C   ML for the Working Programmer  Cambridge Univer   sity Press  1996     Web Seite des Projektes QUEST  http   www4 in tum de 
175. ine mit r beschriftete Kante  die von einem Knoten     zu einem Knoten     f  hrt   kann aus dem Diagramm entfernt werden  wenn die Transition T im modifizierten  System nicht mehr enthalten ist  wenn also gilt    YVa   ea Hina  b Hr  gt   aB ET E          Wird der Knoten j eines Diagramms durch das Entfernen von Kanten unerreich   bar  so kann und muss er aus dem Diagramm gel  scht werden  Das Diagramm  beweist dann die st  rkere Aussage    S IF inv Po V   V   _  V 841V   V       e Eine Transition r kann durch E sowohl in seinen Vor  als auch Nachbedingungen  so verst  rkt werden  dass nicht nur       AT  gt F   gezeigt werden kann  sondern die verst  rkte Aussage  PATS  AX  mit geeignetem x  Die Gesamtaussage des Diagramms verst  rkt sich dann zu    S IF inv o V    V  PAX  V    V On    Ein Beispiel f  r eine verst  rkte Vorbedingung haben wir in Abschnitt  5 5  ken   nengelernt  Eine Menge von Transitionen wurde derart eingeschr  nkt  dass die    5 7  WIEDERVERWENDUNG VON BEWEISEN 145    darin enthaltenen Transitionen nur noch schalten d  rfen  wenn eine Variable xp  den Wert false hat  Dieses Wissen darf dann zum Ableiten eines x verwendet wer   den  In Beispiel BR  werden wir sehen  wie entfernte Transitionen als verst  rkte  Nachbedingungen formuliert werden k  nnen     Kann das einem Knoten zugeordnete Pr  dikat verst  rkt werden  ist es zudem  m  glich  auch die Pr  dikate der Nachfolgeknoten entsprechend zu verst  rken  da  von     A W mehr Aussagen abgeleitet werden 
176. inen Eingabestrom i die Bedingung       Vil Cie   R Oi     lt   D8i     so tritt kein Unterlauf auf  da stets ausreichend viele Daten vorhanden sind  Es gilt dann also  underflow i    0  Damit ist die urspr  ngliche Spezifikation erf  llt  wenn A gilt  Wir haben also    A  gt  G  G              und somit eine Verfeinerung des Systems spezifiziert  die eine erh  hte Robustheit aufweist        5 6  ERH  HUNG DER SYSTEMROBUSTHEIT 141    5 6 2 Implizite Umgebungsannahmen    Ein Charakteristikum reaktiver Systeme ist es  jederzeit auf Eingaben zu reagieren  In  Abschnitt 4 6 2  leiten wir     basierend auf dieser Annahme     aus einem Transitions   system eine implizite Anforderung an die Umgebung ab  Die  Pr  fixe von  Eingaben  d  rfen nicht in Zust  nde f  hren  von denen aus die Eingaben nicht mehr vollst  ndig  gelesen werden k  nnen     Das Erh  hen der Robustheit eines Transitionssystems besteht folglich aus dem Erg  nzen  von Transitionen  die die Zahl der Fangzust  nde reduzieren und damit die Reaktivit  t  des Systems verbessern     F  r ein System S    I  O  A  T  T  definieren wir dazu eine Menge von Transitionen F   so dass jede Transition  a  3      F von einem Fangzustand von S ausgeht  Es gibt also  in T keine Transition  die im Zustand a schaltbereit ist  formal  mit V   TU OU A   beschrieben durch    Vieai      A Va yea a gt   4 7  ZT    Einen Zustand   nennen wir nicht Fangzustand  wenn nur aufgrund mangelnder Nach   richten auf den Eingabekan  len keine Transit
177. iner Modifikation die Anforderungen an  ein System verst  rkt  kann es notwendig sein  auch die Umgebungsannahmen entspre   chend zu verst  rken  ohne die ein System die verlangte  neu aufgenommene Forderung  nicht zu erf  llen vermag  Die Umgebung kann dargestellt sein durch weitere Kompo   nenten  die dann wiederum geeignet modifiziert werden m  ssen  In diesem Abschnitt  fokussieren wir aber auf Umgebungsfehler  interpretiert als eine potentielle M  glichkeit  der Umgebung  vom erwarteten Verhalten abzuweichen  Hierf  r ist die Beschr  nkung  auf abschw  chende Modifikationen ausreichend     4 6 2 Implizite Umgebungsannahmen    Ist ein System durch ein Transitionssystem spezifiziert  so kann eine Umgebungsannah   me explizit definiert sein wie in Abschnitt 6 1  Aber auch ohne direkte Formulierung  kann eine implizite Umgebungsannahme in den Entwurf des Transitionssystems einge   flossen sein     Wir zielen in dieser Arbeit in erster Linie auf die Modellierung reaktiver Systeme ab  Ein  System ist nur dann reaktiv  wenn es jederzeit bereit ist  weitere Nachrichten auf den  Eingaben zu empfangen und darauf zu reagieren  Ger  t das System in einen sogenann   ten Fangzustand  in dem zwar noch unverarbeitete Nachrichten vorliegen  aber keine  Transition mehr schaltbereit ist  ist die Reaktivit  t des Systems nicht mehr gew  hrleis   tet     F  r auftretende Fangzust  nde kann es zwei Gr  nde geben     e Der Entwurf des Transitionssystems ist fehlerhaft  und es wurden geeignete 
178. ines Systems noch etwas weiterzuf  hren  da gewisse Teilauf   gaben noch vollendet werden sollen und m  ssen  bevor die Fehlerbehandlung gestartet  wird  Dies ist durch eine geeignete Anpassung des Pr  dikates Y modellierbar     Die Fehlerbehandlungen haben die Eigenschaft  dass sie keinen Einflu   auf das System   verhalten haben  solange keine Fehler auftreten  Dies ist offensichtlich  da Modifikatio   nen nur dann eine Wirkung zeigen k  nnen  wenn    gilt oder galt  F  r eine durch M  beschriebene Ausnahmebehandlung und ein System S  in dem   W eine Invariante ist   gilt also     S     SAM     Selbstverst  ndlich muss diese Eigenschaft nicht immer gelten  So kann beispielsweise  ein System erweitert werden um Transitionen  die regelm    ig relevante Teile des Sys   temzustandes abspeichern  um im Fehlerfalle auf einen korrekten Zustand zur  ckgreifen  zu k  nnen und ihn wiederherzustellen  Die Strategie des Backward Recovery verwen   det diese Technik  Die Bereitstellung der notwendigen Redundanz hat Einflu   auf das  Normalverhalten des Systems und macht es typischerweise ein wenig langsamer  Auch  diese Techniken k  nnen durch die Erg  nzung von Transitionen modelliert werden  Wir  haben uns hier auf die Darstellung einiger einfacher Beispiele beschr  nkt     5 5 2 Treiberkomponenten    Es ist w  nschenswert  die Auswirkungen von Fehlern nach M  glichkeit lokal zu hal   ten  um eine Ausbreitung   ber weitere Teile eines Systems zu vermeiden  Dies kann  durch sogenannte T
179. inger  1994      36  JANOWSKI  Tomasz  On bisimulation  fault monotonicity and provable fault   tolerance  In AMAST 97   International Conference on Algebraic Methodology  and Software Technology  number 1349 in Lecture Notes in Computer Science   Springer  1997      37  JANOWSKI  TOMASZ  Semantic and logic for provable fault tolerance  Slides for  tutorial  Formal Methods Europe  Graz  Austria  1997      38  JANOWSKI  TOMASZ and YUN XIAOCHUN  Concurrency  faults and atomic trans   actions  Incremental design for fault tolerance  Technical Report 138  The United  Nations University UNU  International Institute for Software Technology IST   August 1998      39    JOHNSON  BARRY W   Design and Analysis of Fault Tolerant Digital Computing   Addison Wesley  1989     168     40      41     43    44    45    46    47          LITERATURVERZEICHNIS    KINDLER  EKKART  Sicherheits  und Lebendigkeitseigenschaften  Ein Litera   tur  berblick  Technischer Bericht TUM I9339  Technische Universit  t M  nchen   Dezember 1993  SFB Bericht Nr  342 2 93 B     KULKARNI  SANDEEP and ANISH ARORA  Compositional design of multitolerant  repetitive byzantine agreement  In Proceedings ofthe 18th International Conference  on the Foundations of Software Technology and Theoretical Computer Science   1997     KULKARNI  SANDEEP and ANISH ARORA  Automating the addition of fault   tolerance  In JOSEPH  MATHAI  editor   Formal Techniques in Real Time and  Fault Tolerant Systems  number 1926 in Lecture Notes 
180. inzipielle  etablierte  Techniken der Fehlertoleranz     2 1 Fehler    Der Begriff des Fehlers ist sehr unterschiedlich interpretierbar  Wir wollen anhand ver   schiedener Beispiele den sehr unterschiedlichen Charakter verschiedener Arten von Feh   lern illustrieren  In den meisten F  llen wird dabei der Begriff des Fehlers verwendet     Bei der Nutzung eines Diskettenlaufwerks kann ein Rechner einen Lesefehler melden   Eine Systemspezifikation kann einen Fehler aufweisen  der in einem Review Proze   auf   gedeckt wird  Es k  nnen falsche Informationen in einem Benutzerhandbuch enthalten  sein  die Benutzer zu einer falschen Bedienung oder zu falschen Erwartungen gegen  ber  eines Systems f  hren  Die Ausf  hrung eines Programmes kann unerwartet nicht ter   minieren  Das Layout eines mit einem Textverarbeitungsprogramms erstellten Doku   mentes kann im Ausdruck anders aussehen als erwartet  Der Kontostand auf einem  Kontoauszug kann   berraschend niedrig sein  so dass er als fehlerhaft empfunden wird   Ein Steuersystem kann versagen  so dass sogar Menschenleben gef  hrdet werden  bei   spielsweise durch unerwartet ausgel  ste oder nicht oder zu sp  t ausgel  ste Airbags     Diese Beispiele zeigen  wie unterschiedlich die Ursachen  die Auswirkungen  die Art und  Weise der Feststellung  die Wahrnehmung  die Lokalisierung und Quantifizierung von  sogenannten Fehlern sein k  nnen     10 KAPITEL 2  DER FEHLERBEGRIFF    W  hrend ein Fehler beim Lesen eines Diskettenlaufwerks unter 
181. io  5 _ Methodischer Umgang mit Fehler    5 1 Beispiele f  r Fehlermodelle  ee ee ac bn oe  er tote an cg oe ah Gone BR  Re Seo oh hoe te eee  loi fds Hist ee et Ne oe eh Te ed  5 5 1 _ Erg  nzung von korrigierenden Transitionenl               pe ee ee ee  5 6 _ Erh  hung der Systemrobustheitl     0    2 2 2 nn     5 6 1  Explizite Umgebungsannahmen                                                                                                                         INHALTSVERZEICHNIS            5 6 2 _Implizite Umgebungsannahme  5 7 _ Wiederverwendung von Beweise    5 7 1 __Invariantendiagramme    5 7 2 __Fortschrittsdiasrammd        5 8 Zusammenfassung und Diskussio    6 _ Zusammenfassung und Ausblick  6 1 Beitrag dieser Arbeit                6 2 Weiterf  hrende Themengebiete  Literaturverzeichni  A bbildungsverzeichni                            ii    141  143  144  148  153    157  157  161    165    171    iv    INHALTSVERZEICHNIS    Kapitel 1    Einf  hrung    Nach der folgenden Einleitung  die die Herausforderungen der heutigen Informatik il   lustriert  erl  utert dieses Kapitel in Abschnitt  L 2 Jdas Umfeld der Arbeit und pr  zisiert  damit ihren Titel  Im Anschlu   an die Motivation in Abschnitt  03  formulieren wir in    Abschnitt  L4  die Ziele der Arbeit und geben einen kurzen   berblick   ber die Inhalte  der folgenden Kapitel     1 1 Einleitung    Durch die rasche Entwicklung der Leistung informationstechnischer Systeme und ihre  damit verbundene rasante Ausbre
182. ion f   X     Y gibt  so dass    VeeX e type c    type f c      3 7  KOMPOSITION 57          t     e e 0   Merge e Split    i2      gt  e 02                      Abbildung 3 6  Multiplexer    Sie hei  en zus  tzlich eindeutig vereinbar  wenn es genau eine solche Bijektion gibt  Die  Bijektion f nennen wir Umbenennung                 Wir werden diese Definition in Kapitel  4 2 4  verwenden  Im folgenden Beispiel ist eine  Umbenennung nicht notwendig  da die Komponenten von vornherein passende Kanal   namen aufweisen     Beispiel 3 8 Spezifikation eines Multiplexers    Wir definieren zun  chst eine weitere Komponente Split  die wir mit Merge komponieren wollen   Diese Komponente empf  ngt den Datenstrom  den Merge erzeugt  und trennt die Daten wieder  in zwei Datenstr  me auf  Split besitzt also  o  als Eingabekanal  Wir definieren die Ausgabe   kan  le zu  01 02  mit den Typen type o     Dj  Damit ist Split also offensichtlich kompatibel  zu Merge  Das komponierte System ist in Abbildung B 6  dargestellt  Als Eingabeschnittstelle  des Systems    Multiplex 2 Merge    Split                ergeben sich      i2  als Eingabekan  le und  01  02  0  als Ausgabekan  le     In den folgenden beiden Abschnitten definieren wir fiir unsere beiden Beschreibungs   techniken  wie sich das Verhalten eines komponierten Systems aus dem Verhalten der  Einzelkomponenten ergibt     Im Rahmen eines Entwicklungsprozesses ist es empfehlenswert  die Komposition auf  der Ebene der Black Box Spezifikatio
183. ion schaltbereit ist  Da die Umgebungs   transitionen 7 immer schaltbereit sind  werden im weiteren Systemablauf noch weitere  Eingaben produziert  Liegen aber Eingaben an allen Kan  len an und ist keine Transition  aus T schaltbereit  so   ndert sich dies auch nicht mehr durch ausgef  hrte Umgebungs   transitionen aus T       Sinnvollerweise sollten die neuen Transitionen von erreichbaren Zust  nden ausgehen   Es sollte also einen Ablauf geben  in dem der Zustand a auftritt           3gE S eIke  kla    Ist ein Zustand nicht erreichbar  kann er auch kein Fangzustand sein  Das Erg  nzen einer  Transition an einen unerreichbaren Zustand   ndert das Systemverhalten und damit auch  die Robustheit nicht     Modifizieren wir ein System S zu SA  amp   F   so wird damit seine Robustheit erh  ht  da  das System weniger Fangzust  nde aufweist  Nat  rlich k  nnen auch in einem robuste   ren System noch immer Fangzust  nde existieren  es k  nnen sogar neue Fangzust  nde  hinzukommen  die zuvor unerreichbar waren  aber durch F erreichbar werden  Diese  werden jedoch in einem Ablauf erst sp  ter erreicht  so dass dennoch sinnvollerweise  von einem robusteren System gesprochen werden kann  In welche Zust  nde die mit F  neu erg  nzten Transitionen f  hren  bleibt dem Entwickler   berlassen und ist von der  konkreten Anwendung abh  ngig  So k  nnen beispielsweise unerwartete Nachrichten  die  sonst zu einem blockiertem System gef  hrt h  tten  einfach verworfen werden oder es  kann eine ande
184. ionalit  t  bei der man von potentiellem Versagen ausgehen muss   Um eine h  here Robustheit zu erreichen  wird diese Komponente verdreifacht  und  alle drei Module mit den gleichen Eingabedaten versorgt  Eine neue Komponente  der  Voter  liest die Ausgaben der drei Module  und ermittelt durch Mehrheitsbildung ein  Ergebnis  das an die Umgebung ausgegeben wird  Abbildung 6   Das Versagen von nur  einer Komponente kann nach au  en maskiert werden  Versagen mehrere Komponenten   kann der Fehler noch erkannt werden  Versagen allerdings mehrere Module auf die  gleiche Weise  wird die entstehende Ergebnismehrheit nach au  en weitergegeben  Ein  pr  zise Aussage   ber Fehlertoleranz entsprechend Abschnitt 2 2  muss all diese F  lle  ber  cksichtigen  also f  r verschiedene F  lle die jeweiligen Auswirkungen beschreiben     bzw  Hardwarefehlern   Designfehler in der Hardware spielen hier eine Sonderrolle  und sind aufgrund ihrer Charakteristik  eher den Softwarefehlern zuzuordnen     32 KAPITEL 2  DER FEHLERBEGRIFF       Fault  Detect    A               Modul 1              Switch  gt                              Modul 2                Abbildung 2 7  Reservekomponenten    Es gibt Verallgemeinerungen dieser Technik  zum Beispiel durch die Verwendungen von  mehr als drei Modulen oder auch eine Replizierung des Voters  66      Standby Spares Eine weitere  h  ufig verwendete Technik ist die Verwendung von  Reservekomponenten  wie in Abbildung  2 7  dargestellt  Im Normalbetrieb erbringt
185. ir im  folgenden noch erl  utern werden     Ausgehend von diesem neuen Knoten muss dann f  r alle Transitionen aus TUF  erneut untersucht werden  in welche Knoten sie jeweils f  hren  Dabei k  nnen noch  weitere neue Knoten entstehen     In Abbildung B 7list eine Illustration eines erweiterten Verifikationsdiagramms darge   stellt  Die Disjunktion der Pr  dikate der m neuen  schattiert dargestellten Knoten stellt  die Abschw  chung p der Invariante dar  Es gilt also nur noch    146 KAPITEL 5  METHODISCHER UMGANG MIT FEHLERN                                         bo pE    Abbildung 5 7  Erweiterung eines Beweisdiagramms    S IF inv Po V    V n V Pn V   V nym   lt                   m     Op    Das neue Beweisdiagramm umfa  t und verallgemeinert damit das urspr  ngliche Be   weisdiagramm  so dass damit vom bereits geleisteten Entwicklungsaufwand     auch bei  nachtr  glicher Erg  nzung von  Fehler   Transitionen     m  glichst wenig verloren wird     Die Wahl des Pr  dikates f  r einen neuen  einzuf  genden Knoten ist dabei aber entschei   dend f  r die Komplexit  t des neu entstehenden  angepa  ten Diagramms  Das Pr  dikat  des neuen Knotens soll einerseits stark genug sein  um gen  gend Wissen   ber das System  zu enthalten und damit sinnvolle Ableitungen m  glich zu machen  Das triviale Pr  di   kat true w  re ein unbrauchbarer Extremfall  der einen R  cksprung in ein bestehendes  Pr  dikat     nahezu unm  glich macht  da keine Information   ber den Systemzustand  mehr verf 
186. isiert     Es existieren formale Ans  tze  mit denen Fehler und Fehlertoleranz prinzipiell definiert  werden k  nnen  Diese bleiben in ihrer Ausdruckskraft aber eingeschr  nkt und ihre prak   tische Anwendbarkeit konnte noch nicht nachgewiesen werden  Erweiterungen formaler  Ans  tze um pragmatische Beschreibungstechniken und methodische Hilfestellungen zur  Entwicklung von Systemen unter Einbeziehung der Fehlerproblematik werden sich also  gewinnbringend einsetzen lassen     Es haben sich einige Techniken etabliert  die sich zur Entwicklung fehlertoleranter Sys   teme eignen  wobei diese vorwiegend auf Hardwarefehler abzielen  In der Beherrschung  von Softwarefehlern sind Defizite erkennbar  was seinen Grund nicht zuletzt in der  hohen Komplexit  t von Software hat  die durch die Integration und Modellierung von  potentiellen Fehlern und ihren zugeh  rigen Gegenma  nahmen noch weiter stark w  chst   W  nschenswert ist eine systematische Methodik zum Umgang mit Fehlern  die idealer   weise das Normalverhalten von der Fehlerbehandlung trennt     Mit dieser Arbeit werden wir hierf  r einen wesentlichen Beitrag leisten  Wir werden  Techniken bereitstellen  mit denen Systeme und ihre Fehler formal und explizit model   liert werden k  nnen und werden eine methodische Unterst  tzung f  r den integrierten  Umgang mit Fehlern im Rahmen einer formalen Systementwicklung erarbeiten     In den drei folgenden Kapiteln werden wir ein formales Modell einf  hren und erweitern  um Techniken z
187. ist ein erlaubtes Verhalten  da durch      u    di  di  di      i2    d2  d3   o    d    de  di  di     d2     ein Verhalten der Merge Komponente  mit unver  nderter Schnittstelle  beschrieben ist  Auf  dem neuen Ausgabekanal f d  rfen beliebige Nachrichten gesendet werden  Das Ignorieren neuer  Nachrichtentypen in den Eingaben sowie beliebiger Ausgaben   ber neue Ausgabestr  me ist in  diesem Beispiel also unmittelbar erkennbar  H  tten wir auch einen neuen Eingabekanal erg  nzt              so h  tten auch auf diesem beliebige Nachrichtenstr  me empfangen werden k  nnen     Es bleibt zu kl  ren  ob die so definierte Erweiterung der Schnittstelle die in Abschnitt   3 4  geforderten Eigenschaften der Verhaltensrelation nach Realisierbarkeit erh  lt  Die  Linkstotalit  t bleibt offensichtlich erhalten  wie leicht gezeigt werden kann        Proposition 4 1 Erhalt der Linkstotalit  t    Seien  amp      Xn  r Fingabestr  me  und sei R eine Verhaltensspezifikation  also linksto   tal  Die Str  me type t1 O21      type in Say stellen typkorrekte Eingaben an ein durch  R beschriebenes System dar  so dass aufgrund der Linkstotalit  t von R passende Str  me  Y1      Yn existieren  die eine m  gliche Ausgabe des Systems repr  sentieren  Erg  nzt  man diese um beliebig w  hlbare Yn4i     Yn 1  so hat man  zu einer beliebigen Einga   be  eine Ausgabe gefunden  die bez  glich R pa  t                 Die Kausalit  t bleibt auch erhalten  wenn man die Aussage auf die Ausgabekan  le be   sch
188. it de   nen verteilte reaktive Systeme und Modifikationen sowohl der Schnittstellen als auch  des Verhaltens dieser Systeme dargestellt werden k  nnen  Damit steht uns zun  chst nur  eine Sprache zur Verf  gung  mit der Fehler und fehlerbehaftete Systeme ausgedr  ckt  werden k  nnen  Um diese Sprache aber auch gewinnbringend zur Entwicklung fehlerto   leranter Systeme einsetzbar zu machen  werden wir in diesem Kapitel ihre Verwendung  darstellen  Dieses Kapitel erl  utert dazu  wie man beispielsweise die Fehlererkennung  zu gegebenen Fehlern in ein System integriert  wie man ein System derart erweitert   dass es Fehlermeldungen erzeugen kann und mit welchen Techniken fehlerkorrigierende  Mechanismen erg  nzt werden k  nnen     Dazu geben wir zun  chst Beispiele f  r die Formalisierung typischer Fehlermodelle an   Sollen die Zusammenh  nge von Fehlern in verschiedenen Komponenten ausgedr  ckt  werden  k  nnen sogenannte virtuelle Komponenten und Orakel verwendet werden  die  wir in Abschnitt  5 2  beschreiben  Die Fehlererkennung kann durch Pr  dikate realisiert  werden  deren Eigenschaften wir in Abschnitt  5 3  charakterisieren  Das Einf  hren von  Fehlermeldungen beschreiben wir in Abschnitt  5 4  In Abschnitt  5 5  geben wir zwei  Techniken an  wie Mechanismen zur Fehlerkorrektur nachtr  glich in ein System in   tegriert werden  sowohl basierend auf Transitionssystemen als auch auf Modifikati   onskomponenten  Daraufhin diskutieren wir die M  glichkeiten  ein bestehendes S
189. iter   entwicklung des Systems besteht  wie bereits im vorausgehenden Abschnitt erl  utert  in  der Erh  hung der Robustheit  Dies wollen und k  nnen wir meist nicht f  r alle denkbaren  externen Fehler tun  sondern nur f  r eine Teilmenge  f  r die eine passende Reaktion zu  definieren ist  Wir differenzieren also auch hier wieder zwischen der Menge der ber  ck   sichtigten Fehler  die erwartet  beschrieben und behandelt werden und der Menge der  nicht ber  cksichtigten Fehler  Von letzteren nehmen wir an  dass sie nie auftreten  und  ignorieren damit den Fall  falls dies dennoch passieren sollte     Die Teilmenge der Fehler  die zu ber  cksichtigen sind  muss durch eine geeignete Be   schreibungstechnik definiert werden k  nnen  Dies ist auf der Basis eines Transitionssys   tems S    I  O  A  T  T  m  glich  indem wir mit einer Formel    ap mit freien Variablen  aus IU O U A eine Teilmenge von Zust  nden des Systems beschreiben  Diese Menge  charakterisiert die Eingaben  die zu diesen Zust  nden f  hren durch          LeadsTo    trap      a   IE     KS  o It o   t H Dinay Aa   et        Werden Transitionen dem System hinzugef  gt  so dass alle Zust  nde  f  r die Otay  gilt  keine Fangzust  nde mehr sind  so entspricht dies einer Abschw  chung der Umge   bungsannahme des Systems  Das modifizierte System bleibt dann in einer Umgebung  reaktiv  die Eingaben aus A S  U LeadsTo    tray  erzeugt  In Abschnitt 5 6  werden wir    4 7  ZUSAMMENFASSUNG UND DISKUSSION 119    die ents
190. itung in immer mehr Anwendungsbereiche sind die  Qualit  tsanforderungen an diese Systeme enorm gewachsen  Rechner spielen eine zen   trale Rolle bei der Steuerung der vielf  ltigsten Systeme wie Flugzeuge  Autos  Raketen   Haushaltsger  te  Telefone  Waffensysteme  Fernseher und andere Unterhaltungsger  te   Atomkraftwerke  Kinderspielzeuge  die Strom   Gas  und Wasserversorgung  alle Arten  von Telekommunikation  sie bew  ltigen den f  r die Mehrzahl der finanziellen Trans   aktionen notwendigen Informationsflu   und sind in B  ros mittlerweile unverzichtbar   Sogar die Entwicklung neuer Systeme ist nur noch mit bereits bestehenden Systemen  m  glich     Durch st  ndige technische Neuerungen w  chst die Zahl der M  glichkeiten und damit  der Anwendungsgebiete von IT Systemen stetig  Ihre Verwendung reicht immer tiefer  in alle Anwendungsbereiche hinein  was die Komplexit  t der Systeme weiter erh  ht  Al   le Systeme und Dienste werden idealerweise miteinander gekoppelt  und was technisch  m  glich ist  soll m  glichst schnell auch realisiert werden  Der Markterfolg neuer Pro   dukte und Dienstleistungen h  ngt oft von der Geschwindigkeit ab  in der sie verf  gbar  gemacht werden     Mit zunehmender Verwendung und Vernetzung der IT Systeme in allen Bereichen des  Lebens w  chst die Abh  ngigkeit von ihrer Verf  gbarkeit  Zuverl  ssigkeit  Sicherheit und  Korrektheit stark an  Ein auftretendes Versagen kann in immer komplexer werdenden  Systemen fatale Folgen haben  Da auch 
191. jahrzehntelange Erfahrungen verf  gen  noch immer in  ihren Anf  ngen  Die in den sp  ten Sechziger Jahren formulierte Software  Krise brachte  die Disziplin des Software Engineerings hervor  die zum Ziel hat  wissenschaftlich fun   dierte Methoden und Techniken bereitzustellen  mit denen den genannten Problemen  begegnet werden kann     Diese Arbeit leistet den Beitrag  die vielf  ltigen Methoden des Software Engineerings  um den speziellen Aspekt der Fehlermodellierung und  behandlung zu erg  nzen und  damit die Palette der Techniken zur Erstellung hochqualitativer Systeme zu erweitern   Dazu wird der Umgang mit Fehlern in verteilten reaktiven Systemen im Rahmen einer  formalen Methodik aus systematische Weise erm  glicht  Wir werden dazu im folgenden  das Umfeld und die Ziele der Arbeit genauer motivieren und darstellen     1 2  UMFELD 3    1 2 Umfeld    Das thematische Umfeld der Arbeit ergibt sich unmittelbar aus den Stichworten des  Titels  Wir wollen unsere Ans  tze auf eine formal fundierte Grundlage stellen und im  folgenden daher die wesentlichen Kennzeichen formaler Methoden kurz charakterisie   ren  Wir konzentrieren uns im wesentlich auf die Systemklasse der verteilten  reaktiven  Systeme und wollen diese Wahl begr  nden  Dem Begriff des Fehlers und der Thematik  der Fehlermodellierung ist mit Kapitel Blein eigenes Kapitel gewidmet     Formale Methoden Der Begriff der formalen Methoden umfa  t eine Palette von Me   thoden und Hilfsmitteln  die eine Systementwickl
192. k  nnen     Erg  nzung von Transitionen Das Erg  nzen von Transitionen  aus einer Menge  F  erh  lt im allgemeinen die G  ltigkeit eines Diagramms nicht  und kann eine Ab   schw  chung der Invariante nach sich ziehen  Eine systematische Anpassung des Be   weisdiagramms erfordert eine Untersuchung des Diagramms f  r jeden Knoten     und  jeder neuen Transition 7     F  Dabei ist zu   berpr  fen  wohin diese Transition f  hrt   Folgende drei F  lle sind m  glich     e Ist die Transition nicht schaltbereit  gilt also      AT   false    so erfordert die Transition in diesem Knoten keine   nderung im Diagramm  Diese  Situation tritt typischerweise ein  wenn die Schaltbereitschaft von einem Kontroll   zustand abh  ngt  Hat 7 die Aussage o   s als Teil ihrer Vorbedingung  so muss  T nicht in Zusammenhang mit Knoten untersucht werden  deren Pr  dikat o    s  impliziert     e Ist eine Transition schaltbereit  so ist zu pr  fen  ob es einen Knoten i gibt  dessen  Pr  dikat     vom System nach Ausf  hrung der Transition erf  llt wird  also    PAT  gt P     Eine entsprechende Kante muss dann im Diagramm erg  nzt werden  um die  G  ltigkeit des Beweisdiagramms sicherzustellen     e Gibt es keinen Knoten  der den Zustand nach Ausf  hrung der neuen Transition  beschreibt  muss das Diagramm um einen neuen Knoten erweitert werden  Dieser  ist mit einem Pr  dikat    p41 zu beschriften  f  r das    j AT   gt  Phy    gilt  Dabei liegt die Schwierigkeit in der geschickten Wahl von        1  wie w
193. kation  die Ausf  hrungsmodelle und die Mo   dellierung von Zeit festlegt     Die praktische Verwendbarkeit formaler Methoden ist noch immer Gegenstand von  Diskussionen  Auch wenn ihr Nutzen nicht immer eindeutig nachgewiesen werden kann   werden sie in zunehmenden Ma  e erfolgreich eingesetzt  vor allem in sicherheitskriti   schen Anwendungsbereichen  Durch die in Abschnitt  L I Jgenannten wachsenden Anfor   derungen an die Systeme und durch st  ndige Fortschritte auf dem Gebiet der formalen  Methoden wird ihre Bedeutung und Einsetzbarkeit weiter zunehmen  In  26  fin   den sich sowohl viele Beispiele als auch Literaturhinweise und Erfahrungsberichte f  r  verschiedenste formale Methoden und ihre Anwendungen     Der Ansatz dieser Arbeit zur Fehlermodellierung basiert auf der formalen Methodik  Focus  deren relevante Aspekte wir im Detail in Kapitel B  vorstellen werden     Verteilte  reaktive Systeme Die Systemklasse der reaktiven Systeme zeichnet sich   wir ihr Name schon sagt  durch eine best  ndige Reaktivit  t aus  und unterscheidet sich  damit von sogenannten transformationellen Systemen  Die transformationellen Systeme    4 KAPITEL 1  EINF  HRUNG    werden zusammen mit einer Eingabe gestartet  berechnen ein Ergebnis und terminieren   Ein Neustart mit einer weiteren Eingabe ist im allgemeinen m  glich  aber unabh  ngig  vom vorherigen Lauf  ein errechnetes Resultat h  ngt nur von der Eingabe ab  die von  Anfang an vollst  ndig zu Verf  gung steht  Transformationelle Sy
194. kation angibt   Leider ist dies im allgemeinen nicht m  glich  da man sonst auch in der Lage w  re   aus einem beliebigen Transitionssystem S automatisch auf seine Eigenschaften     zu schlie  en  Man w  rde ein beliebiges System mit einfachen Eigenschaften     w  hlen und es zum gew  nschten System S modifizieren  Ein konstruktives  Verfahren w  rde die Modifikation M   liefern  und   AM   w  rde die gesuchten  Eigenschaften repr  sentieren     Es ist zu vermuten  dass eine korrespondierende Modifikation nur von einem Ent   wickler des Systems gefunden werden kann  der ein Verst  ndnis f  r die Funkti   onsweise des Systems hat und die Auswirkungen von Modifikationen absch  tzen    112 KAPITEL 4  FORMALE MODELLIERUNG VON FEHLERN    kann  Eine Black Box Spezifikation stellt auch immer eine Abstraktion dar  und  umfa  t in den meisten F  llen nicht wirklich alle Eigenschaften  die ein Transi   tionssystem aufweist  sondern beschr  nkt sich auf Eigenschaften  die im Sinne  der Anwendung interessant sind  Auf die gleiche Weise  wie zueinander passende  Spezifikationen und Transitionssysteme durch Verst  ndnis  Kreativit  t und In   tuition gefunden werden m  ssen  m  ssen auch korrespondierende Modifikationen  gefunden werden     W  rden sich korrespondierende Modifikationen konstruktiv finden lassen  w  re  die Korrektheit der Korrespondenz automatisch gegeben  Da wir sie aber selbst  finden m  ssen  muss noch ihre Korrektheit gezeigt werden  Als Frage resultiert  daraus     e 
195. ktur und die Art und  Weise  wie es sein Verhalten erbringt  Die Aspekte der Black Box Sicht sind hierbei mit  enthalten  um den Zusammenhang zwischen den Interna und ihrer externen sichtbaren  Wirkung herzustellen  Die Black Box Sicht stellt eine abstraktere Sichtweise dar  da sie  im Gegensatz zur Glass Box Sicht Details verbirgt     In jeder dieser beiden Sichten lassen sich die Systemmerkmale in statische und dyna        Den Operator    zur Komposition werden wir in Abschnitt B 7 formal definieren     2 1  FEHLER 19                                 gt  o           d ee  U E  S              Abbildung 2 2  Vereinfachtes Systemmodell    mische Aspekte untergliedern  Damit erhalten wir die in Abbildung 2 3  tabellarisch  dargestellten Attribute eines Systems     Die Black Box Sicht umfa  t die Schnittstelle und das  von au  en sichtbare  Verhalten  des Systems  Die Schnittstelle bleibt in einem Systemablauf unver  ndert  und ist da   her ein statischer Aspekt  Das Verhalten ist ein dynamischer Systemaspekt  wobei wir  unterscheiden zwischen dem Verhalten des Systems selbst und den Voraussetzungen an  das Verhalten der Umgebung  In vielen F  llen kann ein System seine Leistung nur dann  erbringen  wenn die Umgebung gewisse Voraussetzungen erf  llt  Diese werden meist in  einer Umgebungsannahme formuliert     Der statische Anteil der Glass Box Sicht enth  lt den internen Aufbau eines Systems   Dazu geh  ren beispielsweise sein Design  sein Code und     soweit vorhanden     auch 
196. kung einer Fehlerursache entdecken k  nnen   Dazu werden wir einige Techniken in Abschnitt 2 2 2  vorstellen     Fehlerlokalisierung  Zwischen dem Auftreten eines Fehlers und seiner Entdeckung  k  nnen sich die Folgen des Fehlers bereits   ber das System ausgebreitet haben   Techniken der Fehlerlokalisierung sollten in der Lage sein  diejenigen Systemteile  identifizieren zu k  nnen  die betroffen sind oder betroffen sein k  nnten  Nur so ist  es m  glich  die Auswirkungen zu beheben und eine Ausbreitung von vornherein  zu verhindern oder zumindest einzuschr  nken  Die Fehlerlokalisierung kann im  Idealfall auch ermitteln  welche Fehlerursache vorliegt     Fehlermeldung  Wird ein Fehler entdeckt  so ist die Meldung an andere Systemteile  oder an die Umgebung des Systems  zum Beispiel seinen Benutzer  die minimale  Reaktion  die vom System auf alle F  lle geleistet werden muss  Eine Fehlermel   dung kann mit einer Deaktivierung des Systems  oder eines Teiles  verbunden  sein  wenn andere Reaktionen zur Fehlerbehebung nicht m  glich sind     e Fehlerbehebung  Im Idealfall kann ein System einen Fehler zustand  und seine  Auswirkungen nach seiner Erkennung korrigieren  Dies kann mit einer tempor  ren  Ver  nderung des Systemverhaltens verbunden sein  im optimalen Fall aber sogar  nach au  en nicht sichtbar werden  Wir werden auf einige technische M  glichkeiten  in Abschnitt 2 2 2  eingehen     Mit den genannten Mechanismen wird es m  glich  ein fehlertolerantes System zu ent   w
197. l     schwach  fair  d h  jede Transition      6  ist unendlich oft nicht schaltbereit   oder wird unendlich oft f  r einen Schritt verwendet           esse Welser i E             Die Menge aller Abl  ufe eines Transitionssystems S nennen wir   S          Die dritte Eigenschaft der schwachen Fairness erm  glicht es uns  Fortschrittsaussagen  formal nachweisen zu k  nnen  wie wir in Abschnitt B 8 2 sehen werden     Ein System kann    blockieren     wenn es in einem Zustand keine schaltbereiten Transi   tionen mehr gibt  Da die Umgebungstransitionen in T    aber immer schaltbereit sind   gibt es f  r jedes System immer unendliche Abl  ufe  auch wenn sich nach einem blockie   renden Zustand die Werte der kontrollierten Variablen unter Umst  nden nicht mehr    ndern  Schritte  in denen alle Werte unver  ndert bleiben  Stotterschritte   sind jeder   zeit m  glich  da  a      in der Menge 7    mit enthalten ist     Um einem Transitionssystem ein Black Box Verhalten zuordnen zu k  nnen  betrachten  wir die Werte der gelesenen Eingabestr  me und der produzierten Ausgabestr  me am  fiktiven    Ende    einer Ausf  hrung  Da Ausf  hrungen unendlich sind  ist dies nat  rlich  nicht direkt m  glich  Da aber sowohl die Ein  als auch Ausgabestr  me schrittweise  verl  ngert werden und somit eine Kette bilden  gibt es f  r v     JU O eine kleinste obere  Schranke und wir k  nnen diese als    letzten    Wert im Ablauf definieren          c0  v     LEk   v    k     N     Als Black Box Verhalte
198. lementiert  Sie repr  sentiert  nur auf explizite Weise die globale Fehlerannahme  die damit in Beweisen verwendet  werden kann     Beispiel 5 1 Als Beispiel w  hlen wir das Triple Modular Redundancy System aus Abbil   dung  5 1  Eine Komponente sei dreifach repliziert als S1 S2 und S3  denen das crash failure   Fehlermodell zugewiesen sei  Der Voter ist durch Vergleich der Ausgaben der drei Komponenten  in der Lage  den Ausfall einer Komponente an einer fehlenden Nachricht zu erkennen  F  r das  hier gew  hlte Fehlermodell kann das Gesamtsystem seine Leistung noch erbringen  wenn mazi   mal zwei der drei Komponenten ausfallen  Diese Aussage wollen wir formal nachweisbar machen   Dazu f  hren wir die vorgeschlagenen beiden Schritte durch     e Das Auftreten des Ausfalls wird kausal verkn  pft mit einem entsprechenden Signal im  Orakelstrom oc  mit i      1 2 3   der entsprechend Abschnitt  IJerg  nzt wird  Das Feh   lermodell aus Abschnitt S LI  wird weiter angepasst durch eine Ver  nderung der Tran   sition Tstop  Diese Transition darf nur noch schalten  wenn sie auf oc  den Wert true  empf  ngt     126 KAPITEL 5  METHODISCHER UMGANG MIT FEHLERN                                                                         V  ymn  i m a S    Io  11  it  tot   oR a oe        1              So        1  l  ji  l  i  i ie S3  IBS a Ses seSeS                Abbildung 5 1  TMR System mit virtueller Komponente    F df Name Pre Input Output Post  an  S oc  true     stop      true    e Es 
199. lick    In diesem abschlie  enden Kapitel fassen wir die Ergebnisse und Beitr  ge der vorliegen   den Arbeit zusammen und identifizieren die neu aufgeworfenen Problemstellungen mit  den daraus resultierenden weiterf  hrenden Aufgaben und Herausforderungen     6 1 Beitrag dieser Arbeit    Der Kernbeitrag dieser Arbeit liegt in der Integration des Fehlerbegriffs in die formale  Methodik Focus  Damit wird eine engere Verbindung geschaffen zwischen der formalen  Welt  in der idealisierend von der Abwesenheit jeglicher Fehler ausgegangen wird  und  einer realen Welt  in der vielf  ltige Arten von Fehlern oft unvermeidbar sind und da   mit auch im Entwicklungsproze   f  r komplexe verteilte Softwaresysteme nicht ignoriert  werden k  nnen und d  rfen     Formale Methoden werden oft gerade deshalb eingesetzt  um Fehlerfreiheit in einer Sys   tementwicklung zu erreichen  Durch die mit ihrer Verwendung verbundene hohe Pr  zi   sion in der Formulierung von Systemspezifikationen und einer formal nachweisbaren  Korrektheit von Entwicklungsschritten werden Fehler im Entwicklungsproze   weitge   hend ausgeschlossen  Jedes konkret realisierte System st  tzt sich aber ab auf eine nicht  notwendigerweise fehlerfreie zugrundeliegende Basis  wie beispielsweise das Betriebssys   tem  die Hardware oder die Systemumgebung     Diese Fehler d  rfen nicht vernachl  ssigt werden  Eine Verschiebung des Umgangs mit  Fehlern in sp  te Phasen einer Systementwicklung ist nicht in jedem Fall eine angemes   s
200. lso die Annahme  A verletzen     A G Spezifikationen sind gut geeignet  die Linkstotalit  t von Black Box Spezifikationen  zu erreichen  indem nicht zugelassene Eingaben durch die Annahme ausgeschlossen wer   den k  nnen  Sie eignen sich auch  die Anforderungen an eine Umgebung auszudr  cken   in denen Komponenten in der Lage sind  ihre Leistung zu erbringen  Es k  nnen damit  auch Bedingungen f  r die Komposition von Komponenten pr  zise definiert werden     Beispiel 3 4 A G Spezifikation eines Puffers    Als Beispiel spezifizieren wir einen einfachen Puffer  der Daten aus einer  nicht n  her spezifizier   ten  Menge D zwischenspeichert und auf Anfrage in der gleichen Reihenfolge wieder ausgibt   Seine Kapazit  t sei auf N Datenelemente beschr  nkt  Es gibt zwei F  lle  die wir durch eine  geeignete Umgebungsannahme A ausschlie  en wollen  Der Puffer empf  ngt Anfragen  obwohl  er keine Daten gespeichert hat  oder der Puffer empf  ngt Daten  obwohl bereits N Elemente  gespeichert sind     Zun  chst definieren wir die Schnittstelle  Sowohl Daten als auch Anfragen  dargestellt durch  die Nachricht R  sollen beide auf einem Kanal i empfangen werden  w  hrend die Ausgaben auf  dem Kanal o wieder ausgegeben werden  Damit ergibt sich    I    i  type t    DU R   O    o  type o  D    und eine Darstellung der Schnittstelle entsprechend Abbildung BJ     Die Annahme A soll die Bedingung beschreiben  die der Eingabestrom zu erf  llen hat  Es  ergeben sich folgende beiden Forderungen    
201. ltierenden Schnittstellen  und das Verhalten  von  S T  amp  U  und      T    U identisch  Sind die Komponenten jedoch nicht paar   weise kompatibel  kann dennoch nach einer geeigneten Umbenennung der Kan  le eine  Komposition m  glich sein     Eine Umbenennung kann aus verschiedenen Gr  nden notwendig werden  Bei der Spe   zifikation eines Systems k  nnen die Kanalnamen willk  rlich gew  hlt werden  M  chte  man Systeme komponieren  bei deren Entwurf nicht auf eine geeignete Namensgebung  geachtet wurde  so k  nnen die System unn  tigerweise nicht kompatibel sein  wenn die  Ausgabekan  le den gleichen Namen tragen  Die Kanalnamen k  nnen vollkommen auch  disjunkt sein  so dass die Komposition nur eine parallele und vollkommen interaktions   freie    Komposition    der Systeme ergibt     Eine Umbenennung erfordert die Zuordnung von alten auf neue Kanalnamen  Jedem  alten Kanalnamen wird genau ein neuer Kanalname zugeordnet  Eine Umbenennung  k  nnen wir also definieren durch eine bijektive Funktion zwischen Kanalnamen  Bei  einer Komposition k  nnen nur Kan  le identifiziert werden  die den gleichen Nachrich   tentyp aufweisen  Daher mu   die Umbenennung den Typ der Kan  le erhalten  K  nnen  Kanalnamen aus zwei Mengen typerhaltend umbenannt werden  nennen wir die Mengen  der Kanalnamen vereinbar     Definition 3 9 Vereinbarkeit von Schnittstellen  Umbenennung    Seien zwei Mengen X und Y von Kanalnamen gegeben  Sie hei  en vereinbar  im Zei   chen    X Y  wenn es eine Bijekt
202. m bezeichnet   trotz  intern oder extern  auftretender Fehler noch immer ein gew  nschtes oder zumin   dest davon nur geringf  gig abweichendes Verhalten aufzuweisen  Eine Aussage   ber die  Fehlertoleranz eines Systems muss also zwei Teilaussagen umfassen     e Die Menge der tolerierten Fehler muss angegeben werden  Im allgemeinen k  nnen  nicht beliebige Fehler  zum Beispiel Fehler mit extrem fataler Wirkung  toleriert  werden  sondern nur eine zu definierende Klasse von Fehlern  von denen man an   nimmt  dass das System ihnen ausgesetzt sein kann  Diese Menge von Fehlern wird  h  ufig auch als Fehlermodell bezeichnet    ber Fehler  die nicht in dieser Klasse  sind  wird keine Fehlertoleranz  Aussage gemacht  So wird f  r manche Fehler bei   spielsweise angenommen  dass ihr Auftreten zu unwahrscheinlich ist  als dass sie  ber  cksichtigt werden m  ssen     e Die zul  ssige Abweichung vom fehlerfreien Verhalten ist zu definieren  Nur im  idealen Fall bleiben die Auswirkungen von Fehlern nach au  en unsichtbar  Im  allgemeinen gibt es eine Ver  nderung  beispielsweise in der Performanz eines Sys   tems  in seinem zeitlichen Verhalten oder auch in einer  tolerierbaren  Abweichung  von berechneten Werten vom eigentlich korrekten Resultat  Diese in der Literatur  oft als graceful degradation  sanfte Leistungsminderung  bezeichnete Abweichung  ist f  r eine klare Aussage zur Fehlertoleranz explizit zu machen     F  r ein System k  nnen auch mehrere  gestaffelte Aussagen zur Fehle
203. men der Eingabekan  le  und M kann vor S geschaltet  werden  Abbildung      2X OAY2O  Die Modifikationskomponente kann direkt hinter S geschaltet werden  und ihre  Ausgabe   ndert die Schnittstelle nicht bis auf Umbenennung der Kan  le  Abbil     dung      3  X  IUO AY  0  Die Eingabe der Komponente M wird sowohl mit der Eingabe als auch mit der    Ausgabe von S verbunden  w  hrend die Ausgabe von M zur Ausgabe von S kom   patibel bleibt  Abbildung    4  3IT  O0 e X  I UO AY  IUO0O AI  sIn s0  Die Modifikationskomponente empf  ngt sowohl Eingaben von der Umgebung   ber  I    als auch die Ausgaben von S   ber O  Sie kann Ausgaben machen   ber O  an    die Umgebung und   ber I an S  Abbildung 4 3 d          Die Modifikation wird definiert durch die Komposition mit der entsprechenden Modifi   kationskomponente  Das modifizierte System wird also ausgedr  ckt durch    S amp M    Es ergibt sich in allen vier F  llen  dass das komponierte System S 8 M kompatibel zu  S ist  also verm  ge einer Umbenennung der Kan  le in jedem Kontext an Stelle von S  eingesetzt werden kann     Durch die Beschr  nkung auf eine Modifikation des Black Box Verhaltens sind Modifi   kationskomponenten nicht immer gut geeignet zur Repr  sentation von Fehlern  So l    t  sich beispielsweise eine spontane  interne Ver  nderung im Datenanteil einer Kompo   nente nur kompliziert darstellen  Soll eine Ver  nderung des Inhalts einer Speicherzelle  durch eine Modifikationskomponente modelliert werden  so m  ssten 
204. mit das Verhalten des Puffers in  einem derartigen Fall nicht mehr unspezifiziert ist  definieren wir eine naheliegende Reaktion   Im Falle eines Unterlaufs soll die entsprechende Anfrage ignoriert werden  Diese   nderung  dr  cken wir nun formal aus     Da wir die Annahme fallen lassen  dass in jedem Pr  fix die Zahl der Anfragen nicht gr    er als  die Zahl der Daten ist  schw  chen wir die Annahme A ab und fordern von der Umgebung nur  noch       AZ Vil Cie  DOi     R   i   lt N    Wir passen die Spezifikation des Systems an zu         amp  oc DOi A  0     R   i     underflow i     Die ausgegebenen Daten sind noch immer genau jene Daten  die auch empfangen werden  aller   dings wird nicht mehr f  r jede Anfrage eine Ausgabe gemacht  Die L  nge der Ausgabe wird um  die Anzahl der auftretenden Unterl  ufe reduziert  Die Funktion underflow wird definiert durch  Abst  tzung auf die Hilfsfunktion uf mit    underflow i    uf i 0     Die Funktion uf ermittelt f  r einen Eingabestrom die Zahl der Unterl  ufe  die er ausl  sen wird   Dazu z  hlt sie im zweiten Argument die im Puffer gespeicherten Daten  Diese Zahl erh  ht sich  demzufolge beim Empfang eines Datums und reduziert sich bei Ausgabe eines Datums  Sind  keine Daten mehr vorhanden  wird aber eine Anfrage empfangen  liegt ein Unterlauf vor  Die  Funktion uf k  nnen wir also rekursiv definieren durch    uf            0   uf  d   i n    uf i n 1    uf  R  oin    uf i n   1  firn gt 0  uf   R  37 0    1 uf i 0     Gilt f  r e
205. mit den neuen Eigenschaften beschrieben  werden  die wir als   r bezeichnen  Die neuen Eigenschaften sind selbst wieder eine  Black Box Spezifikation bei unver  nderter Systemschnittstelle  Die Abschw  chung wird  entsprechend durch eine Disjunktion mit einer Formel    p angegeben  Wir definieren     Definition 4 4 Modifikation von Black Box Spezifikationen    Seien     Pg und p Black Box Spezifikationen zur Schnittstelle  I  O   Die Wirkung  der durch       M    r r   definierten Modifikation auf die Black Box Spezifikation    ist definiert durch  BA Op  dp      PAPE  VF             Die neutrale Modifikation wird offensichtlich durch das Paar  true  false  beschrieben   da       A true  V false  Die Modifikationen von    zu einem beliebigem Y kann  ausgedr  ckt werden durch die Modifikation M          WV   oder durch ein M       g  Y   mit   g  gt    P   begr  ndet durch die Tautologie V        A       v W  Die Modifikation  zu chaotischem Verhalten l    t sich mit der Modifikation     g  true  mit beliebigem   z  beschreiben     Die Formel p definiert eine Menge von Stromtupeln  die diese Formel erf  llen  Diese  werden aber nicht aus dem Verhalten des modifizierten Systems entfernt  wie dies bei  der Modifikation von Relationen geschieht  Eine unmittelbarere Analogie w  re gegeben   h  tte man die Modifikation mit einer Negation durch      A   p  V   p definiert  Wir  haben Definition  4 Jaber so gew  hlt  dass sich in    p gut die zus  tzlichen Eigenschaften  des ver  nde
206. mmen mit offenen Fragestellungen im n  chsten und abschlie  enden Abschnitt die   ser Arbeit zusammenstellen     6 2 Weiterf  hrende Themengebiete    Wir identifizieren und beschreiben nun die neu aufgeworfenen Aufgabenfelder  die sich  zur Fortf  hrung dieser Arbeit anbieten  Wir k  nnen dabei zwischen zwei Ausrichtungen  unterscheiden  Einerseits bieten sich einige theoretische und grundlagenorientiere Erwei   terungen an  die das Anwendungsfeld der formalen Fehlermodellierung noch weiter ver   gr    ern  Andererseits ergeben sich Aufgabenstellungen  die auf eine Verbesserung der  praktischen Verwendbarkeit der vorgestellten Ans  tze abzielen  Wir skizzieren zun  chst  die eher theoretischen Themengebiete     e Wir haben in dieser Arbeit Systeme auf der Basis des asynchronen und ungezei   teten Modells dargestellt  Dies bietet eine abstrakte Sicht auf Systeme  die aber  insbesondere die zeitlichen Aspekte in Systemabl  ufen nicht reflektiert  Zeit kann  im Zusammenhang mit potentiellen Fehlern aber durchaus eine relevante Rolle  spielen  da Fehler beispielsweise durch Nachrichten erzeugt werden  die zu sp  t  oder zu fr  h   bertragen werden  Fehler k  nnen die Performanz von Systemen  beeinflussen  wenn durch die Ausf  hrung einer Fehlerbehandlung die normalen  Aktivit  ten unterbrochen werden m  ssen     162    KAPITEL 6  ZUSAMMENFASSUNG UND AUSBLICK    Die bereits erarbeiteten Techniken zur Fehlermodellierung und  behandlung sind  also auf ein m  chtigeres Systemmodell z
207. mponenten  Damit  erm  glichen sie die Formalisierung von Fehlern auf verschiedenen Abstraktionsstufen     Auch die sogenannte Schnittstellenverfeinerung  die uns im Systemmodell von FOCUS  zur Verf  gung steht  erlaubt die Modifikation von Schnittstellen  Eine abstrakte Darstel   lung einer Kommunikationsgeschichte kann durch Repr  sentations  und Abstraktions   pr  dikate zu einer konkreteren Darstellung in Beziehung gesetzt werden  Diese Art der  Modifikation ist aber einerseits zu m  chtig  da mit ihr auch eine Verhaltensver  nde   rung modelliert werden kann  Unser Ziel war eine Trennung der Modifikation von Ver   halten und Schnittstelle  um die Komplexit  t eines Einzelschrittes   berschaubar zu  halten  Andererseits sind Schnittstellenverfeinerungen durch ihre Forderungen an die  Repr  sentations  und Abstraktionspr  dikate zu eingeschr  nkt  um alle Modifikationen  beschreiben zu k  nnen  Modifikationen sind im allgemeinen keine Verfeinerungen  son   dern erlauben eine wirkliche Ver  nderung eines Systems     Bei der Definition der Verhaltensmodifikationen wird  entsprechend Abbildung  4 2  in  den drei Formalismen der Relationen  Eigenschaften und Transitionen ein Teil des Ver   haltens entfernt und ein anderer Teil hinzugef  gt  Durch die Klammerung ist eine  Reihenfolge dieser Operationen definiert  Das Entfernen wird zuerst durchgef  hrt  das  Hinzuf  gen danach  Diese Reihenfolge ist keinesfalls zwingend  und h  tte auch anders  gew  hlt werden k  nnen  Unsere W
208. mposition    Zwei Komponenten S und T mit den Schnittstellen  Is  Os  und  Ir  Or  hei  en kom   patibel  wenn sie keine gemeinsamen Ausgabekan  le haben  also    Os N Or        Das aus S und T zusammengesetzte System wird bezeichnet durch  SOT   und besitzt als Schnittstelle    d   Iser 2  IsUIr   OsU Or   d   Oset af Os U Or                In AbbildungB 5 ist die entstehende Schnittstelle veranschaulicht  Die Eingabeschnitt   stelle des Gesamtsystems besteht also aus den Eingabekan  len der beiden Komponenten  ohne diejenigen Kan  le  die von den Ausgaben der jeweils anderen Komponente schon  mit Nachrichten versorgt werden  Diese Kan  le bleiben aber in der Ausgabe sichtbar  so  dass sich die Ausgabeschnittstelle als Vereinigung aller Ausgabekan  le ergibt  Interne  Kan  le entstehen somit nicht  Wir haben diese Wahl getroffen  da sie eine Vereinfachung    56 KAPITEL 3  FORMALES SYSTEMMODELL                   Is    Ir U Or                  gt     gt  Og   Ir  S  Os N Ir  Ig N Ir  OrN Is  T  Ir    Is U Os                   m Or   Is             Abbildung 3 5  Komposition von Komponenten    fiir die Verifikation mit sich bringt  indem auf alle Informationen offen zugegriffen wer   den kann     Die Komposition ist nur fiir zwei Komponenten definiert  Durch iterative Anwendung  k  nnen aber beliebig viele Komponenten zu einem System verbunden werden  Die Rei   henfolge der Komposition spielt dabei keine Rolle  denn sind die Komponenten paar   weise kompatibel  so sind die resu
209. ms ermitteln  zu k  nnen     Beobachtung Die Beobachtung eines Ausfalls kann f  r verschiedene Beobachter kon   sistent oder inkonsistent sein  Nicht immer nehmen alle Beobachter einen Ausfall  auf die gleiche Weise wahr  So kann ein Versagen f  r einen Systembenutzer erheb   liche Einschr  nkungen darstellen  w  hrend es f  r einen anderen Benutzer vollkom   men unbemerkt bleibt  da nur Funktionalit  ten betroffen sind  die von ihm nicht  in Anspruch genommen werden  Aber auch bei Verwendung des gleichen Funktio   nalit  t k  nnen durch unterschiedliche Granularit  ten der Zeitwahrnehmung von  Benutzern Versagen unterschiedlich wahrgenommen werden  Versagen mit kon   sistenter Beobachtbarkeit stellen im allgemeinen ein kleineres Problem dar  wenn  Versagen im Rahmen einer  automatisierten  Fehlerbehandlung erkannt werden  sollen     2 1 3 Fehler als Soll Ist Abweichung    Die bisher angegebenen Klassifizierungen stellen das breite Spektrum an Interpretati   onsm  glichkeiten f  r den Fehlerbegriff dar  wie sie in der Literatur gefunden werden  k  nnen  Wir wollen in diesem Abschnitt verschiedene Fehlerbegriffe durch Abweichun   gen eines Ist von einem Soll in Bezug auf verschiedene Aspekte eines Systems charak   terisieren  Wir beschreiben dazu zun  chst ein einfaches Systemmodell und erl  utern  daran die Attribute eines Systems  die uns im Rahmen dieser Arbeit interessieren  Die  bereits beschriebenen Begriffe Fehlerursache  Fehlerzustand und Versagen k  nnen wir  dann als
210. ms gleich   kommt  Die Eigenschaften eines Systems sind im wesentlichen unabh  ngig von  seiner Umgebung  und bleiben in jedem Kontext erhalten  Dies unterst  tzt einen  Entwickler in der Handhabung komplexer Systeme     F  r eine praktische Einsetzbarkeit einer formalen Methodik ist eine Werkzeugun   terst  tzung absolut unerl    lich  Mit AUTOFOCUS und seiner Weiterentwicklung  im Rahmen des Projektes QUEST  53  steht bereits ein Werkzeug zur Verf  gung   mit dem sich reale Systementwicklungen durchf  hren lassen     F  r die Modellierung von Fehlern stellt dieses Systemmodell daher eine geeignete Grund   lage dar um Fehler auf verschiedenen Abstraktionsebenen repr  sentieren zu k  nnen  Das  Modell erm  glicht es  aus der Kenntnis des Komponentenverhaltens auf das Verhalten  des Gesamtsystems zu schlie  en  nach  57  relevant beim analytischen Umgang mit  Fehlern   Es ist weiterhin m  glich  zwischen internen und externen Fehlern zu unter   scheiden  und die Ausbreitung von Fehlern   ber verschiedene Komponenten hinweg zu  untersuchen  Diese Themen werden in den folgenden beiden Kapiteln behandelt     Im Rahmen von FOCUS gibt es alternative Modellierungstechniken  die sowohl Zeit als  auch Synchronit  t betreffen  Wir haben uns aus den im folgenden angegebenen Gr  nden  f  r das ungezeitete und asynchrone Systemmodell entschieden     e Im sogenannten ungezeiteten Modell wird Zeit nicht modelliert  Es ist damit nicht  m  glich  das zeitliche Verhalten eines Systems oder ein
211. mus verf  gbar  aber eine Implementierung unseres Puffers entsprechend seiner  Spezifikation ist nicht in der Lage  sich beispielsweise an alle ausgegebenen Nachrichten in o zu     erinnern        Wir entwickeln den Puffer daher weiter  und f  hren eine neue  mit 0 initialisierte Variable z als  Z  hler ein  Die beiden Transitionen 7  und 72 werden verfeinert  indem sie die Variable z nicht  mehr beliebig ver  ndern d  rfen  sondern in ihr die L  nge von q speichern  Die Fehlertransition  73 l    t z aber unver  ndert     Name Pre Input Output Post   n  9 lt N DM   degrek azr zr  i   ie oe aa ae a  n     gt 0       G rtqav z    Das System kann nun auf die Variable z zugreifen  so dass wir folgende Definition von W w  hlen  k  nnen     v  amp   q z    Da wir  mit den Beweistechniken aus B 8 2  zeigen k  nnen  dass z    i        0 eine Invariante  unseres fehlerbehafteten Puffers darstellt  ist W eine angemessene Charakterisierung des Daten   verlusts  d h  mit der Variablen z und den Verfeinerungen der Transitionen wurde das System  auf geeignete Weise erg  nzt  um einen Zustand  q    i        0 vom System erkennbar zu  machen  Die Variable z stellt Redundanz entsprechend B 2 2 dar  die die Fehlererkennung durch  das System selbst erm  glicht     Wir m  ssen nun noch die Korrektheit  Lebendigkeit und Stabilit  t von W nachweisen  In un   serem Fall gilt eine st  rkere Aussage  die diese drei Eigenschaften impliziert  denn der Puffer  befindet sich in einem  durch 73 verursacht
212. n  Beispiel BII  haben wir bewiesen  dass  0    i     i  eine Invariante von Merge ist  Da  auch 7   C i und damit  i    lt   i f  r alle Eingabestr  me i eine Invariante in jedem System ist   k  nnen wir    Merge    inv  0  lt   i            folgern  Dieses Pr  dikat ist gem     den Kriterien aus  IO  admissible  so dass wir unter Anwen   dung obiger Regel     Merge   gt   0  lt   i    i2    ableiten  Unter Verwendung der Regel f  r Fortschritteigenschaften k  nnen wir aus dem Resultat  in Beispiel BIT2 folgern  dass     Merge   gt   0  gt   i      a  Kombiniert man beide Resultate  erhalten wir mit   Merge   gt   0    1    i2    die erwartete Black Box Eigenschaft von Merge                    3 9  VERFEINERUNGEN 67    3 9 Verfeinerungen    Die Entwicklung eines komplexen Systems kann nicht in einem einzigen Schritt erfolgen   Eine Systementwicklung muss mehrere Phasen durchlaufen  die sich von der Erfassung  von Systemanforderungen bis zu einer konkreten Implementierung und Integration von  Systemkomponenten erstrecken  Dabei wird ein System typischerweise zun  chst rela   tiv abstrakt beschrieben  um eine grobe Strukturierung des Systems zu erm  glichen   Im weiteren Entwicklungsproze   werden durch Entwurfsentscheidungen mehr und mehr  Details erg  nzt  die alle Aspekte eines Systems betreffen k  nnen  Beispiele f  r Entwurfs   entscheidungen sind die Wahl einer Systemarchitektur  die Wahl eines Datenmodells  und die Wahl einer Systemplattform  Derartige Entscheidung habe
213. n  wie  sie bei der Modifikation von Systemen entsprechend angepa  t werden k  nnen mit dem  Ziel  m  glichst wenig von dem bereits geleisteten Beweisaufwand zu verlieren     3 8 3 Black Box Eigenschaften von Transitionssystemen    Die Eigenschaften von Zustandsmaschinen aus Abschnitt 8 8 1  die mit den Diagrammen  aus Abschnitt B 8 2  bewiesen werden k  nnen  machen Aussagen   ber die Zust  nde  des Transitionssystems  Eine Black Box Eigenschaft dagegen spricht nur   ber die nach  au  en sichtbaren Ein  und Ausgabestr  me  Der   bergang zwischen beiden Sichten kann  mit zwei Regeln hergestellt werden  die in   0  hergeleitet und ausf  hrlicher diskutiert  werden  Sie lauten    SIF inv     er Slk o kAk lt l Ye  0 gt k   gt     s   gt      S   gt   0  gt      wobei    und auch    nur Variable aus J U O enthalten d  rfen  Das Pr  dikat adm   f  r admissible  stellt sicher  dass die Eigenschaft    auch f  r unendliche Str  me g  ltig  ist  wenn sie f  r alle endlichen Approximationen erf  llt ist  Eine Invariante gilt dann  auch f  r die unendlichen Ein  Ausgabestr  me  die im Grenzwert erreicht werden  Die  Fortschrittseigenschaft f  hrt zu einer iterierten Verl  ngerung einer Ausgabe  solange der    Wert    noch nicht erreicht ist  Im Falle eines unendlichen Ablaufs wird dieser Grenzwert  letztendlich erreicht oder sogar   bertroffen        Beispiel 3 13 Black Box Eigenschaften von Merge    Wir verwenden die beiden Regeln  um eine Black Box Eigenschaft von Merge herzuleiten  I
214. n Daten oder der Verlust und die Verf  lschung von Daten bei der   bert   ragung sind auf diese Weise gut darstellbar  Man ist in einem solchen Fall daran  interessiert  wie sich die  Black Box  Eigenschaften des so modifizierten Systems  ver  ndern  also ob zum Beispiel sicherheitskritische Eigenschaften verletzt werden     Die Idee der korrespondierenden Modifikationen wird in Abbildung  Z 6 dargestellt  Ein  Transitionssystem S habe eine Eigenschaft     Beide Beschreibungen des Systems wer   den passend modifiziert  so dass das modifizierte System die modifizierte Eigenschaft  hat  Wir definieren dies formal     Definition 4 13 Korrespondierende Modifikationen    Ein Transitionssystem S habe eine Eigenschaft     also S       Ferner sei MS eine  Modifikation von S und M   eine Modifikation  von        Die beiden Modifikationen MS und M   hei  en korrespondierende Modifikationen zu  S und     wenn gilt       SAMS   aM                    Diese Definition von korrespondierenden Modifikationen ist relativ zu konkreten S und      Dies ist begr  ndet durch die Beobachtung  dass korrespondierende Modifikationen    4 5  EIGENSCHAFTEN VON MODIFIKATIONEN 111    S                Modifikation    SAME H SAM      Abbildung 4 6  Korrespondierende Modifikationen    im allgemeinen nicht auf beliebige Systeme anwendbar sind  Ein offensichtlicher Grund  ist  dass die Modifikationen von Transitionssystemen konkreten Bezug auf die Namen  von Variablen nehmen  Zwei Transitionssysteme  die sich n
215. n Einflu   aufeinan   der und m  ssen daher sehr sorgf  ltig gew  hlt werden     Die verschiedenen in einem Entwicklungsproze   entstehenden Systemversionen sollen  nat  rlich nicht unabh  ngig voneinander sein  sondern sind idealerweise durch soge   nannte Verfeinerungen verbunden  Liegt eine Verfeinerung zwischen zwei Varianten  eines Systems vor  so beschreibt die verfeinerte Variante im wesentlichen das gleiche  System wie die abstrakte Sicht  darf aber zus  tzliche Eigenschaften und Konkretisie   rungen aufweisen  Es ist also formal zu definieren  wann ein System eine Verfeinerung   oder Implementierung  eines anderes Systems darstellt     Wir wollen dazu in diesem Abschnitt den Verfeinerungsbegriff im Rahmen unseres  Systemmodells vorstellen  Dazu beschreiben wir kurz die beiden Verfeinerungsrelatio   nen der Verhaltens  und der Schnittstellenverfeinerung  Eine deutlich ausf  hrlichere  Einf  hrung in diese Konzepte findet sich in BJ      3 9 1 Verhaltensverfeinerung    Die Verhaltensverfeinerung erlaubt es  ein abstraktes System mit einem konkreten Sys   tem in Beziehung zu setzen  das die gleiche Schnittstelle hat  aber zus  tzliche Forde   rungen an das Verhalten aufweisen kann     Definition 3 14 Verhaltensverfeinerung    Seien zwei Systeme  mit gleicher Schnittstelle  durch die Relationen Ry und Ra be   schrieben  System Ra ist eine  Verhaltens   Verfeinerung von R    notiert durch    Ri  Ra  wenn jedes Verhalten von Ra auch ein Verhalten von R   ist     R   C Ry  
216. n Kanals auf dem Ausgabekanal wieder ausgeben  Die Auswahl des ignorierten  Kanals soll dabei nichtdeterministisch erfolgen     4 2 1 Modifikationen von Relationen    Das Verhalten wird semantisch als eine Relation zwischen Ein  und Ausgabestr  men  repr  sentiert  also durch die Menge aller Stromtupel  die in dieser Relation stehen     Diese Menge kann nur auf zweierlei Arten modifiziert werden  Einerseits durch die  Hinzunahme weiterer Stromtupel  die zus  tzliche Freiheiten im Verhalten des Systems  bedeuten  andererseits durch das Entfernen von Stromtupeln  Da die Linkstotalit  t  nicht gef  hrdet werden darf  muss nat  rlich f  r jede m  gliche Eingabe noch immer ein  Stromtupel in der Relation erhalten bleiben     Diejenigen Stromtupel  die ein modifiziertes System zus  tzlich enth  lt  fassen wir in  einer Menge F zusammen  Die Menge der Stromtupel  die das modifizierte System  nicht mehr enth  lt  nennen wir E     Die Wahl des Bezeichners F orientiert sich am Begriff des Fehlers oder auch an fault und  failure   Transiente  Fehler in einem System sind meist unerw  nschte Auspr  gungen des    84 KAPITEL 4  FORMALE MODELLIERUNG VON FEHLERN    Verhaltens  die ein System zus  tzlich aufweisen kann  also ein erweiterter Nichtdeter   minismus  der genau durch die Menge F beschrieben wird  Das Entfernen von Teilen  des Verhaltens geht mit einer h  heren Priorisierung des verbleibenden Verhaltens ein   her  was einem Exception Mechanismus   hnelt  Dies wird illustriert durch 
217. n Programmierung Diese Technik ist eng verwandt mit der Triple Mo   dular Redundancy  Die verschiedenen Versionen werden parallel ausgef  hrt und das  Ergebnis durch einen Voter verglichen  wie in Abbildung 2 9  dargestellt     Ein geeigneter Voter muss nicht f  r alle Arten von Software existieren  Es k  nnen  f  r eine Berechnung durchaus mehrere Resultate korrekt sein  so dass es durch reine  Mehrheitsbildung nicht m  glich ist  korrekte von falschen Ergebnissen zu unterscheiden   Unter Umst  nden k  nnen Toleranzen definiert werden  mit denen   hnliche Resultate  als   bereinstimmung interpretiert werden     Die Abarbeitung der verschiedenen Versionen muss effizient und nebenl  ufig erfol   gen k  nnen  Bei sequentieller Ausf  hrung m    te die Summe aller Laufzeiten aufge   wendet werden  bei paralleler Abarbeitung ergibt sich noch das Maximum der Lauf   zeiten der Einzelkomponenten  Die Komponenten m  ssen dar  ber hinaus vollkommen  eigenst  ndig ablaufen k  nnen  ohne eine ver  ndernde Wirkung auf ihre Umgebung zu  haben  Damit m  ssen sie eine noch st  rkere Eigenschaft erf  llen  als f  r die R  cksetz   barkeit notwendig ist     34 KAPITEL 2  DER FEHLERBEGRIFF          m gt  Version 1                     Version 2        Voter  gt _ gt                                 Version 3             Abbildung 2 9  N Versionen Programmierung    Das Problem beider Ans  tze ist die Bereitstellung einer    echten     vielf  ltigen Diversi   fikation zwischen den Versionen  Man ve
218. n Verhalten ist unmittelbar f  r  die Umgebung sichtbar  da sie in der Black Box Sicht formuliert wird     F  r die Transitionssysteme ist ein Ablauf  der nicht dem spezifizierten System ent   spricht  nicht unbedingt als Versagen zu bezeichnen  da eine Abweichung auch lediglich  intern auftreten kann und damit    nur    einen Fehlzustand darstellt  Wir definieren das  Versagen eines Systems daher auf folgende Weise  Ein Versagen tritt in einem Zustand  auf  wenn alle Zust  nde  die von au  en betrachtet identisch mit ihm sind  Fehlzust  nde  sind  Dies bedeutet  dass bei einem Versagen das nach aussen sichtbare Verhalten eines  Transitionssystems nur aufgrund fehlerhafter Transitionen zustande kommen konnte     Definition 4 9 Versagen    1  Seien eine Black Box Spezifikation S und eine Modifikation M gegeben  Die Men   ge aller Verhalten  die ein Systemversagen aufweisen  wird definiert durch    FAILURES S M       i  0     i 0       SAM  A  i  0       S      2  F  r ein Transitionssystem S und eine zugeh  rige Modifikation M wird die Menge  der Zust  nde  die ein Systemversagen beschreiben  definiert durch    FAILURES S M      a   Y8 o 872 a   gt  6     ERROR S  M                  Das Versagen von Systemen l    t sich im Rahmen der Black Box Sicht weiter vereinfa   chen  Aufgrund der Tautologie      PAPr  Vr  AA  amp  rana     k  nnen wir die Menge der Versagen auch folgernderma  en charakterisieren     96 KAPITEL 4  FORMALE MODELLIERUNG VON FEHLERN    Proposition 4 4 Black 
219. n eines Transitionssystems definieren wir alle Stromtupel  die im  Grenzwert einer Systemausf  hrung auf den Kan  len gelesen bzw  produziert wurderft    IS  Fam      2n  Y1       Ym    FE    S       Vj      1      n          00  ij    ay A  ee  a     Eine ausf  hrliche Diskussion dieser Definitionen findet sich in  IQ   F  r die Verhaltensre   lation eines wohldefinierten Transitionssystems ist sichergestellt  dass sie linkstotal und  monoton ist  Die Monotonie folgt unmittelbar aus der Forderung  d  aus Definition BB   Da die Umgebungstransition immer schaltbereit ist  kann auf den Eingabekan  len jeder  beliebige Eingabestrom erzeugt werden        W  hlt man eine geeignete Darstellungsform f  r Transitionssysteme  so k  nnen darin nur  wohldefinierte Systeme dargestellt werden  Zwei derartige Darstellungsformen werden  wir nun pr  sentieren      Wir m  ssen hier unterscheiden zwischen den Kanalnamen i  bzw  oj und den Str  men x  bzw  y    die auf den Kan  len transportiert werden     3 6  ZUSTANDSTRANSITIONSSYSTEME 53    3 6 1 Graphische Darstellung    Ein Transitionssystem hat eine einfache Funktionsweise  Es befindet sich in einem Zu   stand  und geht  ausgel  st durch Eingaben  in einen Nachfolgezustand   ber  wobei es  Ausgaben produzieren und lokalen Variablen neue Werte zuweisen kann  W  hlt man  Kontrollzust  nde als Knoten und die Transitionen als Kanten  so lassen sich Transiti   onssysteme sehr intuitiv als gerichtete Graphen darstellen  wie beispielsweise in  1
220. n hier ver   einfachend von nur einem Ein  und Ausgabekanal aus  Ein Strompaar  i  0  repr  sen   tiert ein zul  ssiges Verhalten des fehlerhaften Systems mit potentiellem crash failure   Fehlermodell  wenn die Verl  ngerung o    von o ein Normalverhalten darstellt     Op   AoleoLo  A  amp  0    o              Im Formalismus der Transitionssysteme modellieren wir dieses Fehlermodell durch die  Hinzunahme einer neuen  in A noch nicht enthaltenen booleschen Variable  die wir mit  stop bezeichnen  Die Hinzunahme kann entsprechend Kapitel   2 3 zun  chst verhaltens   neutral erfolgen     Der Wahrheitswert der Variable gibt an  ob das System schon seinen Stoppzustand  erreicht hat  In einem solchen Fall darf keine der Transitionen T schaltbereit sein   Daher sind alle Transitionen aus dem System zu entfernen  die von einem Zustand a  ausgehen  in dem a stop   true gilt  Dies wird durch folgende Definition von E aus der  Modifikation M    E  F  erreicht     ve   a  B    a stop   true  U   a   B    a stop    B stop     Wie in Abschnitt  amp  2 3 beschrieben  entfernen wir standardm    ig mit diesem E zus  tz   lich alle Transitionen  die den Wert der neuen Variablen   ndern k  nnten  Nun erg  nzen  wir mit Hilfe von F eine stets schaltbereite Transition Tso   die jederzeit in der Lage  ist  den Wert von stop auf true zu setzen und damit das System zu blockieren     p a Name Pre Input Output Post     Tstop true       stop      true    Da keine Transition im System enthalten ist  die 
221. n korrekt erfa  t werden k  nnen  pr  zise Spezifikationen formuliert  ein geeigne   tes Systemdesign erstellt  Module implementiert und integriert werden  Dies hat unter  Einhaltung von Einschr  nkungen verschiedener Ressourcen wie finanzieller Mittel  Ar   beitskraft und Zeit zu geschehen  Ein Hilfsmittel sind formale Methoden  die nicht nur  eine pr  zise Sprache zur Formulierung von Systemen und ihrer Eigenschaften bieten   sondern auch einen Kalk  l zur Verifikation von Eigenschaften  Eine Systementwicklung  wird typischerweise durch Werkzeuge unterst  tzt  die zum Beispiel Konsistenzen und  Vollst  ndigkeiten zwischen verschiedenen Dokumenten   berpr  fen  Code aus Spezifika   tionen und Prototypen generieren und Gruppenarbeit unterst  tzen     Trotz gewisser Fortschritte dieser Disziplin in den letzten Jahren kann aufgrund der ho   hen und weiter wachsenden Komplexit  t der Systeme selten vollkommene Fehlerfreiheit  erreicht werden  Ein Entwicklungsproze   umfa  t in der Regel daher auch Reviews von  Beschreibungs  und Spezifikationsdokumenten  mit denen versucht wird  Fehler in ei   nem System  seinen Anforderungen und seiner Implementierung aufzudecken  um diese  anschlie  end zu beheben  Systeme und ihre Komponenten werden  bevor sie in ihrer ei   gentlichen Umgebung zum Einsatz kommen  auch immer durch verschiedenartige Tests  gepr  ft  um somit nach enthaltenen Fehlern zu suchen  Versagt ein Testlauf  werden die  verantwortlichen Fehler lokalisiert und entfernt   
222. n und  diese nach M  glichkeit sogar zu beweisen     Die in diesem Ansatz vorgeschlagenen Anpassungen von Beweisdiagrammen k  nnten  gut durch ein Werkzeug unterst  tzt werden  das die Auswirkungen einer Modifika   tion ermittelt und bereits gezeigte und neue entstehende Beweisziele verwaltet  Die  Beweisverpflichtungen sind in den meisten F  llen zwar einfach  k  nnen aber in gro  er  Zahl auftreten  Ohne Werkzeugunterst  tzung besteht die Gefahr  dass hier einzelne Be   weisverpflichtungen   bersehen werden oder aufgrund vermeintlicher   hnlichkeiten und  Symmetrien inkorrekte Analogieschl  sse gezogen werden     Auch in BI  wird der Ansatz diskutiert  Beweise an ver  nderte Systeme anzupassen  um  damit Fehlertoleranz nachzuweisen  Anhand eines Beispiels wird demonstriert  wie gro  e  Teile eines urspr  nglichen Beweises f  r den Beweis des ver  nderten  fehlerbehafteten  Systems wiederverwendet werden k  nnen  Die Autoren beschr  nken sich allerdings auf  reine Sicherheitsaussagen und auf ein relativ einfaches Fehlermodell  Auch sie bewerten  die Anpassung von Beweisen als ein interessantes und offenes Forschungsgebiet  Einen  weiteren Ansatz zur Wiederverwendung von Beweisen beschreibt  54      5 8 Zusammenfassung und Diskussion    Die Einf  hrung formaler Begriffe zur Beschreibung von Modifikationen von Systemen  mit einer Untersuchung ihrer Eigenschaften ist als Selbstzweck nicht ausreichend  Sie  m  ssen dar  berhinaus in einem Entwicklungsproze   sinnvoll eingesetzt 
223. n zustandsbasierten Systemen  Ihre Tauglichkeit wird  wie in  formalen Methoden h  ufig  nur durch kleine  eher akademische Beispiele veranschau   licht  so dass Schwierigkeiten in einer konkreten Anwendung nicht untersch  tzt werden  d  rfen  Es ist daher zu vermuten  dass die Techniken in der dargebotenen Form in  realen Anwendungen noch nicht brauchbar eingesetzt werden k  nnen       G  rtner greift in  28  diesen Ansatz auf und differenziert weiter nach Sicherheits  und Lebendig   keitseigenschaften der Systeme     2 2  FEHLERTOLERANZ 29    Wir werden in Kapitel 4 versuchen  diesen Defiziten zu begegnen  Wir werden dazu auch  das Entfernen von Transitionen zulassen  und Fehler auch auf der Ebene der Systemei   genschaften beschreiben  Das Systemmodell wird eine Unterscheidung von internen und  externen Fehlern zulassen  und die Zusammenh  nge zwischen Komponenten  und Sys   temfehlern werden untersucht     2 2 2 Techniken der Fehlertoleranz    Formale Modelle  wie wir sie im vorherigen Abschnitt vorgestellt haben  bieten eine  pr  zise Sprache  mit der Fehlertoleranz und ihre Eigenschaften formuliert und unter   sucht werden k  nnen  Mit dieser Sprache k  nnen Techniken  die sich in fehlertoleranten  Systemen finden  ausgedr  ckt und untersucht werden  In diesem Abschnitt wollen wir  die Prinzipien fehlertoleranter Techniken beschreiben  Dazu werden wir M  glichkeiten  zur Fehlererkennung  Prinzipien der Behebung und eine Klassifikation von Redundanz  skizzieren und schli
224. nd und Fehlerursache wird deutlicher  wenn  man den Unterschied bei deren Behebung betrachtet  Ein bekannter und lokalisierter  Fehlerzustand l    t sich  zur Laufzeit  korrigieren  indem die falschen Werte durch kor   rekte ersetzt werden  Die Fehlerursache ist aber im allgemeinen viel schwieriger zu ent   fernen  da beispielsweise das Design eines Systems oder sein Programmcode korrigiert  werden m  ssen     Eine wichtige Klasse von Fehlerursachen sind die externen Fehler  Da wir die Umgebung  eines Systems als nicht kontrollierbar verstehen  liegt die Fehlerursache hierbei in den    2 1  FEHLER 13    nicht ad  quat erfa  ten Annahmen an die Umgebung  in der das System eingesetzt  wird  Das Verhalten der Umgebung kann in einem solchen Fall zu Fehlerzust  nden und  zum Versagen des Systems f  hren  Wird ein solches Versagen durch einen Menschen  ausgel  st  der immer zur Systemumgebung geh  rt   so bezeichnet man diesen externen  Fehler als Fehlhandlung  engl  mistake      Auch den Begriff der St  rung wollen wir den Fehlerursachen zuordnen  Nach  20  ver   steht man unter einer St  rung sowohl technisch bedingte Ist  Soll Abweichungen von  Systemkomponenten als auch Umgebungseinfl  sse  die wir bereits als externe Fehler  charakterisiert haben  Der Begriff der St  rung wird vorwiegend verwendet  um den  tempor  ren Charakter einer Fehlerursache zu beschreiben  Dabei unterscheidet er nicht  zwischen internen und externen Fehlerursachen     Zusammenh  nge    In der Literatur 
225. ndlung auf true gesetzt  beim Verlassen wieder auf false  ansonsten   ndert sie  ihren Wert nicht  Die Transitionen des Systems S sind  wegen E  w  hrend der aktiven  Ausnahmebehandlung also nicht schaltbereit  und nur die Transitionen aus C k  nnen  schalten  Das Pr  dikat WV eignet sich nur bedingt  um Transitionen von T w  hrend  einer Ausnahmebehandlung zu vermeiden  Das Ziel der Abarbeitung wird es oft sein   einen Fehlerzustand zu korrigieren und damit V ung  ltig zu machen  Transitionen aus  T k  nnten also zu fr  h wieder schaltbereit werden  Daher ist eine neue Variable xp  notwendig     Beim Start der Ausnahmebehandlung wird eine Transition ausgef  hrt  die in einen Zu   stand 3 f  hrt  f  r den das Pr  dikat Entry gilt  der aber ansonsten dem Ausgangszustand  a m  glichst   hnlich ist    hnlichkeit wird hierbei verstanden als eine maximale Uber   einstimmung in der Belegung aller Variablen  Typischerweise wird das Pr  dikat Entry  den Kontrollzustand o auf einen neuen Wert setzen  und gegebenenfalls Variablen in   itialisieren  aber sonst keine Aussagen   ber die Variablen des Systems machen  Mit  obiger Definition bleiben diese Variablen bei Ausf  hrung dieser Transition tats  chlich  unver  ndert  wie man es auch bei einer operationellen Sicht erwarten w  rde  Die expli   ziten Zuweisungen werden erf  llt  w  hrend alle   brigen Variablen unangetastet bleiben   Beim R  cksprung aus einem Zustand  in dem Erit gilt  in einen Zustand  in dem    gilt   bleiben in gle
226. ne derartige Metrik  erm  glicht eine Quantifizierung des Schweregrades von Fehlern         Mit einer derartigen Metrik kann der qualitative Begriff zu Fehlertoleranz  definiert werden  der als D  mpfung verstanden wird  Ein System ist feh   lertolerant  wenn die Wirkung  die ein Fehler einer Systemkomponente auf  ein System zeigt  einen geringeren Schweregrad hat als der Schweregrad des  verursachenden Fehlers         In engem Zusammenhang mit einer Metrik   ber Fehlern steht ein Begriff   der die   hnlichkeit von Verhalten ausdr  ckt  Zwei Verhalten sind   hnlich   wenn der als Modifikation ausgedr  ckte Unterschied angemessen klein ist   Eigenschaften wie graceful degradation k  nnen damit explizit und pr  zise  dargestellt werden         Es ist w  nschenswert  Aussagen   ber Systeme aus den Aussagen   ber ihre  Komponenten abzuleiten  In Abschnitt  amp 5 2 haben wir bereits einige hierf  r  relevante Zusammenh  nge dargestellt  Es ist lohnenswert  weitere Beweis   regeln zu finden  um komplexere derartige Ableitungen m  glich zu machen   So ist es beispielsweise interessant  aus beobachteten Fehlern des Gesamt   systems auf die potentiellen Fehlerursachen innerhalb der Komponenten des  Systems R  ckschl  sse ziehen zu k  nnen  Zus  tzliche Beweisregeln werden es  erm  glichen  mit Modifikationen sozusagen    rechnen    zu k  nnen        Ein weiteres interessantes Ziel f  r weiterf  hrende Untersuchungen sind Kri   terien und Hinweise zum konstruktiven Ermitteln korrespond
227. nen bei Transitionssystemen  Seien zwei kompatible Transitionssysteme S   und Sa gegeben  und sei ihre Komposition  S   Q S2 definiert wie in Abschnitt  3 7 insbesondere sei die Transitionsmenge T des  komponierten System also gegeben durch   T    T   x T   U  T   x T     Seien weiterhin M      E1  F1  und Ma    E2  Fa  Modifikationen der beiden Teilsys   teme  Die Modifikation M    E  F   definiert durch   E    E  amp  T5  U  E2  amp  Tf     4 5  EIGENSCHAFTEN VON MODIFIKATIONEN 109    beschreibt damit die entsprechende Modifikation des zusammengesetzten Systems  so  dass also gilt     S   Q S2 A E  F     Sy A F4  F    Q  S24A E2  F      Zum Nachweis dieser Aussage expandiert man die entsprechenden Definitionen zu     T   pa T   U  Tz x T       Ei Pa Ty  U  E2  amp  T      U  Fy  gt  T   U  Fa Da Tf        T1     1  U F1  bs Ts  U    T2   E2  U F2   amp  T      und zeigt dies unter Verwendung der folgenden Gleichheiten f  r die Operatoren op       VU    X   Z  op  Y x  Z   X op Y sZ                Der vorgestellte Formalismus kann verwendet werden  um die Auswirkungen zu berech   nen  die die Fehler in den Komponenten eines Systems haben  Wir illustrieren dies mit  folgendem Beispiel     Beispiel 4 10 Fehlerfortpflanzung    In Abschnitt B7  wurden die Komponenten Merge und Split zu einem System Multiplex kom   poniert  von dem wir bereits die Eigenschaft    d  D   o   i A Do   iz  D   o   0  A DXHo   02    nachgewiesen haben  In Beispiel AM  haben wir eine Modifikation von M
228. nen durchzufiihren  Wir werden dies in Abschnitt   8 10  diskutieren  In manchen F  llen lassen sich allerdings fiir Systeme nur komplizierte  und unhandliche explizite Black Box Spezifikationen finden  oder es gehen durch die  damit verbundene Abstraktion Informationen verloren  die eine Verifikation erschweren  k  nnen  F  r derartige Situationen ist ein Formalismus zur Komposition von Zustands   maschinen hilfreich     In Kapitel 4 5 2  werden wir auf der Basis der hier vorgestellten Komposition die Aus   wirkungen ableiten  die Fehler in Komponenten auf die Gesamtsysteme haben  die sie  konstituieren     3 7 1 Komposition von Black Box Spezifikationen  Die Black Box Spezifikation eines komponierten Systems  deren Komponenten selbst    durch Black Box Spezifikationen beschrieben sind  ist sehr einfach definiert als Kon   junktion     58 KAPITEL 3  FORMALES SYSTEMMODELL    Definition 3 10 Black Box Komposition    Seien S   und T   Black Box Spezifikationen zweier kompatibler Komponenten S und  T  Das Verhalten von     T ist beschrieben durch    BUNTE                Ein Stromtupel von Ein  und Ausgabestr  men beschreibt ein m  gliches Verhalten eines  komponierten Systems  wenn diese Stromtupel auch einem m  glichen Verhalten der  Einzelkomponenten entsprechen     Beispiel 3 9 Black Box Spezifikation des Multiplexers  Die Komponente Split k  nnen wir durch folgende Black Box Spezifikation definieren   Split  g o   D   amp o A o   Do  F  r j   1 2 erscheinen auf dem Kanal o  
229. ner nicht giiltigen Fehlertoleranz zu  dass ein System durch Inte   gration weiterer Mechanismen fehlertolerant gemacht wird  Die Integration wird durch  einen Operator R ausgedriickt  und das verbesserte  weiterentwickelte System durch  R P   Die Fehlertoleranzaussage lautet dann F R P    gt  S     Janowski Auch Janowski hat in seinen Arbeiten  85   36   37  B8  Transitionssysteme  als Systemmodell gew  hlt  Er konzentriert sich ebenfalls auf maskierende Fehlertoleranz  und dr  ckt sie mit Hilfe einer Bisimulation aus  die die zus  tzlichen Fehlertransitionen  ber  cksichtigt  Ein Proze   Q ist eine fehlertolerante Implementierung eines  fehlerfrei   en  Spezifikationsprozesses P  wenn    e jeder Schritt von P durch einen fehlerfreien Schritt von Q beobachtungs  quivalent  simuliert werden kann  und    e jeder  m  glicherweise durch Fehler beeinflu  te  Schritt von Q durch einen  na   t  rlich fehlerfreien  Schritt von P simuliert werden kann     Wichtig ist hierbei  dass ein Schritt von P durch Q simuliert werden kann  ohne dass  dabei Fehlertransitionen verwendet werden k  nnen  Janowski vertritt die These  dass  man sich auf das Auftreten von Fehlern nicht verlassen kann  Fehler passieren seiner  Ansicht nach also nichtdeterministisch  unkontrollierbar und unvorhersehbar  Er kann  demzufolge mit seinem Ansatz permanente Fehler wie beispielsweise Ausf  lle von Kom   ponenten und Designfehler in der Software nicht untersuchen     Janowski bietet eine erweiterte Version des 
230. nkung bedeutet informell  dass gewisse Eingaben nicht mehr auftre   ten  auch wenn f  r sie eine Reaktion definiert w  re  F  r die noch immer m  glichen   verbleibenden Eingaben bleibt die Ausgabe nat  rlicherweise definiert und unver  ndert     82 KAPITEL 4  FORMALE MODELLIERUNG VON FEHLERN    Diese Probleme legen die in dieser Arbeit befolgte Konsequenz nahe  auf eine Ein   schr  nkung der Schnittstelle zu verzichten  Im Gegensatz zur Erweiterung der Schnitt   stelle  die durchaus f  r eine Anpassung eines Systems an ver  nderte Neben  und Um   gebungsbedingungen n  tig ist  kann auch ohne eine formale Unterst  tzung der Ein   schr  nkung von Systemschnittstellen eine Komponente mit allen Freiheiten beliebig  weiterentwickelt werden  Bestimmte Kan  le existieren in diesem Fall weiterhin  treten  also in Form von Platzhaltern in den Tupeln auf  auch wenn sie nicht mehr in die  Funktionalit  t eingehen  also ihre Variablen nicht mehr in den Formeln f  r Verhaltens   beschreibungen oder den Eingabemustern von Transitionssystemen erscheinen     Die Beschr  nkung der Eingabe an ein System entspricht einer st  rkeren Bedingung  die  die Systemumgebung erf  llt  Unter st  rkeren Umgebungsbedingungen weist ein System  im allgemeinen auch st  rkere Eigenschaften auf  f  r die es im Rahmen der Verifikation  m  glich sein muss  dass diese formal gezeigt werden k  nnen  Dies ist aber auch ohne  eine formale Schnittstellenbeschr  nkung m  glich  Durch die Formulierung einer Um   gebung
231. ns if an error occurs  e to specify the right thing happens if an error occurs    e to make sure this error never occurs      Seite 3     Ian Sommerville fordert in  62   die m  glichen Versagen explizit in Spezifikationen auf   zunehmen um damit mit diesen umgehen zu k  nnen     When writing a reliability specification  the specifier should identify different  types of failure and consider whether these should be treated differently in  the specification   Seite 357     Lee und Anderson fordern eine Beschreibungstechnik  in der das normale Verhalten  vom Sonder  bzw  Fehlerverhalten getrennt gehalten wird  44        it is highly desirable that a framework is adopted in which the normal  activity of the system is clearly distinguished from its abnormal  i e  fault  tolerance  activity      Seite 245     Die Defizite  die sich sowohl durch die unklaren Begriffe im Umfeld von Fehlern ergeben  als auch durch den unsystematischen Umgang mit Fehlern im Rahmen formaler Me   thoden  sind also klar erkennbar  Diese Arbeit hat sich zum Ziel gesetzt  diese Defizite  zu reduzieren     1 4 Ziel    Das Ziel der Arbeit  das durch die beschriebenen Defizite motiviert wurde  wird nun  explizit und zusammenfassend formuliert     Die formale Methodik FOCUS wird erweitert um Begriffe und Vorgehens   weisen  die einen expliziten Umgang mit verschiedenartigsten Fehlern  ih   ren Eigenschaften und Auswirkungen im Rahmen einer Systementwicklung    1 5    BERBLICK 7    f  r verteilte reaktive System
232. nte Merge aus Beispiel  die durch M so ver  ndert wurde  dass  sie nur noch von einem Kanal liest     Die Modifikation M    soll den Verlust einzelner Nachrichten auf den Eingabekan  len modellieren   Dies wird spezifiziert durch      F     mit    Name Pre Input Output Post  F      T5 4  d Zu ze  T6 i d          Von der Kombination M   M    erwarten wir  dass sie zu einer Komponente f  hrt  die nur noch  von einem Kanal liest  aber auf diesem auch Nachrichten verlieren kann     Es liegt aber keine Unabh  ngigkeit der Modifikationen vor  da durch M mittels E   alle Transi   tionen entfernt werden  die c ver  ndern  die neuen Transitionen in F    enthalten aber die Variable  c nicht  und k  nnen sie daher auf beliebige Werte setzen  Die Eigenschaften aus Proposition   JG  gelten hier in der Tat nicht  W  hrend  MergeAM  AM das erwartete Verhalten beschreibt   kann sich  MergeA M A M    nach dem Verlust eines einzelnen Datums f  r einen neuen Kanal c  entscheiden  W  hlen wir c      c als Nachbedingung von 75 und 76  k  nnen wir einen Konflikt             zwischen M und M    vermeiden        Die Modifikationskomponente  die sich durch die Kombination zweier Modifikationskom   ponenten ergibt  ist naheliegend  Sie wird durch die normale Komponentenkomposition     unseres Systemmodells dargestellt  also durch M   M      Ma  Das Ergebnis ist  oft von einem allgemeineren Typ als der Typ der einzelnen Modifikationskomponenten   und f  hrt meist zu dem in Abbildung 4 3 d   dargestellt
233. ntr  chtigt wird  Spielt das  zeitliche Verhalten keine Rolle  kann man also die folgende Fehlertoleranz  Aussage treffen  Das                System ist bez  glich omission failures der   bertragungskan  le maskierend fehlertolerant     Im allgemeinen m  chte man aber sehr pr  zise Aussagen   ber die Auswirkungen von Feh   lern auf ein System machen  Dazu ist es notwendig  sowohl die Systeme  ihre Fehler als  auch die Abweichungen vom Normalverhalten unter Einflu   der Fehler zu beschreiben   Mit formalen Techniken kann dabei die h  chste Pr  zision erreicht werden  Im n  chsten  Abschnitt geben wir einen kurzen   berblick   ber existierende formale Ans  tze  die den  Begriff der Fehlertoleranz definieren  Der in den folgenden Kapiteln B und vorgestellte  Formalismus wird diese Ans  tze verallgemeinern und erg  nzen     2 2 1 Formale Ans  tze    Wir werden in diesem Abschnitt formale Ans  tze und Definitionen zur Fehlertoleranz  vorstellen  Wir diskutieren dazu die Ans  tze von Zhiming Liu und Mathai Joseph  47    Anish Arora und Sandeep Kulkarni  5  sowie Thomsz Janowski  36   die auch von Felix  Gartner in  28  als die wesentlichen  bekannten Arbeiten identifiziert werden     Um Fehler und Fehlertoleranz formal ausdr  cken zu k  nnen  mu   zun  chst definiert  werden  was ein System und sein Verhalten ist  Die genannten formalen Ans  tze  die wir  im folgenden kurz vorstellen werden  verwenden alle eine   hnliche Fehlermodellierung  auf Grundlage verwandter Systemmodelle  d
234. odifikationen ist allerdings beschr  nkt  wenn spezielle   verfeinerte Fehlermodelle spezifiziert werden sollen  die Zusammenh  nge von auftreten   den Fehlern in verschiedenen Komponenten eines zusammengesetzten Systems beschrei   ben     Dies kann mit dem Beispiel eines Triple Modular Redundancy Systems  beschrieben in  Kapitel 2 2 2  veranschaulicht werden  Maskierende Fehlertoleranz kann im allgemeinen  nur sichergestellt sein  wenn maximal eine der drei replizierten Komponenten versagt   F  r einen formalen Nachweis der Fehlertoleranz muss diese Voraussetzung explizit re   pr  sentiert werden  Dazu schlagen wir folgendes Verfahren vor     e Das Versagen der drei replizierten Komponenten wird gekoppelt an einen Ora   kelstrom  den die Komponenten zus  tzlich als Eingabe erhalten  Dieser Strom   typischerweise vom Typ  true  false   gibt an  ob eine Komponente versagen darf     e Die Voraussetzungen  die an das Auftreten der Versagen gestellt werden  k  nnen  durch ein Pr  dikat   ber den Orakelstrom ausgedr  ckt werden oder durch eine  virtuelle Komponente  die den Orakelstrom erzeugt     In Abbildung B I  haben wir eine virtuelle Komponente V und die gestrichelt darge   stellten Kan  le f  r die Orakelstr  me f  r ein Triple Modular Redundancy System vi   sualisiert  Signalisiert die Komponente V immer nur maximal einer Komponente die     Erlaubnis    zum Versagen  kann f  r das Gesamtsystem maskierende Fehlertoleranz  nachgewiesen werden  Die Komponente V wird nicht imp
235. ollen die in der Definition auftretenden Einschr  nkungen erl  utern  Die Men   ge A definiert die zus  tzlichen Variablen  die vom System kontrolliert werden k  nnen   Typischerweise enth  lt sie eine Variable f  r einen Kontrollzustand und Variablen zum  Speichern von Daten  Gem      a  wird f  r jeden Eingabestrom i eine Variable i   auf   genommen  Diese beschreibt den Teil der Eingabe  der bereits vom Eingabestrom i  konsumiert wurde  also einen endlichen Pr  fix von i  Bei Start des Systems wurden  noch keine Eingaben konsumiert  gefordert in  b   Die ersten beiden Glieder der Kon   junktion in  d  stellen weitere Forderungen sicher  Da das Lesen von Nachrichten nicht  r  ckg  ngig gemacht werden kann  kann bei jedem Schritt  also f  r jede Transition  der  konsumierte Teil nur l  nger werden  und es k  nnen nur Nachrichten gelesen werden   die tats  chlich auf dem Kanal liegen  Wir fordern nicht  dass jedes System mit leeren  Ausgabekan  len starten muss  so dass spontane initiale Ausgaben spezifiziert werden  k  nnen     Da die Eingabe an ein System von diesem nicht kontrolliert werden kann  darf auch  die Initialbedingung die Belegung der Eingabekan  le nicht einschr  nken  Bedingung   c  stellt sicher  dass beliebige Eingaben m  glich sind  und nur Anforderungen an die  kontrollierten Variablen in O U A gestellt werden     Wir lassen weiterhin nur Systeme zu  deren Transitionen sicherstellen  dass Ausgaben  des Systems nicht zur  ckgenommen werden  und dass auch die
236. onen von einem Zustand s     S wieder in einen Zustand in 5 f  hren  Ein Zustand   spr  dikat beschreibt also eine Invariante  Betrachtet man nun zus  tzliche  als Fehler  bewertete Transitionen  so k  nnen neue Zust  nde erreichbar werden  die durch ein Zu   standspr  dikat T charakterisiert werden  Mit diesem Pr  dikat kann eine Aussage   ber  Fehlertoleranz gemacht werden  denn es beschreibt die Abweichung des Systemverhal   tens unter dem Einflu   von Fehlern  Die Autoren formulieren folgende drei Bedingungen   die in Abbildung  2 5  veranschaulicht werden     e T umfa  t die Normalzust  nde S  das hei  t  es gilt in jedem Zustand  in dem auch  S gilt  also S  gt  T     e T ist abgeschlossen unter Normal  und Fehlertransitionen  Das Pr  dikat T um   fa  t also alle Zust  nde  die bei auftretenden Fehlern erreicht werden k  nnen  Das  Pr  dikat T kann als die durch die Fehler induzierte Erweiterung von   verstanden  werden  und wird auch als Fehlerspanne bezeichnet     e Die Normaltransitionen t f  hren schlie  lich wieder zur  ck zu Zust  nden  f  r die  S gilt  Werden Fehlertransitionen f nicht mehr ausgef  hrt  stabilisiert sich das  System also wieder und kehrt zur  ck zum erwarteten Verhalten     Sind diese Bedingungen erf  llt  wird ein System fehlertolerant genannt bez  glich der  definierten Fehlermenge und der Fehlerspanne T     Zwei Spezialf  lle dieser Bedingungen f  hren direkt zu einer einfachen Klassifizierung  von Fehlertoleranz  Gilt S   F  so wird das Syst
237. orma   len Definition der Begriffe Fehler  Fehlerzustand und Versagen  Damit ist die in  der Literatur sonst immer nur informell gehaltene Terminologie um pr  zise Cha   rakterisierungen erg  nzt  Diese Definitionen erm  glichen es  die Korrektheit ver   schiedener Mechanismen nachzuweisen  die f  r den Umgang mit Fehlern relevant  sind     Modifikationen erlauben eine formale Definition von Fehlertoleranz  Weist ein Sys   tem unter dem Einflu   von Fehlern eine noch akzeptable Ver  nderung in seinem  Verhalten auf  so nennen wir es fehlertolerant  Mit den in dieser Arbeit vorge   stellten Ausdrucksmitteln ist es m  glich  sowohl die Fehler als auch die   nderung  im Verhalten pr  zise zu formulieren  Abschnitt  41   Damit sind explizite und  exakte Fehlertoleranzaussagen m  glich und sogar verifizierbar     Eine alternative Interpretation versteht Fehlertoleranz als die F  higkeit eines Sys   tems  die Auswirkungen von Fehlern  die in einem Teilsystem oder der Umgebung  auftreten  nur in m  glichst abgeschw  chter Form auf das Gesamtsystem Einflu    nehmen zu lassen  Dazu haben wir in Abschnitt 24 3  eine qualitative Klassifi   kation angegeben  mit der Systeme bez  glich dieser F  higkeit bewertet werden  k  nnen     Das zugrundeliegende Systemmodell bietet durch seinen klaren Schnittstellenbe   griff eine Abgrenzung eines Systems von seiner Umgebung  Damit ist es uns im  Gegensatz zu anderen Ans  tzen im Bereich der Fehlermodellierung m  glich  auch  externe Fehler eines S
238. ormale Methode mu   es erm  glichen  ein System auf  verschiedenen Abstraktionsebenen darstellen zu k  nnen und den   bergang zwischen    70 KAPITEL 3  FORMALES SYSTEMMODELL                                                                                                             p B g7    b 5 7    eo ao  Q     Q Q Q  Ry    Rg     Rx Ry    RL Ro  gb 3 pbs  A     Le    cm 9 N    0 EE                     Abbildung 3 10  Schnittstellenverfeinerung eines komponierten Systems    verschiedenen Ebenen formal zu unterstiitzen  Dabei sollte das Spektrum der Darstel   lungsm  glichkeiten von abstrakten Systemanforderungen bis hin zu einer konkreten  Implementierung reichen     Als Vorgehensweise kennen wir zwei idealisierte Richtungen  Eine Top Down Entwick   lung f  hrt ausgehend von einer abstrakten Spezifikation schrittweise zu einer lauff  hi   gen Implementierung  w  hrend eine Bottom  Up Entwicklung von der Entwicklung von  Einzelkomponenten ausgeht  die zielf  hrend zu einem Gesamtsystem zusammengesetzt  werden  In der Realit  t wird man meist eine Mischform w  hlen  in der man sowohl von  abstrakten Anforderungen als auch von bereits implementierten und wiederzuverwen   denden Einzelkomponenten ausgehen wird     Das Ergebnis einer idealisierten Systementwicklung l    t sich vereinfacht als ein Ent   wicklungsbaum darstellen  wie er in Abbildung BIT  illustriert ist  Der Unterschied  zwischen einem Top Down  und Bottom Up Verfahren liegt dann nur in der Reihenfol   ge  in welch
239. ponente nach sich zieht  was wiederum eine  Ver  nderung der ersten Komponente m  glich macht  und so weiter     Wir wollen hier nun formal ausdr  cken  wie mehrere Modifikationen zu einer Modifika   tion zusammengefa  t werden k  nnen     sowohl im Formalismus der Black Box Spezifi   kation als auch im Rahmen von Transitionssystemen     Wird die Black Box Eigenschaft einer Komponente zweimal modifiziert  also je zweimal  verst  rkt und abgeschw  cht  so entspricht dies einer Modifikation durch die Konjunktion  der Verst  rkungen  aber einer Disjunktion der Abschw  chungen     104 KAPITEL 4  FORMALE MODELLIERUNG VON FEHLERN    Definition 4 11 Kombination von Black Box Modifikationen    Die Kombination zweier Black Box Modifikationen M   und Ma wird mit Hilfe des  Operators   definiert durch     df   Di  DF     OF  Of     Oy A OF  Op V DR                 Sind die beiden Modifikationen unabh  ngig voneinander  k  nnen sie in beliebiger Rei   henfolge  und sogar gemeinsam als kombinierte Modifikation auf ein System angewendet  werden  wobei sich immer das gleiche Resultat ergibt  Dies formulieren wir folgender   ma  en     Proposition 4 5 Unabh  ngigkeit von Black Box Modifikationen  Der Operator   f  r Black Box Spezifikationen ist assoziativ und kommutativ  Dies er     gibt sich unmittelbar aus der Assoziativit  t und Kommutativit  t von A und V     Unter der Voraussetzung der Unabh  ngigkeit   gt   A 6456     gilt fiir M      P4  P4  und Ma      7         dass die Reihenfolge
240. prechenden Systemmodifikationen beschreiben und mit dem Puffer als Beispiel  illustrieren     Alle in unserem Systemmodell spezifizierten Systeme weisen eine Umgebungsannah   me auf  die bislang nicht angesprochen wurde  Wir nehmen von allen Nachrichten a   die   ber einen Kanal c empfangen werden  an  dass sie zum richtigen Nachrichtentyp  geh  ren  also a     type c   Soll modelliert werden  dass ein System unerwartete Nach   richten empf  ngt  so ist dies durch eine Kombination bisher dargestellter Techniken  m  glich  Zun  chst wird durch eine Schnittstellenmodifikation der Kanal c um die neuen  Nachrichten zu c    erg  nzt und die Umgebungsannahme um Vt e c t     type c  erweitert   Der Fehler der Umgebung ist dann durch eine Abschw  chung der Umgebungsannahme  modellierbar     4 7 Zusammenfassung und Diskussion    Wir haben in diesem Kapitel das Konzept der Modifikationen eingef  hrt  Mit diesen  k  nnen beliebige Ver  nderungen sowohl der Schnittstelle als auch des Verhaltens eines  Systems dargestellt werden  Mit Modifikationen kann prinzipiell jedes System in jedes  andere verwandelt werden  In der Praxis wird man aber eher an relativ kleinen   nde   rungen interessiert sein  mit denen Fehler als Abweichungen eines Ist von einem Soll  repr  sentiert werden  Die Modifikationen wurden im Rahmen von vier Beschreibungs   techniken eingef  hrt  Als Modifikationen der Relationen  der Black Box Eigenschaf   ten und der Transitionssysteme und schlie  lich als Modifikationsko
241. proj quest      REIF  WOLFGANG and KURT STENZEL  Reuse of proofs in software verification  In  SHYAMASUNDAR  R   editor   Foundation of Software Technology and Theoretical  Computer Science  number 761 in Lecture Notes in Computer Science  Bombay   India  1993  Springer     LITERATURVERZEICHNIS 169     55     56    57    58          59    60    61    62          63    66  67  68    69          70    RENZEL  KLAUS  Error Detection  In  BUSCHMANN  FRANK und DIRK RIEHLE   Herausgeber   European Pattern Languages of Programming Conference  Irsee   1997  Siemens Technischer Bericht 120 SW1 FB     RUMPE  BERNHARD  Formale Methodik des Entwurfs verteilter objektorientierter  Systeme  Doktorarbeit  Technische Univerit  t M  nchen  1997     RUSHBY  JOHN  Critical system properties  Survey and taxonomy  Reliability  Engineering and System Safety  43 2  189 219  1994        Rust  HEINRICH  Zuverl  ssigkeit und Verantwortung  die Ausfallsicherheit von  Programmen  Vieweg  1994     SCHEPERS  HENK  Terminology and paradigms for fault tolerance  In VYTOPIL   JAN  editor   Formal Techniques in Real Time and Fault Tolerant Systems  pages  3     31  Kluwer Academic Publishers  1993     SCHNEIDER  FRED B   Implementing fault tolerant services using the state ma   chine approach  A tutorial  ACM Computing Surveys  1990     SCHNEIDER  MARCO  Self stabilization  ACM Computing Surveys  1993   SOMMERVILLE  IAN  Software Engineering  Addison Wesley  Fifth edition  1995     SPIES  KATHARINA und BERNHA
242. r  nkt  die nicht neu erg  nzt wurden  wie die folgende Proposition zeigt  Auf den  neuen Kan  len sind beliebige Ausgaben m  glich  also auch nicht monotones Verhalten   Da ein neuer Kanal   blicherweise zweckgebunden eingef  hrt wird  wird das Verhalten  in weiteren Entwicklungsschritten  durch eine Verhaltensmodifikation  pr  ziser spezi   fiziert und damit auch kausal  Wir haben daher in Definition MB  auf eine explizite  Sicherstellung der Kausalit  t verzichtet     4 1  MODIFIKATION DER SCHNITTSTELLE 81    Proposition 4 2 Partieller Erhalt der Kausalit  t  Gelte x  E x  f  r alle j      1      n k    und        21    lt  s Tn  Intl   ntk  Yis  Ym  Yms  mt  ER    1 l al 1 aah 1 1 1 T  En is ee oO Use ie ag  ER                Aufgrund der Definition verhaltensgleicher Relationen gilt also     type i Oz  sey type  in Dun  Yly     Ym  ER   type  i Ori       type  in OL  Y       Ym  E R    Da gilt  dass x E x     gt  M    r E MOr     folgt daraus mit der Kausalit  t von R direkt                Vj E  1     m  e yj E y              Die Beziehung zwischen den durch R und R    beschriebenen Systemen stellt eine Schnitt   stellenverfeinerung im Sinne von Abschnitt B 9 2  dar  Die Umsetzungsrelationen Ry  bzw  Ro ergeben sich unmittelbar aus Definition HP  Sie sind entsprechend Abschnitt  B I 3lumkehrbar  so dass die in diesem Abschnitt pr  sentierte Erweiterung der Schnitt   stelle kompositional erfolgen kann     4 1 2 Einschr  nkung der Schnittstelle    Die Schnittstelle eines S
243. r M wird bezeichnet als M  bzw  M    Die Menge aller Str  me   ber M wird  definiert als M     M UM       F  r  amp 1     2 n     M bezeichnet der Ausdruck  2  22      p  einen endlichen Strom der  L  nge n mit x   als erstem und x  als letztem Element  Der Sonderfall    bezeichnet den  leeren Strom      2 bezeichnet die L  nge des Stroms x  Ist x unendlich  so gilt  1   x     Das erste Element eines nicht leeren Stromes x wird mit ft x  first  bezeichnet  ein  Strom x ohne sein erstes Element mit rt x  rest   Das letzte Element eines Stromes  wird definiert als It x  last      3 2  MATHEMATISCHE GRUNDLAGEN 39    Falls t  lt   2  so bezeichnet x t die t te Nachricht in Strom x     xz y bezeichnet die Konkatenation der Str  me x und y  Ist x ein unendlicher Strom   so glt  ny  r        Der Strom x ist ein Pr  fix  Anfangsstrom  von y  notiert als x E y  wenn x zu y  verl  ngert werden kann           TEY def JzeM    s   nz y       x ist ein echter Pr  fix  also x C y  wenn y wirklich l  nger ist als x  also wenn z          Mit Hilfe des Filter  Operators    definiert man mit D   x den Strom  der aus x entsteht   wenn man alle Nachrichten aus x entfernt  die nicht in D liegen  Er kann definiert  werden durch folgende induktive Definition     DX    0   d     DOr  falls de D  DOzT falls d g D    In  9  BT  finden sich weitere  ausf  hrlich beschriebene Definitionen und Operatoren  zu Str  men  Wir haben uns hier auf die Darstellung der Operatoren beschr  nkt  die in  dieser Arbeit
244. r bereits vorhandenen Transitionen  so dass das             Verhalten im Normalfall unver  ndert bleibt        Die im Rahmen der Erh  hung von Robustheit erg  nzten neuen Transitionen ver  ndern  die Reaktion des Systems auf Eingaben  f  r die das System urspr  nglich blockiert hat   Durch die Modifikation ist das Systemverhalten ver  ndert worden und entsprechend  auch seine Black Box Eigenschaften  Damit ist ein eventuell bereits gef  hrter Beweis   der die Eigenschaften eines Systems zeigt  nicht mehr g  ltig  Wir diskutieren im fol   genden Abschnitt  wie Beweise an Modifikationen von Systemen und Eigenschaften  angepasst werden k  nnen     5 7 Wiederverwendung von Beweisen    Mit den Beweistechniken aus Kapitel  8 8  k  nnen wir nachweisen  dass ein Transitions   system S gewisse Eigenschaften    hat  Werden im Verlauf eines Entwicklungsprozesses  potentielle  aber unvermeidbare Fehler eines Systems identifiziert  so k  nnen diese mit  den in dieser Arbeit pr  sentierten Techniken als korrespondierende Modifikationen der  Eigenschaften bzw  des Transitionssystems dargestellt werden  Ein bereits gef  hrter  Beweis f  r das urspr  ngliche und fehlerfreie System macht f  r das modifizierte  fehler   behaftete System keine Aussage mehr  Ohne eine Anpassung des Beweises w  re damit  der Aufwand  der bereits f  r die Erstellung des Beweises investiert wurde  verloren  Wir  wollen in diesem Abschnitt diskutieren  wie aus dem Beweis f  r das fehlerfreie System  ein Beweis f  r d
245. r konkreten Systementwicklungsumgebung aber noch zu instantiieren sind   Hier k  nnen also noch einige sinnvolle Weiterentwicklungen erfolgen     164 KAPITEL 6  ZUSAMMENFASSUNG UND AUSBLICK    e Eine durchg  ngige und effiziente Entwicklung eines komplexen Systems erfordert  ein systematisches Vorgehen  das durch sogenannte Vorgehensmodelle unterst  tzt  wird  Wir haben mit der vorliegenden Arbeit die M  glichkeiten formaler Metho   diken erweitert  da auch Fehler und ihre Auswirkungen in verschiedenen Phasen  einer Systementwicklung reflektiert werden k  nnen  Die in Kapitel  behandelten  Themen liefern erste systematische Hinweise  wie mit verschiedenen typischen   fehlerbezogenen Aufgaben in einer Systementwicklung umgegangen werden kann     Allerdings liegt damit noch kein umfassendes Vorgehensmodell vor  sondern nur  einige seiner Bausteine  deren Kombination zu konkreten  den Gesamtentwick   lungsproze   umfassenden Handlungsanweisungen noch zu leisten ist  Es verbleibt  damit weiterhin als lohnende Aufgabe  bestehende Vorgehensmodelle zu analysie   ren  mit Hilfe von FOCUS auf eine formale Grundlage zu stellen und schlie  lich  um Aspekte der Fehlermodellierung im Sinne dieser Arbeit zu erweitern     Auch die Bereitstellung von design patterns stellt einen vielversprechenden An   satzpunkt dar  den Umgang mit Fehlern in einer Systementwicklung zu unterst  t   zen  In  24  finden sich dazu erste Ans  tze     e Die Akzeptanz einer formalen Methodik in der praktischen  in
246. r vermutlich w  hrend der Entwicklungszeit durch Fahrl  ssigkeit verur   sacht und ist dauerhaft im System vorhanden  Die Schwere dieser Fehlerursache kann  nur im Einzelfall beurteilt werden     Ein Systemversagen k  nnen wir in   bereinstimmung mit den bereits vorgestellten Be   griffen als eine sichtbare Soll  Ist Abweichung im Systemverhalten definieren     Erfiillt die Umgebung nicht die Erwartungen  die an sie in der Umgebungsannahme  gestellt wurden  bezeichnen wir dies als einen externen Fehler  Es liegt also eine Abwei   chung zwischen der in der Systembeschreibung enthaltenen Umgebungsannahme und  dem konkret beobachteten Umgebungsverhalten vor  Die Abweichung kann sowohl in  einer fehlerhaften Erfassung der Umgebungsannahmen als auch im    wirklichen    Versa   gen der Umgebung liegen  Wir betrachten Diskrepanzen zwischen einem Ist und einem  Soll  ohne dabei unmittelbar Verantwortungen zuzuweisen  Eine derartige Abweichung  bezeichnen wir im Einklang mit den Begriffen der Literatur wieder als Fehlerursache     Sehr h  ufig sind Fehlerursachen in einer Soll  Ist Abweichung im System selbst zu fin   den  Fehler im Design oder im Code eines Systems sind typische Beispiele  Aufgrund  ihres statischen Charakters sind diese Fehlerursachen permanent und gelangen zur Ent   wicklungszeit in das System  sind aber unter Umst  nden nur schwer zu lokalisieren und    2 1  FEHLER 21             statisch dynamisch  asia Externer  Inkompatibilit  t Versagen Black Box    fault   fa
247. rausgesetzt wird  Mit dem Pr  dikat G  wird die Verhaltensrelation des Systems auf die gleiche Weise definiert wie f  r einfache  Black Box Spezifikationen     Als Semantik einer einfachen A G Spezifikation definieren wir also  unter Verwendung  der vereinfachten Notation entsprechend Seite 43  alle Stromtupel  die G erf  llen  wenn  die Umgebung nur Eingabestr  me sendet  die A erf  llen       4        Gi  0    AG   gt  Gli  0      Erf  llt eine Umgebung die Annahme A nicht  ist das Verhalten des Systems unspezifi   ziert  also beliebig     Normalerweise erbringt ein System seine Leistung schrittweise  indem es schrittweise  Nachrichten einliest  auf diese mit Ausgaben reagiert  weiter Eingaben liest  wieder  entsprechende Ausgaben macht und so fort  Solange die Umgebung sich an A h  lt   muss sich auch das System an G halten  Obige Definition scheint es zuzulassen  dass  sich ein System von Anfang an beliebig verh  lt  auch wenn eine Abweichung von der  Annahme erst bei einer sp  teren Nachricht im Eingabestrom 7 auftritt  F  r dieses i    46 KAPITEL 3  FORMALES SYSTEMMODELL           Puffer ne             Abbildung 3 3  Schnittstelle von Buffer    w  re A nicht erf  llt  und die Implikation f  r ein beliebiges o aber schon  Durch die  geforderte Monotonie ist jedoch sichergestellt  dass f  r einen korrekten Pr  fix von i  auch eine korrekte Ausgabe produziert wird  die wiederum ein Pr  fix von o ist  Bevor  einem System beliebiges Verhalten erlaubt ist  muss die Umgebung a
248. rch eine Modifikation das Entfernen von Tran   sitionen durchzuf  hren  Dies kommt der Modellierung von permanenten Fehlern n  her   da dem System manche Verhaltensm  glichkeiten von Anfang an genommen werden   Damit sind wir auch in der Lage  Fehlertoleranz auszudr  cken unter der Annahme   dass Fehler sicher auftreten     Unser Ansatz stellt damit einen allgemeineren Formalismus bereit  der bekannte An   s  tze umfa  t  Wir erm  glichen damit einen allgemeineren Begriff von Fehlertoleranz  der  Aussagen   ber ver  nderte Eigenschaften von ver  nderten Systemen macht  Durch die  Wahl einer geeigneten Modifikation kann jede gew  nschte Aussage formuliert werden     Beispiel 4 8 F  r die Systeme Merge  und Merge    aus den Beispielen AH und ABl  gilt     Merge  AM5  H  Merge  AM         da sie das gleiche Verhalten beschreiben  Wir modifizieren Merge AM  durch das Hinzuf  gen  von zwei weiteren Transitionen mittels M3        F  wobei    Name Pre Input Output Post  F    t c 2 ua     c c  T6 c 1 i a     c c  Diese Transition lesen und verwerfen Daten nur von jeweils dem Eingabekanal  iiber den die   modifizierte  Black Box Spezifikation keine Aussage macht  Das System Merge    AM ist also  gegen  ber dem Fehler M3 und der Eigenschaft Merge  AM   maskierend fehlertolerant  da gilt     Merge AM  AM8 H  Merge  AM                     Im Beispiel wird deutlich  dass man auch an Modifikationen von bereits modifizierten  Systemen interessiert ist  Im folgenden Abschnitt  5 1  behandeln
249. rden k  nnen  wie dies beispielsweise  in den Arbeiten     B6  A7  durchgef  hrt wurde  Fehler werden darin durch eine  beliebig definierbare Menge zus  tzlicher Transitionen modelliert     Welches Verhalten des Systems wird noch als tolerierbar akzeptiert     Im allgemeinen ver  ndern Fehler das Systemverhalten  so dass ein fehlerbehafte   tes System in der Regel nicht mehr alle Forderungen einer Spezifikation erf  llt   Eine pr  zise Aussage zur Fehlertoleranz muss definieren  inwieweit sich ein Sys   temverhalten   ndern darf  um dennoch als akzeptabel zu gelten  In der Literatur  finden sich dazu Begriffe wie beispielsweise Toleranzspezifikation  5  und graceful  degradation  sanfte Leistungsminderung B1       4 4  FEHLERTOLERANZ 99    Die in einem System vorhandenen Fehler k  nnen wir als Modifikationen darstellen und  ebenso die Verletzung von Umgebungsannahmen durch eine Abschw  chung der sie be   schreibenden Aussage formulieren  Damit werden die Fehler  die toleriert werden sollen   ausgezeichnet  Das tolerierbare Verhalten  das ein System trotz Fehler aufweisen soll   k  nnen wir relativ zum Normalverhalten ebenfalls durch eine Modifikation beschreiben     Damit sind wir mit unserem Systemmodell also in der Lage  pr  zise Antworten auf  die beiden obigen Fragen geben zu k  nnen  Dies erm  glicht es uns  eine Aussage   ber  Fehlertoleranz eines Systems formal zu beschreiben und     wenn sie von einem System  erf  llt wird     auch zu verifizieren     Definition 4 10 
250. re Fehlerbehandlung erg  nzt werden  wie wir es schon im Abschnitt 5 5   vorgestellt haben     Im allgemeinen wird man ein System nicht gegen  ber allen nur denkbaren Umgebungs   fehlern robust machen k  nnen  sondern lediglich f  r eine Teilmenge von diesen  Diese  l    t sich  wie in Abschnitt   6 2 beschrieben  durch ein Pr  dikat    irap angeben  Ist jeder    142 KAPITEL 5  METHODISCHER UMGANG MIT FEHLERN    durch irap beschriebene Zustand durch die Erh  hung der Robustheit kein Fangzustand  mehr  gilt also    a H Pray  gt  AGPe a P ETUF    so bleibt das System SA     F  auch in einer Umgebung reaktiv  in der Eingabestr  me  erzeugt werden  die eine Teilmenge der abgeschw  chten Umgebungsannahme A S  U  LeadsTo    trap  bilden        In einer realen  praktischen Systementwicklung will man die Verbesserung der Robust   heit eines Systems nicht auf semantischer Ebene  sondern in der Beschreibungstechnik  durchf  hren  in der das System spezifiziert ist  Besonders gut lassen sich Fangzust  nde  in der graphischen Repr  sentation von Transitionssystemen erkennen  Jeder durch einen  Knoten dargestellte Kontrollzustand s hat eine  n elementige  Menge von abgehenden  Transitionen 7   die jeweils mit einer Vorbedingung      mit i      l     n   assozi   iert sind  Diese Vorbedingungen enthalten sowohl Aussagen   ber den lokalen Daten   zustand als auch   ber die aktuellen  lesebereiten Nachrichten auf den Eingabekan  len   also free      C IU A  Das System ist in einem Kontrollzu
251. reiberkomponenten geschehen  die zwischen einer durch Fehler be   eintr  chtigten Komponente und ihrer Umgebung geschaltet werden  Je nach Art und  Schwere des Fehlers sind verschiedene Arten von Treibern notwendig  Die Treiber ha   ben dieselbe Gestalt wie die Modifikationskomponenten  und werden daher auch wie  in Abbildung M3  dargestellt  Je nach Typ des Fehlers kann es gen  gen  dass Treiber  ausschlie  lich die Ausgaben kontrollieren und korrigieren  wobei sie unter Umst  nden  Kenntnis   ber die Eingaben besitzen m  ssen  Im allgemeinsten Fall muss ein Treiber  sowohl auf Ein  als auch auf Ausgabekan  le Einflu   nehmen  Alle Varianten aus Abbil   dung  4 3 sind also auch f  r Treiber relevant     W  hrend die Modifikationskomponenten in Kapitel  zur Modellierung von Fehlern ver   wendet wurden  k  nnen sie ebenso der Darstellung von Treibern dienen  Der wesentli   che Unterschied besteht darin  dass die Modifikationskomponenten nicht implementiert  werden  sondern nur verwendet werden  um die Abweichungen des Verhaltens zu mo   dellieren  Treiberkomponenten werden dagegen tats  chlich realisiert  Werden  wie in  Abbildung 5 5  dargestellt  Fehler einer Komponente   durch eine Modifikationskompo   nente M modelliert  die durch eine Treiberkomponente C korrigiert werden k  nnen  so  heben sich die Wirkungen von C und M gegenseitig auf und es gilt idealerweise  nach  geeigneter Umbenennung von Kan  len     SU C  CR MRS    138 KAPITEL 5  METHODISCHER UMGANG MIT FEHLERN   
252. rekte Weise dem Diagramm hinzugef  gt werden   und damit unter anderem sicherstellen  dass das Pr  dikat des Nachfolgeknotens  gilt und durch ihre Ausf  hrung die Bewertung 6 monoton verkleinert wird     e Durch eine Verst  rkung von     zu     A x werden zus  tzliche Annahmen an den  Systemzustand im Knoten j gemacht  Es kann m  glich sein  mit dieser Verst  r   kung die geforderte Schaltbereitschaft von einer der verbleibenden Transitionen  zu zeigen     Dies hat Auswirkungen auf weitere Beweisverpflichtungen  die dann zus  tzlich  noch gezeigt werden m  ssen  Alle an Knoten j eingehenden Transitionen m  ssen  zus  tzlich die G  ltigkeit von x implizieren  Dies kann wiederum eine Verst  rkung  der Pr  dikate ihrer Ausgangsknoten erfordern  In Abschnitt 5 71  haben wir die  Verst  rkung von Pr  dikaten in Zusammenhang mit der Entfernung von Transi   tionen bereits beschrieben     Da hier zus  tzlich noch die Initialbedingung    P  gt  PoV    V  BAX V    Vr    150 KAPITEL 5  METHODISCHER UMGANG MIT FEHLERN    gelten muss  ist unter Umst  nden sogar    zu verst  rken     e Es kann m  glich sein  dass die Modifikation das System soweit ver  ndert  dass es  im Zustand     h  ngenbleibt  und von dort keine Transition mehr in Richtung   o  f  hrt  In einem solchen Fall muss die Fortschrittsaussage abgeschw  cht werden zu    Or VV     In allen drei F  llen wird durch eine Anpassung des Beweisdiagramms und m  glicher   weise durch eine Abschw  chung der Fortschrittsaussage      gt  
253. riablen aus A kann selbstverst  ndlich zu Problemen f  hren   wenn die zu entfernende Variable in den Transitionen verwendet wird  eine Sys   temspezifikation w  re dann nicht mehr konsistent  Wir lassen die Entfernung von  Variablen aus A daher nicht zu  Soll ein System auf eine Art und Weise modi   fiziert werden  die eine Variable   berfl  ssig macht  so kann durch entsprechende  Modifikationen der Transitionen diese Variable einfach nicht mehr    benutzt     also  auf irgendeine Art lesend oder schreibend referenziert werden     Die Initialbedingung Y zeichnet eine Menge von Startzust  nden aus  die die   se Bedingung erf  llen  Eine Modifikation der Initialbedingung lie  e sich wieder   um durch eine Kombination von Verst  rkung und Abschw  chung beschreiben   verbunden mit einer Verkleinerung bzw  Vergr    erung der entsprechenden Zu   standsmenge  Zur Vereinfachung des Formalismus wollen wir dies aber wie folgt  reduzieren auf eine Modifikation der Transitionsmengen     Zun  chst wandeln wir dazu ein System S um  ohne sein Verhalten dabei zu   ndern   Wir f  hren     wie bereits beschrieben     eine    frische    boolesche Variable init ein   die von keiner existierenden Transition ver  ndert werden darf  Dazu sei E entspre   chend definiert als die Menge  die alle Transitionen enth  lt  die init ver  ndern   Den neuen Startzustand charakterisieren wir als init   true  Wir f  gen nun neue  Transitionen hinzu  die vom neuen Startzustand zu den bisherigen Startzust  nden
254. rigiert werden k  nnen  Es wird angegeben  wie  die Robustheit von Systemen gegen  ber externen Fehlern erh  ht und wie aus Beweisen  zu fehlerfreien Systemen Beweise f  r fehlerbehaftete Systeme abgeleitet werden k  nnen     In allen Kapiteln verdeutlichen wir alle wesentlichen Konzepte mit Hilfe vieler Beispiele   Dabei konzentrieren wir uns auf die durchg  ngige Verwendung zweier einfacher Systeme  Merge und Buffer  die trotz ihrer Einfachheit eine ausreichende Komplexit  t aufweisen   um die jeweils relevanten Aspekte demonstrieren zu k  nnen     Schliesslich werden in Kapitel  6  die Beitr  ge dieser Arbeit zusammengefa  t und ver   bleibende sowie neu aufgeworfene  offene Probleme identifiziert     Kapitel 2    Der Fehlerbegriff    Als Grundlage f  r einen formalen  pr  zisen Umgang mit Fehlern wollen wir den facet   tenreiche Begriff des Fehlers mit seinen verschiedenen Bedeutungen zun  chst informell  diskutieren  Wir fassen in diesem Kapitel verschiedene Begriffe zusammen  die sich dazu  in der Literatur aus dem Bereich der Informationstechnik finden lassen     Dazu beschreiben wir die Differenzierung von Fehlern in Fehlerursache  Fehlerzustand  und Versagen mit ihren Zusammenh  ngen  und geben Klassifizierungen dieser Begriffe  an  Nach Angabe verschiedener M  glichkeiten im Umgang mit Fehlern fokussieren wir  auf die Fehlertoleranz  welche wir zun  chst informell beschreiben und darauf entspre   chende formale Ans  tze diskutieren  Schlie  lich pr  sentieren wir pr
255. rsucht  dies beispielsweise durch die Verwen   dung verschiedener Programmierteams  Programmiersprachen und Tools zu erreichen   Dadurch entstehen hohe Qualit  tsanforderungen an eine Spezifikation des Systems  Sie  muss einerseits sehr pr  zise sein  damit Versionen entstehen  die nach M  glichkeit alle  korrekt sind  und deren Ergebnisse durch den  korrekten  Akzeptanztest angenommen  oder die durch einen Voter auch wirklich sinnvoll verglichen werden k  nnen  Anderer   seits soll sie m  glichst allgemein und frei von bereits getroffenen Entwurfsentscheidun   gen sein  um noch verschiedenartige Implementierungen zuzulassen  Eine Diskussion    ber Techniken und Probleme der Software Diversifikation mit einem guten   berblick    ber verschiedene Experimente und ihre Resultate findet sich in  7      Systeme mit Softwarefehler Toleranz scheinen nicht sehr h  ufig entwickelt zu werden  und es finden sich kaum Erfahrungsberichte  Storey gibt in  66  einige wenige Verwei   se   Die Integration genannter Fehlertoleranztechniken zusammen mit der Erstellung  mehrerer Versionen resultieren in einem deutlich h  heren Entwicklungsaufwand  Die   ser Aufwand k  nnte stattdessen auch in Techniken zur Fehlervermeidung investiert  werden  was insbesondere f  r Softwarefehler interessant ist  Ein einmal korrektes Soft   waresystem bleibt f  r immer korrekt  von   nderungen der Anforderungen oder der  Umgebung abgesehen   Die Verwendung von fehlertoleranten Mitteln k  nnte auch als  Eingest  n
256. rtbarkeit   Korrektheit  Lebendigkeit und Stabilit  t aufweisen     e Das Pr  dikat UV kann durch das System selbst ausgewertet werden  Es darf also  nicht Variablen enthalten  die der Formalismus zwar zur Verwendung in Beweisen  bereitstellt  auf die das System selbst aber nicht zugreifen kann  Dazu geh  ren  beispielsweise die Variablen i   f  r alle i     I  f  r noch nicht gelesene Eingaben  oder Variable oc f  r Orakel  aber auch bereits gelesene Eingaben 7   und sogar vom  System bereits gesendete Ausgaben o  Die entsprechenden Informationen stehen  dem System nur dann zur Verf  gung  wenn sie vom System explizit in lokalen  Variablen gespeichert werden     e Das Pr  dikat ist korrekt  Das Pr  dikat wird also nur dann wahr  wenn tats  chlich  ein Fehler vorliegt  In unserem Formalismus k  nnen wir dies formulieren als    a   Y  gt  a     ERROR S M        Das Pr  dikat ist lebendig in dem Sinne  dass ein Fehler auch tats  chlich erkannt  wird  wenn er dauerhaft vorliegt  Wir fordern also nicht  dass ein Fehler sofort  erkannt wird  was sich in einer   quivalenz anstelle der Implikation in der Kor   rektheitsforderung widerspiegeln w  rde  Wir fordern nur die abgeschw  chte Form        amp  k     ERROR S M   gt  Ij  gt  k e    j H V V   j    ERROR S  M         Ist ein Fehler durch W erkannt  bleibt Y stabil  also solange wahr  bis dieser Fehler  nicht mehr vorliegt     Ek H T  gt     k  1  EVV    k  1  g ERROR S M           Als Beispiel greifen wir auf den Puffer zur  ck 
257. rten Systems erfassen lassen  Dies unterst  tzt eher die praktische Verwen   dung von Modifikationen  wenn die Systemeigenschaften verst  rkt werden sollen     Die Modifikation von Black Box Spezifikationen ist vertr  glich mit der Verfeinerung   wie leicht einzusehen ist     Proposition 4 3 Es gilt    N Pa  p AM   PaA M    86 KAPITEL 4  FORMALE MODELLIERUNG VON FEHLERN    Aus    2 A p  V Dr folgt unter der Voraussetzung   2        sofort   1 A   p  V Dr                 Wir beschreiben die Modifikation aus Beispiel MIB  erneut im Rahmen von Black Box  Spezifikationen  Dabei wird deutlich  dass zwei semantisch   quivalente Modifikatio   nen in verschiedenen Beschreibungstechniken sehr unterschiedlich formuliert werden  k  nnen     Beispiel 4 4 Die Komponente Merge soll nur noch Nachrichten von 7  oder iz auf o ausgeben   Die Disjunktion dieser beiden F  lle scheint eine zus  tzliche Eigenschaft als Verst  rkung der  Black Box Sicht mittels   z darzustellen  Konjugiert man aber o   71 V o   ia zur Black Box  Spezifikation Dio   i A D amp o   ia  so impliziert dies  dass einer der Eingabestr  me il  oder ia leer sein m    te  was der Linkstotalit  t widerspricht  Um diesen Konflikt zu vermeiden   w  hlen wir die radikale L  sung durch Verwerfen der urspr  nglichen Spezifikation mit   z   false   und spezifizieren das neue Verhalten verm  ge p  Unsere gesuchte Modifikation l    t sich also  definieren als    M    false  o  i Vo i                 Neben der eigenschaftsorientierten
258. rtoleranz g  ltig  sein  F  r verschiedene Mengen von Fehlern weicht das Verhalten auf unterschiedliche  Weise ab  So k  nnen beispielsweise f  r harmlose Fehler keine Auswirkungen sichtbar  werden  w  hrend f  r gravierendere Fehler nur noch sicherheitskritische Eigenschaften  erf  llt bleiben     Die st  rkste Form von Fehlertoleranz ist die sogenannte maskierende Fehlertoleranz   Sie stellt sicher  dass bez  glich einer definierten Menge von Fehlern das Verhalten un   ver  ndert bleibt  die Fehler also keine Wirkung zeigen k  nnen     Die in der Klassifizierung von Versagen aufgef  hrten Beispiele k  nnen f  r explizite Aus   sagen   ber Fehlertoleranz verwendet werden  So k  nnen Komponenten eines Systems  bestimmte Klassen von Versagen als Fehlermodelle zugeordnet werden  und damit ei   ne Aussage   ber die Menge der zu tolerierenden Fehler gemacht werden  Andererseits  kann die Abweichung vom erwarteten Verhalten des Gesamtsystems durch diese Klassen  beschrieben werden     2 2  FEHLERTOLERANZ 25    Beispiel 2 2 Sei ein einfaches System gegeben  das der Nachrichten  bermittlung dient   bestehend aus einem Sender  einem Empf  nger und zwei   bertragungskan  len  Sender und  Empf  nger   bermitteln Daten mit Hilfe der beiden Kan  le entsprechend dem Sliding Window   Protokoll  beschrieben beispielsweise in  67       Das Protokoll ist in der Lage  den sporadischen Verlust von Nachrichten auf den Kan  len zu  tolerieren  so dass nur die Geschwindigkeit der   bertragung beei
259. rung von Fehlermeldungen  und zur Fehlerkorrektur in ein bestehendes System auf systematische Weise erm  glicht   Die Praktikabilit  t dieser Techniken wird durch begleitende Beispiele illustriert     Damit wird ein weiterer Schritt hin zu einer durchg  ngigen und praktischen Verwend   barkeit formaler Methoden geleistet     Danksagung    Meine Arbeit ist nur mit der vielf  ltigen Unterst  tzung meiner Kollegen  Freunde und  Familie m  glich geworden  Daf  r m  chte ich mich an dieser Stelle ganz herzlich bedan   ken     Insbesondere m  chte ich mich bei Prof  Manfred Broy bedanken f  r seine fachliche wie  organisatorische Betreuung und Unterst  tzung w  hrend aller Entstehungsphasen dieser  Arbeit  F  r die   bernahme des Zweitgutachtens und seine Hinweise zum Fehlerbegriff  bin ich Prof  Eike Jessen sehr dankbar     Gro  en Dank schulde ich Jan Philipps  Unsere gemeinsame intensive Projektarbeit  hat nicht nur zu einer guten Fundierung meiner Arbeit gef  hrt  sondern hat mir auch  sehr viel Spa   gemacht  Ingolf Kr  ger danke ich f  r seine vielf  ltige konstruktive Un   terst  tzung  unter anderem durch zahlreiche fachliche Diskussionen und Anregungen   Katharina Spies und Bernhard Sch  tz geb  hrt mein Dank f  r ihre motivierenden Hilfe   stellungen und Ratschl  ge  insbesondere in den fr  hen und konzeptionellen Phasen der  Arbeit     Nicht zuletzt bin ich sehr dankbar f  r die viele Geduld  Nachsicht und Aufmunterung   die Konstanze  meine Freunde und meine Familie w  
260. s Entwicklungsprozesses eine konsistente Definition  aller Aspekte erreicht und sogar formal bewiesen  Wir definieren diese Sicht als die  Soll Beschreibung eines Systems     Die verschiedenen Arten von Fehlern k  nnen wir nun anhand dieser Darstellung gut    20 KAPITEL 2  DER FEHLERBEGRIFF             statisch dynamisch  Schnittstelle System  on Black Box   verhalten 8 8 Sicht  verhalten  Systemstruktur  Abl  ufe als Class Bor  Code  Folge von Sicht  Design Systemzust  nden             Abbildung 2 3  Merkmale eines Systems    illustrieren  Weichen Merkmale eines vorliegenden  st Systems von einem geforderten  Soll System ab  so liegen Fehler vor  Mit Hilfe von Abbildung 2 4 stellen wir die Fehler   begriffe nun einheitlich im Rahmen unserer Systemsicht vor  Jeder Soll  Ist Abweichung  der f  nf Merkmalsklassen k  nnen wir entsprechende Fehlerbegriffe zuordnen     Unterscheidet sich eine  st Schnittstelle von einer intendierten Schnittstelle eines Soll   Systems  so f  hrt dies zu einer Inkompatibilit  t zwischen dem System und seiner Um   gebung  Beispielsweise kann es dann passieren  dass von dem System Nachrichten emp   fangen werden  die in der Schnittstellenspezifikation nicht enthalten waren und beim  Systementwurf daher nicht ber  cksichtigt wurden  Das System kann daher auf diese  Nachrichten nicht reagieren  Im Sinne der Klassifizierung aus Abschnitt 2 1 2  ist eine  derartige Fehlerursache verteilt als Inkonsistenz im Gesamtsystem vorhanden  ist durch  den Entwickle
261. s Versagen oder Fehlerzustand  auftreten     Das Versagen eines Systems kann von au  en erkannt werden  wenn ein beobachtetes Ist   Verhalten von einem spezifizierten Soll Verhalten abweicht  Die Erkennung findet dabei  also in einem anderen System oder in einer anderen Komponente eines Systems statt   Die Erwartung an die m  glicherweise versagende Komponente kann in der erkennen   den Komponente als eine Umgebungsannahme formuliert werden  Ein Fehler wird also  nicht unbedingt als solcher erkannt  da im allgemeinem bei einer nicht erf  llten Um   gebungsannahme das Verhalten nicht spezifiziert ist  Eine Fehlererkennung mit einer  zugeh  rigen Fehlerbehandlung kann in ein System integriert werden  indem die Fehler   erkennung mit einer zus  tzlichen sinnvollen Reaktion verbunden wird  In Abschnitt 5 6   wird dies diskutiert     Ein Fehlerzustand tritt innerhalb eines Systems und zur Laufzeit auf  Ein System  das  zur Erkennung eines Fehlerzustandes in der Lage ist  muss also die Abweichung des aktu   ellen Systemzustandes von einem erw  nschten Systemzustand selbst erkennen k  nnen   Wir wollen nun eine m  gliche Modellierung einer Fehlererkennung im Rahmen unseres  Systemmodells vorstellen     128 KAPITEL 5  METHODISCHER UMGANG MIT FEHLERN    Dazu definieren wir ein  Zustands   Pr  dikat W  mit free V  C IU OU A   das das  Vorliegen eines Fehlerzustandes a     ERROR S M  in einem System S mit dem Feh   lermodell M anzeigt  Das Pr  dikat muss die vier Eigenschaften der Auswe
262. s bereits eine Spezifikation vorliegt  die alle relevanten Qualit  tsaspekte  umfa  t  die wir von einem System fordern  Erf  llt ein System also seine Spezifikation   m  ssen keine weiteren Kriterien   berpr  ft werden     Doch auch unter der Voraussetzung  dass alle Anforderungen an ein System im Rah   men einer Spezifikation bereits definiert sind  ist es eine gro  e Herausforderung  eine  entsprechende Implementierung zu entwickeln  Dies ist im wesentlichen in der hohen  Komplexit  t der Systeme begr  ndet  Sie bestehen aus einem diffizilen  ausbalancierten  Zusammenspiel vieler Komponenten in Hard  und Software  die untereinander und mit  anderen Systemen interagieren  Es werden meist bestehende Altsysteme oder Systemtei   le integriert  deren Funktionsweise unter Umst  nden nur teilweise dokumentiert ist  Sys   teme k  nnen so gro   und komplex werden  dass niemand sie mehr zugleich vollst  ndig  und im Detail verstehen kann  Bei der Durchf  hrung realer Projekte kommt hinzu  dass  sich w  hrend der Entwicklung Ziele  Spezifikationen  die Systemumgebung und zugrun   deliegende Hardware oder Betriebssysteme   ndern und nur knappe Ressourcen von Zeit  und Geld zur Verf  gung stehen     Die Informatik hat in den letzten Jahren  beispielsweise durch Beschreibungstechniken   Vorgehensmodelle   dom  nenspezifische  Systemarchitekturen oder Entwicklungswerk   zeuge bereits einige Fortschritte gemacht  befindet sich aber im Vergleich zu anderen  Ingenieurdisziplinen  die   ber 
263. s im n  chsten Abschnitt vorgestellt wird  In   0  ist eine Reihe weiterer Beweisregeln  zum Nachweis von Invarianten angegeben     Invarianten sind leicht erf  llbar von einem System  das keinerlei Aktivit  t zeigt  bei   spielsweise von einem trivialen System ohne Transitionen oder einem blockierten Sys   tem  Daher fordert man   blicherweise eine gewisse minimale Aktivit  t  Wir formulieren  diese mit Hilfe sogenannter Fortschrittseigenschaften  die sich wieder auf Zustandspr  di   kate abst  tzen     Definition 3 13 Fortschrittseigenschaften    Ein Zustand    zieht in einem System S einen Zustand Y nach sich  notiert als    SIF   y    3 8  VERIFIKATION VON EIGENSCHAFTEN 61    wenn in all seinen Abl  ufen nach Erreichen eines Zustandes  in dem    gilt  auch sofort  W gilt oder im weiteren Ablauf ein Zustand folgt  in dem W gilt           VEE  S  eYk o  EKE      gt   Il k o t l H Y                       In  10  finden sich wieder einige Beweisregeln zum Nachweis einer Fortschrittseigen   schaft  Im Rahmen unseres Systemmodells ist man h  ufig an der folgenden speziellen  Form interessiert  die eine Verl  ngerung der Ausgabe ausdr  ckt  die ein System leisten  soll      Fo kk lt lm o gt k    Dabei beschreibt    einen ganzzahligen Ausdruck mit freien Variablen aus  U O  Erf  llt  ein System diese Eigenschaft und hat in einem Zustand die L  nge des Ausgabestromes  den Wert    noch nicht erreicht  so wird der Ausgabestrom im weiteren Systemablauf  noch verl  ngert  Es ist in di
264. sannahme entsprechend Abschnitt B 5 l    t sich zus  tzliches Wissen formulieren  und in der Verifikation nutzen     4 2 Modifikation des Verhaltens    Wir behandeln nun in diesem Abschnitt die Modifikation des Systemverhaltens  Wir  bezeichnen eine Verhaltensmodifikation mit M  die im folgenden in den verschiedenen  Beschreibungstechniken jeweils formal definiert wird  Eine Modifikation M kann auf  ein System S angewendet werden und beschreibt den Unterschied zwischen dem ur   spr  nglichen System und seiner ver  nderten Variante  Das Resultat ist das modifizierte  System  und wird notiert als    SAM  zu lesen als    S modifiziert durch M        Eine Modifikation M ver  ndert ein System S auf zwei Weisen  Es entfernt einerseits  gewisse Anteile des Systems  und f  gt andererseits andere     im allgemeinen neue      Teile dem System hinzu  Diese Ver  nderungen k  nnen die verschiedensten Aspekte  eines Systems betreffen wie Eigenschaften  interne Transitionen oder das Black Box   Verhalten     Wir illustrieren mit Abbildung 4 2Ja  die Auswirkung einer Modifikation  die das Ver   halten eines Systems S modifiziert  Die Gesamtfl  che stelle die Menge aller m  glichen  Verhalten dar  Darin wird das Verhalten eines Systems S durch eine Teilmenge repr  sen   tiert  Das Verhalten des modifizierten Systems SAM stellt nun eine andere Teilfl  che  dar  die nur noch einen Teil des Verhaltens von   umfa  t  daf  r aber neue Fl  chenteile  dazugewinnt  Der Unterschied kann durch die Anga
265. schreibt den Fall  dass  keine der drei Komponenten einen Fehler aufweist     Mit dieser Formalisierung des Gesamtsystems wird also die Annahme ausgedr  ckt  dass maximal  zwei der drei Komponenten ausfallen  Die behauptete maskierende Fehlertoleranz des Systems             kann damit nachgewiesen werden        5 3  FEHLERERKENNUNG 127    T  71  72  73  712  713  723   gt   Abbildung 5 2  Transitionssystem der virtuellen Komponente    Orakelstr  me sind weiterhin daf  r geeignet  Annahmen   ber H  ufigkeiten von auftre   tenden Fehlern zu machen  Kann beispielsweise ein Verfahren die Fehlertoleranz eines  Systems nur sicherstellen  wenn ein Fehler nicht n mal unmittelbar hintereinander auf   tritt  so kann dies durch ein Pr  dikat   ber einen Orakelstrom oc durch          Ike Vje  o lt j lt  n 1   gt  oc  k j    true    ausgedr  ckt und dann in einem Beweis als Voraussetzung verwendet werden     5 3 Fehlererkennung    Ein wichtiger Schritt bei der Behandlung von Fehlern ist ihre Erkennung  Wir k  nnen  unterscheiden zwischen den in Kapitel 2 1 1  drei diskutierten Fehlerbegriffen     Eine Fehlerursache als der eigentliche Defekt eines Systems kann als solcher nicht vom  System erkannt werden  da eine Fehlerursache beispielsweise im Entwicklungsproze    in  fehlerhaften oder unvollst  ndigen Anforderungen oder einer ungeeigneten Architektur  ihren Ursprung haben kann  Das System selbst kann diese Defekte nicht direkt erkennen   sondern kann nur deren Wirkung wahrnehmen  die al
266. so soll auf diesen angemessen und sinnvoll reagiert werden   Die Ausgabe einer Fehlermeldung  wie wir sie im vorigen Abschnitt diskutiert haben   stellt bereits ein Beispiel einer einfachen Reaktion dar  Wir wollen hier nun allgemeiner  beschreiben  wie Systeme um Reaktionen erg  nzt werden k  nnen     Es ist typischerweise nicht ausreichend  lediglich neue Transitionen hinzuzuf  gen  um  eine gew  nschte Reaktion auf Fehler ausdr  cken zu k  nnen  Es kann n  tig sein  neue lo   kale Variablen zu erg  nzen oder die Wertemenge  den Typ  von vorhandenen Variablen  zu erweitern  Insbesondere ist es damit m  glich  neue Kontrollzust  nde aufzunehmen   Mit den Techniken aus Abschnitt I  sind wir in der Lage  die ben  tigten neuen Va   riablen oder erweiterten Typen verhaltensneutral zu erg  nzen  Wir gehen daher im  folgenden davon aus  dass alle Variablen mit entsprechenden Wertebereichen bereits  vorhanden sind     Wir spezifizieren exemplarisch drei Varianten von Reaktionen auf einen entdeckten  Fehler  die in Abbildung  5 4  dargestellt sind  Der Sprung in einen Fangzustand  der  Neustart des Systems und der Start einer frei w  hlbaren Fehlerbehandlung  die eine  Verallgemeinerung der ersten beiden Reaktionen darstellt     Sprung in einen Fangzustand In Abbildung a  ist der Sprung in einen Fang   zustand f illustriert  Wird ein Fehler durch ein Pr  dikat Y erkannt  d  rfen Normal   transitionen nicht mehr gew  hlt werden  da ihre Vorbedingung um   W verst  rkt wird   Stattdess
267. st   Die geforderte Implikation gilt trivialerweise  da     A 7 dann den Wahrheits   wert false hat         Vom Knoten     gehen mit 7 beschriftete Kanten zu den Knoten                 und es gilt    OATS V  VE   e Die Umgebungstransitionen erhalten jedes Pr  dikat  es gilt also f  r alle r      T       j AT   gt  OF    Frf  llt ein Diagramm alle diese Eigenschaften  so repr  sentiert es einen Beweis fiir die  Aussage    S IF inv o V   V       Die Disjunktion gilt aufgrund der ersten Forderung initial und bleibt wegen der anderen  Forderungen f  r jede Transition erhalten  Ein Beweis findet sich in  10   Wir illustrieren  die Invariantendiagramme mit Hilfe des folgenden Beispiels     Beispiel 3 11 Wir beweisen mit Hilfe des Verifikationsdiagrammes in Abbildung B 7  dass   0    ty   Fg    eine Invariante von Merge ist  In allen vier Knoten gilt die geforderte Gleichung  so dass die  Behauptung eine Konsequenz der Disjunktion der vier Zustandspr  dikate ist     Initial sind keine Eingaben gelesen  und noch keine Ausgaben ausgegeben  so dass Y das Pr  dikat  im Startknoten impliziert  Von den 12 Beweisverpflichtungen  resultierend aus 4 Knoten mal 3  Transitionen  inklusive der Umgebungstransition  greifen wir exemplarisch eine heraus      o  Hi AHB  ONT   gt  fol   pif   Hi    Dies gilt offensichtlich  da aus der Definition von 72 folgt  dass       Jde it  i Aig  i   d  Ao  0 7 a   Auf beiden Seiten der Gleichung der Invarianten erh  ht sich der Wert um 1  Damit bleibt die  Inv
268. st muss erf  llbar sein  wenn eine  Transition schaltbereit ist  Bei einfachen Zuweisungen neuer Werte an Datenvariable  ist dies sichergestellt     Aus einem Transitionsdiagramm zusammen mit der Definition der Datenvariablen mit  ihrer Initialisierung und der Definition der Schnittstelle ergibt sich eindeutig die formale  Darstellung des zugeh  rigen Transitionssystems  Die systematische   bersetzung wird  in  13  beschrieben     Beispiel 3 6 Merge als graphisches Transitionsdiagramm    Wir spezifizieren das System Merge durch ein Zustands  bergangsdiagramm in Abbildung BA    54 KAPITEL 3  FORMALES SYSTEMMODELL     true   amp  d  gt  old  true         true  i2 d  gt  o d  true     Abbildung 3 4  Zustands  berg  nge von Merge    Wir ben  tigen in diesem Fall keine Datenvariablen  so dass wir auch keine Initialisierung angeben  m  ssen  Diese wird   blicherwiese in einem Diagramm in kommentar  hnlicher Form angef  gt   Die Variable d ist in beiden Transitionen eine lokale Transitionsvariable  Das Ergebnis einer  systematischen   bersetzung der Transitionen f  hrt genau zu der Formalisierung  wie wir sie  bereits in Beispiel BB  gesehen haben  Auf eine Formalisierung des Kontrollzustandes    haben  wir verzichtet  da es nur einen Zustand gibt  Beide Transitionen w  ren sonst um o   s in Pre             und o      s in Post erg  nzt worden        Eine ausf  hrliche Behandlungen von Zustandstransitionssystemen  die auch hierar   chisch sein k  nnen  findet sich in  18  B3      3 
269. stand s und einer Variablen   belegung a blockiert  wenn es keine ausgehenden Transitionen gibt  also n   0 gilt  oder  wenn n  gt  0 und keine der ausgehenden Transitionen schaltbereit ist  d h  wenn  mit o  als Parameter f  r den aktuellen Kontrollzustand  gilt    a Eee had V    V       Um nachzuweisen  ob ein Kontrollzustand s ein Fangzustand sein kann  muss man diese  Aussage aber nicht f  r alle Belegungen   berpr  fen  Meist l    t sich ein Kontrollzustand  mit gewissen Eigenschaften Y verkn  pfen  die immer gelten  wenn sich das System im  Kontrollzustand s befindet  In diesem Fall stellt 0   s   W eine Invariante des  Systems dar  Ein Knoten beschreibt damit nicht nur dann einen Fangzustand  wenn  die Disjunktion der Vorbedingungen nicht true ergibt  sondern auch dann  wenn diese  Disjunktion unter der Voraussetzung W nicht identisch zu true ist  Die Bedingung    Y   gt  n   i V    V        ist also eine hinreichende Bedingung daf  r  dass s ein Fangzustand ist  Da unter Um   st  nden aber W nicht die st  rkste Aussage ist  die im Zustand s gilt  ist diese Aussage  keine notwendige Bedingung f  r einen Fangzustand  Die Disjunktion kann f  r eine Be   legung a erf  llbar sein  obwohl diese Belegung im Zustand s in keinem Systemablauf  erreichbar ist     Die Robustheit des Systems kann bei einem vorliegenden Fangzustand s erh  ht werden  durch eine Transition mit der Vorbedingung      1  f  r die gilt       n41 oS oA a  Oy Vv    V       Damit ist sichergestellt  dass di
270. statteten Eingabestr  me kann auch beschrieben werden durch  eine fiktive Zustandsmaschine A  die genau diese Menge von Str  men erzeugen  kann  Sie kann im einfachen Fall keine Eingaben besitzen und die Ausgaben spon   tan erzeugen oder die Ausgaben des Systems als Eingabe erhalten  um R  ck   schl  sse   ber den Zustand des Systems ziehen zu k  nnen     Zum Ableiten von Eigenschaften des Systems unter dieser Annahme betrachtet  man die Komposition des System mit der abstrakten Umgebungsmaschine     Der Begriff des Umgebungsfehlers l    t sich relativ zur Umgebungsannahme leicht de   finieren  Ein Fehler im Verhalten der Umgebung tritt auf  wenn die Umgebung Nach   richtenstr  me an das System schickt  die nicht die Annahme erf  llen     Diese Menge von Str  men  die die Annahme nicht erf  llen  k  nnen wir unterteilen  in zwei Teilmengen  einerseits die Fehler  die wir f  r plausibel halten und f  r deren  Behandlung wir Ma  nahmen im System ergreifen werden  und andererseits die Fehler  der Umgebung  bei denen wir davon ausgehen  dass sie nicht eintreten werden und die  wir auch nicht weiter ber  cksichtigen wollen  Um eine Trennung dieser beiden Menge  explizit zu machen  wollen wir die Umgebungsannahmen derart abschw  chen  dass der  letztere Teil noch immer ausgeschlossen bleibt  aber das Auftreten spezifizierter Fehler  m  glich wird  Es stellt sich somit die Frage  wie eine konkrete Abschw  chung f  r ein  konkretes System beschrieben werden kann     Wir schlagen hier
271. stem kann man charak   terisieren als Funktionen  die eine Ein  auf eine Ausgabe abbilden  So geh  ren klassische  sequentielle Programme ohne Interaktion mit ihrer Umgebung in diese Klasse     Ein reaktives System arbeitet dagegen eher kontinuierlich  Es empf  ngt stetig die Nach   richten  die von der Umgebung in m  glicherweise willk  rlicher Folge und H  ufung gesen   det werden  und darauf reagiert im allgemeinen mit Ausgaben  Das System terminiert  nicht  sondern bleibt reaktiv  Abl  ufe sind also potenziell unendlich  Die Reaktion ei   nes Systems kann dabei von aktuellen Eingaben und der Vorgeschichte  also vorherigen  Eingaben und Entscheidungen des Systems abh  ngen  Sie sind demzufolge allgemeiner  und deutlich komplexer als transformationelle Systeme     Reaktive Systeme stellen eine gro  e und wichtige Systemklasse dar  die oft auch in  sicherheitskritischen Bereichen ihre Anwendung findet     mit den damit verbundenen  hohen Anforderungen an Korrektheit und best  ndige Verf  gbarkeit  Beispiele sind Be   triebssysteme  Systeme zur Nachrichten  bermittlung wie Basisstationen von Mobilfunk   systemen oder Netzknotenrechner sowie eingebettete Systeme zur Steuerung von Fahr   zeugen  K  chenger  ten oder industriellen Herstellungsprozessen     Ein verteiltes System besteht nicht aus einer einzigen Einheit  sondern aus mehreren  Komponenten  die miteinander interagieren und so gemeinsam eine Gesamtleistung  erbringen  Gr  nde f  r die Verteilung eines Systems k  nnen
272. stop wieder auf false setzen kann  bleibt  ein einmal angehaltenes System immer gestoppt  Durch eine st  rkere Vorbedingung  Pre von Tstop kann der Ausfall des Systems von anderen Systemparametern abh  ngig  gemacht werden     5 1  BEISPIELE F  R FEHLERMODELLE 123    Eine Ver  nderung der Initialbedingung Y ist nicht n  tig  der initiale Wert von stop ist  also frei w  hlbar  Damit ist es m  glich  dass das durch SAM definierte System gleich  von Anbeginn seiner Ausf  hrung versagt     5 1 2 Fail stop failure    Wie beim crash failure Modell bleibt bei diesem Fehlermodell das System spontan ste   hen  Im Unterschied zu crash failure sendet es aber noch ein Signal an seine Umgebung   welches das Versagen leicht und unmittelbar erkennbar macht     Aufgrund der   hnlichkeit der beiden Modelle unterscheiden sich auch die Formalisie   rungen nur minimal  Wir gehen von einem existierenden Kanal f aus  auf dem Fehler   meldungen fail ausgegeben werden k  nnen  also fail     type f   Unter Umst  nden ist  dieser Kanal entsprechend Abschnitt LT  TJmit Hilfe einer  verhaltensneutralen  Schnitt   stellenmodifikation zu erg  nzen     Wir k  nnen die Modifikation  true    r  der Black Box Spezifikation so anpassen  dass  bei einem auftretenden Versagen des Systems auch wirklich eine Fehlermeldung auf f  ausgegeben wird  Der Strom o muss in diesem Fall ein echter Pr  fix von o    sein  da  die Fehlermeldung nur genau dann ausgegeben werden soll  wenn der Fehler wirklich  aufgetreten ist   
273. sweise in  67     die verschiedene Arten von Fehlern wie die Generierung von Nachrichten oder die Vertauschung  ihrer Reihenfolge tolerieren k  nnen  Mit Hilfe von Orakelstr  men aus Abschnitt B 2 sind wir in  der Lage auszudr  cken  dass nicht alle Nachrichten verloren gehen     dies w  rde die   bertragung  schlie  lich unterbrechen  Kann man in unserem Fall    Channel   gt  Sender    Loss    Channel    Receiver                nachweisen  so ist ein gew  hltes Protokoll f  r ein vorausgesetztes Fehlermodell angemessen     Im Extremfall kann der Treiber die volle  geforderte Funktionalit  t von S   bernehmen  und die fehlerhaften Ausgaben von M    S dabei ignorieren  Ein Beispiel stellen die  in Kapitel 2 2 2  beschriebenen Reservekomponenten dar  die in unserem Systemmodell  formal mit dem Konzept der Treiberkomponenten eingef  hrt werden k  nnen     5 6  ERH  HUNG DER SYSTEMROBUSTHEIT 139    5 6 Erh  hung der Systemrobustheit    In Kapitel   6  wurden Fehler diskutiert  die nicht im System selbst  sondern in der  Umgebung eines Systems auftreten  Das betroffene System erh  lt dann Eingaben  von  denen angenommen wurde  dass sie nie empfangen werden  Das Verhalten des Systems  kann in einem solchen Fall nicht spezifiziert sein  so dass es sich auf unvorhersehbare  Weise verhalten kann oder beispielsweise seine Aktivit  t schlicht beendet     Im Laufe eines Entwicklungsprozesses  in dem Fehler  unter Umst  nden erst nachtr  g   lich  modelliert werden  muss es m  glich sein 
274. systematische Weise aus  indem wir alle  Transitionen entfernen  die den Wert von c ver  ndern  und definieren    E 2   a B   a c    B o      Nun sind noch die eigentlichen Transitionen so einzuschr  nken  dass tats  chlich nur von dem  Kanal gelesen wird  der durch c angezeigt wird  So soll die Transition r   nur schaltbereit sein   wenn c   1 gilt  Diese Verst  rkung der Vorbedingung spiegelt sich formal wider in der Ent   fernung aller Transitionen  die diese Vorbedingung nicht erf  llen  Also erreichen wir durch die  Entfernung der Transitionen    Name Pre Input Output Post  B   7 c 1 i a ola      Th c 2 i a ola      den gew  nschten Effekt  Unsere gesuchte Modifikation lautet also  M    Ey U Eo  F     Die Negativformulierungen der entfernten Transitionen sind nicht sehr intuitiv  Errechnet man  die resultierende Transitionsmenge des Systems MergeAM  so erhalt man       Name Pre Input Output Post   Ti c 1 i a ola e  e  TA c 2 i a ola d  c  T3 c 11c 2 c 1  TA c 1Ac 2     c  2                Die Modifikationen  die wir bislang vorgestellt haben  nehmen unmittelbar Bezug auf  die Beschreibungstechnik  in der die Systeme spezifiziert werden  Die relationalen Be   schreibungen werden durch eine Modifikation der Relationen ver  ndert  Black Box Ei   genschaften durch eine Ver  nderung der Eigenschaften und Transitionssysteme durch  eine Manipulation der Transitionen  Eine Alternative stellt die Komposition mit Modi   fikationskomponenten dar  die wir im folgenden vorstellen wer
275. t Post  TF Y Ansent     f fail sent      true    132 KAPITEL 5  METHODISCHER UMGANG MIT FEHLERN    beschreibt die Modifikation M     7    EU E2  ein System  in dem eine Fehlermeldung  nur einmal gesendet werden kann     Beide Modifikationen lassen sich kombinieren  Ein durch M     r    EU Ey U Ey   modifiziertes System gibt eine Fehlermeldung sofort aus  bleibt dann aber in einem  Fangzustand stehen  da es keine Transitionen mehr gibt  die bei g  ltigem Y schaltbereit  sind  Durch Hinzuf  gen von weiteren  korrigierend eingreifenden Transitionen kann ein  System wieder aus dem Fehlerzustand herausgef  hrt werden  Wir diskutieren dies im  n  chsten Abschnitt     Beispiel 5 3 Fehlermeldung bei Datenverlust des Puffers    Der Verlust von Daten im Puffer wird in Beispiel  bP  durch das Pr  dikat Y   g  z erkannt   Um die Fehlermeldung auf dem Ausgabekanal o ausgeben zu k  nnen  erweitern wir seinen Typ  um das Element fail  also type o    DU  fail   Wir erg  nzen standardm    ig die Transition    Name Pre Input Output Post  Tf  q z   olfail post    Damit diese Fehlermeldung nur einmal pro verlorenem Datum gesendet wird  modifizieren wir  Ty derart  dass wieder ein konsistenter Zustand hergestellt wird  also W nicht mehr gilt  Dazu  w  hlen wir die Nachbedingung post so  dass q unver  ndert bleibt  und z mittels 2       q  angepasst wird  Im Einzelfall kann also auf die Verwendung einer neuen Variable sent verzichtet  werden und dennoch sichergestellt sein  dass eine Fehlermeldung
276. t sich so lange wiederholen  bis  alle Versionen verwendet wurden  In Abbildung B 8  ist der Ablauf f  r drei Versionen  dargestellt  Die Pfeile beschreiben hier den Kontroll   nicht den Datenflu        Folgende Voraussetzungen ergeben sich f  r die Anwendung von Recovery Blocks  Es  muss einen geeigneten Akzeptanztest geben  der aufgrund des ihm gelieferten Ergebnis   ses  bei Kenntnis der Eingabedaten  effizient   berpr  fen kann  ob ein Ergebnis korrekt    2 2  FEHLERTOLERANZ 33                   Akzeptanztest  I   ok       Version If     ae    fail  aati RAR   L    ok  Version 2      ae    fail  I  I   ok  Version 3       iaa fail                   Abbildung 2 8  Recovery Blocks    oder zumindest akzeptabel ist  Bei komplexen Aufgaben kann ein solcher Test nicht  existieren oder nur in Form einer aufwendigen Neu  oder Parallelberechnung des Er   gebnisses  Ferner muss es m  glich sein  das System in seinen Startzustand zur  ckzu   versetzen  wenn ein Ergebnis nicht akzeptabel ist  Bei intensiven Interaktionen mit der  Umgebung kann dies eventuell nicht realisiert werden  Bei zeitkritischen Anwendungen  m  ssen Zeitschranken auch dann noch eingehalten werden  wenn erst sp  t  das hei  t  im Extremfall im zuletzt gestarteten Modul ein korrektes Ergebnis gefunden wird     Es ist m  glich  die Komplexit  t der erst sp  ter verwendeten Module zu reduzieren  und  auf Teile der Funktionalit  t zu verzichten  Dies stellt eine Form von graceful degradation    BJ dar     N Versione
277. tbereit ist  Es ist dann sichergestellt   dass eine derartige Transition auch ausgef  hrt wird  Aufgrund der monoton abnehmen   den Bewertungsfunktion n  hert sich das System mit jedem Schritt dem Zielzustand   o   der schlie  lich die Eigenschaft    impliziert     Durch die Entfernung von Transitionen ist es nun m  glich  dass eine relevante  zielf  h   rende Transition aus dem System entfernt wurde  und das System in seinem Ablauf nicht  mehr im Sinne des Fortschrittsdiagramms vorankommt  Dies wird daran erkennbar  dass  die Eigenschaft    B  En  V    V En     f  r einen Knoten     mit den ausgehenden Transitionen 7       7   nicht mehr gilt   Bleibt diese Figenschaft f  r alle Knoten erhalten  so bleibt auch das Fortschrittsdia   gramm und damit die Aussage      gt  W g  ltig  Solange es einen Pfad zum Zielknoten    o gibt  k  nnen Kanten gel  scht und unerreichbare Knoten entfernt werden  ohne die  Fortschrittsaussage ung  ltig zu machen     Ist dies aber nicht der Fall  und will man das Beweisdiagramm nicht vollst  ndig ver   werfen  sondern zumindest teilweise beibehalten  so sind folgende Ma  nahmen m  glich     e Es werden wiederum Transitionen erg  nzt  so dass obige Eigenschaft erneut gilt   Dieser Fall tritt typischerweise ein  wenn man bestehende Transitionen durch    hnliche Transitionen ersetzt  die eine andere Wirkung zeigen k  nnen  dabei aber  die reine Fortschrittseigenschaft nicht beeintr  chtigen  Die neuen Transitionen  m  ssen selbstverst  ndlich auf kor
278. ten  Wir werden in dieser Arbeit von nun  an voraussetzen  dass alle Transitionen in diesem Sinne wohlgeformt sind  Pr  ziser  formuliert lautet die Transitionsmenge eines modifizierten Systems  T  E  U F     wobei  F    C F den Anteil von F beschreibt  der die notwendigen Bedingungen erf  llt     Die f  r alle Systeme S neutrale Modifikation kann durch          dargestellt werden   da mit ihr weder Transitionen erg  nzt noch entfernt werden  Selbstverst  ndlich stellt  eine Modifikation  E  F  eine neutrale Modifikation dar  wenn T N E      und FC T  gilt  da in diesem Fall nur Transitionen entfernt werden  die gar nicht enthalten sind  bzw  nur Transitionen erg  nzt werden  die bereits in der Transitionsmenge liegen  Wir  schlie  en derartige F  lle nicht von vornherein aus     Durch Verwendung eines E mit T C E wird die Transitionsmenge eines Systems auf  ein beliebig w  hlbares F gesetzt  da damit alle Transitionen in T entfernt werden   und genau F verbleibt  Erneut l    t sich die Vervollst  ndigung zu einem System mit  chaotischem Verhalten durch Hinzunehmen aller Transitionen mittels F   VAL x VAL  erreichen  nat  rlich beschr  nkt auf die Transitionen  die die Forderung  d  aus Defini   tion BBlerf  llen      Ein Transitionssystem enth  lt noch die Variablenmenge A und die Initialbedingung Y  als weitere Bestandteile  die sich modifizieren lie  en    nderungen dieser Anteile ha   ben wir jedoch nicht in M aufgenommen  da sie auf Modifikationen der Transitionen  reduz
279. terminismus oder die Anzahl der    60 KAPITEL 3  FORMALES SYSTEMMODELL    Kan  le   sondern an Aussagen   ber den dynamischen Anteil  also die Abl  ufe eines  Systems     Wir beschr  nken uns auf Eigenschaften  die sich durch Invarianten und durch Fort   schrittsaussagen ausdr  cken lassen  Dazu werden Zustandspr  dikate verwendet  um  Aussagen   ber die Menge der Ausf  hrungen von Systemen zu machen  Sei S im folgen   den gegeben durch S    I 0 A Y T      Definition 3 12 Invarianten  Ein Zustandspr  dikat    eines Transitionssystems S hei  t Invariante von S  notiert als  SIF inv       wenn    in allen Abl  ufen in allen erreichbaren Zust  nden wahr ist     VEEKS  eVkEeEKEG                   Die Giiltigkeit einer Invariante wird typischerweise gezeigt  indem man nachweist  dass  die Invariante im Initialzustand g  ltig ist  und bei jeder m  glichen Transition erhalten  bleibt  wie dies in der folgenden Beweisregel formalisiert ist     Y  p   A rTr  gt f  f  rale reT  PATE      f  rale Te T        S  F  inv       Nicht jede Invariante l    t sich auf diese Weise zeigen  da eine Invariante zu schwach  sein kann und damit unerreichbare Zust  nde umfa  t  f  r die die Beweisregel unn  ti   ge Beweisverpflichtungen erzeugt  Die Invariante ist in einem solchen Fall geeignet zu  verst  rken  Die st  rkste Invariante eines Systems charakterisiert exakt die erreichbaren  Zust  nde eines Systems     Dieses Beweisprinzip wird auch in einem Beweisdiagramm f  r Invarianten verwendet   da
280. tsprechend ae p O modelliert werden  Wir  w  hlen die Komponente M mit der Schnittstelle   0   0     Das Verhalten kann wieder  leicht als Black Box Spezifikation durch     0   Di  o  v  o   Dx amp o     angegeben werden  Selbstverst  ndlich ist es auch m  glich  das Verhalten von M in an   deren Beschreibungstechniken anzugeben  Exemplarisch spezifizieren wir das Verhalten  durch ein Transitionssystem    S    0   0    0   c  c 1 V c 2 T     mit einem tabellarisch definierten T     Name Pre Input Output Post  T   c 1NxdeD   od old e c  T  m c 1AdED  old _ c c  TQ  c 2AdED  old   d c  T2 c 21ndeDs ord o  d e c    4 3 Formalisierung der Fehlerbegriffe                In der Literatur werden die Begriffe Fehler  engl  fault   Fehlzustand  engl  error  und  Ausfall bzw  Versagen  engl  failure  meist nur informell beschrieben  Sogar in Stan   dardwerken wie beispielsweise  43  44   66  wird auf eine pr  zise Definition verzichtet   da eine formale Grundlage nicht zur Verf  gung steht  Mit dem in  4 2  vorgestellten  Begriff der Modifikationen k  nnen wir nun geeignete formale Definitionen f  r Fehler     Fehlerzustand und Versagen vorzuschlagen     4 3  FORMALISIERUNG DER FEHLERBEGRIFFE 93    4 3 1 Fehler    Wie in KapitelB T bereits diskutiert  bezeichnet man einen Fehler   blicherweise als den  eigentlichen  urspr  nglichen Grund f  r die Abweichung eines konkreten  fehlerbehafte   ten Systems von seiner korrekten  intendierten Fassung  Ein Fehler ist also genau der  Defekt  der
281. u verallgemeinern  Dazu geh  ren neben  den getakteten  zeitbehafteten und synchronen Modellen auch Erweiterungen in  Richtung mobiler und dynamischer Systeme  Die damit verbundenen weiteren  Freiheitsgrade im Verhalten von Systemen bergen ein weiteres Fehlerpotential   das zu modellieren und zu untersuchen ist     Mit der formalen Einf  hrung des Begriffs der Modifikationen wurden Fehler expli   zit als eigene formale Gr    e definiert  die mit Hilfe verschiedener Beschreibungs   techniken und auf unterschiedlichen Abstraktionsstufen dargestellt werden kann   Wir haben bereits einige Eigenschaften dieses Begriffs untersucht und Operatoren  f  r Modifikationen definiert  Eine weiterf  hrende Untersuchung und die Defini   tion zus  tzlicher Operatoren ist sinnvoll  da die Ausdruckskraft und damit der  Nutzen des Formalismus weiter erh  ht werden kann  Wir geben einige potentielle  und anspruchsvolle  aber lohnenswerte Weiterentwicklungen an         Eine Ordnungsrelation zwischen Modifikationen kann den Vergleich von Feh   lern erm  glichen und damit ausdr  cken  wann ein Fehler    schlimmer    ist  als ein anderer  Damit werden erw  nschte Monotonieaussagen m  glich  To   leriert ein System einen Fehler  so toleriert es auch jede schw  chere Form  dieses Fehlers         Als allgemeinerer Ansatz bietet es sich an  eine Metrik f  r Modifikationen zu  definieren  Eine Metrik f  r Fehler ordnet zwei Fehlermodellen eine Ma  zahl  zu  die den Unterschied zwischen diesen bewertet  Ei
282. umiert werden  Die zust  ndige Transition  T2 kann dies nur durchf  hren  wenn die Vorbedingung  q  gt  0 erf  llt ist  Ein blockierender  Zustand ist also beschrieben durch             A R  CIA G  lt 0    Ein Eingabestrom i kann nur dann vollst  ndig gelesen werden  wenn die beiden obigen F  lle  nie eintreten  wenn also    Vie e  i Ana    erf  llt ist  Wir leiten daraus nun eine Anforderung an den Eingabestrom ab     Durch Expansion der Negation ergibt sich       Vi  de w  A d  CisH a lt N A  io   R Cis q gt 0       Wir miissen nun eine Invariante des Puffers verwenden  die den Zusammenhang zwischen der  Lange des Puffers und dem Eingabestrom beschreibt  Sie kann mit den Techniken aus Abschnitt  B 3 2 leicht bewiesen werden      4    D    i        F R Or  Damit ergibt sich durch Ersetzung    i  gt   DOi       H ROL  lt N A  i  gt   DOi       R Oi   gt  0    und daraus unter Ausnutzung der Eigenschaften der Operators        ve de   dEi gt   D   i     d        HROU c   i      R  Cis  DO i        R        HRSG   R   1  gt 0       vide i   d            d    lt N N       118 KAPITEL 4  FORMALE MODELLIERUNG VON FEHLERN    woraus wir trivialerweise schlie  en k  nnen auf    vie de i   d  Cis  D8 i      d    HRO o  d   SNA  i      R  Ci   gt   D  i      R     H R OU    gt   R    gt  0    Damit ist f  r jeden Pr  fix i     ob er nun mit einer Nachricht d oder R endet  gezeigt  dass    d VVi    Lie0 lt  DO8i   H     i     lt N             was genau der Umgebungsannahme der Black Box 
283. und definieren f  r ihn ein Fehlermodell  zusammen mit einem Fehlererkennungspr  dikat     Beispiel 5 2 Erkennung von Datenverlust im Puffer    In Beispiel AZ  haben wir eine Spezifikation des Puffers definiert  in der die Daten in einer  Variablen q gespeichert werden  Wir wollen nun den potentiellen Datenverlust von Daten aus  q modellieren und ein Pr  dikat Y definieren  das diesen Fehler aufdeckt     Der Datenverlust wird durch die Erg  nzung einer Transition 73 dargestellt  die das erste Datum  in q entfernt     Name Pre Input Output Post  T3  q gt 0   _ q   rt q    Da diese Transition immer schaltbereit ist  wenn Daten in q vorhanden sind  und da jedes  Datum vor einer potentiellen Ausgabe einmal ganz vorne in q steht  kann jedes Datum verlo   ren gehen  Durch eine Verst  rkung der Vorbedingung k  nnte man den Verlust auf bestimmte    5 3  FEHLERERKENNUNG 129          T3  z    1     z lt  Fa    Q       71 72 71  72 73                      Abbildung 5 3  Invariantendiagramm f  r Buffer    Daten einschr  nken  oder auch durch Orakelstr  me Einschr  nkungen   ber die H  ufigkeit von  Datenverlust ausdr  cken     Ohne aufgetretenen Datenverlust sind in q genau  i      o Nachrichten enthalten  also genau die  Differenz zwischen der Zahl der bereits empfangenen Daten und der schon wieder ausgegebenen  Daten  Ein Verlust ist also daran erkennbar  dass     4 FH  0    Weder 7   noch o sind allerdings Gr    en  auf die das System zugreifen darf  Sie sind zwar in  unserem Formalis
284. ung auf Basis mathematischer Grund   lagen auf eine pr  zise und verifizierbare Weise unterst  tzt     Im Idealfall stellen die formalen Methoden dazu Notationen und eine Sprache bereit  mit  der es m  glich wird  Spezifikationen mit einer klar definierten Semantik zu formulieren   Im Gegensatz zu informellen Spezifikationen wird es damit eher m  glich  die Forderun   gen nach Eindeutigkeit und Konsistenz zu erf  llen  Eigenschaften einer Spezifikation  oder eines Systems und durch sie implizierte Konsequenzen k  nnen unter Verwendung  eines logischen Kalk  ls formal bewiesen werden  Entwicklungsschritte  die von Spezi   fikationen als abstrakten Systembeschreibungen hin zu einer ausf  hrbaren Implemen   tierung f  hren  werden durch geeignete Verfeinerungsbegriffe unterst  tzt  Werkzeuge  stellen dazu die notwendige Infrastruktur zur Bearbeitung von Systembeschreibungen  und eine m  glichst automatisierte Durchf  hrung von Beweisen bereit     Als Beispiele f  r formale Ans  tze lassen sich nennen  die Methoden RAISE  Unity   VDM  Z  TLA  die B Methode  algebraische Ans  tze wie CASL  Focus mit dem Werk   zeug AUTOFOCUS und Petri Netze  Diese Beispiele bieten vielmals nur Teilaspekte  formaler Methoden  und stellen oft nur eine Sprache zur Spezifikation bereit     ohne  entsprechende Konzepte zur Verfeinerung und ohne Werkzeuge  Sie unterscheiden sich  teilweise wesentlich in ihrem zugrundeliegenden Systemmodell  das unter anderem die  prinzipiellen Paradigma f  r die Kommuni
285. ur Beschreibung von Abweichungen  Wir werden schlie  lich Techniken  vorstellen  die in einer Systementwicklung sinnvoll zum Umgang mit Fehlern verwendet  werden k  nnen     36    KAPITEL 2  DER FEHLERBEGRIFF    Kapitel 3    Formales Systemmodell    Dieses Kapitel beschreibt das Systemmodell der Methodik Focus  das wir als Grund   lage f  r diese Arbeit gew  hlt haben  Ein Systemmodell bietet eine allgemeine und ab   strakte Charakterisierung der Klasse der Systeme  die uns interessieren und sich zur  Modellierung verteilter reaktiver Systeme eignen  Es definiert den Systembegriff  die  Modellierung von Verhalten  Kommunikation  Komposition und verschiedene Verfein   erungs  und Beweiskonzepte     Nach einem   berblick   ber das Systemmodell und einer Darstellung formaler Grundla   gen definieren wir die semantische Sicht auf Schnittstellen  Abschnitt B 3  und auf das  Verhalten von Systemen  Abschnitt 8 4   Zur Beschreibung konkreter Systeme f  hren  wir die sogenannten Black Box Spezifikationen und Zustandstransitionssysteme in den  AbschnittenB 5JundB 6lein  Die Komposition von Systemen wird inB 7ldefiniert  gefolgt  von Techniken und Begriffen zur Verifikation und Verfeinerung  Schlie  lich skizzieren  wir einen idealisierten Entwicklungsbegriff und enden mit einem Ausblick auf alternati   ve Systemmodelle  Wir werden zur Illustration der Konzepte eine einfache Komponente  Merge als durchg  ngiges Beispiel verwenden  In Kapitel  4  werden wir die Fehlermodel   lierung auf
286. ur in der Wahl der Namen  f  r interne Variablen unterscheiden  haben nat  rlich die gleichen Eigenschaften  w  rden  aber verschiedene Formulierungen von Modifikationen ben  tigen  Dieses Problem lie  e  sich noch beheben durch entsprechende Formalismen  die gegen  ber Variablennamen  indifferent sind  die aber die praktische Handhabung erschweren w  rden   Dennoch  kann beispielsweise das Hinzuf  gen der Transition    Name Pre Input Output Post  T     ye d            in Systemen mit gleicher Schnittstelle  aber v  llig anderer Funktionalit  t vollkommen  unterschiedliche Auswirkungen haben  Stellt dies in der Komponente Merge den unbe   merkt bleibenden Verlust eines Datums dar  k  nnte dies in einer anderen Komponente  den Verlust einer Quittierung darstellen  die zum Beispiel das R  cksetzen der Kompo   nente bewirkt  um nur ein willk  rliches Beispiel zu nennen  Wir beziehen korrespondie   rende Modifikationen daher im allgemeinen sinnvollerweise auf konkrete Systeme     Es ist eine komplexe Aufgabe  in konkreten Anwendungsf  llen korrespondierende Mo   difikationen zu finden  Hat man also bereits einen Beweis f  r S      gefunden  und  modifiziert man eine der beiden Systembeschreibungen  so ergeben sich zwei Fragestel   lungen     e Wie lautet die zu einer vorgegeben Modifikation passende korrespondierende Mo   difikation     Ideal w  re ein konstruktives Verfahren  das zu gegebenen Systembeschreibungen  und einer Modifikation die entsprechende korrespondierende Modifi
287. verbundenen Ausdehnungen von  Hardwarekomponenten oder Feuchtigkeitseinfl  sse auf elektrische Kontakte sind  typische Beispiele f  r physikalische Einfl  sse  die auf ein System einwirken k  nnen   und sowohl im Betrieb als auch bei der Herstellung eines Systems Fehler bewir   ken  Fehler durch Menschen k  nnen sowohl w  hrend der Entstehungszeit durch  einen Entwickler in ein System gelangen  als auch w  hrend der Laufzeit eines  Systems durch einen Benutzer  der durch fehlerhafte Bedienung die Korrektheit  eines Systemverhaltens gef  hrden kann     2 1  FEHLER 15    Es l    t sich argumentieren  dass eigentlich alle Arten von Fehlern den Menschen  als Verursacher haben  denn auch physikalische Fehler sind nur ein Zeichen daf  r   dass der Mensch die Technik nicht ausreichend beherrscht und er nicht in der  Lage ist  physikalische Fehlerquellen durch entsprechende Gegenma  nahmen aus   zuschlie  en  Aber dennoch hat die Unterscheidung ihre Rechtfertigung  Sie k  nnen  von einem Entwickler bewu  t in Kauf genommen werden  da Ma  nahmen zu ihrer  vollst  ndigen Vermeidung zu aufwendig w  ren  wie beispielsweise Abschirmungen  von Kommunikationskan  len  oder h  here Qualit  tsanforderungen in einem Her   stellungsproze   von Hardwarekomponenten  Stattdessen kann auf Mechanismen  zur Tolerierung der physikalischen Fehler ausgewichen werden     Zeitpunkt des Auftretens Ein Fehler kann zur Zeitpunkt der Entwicklung in ein  System gelangen  oder w  hrend seines Betriebes zur Lauf
288. werden k  nnen   In diesem Kapitel haben wir gezeigt  wie typische Entwicklungsschritte f  r Systeme  in  denen Fehler eine Rolle spielen  in unserem Formalismus durchgef  hrt werden k  nnen     Wir haben dazu einige typische Fehlerklassen formuliert  von denen Systeme betroffen  sein k  nnen  Damit konnte die allgemeine Ausdruckskraft der Modifikationen gut unter   mauert werden  F  r den praktischen Einsatz ist ein Katalog von Fehlerklassen denkbar   der sinnvollerweise in Kombination mit den jeweils entsprechenden Gegenma  nahmen  zur Verf  gung gestellt wird     Fehlerannahmen in einem System k  nnen nicht lokal sein  wenn die Zusammenh  nge  und H  ufigkeiten des Auftretens von Fehlern mehrere Komponenten betreffen  Wir    154 KAPITEL 5  METHODISCHER UMGANG MIT FEHLERN    haben gezeigt  wie sich diese Zusammenh  nge mit bereits existierenden Beschreibungs   mitteln unseres Formalismus    geeignet beschreiben lassen  Es k  nnen virtuelle Kompo   nenten verwendet werden  die nicht implementiert werden  aber eine komponenten   ber   greifende Annahme   ber Fehler beschreiben und in einer formalen Untersuchung in der  gleichen Weise wie reale Komponenten behandelt werden k  nnen     Wir haben gezeigt  dass die Fehlererkennung mit Hilfe von Zustandspr  dikaten forma   lisiert werden kann  und haben Kriterien angegeben  die ein fehlererkennendes Pr  dikat  relativ zu einem definierten Fehler zu erf  llen hat  Wir sind damit also in der Lage  einen  Fehler mit Hilfe von Modifik
289. wickler hier w  hlt  ist unmittelbar von der Anwen   dung abh  ngig  Das neue Verhalten G    muss aber die Forderung erf  llen  dass es sich  nicht vom urspr  nglichen Verhalten unterscheidet  wenn die Eingaben die Annahme A  erf  llen  Gilt also A und G     so muss auch G erf  llt sein     W  hrend das Verhalten bei auftretenden externen Fehlern im urspr  nglichen System   A G  unspezifiziert und damit beliebig ist  reagiert das System  A    G     auf wohlde   finierte Weise  Damit ist im System  A    G     der Nichtdeterminismus reduziert  und  dieser Entwicklungsschritt stellt eine Verhaltensverfeinerung im Sinne von Abschnitt   3 9 1  dar  Folgende  einfach beweisbare  Regel fa  t diese Aussage zusammen     A gt A  A  gt  G    gt  G         A  G      A     G        140 KAPITEL 5  METHODISCHER UMGANG MIT FEHLERN    Bei Black Box Spezifikationen mit expliziten Umgebungsannahmen l    t sich die Sys   temrobustheit also einfach durch eine Verst  rkung des verhaltensbeschreibenden Pr     dikates darstellen  das zus  tzlich eine Aussage   ber das Systemverhalten im Fehlerfalle  macht     Beispiel 5 6 Unterlauf des Puffers  A G Spezifikation     Wir erh  hen die Robustheit des Puffers  der in BeispielBJim Format einer A G Spezifikation  definiert wurde  Dazu wollen wir Eingabestr  me zulassen  in denen Anfragen an den Puffer  geschickt werden  ohne dass vorher ausreichend viele Daten gesendet wurden  In einem solchen  Fall tritt also ein sogenannter Unterlauf des Puffers auf  Da
290. y  number  1101 in Lecture Notes in Computer Science  Springer  1996      30  GrosU  RADU  KETIL STOLEN und MANFRED Broy  A Denotational Model for  Mobile Point to Point Data flow Networks with Channel Sharing  Technischer  Bericht TUM I9724  Technische Universit  t M  nchen  1997      31    HERLIHY  MAURICE and JEANNETTE WING  Specifying graceful degradation in  distributed systems  IEEE Transactions on Parallel and Distributed Systems  2 1    1991      32  HINKEL  URSULA und KATHARINA SPIES  Spezifikationsmethodik f  r mobile  dy   namische FOCUS Netze  In  WOLISZ  A   I  SCHIEFERDECKER und A  RENNOCH   Herausgeber   Formale Beschreibungstechniken f  r verteilte Systeme  GI ITG   Fachgespr  ch 1997  GMD Verlag  St  Augustin   1997      33  HUBER  FRANZ  BERNHARD SCH  TZ  ALEX SCHMIDT  and KATHARINA SPIES   Autofocus     a tool for distributed systems specification  In Proceedings  FTRTFT   96     Formal Techniques in Real Time and Fault Tolerant Systems   number 1135 in Lecture Notes in Computer Science  1996      34  HUBER  FRANZ  BERNHARD SCHATZ und KATHARINA SPIES  AutoFocus   Ein  Werkzeugkonzept zur Beschreibung verteilter Systeme  In  HERZOG  ULRICH   Herausgeber   Formale Beschreibungstechniken fiir verteilte Systeme  Universitat  Erlangen Niirnberg  1996      35  JANOWKSI  TOMASZ  Fault tolerant bisimulations and process transformations   In FTRTFT   94   Formal Techniques in Real Time and Fault Tolerant Systems   number 863 in Lecture Notes in Computer Science  Spr
291. ys   tem nachtr  glich robuster gegen  ber Fehlern in der Systemumgebung zu machen  In  Abschnitt  5 7  wird schlie  lich aufgezeigt  wie Beweise  die f  r ein fehlerfreies System  gef  hrt wurden  an die fehlerbehaftete Version angepasst werden k  nnen     5 1 Beispiele f  r Fehlermodelle    Der Umgang mit Fehlern erfordert eine explizite Formulierung der Fehlerklassen  mit  deren Auftreten man rechnet  Zur Illustration der Ausdrucksm  chtigkeit unserer Be   schreibungstechniken geben wir in diesem Abschnitt die Formalisierung einiger Beispiele    121    122 KAPITEL 5  METHODISCHER UMGANG MIT FEHLERN    an  die in der Literatur als typische Fehlerklassen identifiziert werden  23  27      Wir modellieren die folgenden Fehlerklassen sowohl im Formalismus der Black Box Spe   zifikationen als auch mit Transitionssystemen  Sei dazu eine Spezifikation    bzw  ein  Transitionssystem S mit S    I  O  A  T  T  gegeben  an das wir  bis auf die Annahme  der Existenz von Ausgabekan  len  keine weiteren Anforderungen stellen  Die folgenden  als Modifikationen dargestellten Fehlermodelle k  nnen also in Verbindung mit beliebi   gen Systemen verwendet werden     5 1 1 Crash failure    Bei diesem Fehlermodell kann ein System spontan jegliche Aktivit  ten einstellen und  somit keine Nachrichten mehr auf seinen Ausgabekan  len ausgeben     Im Rahmen der Black Box Spezifikationen stellen wir dies durch eine Modifikation  M    true   r  dar  wobei   r partielle Ausgabestr  me erg  nzt  Wir gehe
292. ystems als solche zu charakterisieren und zu beschreiben   Sowohl f  r Black Box Spezifikationen als auch f  r Transitionssysteme haben wir  in Kapitel 6  gezeigt  wie externe Fehler angegeben werden k  nnen  Dar  ber  hinaus haben wir gezeigt  dass in einem Transitionssystem oft implizite Umge   bungsannahmen enthalten sind  die formal abgeleitet werden k  nnen  Wir haben  dies an einem Beispiel demonstriert     In Kapitel 45  haben wir Eigenschaften der Modifikationen ermittelt und pr  sen   tiert  die in einer Systementwicklung gewinnbringend genutzt werden k  nnen   So haben wir die Kombination von Modifikationen definiert  mit der die erneu   te Modifikation von bereits modifizierten Systemen kompakt ausgedr  ckt werden  kann  Mit Hilfe der Modifikationsfortpflanzung k  nnen in einem zusammengesetz   ten System aus der Modifikation einer Teilkomponente die Auswirkungen auf das  Verhalten des Gesamtsystems konstruktiv ermittelt werden     160    KAPITEL 6  ZUSAMMENFASSUNG UND AUSBLICK    Diese Eigenschaften wurden f  r Modifikationen in den beiden Beschreibungstech   niken der Black Box Spezifikationen und der Transitionssysteme pr  sentiert     Mit der Technik der Verifikationsdiagramme k  nnen Beweise von Black Box Ei   genschaften von Transitionssystemen repr  sentiert werden  Werden die Eigen   schaften oder das Transitionssystem durch Modifikationen ver  ndert  wird ein  bestehendes Verifikationsdiagramm im allgemeinen ung  ltig  Werden aber korre   spondierende Modi
293. ystems ist relativ zur Definition  der Modifikationen  So ist durch die Wahl von M beliebig definierbar  ob ein fehler   induziertes Gesamtverhalten als vorhersehbarer Fehler oder als chaotisches Verhalten  betrachtet wird  W  hlt man beispielsweise als Modifikation die Erg  nzung zu beliebi   gem Verhalten  so kann der Fall Chaos nicht mehr auftreten  und jeder Fehler wird als    4 5  EIGENSCHAFTEN VON MODIFIKATIONEN 103       vorhergesehen    qualifiziert  es liegt also mindestens eine D  mpfung entsprechend  3a   vor  W  hlt man eine neutrale Modifikation zur Definition der Fehler des Gesamtsys   tems  wird jegliche Abweichung vom Normalverhalten als Chaos bewertet  die Klasse  Fehler tritt nicht mehr auf  Es kommen dann zur Bewertung der D  mpfung nur noch  die beiden Klassen  1  und  3b  in Frage  und eine Bewertung von Systemen bez  glich  ihrer Fehlerd  mpfung kann nur noch sehr grob ausfallen  Die Wahl der Modifikationen  mit der verbundenen Einteilung des Verhaltens in die genannten drei Klassen hat also  sorgf  ltig zu erfolgen  um eine sinnvolle Bewertung zu erm  glichen     Die Charakterisierung von Fehlertoleranz entsprechend Definition MMO  aus Abschnitt   4 1 als korrespondierende Modifikationen entspricht den Varianten  3a  und  4  der  Fehlerd  mpfung  Die Abwesenheit von Fehlern bewirkt Normalverhalten  auftretende  Fehler bewirken Fehlverhalten des Gesamtsystems und   ber die Auswirkungen unvor   hergesehener Fehler wird keine Aussage gemacht     Typischerw
294. ystems k  nnen wir einschr  nken  indem wir Kan  le entfernen  oder den Typ von Kan  len reduzieren  Dies kann aber zu Problemen f  hren  wenn dies      wie im Fall der Schnittstellenerweiterung     auf eine Art und Weise geschehen soll  die  das Verhalten unver  ndert l    t     Ein problematischer Fall ist die Beschr  nkung von Ausgabekan  len  Hat ein unmodifi   ziertes System auf eine bestimmte Eingabe mit einer oder mehreren Ausgabenachrich   ten reagiert  die n  n durch die Modifikation der Schnittstelle nicht mehr m  glich sein  k  nnen  ist die Linkstotalit  t der Verhaltensrelation gef  hrdet  Ist das System determi   nistisch  so l    t sich in diesem Fall keine allgemein definierbare  sinnvolle Reaktion des  Systems mehr finden     Doch auch das Entfernen von Eingabekan  len kann zu Komplikationen f  hren  f  r die  sich keine sinnvolle  allgemeine  verhaltensneutrale Anpassung der Verhaltensrelation  finden l    t  War der Fortschritt einer Systemaktivit  t beispielsweise von einem stetigen  Empfang von Nachrichten   ber einen bestimmten Kanal abh  ngig  und wird dieser  Kanal entfernt  so bleibt die Frage offen  wie das Verhalten nun angepa  t werden soll   Soll die Aktivit  t von diesem Kanal unabh  ngig gemacht werden oder soll das System  keinerlei Ausgaben mehr machen     Die Typeinschr  nkung auf den Eingabekan  len stellt dagegen ein unwesentlicheres Pro   blem dar  da die verhaltensbeschreibende Relation vollkommen unver  ndert bleiben  kann  Die Einschr  
295. z y     EXTEND M    gt    d  72 2  d    y      EXTEND M     F  r Transitionssysteme modellieren wir dieses Fehlermodell durch eine Erg  nzung neuer  Transitionen verm  ge der Modifikation M        F  mit            F df   a  2    ye a y ET A Bene   g Vie y     Wir f  gen also diejenigen Transitionen          hinzu  die den bestehenden in T sehr    hnlich sind und sich nur darin unterscheiden  dass sie den Ausgabestrom auf dem  Kanal o unver  ndert lassen  Man erg  nzt also zu jeder Transition  die eine Ausgabe auf  o macht  eine weitere Transition  die sich ebenso verh  lt  aber die Ausgabe auf o nicht  macht  Obige Formalisierung macht diese Intuition nicht unmittelbar deutlich  Hat man  ein konkretes System beispielsweise tabellarisch beschrieben  lassen sich die zus  tzlichen  Transitionen anschaulicher beschreiben  F  r jede Transition  die in der tabellarischen  Darstellung in der Spalte Output einen Ausdruck der Form olexpr hat  erg  nzen wir  dieselbe Transition  aber ohne diese Ausgabeanweisung     5 1 4 Byzantine failure    Bei diesem Fehlermodell verh  lt sich das betroffene System auf v  llig unvorhersehbare  Weise  Da damit jedes Verhalten m  glich wird  bezeichnen man dies auch als chaotisches  Verhalten  Es ist sehr leicht zu formalisieren durch die Modifikationen M    true  true   bzw  M        F   wobei F die Gesamtheit aller Transitionen enth  lt     F  amp  VALx VAL    Bei diesem Fehlermodell liegt keinerlei Regelm    igkeit im Verhalten vor  so dass sich  d
296. zeit  Fehler in der Logik  eines Systems  Softwarefehler oder Defizite in einer Systemarchitektur entstehen  w  hrend der Entwicklung eines Systems  Bedienfehler oder Fehler physikalischer  Natur sind dagegen Fehler  die erst zur Laufzeit in einem System auftreten k  nnen     Dauer Bez  glich der Dauer eines Fehler unterscheidet man permanente Fehler und  tempor  re Fehler  Ein Fehler hei  t permanent  wenn er vom Zeitpunkt seines  ersten Auftretens an dauerhaft und ununterbrochen im System verbleibt  Insbe   sondere sind dauerhafte Fehler  die sogar gleich von Anfang an in einem System  enthalten sind  permanent  Tempor  re Fehler sind nur zeitweilig in einen System  enthalten  Man nennt sie transient  wenn sie nur einmal f  r einen endlichen Zeit   raum auftreten  und intermittierend  wenn sie wiederholt auftreten  aber dennoch  nicht permanent sind     Grund Man kann zwei Gr  nde f  r vorhandene Fehler unterscheiden  Ein Fehler kann  zuf  llig in einem System vorhanden sein oder dort absichtlich aufgenommen wer   den  Ein zuf  lliger Fehler kann sowohl durch Unkenntnis  Fahrl  ssigkeit als auch  Unverm  gen des Entwicklers entstehen  der aus diesen Gr  nden entgegen seiner  Bem  hungen ein fehlerbehaftetes System schafft  Ein absichtlicher Fehler kann  beispielsweise f  r Testzwecke aufgenommen werden  oder aber auch in krimineller  oder b  swilliger Absicht  um einen Schaden zu erzeugen oder Daten aussp  hen zu  k  nnen     Schwere Die Schwere eines Fehlers kann nach vers
297. ziert eine Menge von einzelnen Beweisverpflichtungen   K  nnen diese nachgewiesen werden  so ist ein Diagramm g  ltig und repr  sentiert eine  Gesamtaussage  Verifikationsdiagramme wurden in  14   50  eingef  hrt und in  I  f  r  unser Systemmodell spezialisiert     Wir unterscheiden Diagramme zum Nachweis von Invarianten und Diagramme zum  Nachweis von Fortschrittseigenschaften  Beide haben aber die folgenden Charakteristika  gemeinsam     Ein Verifikationsdiagramm  zu einem Transitionssystem S    I  O  A  T  T   besteht  aus einem gerichteten  zusammenh  ngenden Graphen mit einer endlichen Menge von  Knoten  die mit Pr  dikaten   o          beschriftet sind  Die Pr  dikate sind Zustand   spr  dikate des Transitionssystems  also mit free      C IU OU A  Die Kanten des  Diagramms sind mit  Mengen von  Transitionen beschriftet     Invariantendiagramme    Ein Diagramm zum Nachweis einer Invariante erf  llt zus  tzlich zu den eben genannten  die folgenden Eigenschaften     e Bei Start des Systems S ist mindestens eines der Pr  dikate erf  llt  Die erf  ll   ten Pr  dikate werden  mit einem schwarzen Punkt links in einem Knoten  als  Startzust  nde markiert     Y  ov    Vn    3 8  VERIFIKATION VON EIGENSCHAFTEN 63    e F  r jeden Knoten     und jede Transition r     T gilt genau einer der beiden  folgenden F  lle         Vom Knoten     geht keine mit T beschriftete Kante aus  und es gilt      AT  gt  p     Dieser Fall liegt auch dann vor  wenn 7 im Knoten     nicht schaltbereit i
298. zu verstehen  ist also zu  identifizieren mit einer Abweichung eines  vorliegenden  Ist von einem  erw  nschten   Soll  Eine intensivere Diskussion  Charakterisierung und Klassifizierung des Begriffes  ist  als Grundlage dieser Arbeit  lohnenswert und ist in Kapitel B zu finden     1 3  MOTIVATION 5    1 3 Motivation    Der Begriff des Fehlers spielt in einer Systementwicklung  die mit Hilfe verbreiteter  formaler Hilfsmittel durchgef  hrt wird  kaum eine Rolle  Es mag sogar widerspr  chlich  erscheinen  hier einen Zusammenhang zu sehen  Formale Methoden werden ja gerade  verwendet  um korrekte  also fehlerfreie Systeme zu entwickeln  Diese Sicht ist aber  nur zutreffend  wenn man Fehler im Sinne von Fehlern im Entwicklungsproze   versteht   wie beispielsweise nicht aufgedeckte Inkonsistenzen in Spezifikationen oder inkorrekte  Verfeinerungsschritte  Die Verwendung formaler Methoden dient hier tats  chlich der  Fehlervermeidung     Eine andere Klasse von Fehlern sind aber Fehler  die in einer abstrakten Spezifikati   on nicht auftreten  in einer realen Implementierung aber durchaus  Eine Abstraktion  ist in der Regel mit idealisierenden Annahmen verbunden  die beispielsweise Laufzeit   fehler nicht ber  cksichtigen  die durch M  ngel in der Hardware oder in verwendeten  Komponenten ausgel  st werden und zum Versagen des Systems f  hren k  nnen  Diese  Abstraktion von beispielsweise physikalischen Defiziten ist selbstverst  ndlich erw  nscht   denn sie tr  gt zur Reduktion der
    
Download Pdf Manuals
 
 
    
Related Search
    
Related Contents
Electrolux U04454 User's Manual  Siemens S36IT70SNS User's Manual  User Manual - Polaris Electronics A/S  Life Fitness SSM User's Manual  User Manual - Mobility Hire  Sony 55210mm User's Manual  Fisher & Paykel BI602CTE User's Manual      Copyright © All rights reserved. 
   Failed to retrieve file