DE69919144T2 - Verfahren und gerät zum analysieren von statusbasiertem modell - Google Patents

Verfahren und gerät zum analysieren von statusbasiertem modell Download PDF

Info

Publication number
DE69919144T2
DE69919144T2 DE69919144T DE69919144T DE69919144T2 DE 69919144 T2 DE69919144 T2 DE 69919144T2 DE 69919144 T DE69919144 T DE 69919144T DE 69919144 T DE69919144 T DE 69919144T DE 69919144 T2 DE69919144 T2 DE 69919144T2
Authority
DE
Germany
Prior art keywords
states
machines
state
machine
transitions
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE69919144T
Other languages
English (en)
Other versions
DE69919144D1 (de
Inventor
Henrik Leerberg
Henrik Hulgaard
Bo Jorn LIND-NIELSEN
Reif Henrik ANDERSEN
Guldstrand Kim LARSEN
Jelling Kare KRISTOFFERSEN
Gerd Behrmann
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
IAR Systems AS
Original Assignee
IAR Systems AS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by IAR Systems AS filed Critical IAR Systems AS
Application granted granted Critical
Publication of DE69919144D1 publication Critical patent/DE69919144D1/de
Publication of DE69919144T2 publication Critical patent/DE69919144T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • G06F11/3608Software analysis for verifying properties of programs using formal methods, e.g. model checking, abstract interpretation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Testing And Monitoring For Control Systems (AREA)
  • Testing Of Devices, Machine Parts, Or Other Structures Thereof (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Description

  • BEREICH DER TECHNIK
  • Die Erfindung bezieht sich auf ein Verfahren zur Analyse eines zustandsbasierten Systemmodells mit einem Satz von Maschinen wie in dem unabhängigen Patentanspruch 1 angegeben. Weitere vorteilhafte Ausführungsbeispiele sind in den beiliegenden abhängigen Patentansprüchen angegeben.
  • HINTERGRUND DER ERFINDUNG
  • Wenn die Tatsache berücksichtigt wird, daß viele Produktsegmente des Markts dazu tendieren, ein zunehmendes Ausmaß von eingebetteter Software zu umfassen, und da die Produkte in den Segmenten dazu tendieren, sich mehr und mehr eher nur durch die Leistungsunterschiede der eingebetteten Software als der genutzten Hardware zu unterscheiden, werden die zukünftigen Anforderungen von Softwareentwürfen im allgemeinen mit Bezug auf sowohl Fehlererkennung und -beseitigung als auch kurzfristige Entwicklungstermine beträchtlich variieren.
  • Eines von vielen relevanten Beispielen kann in der Automobilindustrie liegen. Selbst serienmäßig produzierte Autos tendieren dazu, eine zunehmende Anzahl von ausschließlich zugeordneten Mikroprozessoren zu umfassen. Die Mikroprozessoren können zum Beispiel zum Steuern von ABS, Kraftstoffeinspritzung, Lichtsteuerung, verschiedenen Arten von Überwachung, Wärmesteuerung, Sicherheitssystemen usw. ausschließlich zugeordnet sein, und viele der verschiedenen Untersysteme müssen häufig durch ein gemeinsames Protokoll gesteuert werden.
  • Es ist offensichtlich, daß das umfangreiche Auftreten von softwaregesteuerten Einheiten zunehmende Schwierigkeiten für die Systementwerfer verursachen wird, da es schwierig sein kann, jeden Aspekt des möglichen Zustands jeder Einheit zu überblicken, und selbstverständlich kann es sogar noch komplizierter sein, die Synergie zwischen all den genutzten Untersystemen zu verfolgen. Eine weitere Schwierigkeit, die erwähnt werden sollte, besteht darin, daß die meisten der Untersysteme durch verschiedene Entwickler oder Gruppen von derartigen Entwicklern entworfen werden und daß die Schnittstellen zwischen derartigen Untersystemen schwer zu steuern sein können, da keine wirksamen Hilfsmittel für die Entwickler für die nötigen Analysen derartiger umfangreicher Systeme zusammen oder selbst in jeder einzelnen Einheit bereitgestellt werden können.
  • Dies kann kostspielige und entscheidende Verzögerungen in bezug auf die Dauer der Produktentwicklung und -freigabe verursachen. Es ist sogar noch entscheidender, daß einige Produkte sogar mit inhärenten versteckten Fehlern auf den Markt gebracht werden können, die unter bestimmten unbekannten Bedingungen ausgelöst werden und ans Licht kommen können.
  • Dieses Problem ist selbstverständlich bei sicherheitsentscheidenden Systemen wirklich ernst, bei denen ein Defekt oder Fehler selbst eine Verletzung bei durch einen derartigen Defekt betroffenen Personen verursachen kann.
  • Ein Weg zum Testen derartiger Typen von Produkten besteht darin, den logischen Entwurf vor der Herstellung einer Vorrichtung durch eine symbolische Modellüberprüfung zu überprüfen. Die Technik hat sich als für Analysen und die Verifikation von Hardwaresystemen sehr effizient herausgestellt. Es ist jedoch nicht klar gewesen, ob die Modellüberprüfung ein wirksames Hilfsmittel für andere Typen von gleichzeitigen Systemen wie zum Beispiel Softwaresysteme ist.
  • Ein Grund dafür, warum die symbolische Modellüberprüfung nicht genauso effizient sein kann, besteht darin, daß Softwaresysteme dazu tendieren, sowohl größer als auch weniger regelmäßig strukturiert als Hardware zu sein. Beispielsweise sind viele der für das Verifizieren großer Hardwaresysteme berichteten Ergebnisse für lineare Strukturen wie Stapel oder Pipelines gewesen, für die es bekannt ist, daß die Größe der Übergangsbeziehung bei einer Darstellung als ein sogenanntes ROBDD, reduziertes geordnetes binäres Entscheidungsdiagramm (Reduced Ordered Binary Decision Diagram), mit der Größe des Systems linear wächst.
  • Ein weiterer Ansatz dazu ist in dem US-Patent Nr. 5,465,216 beschrieben, in dem ein Verfahren zur automatischen Entwurfsverifikation beschrieben ist. Das beschriebene Verfahren akzeptiert grundsätzlich die Tatsache, daß die formale Verifikation an einem Defizit von "das Zustandsexplosionsproblem" leidet, und folgert überdies, daß die formale Verifikation von sehr großen Systemen jenseits der Fähigkeiten der derzeitigen formalen Verifikationstechniken liegt. Folglich beschreibt das vorstehend angeführte Patent einen Weg des Zerlegens und Reduzierens des Systemmodells statt des Befassens mit dem Verifikationsverfahren. Deshalb besteht ein Nachteil des beschriebenen Verfahrens darin, daß die möglicherweise erhältlichen Ergebnisse nur teilweise und nicht erschöpfend sein werden.
  • Eine auf den vorstehend angeführten ROBDD basierende vielversprechendere Technik, die ebenfalls die Struktur des Systems ausnutzt, ist in W. Lee et al., Tearing based automatic abstraction for CTL model checking, 1996 IEEE/ACM International Conference on Computer-Aided Design, Seiten 76-81, San Jose, CA, 1996 IEEE Comput. Soc. Press dargestellt. Diese Technik verwendet eine aufgeteilte Übergangsbeziehung, und eine gierige Heuristik (greedy heuristic) wird zum Auswählen von Untersätzen der Übergangsbeziehung verwendet. Für jeden gewählten Untersatz wird eine vollständige Festpunktiteration ausgeführt. Falls die Formel nach dieser Iteration nicht bestätigt werden kann, wird ein größerer Untersatz gewählt. Im Falle einer ungültigen Formel endet der Algorithmus nur, wenn die volle Übergangsbeziehung aufgebaut worden ist (oder Speicher oder Zeit aufgebraucht worden ist). Ein Nachteil der Technik besteht darin, daß sie eine gierige Strategie (greedy strategy) einschließlich einer Festpunktiteration für jede der verbleibenden Maschinen verwendet. Falls das System nur einen einzigen Anfangszustand aufweist, wie es bei eingebetteten Softwaresystemen typisch ist, reduziert sich die gierige Strategie auf ein Auswählen einer beliebigen Maschine, so daß unwesentliche Festpunktiterationen eingeschlossen sind.
  • Die vorliegende Erfindung erfüllt die Anforderung sowohl einer formalen Verifikation als auch einer Verwendung eines nicht reduzierten Systemmodells und stellt die Möglichkeit zum Ausführen von "Crashtests" des theoretischen Modells selbst bei sehr umfangreichen zustandsbasierten Systemmodellen bereit. Außerdem können Analysen und eine Verifikation der Modelle bei nicht reduzierten Modellen mit einer viel höheren Rate als bei Analysen und Verifikationshilfsmitteln gemäß dem Stand der Technik erreicht werden.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Wenn das Verfahren zur Analyse eines zustandsbasierten Systemmodells einen Satz von Maschinen (M1, .., Mn) umfaßt, wobei die Maschinen jeweils zumindest einen möglichen Zustand (pS1Mi, ..., pSkMi) umfassen, wobei jede Maschine sich zu einer gegebenen Zeit in einem ihrer umfaßten Zustände befindet, wobei das dynamische Verhalten der Maschinen (M1, .., Mn) durch vordefinierte Übergänge zwischen den Zuständen jeder Maschine (M1, .., Mn) und vordefinierte Bedingungen (C) für die Übergänge definiert wird,
    Auswählen eines Zielsatzes von Zuständen (A) in einem Untersatz von Maschinen (MI),
    Wiederholen von Iterationsschritten, bis ein
    Beendungskriterium erfüllt ist;
    wobei die Iterationsschritte die Schritte umfassen:
    • (a) Auswählen eines Satzes von Zuständen (X), die Übergänge in den Zielsatz (A) aufweisen, wobei die Übergänge, wenn überhaupt, Bedingungen (C) aufweisen, die sich nur auf Maschinen in dem Satz von Maschinen (MI) beziehen,
    • (b) Erweitern des Zielsatzes (A), indem der Satz von Zuständen (X) in den Zielsatz (A) aufgenommen wird,
    • (c) Erweitern des Untersatzes von Maschinen (MI), indem ein weiterer Untersatz von Maschinen aufgenommen wird, während der in dem Schritt des Erweiterns des Zielsatzes (A) aufgebaute Zielsatz (A) beibehalten wird, ist es möglich, eine sehr schnelle Analyse eines zustandsbasierten Systemmodells zu erhalten.
  • Somit befaßt sich die Erfindung gemäß dem Vorstehenden mit einer dynamischen Erweiterung eines gegebenen untersuchten Satzes von möglichen Zuständen A in einem zustandsbasierten Systemmodell mit den Zuständen in der derzeit untersuchten Maschine oder dem derzeit untersuchten Satz von Maschinen. Wenn die möglichen Zustände A nicht mehr erweitert werden können, das heißt alle Zustände in den untersuchten Maschinen möglich sind, oder wenn der Rest der Zustände nur möglich ist, falls bestimmte Bedingungen in anderen Maschinen erfüllt sind, wird die Anzahl von untersuchten Maschinen erhöht, und der Satz von möglichen Zuständen wird erweitert. Dieser iterative Prozeß kann sich fortsetzen, bis bestimmte Ergebnisse erhalten werden. Ein gewünschtes Ergebnis könnte zum Beispiel eine Verifikation, daß ein gegebener Maschinenzustand in den Satz von möglichen Anfangszuständen A gebracht werden kann, sein.
  • Im einzelnen stellt die Erfindung ein genaues Ergebnis bereit, wenn eine sogenannte Erreichbarkeitsüberprüfung ausgeführt wird, das heißt wenn verifiziert wird, daß ein Satz von Anfangsmaschinenzuständen in eine bestimmte gewünschte oder nicht gewünschte Lage gebracht werden kann.
  • Experimentelle Ergebnisse haben gezeigt, daß typische sogenannte Erreichbarkeitsüberprüfungen gemäß der Erfindung beträchtlich schneller als Verfahren gemäß dem Stand der Technik ausgeführt werden können.
  • Außerdem ist es gemäß der Erfindung nun möglich, Systemmodelle mit einer extrem großen Anzahl von Maschinen zu analysieren und zu verifizieren, da keine volle Berechnung von allen möglichen globalen Zustandsvektoren bestimmt werden muß. Dieser wichtige Aspekt verstärkt die Möglichkeit zum Erzeugen sehr großer zustandsbasierter Systeme, da nun ein wahres Modell des Systems begründet und vollständig analysiert werden kann, bevor das Produkt auf den Markt gebracht wird, so daß das Risiko des Bringens von Produkten mit inhärenten versteckten Fehlern auf den Markt beseitigt wird.
  • Da viele Produktsegmente des Markts dazu tendieren, ein zunehmendes Ausmaß von eingebetteter Software zu umfassen, und da die Produkte in den Segmenten dazu tendieren, sich mehr und mehr eher nur durch die Leistungsunterschiede der eingebetteten Software als der genutzten Hardware zu unterscheiden, werden die zukünftigen Anforderungen von Softwareentwürfen im allgemeinen mit Bezug auf sowohl die vorstehend angeführte Fehlererkennung und -beseitigung als auch die kurzfristigen Entwicklungstermine sehr groß sein.
  • Die Erfindung entspricht der Anforderung einer derartigen Tendenz, da die Erfindung die Möglichkeit zum Ausführen von "Crashtests" des theoretischen Modells selbst bei sehr umfangreichen zustandsbasierten Systemmodellen bereitstellt und außerdem eine Analyse und Verifikation der Modelle bei nicht reduzierten Modellen mit einer viel höheren Rate als bei Analysen und Verifikationshilfsmitteln gemäß dem Stand der Technik erreicht werden können.
  • Es sollte beachtet werden, daß der Typ von begründeten Testkriterien in dem Bereich der Erfindung weit variieren kann. Beispiele dafür könnten eine Verifikation, eine Angabe eines potentiellen toten Punkts oder falls nötig eine spezifische und genaue Erfassung eines derartigen toten Punkts sein.
  • Ein weiteres vorteilhaftes Merkmal der Erfindung besteht darin, daß die grundlegende zusammensetzende (compositional) Struktur des Erweiterns des vorhergehenden Suchergebnisses Schritt für Schritt es ermöglicht, vorher erhaltene Analyseergebnisse wiederzuverwenden. Somit wird selbst dann, wenn eine vollständige Untersuchung aller Maschinen in einem Systemmodell nötig werden würde, viel gewonnen, da während den laufenden Analysen keine unnötigen Berechnungen ausgeführt werden müssen.
  • Wegen einer Anerkennung einer zentralen Monotonität können Ergebnisse des vorher berechneten Abschnitts des Zustandsraums wiederverwendet werden, statt jedesmal, wenn eine neue Maschine hinzugefügt wird, ganz von vorne anfangen zu müssen wie bei bekannten Techniken.
  • Selbst wenn alle Maschinen benötigt werden, haben Experimente gezeigt, daß das erfinderische Verfahren zur Aufnahme von Maschinen einzeln, das heißt Ausnutzung der Monotonitätseigenschaft, schneller ist als ein Ausführen einer sogenannten herkömmlichen Festpunktiteration unter Verwendung einer aufgeteilten Übergangsbeziehung und einer frühen Variablenquantifizierung.
  • In Situationen, in denen ein Systemmodell hinsichtlich der Erreichbarkeit mit Bezug auf eine große Folge von Zielsätzen, (A1), .., (An), analysiert wird, kann es für die späteren Erreichbarkeitsprobleme vorteilhaft sein, bereits berechnete Ergebnisse von den früheren Problemen wiederzuverwenden. Insbesondere kann bei der Rückwärtserweiterung von dem Zielsatz (Ai) auf jeder Stufe eine frühe positive Beendung ausgeführt werden, wobei die derzeitige Erweiterung des Zielsatzes (Ai) einen vorhergehenden Zielsatz (Aj) (j<i), für den bereits ein positives Ergebnis erhalten worden ist, vollständig umfaßt.
  • Es sollte betont werden, daß die Erfindung keine Beschränkungen mit Bezug auf den Weg zum Definieren der System-"Komponenten" aufweist. Die Erfindung ist zum Beispiel nicht auf einfache sogenannte Systemmodelle mit flachem Zustand (flat state system models) beschränkt. Gemäß der Erfindung kann ein System zum Beispiel als ein System mit hierarchischem Zustandsereignis (hierarchical state event system), das hierarchische Maschinen und/oder hierarchische Zustände umfaßt, definiert sein. Dies bedenkend wird die Erfindung vorzugsweise in einem flachen Systemmodell vorteilhaft ausgeführt, was bedeutet, daß hierarchische Systeme vorzugsweise in flache Modelle transformiert werden sollten, bevor eine Analyse gemäß der Erfindung initiiert wird.
  • Gemäß der Erfindung können Zustände in einem Systemmodell zum Beispiel diskrete Beobachtungen, Werte von Programmiervariablen oder Registern oder Zwischenspeichern einer Folgeschaltung, Beobachtungen von kontinuierlichen und zeitabhängigen Funktionen wie beispielsweise Temperatur, Zeit, Geschwindigkeit, Höhe, Position umfassen. Außerdem können wie vorstehend angeführt Zustände selbst Systemmodelle sein, wobei sogenannte hierarchische Systemmodelle bereitgestellt werden.
  • Abhängigkeiten werden von Bedingungen bei Übergängen auf andere Maschinen in dem Systemmodell abgeleitet.
  • Bedingungen bei Übergängen sind entweder Bedingungen bei dem derzeitigen Zustand von anderen Maschinen in dem Systemmodell oder Bedingungen bei dem derzeitigen Zustand der Umgebung des Systemmodells.
  • Außerdem sollte es beachtet werden, daß Variationen der Erweiterungskriterien oder Beendungsbedingungen in dem Bereich der Erfindung anwendbar sein können.
  • Wenn der Schritt des Erweiterns (MI) mit zumindest einem Untersatz der Maschinen (M1, .., Mn) eine Expansion von (MI) mit zumindest einem Untersatz von Maschinen, von dem das vorhergehende (MI) abhängt, umfaßt, ist eine sehr vorteilhafte Erweiterung von MI erhalten worden.
  • Die Erfindung führt eine Analyse eines gegebenen Systemmodells aus, indem sie nur die für den derzeitigen Zweck nötigen Maschinen integriert, das heißt nur die Maschinen, von denen die derzeitigen bewerteten Übergänge abhängen.
  • Somit sollte gemäß einem sehr bevorzugten Ausführungsbeispiel der Erfindung die Erweiterung des derzeitigen untersuchten MI mit Maschinen außerhalb von MI ausgeführt werden, wobei berücksichtigt wird, daß Maschinen ohne Abhängigkeiten von dem nicht erweiterten Satz von Maschinen MI derzeit keine weiteren Informationen bereitstellen würden. Somit wird gemäß dem vorstehenden bevorzugten Ausführungsbeispiel der Erfindung die Erweiterung des untersuchten Satzes von Maschinen MI mit nur den unmittelbar nötigen Maschinen optimiert. Da viele Analysen von Anwendungen des wirklichen Lebens ohne eine Bewertung einer beträchtlichen Menge von Maschinen in einem Systemmodell ausgeführt werden können, kann ein extrem wertvolles Analyseverfahren erhalten werden.
  • Es wird erkannt, daß Analysen von umfangreichen Systemmodellen noch mehr Nutzen aus diesem wichtigen Merkmal ziehen werden, da der nötige bewertete Raum des Systemmodells beträchtlich reduziert werden kann und eine große Anzahl von Bewertungen vermieden werden kann.
  • Ein wichtiger Aspekt der vorstehend angeführten dynamischen laufenden Erweiterung besteht darin, daß bei einer Analyse sehr umfangreicher Systemmodelle nur dann ein verwendbares Ergebnis erhalten werden kann, wenn die Abhängigkeiten berücksichtigt werden, wie es vorstehend beschrieben ist. Pilottests haben tatsächlich gezeigt, daß beinahe unmögliche Verifikationen bei Systemen gemäß dem Stand der Technik nun unter Verwendung bescheidener Betriebsmittel auf einem Standard-PC ausgeführt werden können.
  • Ein weiterer wichtiger Aspekt der Erfindung besteht darin, daß die Schwierigkeiten des Analysierens reduzierter zustandsbasierter Systemmodelle beseitigt oder deutlich reduziert werden können, da sich die Erfindung mit nicht reduzierten Systemmodellen befassen kann. Es sollte beachtet werden, daß die Erfindung als ein dynamisch reduziertes Systemmodell betrachtet werden kann, wobei nur die absolut nötigen Systemmodellmaschinen dynamisch bestimmt und untersucht werden. Somit zieht die Erfindung Nutzen aus dem empirisch gezeigten allgemeinen Verhalten von zustandsbasierten Systemmodellen, nämlich daß mögliche Analysen oder Verifikationen des wirklichen Lebens nur einen Teil aller Systemmodellmaschinen beeinflussen werden.
  • Grundsätzlich sollte es beachtet werden, daß Übergänge zwischen Maschinenzuständen in einer gegebenen Maschine nur durch die mit den spezifischen Übergängen verbundenen Abhängigkeiten beschränkt sind. Folglich erfordert das gegenwärtige Verfahren gemäß der Erfindung, daß ein Übergang ohne Abhängigkeiten durch ein Ereignis zu einer gegebenen Zeit ausgelöst werden kann.
  • Es ist offensichtlich, daß dann, wenn tatsächlich Bedingungen bei den vorstehend angeführten Ereignissen vorhanden sind, sie falls nötig in das Systemmodell integriert werden sollten.
  • Das vorstehend angeführte vorteilhafte Ausführungsbeispiel der Erfindung zieht Nutzen aus der Struktur eines zustandsbasierten Systemmodells, da es sich mit der Tatsache befaßt, daß Übergänge grundsätzlich in zwei verschiedenen Weisen gekennzeichnet sind. Einige Übergänge können unbedingt gezündet werden, da sie nur von bestimmten bekannten und immer möglichen Ereignissen abhängen können, während die anderen Übergänge durch bestimmte Bedingungen oder Abhängigkeiten zu anderen Maschinen gebunden sind.
  • Somit befaßt sich die Erfindung gemäß dem vorstehenden Ausführungsbeispiel mit einer dynamischen Erweiterung eines gegebenen untersuchten Satzes von möglichen Zuständen A in einem zustandsbasierten Systemmodell mit den Zuständen in der derzeit untersuchten Maschine oder dem derzeit untersuchten Satz von Maschinen. Wenn die möglichen Zustände A nicht mehr erweitert werden können, das heißt alle Zustände in den untersuchten Maschinen möglich sind, oder wenn der Rest der Zustände nur möglich ist, falls bestimmte Bedingungen in anderen Maschinen erfüllt sind, wird die Anzahl von untersuchten Maschinen erhöht, und der Satz von möglichen Zuständen wird erweitert. Gemäß dem vorliegenden Ausführungsbeispiel sollte es beachtet werden, daß die Erweiterung nur die Maschinen oder einige der Maschinen betrifft, die eine Art von Relevanz für die derzeit untersuchte Maschine aufweisen, das heißt falls sie Abhängigkeiten zu den Übergängen in der derzeit untersuchten Maschine aufweisen. Dieser iterative Prozeß kann sich fortsetzen, bis ein bestimmtes Ergebnis erhalten wird. Ein gewünschtes Ergebnis könnte zum Beispiel eine Verifikation, daß ein gegebener Maschinenzustand in den Satz von möglichen Zuständen A gebracht werden kann, sein.
  • Es ist offensichtlich, daß das vorstehende bevorzugte Ausführungsbeispiel die Dauer der Iterationen deutlich reduzieren kann, da das Verfahren sozusagen den Teil des Systemmodells dynamisch vernachlässigt, der keine relevanten Informationen für die derzeit untersuchten Übergänge und/oder Maschinen umfaßt.
  • Die vorliegende Erfindung stellt eine Technik bereit, die die Leistung von zum Beispiel einer symbolischen Modellüberprüfung bei unter Verwendung eines Zustands-/Ereignismodells oder anderer zustandsbasierter Modelle wie beispielsweise Zustandsdiagrammen modellierten eingebetteten reaktiven Systemen deutlich verbessert.
  • Die Erfindung verbessert somit die Bequemlichkeit des Nutzens von zustandsbasierten Modellen, zum Beispiel des Steuerabschnitts von eingebetteten reaktiven Systemen einschließlich kleinerer Systeme wie beispielsweise Mobiltelefone, Hi-Fi-Ausrüstung und Tempomaten für Autos und größerer Systeme wie beispielsweise Zugsimulatoren, Flugsteuersysteme, Telefon- und Kommunikationsprotokolle. Das Verfahren gemäß der Erfindung kann somit zum Beispiel in kommerziellen Hilfsmitteln zum Helfen bei dem Entwickeln von eingebetteter reaktiver Software verwendet werden, indem es dem Entwerfer ermöglicht wird, ein zustandsbasiertes Modell aufzubauen und es zu analysieren, indem es entweder simuliert wird oder indem eine Konsistenzüberprüfung ausgeführt wird. Das Hilfsmittel erzeugt automatisch den Code für die Hardware des eingebetteten Systems. Die Konsistenzüberprüfung ist tatsächlich ein Verifikationshilfsmittel, das hinsichtlich eines Spektrums von Eigenschaften überprüft, das ein zustandsbasiertes Modell aufweisen sollte. Einige der Überprüfungen müssen bestanden werden, damit der erzeugte Code richtig ist, zum Beispiel ist es entscheidend, daß das Model deterministisch ist. Andere Überprüfungen werden als Warnungen ausgegeben, daß Entwurfsfehler, wie beispielsweise Übergänge, die nie gezündet werden können, vorhanden sein könnten.
  • Zustandsbasierte Modelle können extrem groß sein, und anders als bei der herkömmlichen Modellüberprüfung ist die Anzahl von Überprüfungen zumindest in der Größe des Modells linear. Die vorliegende Erfindung berichtet Ergebnisse für Modelle mit bis zu 1421 gleichzeitigen Zustandsmaschinen, und selbst viel größere Systeme können leicht gehandhabt werden. Für Systeme dieser Größe versagen herkömmliche Techniken der symbolischen Modellüberprüfung, selbst wenn eine aufgeteilte Übergangsbeziehung und Rückwärtsiteration verwendet werden.
  • Die vorliegende Erfindung verwendet eine zusammensetzende Technik, die anfänglich nur einige Maschinen bei dem Bestimmen der Erfüllung der Verifikationsaufgabe berücksichtigt und falls nötig die Anzahl von berücksichtigten Maschinen nach und nach erhöht. Die berücksichtigten Maschinen können unter Verwendung einer Abhängigkeitsanalyse der Struktur des Systems vorteilhaft bestimmt werden.
  • Es ist eine Anzahl von großen zustandsbasierten Modellen von industriellen Anwendungen verifiziert worden, und selbst das vorstehend angeführte Modell mit 1421 gleichzeitigen Maschinen kann mit bescheidenen Betriebsmitteln verifiziert werden. Verglichen mit bekannten Analysehilfsmitteln verbessern sich die Ergebnisse bei der Effizienz des Überprüfens der kleineren Fälle und nimmt die Größe von Systemen, die verifiziert werden können, drastisch zu.
  • Wenn die Analyse nach dem Schritt des Erweiterns des Zielsatzes (A) mit einem Satz von Zuständen, der unabhängig von nicht in (MI) enthaltenen Maschinen in den vorhergehenden Zielsatz (A) gebracht werden kann, negativ beendet wird, falls keine der Maschinen in (MI) von Maschinen außerhalb von (MI) abhängt, wird eine gültige Schätzung des Systemverhaltens erhalten, da das Verfahren gemäß der Erfindung bereitgestellt worden ist, weil es bei einer Beendung, wenn keine der Maschinen in (MI) von Maschinen außerhalb von MI abhängen, offensichtlich nachgewiesen werden kann, daß die Testkriterien nicht erreicht werden können. Somit haben die Entwerfer von selbst sehr umfangreichen zustandsbasierten Systemen die Möglichkeit, potentielle Laufzeitprobleme vorherzusagen.
  • Es sollte beachtet werden, daß die negative Beendung selbstverständlich bei vielen Anwendungen absolut nötig sein wird, da eine exakte negative Angabe häufig von großem Wert sein wird. Bei vielen Typen von Analysen ist diese negative Angabe tatsächlich das, wonach der Benutzer sucht. Folglich wird es erkannt, daß die negative automatische Beendung selbst von großer Bedeutung sein wird, und das Verfahren der Erfindung wird weit wirksamer und benutzerfreundlicher sein, wenn eine Art von automatischer Beendung in dem Verfahren integriert ist, wenn weitere Iterationen bedeutungslos sind. Es sollte dennoch betont werden, daß andere als diese optimalen Haltekriterien verwendet werden können.
  • Demgegenüber weist die Erfindung die Möglichkeit auf, eine exakte Kenntnis bereitzustellen, wenn über eine positive Kontrolle von nicht gewünschte Zustände oder Kombinationen von Zuständen darstellenden Testkriterien gesprochen wird. Folglich kann es dann, wenn das Verfahren gemäß der Erfindung nachweist, daß ein bestimmter Zustand oder eine Kombination von Zuständen unter bestimmten Bedingungen nicht erhalten werden kann, offensichtlich angenommen werden, daß diese Situation in einer Situation des wirklichen Lebens nicht auftreten wird, selbst wenn die Erfindung während der dynamischen Testsituation tatsächlich nur einen Teil des Systemmodells nutzt. Dieses Merkmal ist sehr wichtig, wenn über ein breites Spektrum von Prozeßanwendungen gesprochen wird, bei denen ein Fehler, das heißt ein nicht gewünschter Zustand, einen ernsten Schaden oder eine ernste Verwirrung verursachen kann.
  • Es sollte somit betont werden, daß eine negative sowie eine positive Beendung der Analyse gemäß der Erfindung mit Sicherheit bestimmt werden kann, wobei es sich um ein sehr nützliches und wertvolles Merkmal handelt, wenn Tests bei Systemmodellen ausgeführt werden. Die Erfindung stellt sowohl eine Anwendung mit sehr hoher Geschwindigkeit als auch genaue und zuverlässige Ergebnisse bereit.
  • Die der positiven oder negativen Beendung folgenden Informationen können somit angepaßt werden, um eine gewünschte Testbedingung darzustellen.
  • Ein anderer Aspekt des vorliegenden Ausführungsbeispieles der Erfindung besteht darin, daß optimale Beendungskriterien bei einer großen Anzahl von Anwendungen von großer Bedeutung sein können, da unnötige Iterationen falls möglich vermieden werden sollten. Die vorstehend angeführten positiven und negativen Haltekriterien stellen sicher, daß alle nötigen Iterationen, aber nicht mehr als die nötigen Iterationen mit Bezug auf eine Erreichbarkeitsanalyse berechnet werden. Ein Fachmann wird dazu in der Lage sein, das Verfahren der Erfindung an andere gewünschte Analysezwecke anzupassen.
  • Wenn eine visuelle oder akustische Angabe für einen Benutzer bereitgestellt wird, falls nach dem Schritt des Erweiterns des Zielsatzes (A) mit einem Satz von Zuständen, die unabhängig von nicht in (MI) enthaltenen Maschinen in den vorhergehenden Zielsatz (A) gebracht werden können, keine der Maschinen in (MI) von Maschinen außerhalb von (MI) abhängen, wird eine bequeme Umgebung der für einen Benutzer bereitgestellten Informationen erhalten.
  • Es sollte beachtet werden, daß eine benutzerfreundliche Schnittstelle von noch größerer Bedeutung ist, wenn ein schneller interaktiver Prozeß des Analysierens erwartet werden kann. Es kann nicht nur der Prozeß des Analysierens eines gegebenen Systemmodells beschleunigt werden, sondern die ganze Entwurfsprozedur eines zustandsbasierten Systemmodells kann beträchtlich verkürzt werden.
  • Wenn die Analyse bei einer Anfrage von dem Benutzer beendet wird, wird eine weitere vorteilhafte Benutzerschnittstelle erhalten. Eine derartige Art von Schnittstelle kann zum Beispiel vorteilhaft sein, wenn umfangreiche Systeme gehandhabt werden. Wieder sollte es wie vorstehend angeführt betont werden, daß der Bedarf an einer benutzerfreundlichen Schnittstelle mit der Leistungsfähigkeit des Analyseverfahrens wächst.
  • Wenn die Abhängigkeiten (D) als ein gerichteter Graph dargestellt werden, wird ein weiteres vorteilhaftes Ausführungsbeispiel erreicht.
  • Eine Darstellung als ein gerichteter Graph, der in sich selbst eine allgemein bekannte Datenstruktur zum Darstellen von Abhängigkeiten zwischen beliebigen Objekten ist, ist ein sehr bequemer und optimaler Ansatz, der für ein breites Spektrum von Analyseanwendungen verwendbar ist.
  • Wenn die zunehmenden Sätze von Maschinen (MI) durch einen Breitendurchlauf (breadth-first traversal) des Bedingungen darstellenden gerichteten Graphen bestimmt werden, wird ein weiteres vorteilhaftes Ausführungsbeispiel erreicht, da er zu einem geschlossenen MI mit minimaler Abhängigkeit und somit zu einer schnellen Beendung führt.
  • Dies ist der Tatsache zuzuschreiben, daß er nur die Maschinen enthält, von denen MI unmittelbar abhängt.
  • Außerdem ist dieses Verfahren sehr effizient berechenbar.
  • Wenn die Sätze von Maschinenzuständen als reduzierte geordnete binäre Entscheidungsdiagramme (ROBDD beziehungsweise Reduced Ordered Binary Decision Diagrams) dargestellt werden und die Operationen bei ihnen als effiziente Operationen bei reduzierten geordneten binären Entscheidungsdiagrammen (ROBDD) ausgeführt werden, wird ein weiteres vorteilhaftes Ausführungsbeispiel gemäß der Erfindung erhalten.
  • Somit können das Bild einer Übergangsbeziehung bei einem Satz von Zuständen berechnende effiziente Operationen erhalten werden. Es sollte beachtet werden, daß eine Berechnung des Bilds einer Übergangsbeziehung es erfordert, daß die Übergangsbeziehung als ein einzelnes ROBDD dargestellt wird, was gelegentlich einer großen Größe der Darstellung zuzuschreibende Probleme verursachen kann. In diesen Fällen kann die Übergangsbeziehung als eine Trennung oder Verbindung von als eine aufgeteilte Übergangsbeziehung bezeichneten kleineren Beziehungen effizienter dargestellt werden.
  • Wenn die Übergangsbeziehung als ein aufgeteilter Übergang von reduzierten geordneten binären Entscheidungsdiagrammen (ROBDD) dargestellt wird und der Satz von Zuständen (A) durch eine iterative Festpunktiteration dynamisch berechnet wird, wird ein durch in dem Fachgebiet allgemein bekannte Techniken realisierter einfacher und effizienter Betrieb der Erfindung erhalten.
  • Wenn das dynamische Verhalten der Maschinen (M1, .., Mn) durch vordefinierte Übergänge zwischen den Zuständen jeder Maschine (M1, .., Mn) und Abhängigkeiten (D) zwischen den Maschinen (M1, .., Mn) definiert wird,
    für jede Maschine (M1, .., Mi, .., Mn)
    ein Untersatz von Maschinen (MI) derart initiiert wird, daß er die derzeit analysierte Maschine (Mi) umfaßt
    ein Satz (Ai) von Lebendzuständen (Ai) initiiert wird, wobei die Lebendzustände die Maschinenzustände der derzeit analysierten Maschine (Mi) sind, die unabhängig von anderen Maschinen ihren Zustand zu anderen möglichen Zuständen (pS1Mi, ..., pSkMi) der Maschine ändern können die folgenden Schritte initiiert werden, bis die Analyse geendet hat oder falls (MI) alle Maschinen (M1, .., Mn) umfaßt
    der Satz von Lebendzuständen (Ai) wird mit einem Satz von Zuständen, die über Übergänge unabhängig von nicht in (MI) enthaltenen Maschinen in den vorhergehenden Satz von Lebendzuständen (Ai) gebracht werden können,
    und/oder einem Satz von Zuständen, die über Übergänge unabhängig von nicht in (MI) enthaltenen Maschinen zum Ändern eines Zustands von (Mi) gebracht werden können, erweitert
    die Analyse wird positiv beendet, falls (Ai) alle möglichen Maschinenzustände in der Maschine (Mi) umfaßt, andernfalls wird (MI) mit zumindest einem Untersatz der Maschinen erweitert, wird ein weiteres vorteilhaftes Ausführungsbeispiel erreicht.
  • Wie es zu verstehen ist, stellt das vorliegende Ausführungsbeispiel der Erfindung die Möglichkeit des Erfassens aller globalen Zustände, das heißt eines Satzes von Maschinenzuständen für jede Maschine, die die Möglichkeit zum Ändern eines Zustands unter bestimmten möglichen Bedingungen aufweisen kann, bereit. Derartige Zustände werden gemäß der vorliegenden Terminologie als Lebendzustände betrachtet.
  • Es ist außerdem offensichtlich, daß eine Bestimmung aller Lebendzustände jeder Maschine eine Angabe möglicher inhärenter Fallen bieten kann, da ein Maschinenzustand, für den eine gegebene Maschine keine möglichen Übergänge zu anderen Zuständen aufweist, ein potentiell gefährlicher Zustand oder sogenannter potentieller Totzustand sein kann.
  • Es sollte dennoch betont werden, daß ein potentieller Totzustand nicht notwendigerweise einen nicht gewünschten oder illegalen Zustand darstellt. Der bestimmte Zustand oder die bestimmten Zustände dürfen nur entscheidend sein, falls sie von bekannten oder gegebenen Anfangssystembedingungen aus erreicht werden können.
  • Wenn die Erfindung überdies die Schritte jeder Maschine (Mi) mit einen Anfangssatz von Maschinenzuständen (F) der Maschine (M1, .., Mn) initiierenden potentiellen Totmaschinenzuständen (Adi)
    Initiieren eines Zielsatzes von die potentiellen Totmaschinenzustände von Maschinen (MI) darstellenden Maschinenzuständen (Adi), und
    Wiederholen der folgenden Schritte, bis das Analysieren geendet hat und/oder falls der Untersatz von Maschinen (MI) alle die Maschinen (M1, .., Mn) umfaßt
    Erweitern des Zielsatzes (Adi) mit einem Satz von Zuständen, die über Übergänge unabhängig von nicht in (MI) enthaltenen Maschinen in den vorhergehenden Zielsatz (Adi) gebracht werden können,
    wenn (Adi) zumindest einen der Zustände in dem Anfangssatz von Zuständen (F) umfaßt, dann positiv beenden,
    andernfalls den Untersatz von Maschinen (MI) mit zumindest einem Untersatz der Maschinen (M1, .., Mn) erweitern,
    umfaßt, wird weiteres wichtiges Wissen über das untersuchte Systemmodell erhalten.
  • Die Bedeutung einer positiven Beendung bei dem vorstehend beschriebenen Ausführungsbeispiel der Erfindung ist somit nicht besonders positiv, da es nun bestimmt worden ist, daß der untersuchte Zustand oder eine Kombination von potentiellen Totzuständen tatsächlich erreicht werden kann. Somit ist ein toter Punkt bestimmt worden, und die den bestimmten Zustand oder die bestimmten Zustände umfassende Maschine Mi wird nicht dazu in der Lage sein, ihren Zustand zu ändern, gleichgültig was in dem umgebenden System passiert.
  • Wenn das Verfahren der Erfindung ein Bestimmen für zumindest eine Maschine (Mi) zumindest eines, vorzugsweise aller der potentiellen Totmaschinenzustände (Adi), die dann, wenn sich die Maschine (Mi) in einem der Maschinenzustände (Adi) befindet, unabhängig von möglichen externen Ereignissen in dem gleichen Maschinenzustand (Adi) bleiben werden,
    für jede Maschine (Mi) mit potentiellen Totmaschinenzuständen (Adi) ein Initiieren eines Anfangssatzes von Maschinenzuständen (F) der Maschinen (M1, .., Mn)
    Initiieren eines Zielsatzes von die potentiellen Totmaschinenzustände von Maschinen (MI) darstellenden Maschinenzuständen (Adi) und
    Wiederholen der folgenden Schritte, bis die Analyse geendet hat und/oder falls der Untersatz von Maschinen (MI) alle die Maschinen (M1, .., Mn) umfaßt
    Erweitern des Zielsatzes (Adi) mit einem Satz von Zuständen, die über Übergänge unabhängig von nicht in (MI) enthaltenen Maschinen in den vorhergehenden Zielsatz (Adi) gebracht werden können,
    wenn (Adi) zumindest einen der Zustände in dem Anfangssatz von Zuständen (F) umfaßt, dann positiv beenden,
    andernfalls den Untersatz von Maschinen (MI) mit zumindest einem Untersatz der Maschinen (M1, .., Mn) erweitern,
    umfaßt, wird ein sehr bevorzugtes Ausführungsbeispiel der Erfindung erhalten, da ein wirklicher toter Punkt erfaßt worden ist.
  • Die Erfindung stellt ein überzeugendes Verfahren zur Erfassung eines sehr unangenehmen Typs von Fehlern bereit, da ein toter Punkt ein System wie beispielsweise ein zustandsbasiertes System zum Eintreten in eine Endlosschleife veranlassen würde, was bestenfalls eine Belastung und unvernünftige Arbeitsbedingungen für den Benutzer verursachen würde.
  • Es ist offensichtlich, daß eine Erfassung von erreichbaren toten Punkten in einem Systemmodell extrem wertvolle Informationen für den Systementwerfer bereitstellt, da ein nicht erfaßter Fehler eines toten Punkts einen ernsten Schaden verursachen kann, falls er erfaßt oder durch einen Benutzer eines freigegebenen Produkts erfahren werden sollte. Außerdem sollte es betont werden, daß eine schnelle Erfassung eines toten Punkts sowie andere Testkriterien wie beispielsweise die vorstehend angeführte Verifikationsanalyse ein eindrucksvolles Arbeitshilfsmittel für einen Markt, der extrem empfindlich gegenüber Freigabeverzögerungen und abhängig von kurzfristigen Entwurfsphasen ist, bereitstellen werden.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Die vorliegende Erfindung ist durch verschiedene Beispiele und nicht als eine Beschränkung in den Figuren der beigefügten Zeichnungen veranschaulicht, in denen
  • 14 die grundlegenden Maschinen eines Ausführungsbeispiels der Erfindung veranschaulichen,
  • 5 die Kombinationen der Maschinen mit den gegenseitigen Abhängigkeiten zwischen den Maschinen gemäß 24 veranschaulicht,
  • 68 ein erstes Beispiel für ein Ausführungsbeispiel der Erfindung veranschaulichen,
  • 910 ein zweites Beispiel für ein Ausführungsbeispiel der Erfindung veranschaulichen,
  • 11 und 12 ein drittes Beispiel für ein Ausführungsbeispiel der Erfindung veranschaulichen,
  • 13 ein Verfahren zur Erfassung eines toten Punkts in einem Systemmodell gemäß einem Ausführungsbeispiel der Erfindung veranschaulicht,
  • 1420 veranschaulichen, wie ein erweitertes Zustandssystemmodell über eine Transformation eines hierarchischen Systemmodells erhalten wird,
  • 2124 die grundlegenden mathematischen Eigenschaften der Erfindung veranschaulichen,
  • 25 eine Entfernung von Signalen vor der Entfernung veranschaulicht, und
  • 26 eine Entfernung von Signalen nach der Entfernung veranschaulicht.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Der folgende erste Teil der Beschreibung veranschaulicht die grundlegenden Merkmale der Erfindung mit einfachen Ausdrücken und den beigefügten Figuren. Die grundlegenden Prinzipien und Merkmale werden somit durch das Systemmodell eines Spielzeugzugs veranschaulicht.
  • Der zweite folgende Teil wird sich ausführlicher mit den theoretischen Hintergründen der Erfindung befassen. Der ausführliche zweite Teil ist auf ein als ein Zustandsereignissystem beschriebenes Beispiel für die Erfindung gerichtet. Es sollte dennoch betont werden, daß die Erfindung in jedem zustandsbasierten System genutzt werden kann.
  • Nachstehend auf 1 Bezug nehmend ist ein kleines Beispiel beschrieben, um die Schlüsselaspekte der Technik zu veranschaulichen.
  • Das Beispiel besteht aus einem Spielzeugzug, einer Schranke und einem Signal. Die Steuerung des Zugs wird als ein Steuersystem mit drei parallelen Zustandssystemen beschrieben. In 1 ist ein Zug 1 gezeigt, der drei Knöpfe 2, 3, 4 aufweist, die auf vier verschiedenen Wegen von außerhalb beeinflußt werden können. Ein Knopf 2 ist oben auf dem Zug plaziert. Falls er gedrückt wird, wird das System den Befehl als "Obenauf" betrachten. Zwei andere Knöpfe 3, 4 sind unter dem Zug planiert worden. Sie können einzeln oder als eine einzige Einheit aktiviert werden (der Zug ist durch einen batteriebetriebenen DUPLO-Spielzeugzug von LEGO A/S inspiriert). Wenn man der gleichen Richtung wie der Zug zugewandt ist und den Knopf 3 auf der linken Seite drückt, wird das System den Befehl als "Links" betrachten. Wenn man in der gleichen Position ist und den Knopf auf der rechten Seite 4 drückt, wird das System den Befehl als "Rechts" betrachten. Falls beide Knöpfe 3, 4 gleichzeitig gedrückt werden, wird dieser Befehl als "Beide" betrachtet.
  • Wie in 2 gezeigt, weist der Zug 1 drei Betriebszustände auf: Halten, Abk. ST; Vorwärts, FW; und Rückwärts BW. Diese Zustände sind wie durch mit to, le, ri, ri, le, to bo und to bo beschriftete Pfeile gezeigt veränderlich. Man kann sagen, daß die Pfeile Übergänge darstellen und to, le, .., usw. Ereignisse darstellen, die ein Zünden des verbundenen Übergangs in einer derartigen Weise auslösen, daß der Zug 1 seinen Zustand ändert.
  • Die Schranke ist in 3 als zwei mögliche Positionen oder Zustände aufweisend gezeigt: Oben, mit UP beschriftet, oder Unten, mit DO beschriftet. Diese zwei Zustände können durch den Befehl oder sogenannte Ereignisse "up" oder "do" geändert werden.
  • Das Signal ist in 4 als zwei Zustände aufweisend gezeigt: Halten, mit R beschriftet, oder Fahren, mit G beschriftet. Diese zwei Zustände können durch die Ereignisse "ein" und "aus" geändert werden.
  • Alles in allem besteht das gesamte System aus dem Zug wie in 2 gezeigt, der Schranke wie in 3 gezeigt und dem Signal wie in 4 gezeigt, die miteinander verknüpft sind. Die drei Zustandssysteme 11, 12 und 13 sind in 5 gegenseitig abhängig ausgebildet, da der Zug nur von "Halten, ST" zu "Vorwärts, FW" oder "Rückwärts, BW" gehen kann, falls die Schranke 12 unten ist, DO. Die entsprechenden Übergänge sind somit als to DO, le(DO) und ri DO gezeigt, wobei to DO angibt, daß der Übergang gezündet werden kann, falls das Ereignis to passiert, das heißt der obere Knopf 2 aktiviert wird, unter der Bedingung, daß sich die Schranke 12 in dem Zustand DO, Unten befindet. Man kann sagen, daß die Bezugnahme von dem Übergang in dem Zugsystem 11 auf den Zustand DO eine Bedingung oder eine Sicherung ist. Desgleichen kann sich das Signal 13 nur ändern, falls sich die Schranke in einem akzeptablen Zustand befindet, jeweils "UP" oder "DO".
  • Das vorstehend beschriebene vorliegende Beispiel ist in 5 gezeigt.
  • Das Ziel der vorliegenden Analyse besteht darin, es herauszufinden, ob ein aus einer Anzahl von Zustandssystemen bestehendes System aus seinem Anfangszustand in einen gegebenen (gewollten oder nicht gewollten) Zielzustand gebracht werden kann.
  • In dem Fall des DUPLO-Systems wäre es zum Beispiel interessant herauszufinden, ob der Zug dazu veranlaßt werden könnte, vorwärts zu fahren. Eine derartige Frage kann beantwortet werden, indem ein näherer Blick auf die globalen Zustände des gesamten Systems geworfen wird. Für das DUPLO-System sind insgesamt 12 globale Zustände vorhanden, die aus den verfügbaren Kombinationen der drei lokalen Zustände des Zugs, der zwei lokalen Zustände der Schranke und der zwei Zustände des Signals bestehen. Der Zustand "Anfang" ist derart eingestellt worden, daß er (Halten, ST; Oben, UP; Rot, R) ist, und die Frage besteht darin, ob wir dazu in der Lage sein werden, das System zu einem anderen Zustand wie beispielsweise (FW, ?, ?) (das "?" gibt an, daß die Zustände der Schranke und des Signals irrelevant sind) zu ändern.
  • Eine Analyse der globalen Zustände enthüllt, daß die Antwort auf die Frage JA ist, was durch die folgende Sequenz von globalen Zuständen demonstriert wird:
    (ST, UP, R) – do → (die Schranke geht nach unten)
    (ST, DO, R) – to → (der Zug fährt ab)
    (FW, DO, R)
    welches ein gewünschter Zielzustand ist.
  • Das vorstehend verwendete herkömmliche Verfahren ist jedoch nicht ideal, da es im allgemeinen einen Aufbau und eine Suche nach den globalen Zuständen erfordert, die mit der Anzahl von Zustandssystemen exponentiell zunehmen: falls 100 Systeme mit jeweils zwei Zuständen vorhanden sind, weist der globale Zustandsraum 2100 Zustände auf.
  • Das Verfahren gemäß der Erfindung basiert auf einer zusammensetzenden und allmählichen Technik. Die Technik ist zusammensetzend, da die Analyse am Anfang auf einer begrenzten Anzahl von Zuständen basiert und die Verwendung von zusätzlichen Maschinen nur dann umfaßt, wenn es absolut nötig ist. Diese werden nach einer vorberechneten Abhängigkeitsanalyse unter den Zustandsmaschinen aufgenommen.
  • Bei dem Beispiel des DUPLO-Zugs wird untersucht, ob das gesamte System in einen Zustand gebracht werden kann, der es dem Zug ermöglicht, sich vorwärts zu bewegen. Offensichtlich hängt diese Fähigkeit von dem Zug ab, und dies ist der Grund dafür, warum unsere Analyse mit dem Zug anfängt.
  • ZUG
  • Nachstehend auf 6 Bezug nehmend kann der anfänglich untersuchte Zustand als ein Zielsatz 80 betrachtet werden, der in 6 als (FW; ?; ?) gezeigt ist.
  • Es kann außerdem gesehen werden, daß eine Änderung des Zustands von "BW" zu "FW" nur durch den Zustand "BW" und weder durch den Zustand der Schranke noch durch den Zustand des Signals bedingt ist. Der Zielsatz 80 kann somit zu 81 erweitert werden und sowohl BW als auch FW umfassen, wie es in 7 gezeigt ist.
  • Es kann jedoch immer noch nicht gefolgert werden, ob der Zug von "ST" zu "FW" oder "BW" gebracht werden kann. Es wird noch beobachtet, daß die Übergänge des Zugs ausschließlich von der Schranke 12, der Bedingung "DO", abhängen, und die Analyse wird daher fortgesetzt, nachdem die Schranke 12 aufgenommen worden ist, wie es in 8 gezeigt ist.
  • ZUG + SCHRANKE
  • Basierend auf der bereits ausgeführten Analyse ist es ausreichend, das System in nur einen der Zielzustände (FW, ?, ?) oder (BW, ?, ?) zu bringen, da daraufhin der Zug alleine, unabhängig von der Schranke 12 und dem Signal 13 aus 5 dazu in der Lage sein wird, den Zug in den gewünschten Zielzustand zu bringen. Dies gilt selbstverständlich unter der grundlegenden Bedingung, daß zu einer gegebenen Zeit alle Ereignisse möglich sind. Es ist offensichtlich, daß die globalen Zustände des Systems (ST, DO, ?) unabhängig von dem Signal 13 aus 5 in die Zustände (FW, DO, ?) und (RW, DO, ?) und somit in den neuen Zielzustand gebracht werden können. Dies bedeutet auch, daß alle in dem System (ST, UP, ?) verfügbaren Zustände als (ST, UP, ?) – do → (ST, DO, ?) unabhängig von dem Signal 13 aus 5 in den gewünschten Zielzuständen plaziert werden können, wie es in 8 durch den erweiterten Zielsatz 82 angeben ist.
  • Die Anfangszustände sind nun in dem Zielsatz 82 enthalten, und man kann sagen, daß FW erreichbar ist, da sich der Anfangszustand des globalen Zustandssystems (ST, UP, R) in dem Zielsatz befindet, und wir können daher ohne ein Aufnehmen des Zustandssystems des Signals folgern, daß der Zug dazu veranlaßt werden kann, vorwärts zu fahren.
  • Mit dem vorstehend beschriebenen einfachen Ausführungsbeispiel der Erfindung ist somit eine vollständige Analyse gemäß einer spezifischen Frage, ist ein gegebener Zustand in der Maschine erreichbar oder nicht, ohne ein Aufnehmen aller Maschinen 11, 12 und 13 und ohne einen Bedarf an einem Berechnen aller möglichen globalen Zustände gezeigt worden.
  • Es sollte desgleichen beachtet werden, daß das Signal 13 nicht untersucht worden ist, obwohl es auf die Schranke 12 Bezug nehmende Abhängigkeiten aufweist, das heißt ein(DO) und aus(UP).
  • Es ist offensichtlich, daß dieser zusammensetzende Ansatz von bedeutendem Vorteil sein wird, falls ein Systemmodell eine sehr große Anzahl von Maschinen und Maschinenzuständen umfaßt.
  • Nachstehend auf 9 Bezug nehmend ist ein weiteres Beispiel für ein Ausführungsbeispiel der Erfindung beschrieben. Das Systemmodell ist grundsätzlich das gleiche wie das System gemäß 5, aber nun mit modifizierten Abhängigkeiten oder Sicherungen bei dem Zug 14 und dem Signal 16.
  • Die Variante des vorhergehenden DUPLO-Beispiels stellt somit eine modifizierte Version des Zugs bereit, da der Zug 14 nun einen Übergang ri(UP) von ST zu BW aufweist. Es kann nun angenommen werden, daß die Änderung der Zustände von "ST" zu "BW" aus dem gleichen Grund durch die sich in dem Zustand "UP" (durch die neue Bedingung "UP" gegeben) befindende Schranke 15 bedingt ist. Wieder wird das Verfahren der Erfindung überprüfen, ob das Systemmodell den Zug dazu veranlassen kann, vorwärts zu fahren, FW von dem Anfangszustand des globalen Zustandssystems (ST, UP, R) aus.
  • Wie bei dem vorstehend angeführten Beispiel fängt die Analyse mit dem Zug alleine an, da der Zielzustand offensichtlich allein von dieser Komponente abhängt.
  • ZUG
  • Wie zuvor sehen wir, daß alle Zustände des Systems (BW, ?, ?) – unabhängig von der Schranke 15 und dem Signal 16 – in den globalen Zielzustand (FW, ?, ?) gebracht werden können, das heißt den Zielsatz 83 gemäß 10. Eine Änderung von ST zu FW und eine Änderung von ST zu BW hängen offensichtlich von der Schranke 15 ab, da die Änderung zu FW von ST davon abhängt, daß die Schranke unten ist, DO, und da die Änderung zu BW von ST davon abhängt, daß die Schranke 15 oben ist, UP. Dies führt zu einer semantischen Abhängigkeit, die ohne Rücksicht auf den Zustand der Schranke 15 immer erfüllt werden kann, da die Schranke entweder in dem Zustand UP oder DO sein muß. Somit führt die Analyse zu einer Erweiterung des Zielsatzes 83 zu dem Zielsatz 84. Dies bedeutet, daß in dieser Situation der Zug dazu veranlaßt werden kann, vorwärts zu fahren, ohne die Systeme der Schranke oder des Signals aufzunehmen, da der Zielsatz 84 nun den gewünschten Anfangszustand des globalen Zustandssystems (ST, UP, R) umfaßt.
  • Die Erweiterung des Zielsatzes bei dem vorstehend beschriebenen Beispiel ist somit durch eine Untersuchung der die Übergänge zu den Zuständen FW und BW beschränkenden "Summe von Abhängigkeiten" bewirkt worden, wodurch ein Bedarf an einem Integrieren der Maschinen 15 und 16 vermieden wird.
  • Nachstehend ist eine dritte Variante des ursprünglichen DUPLO-Systems in 11 behandelt, bei der das Modell des Zugs 17 und des Signals 19 dem beschriebenen Modell des Zugs 11 in 5 vollständig entsprechen. Die Modifikation ist nun auf die Änderung der Schranke von "UP" zu "DO" gerichtet worden, die aus dem gleichen Grund durch den sich in dem Zustand "FW" befindenden Zug bedingt ist, das heißt den Übergang do(FW). Der Zielzustand ist immer noch der gleiche: ist es möglich, den Zug dazu zu veranlassen, sich vorwärts zu bewegen, was bedeutet, ist es möglich, den globalen Zustand (FW; ?; ?) von dem Anfangszustand (ST, UP, R) aus zu erreichen?
  • Wie es mit der ersten Analyse der Fall ist, wird mit dem Zug alleine mit einem FW umfassenden Zielsatz 85 initiiert. Wieder ist es nur unmittelbar möglich, zu folgern, daß der Zug den Zielzustand von dem Zustand (BW, ?, ?) aus erreichen kann, falls die Zustände sowohl der Schranke 18 als auch des Signals 19 noch nicht untersucht worden sind. Um folgern zu können, ob der Zug 17 von einem Zustand von "ST" zu "FW" oder zu "BW" gebracht werden kann, müssen wir wieder die Schranke 18 in die Analyse aufnehmen, da alle Übergänge zu FW oder BW von ST davon abhängen, daß sich die Schranke in dem Zustand DO befindet.
  • ZUG + SCHRANKE
  • Nachstehend auf 12 Bezug nehmend ist es nach einem Aufnehmen der Schranke 18 und einer Erweiterung des Zielsatzes zu dem Zielsatz 86 nun offensichtlich, daß alle Zustände der Kombination (ST, DO, ?) unabhängig von dem Signal 19 aus 11 in den gewünschten Zustand gebracht werden können. Unterdessen kann der die Anfangsbedingungen oder anfänglichen Bedingungen darstellende Zustand (ST, UP, ?) nicht zu (ST, DO, ?) in dem erweiterten Zielsatz 86 geändert werden, da die Bedingungen der Schranke 18, das heißt der Übergang von do(FW), die den Zug "FW" beeinflussen, klar nicht erfüllt worden sind. Es ist ebenfalls offensichtlich, daß ein Berücksichtigen des Signals 19 aus 11 dieses Problem weder direkt noch indirekt lösen wird, da keiner der Zustände des Zugs 17 oder der Schranke 18 von dem Signal abhängt. Es kann somit ohne ein Aufnehmen des Signals gefolgert werden, daß der Zielzustand nicht erreicht werden kann.
  • Das vorstehend veranschaulichte Verfahren kann kurz wie folgt beschrieben werden:
    Gegeben: eine Anzahl von Maschinensystemen M1, .., Mk mit den Anfangszuständen s1, .., sk.
    Frage: Ist es für das System möglich, einen gegebenen Zielzustand zu erreichen.
  • Verfahren:
    • 1. Lasse A das globale Zustandssystem veranschaulichen, das den Zielzustand offensichtlich erreichen kann.
    • 2. Nehme die Systeme auf, auf die in dem Zielzustand direkt Bezug genommen wird (lasse diese als I bezeichnet sein).
    • 3. Berücksichtige alle globalen Zustände, unabhängig von den immer noch nicht enthaltenen Systemen, die die Zustände in A erreichen können. Diese Zustände werden als BI* (A) bezeichnet.
    • 4. Falls BI* (A) den globalen Anfangszustand umfaßt, hält das Verfahren hier mit einem JA an.
    • 5. Falls die Systeme in I nicht auf Außensysteme Bezug nehmen, hält das Verfahren hier mit einem NEIN an.
    • 6. In allen anderen Fällen werden die Systeme unter den Bedingungen, auf die Bezug genommen wird, zu I hinzugefügt, und der Zielzustand A wird durch BI* (A) ersetzt, und das Verfahren wird von Schritt 3 aus wiederholt.
  • Toter Punkt
  • Das zusammensetzende Verfahren kann für andere Zwecke als für eine Zugangsuntersuchung verwendet werden. Es kann gezeigt werden, daß ein Systemmodell überdies hinsichtlich eines toten Punkts überprüft werden kann. Ein globaler toter Punkt in einem System ist ein globaler Zustand, in dem das System den Maschinenzustand nicht ändern kann, gleichgültig welches der Befehl oder die Aktion sein mag. Ein toter Punkt kann auftreten, falls das System einen Zustand erreicht, in dem keine Übergänge der Maschinenzustände mehr vorhanden sind. Er kann ebenfalls auftreten, falls tatsächliche Übergänge aus den lokalen Maschinenzuständen vorhanden sind, einfach deswegen, da diese Zustände von Anforderungen/Bedingungen abhängen, die nicht erfüllt worden sind.
  • Ein verfeinerterer Ausdruck ist eine lokale Sperre, bei der eine Maschine oder mehrere Maschinen ihren Zustand unabhängig davon, wie andere Maschinen ihre Zustände ändern, nicht ändern können. Genauer ist ein globaler Zustand s ein lokaler toter Punkt für eine Maschine i und unabhängig von den Ereignissen, denen das System ausgesetzt ist, falls es in dem gleichen Zustand bleiben wird. Das Konzept ist in 13 veranschaulicht.
  • 13 zeigt noch eine andere Variation des Zugs. Der Zug 21 ist mit einer Schranke 22 verbunden worden. Die Übergänge in den Zustand "ST" des Zugs 21 sind ziemlich gestuft, abhängig davon, daß die Schranke 22 unten ist, DO. Die Schranke 22 kann sich, ebenfalls ein bißchen gestuft, nur von "UP" zu "DO" ändern, falls der Zug angehalten hat, das heißt der Übergang do(ST).
  • ZUG, SCHRANKE
  • Der globale Zustand (FW, UP) ist ein lokaler toter Punkt für die Schranke 22. Ohne Rücksicht auf das Ereignis wird die Schranke 22 nie dazu in der Lage sein, ihren Zustand zu "DO" zu ändern. Dies ist der Tatsache zuzuschreiben, daß der Übergang von dem Zustand "UP" zu dem Zustand "DO" erfordert, daß sich der Zug 21 in dem Zustand "ST" befindet. Unterdessen stützen sich alle Übergänge zu dem Zustand "ST" darauf, daß sich die Schranke in dem Zustand "DO" befindet. Natürlich kann dies nicht geschehen, bis sich der Zug in dem Zustand "ST" befindet, usw. Mit anderen Worten: die Schranke 22 weist einen toten Punkt auf. Der Zug 21 weist in diesem Zustand keinen toten Punkt auf, da der Zug mit den Befehlen "ri" und "le" zwischen den Zuständen "FW" und "BW" wechseln kann. Folglich ist der Zustand (BW, UP) ebenfalls ein lokaler toter Punkt für die Schranke.
  • Um einen Vorteil aus einem Testverfahren zur Lokalisierung irgendwelcher lokaler toter Punkte zu ziehen. Da das Verfahren anfängt, indem die Zustände in der Maschine i berechnet werden, die aktiv/lebend sind und daher nicht mit einem toten Punkt ausgestattet sind. Genauer ist der globale Zustand s für die Maschine i aktiv/lebend, falls eine Sequenz von globalen Zuständen s1, s2, .., sk mit s = s1 vorhanden ist, was angibt, daß bestimmte Ereignisse den globalen Zustand sj dazu in die Lage versetzen, sich durch einen Übergang zu sj + 1 zu ändern, während s1 und sk ebenfalls verschiedene lokale Zustände aufweisen. Mit anderen Worten ist eine Sequenz von Zustandsübergängen vorhanden, so daß die Maschine i ihren Zustand an einem Punkt geändert haben wird.
  • Das nachstehend erläuterte Verfahren wird beschreiben, wie die globalen Zustände, die für eine Maschine M1 aktiv/lebend sind, lokalisiert werden können. Diese Maschinenzustände werden als Ai bezeichnet. Der Satz von sich nicht in Ai befindenden Zuständen bildet potentielle Sperren für Mi. Sie sind nur potentielle Sperren, da sie von dem Zustand "Anfang" nicht zugänglich sein können. Ob dies möglich ist, kann unter Verwendung des vorstehend beschriebenen Verfahrens zur zusammensetzenden und allmählichen Analyse von Zustandssystemen basierend auf der Abhängigkeitsanalyse bestimmt werden.
  • Ein Testverfahren zur Berechnung von aktiven/lebenden Zuständen für eine Maschine Mi gemäß der Erfindung.
    Gegeben: ein Satz von Zustandsmaschinen M1, .., Mk, und unter diesen eine gewählte Maschine Mi.
    Frage: Berechne die für Maschine Mi lebenden/aktiven globalen Zustände.
  • Verfahren:
    • 1. Lasse A den unbekannten Satz von globalen Zuständen veranschaulichen.
    • 2. Nehme die erste Maschine i auf. Lasse daraufhin I das Symbol für den Satz von untersuchten Maschinen sein, anfangend mit I = {i}.
    • 3. Berechne alle globalen Zustände, die unabhängig von den an diesem Punkt nicht enthaltenen Maschinen in einem Schritt oder mehreren Schritten dazu in der Lage sind, einen Übergang auszuführen, der den Zustand der Maschine i ändert oder zu einem Zustand in A ändert. Das Ergebnis ist AIi*(A).
    • 4. Falls AIi*(A) alle globalen Zustände umfaßt, endet die Untersuchung hier. (Dies bedeutet, daß alle Zustände für die Maschine Mi aktiv/lebend sind und daher keine Sperre aufweisen).
    • 5. Falls dies nicht der Fall ist und unter der Bedingung, daß die Maschinen in I nicht auf Maschinen außerhalb von I Bezug nehmen, ist das Ergebnis AIi*(A).
    • 6. Falls dem nicht so ist, wird zu I eine Anzahl von neuen Maschinen hinzugefügt, auf die in den Bedingungen/Anforderungen für Übergangsmaschinen in I Bezug genommen wird, A wird gleich AIi*(A) gesetzt, und das Verfahren wird nach 3 wiederholt.
  • Zum Bestimmen, ob eine Maschine einen "wirklichen" toten Punkt aufweist, womit ein Zustand gemeint ist, der sowohl ein toter Punkt als auch erreichbar ist, besteht der erste Schritt darin, das vorstehend angeführte Testverfahren zu verwenden, um die Zustände Li zu finden, die für die Maschine i aktiv/lebend sind. Der nächste Schritt besteht darin, es herauszufinden, ob einer der nicht in diesem Satz enthaltenen Zustände erreichbar ist. Wenn sie kombiniert werden, erscheint das folgende Verfahren.
  • Ein Verfahren zur Lokalisierung erreichbarer lokaler toter Punkte gemäß der Erfindung.
    Gegeben: ein Satz von Zustandsmaschinen M1, .., Mk.
    Frage: Weist eine der Maschinen M1, .., Mk einen lokalen toten Punkt auf?
  • Verfahren:
    • 1. Unter Verwendung des Verfahrens zur Berechnung des Satzes von lebenden/aktiven Zuständen ist es möglich, einen Satz für jede der Maschinen zu bestimmen; Ai. Schritte 2, 3 und 4 müssen für alle Maschinen wiederholt werden.
    • 2. Lasse A den Satz von globalen Zuständen sein, die sich nicht in Ai befinden. Diese sind potentielle tote Punkte für die Maschine Mi.
    • 3. Unter Verwendung des Verfahrens zur Bestimmung der Erreichbarkeit eines gegebenen Zielzustands kann es bestimmt werden, ob ein Zugang zu A von dem Zustand "Anfang" möglich ist. Falls die Antwort JA ist, weist die Maschine eine erreichbare lokale Sperre auf, und die Antwort JA wird gegeben.
    • 4. Falls dem nicht so ist, ist die Antwort NEIN.
  • Bei dem vorstehenden Beispiel werden die Verfahren die folgende Sequenz aufweisen. Zuerst wird die Schranke hinsichtlich eines lokalen toten Punkts überprüft. Die mit dem Index 2 versehene Maschine, das heißt die Schranke, ist bislang der einzige Einschluß, und das ist der Grund dafür, warum es mit dem zweiten Verfahren entdeckt werden kann, daß L{2},2*(∅) = {(?, DO)}.
  • Nun wird die Maschine 1 aufgenommen und entdeckt, daß L{1,2},2*{(?, DO)} = {(?, DO), (ST, UP)}.
  • Dies ist das endgültige Ergebnis von aktiven/lebenden Zuständen für die Schranke. Dies bedeutet, daß die Anzahl von globalen Zuständen, die für die Schranke nicht lebend/aktiv sind, ist
    {(FW, UP), (BW,UP)}.
  • Es ist nun Zeit, herauszufinden, ob einige von diesen erreichbar sind. Sie sind von den gegebenen Anfangsbedingungen beide erreichbar, und die Schranke 22 ist daher in beiden Zuständen mit einem lokalen toten Punkt ausgestattet.
  • Die Berechnungen für den Zug 21 werden verschieden sein. Der erste Schritt besteht darin, nur den Zug aufzunehmen, und es wird entdeckt, daß die lebenden/aktiven Zustände sind: L{2} ,2*(∅) = {(ST, ?), (FW, ?), (BW, ?)}.
  • Dies umfaßt alle Zustände, und die Berechnungen stellen das Ergebnis bereit, daß der Zug keinen toten Punkt aufweist.
  • Der Satz L{i},1*(A) wird durch in dem Fachgebiet allgemein bekannte Festpunktiterationen berechnet, wie es mit BI*(A) der Fall ist.
  • Die vorstehend beschriebenen Systemmodelle können als Zustands-/Ereignismodelle betrachtet werden, bei denen es sich um gleichzeitige Versionen von Mealy-Maschinen handelt, das heißt sie bestehen aus einer festen Anzahl von gleichzeitigen finiten Zustandsmaschinen, die Paare von Eingangsereignissen und Ausgangsaktionen aufweisen, die mit den Übergängen der Maschinen verbunden sind. Das Modell ist synchron: auf jedes Eingangsereignis wird durch alle Maschinen im Gleichschritt reagiert; die Gesamtausgabe ist die Mehrfachsatzvereinigung der Ausgangsaktionen der einzelnen Maschinen. Eine weitere Synchronisation zwischen den Maschinen wird erreicht, indem den Übergängen eine Sicherung zugeordnet wird. Sicherungen sind Boole'sche Kombinationen von Bedingungen bei den lokalen Zuständen der anderen Maschinen. Auf diese Weise kann das Zünden von Übergängen in einer Maschine durch den lokalen Zustand anderer Maschinen bedingt ausgebildet werden. Falls eine Maschine keinen freigegebenen Übergang für ein spezielles Eingangsereignis aufweist, führt sie einfach keine Zustandsänderung aus.
  • Mit Bezug auf 1 bis 12 ist es allgemein bekannt, daß Untersätze eines Zustandsraums unter Verwendung von reduzierten geordneten binären Entscheidungsdiagrammen (ROBDD beziehungsweise Reduced Ordered Binary Decision Diagrams) dargestellt werden können. Dies ist in R.E. Bryant, "Graph-based algorithms for Boolean function manipulation", IEEE Transactions on Computers, Band 8, Nummer C-35, Seiten 677-691, 1986 beschrieben.
  • Effiziente Operationen zum Testen hinsichtlich einer Leerheit und Äquivalenz derartiger Untersätze und zum Ausführen der eingestellten Operationen der Vereinigung und des Schnittes sind für ROBDD allgemein bekannt und in dem vorstehenden Bryant beschrieben. Außerdem sind in Bryant das Bild einer Übergangsbeziehung bei einem Satz von Zuständen berechnende effiziente Operationen beschrieben. Eine Berechnung des Bilds einer Übergangsbeziehung erfordert es, daß die Übergangsbeziehung als ein einzelnes ROBDD dargestellt ist. Es ist bekannt, daß dies gelegentlich durch eine große Größe der Darstellung verursacht Probleme ergibt. In diesen Fällen kann die Übergangsbeziehung als eine Trennung oder Verbindung von kleineren Beziehungen, die als eine aufgeteilte Übergangsbeziehung bezeichnet werden, effizienter dargestellt werden, wie es in J.R. Burch, E.M. Clarke und D.E. Long, "Symbolic Model Checking with Partitioned Transition Relations" erläutert ist. In Proceedings of 1991 Int. Conf. on VLSI, A. Halaas und P.B. Denyer (eds), August 1991.
  • Viele zustandsbasierte Systemmodelle können vorzugsweise als sogenannte hierarchische Systemmodelle entworfen und beschrieben werden.
  • Im folgenden wird eine bevorzugte Transformation dieses Typs von Systemmodellen beschrieben, da die Erfindung vorzugsweise bei sogenannten flachen zustandsbasierten Systemmodellen ausgeführt werden kann.
  • Nachstehend auf 14 Bezug nehmend sind die grundlegenden Eigenschaften eines hierarchischen Systemmodells beschrieben.
  • ZUG, SCHRANKE, SIGNAL
  • In 14 sind die zwei früheren Zustände "FW" und "BW" durch den einzelnen, neuen und abstrakteren Zustand "GO" ersetzt worden. Das in 14 veranschaulichte Steuersystem stellt somit eine abstraktere Beschreibung des Verhaltens des Zugs bereit, entsprechend dem, was eine leicht kurzsichtige Person, die den Unterschied zwischen dem vorderen und dem hinteren Ende des Zugs nicht feststellen kann, erfahren würde.
  • Unterdessen ist es möglich, die ursprüngliche Beschreibung des Zugs 31 beizubehalten, indem der Zustand "GO" in der Form eines Zustandssystems verfeinert wird, das die exakten Zustände von "FW" und "BW" umfaßt. Dies führt zu der hierarchischen Beschreibung des DUPLO-Zugs wie in 15 veranschaulicht.
  • ZUG, SCHRANKE, SIGNAL.
  • Abgesehen von der Verbesserung des Zustandssystems mit zwei neuen Zuständen "FW" und "BW" sind die drei ursprünglichen Übergänge des Zustands "GO" ebenfalls verfeinert worden, indem "FW" und "BW" jeweils als Ergebniszustände gebracht werden. Schließlich ist bei dem Übergang der Schranke 32 von "UP" zu "DO" sein Zustand zu "FW" verfeinert worden.
  • Zustandssysteme und -maschinen
  • Ein Zustandssystem umfaßt einen Satz von Zustandsmaschinen M1, .., Mn.
  • Eine Zustandsmaschine M umfaßt einen Satz von Zuständen S1, .., Sk, zusammen mit einer Anzahl von Übergängen Si → Sj.
  • Die abstrakte Version des DUPLO-Zugs besteht in einem Zustandssystem mit einer einzelnen Zustandsmaschine, dem Zug 31, in der zwei Zustände vorhanden sind: "ST" und "GO", zwischen denen es insgesamt 5 Übergänge gibt, wie es in 14 und 15 gezeigt ist.
  • Um keine Verwirrung zu verursachen, wird es vorgezogen, Zustandssysteme ohne Hierarchie als flache Zustandssysteme zu bezeichnen.
  • Hierarchische Zustandssysteme und -maschinen
  • Ein hierarchisches Zustandssystem, Hsys, umfaßt einen Satz von hierarchischen Maschinen HM1 ... HMn.
  • Eine hierarchische Zustandsmaschine HM umfaßt einen Satz von hierarchischen Zuständen HS1 ..., HSk und eine Anzahl von Übergängen HSi → HSj zwischen diesen.
  • Ein hierarchischer Zustand HS ist entweder primitiv oder in sich selbst ein hierarchisches Zustandssystem.
  • Bei der hierarchischen Version des DUPLO-Zugs handelt es sich um ein hierarchisches Zustandssystem mit einer einzelnen Zustandsmaschine 31, die sich durch zwei hierarchische Zustände "ST" und "GO", zwischen denen es 5 Übergänge gibt, auszeichnet. Der Zustand "ST" ist primitiv, wohingegen "GO" in sich selbst ein hierarchisches Zustandssystem mit zwei Zuständen "FW" und "BW", zwischen denen es zwei Übergänge gibt, ist. Sowohl "FW" als auch "BW" sind primitive Zustände.
  • Hierarchische Zustände und Zustandsmaschinen sind einer bestimmten Ebene zugewiesen, abhängig davon, wie weit sie in die Hierarchie reichen. Bei der hierarchischen Version des DUPLO-Zugs sind die Zustände "ST" und "GO" auf beiden Ebenen vorhanden, wohingegen die Zustände "FW" und "BW" sich auf der zweiten Ebene befinden.
  • Es sollte beachtet werden, daß das flache Zustandssystem spezielle Fälle von hierarchischen Zustandssystemen bildet, bei denen entweder alle Zustände primitiv sind oder bei denen sich entsprechend alle Zustände auf der ersten Ebene befinden.
  • Erweiterung von hierarchischen Zustandssystemen
  • Hierarchische Zustandssysteme ermöglichen es, verglichen mit flachen Zustandssystemen kompaktere und strukturiertere Beschreibungen zu liefern. Ein hierarchisches Zustandssystem kann jedoch auch zu einem flachen Zustandssystem erweitert werden, gemäß dem das erfinderische Verfahren zur zusammensetzenden und allmählichen Analyse in Verwendung gebracht werden kann.
  • Die Erweiterung besteht aus einer kontinuierlichen Ausführung des nachstehend angeführten Erweiterungsprozesses, bis ein System mit flachem Zustand erzeugt worden ist.
  • Erweiterungsprozeß – Zustände
  • Nachstehend auf 16 Bezug nehmend wird Hsys initiiert, um das tatsächliche hierarchische Zustandssystem auf der Ebene n (Ln) zu sein. Der Erweiterungsprozeß nimmt seinen Anfangspunkt bei einem hierarchischen Zustand S auf einer anderen Ebene als n, der in sich selbst ein aus einer Anzahl von hierarchischen Maschinen M1, .., Mn bestehendes anderes hierarchisches Zustandssystem ist, das sich auf einer Ebene n + 1 befindet.
  • Nachstehend auf 17 Bezug nehmend besteht der Erweiterungsprozeß aus einem Ändern des Status von Zuständen S zu primitiv, indem die Maschinen M1 ... Mn auf eine Ebene mit S gebracht werden. Nach dem Ausführen des Erweiterungsprozesses wird das in 17 gezeigte Steuersystem erreicht.
  • Somit reduziert der Erweiterungsprozeß die Anzahl von hierarchischen Zuständen (um 1), und durch ein Wiederholen des Reduzierungsschrittes wird das Endergebnis ein hierarchisches Zustandssystem sein, wo alle Zustände primitiv sind, was auch als ein flaches Zustandssystem bezeichnet wird.
  • Erweiterungsprozeß – Übergänge
  • An diesem Punkt werden Übergänge in den Erweiterungsprozeß aufgenommen. Im allgemeinen hängen Übergänge von bestimmten Bedingungen oder Sicherungen ab, die erfüllt sein müssen, bevor der fragliche Übergang stattfinden kann. Diese Bedingungen können Forderungen/Anforderungen sein, die teilweise das Auftreten von Aktionen in den Umgebungen, in denen das gesamte Zustandssystem gelegen ist, betreffen und teilweise andere eintretende Maschinen von anderen Zustandssystem betreffen. Während des Erweiterungsprozesses können diese Forderungen/Anforderungen auf verschiedenen Wegen modifiziert werden, um sicherzustellen, daß vor dem Erweiterungsprozeß und nach seiner Ausführung die richtige Beziehung/Verbindung zwischen dem hierarchischen Zustandssystem vorhanden ist. Beispiele für derartige Modifikationen sind in 18 geboten.
  • Mit Bezug auf 19 wird das vorstehend angeführte Szenario betrachtet, und Übergänge und Bedingungen/Anforderungen werden zu diesem hinzugefügt wie veranschaulicht. In diesem Fall sind die Anforderungen/Bedingungen a, b, c und d.
  • Es ist offensichtlich, daß die Übergänge in den Maschinen in S (M1, .., Mn), zum Beispiel der Übergang von A zu B, nur insofern stattfinden können, als das Steuersystem M sich tatsächlich in dem Zustand S (nicht S1 oder S2) befindet. Um sicherzustellen, daß das gleiche auf den Übergang von A zu B zutrifft, wird die Bedingung/Anforderung b zu b S erweitert.
  • Der Übergang in M von S1 zu S weist verschieden Wege zum Aussuchen der zu aktivierenden Unterzustände in S auf; zum Beispiel könnte ein Zustand X für die Untermaschine M1 gewählt werden. Zum Sicherstellen, daß der Zustand X ebenfalls aktiviert wird, wenn die Erweiterung von S1 zu S ausgeführt wird, können Übergänge von allen anderen Zuständen in M1 mit der Beschränkung von S1 a zu X hinzugefügt werden, was genau das ist, was zum Ausführen des Übergangs von S1 → S erforderlich ist.
  • Der Übergang in M von S zu S2 bietet die Unterzustände in S betreffende Bedingungen/Anforderungen, die aktiv sein müssen, falls ein Übergang auszuführen ist. Beispielsweise könnte eine Bedingung/Anforderung darin bestehen, daß sich die Maschine M1 in einem Zustand Y befindet. Um sich zu vergewissern, daß das gleiche auch nach der Erweiterung zutreffen würde, kann die den Übergang von S zu S2 betreffende Bedingung/Anforderung c zu c Y erweitert werden.
  • In einer Maschine auf einer Ebene mit M ist ein Übergang vorhanden, dessen Bedingung/Anforderung den Zustand A umfaßt. Nach einer Erweiterung muß es sichergestellt werden, daß sich nicht nur M1 in dem Zustand A befindet, sondern daß sich auch die Maschine M in dem Zustand S befindet.
  • Mit den gegebenen Modifikationen der Bedingungen/Anforderungen für Übergänge kann das Ergebnis eines Transformationsprozesses veranschaulicht werden, wie es in 20 gezeigt ist.
  • Erweiterungen des hierarchischen DUPLO-Zugs
  • Die Wirkung einer Erweiterung wird nachstehend in der Veranschaulichung des DUPLO-Zugs in 20 gezeigt. Es sollte beachtet werden, daß die drei Übergänge von den Zuständen "ST" zu "GO" ziemlich explizit aufzeigen, welche Unterzustände von "GO" aktiviert werden müssen. Der einzige offensichtliche Kandidat für die Erweiterung ist der Zustand "GO", bei dem es sich um den einzigen nicht primitiven Zustand handelt. Das Ergebnis des Erweiterungsprozesses stellt sich dar wie folgt.
  • ZUG, SCHRANKE, "GO", SIGNAL
    • Gegeben: ein hierarchisches Steuersystem, Hsys.
    • Ergebnis: ein äquivalentes/ähnliches flaches Zustandssystem, Sys.
  • Verfahren:
    • 1. Lasse S einen Zustand auf einer Ebene mit n sein, der in sich selbst ein hierarchisches Zustandssystem ist, das aus einer Anzahl von hierarchischen Maschinen M1, .., Mk besteht.
    • 2. Führe die Erweiterung von S aus, was ein Bringen der Maschinen M1, .., Mk auf eine Ebene mit S mit den nötigen Übergangsmodifikationen und Anforderungen bedeutet.
    • 3. Falls alle Zustände primitiv sind. HALT
    • 4. Falls dem nicht so ist, wiederhole den Prozeß von 1 aus.
  • Bei vielen Anwendungen ist es nützlich, ein Systemmodell zu betrachten, das eine Anzahl von Variablen umfaßt, die sich über finite Bereiche erstrecken. Die Werte dieser Variablen können in den Sicherungen der Übergänge getestet und durch Zuweisungen als Teil der Aktion eines Übergangs manipuliert werden. Die Erfindung kann leicht derart angepaßt werden, daß sie auf Systeme dieser Art Anwendung findet, indem eine Technik des Codierens der Variablen und Operationen bei ihnen verwendet wird, wie es in dem Fachgebiet allgemein bekannt ist (siehe zum Beispiel die PhD-Dissertation von Allan John Hu, Techniques for Efficient Formal Verification Using Binary Decision Diagrams, Department of Computer Science, Stanford University, Dezember 1995, Nummer CS-TR-95-1561). Die Anpassung könnte ein Betrachten jeder Variable als eine Maschine mit einem Zustand für jeden möglichen Wert der Variable umfassen. Zuweisungen von Werten zu der Variable können durch Übergänge bei der Maschine realisiert werden, und Bedingungen in anderen Maschinen, die die Variable umfassen, könnten als Synchronisationsbedingungen bei der Maschine realisiert werden. Alle bei der Erfindung angeführten Verfahren könnten daraufhin direkt auf das angepaßte Modell angewendet werden.
  • Bei anderen Anwendungen ist es nützlich, Systemmodelle zu betrachten, die eine Sammlung von Zeitgebern umfassen. Die Werte von Zeitgebern nehmen über die Zeit ab, entweder in durch die Taktfrequenz bestimmten diskreten Schritten oder kontinuierlich mit der globalen Zeit. Bei derartigen um die Zeit erweiterten Systemmodelle können Übergänge durch Auszeitereignisse to-t ausgelöst werden, die freigegeben werden, wenn der Wert des Zeitgebers t null erreicht. Gleichermaßen kann ein Zeitgeberwert als Teil der Aktion eines Übergangs eingestellt werden. Die Erfindung kann leicht derart angepaßt werden, daß sie auf zeitlich regulierte Systeme Anwendung findet, indem jeder Zeitgeber t als eine Maschine T mit Zuständen T0, T1, ..., Tmax eingeführt wird, wobei max der maximale Wert ist, der dem Zeitgeber t zugewiesen wird. Die Maschine T wird die folgenden grundlegenden Übergänge aufweisen: Ti + 1 -- tick []/ → Tifür i = 1..max-1, wobei 'tick' ein neues Ereignis ist, das das Vorübergehen einer Zeiteinheit darstellt. Ein Auszeitübergang A1 -- to-t [g]/a → A2wird durch den folgenden Übergang ersetzt: A1 -- tick [g T1]/a → A2das heißt die Reaktion auf das Ereignis to-t wird durch ein Reagieren auf tick ersetzt, vorausgesetzt die Zeitgebermaschine T befindet sich in dem Zustand T1 (somit gleich nach dem Ereignis tick in dem Zustand T0). Ein Zeitgebereinstellungsübergang A1 -- E [g]/a, t:= n → A2wird ersetzt durch A1 -- E [g]/a → A2und erzeugt zusätzlich Übergänge in T der Form Tj -- E [g A1]/ → A2für alle j = 0..max. Alle bei der Erfindung angeführten Verfahren könnten daraufhin direkt auf das angepaßte Modell angewendet werden und werden sowohl für diskrete als auch kontinuierliche Zeitgeber eine richtige Analyse liefern, wie es in dem Fachgebiet allgemein bekannt ist (siehe zum Beispiel E. Asarin, O. Maler, A. Pnueli, On Discretization of Delays in Timed Automata and Digital Circuits, Proc. CONCUR'98, Lecture Notes in Computer 1466, 1998).
  • Bei anderen Anwendungen kann es nützlich sein, interne Ereignisse (auf die gelegentlich als Signale Bezug genommen wird) zuzulassen, die durch einige der Maschinen erzeugt werden und auf die durch andere Maschinen reagiert wird. Ein Systemmodell mit internen Ereignissen/Signalen könnte als verschiedene Interpretationen aufweisend verstanden werden. Bei einer Interpretation sind die Signale derart zu verstehen, daß sie ausgegeben werden und unverzüglich auf sie reagiert wird. Mit einer derartigen Interpretation kann die Wirkung des Vorhandenseins von Signalen durch ein modifiziertes Modell erhalten werden, bei dem die Signale entfernt worden sind. Die Modifikation wird erhalten, indem Übergänge mit Signalen modifiziert werden oder Übergänge derart hinzugefügt werden, daß sie über Bedingungen bei externen Ereignissen und Zustandssynchronisationen eine ähnliche Wirkung erhalten. Als ein Beispiel für die Entfernung von Signalen wird ein System mit einem externen Ereignis E und einem Signal S wie in 25 gezeigt betrachtet. Durch ein Ersetzen des Auftretens von S durch E A1 bei dem Übergang von B1 zu B2 und ein Entfernen der Erzeugung von S aus dem Übergang von A1 zu A2 wird ein Systemmodell mit dem gleichen Verhalten aber ohne Signale erhalten, siehe 26.
  • Dieser Ansatz wird leicht auf Situationen verallgemeinert, wo mehrere Signale in dem Systemmodell vorhanden sind. Die Verallgemeinerung kann beschrieben werden wie folgt. Es wird ein Übergang für jedes Auftreten von Kombinationen der folgenden Übergänge hinzugefügt A1 -- E [g]/S a → A2 B1 -- S [h]/b → B2,wobei E ein externes Ereignis ist, S ein Signal ist, g und h Bedingungen sind und a und b Sequenzen von Aktionen sind, die auszuführen sind, wenn der Übergang genommen wird. Der hinzugefügte Übergang wird ausgebildet, indem die Bedingung bei S in dem Übergang von B1 durch eine Bedingung bei E, g und A1 ersetzt wird: B1 -- E [g A1 h]/b → B2.
  • Das Hinzufügen von Übergängen wird unter Berücksichtigung des neuen Übergangs bei einem Ausbilden von Paaren wiederholt, bis keine neuen Übergänge erzeugt werden. Nachdem alle möglichen Übergänge hinzugefügt sind, werden alle durch Signale gesicherten Übergänge entfernt, und bei allen Übergängen, die ein Signal oder mehrere Signale erzeugen, werden diese Signale entfernt. Das sich ergebende Systemmodell umfaßt daraufhin keine Signale, und die Verfahren der Erfindung können zum Analysieren des Systemmodells angewendet werden.
  • Bei einer anderen Interpretation könnten die Signale über eine interne Warteschlange von Signalen zwischen den Maschinen übertragen werden. Es ist auf Signale in der internen Warteschlange zu reagieren, bevor das Systemmodell auf eines der externen Ereignisse reagiert. Signale werden daraufhin als ein anderes externes Ereignis betrachtet: wenn die interne Warteschlange nicht leer ist, ist das Signal an der Front der Warteschlange das einzige freigegebene Ereignis. Alle externen Ereignisse sind gesperrt. Wenn die interne Warteschlange leer ist, sind keine Signale freigegeben, aber alle externen Ereignisse sind freigegeben.
  • Die interne Warteschlange von Signalen könnte derart beschränkt sein, daß sie eine gegebene maximale Länge aufweist. Die Wirkung der Warteschlange kann daraufhin erhalten werden, indem zuerst eine Anzahl von Maschinen, die die Warteschlange realisieren, zu dem Systemmodell hinzugefügt wird und daraufhin Übergänge durch ein Entfernen aller Erzeugungen von Signalen modifiziert werden. Das Ausgeben eines Signals S bei einem Übergang von A1 zu A2 mit einer Bedingung bei dem externen Ereignis E wird daraufhin durch einen Übergang bei der Warteschlange, der das S darstellende Element zu dem Ende der Warteschlange hinzufügt, modelliert. Wenn die Warteschlange nicht leer ist, wird nur das dem ersten Element in der Warteschlange entsprechende Ereignis freigegeben. Falls die Warteschlange leer ist, werden alle externen Signale freigegeben. Das Freigeben und Sperren von Ereignissen wird durch ein Verbinden einer Aussage über die Ereignisse und des ersten Elements der Warteschlange auf dem Systemmodell von Maschinen erhalten. Sind diese Schritte ausgeführt worden, können alle Verfahren der Erfindung auf das sich ergebende Systemmodell angewendet werden.
  • 21 zeigt zwei Zustands-/Ereignismaschinen und die entsprechende parallele Kombination. Die Sicherungen, die formal von der Form lj = p sein sollten, sind einfach als der Zustand [p] geschrieben, da der Ort lj von dem Namen des Zustands ableitbar ist. Die kleinen Pfeile geben die Anfangszustände an. Die Bezugnahme auf r ist eine Anforderung zu einem Zustand in einer nicht gezeigten dritten Maschine.
  • Die volle Kombination aller n Maschinen ergibt eine Mealy-Maschine, in der die Übergänge
    Figure 00540001
    definiert sind durch
  • Figure 00540002
  • Konsistenzüberprüfungen
  • Eine Konsistenzüberprüfung gemäß der Erfindung kann eine Erreichbarkeitseigenschaft sein. Beispielsweise kann eine Überprüfung hinsichtlich "kollidierender Übergänge" ausgeführt werden, das heißt eine Überprüfung, ob zwei oder mehr Übergänge in dem gleichen lokalen Zustand freigegeben werden können, was zu einem Nicht-Determinismus führt. Dies kann auf Fragen der Erreichbarkeit reduziert werden, indem alle Paare von Sicherungen g1 und g2 von Übergängen mit dem gleichen lokalen Zustand si und Eingangsereignis e betrachtet werden. Es kann ein Konflikt auftreten, falls ein globaler Zustand erreichbar ist, in dem (lj = si) ∧ g1 ∧ g2 erfüllt ist.
  • Diese Überprüfung kann auf Erreichbarkeitsüberprüfungen reduziert werden. Andere Überprüfungen wie beispielsweise eine Überprüfung hinsichtlich Übergängen, die nie freigegeben werden, und eine Überprüfung hinsichtlich Zuständen, die nie erreicht werden, erzeugen eine Anzahl von Erreichbarkeitsüberprüfungen, die in der Anzahl von Übergängen t linear ist. Schlimmstenfalls verursacht die Überprüfung hinsichtlich kollidierender Übergänge eine Anzahl von Erreichbarkeitsüberprüfungen, die in der Anzahl von Übergängen quadratisch ist. In der Praxis weisen jedoch sehr wenige Übergänge den gleichen anfänglichen lokalen Zustand und das gleiche Eingangsereignis auf, so daß in der Praxis die Anzahl von erzeugten Überprüfungen viel kleiner als t ist.
  • Andere Typen von Konsistenzüberprüfungen reduzieren sich auf eine Überprüfung hinsichtlich eines Fehlens von lokalen toten Punkten. Ein lokaler toter Punkt tritt auf, falls das System einen Zustand erreichen kann, in dem eine der Maschinen sich bei allen Eingangsereignissen ständig im Leerlauf befindet. Diese Überprüfung wird für jede der n Maschinen ausgeführt. Insgesamt müssen zumindest t + n Überprüfungen ausgeführt werden, was die Verifikation von Zustands-/Ereignissystemen ziemlich verschieden von der herkömmlichen Modellüberprüfung macht, wo typischerweise nur ein paar Schlüsseleigenschaften verifiziert werden.
  • Das Verfahren gemäß der Erfindung versucht, die Anzahl von Erreichbarkeitsüberprüfungen zu reduzieren, indem eine Implikationsanalyse zwischen den Sicherungen der Überprüfungen ausgeführt wird. Wenn eine Sicherung g1 eine andere Sicherung g2 impliziert, dann ist klar, daß dann, wenn g1 erreichbar ist, es g2 ebenso ist. Um diese Informationen zu verwenden, werden alle Sicherungen anfänglich in aufsteigender Reihenfolge der Größe ihres erfüllenden Zustandsraums sortiert. Auf diese Weise werden die spezifischsten Sicherungen zuerst überprüft, und für jede zu überprüfende neue Sicherung wird sie mit allen bereits überprüften (und erreichbaren) Sicherungen verglichen. Falls die neue Sicherung eine von ihnen umfaßt, wird es bestimmt, daß sie erfüllbar ist. Durch Experimente werden auf diese Art und Weise zwischen 40% und 94% der Erreichbarkeitsüberprüfungen gemäß Hilfsmitteln gemäß dem Stand der Technik beseitigt.
  • ROBDD-Darstellung
  • Dieser Abschnitt beschreibt es, wie reduzierte geordnete binäre Entscheidungsdiagramme zum Darstellen von Sätzen von Zuständen und der Übergangsbeziehung verwendet werden.
  • Zum Aufbauen des ROBDD T ~ für die Übergangsbeziehung T bauen wir zuerst die lokalen Übergangsbeziehungen T ~i für jede Maschine Mi auf. Die Variablen des ROBDD stellen eine Codierung der Eingangsereignisse, der derzeitigen Zustände und der nächsten Zustände dar. Die Variablen sind geordnet wie folgt: Die ersten ||E|| Variablen codieren die Eingangsereignisse E (||E|| bezeichnen ⎡log2|X|⎤ und werden als VE bezeichnet. Dann folgen 2||Si|| Variablen
    Figure 00560001
    die die derzeitigen (nicht primäre Variablen) und die nächsten Zustände (primäre Variablen) für die Maschine i codieren.
  • Die Übergangsbeziehung T ~i für die Maschine i wird als eine ROBDD-Aussage über diese Variablen aufgebaut. Das ROBDD für einen Übergang (si, e, g, o1, s'i) ∊ Ti wird als die Verbindung der ROBDD-Codierungen von si, e, g und s'i aufgebaut. (Die Ausgaben werden nicht codiert, da sie keinen Einfluß auf die erreichbaren Zustände des Systems haben.) Die Codierung von si, e und s'i ist unkompliziert, und die Codierung der Sicherung g wird durchgeführt, indem alle atomaren Aussagen lj = p zu ROBDD-Aussagen über die derzeitigen Zustandsvariablen für die Maschine Mj gewandelt werden und daraufhin die Boole'schen Operationen der Sicherung ausgeführt werden. Die Codierung aller Übergänge der Maschine i wird aus der Trennung der Codierung der einzelnen Übergänge erhalten:
    Figure 00570001
    wobei e ~ die ROBDD-Codierung des Eingangsereignisses e ist und s ~i und s ~'i die ROBDD-Codierungen des derzeitigen Zustands si beziehungsweise nächsten Zustands s'i sind.
  • Zum passenden Codieren der globalen Übergangsbeziehung T müssen wir uns mit Situationen befassen, in denen keine Übergänge von Ti freigegeben sind. In diesen Fällen möchten wir, daß die Maschine i in ihrem derzeitigen Zustand bleibt. Wir bauen ein ROBDD negi auf, das darstellt, daß kein Übergang freigegeben ist, indem alle Sicherungen in der Maschine i (einschließlich der Eingangsereignisse) negiert werden:
    Figure 00570002
  • Das ROBDD equi codiert, daß die Maschine i ihren Zustand nicht ändert, indem es erfordert, daß der nächste Zustand mit dem derzeitigen Zustand identisch ist:
    Figure 00570003
  • Die lokale Übergangsbeziehung für die Maschine i ist daraufhin:
    Figure 00580001
  • Das ROBDD T ~ für die volle Übergangsbeziehung ist die Verbindung der lokalen Übergangsbeziehungen:
    Figure 00580002
  • Zusammensetzende Rückwärtserreichbarkeit
  • Die Probleme von Iterationen gemäß dem Stand der Technik können typischerweise unter Verwendung einer Rückwärtserreichbarkeitsanalyse gelöst werden. Die Verifikationsaufgabe besteht darin, zu bestimmen, ob eine Sicherung g erfüllt werden kann. Statt den erreichbaren Zustandsraum zu berechnen und zu überprüfen, daß g irgendwo in diesem Satz gültig ist, fangen wir mit dem Satz von Zuständen an, in dem g gültig ist, und berechnen in einer Rückwärtsiteration Zustände, die einen Zustand erreichen können, in dem g erfüllt ist. Das Ziel besteht darin, zu bestimmen, ob sich der Anfangszustand unter diesen Zuständen befindet. Unsere neue Idee besteht darin, die Rückwärtsiteration in einer zusammensetzenden Art und Weise auszuführen, wobei nur eine minimale Anzahl von Maschinen berücksichtigt wird. Anfänglich werden nur in g angeführte Maschinen berücksichtigt. Später werden auch Maschinen, von denen diese abhängen, aufgenommen.
  • Es ist zu beachten, daß dieser Ansatz verglichen mit der Vorwärtsiteration einen offensichtlichen Nachteil aufweist, wenn eine große Anzahl von Erreichbarkeitsüberprüfungen ausgeführt wird: statt nur einer Festpunktiteration zum Aufbauen des erreichbaren Zustandsraums R (und einem trivialen Verifizieren der Eigenschaften daraufhin) ist eine neue Festpunktiteration für jede Eigenschaft nötig, die überprüft wird. Experimente zeigen jedoch klar, daß bei einem Verwenden einer zusammensetzenden Rückwärtsiteration jede der Festpunktiterationen selbst für sehr große Modelle abgeschlossen werden kann, wohingegen es die Vorwärtsiteration selbst für Modelle mittlerer Größe nicht schafft, den Aufbau von R abzuschließen.
  • Zum Formalisieren der Rückwärtszusammensetzungstechnik wird eine semantische Version des Konzepts der Abhängigkeit benötigt. Für einen Untersatz der Maschinen I ⊆ {1, ..., n} sind zwei Zustände s, s' ∊ S I-äquivalent, was als s = Is' geschrieben wird, falls für alle i ∊ I, si = s'i (die Strichindizes werden in diesem Fall verwendet, um einen anderen Zustand zu bezeichnen, und sind nicht auf die nächsten Zustände bezogen). Falls ein Untersatz P der globalen Zustände S nur durch Komponenten in einem Indexsatz I beschränkt ist, kann P als I als eine Sortierung aufweisend betrachtet werden. Dies führt zu der folgenden Definition: ein Untersatz P von S ist I-sortiert, falls für alle s, s' ∊ S, s ∊ P und s = Is' ⇒ s' ∊ P
  • In 22 ist die Figur ein Beispiel, das die Wirkung von BI(g) zeigt. Wenn X die Sicherung lj = p ist und Y die Sicherung lk = q ist, wobei j, k
    Figure 00590001
    I, dann scheinen die Übergänge von s1 von Maschinen Mj und Mk außerhalb von I abzuhängen. Die Sicherungen X, ¬X Y und ¬Y überspannen jedoch zusammen alle Möglichkeiten, und daher kann durch ein Auswählen von entweder e1, e2 oder e3 der Zustand s1 ohne Rücksicht auf die Zustände der Maschinen Mj und Mk g erreichen.
  • 23 veranschaulicht die Abhängigkeiten zwischen 9 Zustandsmaschinen, die einem wirklichen Beispiel entnommen sind. Ein Pfeil von einer Maschine Mi zu einer anderen Maschine Mj gibt das Vorhandensein eines Übergangs in Mi mit einer Sicherung, die von einem Zustand in der Maschine Mj abhängt, an.
  • Als ein Beispiel wird eine Sicherung g betrachtet, die nur die Maschinen 1 und 3 anführt. Der durch g definierte Satz von Zuständen ist für ein 1 und 3 umfassendes I I-sortiert. Ein anderes Verständnis der Definition besteht darin, daß ein Satz P I-sortiert ist, falls er unabhängig ist von den Maschinen in dem Komplement Ī = {1, .... n}\I
  • Von einem I-sortierten Satz g aus führen wir eine Rückwärtserreichbarkeitsberechnung aus, indem Zustände aufgenommen werden, die ohne Rücksicht auf die Zustände der Maschinen in Ī g erreichen können. Ein Rückwärtsschritt ist durch die Funktion BI(g) gegeben, die definiert ist durch:
    Figure 00600001
  • Gemäß Definition ist BI(g) I-sortiert. Der Satz BI(g) ist der Satz von Zuständen, die durch ein Eingangsereignis e unabhängig von Maschinen in Ī einen Zustand in g erreichen können. Es ist zu beobachten, daß BI(g) in sowohl g als auch I monoton ist. 22 zeigt es, wie ein Zustand s1 einer Maschine in BI(g) aufgenommen wird, obwohl er syntaktisch von Maschinen außerhalb von I abzuhängen scheint.
  • Indem die Anwendung von BI iteriert wird, kann nun der minimale Satz von g enthaltenden und unter der Anwendung von BI geschlossenen Zuständen berechnet werden. Dies ist der minimale Festpunkt μX.g ∪ BI(X), auf den wir als BI*(g) Bezug nehmen. Es ist zu beachten, daß B*{i,...,n}(g) der gewünschte Satz von Zuständen, die g erreichen können, wird.
  • Ein Satz von Indizes I soll abhängigkeitsgeschlossen (dependency closed) sein, falls keine der Maschinen in I von Maschinen außerhalb von I abhängt. Formal ist I abhängigkeitsgeschlossen, falls für alle i ∊ I, Zustände s', s, si, Eingangsereignisse e und Ausgaben o
    Figure 00610001
    impliziert.
  • Lokale Erfassung eines toten Punkts
  • Bei einem Überprüfen hinsichtlich lokaler toter Punkte wird ein Aufbau ähnlich der Rückwärtserreichbarkeit verwendet. Um das zusammensetzende Rückwärtslemma (compositional backward lemma) anwendbar auszubilden, wird der Gedanke einer Maschine, die lebt, welches das exakte Doppel des Aufweisens eines lokalen toten Punkts ist, verwendet. Mit anderen Worten lebt eine Maschine, falls es immer der Fall ist, daß ein Weg vorhanden ist, um die Maschine zum Bewegen zu einem neuen lokalen Zustand zu veranlassen. Formal lebt ein globaler Zustand s für eine Maschine i, falls eine Sequenz von Zuständen s1, s2, .... sk mit s = s1 und
    Figure 00610002
    (für ein e und o) derart vorhanden ist, daß sk i ≠ s1 i. Die Maschine i lebt, falls alle erreichbaren Zustände leben. Ein einfaches Beispiel für ein Zustands-/Ereignissystem mit einem lokalen toten Punkt ist in 24 gezeigt.
  • 24 zeigt ein Zustands-/Ereignissystem mit einem lokalen toten Punkt. Der globale Zustand s = (p2, q1) lebt für die Maschine auf der rechten Seite nicht, da für alle Eingangsereignisse die Sicherung p1 falsch bleibt. Der Zustand s ist erreichbar (zum Beispiel durch ein anfängliches Empfangen von e1), und somit weist die Maschine auf der rechten Seite einen lokalen toten Punkt auf.
  • Die Überprüfung ist in zwei Teile geteilt. Als erstes wird der Satz aller Lebendzustände L* i für die Maschine i berechnet. Als zweites überprüfen wir, daß alle erreichbaren Zustände sich in L* i befinden. Ein unkomplizierter, aber ineffizienter Ansatz würde darin bestehen, die zwei Sätze zu berechnen und hinsichtlich eines Einschlusses zu überprüfen. Der Vorteil des zusammensetzenden Aufbaus gemäß der Erfindung wird jedoch bei der Rückwärtserreichbarkeit in beiden Teilen der Überprüfung verwendet.
  • Ähnlich der Definition von BI(g) wird LI,i(X) derart definiert, daß es der Satz von Zuständen ist, die unabhängig von den Maschinen außerhalb von I für Maschinen i ∊ I unmittelbar leben oder die zu Zuständen in X führen (welches Zustände sind, von denen angenommen wird, daß sie für die Maschine i leben):
    Figure 00620001
  • Es ist zu beachten, daß verglichen mit der Definition (1) der einzige Unterschied in der zusätzlichen Möglichkeit besteht, daß der Zustand unmittelbar lebt, das heißt si ≠ s''i. Der Satz von Zuständen, die unabhängig von Maschinen außerhalb von I für die Maschine i leben, ist daraufhin der Satz L* I,i(∅), wobei L* I,i(Y) der durch L* I,i(Y) = μX.Y ∪ LI,i(X) definierte minimale Festpunkt ist.
  • Die drei Eigenschaften von Lemma l gelten auch für L* I,i(Y), wenn Y I-sortiert ist. Falls I abhängigkeitsgeschlossen ist, folgt es aus der Eigenschaft (iii) des Lemma, daß L* I,i(∅) gleich L* {1, ..., n},i(∅) ist, was genau der Satz von Lebendzuständen der Maschine i ist. Dies bietet einen effizienten Weg zum Berechnen der Sätze L* I,i(∅) für verschiedene Möglichkeiten von I. Mit I1 gleich {i} anfangend und mit größeren Ik fortfahrend, exakt wie für die Rückwärtserreichbarkeit. Der einzige Unterschied besteht in den Beendungsbedingungen. Ein möglicher Beendungsfall besteht darin, daß L* Ik,i(∅) für ein k gleich S ist. In diesem Fall ist es von der Monotonitätseigenschaft (i) des Lemma her trivial, daß der Satz von erreichbaren Zuständen in L* Ik,i(∅) enthalten ist. Daraus folgt, daß die Maschine i lebt und somit frei von lokalen toten Punkten ist. Der andere Beendungsfall besteht darin, daß Ik abhängigkeitsgeschlossen ist. Daraufhin müssen wir überprüfen, ob erreichbare Zustände vorhanden sind, die sich nicht in L* Ik,i(∅) befinden. Dies wird durch eine zusammensetzende Rückwärtserreichbarkeitsüberprüfung mit g = S\L* Ik,i(∅) getan.
  • Es sollte beachtet werden, daß die Erfindung als ein Computerprogramm oder ein Teil eines Computerprogramms, das in den Speicher eines Computers geladen und daraus ausgeführt werden kann, verkörpert sein kann. Das Computerprogramm kann durch einen Datenspeicherträger oder Datenübertragungsträger verteilt werden. Der Speicherträger kann ein Magnetband, eine optische Platte, eine Compact Disk (CD oder CD-ROM), eine Minidisk, eine Festplatte, eine Diskette, ein ferroelektrischer Speicher, ein elektrisch löschbarer, programmierbarer Nur-Lese-Speicher (EEPROM), ein Flash-Speicher, ein EPROM, ein Nur-Lese-Speicher (ROM), ein statischer Schreib-Lese-Speicher mit wahlfreiem Zugriff (SRAM), ein dynamischer Schreib-Lese-Speicher mit wahlfreiem Zugriff (DRAM), ein ferromagnetischer Speicher, ein optischer Speicher, ladungsgekoppelte Vorrichtungen, Chipkarten usw. sein. Der Übertragungsträger kann ein Netz sein, zum Beispiel ein lokales Netz (LAN), ein landesweites Netz (WAN), oder eine Kombination davon, zum Beispiel des Internet. Das Netz kann drahtgebundene und drahtlose Kommunikationsverbindungen umfassen. Über das Netz kann ein Softwareausführungsbeispiel (das heißt ein Programm) der Erfindung oder ein Teil davon verteilt werden, indem ein Programm über das Netz übertragen wird.

Claims (22)

  1. Verfahren zur Analyse eines zustandsbasierten Systemmodells mit einem Satz von Maschinen (M1, .., Mn), wobei die Maschinen jeweils zumindest einen möglichen Zustand umfassen und jede Maschine sich zu einer gegebenen Zeit in einem ihrer umfaßten Zustände befindet, wobei das dynamische Verhalten der Maschinen (M1, .., Mn) durch vordefinierte Übergänge zwischen den Zuständen jeder Maschine (M1, .., Mn) und vordefinierte Bedingungen (C) für die Übergänge definiert wird, wobei das Verfahren die Schritte umfaßt: – Auswählen eines Zielsatzes von Zuständen (A) in einem Untersatz von Maschinen (MI); – Wiederholen von Iterationsschritten, bis ein Beendungskriterium erfüllt ist; dadurch gekennzeichnet, daß die Iterationsschritte die Schritte umfassen: (a) Auswählen eines Satzes von Zuständen (X), die Übergänge in den Zielsatz (A) aufweisen, wobei die Übergänge, wenn überhaupt, Bedingungen (C) aufweisen, die sich nur auf Maschinen in dem Satz von Maschinen (MI) beziehen; (b) Erweitern des Zielsatzes (A), indem der Satz von Zuständen (X) in den Zielsatz (A) aufgenommen wird; (c) Erweitern des Untersatzes von Maschinen (MI), indem ein weiterer Untersatz von Maschinen aufgenommen wird, während der in dem Schritt des Erweiterns des Zielsatzes (A) aufgebaute Zielsatz (A) beibehalten wird.
  2. Verfahren zur Analyse eines zustandsbasierten Systemmodells nach Anspruch 1, dadurch gekennzeichnet, daß das Beendungskriterium erfüllt ist, falls nach dem Schritt des Erweiterns des Zielsatzes (A) der Zielsatz (A) zumindest einen Anfangszustand eines vordefinierten Satzes von Anfangszuständen (F) der Maschinen (M1, .., Mn) umfaßt.
  3. Verfahren zur Analyse eines zustandsbasierten Systemmodells nach Anspruch 2, dadurch gekennzeichnet, daß das Beendungskriterium erfüllt ist, falls nach dem Schritt des Erweiterns des Zielsatzes (A) der Zielsatz (A) einen Zielsatz vollständig umfaßt, für den eine Beendung wie in Anspruch 2 definiert bereits erhalten worden ist.
  4. Verfahren zur Analyse eines zustandsbasierten Systemmodells nach Anspruch 1, dadurch gekennzeichnet, daß die Auswahl eines Zielsatzes von Maschinenzuständen (A) die Schritte umfaßt: – Auswählen eines Untersatzes von Maschinen (MI) derart, daß er eine zu analysierende Maschine (Mi) umfaßt; – Auswählen eines Zielsatzes (A), wobei es sich bei dem Zielsatz um die Zustände der derzeit analysierten Maschine (Mi) handelt, die Übergänge ohne sich auf andere Maschinen als die derzeit analysierte Maschine (Mi) beziehende Bedingungen (C) aufweisen.
  5. Verfahren zur Analyse eines zustandsbasierten Systemmodells nach Anspruch 4, dadurch gekennzeichnet, daß der Satz von Zuständen (X) ferner Zustände umfaßt, die über Übergänge in einen Änderungszustand der derzeit analysierten Maschine (Mi) gebracht werden können, wobei die Übergänge, wenn überhaupt, Bedingungen (C) aufweisen, die sich nur auf Maschinen in dem Satz von Maschinen (MI) beziehen.
  6. Verfahren zur Analyse eines zustandsbasierten Systemmodells nach Anspruch 4 oder 5, dadurch gekennzeichnet, daß das Beendungskriterium erfüllt ist, falls der Zielsatz (A) alle möglichen Zustände in dem Satz von Maschinen (MI) umfaßt.
  7. Verfahren zur Analyse eines zustandsbasierten Systemmodells nach einem der Ansprüche 1 bis 6, dadurch gekennzeichnet, daß das Beendungskriterium erfüllt ist, falls nach dem Schritt des Erweiterns des Zielsatzes (A) keine der Maschinen in dem Satz von Maschinen (MI) Übergänge mit sich auf Maschinen außerhalb des Satzes von Maschinen (MI) beziehenden Bedingungen (C) umfaßt.
  8. Verfahren zur Analyse eines zustandsbasierten Systemmodells nach einem der Ansprüche 1 bis 7, dadurch gekennzeichnet, daß der weitere Untersatz von Maschinen darauf beschränkt ist, Maschinen aufzuweisen, die Zustände umfassen, auf die sich die Bedingungen (C) für die Übergänge in dem Untersatz von Maschinen (MI) beziehen.
  9. Verfahren zur Analyse eines zustandsbasierten Systemmodells nach einem der Ansprüche 1 bis 8, dadurch gekennzeichnet, daß die Analyse bei einer Anforderung von dem Benutzer beendet wird.
  10. Verfahren zur Analyse eines zustandsbasierten Systemmodells nach einem der Ansprüche 1 bis 9, dadurch gekennzeichnet, daß eine visuelle oder akustische Angabe für einen Benutzer bereitgestellt wird, wenn die Analyse beendet ist.
  11. Verfahren zur Analyse eines zustandsbasierten Systemmodells nach einem der Ansprüche 1 bis 10, dadurch gekennzeichnet, daß die Bedingungen (C) als ein gerichteter Graph dargestellt werden.
  12. Verfahren zur Analyse eines zustandsbasierten Systemmodells nach Anspruch 11, dadurch gekennzeichnet, daß der weitere Untersatz von Maschinen durch einen Breitendurchlauf des Bedingungen darstellenden gerichteten Graphen bestimmt wird.
  13. Verfahren zur Analyse eines zustandsbasierten Systemmodells nach einem der Ansprüche 1 bis 12, dadurch gekennzeichnet, daß die Sätze von Zuständen als reduzierte geordnete binäre Entscheidungsdiagramme (ROBDD) dargestellt werden und die Operationen bei ihnen als effiziente Operationen bei reduzierten geordneten binären Entscheidungsdiagrammen (ROBDD) ausgeführt werden.
  14. Verfahren zur Analyse eines zustandsbasierten Systemmodells nach Anspruch 13, dadurch gekennzeichnet, daß die Übergänge als eine aufgeteilte Übergangsbeziehung von reduzierten geordneten binären Entscheidungsdiagrammen (ROBDD) dargestellt werden.
  15. Verfahren zur Analyse eines zustandsbasierten Systemmodells nach einem der Ansprüche 1 bis 14, dadurch gekennzeichnet, daß der Zielsatz von Zuständen (A) durch eine iterative Festpunktiteration dynamisch berechnet wird.
  16. Verfahren zur Analyse eines zustandsbasierten Systemmodells nach einem der Ansprüche 4 bis 15, dadurch gekennzeichnet, daß es die Schritte umfaßt: – Verwenden des Verfahrens nach einem der Ansprüche 4 bis 15 für eine Maschine (Mi) zum Bestimmen des Satzes aller Lebendzustände der Maschine (Mi), d.h. der Zustände, die über die vordefinierten Übergänge in einen anderen Zustand der Maschine (Mi) gebracht werden können; – Bestimmen eines potentiellen Totzustands (Adi) für die Maschine (Mi), d.h. eines Zustands, der sich nicht in dem Satz aller Lebendzustände befindet; und – Bestimmen, ob der potentielle Totzustand (Adi) über die vordefinierten Übergänge von einem Satz vordefinierter Anfangszustände (F) erreichbar ist.
  17. Verfahren zur Analyse eines zustandsbasierten Systemmodells nach einem der Ansprüche 1 bis 15, dadurch gekennzeichnet, daß es die Schritte umfaßt: – Bestimmen eines potentiellen Totzustands (Adi) für eine Maschine (Mi), d.h. eines Zustands, in dem die Maschine unabhängig von einem Ereignis außerhalb der Maschine (Mi) bleiben wird; – Verwenden des Verfahrens nach einem der Ansprüche 1 bis 15 zum Bestimmen, ob der potentielle Totzustand (Adi) über die vordefinierten Übergänge von einem Satz vordefinierter Anfangszustände (F) erreichbar ist.
  18. Verfahren zur Analyse eines zustandsbasierten Systemmodells mit einem Satz von Maschinen (M1, .., Mn), wobei die Maschinen jeweils zumindest einen möglichen Zustand umfassen, wobei jede Maschine sich zu einer gegebenen Zeit in einem ihrer umfaßten Zustände befindet, wobei das dynamische Verhalten der Maschinen (M1, .., Mn) durch vordefinierte Übergänge zwischen den Zuständen jeder Maschine (M1, .., Mn) und vordefinierte Bedingungen (C) für die Übergänge definiert wird, wobei das Verfahren dadurch gekennzeichnet ist, daß es die Schritte umfaßt: – Bestimmen eines potentiellen Totzustands (Adi) für eine Maschine (Mi), d.h. eines Zustands, in dem die Maschine unabhängig von einem Ereignis außerhalb der Maschine (Mi) bleiben wird; – Bestimmen für zumindest eine der Maschinen (Mi) mit potentiellen Totzuständen (Adi), ob die potentiellen Totzustände (Adi) über die vordefinierten Übergänge von einem Satz vordefinierter Anfangszustände (F) erreichbar sind, wobei der Schritt des Bestimmens, ob die potentiellen Totzustände (Adi) erreichbar sind, unter Verwendung des Verfahrens nach einem der Ansprüche 1 bis 15 ausgeführt wird.
  19. Verfahren zur Analyse eines zustandsbasierten Systemmodells nach Anspruch 18, dadurch gekennzeichnet, daß die potentiellen Totzustände (Adi) einer Maschine (Mi) als die Zustände bestimmt werden, die sich nicht in dem Satz aller Lebendzustände der Maschine (Mi) befinden, d.h. der Zustände, die über die vordefinierten Übergänge in einen anderen Zustand der Maschine (Mi) gebracht werden können.
  20. Verfahren zur Analyse eines zustandsbasierten Systemmodells nach Anspruch 19, dadurch gekennzeichnet, daß der Satz von Lebendmaschinenzuständen durch das Verfahren nach einem der Ansprüche 4 bis 15 bestimmt wird.
  21. Computer, der dazu programmiert ist, das Verfahren nach einem der Ansprüche 1 bis 20 auszuführen.
  22. Von einem Computer lesbarer Träger, dessen Inhalte einen Computer dazu veranlassen, das Verfahren nach einem der Ansprüche 1 bis 20 auszuführen.
DE69919144T 1998-03-27 1999-03-26 Verfahren und gerät zum analysieren von statusbasiertem modell Expired - Fee Related DE69919144T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
DK43798 1998-03-27
DK43798 1998-03-27
PCT/DK1999/000178 WO1999050746A2 (en) 1998-03-27 1999-03-26 A method and an apparatus for analyzing a state based system model

Publications (2)

Publication Number Publication Date
DE69919144D1 DE69919144D1 (de) 2004-09-09
DE69919144T2 true DE69919144T2 (de) 2005-07-28

Family

ID=8093532

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69919144T Expired - Fee Related DE69919144T2 (de) 1998-03-27 1999-03-26 Verfahren und gerät zum analysieren von statusbasiertem modell

Country Status (11)

Country Link
US (1) US6408262B1 (de)
EP (1) EP1064601B1 (de)
CN (1) CN100377096C (de)
AT (1) ATE272863T1 (de)
AU (1) AU762473B2 (de)
CA (1) CA2323469C (de)
DE (1) DE69919144T2 (de)
ES (1) ES2226356T3 (de)
IL (2) IL138489A0 (de)
WO (1) WO1999050746A2 (de)
ZA (1) ZA200005042B (de)

Families Citing this family (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6728665B1 (en) * 2000-03-20 2004-04-27 Nec Corporation SAT-based image computation with application in reachability analysis
US6880147B1 (en) * 2000-09-07 2005-04-12 Rockwell Collins System and method for developing software utilizing determinative representations
US6985845B1 (en) * 2000-09-26 2006-01-10 Koninklijke Philips Electronics N.V. Security monitor of system runs software simulator in parallel
WO2002048728A1 (en) * 2000-12-15 2002-06-20 Telefonaktiebolaget L.M. Ericsson Functional testing based on a state machine description of the unit under test
US7047139B2 (en) * 2000-12-22 2006-05-16 International Business Machines Corporation Sharing information between instances of a propositional satisfiability (SAT) problem
US6668203B1 (en) * 2001-04-26 2003-12-23 Sandia Corporation State machine analysis of sensor data from dynamic processes
US6912700B1 (en) * 2001-06-06 2005-06-28 The United States Of America As Represented By The National Security Agency Method and system for non-linear state based satisfiability
US7689489B2 (en) * 2001-07-27 2010-03-30 Scott Fergusson Methods and systems for assisting financial services firms and their representatives
CA2355974C (en) 2001-08-24 2004-07-13 Wayne Biao Liu Space reduction in compositional state systems
DE10159185A1 (de) * 2001-12-03 2003-06-12 Martin Huettlinger Algorithmus zur Erkennung von Endlos- und Warteschleifen durch die Erkennung eines doppelt angenommenen Zustands
US20030110474A1 (en) * 2001-12-06 2003-06-12 International Business Machines Corporation System for coverability analysis
US7389209B2 (en) * 2002-05-03 2008-06-17 Sungard Energy Systems Inc. Valuing and optimizing scheduling of generation assets for a group of facilities
US7474995B2 (en) * 2002-05-03 2009-01-06 Sungard Energy Systems Inc. Valuing and optimizing scheduling of generation assets
US6848088B1 (en) * 2002-06-17 2005-01-25 Mentor Graphics Corporation Measure of analysis performed in property checking
US7788556B2 (en) * 2002-11-13 2010-08-31 Fujitsu Limited System and method for evaluating an erroneous state associated with a target circuit
GB0226805D0 (en) * 2002-11-16 2002-12-24 Koninkl Philips Electronics Nv State machine modelling
US7680818B1 (en) * 2002-12-18 2010-03-16 Oracle International Corporation Analyzing the dependencies between objects in a system
US7454324B1 (en) 2003-01-10 2008-11-18 James Andrew Garrard Seawright Selection of initial states for formal verification
US20070299648A1 (en) * 2003-01-10 2007-12-27 Levitt Jeremy R Reuse of learned information to simplify functional verification of a digital circuit
US20060052965A1 (en) * 2004-08-13 2006-03-09 International Business Machines Corporation Event driven testing method, system and program product
GB0516400D0 (en) * 2005-08-10 2005-09-14 Ibm A method and apparatus for testing software
US20070101316A1 (en) * 2005-09-12 2007-05-03 Don Berndt Software Architecture and Program for the Concurrent Execution of Finite State Machine-Encoded Processes, on Single or Multiple-Processor-Based Embedded Systems
US7500209B2 (en) * 2005-09-28 2009-03-03 The Mathworks, Inc. Stage evaluation of a state machine
US7565317B1 (en) * 2005-12-29 2009-07-21 Trading Technologies International, Inc. System and method for displaying market information and order placement in an electronic trading environment
US7797672B2 (en) * 2006-05-30 2010-09-14 Motorola, Inc. Statechart generation using frames
US8706776B1 (en) 2006-06-30 2014-04-22 Sap Ag Extending status models in a computer system
US8365200B1 (en) 2006-06-30 2013-01-29 Sap Ag Using cancellation status models in a computer system
US8522261B2 (en) * 2006-06-30 2013-08-27 Sap Ag Using status models with state guards in a computer system
US8200715B1 (en) 2006-06-30 2012-06-12 Sap Ag Using status models with adaptable process steps in a computer system
US8219650B2 (en) * 2006-12-28 2012-07-10 Sap Ag Communicating with a status management component in a computer system
US8135603B1 (en) 2007-03-20 2012-03-13 Gordon Robert D Method for formulating a plan to secure access to limited deliverable resources
US8364456B2 (en) * 2008-01-10 2013-01-29 The Mathworks, Inc. Conditionally executed states
US8219376B2 (en) * 2008-02-27 2012-07-10 International Business Machines Corporation Verification using directives having local variables
US8504980B1 (en) 2008-04-14 2013-08-06 Sap Ag Constraining data changes during transaction processing by a computer system
US8244516B2 (en) * 2008-06-30 2012-08-14 International Business Machines Corporation Formal verification of models using concurrent model-reduction and model-checking
US8996472B2 (en) * 2012-04-16 2015-03-31 Sap Se Verification of status schemas based on business goal definitions
US8996473B2 (en) * 2012-08-06 2015-03-31 Sap Se Checking compatibility of extended and core SAM schemas based on complex goals
TWI509408B (zh) * 2013-01-23 2015-11-21 Realtek Semiconductor Corp 死結偵測方法以及機器可讀媒體
US10417594B2 (en) 2013-05-02 2019-09-17 Sap Se Validation of functional correctness of SAM schemas including action chains
CN103413023B (zh) * 2013-07-11 2016-06-08 电子科技大学 一种多状态系统动态可靠度评估方法
WO2015111142A1 (ja) * 2014-01-22 2015-07-30 株式会社日立製作所 システム解析装置、設計不良解析装置、故障モード解析装置、故障ツリー解析装置、自律動作装置及び自律動作制御システム
CN105335534B (zh) * 2014-05-30 2018-12-14 华为技术有限公司 模型建立方法和装置
US9798652B2 (en) * 2014-09-26 2017-10-24 Toyota Motor Engineering & Manufacturing North America, Inc. Coverage guided technique for bug finding in control systems and software
US9946625B2 (en) * 2015-03-18 2018-04-17 New Iron Group, Inc. Diagnostic tool and method for efficient software development
US9443192B1 (en) 2015-08-30 2016-09-13 Jasmin Cosic Universal artificial intelligence engine for autonomous computing devices and software applications
ES2710338T3 (es) * 2016-05-10 2019-04-24 Von Sobbe Hans Ulrich Sistema de análisis
US10283978B2 (en) * 2016-06-27 2019-05-07 Lg Chem, Ltd. Diagnostic system for a battery system
US9864933B1 (en) 2016-08-23 2018-01-09 Jasmin Cosic Artificially intelligent systems, devices, and methods for learning and/or using visual surrounding for autonomous object operation
US10108767B1 (en) * 2016-09-30 2018-10-23 Cadence Design Systems, Inc. Methods, systems, and computer program product for implementing deadlock detection with formal verification techniques in an electronic design
US10452974B1 (en) 2016-11-02 2019-10-22 Jasmin Cosic Artificially intelligent systems, devices, and methods for learning and/or using a device's circumstances for autonomous device operation
US10607134B1 (en) 2016-12-19 2020-03-31 Jasmin Cosic Artificially intelligent systems, devices, and methods for learning and/or using an avatar's circumstances for autonomous avatar operation
CN107066382B (zh) * 2017-03-09 2021-01-26 北京航空航天大学 一种基于模型的航天器系统自动化测试方法
US10474934B1 (en) 2017-11-26 2019-11-12 Jasmin Cosic Machine learning for computing enabled systems and/or devices
US10938856B2 (en) * 2018-03-30 2021-03-02 Intel Corporation Systems and methods for security protocol execution in a hierarchical state machine-driven execution plan
US11062069B1 (en) 2020-03-11 2021-07-13 Mellanox Technologies, Ltd. Bounded deadlock check
CN112198471A (zh) * 2020-09-13 2021-01-08 南京宏泰半导体科技有限公司 一种高效测试系统实时状态检测装置
CN112783005B (zh) * 2021-01-07 2022-05-17 北京航空航天大学 一种基于仿真的系统理论过程分析方法
CN114116273B (zh) * 2021-10-25 2024-07-05 东南大学 一种计算机网络集群系统故障的可诊断性确定方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5465216A (en) 1993-06-02 1995-11-07 Intel Corporation Automatic design verification
CA2147536A1 (en) * 1994-06-01 1995-12-02 Gerard Johan Holzmann On-the-fly model checking with partial-order state space reduction
US5493508A (en) * 1994-06-01 1996-02-20 Lsi Logic Corporation Specification and design of complex digital systems
WO1996024101A1 (en) * 1995-02-03 1996-08-08 A T & T Corp. An automata-theoretic verification of systems

Also Published As

Publication number Publication date
ES2226356T3 (es) 2005-03-16
AU3024799A (en) 1999-10-18
WO1999050746A2 (en) 1999-10-07
CA2323469C (en) 2008-01-15
US6408262B1 (en) 2002-06-18
CA2323469A1 (en) 1999-10-07
IL138489A (en) 2006-06-11
DE69919144D1 (de) 2004-09-09
IL138489A0 (en) 2001-10-31
AU762473B2 (en) 2003-06-26
WO1999050746A3 (en) 1999-11-18
EP1064601B1 (de) 2004-08-04
CN100377096C (zh) 2008-03-26
EP1064601A2 (de) 2001-01-03
CN1295686A (zh) 2001-05-16
ATE272863T1 (de) 2004-08-15
ZA200005042B (en) 2001-03-07

Similar Documents

Publication Publication Date Title
DE69919144T2 (de) Verfahren und gerät zum analysieren von statusbasiertem modell
DE69838835T2 (de) Verfahren zur Prüfung und zur Darstellung einer Hardware durch Zerlegung und Aufteilung
DE19860061B4 (de) System zur Prüfung der kombinatorischen Äquivalenz
DE69909452T4 (de) Eine datenbank, die nützlich ist, um ein system zu konfigurieren und/oder zu optimieren und ein verfahren, um diese datenbank zu generieren
DE19903633A1 (de) Implementierung von Boolescher Erfüllbarkeit mit nichtchronologischer Rückwärtsverarbeitung in rekonfigurierbarer Hardware
Roscoe et al. Hierarchical compression for model-checking CSP or how to check 1020 dining philosophers for deadlock
EP1764715B1 (de) Verfahren zur Bestimmung der Güte einer Menge von Eigenschaften, verwendbar zur Verifikation and zur Spezifikation von Schaltungen
DE60017457T2 (de) Verfahren zur isolierung eines fehlers in fehlernachrichten
DE68927086T2 (de) Datenvereinheitlichungssystem und -methode
US20060184468A1 (en) Automatic test program generation using extended conditional constraint satisfaction
DE19717716A1 (de) Verfahren zur automatischen Diagnose technischer Systeme unter Berücksichtigung eines effizienten Wissenserwerbs und einer effizienten Bearbeitung zur Laufzeit
Dams et al. Abstract interpretation of reactive systems: abstractions preserving $\forall $ CTL*, $\exists $ CTL* and CTL
DE69225527T2 (de) Verfahren und System zur automatischen Bestimmung der logischen Funktion einer Schaltung
Restall Subintuitionistic logics
EP0580663A1 (de) Verfahren zur verifikation datenverarbeitender systeme.
DE102011011951A1 (de) Anforderungsgetriebener Merkmalsentwicklungsprozess
DE69127798T2 (de) Verfahren und Gerät zum Organisieren und Analysieren von Zeitsteuerungsinformationen
DE10038499A1 (de) Verfahren und System für die verbesserte Entwicklungsprüfung mittels angepasster Ablaufverfolgung
DE19741915A1 (de) Zwischenspeicheroptimierung in Hardware-Logikemulations-Systemen
Danos et al. General reversibility
DE112018006331B4 (de) Testfallgenerierungsvorrichtung, Testfallgenerierungsverfahren und Testfallgenerierungsprogramm
DE102011012068A1 (de) Begriffsverwaltungssystem (tms)
DE10324594A1 (de) Verfahren zum Bereitstellen einer verbesserten Simulationsfähigkeit eines dynamischen Systems außerhalb der ursprünglichen Modellierungsumgebung
DE102015102034A1 (de) Verfahren zum Analysieren von Ergebnissen in einem Entwurfsautomatisierungsablauf für elektronische Systeme, Computersystem und Computerprogrammprodukt
DE69315364T2 (de) Verfahren zum Testen einer integrierten Schaltung und eine integrierte Schaltung mit einer Vielzahl von Funktionskomponenten und Verbindungs- und Schalter-Testkomponenten in verbindenden Kanälen zwischen Funktionskomponenten

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee