AT521931A1 - Procedure for comparing two models that describe concurrent systems - Google Patents
Procedure for comparing two models that describe concurrent systems Download PDFInfo
- Publication number
- AT521931A1 AT521931A1 ATA51088/2018A AT510882018A AT521931A1 AT 521931 A1 AT521931 A1 AT 521931A1 AT 510882018 A AT510882018 A AT 510882018A AT 521931 A1 AT521931 A1 AT 521931A1
- Authority
- AT
- Austria
- Prior art keywords
- event
- model
- events
- actions
- action
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 32
- 230000009471 action Effects 0.000 claims abstract description 316
- 230000036961 partial effect Effects 0.000 claims abstract description 116
- 238000012360 testing method Methods 0.000 claims description 105
- 230000001364 causal effect Effects 0.000 claims description 17
- 230000003068 static effect Effects 0.000 claims description 16
- 230000000694 effects Effects 0.000 claims description 14
- 230000035772 mutation Effects 0.000 claims description 12
- 230000008859 change Effects 0.000 claims description 11
- 238000003780 insertion Methods 0.000 claims description 7
- 230000037431 insertion Effects 0.000 claims description 7
- 238000011161 development Methods 0.000 claims description 6
- 238000012986 modification Methods 0.000 claims description 4
- 230000004048 modification Effects 0.000 claims description 4
- 238000005538 encapsulation Methods 0.000 claims description 3
- 238000005259 measurement Methods 0.000 claims description 3
- 230000000875 corresponding effect Effects 0.000 claims 3
- 230000004888 barrier function Effects 0.000 description 26
- 238000013459 approach Methods 0.000 description 7
- 238000010276 construction Methods 0.000 description 5
- 239000007787 solid Substances 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000007257 malfunction Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000010998 test method Methods 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000014616 translation Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/418—Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM]
- G05B19/41885—Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM] characterised by modeling, simulation of the manufacturing system
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B17/00—Systems involving the use of models or simulators of said systems
- G05B17/02—Systems involving the use of models or simulators of said systems electric
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Engineering & Computer Science (AREA)
- Manufacturing & Machinery (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
Abstract
Verfahren zum Vergleich von zwei Modellen (M; M1, M2), die nebenläufige Systeme beschreiben, a) wobei jedes der Modelle (M; M1, M2) jeweils durch eine Anzahl an Variablen (V) und Aktionen (A) beschrieben wird, b) wobei für zumindest Teile der beiden zu vergleichenden Modelle (M; M1, M2) jeweils eine Ereignisstruktur (ES; ES1, ES2) umfassend eine Anzahl an Ereignissen (E) festgelegt wird, c) wobei Ereignisstrukturen (ES; ES1, ES2) iterativ aufgebaut werden, indem zumindest für Teile der beiden Modelle (M; M1, M1) beginnend vom initialen Ereignis (EI) und dem initialen Zustand (I) zulässige Aktionen (A) ausgeführt werden, d) wobei eine erste Ereignisstruktur (ES1) eines ersten Modells (M1) mit einer zweiten Ereignisstruktur (ES2) eines zweiten Modells (M2) verglichen wird, um festzustellen, ob die erste Menge an möglichen Sequenzen von Aktionen (A) die durch die erste Ereignisstruktur (ES1) beschrieben wird, in der zweiten Menge an möglichen Sequenzen die durch die zweite Ereignisstruktur (ES2) beschrieben wird, enthalten ist, und e) wobei das Ergebnis des Vergleichs der beiden Modelle (M1, M2) als positiv betrachtet wird, wenn für jede Teilereignisstruktur (TE1) der ersten Ereignisstruktur (ES1) des ersten Modells (M1) eine kompatible Teilereignisstruktur (TE2) der zweiten Ereignisstruktur (ES2) des zweiten Modells (M2) gefunden wird.Method for comparing two models (M; M1, M2) that describe concurrent systems, a) each of the models (M; M1, M2) being described by a number of variables (V) and actions (A), b ) whereby for at least parts of the two models to be compared (M; M1, M2) an event structure (ES; ES1, ES2) comprising a number of events (E) is defined, c) where event structures (ES; ES1, ES2) iteratively be built up by carrying out at least parts of the two models (M; M1, M1) starting with the initial event (EI) and the initial state (I) permissible actions (A), d) being a first event structure (ES1) of a first Model (M1) with a second event structure (ES2) of a second model (M2) is compared to determine whether the first set of possible sequences of actions (A) described by the first event structure (ES1) in the second set of possible sequences caused by the second event structure r (ES2) is described, and e) the result of the comparison of the two models (M1, M2) is regarded as positive if, for each partial event structure (TE1), the first event structure (ES1) of the first model (M1) a compatible partial event structure (TE2) of the second event structure (ES2) of the second model (M2) is found.
Description
Um beispielsweise Maschinen oder komplexe industrielle Anlagen wie Stellwerke, die entsprechend von z. B. Eingaben die an die jeweilige Maschine oder Anlage übermittelt werden, verschiedene Ausgaben erzeugen können, auf z. B. deren Funktionszustand zu überprüfen, werden häufig Modelle der Anlagen erstellt und mit einem Modell der Anlage in z. B. einem Soll-Zustand verglichen. Aus dem Stand der Technik sind Verfahren zum Vergleich zweier Modelle bekannt, bei denen explizit Pfade aus den einzelnen Modellen extrahiert und miteinander verglichen werden. Weiters sind Verfahren zum Vergleich zweier Modelle bekannt, bei denen das kartesische Produkt aus den zu untersuchenden Modellen gebildet wird, wobei es erforderlich ist, den Zustand jedes Modells genau anzugeben. Nachteilig bei den bekannten Vorgehensweisen ist jedoch, dass diese rechenaufwendig sind, da eine große Anzahl an Pfaden durchsucht werden müssen, um sicherzustellen, dass idente Pfade auch tatsächlich ermittelt werden. For example, machines or complex industrial systems such as signal boxes, which are accordingly from z. B. Inputs that are transmitted to the respective machine or system can generate various outputs, for example on B. to check their functional state, models of the systems are often created and with a model of the system in z. B. compared a target state. Methods for comparing two models are known from the prior art, in which paths are explicitly extracted from the individual models and compared with one another. Furthermore, methods for comparing two models are known, in which the Cartesian product is formed from the models to be examined, it being necessary to specify the condition of each model precisely. A disadvantage of the known procedures, however, is that they are computationally expensive since a large number of paths have to be searched in order to ensure that identical paths are actually determined.
Außerdem kann die Gleichheit der Struktur, d.h. Ereignisse und Relationen, zweier Ereignisstrukturen verglichen werden, zum Beispiel indem eine Einbettung der einen Struktur in die andere gefunden wird (siehe z.B. Winskel, Glynn. "An introduction to event structures."Workshop/School/Symposium of the REX Project (Research and Education in Concurrent Systems). Springer, Berlin, Heidelberg, 1988). Der Nachteil dieser Methode ist, dass Ereignisstrukturen die dieselben Abfolgen von Aktionen mittels unterschiedlicher Strukturen abbilden nicht als gleich erkannt werden. In addition, the equality of the structure, i.e. Events and relations, two event structures are compared, for example by finding an embedding of one structure in the other (see e.g. Winskel, Glynn. "An introduction to event structures." Workshop / School / Symposium of the REX Project (Research and Education in Concurrent Systems). Springer, Berlin, Heidelberg, 1988). The disadvantage of this method is that event structures that depict the same sequence of actions using different structures are not recognized as the same.
Aufgabe der Erfindung ist es daher, ein Verfahren bereitzustellen, mit dem Modelle, die nichtdeterministische sowie nebenläufige Entscheidungen enthalten, schnell und The object of the invention is therefore to provide a method with which models which contain non-deterministic and concurrent decisions can be made quickly and
zuverlässig verglichen werden können. can be reliably compared.
Die Erfindung löst diese Aufgabe bei einem Verfahren zum Vergleich von zwei Modellen, die nebenläufige Systeme beschreiben, mit den Merkmalen des Patentanspruchs 1. Erfindungsgemäß ist dabei vorgesehen, dass a) jedes der Modelle jeweils durch eine Anzahl an Variablen und Aktionen beschrieben wird, - wobei jeder Variable jeweils eine endliche Anzahl an möglichen Werten zugeordnet wird, - wobei eine Menge an Zuständen festgelegt wird, wobei ein Zustand für jede Variable die Zuordnung jeweils eines ihrer möglichen Variablenwerte angibt, The invention solves this problem in a method for comparing two models that describe concurrent systems with the features of claim 1. According to the invention, it is provided that a) each of the models is described by a number of variables and actions, - a finite number of possible values is assigned to each variable, whereby a set of states is defined, one state for each variable indicating the assignment of one of its possible variable values,
- wobei ein neues Ereignis eingefügt wird und über eine Menge an Kausalitätsrelationen zu einer Menge an bestehenden Ereignissen hinzugefügt wird, wenn - where a new event is inserted and added to a set of existing events via a set of causality relations, if
- die Ereignisse entsprechend der bestehenden Konfliktrelation gemeinsam auftreten können, - the events can occur together according to the existing conflict relation,
- zwischen keinen zwei Ereignissen der Menge eine direkte oder indirekte Kausalitätsrelation besteht, - there is no direct or indirect causality relation between two events in the set,
- die Aktion entsprechend dem neuen Ereignis zulässig ist in dem Zustand, der durch das Ausführen aller Aktionen der Ereignissen der Menge, einschließlich aller diesen Ereignissen entsprechend der Kausalitätsrelation vorangegangenen Ereignisse, entsteht, und the action corresponding to the new event is permissible in the state which arises from the execution of all actions of the events of the set, including all those events preceding the causality relation, and
- entweder die Menge an Ereignissen nur aus dem initialen Ereignis besteht, oder jede Aktion entsprechend der Menge an bestehenden Ereignissen jeweils mit der Aktion des einzufügenden Ereignisses in Konflikt steht, - either the amount of events consists only of the initial event, or each action conflicts with the action of the event to be inserted, depending on the amount of existing events,
- nach Einfügen eines neuen Ereignisses eine neue Konfliktrelation zu einem zuvor eingefügten Ereignis hinzugefügt wird, - after inserting a new event, a new conflict relation is added to a previously inserted event,
- wenn die Ereignisse nicht in einer direkten oder indirekten - if the events are not in a direct or indirect
Kausalitätsrelation stehen und Stand causality relation and
- wenn, die Aktionen der beiden Ereignisse miteinander in Konflikt stehen, d) wobei eine erste Ereignisstruktur eines ersten Modells mit einer zweiten Ereignisstruktur eines zweiten Modells verglichen wird, um festzustellen, ob die erste Menge an möglichen Sequenzen von Aktionen die durch die erste Ereignisstruktur beschrieben wird, in der zweiten Menge an möglichen Sequenzen die durch die zweite Ereignisstruktur beschrieben wird, enthalten ist, - wobei zum Vergleich des ersten Modells mit dem zweiten Modell die erste Ereignisstruktur und die zweite FEreignisstruktur jeweils in konfliktfreie Teilereignisstrukturen getrennt werden, sodass sich derart eine erste und eine zweite Menge an konfliktfreien Teilereignisstrukturen ergeben, if the actions of the two events conflict with each other, d) a first event structure of a first model being compared with a second event structure of a second model to determine whether the first set of possible sequences of actions is described by the first event structure is contained in the second set of possible sequences described by the second event structure, whereby the first event structure and the second FE event structure are each separated into conflict-free partial event structures for comparison of the first model with the second model, so that such a first one and result in a second set of conflict-free sub-event structures,
- indem jede Ereignisstruktur an jeder Konfliktrelation rekursiv in zwei Teilereignisstrukturen so lange geteilt wird, bis zwischen keinen zwei Ereignissen einer Teilereignisstruktur Konfliktrelationen bestehen, indem by recursively dividing each event structure at each conflict relation into two sub-event structures until there are conflict relations between no two events of a sub-event structure by
- Ereignisse, die direkt oder indirekt durch eines der an der jeweiligen Konfliktrelation beteiligten Ereignisse bedingt werden, jeweils nur einer der - Events that are directly or indirectly caused by one of the events involved in the respective conflict relation, only one of the
gefunden wird, Is found,
wird. becomes.
Diese Vorgehensweise ermöglicht es, zwei Modelle, die nichtdeterministische sowie nebenläufige Entscheidungen enthalten, effizient zu vergleichen. Das erfindungsgemäße Verfahren ermöglicht weiters durch die Erstellung von Ereignisstrukturen eine besonders kompakte und somit speicherplatzsparende Repräsentation der möglichen Abfolgen von Aktionen der zu vergleichenden Systeme und bringt vorteilhafterweise eine Zeitersparnis im Vergleich zu bekannten Methoden zum Vergleich von Modellen für z.B. physische Systeme, sodass rascher Aussagen über den Funktionszustand bzw. eventuelle Störungen in komplexen Steuerungsanlagen möglich sind. Durch die explizite Ausnutzung von Nebenläufigkeiten für bestimmte Arten von Modellen wesentlich effizienter. This approach enables two models that contain non-deterministic and concurrent decisions to be compared efficiently. The method according to the invention also enables a particularly compact and thus memory-saving representation of the possible sequences of actions of the systems to be compared by creating event structures and advantageously saves time compared to known methods for comparing models for e.g. physical systems, so that faster statements about the functional status or possible malfunctions in complex control systems are possible. Explicitly using concurrency for certain types of models makes it much more efficient.
Um aus dem Vergleich zweier Modelle bzw. Systeme Testfälle zur Überprüfung von Systemen auf z.B. Störungen ableiten zu können, kann vorgesehen sein, dass in Schritt d) durch den Vergleich zweier Modelle Testfälle erstellt werden, wobei das erste Modell und das zweite Modell jeweils durch Modifikation des jeweils anderen Modells oder durch Modifikation eines gemeinsamen Vorgängermodells erstellt wurden, - wobei die Arten von Aktionen der Modelle zumindest Eingaben und Ausgaben umfassen, - wobei ein Testfall eine Sequenz von Eingaben und Ausgaben ist, in der Sequenz jeweils mindestens eine Eingabe und eine Ausgabe vorkommt und zu jeder Ein-/Ausgabe der Sequenz optional eine Liste an alternative Ausgaben, welche an dieser Stelle zulässig sind, aber nicht dem Testfall entsprechen, angeben werden kann, - wobei beim Vergleich der Modelle gemäß Schritt d) festgestellt wird, dass - Unterschiede in den Sequenzen von Eingaben und Ausgaben vorliegen, wobei in diesem Fall eine Teilereignisstruktur der Ereignisstruktur des ersten Modells vorhanden ist, die Sequenzen an Eingaben und Ausgaben beschreibt, die aufgrund der Ereignisstruktur des zweiten Modells nicht zulässig sind, - wobei ein Testfall aufgrund der Teilereignisstruktur des ersten Modells, die nicht zulässige Sequenzen an Eingaben und Ausgaben enthält, erstellt wird, um das Auftreten derartiger, nicht zulässiger, Sequenzen zu testen, und/oder ein Testfall aufgrund einer Teilereignisstruktur der Ereignisstruktur des zweiten Modells erstellt wird, um das Ausbleiben falscher Sequenzen In order to compare test cases for checking systems for e.g. To be able to derive disturbances, it can be provided that in step d) test cases are created by comparing two models, the first model and the second model each being created by modifying the respective other model or by modifying a common predecessor model, the Types of actions of the models include at least inputs and outputs, wherein a test case is a sequence of inputs and outputs, in which at least one input and one output occurs in the sequence and optionally a list of alternative outputs for each input / output of the sequence, which are permissible at this point, but do not correspond to the test case, can be specified, - whereby when comparing the models according to step d) it is found that - there are differences in the sequences of inputs and outputs, in which case a partial event structure of the event structure of the first model exists, the sequences of inputs and outputs be writes that are not permitted due to the event structure of the second model, - a test case is created on the basis of the partial event structure of the first model, which contains invalid sequences of inputs and outputs, in order to test the occurrence of such illegal sequences, and / or a test case is created on the basis of a partial event structure of the event structure of the second model, in order to avoid incorrect sequences
zu testen, to test,
Um beispielsweise die korrekte Funktionsweise eines Systems mit Hilfe von Testfällen zu überprüfen, kann vorgesehen sein, dass bei der Ausführung eines Testfalls in einem zu testenden System die Eingaben dem System zugeführt werden und beobachtete Ausgaben mit dem Testfall verglichen werden, - wobei ein Testfall als korrekt ausgeführt betrachtet wird, wenn bei korrekter Abfolge der Sequenz an Eingaben, die erwartete Sequenz an Ausgaben beobachtet wird, - wobei der Testfall als nicht konklusiv ausgeführt betrachtet wird, wenn bei korrekter Abfolge der Sequenz an Eingaben, eine Ausgabe beobachtet wird, die von der Sequenz abweicht, aber in der optionalen Liste an alternativen Ausgaben vorhanden ist, - wobei der Testfall als fehlgeschlagen betrachtet wird, wenn bei korrekter Abfolge der Sequenz an Eingaben, eine Ausgabe beobachtet wird, die von der Sequenz abweicht, und nicht in der optionalen Liste an alternativen Ausgaben vorhanden ist. For example, in order to check the correct functioning of a system with the help of test cases, it can be provided that when a test case is executed in a system to be tested, the inputs are fed to the system and observed outputs are compared with the test case, with a test case being correct is considered to be executed if the sequence of inputs is observed in the correct sequence of the input - the test case is considered to be non-conclusive if the sequence of inputs is correctly followed by an output which is observed by the sequence deviates, but is present in the optional list of alternative editions - the test case is considered to have failed if an output that deviates from the sequence is observed with the correct sequence of the inputs and not in the optional list of alternative editions Spending exists.
Diese Vorgehensweise ermöglicht vorteilhafterweise z.B. die Überprüfung, ob bei einem System auf vorgenommene Eingaben die gemäß einem vorgegebenen Testfall erwarteten Ausgaben erfolgen, sodass derart die korrekte Funktionsweise des Systems überprüft werden kann. Ein derartiger Test kann beispielsweise auf einem Steuerungssystem oder auch auf einem physischen System durchgeführt werden, wobei beobachtet wird, wie das System reagiert, d.h. welche Ausgaben auf die Eingaben der Sequenz der ausgeführten Testfälle erfolgen. This procedure advantageously enables e.g. Checking whether the input to a system is subject to the outputs expected according to a given test case, so that the correct functioning of the system can be checked in this way. Such a test can be carried out, for example, on a control system or also on a physical system, whereby it is observed how the system reacts, i.e. which outputs are made on the input of the sequence of the test cases executed.
7763 7763
Testfällen kann vorgesehen sein, dass Testfälle erstellt werden durch, Test cases can be provided for test cases to be created by
- gezieltes Einsetzen von Fehlern in einem Modell, insbesondere Mutation des Modells, und/oder - targeted insertion of errors in a model, in particular mutation of the model, and / or
- Weiterentwicklung eines Modells und/oder - further development of a model and / or
- unabhängige Entwicklung eines Modells auf mehrere Arten und/oder - Independent development of a model in several ways and / or
- verschiedene Abstraktionsebenen eines Modells. - Different levels of abstraction of a model.
Eine einfache Modellierung von Zwischenschritten, die von einem System ausgeführt werden, ohne dass diese eine nach außen sichtbare Veränderung des Verhaltens des Systems nach sich ziehen, kann erzielt werden, wenn A simple modeling of intermediate steps that are carried out by a system without this leading to an externally visible change in the behavior of the system can be achieved if
- die Arten von Aktionen der Modelle, zusätzlich zu Eingaben und Ausgaben, interne Aktionen umfassen, - the types of actions of the models, in addition to inputs and outputs, include internal actions,
- wobei interne Aktionen solche Aktionen angeben, die das System in einen neuen Zustand bringen, ohne dabei von außerhalb des Systems erkennbar und/oder steuerbar zu sein, und - where internal actions indicate actions that bring the system into a new state without being recognizable and / or controllable from outside the system, and
- wobei beim Aufbau von Ereignisstrukturen keine Ereignisse für interne Aktionen erstellt werden, insbesondere deren Effekte in alle auf eine interne Aktion folgenden Ereignisse, die Ein- bzw. Ausgaben entsprechen, einfließen. - Whereby when building event structures, no events are created for internal actions, in particular their effects flow into all events following an internal action, which correspond to inputs and outputs.
Auf diese Weise können derartige Systeme einfach und kompakt als Modelle repräsentiert werden, wobei die Modellerstellung gleichzeitig einfach durchzuführen ist. In this way, systems of this type can be represented simply and compactly as models, the model creation at the same time being easy to carry out.
Eine weitere Beschleunigung des Vergleichs zweier Modelle kann erzielt werden, wenn der Vergleich der ersten Ereignisstruktur des ersten Modells mit der zweiten Ereignisstruktur des zweiten Modells gemäß Schritt d) nach einer vorgegebenen Anzahl von Ereignissen abgebrochen wird. A further acceleration of the comparison of two models can be achieved if the comparison of the first event structure of the first model with the second event structure of the second model is terminated after step d) after a predetermined number of events.
Eine weitere Beschleunigung des Vergleichs zweier Modelle durch eine gezielte Auswahl der zu vergleichenden Modellteile kann erzielt werden, wenn - beim Aufbau von Ereignisstrukturen gemäß Schritt b) ein zu vergleichendes Modell, insbesondere beide zu vergleichenden Modelle, partiell in eine Ereignisstruktur überführt wird, wobei partielle Ereignisstrukturen aufgebaut werden die, beginnend von einem vorgegebenen Zustand, teilweisen Ausführungen des Modells entsprechen, bei A further acceleration of the comparison of two models can be achieved by a targeted selection of the model parts to be compared if - when building event structures according to step b), a model to be compared, in particular both models to be compared, is partially converted into an event structure, whereby partial event structures are built which, starting from a given state, correspond to partial versions of the model at
erforderlich macht, um weitere Ausgaben des Modells zu erhalten, und - und diese Ereignisstrukturen Teile eines ersten Modells, und Teile eines zweiten Modells, insbesondere Teilen einer Modifikation des ersten Modells oder durch Modifikation eines gemeinsamen Vorgängermodells erstellten Modells, repräsentieren, die den jeweiligen partiellen Ereignisstrukturen, beginnend von einem gemeinsamen Zustand, entsprechen, necessary to receive further editions of the model, and - and these event structures represent parts of a first model, and parts of a second model, in particular parts of a modification of the first model or a model created by modification of a common predecessor model, which represent the respective partial event structures , starting from a common state,
- wobei nur die Teilmenge aller Sequenzen von Aktionen nach Unterschieden - whereby only the subset of all sequences of actions according to differences
untersucht werden, die in den Ereignisstrukturen enthalten sind. examined, which are contained in the event structures.
Eine effiziente Auswahl von zu vergleichenden Modellteilen kann sichergestellt werden, wenn die Auswahl der zu untersuchenden Teilmengen von Sequenzen an Eingaben erfolgt durch An efficient selection of model parts to be compared can be ensured if the selection of the subsets of sequences to be examined is made by inputs
- Heuristiken und/oder - heuristics and / or
- zufällige Auswahl und/oder - random selection and / or
- komplette Auswahl. - complete selection.
Eine erhöhte Effizienz des Vergleichs zweier Modelle kann erzielt werden, indem beim Aufbau von Ereignisstrukturen gemäß Schritt c) eine statische Analyse von Zugriffen auf Variablen herangezogen wird, - wobei zwei Aktionen als in Konflikt stehend angenommen werden, wenn die eine Aktion eine Variable verwendet, der die andere Aktion einen Wert zuweist, oder beide Aktionen derselben Variable einen Wert zuweisen, und - wobei Information über Zugriffe auf Variablen einer Aktion herangezogen werden, um die Menge an anderen Aktionen einzuschränken, deren Zulässigkeit sich nach der Ausführung der Aktion verändert haben kann, - wobei sich die Zulässigkeit einer ersten Aktion durch die Ausführung einer zweiten Aktion nur dann ändern kann, wenn die Bedingung zur Zulässigkeit der ersten Aktion eine Variable beinhaltet, die von der zweiten Aktion verändert wird, - wobei insbesondere eine Variable nur dann von einer Aktion verändert werden kann, wenn die Ausführung der Aktion der Variable einen Wert zuweist, - wobei beim Aufbau von Ereignisstrukturen nach dem Einfügen eines Ereignisses entsprechend einer Aktion lediglich für die derart eingeschränkte Menge an Aktionen, deren Zulässigkeit sich geändert haben kann, und alle Ereignisse, die mit dem eingefügten Ereignis in Konflikt stehen, überprüft wird, ob ein neues Ereignis mit einer solchen Aktion eingefügt wird. An increased efficiency of the comparison of two models can be achieved by using a static analysis of accesses to variables when building event structures according to step c), whereby two actions are assumed to be conflicting if the one action uses a variable that the other action assigns a value, or both actions assign a value to the same variable, and - whereby information about access to variables of an action is used to limit the amount of other actions, the admissibility of which may have changed after the execution of the action, whereby the permissibility of a first action can only change when a second action is carried out if the condition for permissibility of the first action contains a variable that is changed by the second action, - in particular a variable being changed only by an action can, if the execution of the action of the variable a We rt assigns, - whereby when building event structures after the insertion of an event corresponding to an action, only the restricted amount of actions, the admissibility of which may have changed, and all events that conflict with the inserted event are checked whether a new event with such an action is inserted.
- wobei eine Objektkapselung des jeweils betrachteten Modells verwendet wird, um mehrere Instanzen eines gleichen gemeinsamen Objekttyps zu erstellen, an object encapsulation of the model under consideration is used to create multiple instances of the same common object type,
- wobei zur Analyse von Zugriffen auf Variablen zwischen gleichen Variablen verschiedener Instanzen desselben Objekttyps unterschieden wird, indem dynamisch zum Ausführungszeitpunkt die Instanz einer Variable mit dem jeweiligen Objekttyp mitgeführt - A distinction is made between the same variables of different instances of the same object type for the analysis of accesses to variables by dynamically carrying the instance of a variable with the respective object type at the time of execution
wird. becomes.
Eine einfache Modellerstellung für physische Systeme kann erzielt werden, wenn A simple model building for physical systems can be achieved, though
- die Zustände jedes Modells durch Messungen von Zustandsgrößen des jeweils durch das Modell repräsentierten Systems angegeben werden und - the states of each model are indicated by measurements of state variables of the system represented by the model and
- durch die Ausführung der Aktionen jedes Modells die Veränderung eines Aktuators des jeweiligen Systems bewirkt wird. - The execution of the actions of each model causes the change of an actuator of the respective system.
Um zu überprüfen, ob bei einem physischen System Testfälle korrekt ausgeführt werden und beispielsweise auf vorgegebene Eingaben die korrekten, an einem Referenzsystem beobachteten, Ausgaben erfolgen, kann vorgesehen sein, dass ein auf Grundlage eines Referenzmodells erstelltes System untersucht wird, indem In order to check whether test cases are carried out correctly in a physical system and, for example, the correct outputs observed on a reference system are carried out on predefined inputs, it can be provided that a system created on the basis of a reference model is examined by:
- durch Mutation des Referenzmodell ein weiteres Modell erzeugt wird, - another model is generated by mutating the reference model,
- dass erfindungsgemäß Testfälle durch Vergleich des weiteren Modells mit dem Referenzmodell erstellt werden, that test cases according to the invention are created by comparing the further model with the reference model,
- das System anhand der so erzeugten Testfälle erfindungsgemäß getestet wird, wobei insbesondere vorgesehen ist, dass - The system is tested according to the invention on the basis of the test cases thus generated, it being provided in particular that
- bei der Ausführung eines Testfalls im zu testenden System die Eingaben dem System zugeführt werden, indem die Sensoren des Systems mit physikalischen Größen beaufschlagt werden, für die sie sensitiv sind, when executing a test case in the system to be tested, the inputs are fed to the system by applying physical variables to the system's sensors for which they are sensitive,
- wobei die Ausgaben des Systems festgestellt werden, indem überprüft wird, ob ein Aktuator eine Aktion ausführt, und - determining the expenditure of the system by checking whether an actuator is performing an action, and
- beobachtete Ein- und Ausgaben mit dem jeweiligen Testfall verglichen werden. - observed inputs and outputs are compared with the respective test case.
Weichen beispielsweise trotz korrekter Eingaben in der Durchführung der jeweiligen Turnouts, for example, despite correct entries in the implementation of the respective
Testfälle die tatsächlichen Ausgaben von den erwarteten Ausgaben ab, ist dies ein Hinweis darauf, dass das untersuchte physische System, z.B. die getestete Test cases the actual expenditure from the expected expenditure, this is an indication that the examined physical system, e.g. the tested
Steuerelektronik, Fehler aufweist, die zu beheben sind, um eine störungs- und unfallfreie Regelung der jeweils gesteuerten Anlage oder Maschine zu gewährleisten. Control electronics, has errors that must be remedied to ensure trouble-free and accident-free control of the controlled system or machine.
Eine Ableitung eines zuverlässigen Referenzmodells kann gewährleistet werden, wenn das Referenzmodell aus der Beobachtung eines physischen Referenzsystems gelernt A derivation of a reliable reference model can be guaranteed if the reference model is learned from the observation of a physical reference system
wird. becomes.
Weitere Vorteile und Ausgestaltungen der Erfindung ergeben sich aus der Beschreibung und den beiliegenden Zeichnungen. Further advantages and refinements of the invention result from the description and the accompanying drawings.
Die Erfindung ist im Folgenden anhand von besonders vorteilhaften, aber nicht einschränkend zu verstehenden Ausführungsbeispielen in den Zeichnungen schematisch dargestellt und wird unter Bezugnahme auf die Zeichnungen beispielhaft beschrieben. The invention is shown schematically in the following with the aid of particularly advantageous, but not restrictive, exemplary embodiments in the drawings and is described by way of example with reference to the drawings.
Im Folgenden zeigen schematisch: The following shows schematically:
Fig. 1 den initialen Zustand eines ersten Modells, 1 shows the initial state of a first model,
Fig. 2 bis Fig. 13 den Aufbau einer Ereignisstruktur für das erste Modell. FIGS. 2 to 13 show the structure of an event structure for the first model.
Fig. 14a die Ereignisstruktur eines ersten Modells, 14a the event structure of a first model,
Fig. 14b die Ereignisstruktur eines zweiten Modells 14b shows the event structure of a second model
Fig. 15, Fig. 16 die Teilereignisstrukturen des ersten Modells aus Fig. 14a, 15, FIG. 16 the partial event structures of the first model from FIG. 14 a,
Fig. 17 bis Fig. 22 die Teilereignisstrukturen des zweiten Modells aus Fig. 14b, 17 to 22 show the partial event structures of the second model from FIG. 14b,
Fig. 23 bis Fig. 28 den Vergleich der Ereignisstrukturen des ersten und des zweiten Modells aus Fig. 14a bzw. Fig. 14b, 23 to FIG. 28 the comparison of the event structures of the first and the second model from FIGS. 14a and 14b,
Fig. 29 bis Fig. 38 den Vergleich zweier Ereignisstrukturen mit Revidieren von Zuordnungen, 29 to 38 the comparison of two event structures with revisions of assignments,
Fig. 39 ein Beispiel einer Ereignisstruktur mit internen Aktionen, 39 shows an example of an event structure with internal actions,
Fig. 40 bis Fig. 42 das Reduzieren der Ereingisstruktur aus Fig. 39 um die internen Aktionen, 40 to 42 the reduction of the event structure from FIG. 39 by the internal actions,
Fig. 43 ein Beispiel einer Ereignisstruktur mit internen Aktionen und Konfliktrelationen, 43 shows an example of an event structure with internal actions and conflict relations,
Fig. 44, Fig. 45 das Auflösen von Konfliktrelationen bei der Ereignisstruktur aus Fig. 43, Fig. 46 bis Fig. 48 ein Beispiel für den partiellen Aufbau von Ereignisstrukturen, 44, 45 the resolution of conflict relations in the event structure from FIG. 43, FIGS. 46 to 48 show an example of the partial structure of event structures,
Fig. 49 bis Fig. 54 ein Beispiel einer statischen Analyse für den Aufbau von Ereignisstrukturen, 49 to 54 show an example of a static analysis for the construction of event structures,
Fig. 55 ein Beispiel einer objektgenauen statischen Analyse für den Aufbau von Ereignisstrukturen, 55 an example of an object-specific static analysis for the construction of event structures,
Fig. 56, Fig. 57 Beispiel für das Erstellen von Testfällen durch Mutation eines Modells. Fig. 56, Fig. 57 Example of creating test cases by mutating a model.
Im Folgenden wird ein erfindungsgemäßes Verfahren zum Vergleich zweier Modelle anhand eines für eine Bahnkreuzung erstellten Modells M beispielhaft beschrieben. In the following, a method according to the invention for comparing two models is described by way of example using a model M created for an intersection.
Modell M Model M
Im gezeigten Ausführungsbeispiel werden eine Bahnkreuzung sowie die ihr zugehörigen Sicherheitselemente modelliert. Im Beispiel enthält das Modell M der Bahnkreuzung als Sicherheitselemente einen Schranken, und ein Warnlicht für ankommende Autos, sowie ein Haltesignal, das ankommenden Zügen die Durchfahrt nur dann ermöglicht, wenn die Schranke unten und das Warnlicht an ist, vorhanden. In the exemplary embodiment shown, a railway crossing and the associated safety elements are modeled. In the example, the model M of the railroad crossing contains a barrier as a safety element, and a warning light for arriving cars, as well as a stop signal that allows incoming trains to pass only when the barrier is down and the warning light is on.
Außerdem wird die Situation modelliert, dass sich Geröll auf dem Gleis befindet. In diesem Fall ist keine Durchfahrt des Zuges erlaubt. In addition, the situation is modeled that there is rubble on the track. In this case, the train cannot pass through.
Zum Vergleich zweier Modelle M wird erfindungsgemäß jedes der Modelle M jeweils durch eine Anzahl von Variablen V und eine Anzahl an Aktionen A beschrieben. Dabei ist jeder Variable V jeweils eine Anzahl an möglichen Werten W zugeordnet, wodurch sich eine Menge an Zuständen ergibt, in der jede Variable V jeweils genau einen dieser möglichen Werte W aufweist. Weiters besitzt jede Variable V genau einen initialen Zustand |. To compare two models M, each of the models M is described according to the invention by a number of variables V and a number of actions A. Each variable V is assigned a number of possible values W, which results in a set of states in which each variable V has exactly one of these possible values W. Furthermore, each variable V has exactly one initial state |.
Jedes Modell M beschreibt die Ausführung von, möglicherweise unendlichen, Sequenzen seiner Aktionen A, wobei es zu jeder Zeit der Ausführung des Modells M einen aktuellen Zustand gibt. Zu Beginn ist dies der initiale Zustand |, der durch auf diesen folgende Aktionen A verändert wird. Jede Aktion A wird dabei beschrieben durch eine Anzahl an Bedingungen an Variablenwerten W entsprechend dem aktuellen Zustand des Modells M, die zur Ausführung einer Aktion A im jeweils aktuellen Zustand erfüllt sein müssen, und welche durch propositional-logische Verknüpfungen (z.B. Konjunktion, Disjunktion, (Bi-)lmplikation, Negation) verknüpft werden, sowie eine Anzahl an Effekten, die angeben, wie eine jeweils ausgeführte Aktion A die Variablenwerte W des Zustands verändert. Die Effekte können auch leer sein, was für Aktionen A genutzt werden kann, deren Ausführung lediglich die Erfüllung einer Bedingung signalisiert. Each model M describes the execution of, possibly infinite, sequences of its actions A, there being a current state at any time during the execution of the model M. At the beginning, this is the initial state |, which is changed by actions A following this. Each action A is described by a number of conditions of variable values W corresponding to the current state of the model M, which must be fulfilled in order to perform an action A in the current state, and which are provided by propositional-logical links (e.g. conjunction, disjunction, ( Bi-) implication, negation), as well as a number of effects which indicate how an action A carried out in each case changes the variable values W of the state. The effects can also be empty, which can be used for actions A, the execution of which only signals the fulfillment of a condition.
Im gezeigten Ausführungsbeispiel umfasst das für die Bahnkreuzung erstellte Modell M die folgenden Variablen V: In the exemplary embodiment shown, the model M created for the railroad crossing comprises the following variables V:
Tabelle 1: Variablen V des Modells M Variable V Mögliche Variablenwerte W | Initialer Wert I Table 1: Variables V of the model M Variable V Possible variable values W | Initial value I
Position des Zuges Pos Fern / Nah / Fern Auf der Kreuzung (Kreuz) Position of the train Pos Fern / Nah / Fern On the crossing (cross)
Lichtsignal L True / False False Schrankenposition S Winkel von 0 bis 90 Grad 90 Light signal L True / False False Barrier position S Angle from 0 to 90 degrees 90
Stopsignal für Zug Stop True / False True Geröll auf der Kreuzung G True / False False Stop signal for train stop True / False True Rubble at the intersection G True / False False
In Tabelle 2 sind die Aktionen A des Modells M der Bahnkreuzung beschrieben. Eine Aktion A umfasst im gezeigten Ausführungsbeispiel jeweils zumindest eine Bedingung und einen Effekt, der eintritt, wenn die Bedingung erfüllt ist und die Aktion ausgeführt wird. Die Bedingungen und Effekte sind dabei der Einfachheit halber in einem Pseudocode angegeben, der jedoch keine bestimmte Programmiersprache implizieren soll. Zum Beispiel ist die Bedingung der Aktion LAn „Pos==Nah“, also dass das Zug kurz vor der Kreuzung ist, und der Effekt ist L:=True, also dass der Variable Lichtsignal L den Wert Table A describes the actions A of the model M of the railroad crossing. In the exemplary embodiment shown, an action A in each case comprises at least one condition and an effect which occurs when the condition is fulfilled and the action is carried out. For the sake of simplicity, the conditions and effects are given in a pseudocode, which, however, is not intended to imply any particular programming language. For example, the condition of action LAn is "Pos == Near", meaning that the train is just before the intersection, and the effect is L: = True, meaning that the variable light signal L has the value
„True" zugeordnet wird. "True" is assigned.
Tabelle 2: Aktionen des Modells M Table 2: Actions of model M
Aktion A | Aktionstyp | Beschreibung Bedingung Effekt Action A | Action type | Description Condition Effect
ZNah Eingabe Der Zug nähert sich der | Pos==Fern Pos:=Nah Kreuzung Znear input The train is approaching | Pos == Fern Pos: = Near intersection
ZKreuz Eingabe Der Zug fährt über die | Pos==Nah && Pos:=Kreuz ZCross entry The train travels via | Pos == Nah && Pos: = cross
Kreuzung, sofern das | Stop==False Stopsignal aus ist Intersection, provided that | Stop == False stop signal is off
ZFern Eingabe Der Zug fährt aus der | Pos==Kreuz Pos:=Fern ZFern input The train leaves the | Pos == Kreuz Pos: = Fern
Kreuzung aus Crossing out
GKreuz Eingabe Geröll gelangt auf die | G==False G:=True Bahnkreuzung GCross entry rubble reaches the | G == False G: = True crossing
LAn Ausgabe Das Warnlicht geht an, | Pos==Nah && L:=True sobald sich ein Zug | L==False nähert LAn Issue The warning light comes on, | Pos == Nah && L: = True as soon as a train | L == False is approaching
LAus Ausgabe Das Warnlicht geht aus | Pos==Fern && L:=False sobald sich der Zug | Stop==True && entfernt und das | L==True LAaus Issue The warning light goes out | Pos == Fern && L: = False as soon as the train | Stop == True && removed and that | L == True
Stopsignal des Zugs an ist Stop signal of the train is on
SUnten Ausgabe Die Schranke schließt | Pos==Nah && S:=0 sich sobald sich ein Zug | S==90 nähert SOUTH EDITION The barrier closes | Pos == Close && S: = 0 as soon as a train | S == 90 is approaching
SOben Ausgabe Die Schranke Öffnet sich | Pos==Fern && S:=90 sobald sich der Zug | Stop==True && entfernt und das | S==0 Above issue The barrier opens | Pos == Fern && S: = 90 as soon as the train | Stop == True && removed and that | S == 0
Stopsignal des Zugs an ist Stop signal of the train is on
Stop Ausgabe Das Stopsignal für den | Pos==Fern && Stop:= True Zug geht an sobald sich | Stop==False der Zug entfernt Stop output The stop signal for the | Pos == Fern && Stop: = True train starts as soon as | Stop == False the train is removed
Go Ausgabe Das Stopsignal für den | Pos==Nah && Stop:=False Zug geht aus sobald sich | Stop==True && der Zug annähert, der | S==0 && Schranken geschlossen, | L==True && das Warnlicht an und | G==False kein Geröll auf der Go output The stop signal for the | Pos == Close && Stop: = False train goes out as soon as | Stop == True && the train approaches that | S == 0 && barriers closed, | L == True && the warning light on and | G == False no scree on the
Kreuzung ist Crossing is
Im gezeigten Ausführungsbeispiel handelt es sich bei den Aktionen A um Eingaben und Ausgaben, wobei es bei einem erfindungsgemäßen Verfahren jedoch nicht zwingend ist, eine derartige Kategorisierung von Aktionstypen vorzunehmen. In the exemplary embodiment shown, actions A are inputs and outputs, although it is not mandatory in the method according to the invention to categorize action types in this way.
Das Modell M der Bahnkreuzung beschreibt die Ausführung der in Tabelle 2 angeführten Aktionen A in einer Sequenz, die weitergeführt werden kann, solange es eine zulässige Aktion A gibt. Die Aktionen A verändern zunächst den vorgegebenen, initialen Zustand | des Modells M (siehe Tabelle 2), in dem der Zug von der Bahnkreuzung entfernt (Pos:Fern), das Lichtsignal L aus (L:False), der Schranken geöffnet (S:90) und das Stopsignal für den Zug angeschaltet ist (Stop:True) und kein Geröll G auf den Gleisen liegt (G:False). The model M of the railroad crossing describes the execution of the actions A listed in Table 2 in a sequence that can be continued as long as there is a permissible action A. Actions A initially change the predefined, initial state | of the model M (see table 2), in which the train is removed from the train crossing (Pos: Fern), the light signal L off (L: False), the barrier is open (S: 90) and the stop signal for the train is switched on ( Stop: True) and there is no rubble G on the tracks (G: False).
Folgend auf den initialen Zustand | ist im gezeigten Modell M als Aktion A lediglich möglich (siehe Tabelle 2, Fig. 2 und Fig. 3), dass sich der Zug dem Bahnschranken nähert (ZNah), da nur für diese Aktion alle Bedingungen erfüllt sind, nämlich konkret, dass der Zug vom Bahnschranken entfernt ist (Pos==Fern). Für alle weiteren möglichen Aktionen des Systems sind zumindest Teile der jeweiligen Bedingungen nicht erfüllt. Als weitere Aktion folgend auf den initialen Zustand | wäre zwar ebenfalls möglich, dass Following the initial state | It is only possible in the model M shown as action A (see table 2, FIG. 2 and FIG. 3) that the train is approaching the railroad barrier (ZNah), since only for this action all conditions are met, namely specifically that the Train is away from the barrier (Pos == Fern). For all other possible actions of the system, at least parts of the respective conditions are not met. As a further action following the initial state | would also be possible that
Geröll (GKreuz) auf die Bahnkreuzung gelangt, was aber erst zu einem späteren Zeitpunkt erläutert werden soll. Scree (GKreuz) arrives at the crossing, but this will only be explained at a later point in time.
Nachdem die weiteren Aktionen LAn, also das Annähern des Zugs an die Kreuzung, SUnten, also das Schließen des Schrankens, und Go, also das Ausschalten des Stop Signals, ist der Zustand des Modells, [Pos:Nah, L:True, S:0, Stop:False, G:False], d.h., dass der Zug der Bahnkreuzung nahe ist, das Lichtsignal L an, der Schranken geschlossen und das Stopsignal für den Zug ausgeschaltet ist und kein Geröll auf den Gleisen liegt (G:False). After the further actions LAn, that is, the approach of the train to the intersection, SO down, that is to say the closing of the barrier, and Go, that is to say the switching off of the stop signal, the state of the model is, [Pos: Nah, L: True, S: 0, Stop: False, G: False], which means that the train is near the crossing, the light signal L on, the barrier closed and the stop signal for the train switched off and there is no rubble on the tracks (G: False).
Derselbe Zustand wird erreicht, wenn anschließend an das Annähern des Zugs an die Kreuzung zunächst der Schranken geschlossen und anschließend das Lichtsignal angeschaltet wird, also die Sequenz durchgeführt wird. Nach der Sequenz ist der Zustand des Modells ident zum initialen Zustand |, weswegen die Sequenz theoretisch unendlich lang fortgesetzt werden kann. Ereignisstrukturen ES Um einen Vergleich zweier Modelle M schnell und mit wenig Rechenaufwand durchführen zu können, wird erfindungsgemäß für jedes der Modelle M jeweils eine Ereignisstruktur ES umfassend eine Anzahl von Ereignissen E festgelegt. Dabei gibt es jeweils ein eindeutiges initiales Ereignis El, das unter allen Ereignissen E als erstes eintritt und kennzeichnet, dass noch kein anderes Ereignis E eingetreten ist. Jedes Ereignis E, das vom initialen Ereignis El verschieden ist, ist durch eine Aktion A und einer Menge an vorangegangenen Ereignissen E eindeutig gekennzeichnet. Dabei werden Kausalitätsrelationen KaR zwischen einem bedingenden Ereignis und einem bedingten Ereignis festgelegt, wenn für den Eintritt des bedingten Ereignisses das Auftreten des bedingenden Ereignisses notwendig ist. In den folgenden Abbildungen sind derartige Kausalitätsrelationen KaR als durchgehende Pfeile dargestellt, die angeben, dass, damit das Ereignis E am Ende des Pfeils eintreten kann, das Ereignis E am Anfang des Pfeils eingetreten sein muss. Für jedes Ereignis E sind dabei eine oder mehrere Kausalitätsrelationen KaR möglich. Konfliktrelationen KoR werden zwischen zwei Ereignissen E festgelegt, wenn der Eintritt des einen Ereignisses E das künftige Eintreten des jeweils anderen Ereignisses E The same state is reached when the barrier is closed when the train approaches the crossing and the light signal is then switched on, i.e. the sequence is carried out. After the sequence, the state of the model is identical to the initial state |, which is why the sequence can theoretically continue indefinitely. Event structures ES In order to be able to carry out a comparison of two models M quickly and with little computing effort, an event structure ES comprising a number of events E is defined for each of the models M in accordance with the invention. There is a unique initial event E1 that occurs first among all events E and indicates that no other event E has yet occurred. Each event E, which is different from the initial event E1, is uniquely identified by an action A and a set of previous events E. Causality relationships KaR are defined between a conditional event and a conditional event if the occurrence of the conditional event is necessary for the occurrence of the conditional event. In the following figures, such causal relationships KaR are shown as solid arrows, which indicate that in order for event E to occur at the end of the arrow, event E must have occurred at the beginning of the arrow. One or more causal relations KaR are possible for each event E. Conflict relations KoR are determined between two events E if the occurrence of one event E the future occurrence of the other event E
Nach der Sequenz ist der Zustand des Modells ident zum initialen Zustand |, weswegen die Sequenz theoretisch unendlich lang fortgesetzt werden kann. Ereignisstrukturen ES Um einen Vergleich zweier Modelle M schnell und mit wenig Rechenaufwand durchführen zu können, wird erfindungsgemäß für jedes der Modelle M jeweils eine Ereignisstruktur ES umfassend eine Anzahl von Ereignissen E festgelegt. Dabei gibt es jeweils ein eindeutiges initiales Ereignis El, das unter allen Ereignissen E als erstes eintritt und kennzeichnet, dass noch kein anderes Ereignis E eingetreten ist. Jedes Ereignis E, das vom initialen Ereignis El verschieden ist, ist durch eine Aktion A und einer Menge an vorangegangenen Ereignissen E eindeutig gekennzeichnet. Dabei werden Kausalitätsrelationen KaR zwischen einem bedingenden Ereignis und einem bedingten Ereignis festgelegt, wenn für den Eintritt des bedingten Ereignisses das Auftreten des bedingenden Ereignisses notwendig ist. In den folgenden Abbildungen sind derartige Kausalitätsrelationen KaR als durchgehende Pfeile dargestellt, die angeben, dass, damit das Ereignis E am Ende des Pfeils eintreten kann, das Ereignis E am Anfang des Pfeils eingetreten sein muss. Für jedes Ereignis E sind dabei eine oder mehrere Kausalitätsrelationen KaR möglich. Konfliktrelationen KoR werden zwischen zwei Ereignissen E festgelegt, wenn der Eintritt des einen Ereignisses E das künftige Eintreten des jeweils anderen Ereignisses E After the sequence, the state of the model is identical to the initial state |, which is why the sequence can theoretically continue indefinitely. Event structures ES In order to be able to carry out a comparison of two models M quickly and with little computing effort, an event structure ES comprising a number of events E is defined for each of the models M according to the invention. There is a unique initial event E1, which occurs first among all events E and indicates that no other event E has yet occurred. Each event E that is different from the initial event E1 is uniquely identified by an action A and a set of previous events E. Causality relationships KaR are defined between a conditional event and a conditional event if the occurrence of the conditional event is necessary for the occurrence of the conditional event. In the following figures, such causal relationships KaR are shown as solid arrows, which indicate that for event E to occur at the end of the arrow, event E must have occurred at the beginning of the arrow. One or more causal relations KaR are possible for each event E. Conflict relations KoR are determined between two events E if the occurrence of one event E the future occurrence of the other event E
Ereignisstrukturen ES Event structures ES
Um einen Vergleich zweier Modelle M schnell und mit wenig Rechenaufwand durchführen zu können, wird erfindungsgemäß für jedes der Modelle M jeweils eine Ereignisstruktur ES umfassend eine Anzahl von Ereignissen E festgelegt. Dabei gibt es jeweils ein eindeutiges initiales Ereignis El, das unter allen Ereignissen E als erstes eintritt und kennzeichnet, dass noch kein anderes Ereignis E eingetreten ist. Jedes Ereignis E, das vom initialen Ereignis El verschieden ist, ist durch eine Aktion A und einer Menge an vorangegangenen Ereignissen E eindeutig gekennzeichnet. In order to be able to carry out a comparison of two models M quickly and with little computing effort, an event structure ES comprising a number of events E is defined for each of the models M according to the invention. There is a unique initial event E1 that occurs first among all events E and indicates that no other event E has yet occurred. Each event E, which is different from the initial event E1, is uniquely identified by an action A and a set of previous events E.
Dabei werden Kausalitätsrelationen KaR zwischen einem bedingenden Ereignis und einem bedingten Ereignis festgelegt, wenn für den Eintritt des bedingten Ereignisses das Auftreten des bedingenden Ereignisses notwendig ist. In den folgenden Abbildungen sind derartige Kausalitätsrelationen KaR als durchgehende Pfeile dargestellt, die angeben, dass, damit das Ereignis E am Ende des Pfeils eintreten kann, das Ereignis E am Anfang des Pfeils eingetreten sein muss. Für jedes Ereignis E sind dabei eine oder mehrere Kausalitätsrelationen KaR möglich. Causality relationships KaR are defined between a conditional event and a conditional event if the occurrence of the conditional event is necessary for the occurrence of the conditional event. In the following figures, such causal relationships KaR are shown as solid arrows, which indicate that in order for event E to occur at the end of the arrow, event E must have occurred at the beginning of the arrow. One or more causal relations KaR are possible for each event E.
Konfliktrelationen KoR werden zwischen zwei Ereignissen E festgelegt, wenn der Eintritt des einen Ereignisses E das künftige Eintreten des jeweils anderen Ereignisses E Conflict relations KoR are determined between two events E if the occurrence of one event E the future occurrence of the other event E
ausschließt. In den Figuren sind derartige Konfliktrelationen KoR als strichlierte Linien dargestellt, die angeben, dass, wenn eines der beiden durch eine derartige Linie verbundenen Ereignisse E eingetreten ist, dass jeweils andere nicht eintreten darf. Eine derartige Konfliktrelation KoR ist dabei nicht gerichtet. excludes. Such conflict relations KoR are shown in the figures as dashed lines, which indicate that if one of the two events E connected by such a line has occurred, the other may not occur. Such a conflict relation KoR is not aimed at.
Es kann dabei jedem Ereignis E ein Zustand zugeordnet werden, der entsteht, indem beginnend vom initialen Zustand | Aktionen, entsprechend dem Ereignis E sowie Ereignissen, die direkt oder indirekt das Ereignis E durch Kausalitätsrelationen KaR bedingen, in einer beliebigen Reihenfolge ausgeführt werden, sodass Aktionen entsprechend bedingenden Ereignissen vor Aktionen entsprechend den bedingten Ereignissen ausgeführt werden. Dieser Zustand wird als der dem Ereignis zugeordnete Zustand bezeichnet. A state can be assigned to each event E which arises by starting from the initial state | Actions corresponding to event E as well as events that directly or indirectly cause event E through causality relations KaR are carried out in any order, so that actions corresponding to conditional events are carried out before actions corresponding to the conditional events. This state is referred to as the state associated with the event.
Weiters kann einer Menge an Ereignissen, zwischen denen keine Konfliktrelation KoR vorhanden ist und die keine direkt oder indirekt bedingenden Ereignisse haben, ein Zustand zugeordnet werden, der entsteht, indem Aktionen entsprechend allen Ereignissen der Menge, sowie allen Ereignissen, die ein Ereignis der Menge direkt oder indirekt durch Kausalitätsrelationen KaR bedingen, in beliebiger Reihenfolge ausgeführt werden, sodass Aktionen entsprechend bedingenden Ereignissen vor Aktionen entsprechend den bedingten Ereignissen ausgeführt werden. Dieser Zustand wird als der der Menge an Ereignissen zugeordnete Zustand bezeichnet. Furthermore, a state can be assigned to a set of events between which there is no conflict relation KoR and which have no directly or indirectly related events, which arises from actions corresponding to all events of the set, as well as all events that an event of the set directly or indirectly due to causal relationships KaR, are carried out in any order so that actions corresponding to conditional events are carried out before actions corresponding to the conditional events. This state is referred to as the state associated with the set of events.
Im gezeigten Ausführungsbeispiel werden Ereignisstrukturen ES, wie in Tabelle 3 angegeben, dargestellt: In the exemplary embodiment shown, event structures ES as shown in Table 3 are shown:
Tabelle 3: Ereignisse E des Modells M Konzept Beschreibung Table 3: Events E of the model M Concept Description
Ereignis E Jedes Ereignis erhält eine eindeutige Nummer und ist mit einer Aktion beschriftet. Event E Each event is given a unique number and is labeled with an action.
Initiales Ereignis El Dem initialen Ereignis wird keine Aktion zugeordnet. Initial event El No action is assigned to the initial event.
Kausalitätsrelation KaR Eine Kausalitätsrelation wird mittels eines Pfeils von bedingenden Ereignis (hier das initiale Ereignis) zu bedingtem Ereignis (hier Ereignis 1). Causality relation KaR A causality relation is transformed from a conditional event (here the initial event) to a conditional event (here event 1) by means of an arrow.
Konfliktrelation KoR Eine Konfliktrelation wird mit einer strichlierten Linie zwischen den Ereignissen dargestellt. Conflict relation KoR A conflict relation is shown with a dashed line between the events.
Aufbau von Ereignisstrukturen ES Structure of event structures ES
Ereignisstrukturen ES werden iterativ aufgebaut, indem, beginnend vom initialen Ereignis Event structures ES are built iteratively, starting from the initial event
El, und dem initialen Zustand I, zulässige Aktionen A ausgeführt werden. Dabei wird El, and the initial state I, permissible actions A are carried out. Doing so
jeweils ein neues Ereignis E mit Kausalitätsrelationen KaR zu einer Menge an a new event E with causality relations KaR to a quantity
bestehenden Ereignissen E hinzugefügt wird, wenn existing events E is added when
- die Ereignisse (E) entsprechend der bestehenden Konfliktrelation (KoR) gemeinsam auftreten können, - the events (E) can occur together according to the existing conflict relation (KoR),
- zwischen keinen zwei Ereignissen (E) der Menge eine direkte oder indirekte Kausalitätsrelation (KaR) besteht, - there is no direct or indirect causality relation (KaR) between two events (E) of the set,
- die Aktion entsprechend dem neuen Ereignis zulässig ist in dem Zustand, der durch das Ausführen aller Aktionen entsprechend den Ereignissen der Menge, einschließlich aller vorangegangenen Ereignisse gemäß der Kausalitätsrelation (KaR), entsteht, und - the action corresponding to the new event is permissible in the state which arises from the execution of all actions corresponding to the events of the crowd, including all previous events according to the causality relation (KaR), and
- entweder die Menge an Ereignissen (E) nur aus dem initialen Ereignis (El) besteht, oder jede Aktion entsprechend der Menge an bestehenden Ereignissen jeweils mit der Aktion des einzufügenden Ereignisses in Konflikt steht. - either the set of events (E) consists only of the initial event (El), or each action conflicts with the action of the event to be inserted, depending on the set of existing events.
Zwei Aktionen stehen dann in Konflikt, wenn ausgehend von einem beliebigen gültigen Zustand möglicher Variablenwerte, - an diesem Zustand beide Aktionen zulässig sind und die Aktionen verschiedene Zustände erzeugen wenn sie in unterschiedlicher Reihenfolge ausgeführt werden, oder - an diesem Zustand beide Aktionen zulässig sind und die Ausführung der einen Aktion die andere Aktion verunmöglicht, indem nach Ausführen der einen Aktion der Zustand der Bedingung zur Ausführung der anderen Aktion nicht mehr genügt, oder - an diesem Zustand genau eine der beiden Aktionen zulässig ist und in dem Zustand nach dem Ausführen der zulässigen Aktion die andere Aktion zulässig ist. Two actions are in conflict if, starting from any valid state of possible variable values, - both actions are permitted in this state and the actions generate different states if they are executed in a different order, or - both actions are permitted in this state and the Execution of one action makes the other action impossible, since after the execution of one action the state of the condition for the execution of the other action is no longer sufficient, or - exactly one of the two actions is permitted in this state and in the state after the execution of the permitted action the other action is allowed.
Ein notwendiges Kriterium für die Existenz eines Konfliktes zwischen Aktionen A1 und A2 ist, dass es eine Variable V gibt, die zur Überprüfung der Zulässigkeit von der Aktion A1, oder zur Festlegung der neuen Variablenwerten W nach Ausführung der Aktion A1, benötigt wird und von der Aktion A2 verändert wird, oder vice versa, oder, dass beide Aktionen A1 A2 der Variable V einen Wert zuweisen. A necessary criterion for the existence of a conflict between actions A1 and A2 is that there is a variable V that is required to check the admissibility of action A1, or to determine the new variable values W after execution of action A1, and by Action A2 is changed, or vice versa, or that both actions A1 A2 assign a value to the variable V.
Alle Aktionen in Tabelle 2 stehen im Konflikt mit sich selbst, da jede Aktion einer Variable einen neuen Wert zuweist, so dass im Nachfolgezustand die Variablenwerte der All actions in Table 2 conflict with each other because each action assigns a new value to a variable, so that in the successor state the variable values of the
Bedingung der Aktion nicht mehr genügen. Dies bedeutet für das vorliegende Beispiel, dass zwei gleiche Aktionen nicht unmittelbar hintereinander ausgeführt werden können. The condition of the action is no longer sufficient. For the present example, this means that two identical actions cannot be carried out immediately one after the other.
Eine Konfliktrelation KoR besteht dabei zwischen zwei nacheinander eingefügten Ereignissen E, wenn diese nicht in einer direkten oder indirekten Kausalitätsrelation KaR stehen und die Ausführung der den Ereignissen zugeordneten Aktionen in Konflikt stehen. There is a conflict relation KoR between two successively inserted events E if these are not in a direct or indirect causality relation KaR and the execution of the actions assigned to the events conflict.
Der Aufbau einer derartigen Ereignisstruktur ES wird im Folgenden anhand der Fig. 1 bis 13 näher erläutert. Beim Aufbau einer Ereignisstruktur ES besteht diese zu Beginn jeweils nur aus dem initialen Ereignis El (Fig. 1). Im gezeigten Ausführungsbeispiel ist das Ereignis „ZNah“ anschließend an das initiale Ereignis El möglich (siehe Bedingungen in Tabelle 2), da alle Bedingungen für dessen Eintreten erfüllt sind und das Ereignis „ZNah“ wird mit der Nummer 1 und mit einer Kausalitätsrelation KaR zum initialen Ereignis El The structure of such an event structure ES is explained in more detail below with reference to FIGS. 1 to 13. When an event structure ES is constructed, it initially only consists of the initial event E1 (FIG. 1). In the exemplary embodiment shown, the event “ZNah” is possible after the initial event E1 (see conditions in Table 2), since all conditions for its occurrence are met and the event “ZNah” becomes initial with the number 1 and with a causality relation KaR Event El
eingefügt (Fig. 2). inserted (Fig. 2).
Das Ereignis „GKreuz“ ist ebenfalls anschließend an das initiale Ereignis El möglich (siehe Tabelle 2) und wird mit der Nummer 2 und einer Kausalitätsrelation KaR zum initialen Ereignis El eingefügt. Es gibt keine Überschneidung der Variablen V, die zur Überprüfung der Bedingungen der beiden Aktionen A benötigt werden, bzw. von den beiden Aktionen A verändert werden, da die Aktionen die oben genannte notwendige Bedingung für die Existenz einer Konfliktrelation nicht erfüllen. Daher wird keine Konfliktrelation KoR zwischen den Ereignissen „1“ und „2“ eingefügt (siehe Fig. 3). The event "GKreuz" is also possible after the initial event El (see Table 2) and is inserted with the number 2 and a causality relation KaR for the initial event El. There is no overlap of the variables V, which are required to check the conditions of the two actions A, or which are changed by the two actions A, since the actions do not meet the above-mentioned necessary condition for the existence of a conflict relation. Therefore, no conflict relation KoR is inserted between events "1" and "2" (see Fig. 3).
Die Aktion „ZNah“ ermöglichst die Aktionen „LAn“, für das ein Ereignis „3“ und eine Kausalitätsrelation KaR zum Ereignis mit der Nummer „1“ eingefügt werden (Fig. 4). Die Aktion „ZNah“ ermöglicht weiters die Aktionen „SUnten“, für das ein Ereignis mit der Nummer „4“ und eine Kausalitätsrelation KaR zum Ereignis „1“ eingefügt werden. Analog zu den Aktionen „ZNah“ und „GKreuz“ haben auch Aktionen „LAn“ und „SUnten“ keine Überschneidung der relevanten Variablen V, weswegen keine Konfliktrelation KoR zwischen diesen Ereignissen eingefügt wird (Fig. 5). The “ZNah” action enables the “LAn” actions, for which an event “3” and a causality relation KaR for the event with the number “1” are inserted (FIG. 4). The "ZNah" action also enables the "SUnten" actions, for which an event with the number "4" and a causal relationship KaR for event "1" are inserted. Similar to the actions "ZNah" and "GKreuz", actions "LAn" and "SUnten" have no overlap of the relevant variables V, which is why there is no conflict relation KoR between these events (Fig. 5).
Die Aktionen „SUnten“ ermöglicht alleine keine weitere Aktion, allerdings ermöglichen die Ereignisse „3“ und „4“ die Aktion „Go“ (Fig. 6). Ein Ereignis für diese Aktion mit der Nummer „5“ wird mit Kausalitätsrelationen KaR zu beiden notwendigen Ereignissen „3“ und „4“ eingefügt. Außerdem besteht für das Ereignis „5“ ein Konflikt mit der Aktion „GKreuz“, da von dieser Aktion die Variable „G“ auf true geändert wird, und dadurch die The actions "SUnten" alone do not allow any further action, however events "3" and "4" enable the action "Go" (Fig. 6). An event for this action with the number "5" is inserted with causal relations KaR for both necessary events "3" and "4". There is also a conflict with event "5" for event "5" because this action changes the variable "G" to true, and thereby the
Aktion „Go“ nicht mehr ausgeführt werden kann. Deswegen wird eine Konfliktrelation KoR zwischen den entsprechenden Ereignissen „2“ und „5“ eingefügt. Action "Go" can no longer be carried out. For this reason, a conflict relation KoR is inserted between the corresponding events "2" and "5".
Die Aktion „Go“ ermöglicht weiters die Aktion „ZKreuz“, für die ein Ereignis mit der Nummer „6“ eingefügt wird (Fig. 7). Außerdem ist die Aktion „GKreuz“ weiterhin zulässig, weswegen ebenfalls ein Ereignis mit der Nummer „7“ für diese Aktion eingefügt wird. The "Go" action also enables the "ZKreuz" action, for which an event with the number "6" is inserted (Fig. 7). In addition, the "GKreuz" action is still permissible, which is why an event with the number "7" is also inserted for this action.
Die Aktion „ZKreuz“ ermöglicht die Aktion „ZFern“ (Fig. 8), die wiederum die Aktionen „Stop“, sowie die Aktion „ZNah“ (Fig. 9). Die entsprechenden Ereignisse stehen im Konflikt, da „ZNah“ die Variable „Pos“ auf „Nah“ setzt und damit die Aktion „Stop“ unmöglich macht. Daher wird eine Konfliktrelation KoR zwischen den Ereignissen mit den The action "ZKreuz" enables the action "ZFern" (Fig. 8), which in turn the actions "Stop", as well as the action "ZNah" (Fig. 9). The corresponding events are in conflict because "ZNah" sets the variable "Pos" to "Close" and thus makes the "Stop" action impossible. Therefore, a conflict relation KoR between the events with the
Nummern „9“ und „10“ eingeführt. Numbers "9" and "10" introduced.
Die Aktion „ZNah“ ermöglicht wiederum die Aktion „ZKreuz“, nachdem das Stopsignal für den Zug in diesem Ereignis noch immer ausgeschalten ist (Fig. 10). Ereignis „10“ ist derselbe Zustand, sowie die selbe Aktion, wie Ereignis „6“ zugeordnet. Dementsprechend könnte die Ereignisstruktur ES an dieser Stelle unendlich lang erweitert werden. Die Aktion „Stop“ ermöglicht Aktionen „LAus“ sowie „SOben“, welche analog zu „LAn“ und „SUnten“ keinen Konflikt haben bzw. durch keine Konfliktrelation KoR verbunden sind. Außerdem ist die Aktion „ZNah“ weiterhin zulässig. Diese Aktion steht sowohl mit „LAus“, als auch „SOben“ in Konflikt, da sie die Variable „Pos“ auf „Nah“ ändert und damit die Ausführung der anderen Beiden verunmöglicht (Fig. 11). The "ZNah" action in turn enables the "ZKreuz" action after the stop signal for the train in this event is still switched off (Fig. 10). Event "10" is the same state and the same action as event "6" assigned. Accordingly, the event structure ES could be extended indefinitely at this point. The "Stop" action enables "LAus" and "SOben" actions, which, like "LAn" and "SUnten", have no conflict or are not connected by a KoR conflict relation. In addition, the "ZNah" campaign is still permitted. This action conflicts with both "LAus" and "SOben" because it changes the variable "Pos" to "Nah" and thus makes it impossible for the other two to execute (Fig. 11).
Die Aktion „ZNah“ ist nach den Aktionen „LAus“, sowie „SOben“ weiterhin zulässig. Die Aktion ist sowohl nach Ausführung einer der beiden, sowie nach Ausführung von beiden Aktionen zulässig. Es werden drei Ereignisse für die Aktion „ZNah“ hinzugefügt, die entsprechende Kausalitätsrelationen KaR zu einem, oder beiden, der Ereignisse „12“ und „13“ haben. Dabei steht „ZNah“ jeweils mit „LAus“ und „SOben“ in Konflikt, da es die Variable „Pos“ so ändert, dass die beiden Aktionen nicht mehr zulässig sind. Deshalb gibt es einen Konflikt zwischen „15“ und „13“ sowie zwischen „17“ und „12“. Ereignis „16“ hat keinen Konflikt, da es von „12“ und „13“ kausal abhängt und somit zu diesen Ereignissen per Definition keine Konfliktrelation besteht. Außerdem ist in Ereignis „14“ die Aktion „Go“ zulässig und ein entsprechendes Ereignis wird hinzugefügt (Fig. 12). The "ZNah" action is still permissible after the "LAus" and "SOben" actions. The action is permissible both after the execution of one of the two and after the execution of both actions. Three events are added for the "ZNah" action, which have corresponding causal relationships KaR to one or both of the events "12" and "13". "ZNah" conflicts with "LAus" and "SOben" because it changes the variable "Pos" so that the two actions are no longer permitted. Therefore there is a conflict between "15" and "13" and between "17" and "12". Event "16" has no conflict, since it is causally dependent on "12" and "13" and therefore there is no conflict relation to these events by definition. In addition, the “Go” action is permitted in event “14” and a corresponding event is added (FIG. 12).
Entsprechend ihrer Historie an ausgeführten Aktionen ermöglichen die Ereignisse „14“, According to their history of actions performed, events "14" enable
„15“ und „16“ die Aktionen „LAn“, „Go“ und „SUnten“, wobei nach den Ereignissen für „LAn“ und „SUnten“ jeweils Aktion „Go“ zulässig ist. "15" and "16" the actions "LAn", "Go" and "SUnten", whereby after the events for "LAn" and "SUnten" action "Go" is permitted.
Die Zustände die den Ereignissen „18“, „23“, „24“ bzw. „25“ zugeordnet sind, sind ident zum Zustand dem Ereignis „5“ zugeordnet ist, weswegen diese Ereignisse auf idente Weise und beliebig lang erweitert werden können. Außerdem haben all diese Ereignisse einen Konflikt mit Ereignis „/“ (Fig. 13). The states assigned to events "18", "23", "24" and "25" are identical to the state assigned to event "5", which is why these events can be extended in an identical manner and for any length. In addition, all of these events conflict with event "/" (Fig. 13).
Vergleich von Ereignisstrukturen ES Comparison of event structures ES
Ziel des erfindungsgemäßen Verfahrens ist es unter anderem, durch die zumindest teilweise Überführung zweier zu vergleichender Modelle M1 und M2 in Ereignisstrukturen ES1 und ES2, mit geringem Rechenaufwand rasch feststellen zu können, ob die Menge an möglichen Sequenzen von Aktionen A, die durch die eine Ereignisstrukturen ES1 beschrieben wird, in der Menge an möglichen Sequenzen die durch die andere Ereignisstruktur ES2 beschrieben wird, enthalten ist. The aim of the method according to the invention is, inter alia, to be able to use the at least partial conversion of two models M1 and M2 to be compared into event structures ES1 and ES2 to determine quickly with little computation whether the amount of possible sequences of actions A caused by the one event structure ES1 is described, is contained in the set of possible sequences described by the other event structure ES2.
Indem der Vergleich in beiden Richtungen durchgeführt wird, kann zusätzlich festgestellt werden, ob die Menge an möglichen Sequenzen von Aktionen der beiden Ereignisstrukturen ident ist. By carrying out the comparison in both directions, it can additionally be determined whether the set of possible sequences of actions of the two event structures is identical.
Dazu werden zunächst die zu vergleichenden Ereignisstrukturen ES1, ES2 der beiden zu vergleichenden Modelle M1, M2 in konfliktfreie Teilereignisstrukturen TE getrennt. Für die beiden zu vergleichenden Modelle M1, M2 ergibt sich somit eine erste und eine zweite Menge an konfliktfreien Teilereignisstrukturen TE. For this purpose, the event structures ES1, ES2 of the two models M1, M2 to be compared are first separated into conflict-free partial event structures TE. A first and a second set of conflict-free partial event structures TE thus result for the two models M1, M2 to be compared.
Die Ereignisstrukturen ES werden dabei in Teilereignisstrukturen TE getrennt, indem sie rekursiv für jede Konfliktrelation KoR in zwei Teilereignisstrukturen TE aufgeteilt werden. Dazu werden Ereignisse E, die direkt oder indirekt durch eines der an der Konfliktrelation KoR beteiligten Ereignisse E bedingt werden, jeweils der einen Teilereignisstruktur TE zugeordnet und alle anderen Ereignisse E, die nicht an der Konfliktrelation KoR beteiligt sind, werden beiden Teilereignisstrukturen TE zugeordnet. The event structures ES are separated into partial event structures TE by recursively dividing them into two partial event structures TE for each conflict relation KoR. For this purpose, events E that are directly or indirectly caused by one of the events E involved in the conflict relation KoR are each assigned to the one partial event structure TE and all other events E that are not involved in the conflict relation KoR are assigned to both partial event structures TE.
Für jede Teilereignisstruktur TE der ersten Menge wird anschließend eine Teilereignisstruktur TE der zweiten Menge gesucht, deren Aktionen A entsprechend den Kausalitätsrelationen KaR und Ereignissen E der ersten Menge kompatibel sind. Kompatibel bedeutet in diesem Zusammenhang, dass eine eindeutige Zuordnung von Ereignissen E der Teilereignisstruktur TE1 des ersten Modells M1 zu einer Teilereignisstruktur TE2 des zweiten Modells M2 gefunden wird, sodass die Paare einander zugeordneter Ereignisse jeweils dieselben zugeordneten Aktionen aufweisen. For each sub-event structure TE of the first set, a sub-event structure TE of the second set is then sought, the actions A of which are compatible according to the causality relations KaR and events E of the first set. Compatible in this context means that an unequivocal assignment of events E of the partial event structure TE1 of the first model M1 to a partial event structure TE2 of the second model M2 is found, so that the pairs of events assigned to one another each have the same assigned actions.
Weiters dürfen sich durch Hinzufügen von allen Kausalitätsrelationen KaR der Teilereignisstruktur TE2 des zweiten Modells M2 zur Teilereignisstruktur TE1 des ersten Modells M1 für die gemäß der Zuordnung einander entsprechender Paare von Furthermore, by adding all causality relations KaR of the partial event structure TE2 of the second model M2 to the partial event structure TE1 of the first model M1, the pairs of corresponding ones of
Ereignissen E der Teilereignisstruktur TE1 des ersten Modells M1 keine Zyklen in der Kausalität der Teilereignisstruktur TE1 ergeben. Events E of the partial event structure TE1 of the first model M1 do not result in any cycles in the causality of the partial event structure TE1.
Eine solche Zuordnung kann durch ein Suchverfahren, welches jedes Ereignis einmal besucht, wie zum Beispiel Tiefen- oder Breitensuche (siehe Tarjan, Robert. "Depth-first search and linear graph algorithms." SIAM journal on computing 1.2 (1972): 146-160}, auf der Teilereignisstruktur TE1 des ersten Modells M1 mit hinzugefügten Kausalitätsrelationen KaR der Teilereignisstruktur TE2 des zweiten Modells M2, Festlegung von Zuordnungen von einzelnen Ereignissen E. Das Suchverfahren legt beim Besuchen eines Ereignisses eine Zuordnung auf ein Ereignis der anderen Ereignisstruktur mit derselben Aktion, welchem noch kein Ereignis zugeordnet wurde, fest. Sobald jedes Ereignis besucht wurde und damit zugeordnet ist, können auch Kausalitätsrelationen KaR der Teilereignisstruktur TE2 eindeutig zur Teilereignisstruktur TE1 hinzugefügt werden. Die so aus Teilereignisstruktur TE1 durch Hinzufügen von Kausalitätsrelationen entstandene neue Teilereignisstruktur wird auf Zyklen in den gemeinsamen Kausalitätsrelationen untersucht. Die Suche nach Zyklen kann mit Tiefensuche bewerkstelligt werden, bei der lediglich während der Suche überprüft werden muss ob ein besuchtes Ereignis bereits im aktiven Pfad der Suche enthalten ist. Zuordnungen zwischen Ereignissen bei denen mehrere gültige Möglichkeiten bestehen werden gesichert und revidiert, wenn ein Zyklus gefunden wird. Such an assignment can be made by a search method that visits each event once, such as depth or breadth search (see Tarjan, Robert. "Depth-first search and linear graph algorithms." SIAM journal on computing 1.2 (1972): 146-160 }, on the partial event structure TE1 of the first model M1 with added causality relations KaR of the partial event structure TE2 of the second model M2, definition of assignments of individual events E. When visiting an event, the search method assigns an assignment to an event of the other event structure with the same action, which As soon as each event has been visited and is thus assigned, causality relations KaR of the part event structure TE2 can be clearly added to the part event structure TE1. The new part event structure thus created from part event structure TE1 by adding causality relations is based on cycles in the common Causalite relations examined. The search for cycles can be carried out with depth search, in which it is only necessary to check during the search whether a visited event is already contained in the active path of the search. Associations between events where there are several valid options are saved and revised when a cycle is found.
Weiters werden, im Fall, dass eine Kausalitätsrelation KaR hinzugefügt wird, wo zuvor keine direkte oder indirekte Kausalitätsrelation KaR bestand, die Teilereignisstrukturen TE1, TE2 nur dann als kompatibel betrachtet, wenn auch für eine neue Teilereignisstruktur TE, die durch Hinzufügen einer zusätzlichen Kausalitätsrelation KaR in der entgegengesetzten Richtung wie die hinzugefügte Kausalitätsrelation KaR entsteht, eine kompatible Teilereignisstruktur in der Menge an Teilereignisstrukturen des zweiten Modells M2 gefunden werden kann. Furthermore, in the event that a causality relation KaR is added, where there was no direct or indirect causality relation KaR, the partial event structures TE1, TE2 are only considered compatible, even if for a new partial event structure TE, which is created by adding an additional causality relation KaR in the opposite direction as the added causality relation KaR arises, a compatible partial event structure can be found in the set of partial event structures of the second model M2.
Dabei wird das Ergebnis des Vergleichs genau dann positiv betrachtet, d.h. alle Sequenzen von Aktionen der Ereignisstruktur ES1 sind auch in der Menge an Sequenzen von Ereignisstruktur ES2 erhalten, wenn für jede Teilereignisstruktur TE1 des ersten Modells M1 bzw. der einen Ereignisstruktur eine kompatible Teilereignisstruktur TE2 des zweiten Modells M2 bzw. der anderen Ereignisstruktur gefunden wird. The result of the comparison is then viewed positively, i.e. All sequences of actions of the event structure ES1 are also preserved in the set of sequences of event structure ES2 if a compatible partial event structure TE2 of the second model M2 or of the other event structure is found for each partial event structure TE1 of the first model M1 or the one event structure.
Anhand der Fig. 14a bis 38 wird im Folgenden der Vergleich zweier Ereignisstrukturen näher erläutert. Zur besseren Übersicht wird nur ein Teil der Ereignisstruktur des vorangegangenen Beispiels mit einer ähnlichen Struktur verglichen. The comparison of two event structures is explained in more detail below with reference to FIGS. 14a to 38. For a better overview, only a part of the event structure of the previous example is compared with a similar structure.
Ereignisstruktur E1 in Fig. 14b beschreibt ein Modell, in dem die Aktionen „LAn“, sowie „SUnten“ nicht gleichzeitig passieren dürfen, das heißt, dass immer zuerst das Signallicht angeschaltet wird und anschließend der Schranken geschlossen wird, oder umgekehrt. Fig. 14a beschreibt das Modell, in dem diese Aktionen unabhängig voneinander sind, so Event structure E1 in FIG. 14b describes a model in which the actions “LAn” and “SUnten” must not happen at the same time, which means that the signal light is always switched on first and then the barrier is closed, or vice versa. 14a describes the model in which these actions are independent of one another
wie es oben eingeführt wurde. as it was introduced above.
Für den Vergleich der beiden Modelle M1, M2 bzw. der beiden Ereignisstrukturen E1, E2 der Modelle M1, M2 müssen die Ereignisstrukturen E1, E2 zunächst, wie oben beschrieben, in konfliktfreie Teilereignisstrukturen TE geteilt werden. Dies wird anhand der beiden Ereignisstrukturen E1, E2 in Fig. 14a und Fig. 14b näher erläutert. To compare the two models M1, M2 or the two event structures E1, E2 of models M1, M2, the event structures E1, E2 must first be divided into conflict-free partial event structures TE, as described above. This is explained in more detail using the two event structures E1, E2 in FIGS. 14a and 14b.
In Fig. 14a existiert in der ersten Ereignisstruktur E1 nur ein Konflikt bzw. eine Konfliktrelation KoR zwischen den Ereignissen mit den Nummern „2“ und „5“. Diese Ereignisse bedingen keine weiteren Ereignisse. Deswegen entstehen durch Teilung der ersten Ereignisstruktur E1 zwei Teilereignisstrukturen TE1a, TE1b, denen jeweils nur eines der beiden Ereignisse „2“ bzw. „5“ zugeordnet wird, wie dies in den Fig. 15 und 16 dargestellt ist. 14a, there is only one conflict or a conflict relation KoR in the first event structure E1 between the events with the numbers “2” and “5”. These events do not result in further events. For this reason, dividing the first event structure E1 creates two sub-event structures TE1a, TE1b, to which only one of the two events “2” and “5” is assigned, as shown in FIGS. 15 and 16.
Die zweite Ereignisstruktur E2 in Fig. 14b weist drei Konfliktrelationen KoR, zwischen den Ereignissen „8“ und „9“, „7“ und „12“, sowie „7“ und „13“. Die Konfliktrelationen KoR werden, wie oben beschrieben, solange geteilt, bis die entstandenen Teilereignisstrukturen TE konfliktfrei sind. The second event structure E2 in FIG. 14b has three conflict relations KoR, between the events “8” and “9”, “7” and “12”, and “7” and “13”. As described above, the conflict relations KoR are divided until the resulting partial event structures TE are conflict-free.
Dazu wird zunächst die Konfliktrelation KoR zwischen Ereignissen „8“ und „9“ aufgelöst, welche respektiv Ereignisse „10“ und „12“, sowie „11“ und „13“ bedingen. Dadurch ergeben sich für die zweite Ereignisstruktur E2 zunächst zwei Teilereignisstrukturen TE2a, TE2b (Fig. 17 und Fig. 18), in denen die bedingten Ereignisse „10“ und „12“, sowie „11“ und „13“ lediglich einer der entsprechenden Teilereignisstrukturen des bedingenden For this purpose, the conflict relation KoR between events "8" and "9" is resolved, which respectively causes events "10" and "12", as well as "11" and "13". This initially results in two sub-event structures TE2a, TE2b (FIGS. 17 and 18) for the second event structure E2, in which the conditional events “10” and “12”, and “11” and “13” are only one of the corresponding sub-event structures of the conditional
Ereignisses zugeordnet werden. Beide Ereignisstrukturen TE2a, TE2b beinhalten jedoch weitere Konfliktrelationen KoR, Event. However, both event structures TE2a, TE2b contain further conflict relations KoR,
weswegen sie weiter geteilt werden. So wird zunächst die Konfliktrelation KoR zwischen den Ereignissen „/“ und „12“ in der Teilereignisstruktur TE2a getrennt, wodurch sich zwei which is why they are shared further. First of all, the conflict relation KoR between the events "/" and "12" is separated in the partial event structure TE2a, which results in two
weitere Teilereignisstrukturen TE2a', TE2a” (Fig. 19 und Fig. 20) ergeben, in denen die bedingten Ereignisse „/“ und „12“ nur jeweils einer der entsprechenden Teilereignisstrukturen TE zugeordnet werden. Ebenso wird für die Teilereignisstruktur TE2b verfahren, die eine Konfliktrelation KoR zwischen den Ereignissen „7“ und „13“ aufweist, wodurch sich zwei weitere Teileereignisstrukturen TE2b', TE2b" (Fig. 21 und Fig. 22) der zweiten Ereignisstruktur E2 ergeben. result in further partial event structures TE2a ', TE2a ”(FIGS. 19 and 20), in which the conditional events“ / ”and“ 12 ”are each assigned to only one of the corresponding partial event structures TE. The same procedure is used for the partial event structure TE2b, which has a conflict relation KoR between the events “7” and “13”, which results in two further partial event structures TE2b ', TE2b ”(FIGS. 21 and 22) of the second event structure E2.
Die Menge an Teilereignisstrukturen TE1a, TE1b der ersten Ereignisstruktur E1 wird anschließend an diese Zerlegung mit der Menge an Teilereignisstruktur TE2a', TE2a”, TE2b', TE2b" der zweiten Ereignisstruktur E2 verglichen. Durch diesen Vergleich ist feststellbar, ob die Menge von Sequenzen von Aktionen der ersten Ereignisstruktur E1 in der Menge von Sequenzen von Aktionen der zweiten Ereignisstruktur E2 enthalten ist. The set of partial event structures TE1a, TE1b of the first event structure E1 is then compared with the set of partial event structures TE2a ', TE2a ”, TE2b', TE2b" of the second event structure E2. This comparison can be used to determine whether the set of sequences from Actions of the first event structure E1 is contained in the set of sequences of actions of the second event structure E2.
Für jede Teilereignisstruktur TE1a, TE1b der ersten Ereignisstruktur E1 wird eine kompatible Teilereignisstruktur TE2a', TE2a”, TE2b', TE2b" der zweiten Ereignisstruktur E2 gesucht. Dazu werden beispielsweise zu Beginn die Teilereignisstrukturen TE1a der ersten Ereignisstruktur E1 (Fig. 15) und TE2a' der zweiten Ereignisstruktur E2 (Fig. 19) miteinander verglichen. Die Reihenfolge in der die Teilereignisstrukturen verglichen werden ist dabei beliebig. For each partial event structure TE1a, TE1b of the first event structure E1, a compatible partial event structure TE2a ', TE2a ", TE2b', TE2b" of the second event structure E2 is sought. For this purpose, for example, the partial event structures TE1a of the first event structure E1 (FIG. 15) and TE2a 19 of the second event structure E2 (FIG. 19) The order in which the partial event structures are compared is arbitrary.
Auf der Teilereignisstruktur TE1a der ersten Ereignisstruktur E1 wird nun eine Tiefensuche mit den Kausalitätsrelationen KoR passender Ereignisse, d.h. Ereignissen E, die mit denselben Aktionen A einhergehen, der Teilereignisstruktur TE2a' der zweiten Ereignisstruktur E2 durchgeführt. Passende Ereignisse E der beiden Teilereignisstrukturen TE1a, TE2a' werden einander zugeordnet. Sollten mehrere Ereignisse E passend sein, so wird zunächst eines davon ausgewählt und die Entscheidung für mögliches späteres Revidieren gesichert. Genauer wird die Folge von getroffenen Entscheidungen notiert. Sobald sich ein Zyklus in den Kausalitätsrelationen ergibt, wird die zuletzt getroffene Entscheidung verändert, wobei bereits probierte Entscheidungen nicht mehr getroffen werden. Sollte es keine andere Entscheidungsmöglichkeit geben, so wird die zuletzt davor getroffene Entscheidung revidiert, sofern eine solche existiert. Gibt es keine zu revidierende Entscheidung und konnte keine Zuordnung gefunden werden schlägt der Vergleich fehl. On the partial event structure TE1a of the first event structure E1, a depth search with the causality relations KoR of suitable events, i.e. Events E, which go hand in hand with the same actions A, of the partial event structure TE2a 'of the second event structure E2. Suitable events E of the two sub-event structures TE1a, TE2a 'are assigned to one another. If several events E are suitable, one of them is first selected and the decision for possible later revision is secured. The sequence of decisions made is noted more precisely. As soon as there is a cycle in the causality relations, the last decision made is changed, whereby already tried decisions are no longer made. If there is no other decision option, the last decision made before it will be revised, if one exists. If there is no decision to be revised and no assignment could be found, the comparison fails.
Sollte während der Suche ein Zyklus in den gemeinsamen Kausalitäten bzw. Kausalitätsrelationen KaR entstehen, so müssen getroffene Entscheidungen der Zuordnung revidiert werden. Sollten keine Entscheidungen Alternativen haben, so fällt der Vergleich der Teilereignisstrukturen TE negativ aus. Kann jedes Ereignis der einen If a cycle arises in the common causalities or causal relations KaR during the search, the decisions made in the assignment must be revised. If no decisions have alternatives, the comparison of the partial event structures TE is negative. Can every event of one
Teilereignisstruktur mit den gemeinsamen Kausalitäten bzw. Kausalitätsrelationen KaR der jeweils anderen Teilereignisstruktur erreicht werden, ohne dass ein Zyklus in den Kausalitäten entsteht, so ist der Vergleich positiv. If the partial event structure with the common causalities or causality relations KaR of the other partial event structure is achieved without a cycle in the causalities, the comparison is positive.
Kausalitätsrelationen KaR, die in der Teilereignisstruktur TE2a' der zweiten Ereignisstruktur E2 ebenfalls bestehen, also von der Teilereingisstruktur TE2a' quasi importiert werden können, sind in den Figuren gepunktet markiert. Ausgehend vom initialen Ereignis El kann in der Teilereignisstruktur TE1a zunächst über eine Kausalitätsrelation KaR zum Ereignis „1“ gelangt werden, die in der Teilereignisstruktur TE2a' zwischen dem initialen Ereignis und dem Ereignis „6“ besteht. Dem Ereignis „1“ wird also Ereignis „6“ zugeordnet (Fig. 23). Causality relationships KaR, which also exist in the partial event structure TE2a 'of the second event structure E2, that is to say can be imported from the partial event structure TE2a', are marked with dots in the figures. Starting from the initial event E1, in the partial event structure TE1a it is first possible to arrive at event “1” via a causality relation KaR, which exists in the partial event structure TE2a ′ between the initial event and the event “6”. Event "6" is assigned to event "1" (Fig. 23).
Von Ereignis „1“ kann in der Teilereignisstruktur TE1a der ersten Ereignisstruktur E1 mittels einer importierten bzw. übernommenen Kausalitätsrelation KaR aus der Teilereignisstruktur TE2a' der zweiten Ereignisstruktur E2 zum Ereignis „3“ gelangt werden, die in der Teilereignisstruktur TE2a' der zweiten Ereignisstruktur E2 zwischen den Ereignissen „6“ und „8“ besteht. Derart wird dem Ereignis „3“ das Ereignis „8“ zugeordnet (Fig. 24). From event “1” in the partial event structure TE1a of the first event structure E1, an imported or adopted causality relation KaR can be used to get from the partial event structure TE2a ′ of the second event structure E2 to event “3”, which occurs in the partial event structure TE2a 'of the second event structure E2 the events "6" and "8". In this way, event “8” is assigned to event “3” (FIG. 24).
Von Ereignis „3“ kann in der Teilereignisstruktur TE1a der ersten Ereignisstruktur E1 zum Ereignis „4“ mittels der importierten Kausalitätsrelation KaR gelangt werden, die in der Teilereignisstruktur TE2a’ der zweiten Ereignisstruktur E2 zwischen Ereignissen „8“ und „10“ besteht. Dem Ereignis „4“ der Teilereignisstruktur TE1a wird derart das Ereignis „10“ der Teilereignisstruktur TE2a' zugeordnet (Fig. 25). From event "3" in the partial event structure TE1a of the first event structure E1 to event "4" can be reached by means of the imported causality relation KaR, which exists in the partial event structure TE2a ’of the second event structure E2 between events" 8 "and" 10 ". The event “4” of the partial event structure TE1a is thus assigned the event “10” of the partial event structure TE2a '(FIG. 25).
Von Ereignis „4“ kann in der Teilereignisstruktur TE1a zum Ereignis „5“ mittels der importierten Kausalitätsrelation KaR gelangt werden, die in der Teilereignisstruktur TE2a' der zweiten Ereignisstruktur E2 zwischen Ereignissen „10“ und „12“ besteht. Dem Ereignis „5“ der Teilereignisstruktur TE1a wird derart das Ereignis „12“ der Teilereignisstruktur TE2a’ zugeordnet (Fig. 26). From event "4" in the partial event structure TE1a to event "5" can be reached by means of the imported causality relation KaR, which exists in the partial event structure TE2a 'of the second event structure E2 between events "10" and "12". The event “5” of the partial event structure TE1a is thus assigned the event “12” of the partial event structure TE2a ’(FIG. 26).
Auf diese Weise können alle Ereignisse der Teilereignisstrukturen TE1a, TE2a' mit den jeweils bestehenden Kausalitätsrelationen KaR einander zugeordnet werden. Der Vergleich der Teilereignisstrukturen TE1a der ersten Ereignisstruktur E1 und TE2a' der zweiten Ereignisstruktur E2 ist daher positiv. In this way, all events of the sub-event structures TE1a, TE2a 'can be assigned to each other with the respective causality relationships KaR. The comparison of the partial event structures TE1a of the first event structure E1 and TE2a 'of the second event structure E2 is therefore positive.
Die in die Teilereignisstruktur TE1a der ersten Ereignisstruktur E1 aus der Teilereignisstruktur TE2a' der zweiten Ereignisstruktur E2 importierte Kausalitätsrelation KaR zwischen Ereignis „3“ und Ereignis „4“ verbindet diese Ereignisse in der Teilereingisstruktur TE1a jedoch nicht direkt oder indirekt mittels Kausalitätsrelationen, die auch in der ersten Ereignisstruktur E1 bestehen. Dies ist also ein Fall, in dem eine Kausalitätsrelation KaR hinzugefügt wird, wo zuvor in der Teilereignisstruktur TE1a der ersten Ereignisstruktur E1 keine direkte oder indirekte Kausalitätsrelation KaR bestand. The causality relation KaR between event "3" and event "4" imported into the part event structure TE1a of the first event structure E1 from the part event structure TE2a 'of the second event structure E2 does not, however, directly or indirectly connect these events in the part event structure TE1a by means of causality relations, which also in the first event structure E1 exist. This is a case in which a causality relation KaR is added, where previously there was no direct or indirect causality relation KaR in the partial event structure TE1a of the first event structure E1.
Wie zuvor beschrieben, werden die Teilereignisstrukturen TE1a, TE2a' nur dann als kompatibel betrachtet, wenn auch für eine neue Teilereignisstruktur TE1a*, die durch Hinzufügen einer zusätzlichen Kausalitätsrelation KaR in der Teilereignisstruktur TE1a in der entgegengesetzten Richtung (Fig. 27) wie die neu hinzugefügte bzw. aus der Teilereignisstruktur TE2a' importierte Kausalitätsrelation KaR entsteht, eine kompatible Teilereignisstruktur in der Menge der Teilereignisstrukturen der zweiten Ereignisstruktur E2 gefunden werden kann. As described above, the partial event structures TE1a, TE2a 'are only considered compatible, even if for a new partial event structure TE1a *, which is added by adding an additional causality relation KaR in the partial event structure TE1a in the opposite direction (FIG. 27) as the newly added one or from the causality relation KaR imported from the part event structure TE2a ', a compatible part event structure can be found in the set of part event structures of the second event structure E2.
Daher wird für die neue Teilereignisstruktur TE1a* (Fig. 28) ebenfalls eine kompatible Teilereignisstruktur gesucht. Die Teilereignisstruktur TE2b' (Fig. 21) der zweiten Ereignisstruktur E2 ist kompatibel mit dieser neuen Teilereignisstruktur TE1a* der ersten Ereignisstruktur E1, wobei wiederum die importierten Kausalitätsrelationen KaR in Fig. 28 eingezeichnet sind. Therefore, a compatible part event structure is also sought for the new part event structure TE1a * (FIG. 28). The partial event structure TE2b '(FIG. 21) of the second event structure E2 is compatible with this new partial event structure TE1a * of the first event structure E1, the imported causality relations KaR again being shown in FIG. 28.
Die Teilereignisstrukturen TE1b der ersten Ereignisstruktur E1 und TE2a' der zweiten Ereignisstruktur E2 sind nicht kompatibel, da keine Zuordnung für das Ereignis „2“ gefunden werden kann (siehe Fig. 16 und Fig. 19). Deshalb wird die Suche nach einer kompatiblen Teilereignisstruktur für TE1b fortgesetzt. The partial event structures TE1b of the first event structure E1 and TE2a 'of the second event structure E2 are not compatible, since no assignment for the event “2” can be found (see FIGS. 16 and 19). Therefore, the search for a compatible part event structure for TE1b continues.
Der Vergleich fällt positiv aus, wenn für jede Teilereignisstruktur der Ereignisstruktur E1, sowie jede durch im Zuge des Vergleichs entstandenen Teilereignisstrukturen durch Hinzufügen von umgekehrten importierten Kausalitätsrelationen, eine kompatible The comparison is positive if there is a compatible one for each partial event structure of the event structure E1, as well as for each partial event structure created in the course of the comparison by adding reverse imported causality relationships
Teilereignisstrukturen der Ereignisstruktur E2 gefunden werden. Part event structures of the event structure E2 can be found.
Der Vergleich fällt negativ aus, wenn für eine Teilereignisstruktur der Ereignisstruktur E1, oder für eine durch im Zuge des Vergleichs entstandenen Teilereignisstrukturen durch Hinzufügen von umgekehrten importierten Kausalitätsrelationen, keine kompatible Teilereignisstruktur in der Menge der Teilereignisstrukturen der Ereignisstruktur E2 gefunden werden kann. In diesem Fall kann der Vergleich sofort abgebrochen werden. The comparison is negative if a compatible partial event structure cannot be found in the set of partial event structures of the event structure E2 for a partial event structure of the event structure E1, or for a partial event structure resulting from the comparison by adding reverse imported causality relationships. In this case the comparison can be stopped immediately.
Vergleich von Ereignisstrukturen ES — Revidieren von Zuordnungen Comparison of event structures ES - revision of assignments
Das zuvor beschriebene Ausführungsbeispiel eines Vergleichs zweier Ereignisstrukturen E1, E2 wird im Folgenden erweitert, sodass das Lichtsignal L zweimal aufleuchtet, bevor der Zug die Freigabe zum Kreuzen mittels der Aktion „Go“ erhält. The above-described embodiment of a comparison of two event structures E1, E2 is expanded in the following, so that the light signal L lights up twice before the train is released to cross by means of the “Go” action.
Dazu werden eine erste Ereignisstruktur E1 (Fig. 29), in der die Aktion „Anschalten der Lichtsignale“ LAn, sowie die Aktion „Schließen des Schrankens“ SUnten in beliebiger Reihenfolge erfolgen dürfen. In der zweiten Ereignisstruktur E2 muss eines der Lichtsignale L zwingend nach dem Schließen des Schrankens angeschaltet werden (Fig. 30). For this purpose, a first event structure E1 (Fig. 29), in which the action "switching on the light signals" LAn and the action "closing the barrier" S may be carried out in any order. In the second event structure E2, one of the light signals L must be switched on after the barrier has been closed (FIG. 30).
Der Übersichtlichkeit halber sind in den Fig. 31 bis 38 die Kausalitätsrelationen KoR der zweiten Ereignisstrukturen E2 mit eindeutigen Namen K1, K2, K3 versehen, um zu verdeutlichen, welche Kausalitätsrelationen KoR beim Vergleich mit der Ereignisstruktur E2 in die Ereignisstruktur E1 importiert werden. For the sake of clarity, the causality relations KoR of the second event structures E2 are given unique names K1, K2, K3 in FIGS. 31 to 38 in order to clarify which causality relations KoR are imported into the event structure E1 when compared with the event structure E2.
Ziel des Vergleichs der beiden Ereignisstrukturen E1, E2 ist, wie zuvor beschrieben, zu untersuchen, ob die Menge an Sequenzen von Aktionen A, beschrieben durch die Ereignisstruktur E1, in der entsprechenden Menge der Sequenzen von Aktionen A Ereignisstruktur E2 enthalten ist. Dabei ist zu erwarten, dass dieser Vergleich fehlschlägt, da Ereignisstruktur E2 die Sequenz < LAn, LAn, SUnten > nicht zulässt, welche in Ereignisstruktur E1 möglich ist. The aim of the comparison of the two event structures E1, E2, as described above, is to investigate whether the set of sequences of actions A, described by the event structure E1, is contained in the corresponding set of sequences of actions A, event structure E2. It can be expected that this comparison will fail because event structure E2 does not allow the sequence <LAn, LAn, SUnten>, which is possible in event structure E1.
Der erste Schritt des Vergleichs glückt, da alle Kausalitätsrelationen K1, K2, K3 der Ereignisstruktur E2 problemlos in die Ereignisstruktur E1 übernommen bzw. importiert werden können (Fig. 31). Die importierte Kausalitätsrelation K3 erzeugt in der Ereignisstruktur E1 allerdings eine Kausalität zwischen den Ereignissen „2“ und „3“, die in der Ereignisstruktur 1 ursprünglich nicht enthalten ist. Deswegen wird eine neue, durch Umkehren der importierten Kausalitätsrelation K3 entstehende Ereignisstruktur E1* erstellt und ebenfalls mit der Ereignisstruktur 2 verglichen (Fig. 33). Die Kausalitätsrelation KaR zwischen dem initialen Ereignis El und Ereignis „3“ braucht dabei nicht extra eingezeichnet werden, da diese transitive Kausalität implizit besteht. The first step of the comparison works because all causality relations K1, K2, K3 of the event structure E2 can be adopted or imported into the event structure E1 without any problems (FIG. 31). The imported causality relation K3, however, creates a causality between the events “2” and “3” in the event structure E1, which is not originally contained in the event structure 1. For this reason, a new event structure E1 *, created by reversing the imported causality relation K3, is created and also compared with the event structure 2 (FIG. 33). The causality relation KaR between the initial event E1 and event "3" does not need to be drawn in, since this transitive causality exists implicitly.
Zunächst wird in der Ereignisstruktur E1* die Kausalitätsrelation K1, die in der First in the event structure E1 * is the causality relation K1, which in the
Ereignisstruktur E2 zwischen dem initialen Ereignis und Ereignis „4“ besteht, importiert bzw. eingefügt. Hierfür gibt es zwei Möglichkeiten: Entweder Ereignis „1“ oder Ereignis „2“ Event structure E2 exists between the initial event and event "4", imported or inserted. There are two ways to do this: Either event "1" or event "2"
können Ereignis „4“ zugeordnet werden. Im gezeigten Ausführungsbeispiel wird zunächst Ereignis „1“ gewählt (Fig. 34). event "4" can be assigned. In the exemplary embodiment shown, event “1” is first selected (FIG. 34).
Als nächstes wird die Kausalitätsrelation K2, die in der Ereignisstruktur E2 zwischen dem initialen Ereignis El und Ereignis „5“ besteht, in die Ereignisstruktur E1* importiert, wobei als Zuordnung für Ereignis „5“ nur Ereignis „3“ in Frage kommt (Fig. 35). Next, the causality relation K2, which exists in the event structure E2 between the initial event E1 and event "5", is imported into the event structure E1 *, whereby only event "3" can be used as an assignment for event "5" (Fig. 35).
Zuletzt wird die Kausalitätsrelation K3, die in der Ereignisstruktur E2 zwischen den Ereignissen „5“ und „6“ besteht in die Ereignisstruktur E1* übernommen. Da Ereignis „1“ bereits zugeordnet ist, muss Ereignis „2“ dem Ereignis „6“ zugeordnet werden (Fig. 36). Dadurch ergibt sich in der Ereignisstruktur E1* ein Zyklus zwischen Ereignis „2“ und Ereignis „3“ aus originalen und importierten Kausalitätsrelationen. Wie zuvor beschrieben, dürfen sich durch Hinzufügen von allen Kausalitätsrelatonen KaR der einen Teilereignisstruktur bzw. Ereignisstruktur E1 zur jeweils anderen Teilereignisstruktur bzw. Ereignisstruktur E2 für die gemäß der Zuordnung einander entsprechender Paare von Ereignissen E der ersten Teilereignisstruktur keine Zyklen in der Kausalität der ersten Teilereignisstruktur ergeben. Finally, the causality relation K3, which exists in the event structure E2 between the events “5” and “6”, is adopted in the event structure E1 *. Since event "1" is already assigned, event "2" must be assigned to event "6" (Fig. 36). This results in a cycle between event "2" and event "3" in the event structure E1 * from original and imported causality relations. As described above, by adding all causality relations KaR of one sub-event structure or event structure E1 to the other sub-event structure or event structure E2 for the corresponding pairs of events E of the first sub-event structure, no cycles may result in the causality of the first sub-event structure .
Die Entscheidung, Ereignis „1“ der Ereignisstruktur E1* dem Ereignis „4“ der Ereignisstruktur E2 zuzuordnen, wird also revidiert und Ereignis „4“ stattdessen Ereignis „2“ der Ereignisstruktur E1* zugeordnet (Fig. 37). Beim Revidieren der Zuordnung werden auch alle danach getroffenen Zuordnungen und importierten Konfliktrelation KoR aus E1* entfernt. Die neue Zuordnung führt zu einem positiven Ergebnis des Vergleichs. The decision to assign event “1” of event structure E1 * to event “4” of event structure E2 is thus revised and event “4” is instead assigned event “2” of event structure E1 * (FIG. 37). When the assignment is revised, all assignments made afterwards and imported conflict relation KoR are also removed from E1 *. The new assignment leads to a positive result of the comparison.
In diesem Fall wurde jedoch erneut eine Kausalitätsrelation K3 aus der Ereignisstruktur E2 importiert, die eine nichtexistierende Kausalität zwischen den Ereignissen „3“ und „1“ in der Ereignisstruktur E1* erzeugt. Deswegen ist, wie zuvor beschrieben, ein Vergleich für eine neue Ereignisstruktur E1** (Fig. 38), in der die Kausalität zwischen den In this case, however, a causality relation K3 was imported from the event structure E2, which creates a non-existent causality between the events "3" and "1" in the event structure E1 *. Therefore, as previously described, is a comparison for a new event structure E1 ** (Fig. 38) in which the causality between the
Ereignissen „3“ und „1“ in umgekehrter Richtung vorhanden ist, durchzuführen. Der Vergleich der Ereignisstrukturen E1**, E2 schlägt in diesem Fall jedoch fehl, da die aus der Ereignisstruktur E2 importierte Kausalitätsrelation K3 immer einen Zyklus erzeugt, Events "3" and "1" in the opposite direction are to be carried out. In this case, however, the comparison of the event structures E1 **, E2 fails because the causality relation K3 imported from the event structure E2 always generates a cycle,
egal zwischen welchen Ereignissen K1 und K2 importiert werden. no matter between which events K1 and K2 are imported.
Die resultierende Ereignisstruktur E1** repräsentiert alle Sequenzen an Aktionen, die in der Ereignisstruktur 1 möglich sind, in Ereignisstruktur 2 allerdings nicht. Namentlich sind das beide Sequenzen, die zunächst zwei Lichtsignale L haben und erst dann den Schranken schließen. The resulting event structure E1 ** does not represent all sequences of actions that are possible in event structure 1, but not in event structure 2. In particular, these are both sequences, which initially have two light signals L and only then close the barrier.
Interne Aktionen Internal actions
Aktionen A können zusätzlich zu Eingaben und Ausgaben auch interne Aktionen sein. Interne Aktionen modellieren Aktionen A, die das System in einen neuen Zustand bringen, ohne dabei von außerhalb des Systems sichtbar bzw. steuerbar zu sein. Interne Aktionen können zum Beispiel Umsetzungsdetails für die Modellierung angeben. Actions A can be internal actions in addition to inputs and outputs. Internal actions model actions A, which bring the system into a new state without being visible or controllable from outside the system. For example, internal actions can provide implementation details for modeling.
Der Vergleich soll agnostisch gegenüber internen Aktionen sein. Das heißt Sequenzen von Aktionen sollen als ident betrachtet werden, wenn die Sequenzen von Aktionen die entstehen, wenn man interne Aktionen aus den ursprünglichen Sequenzen löscht, ident The comparison should be agnostic towards internal actions. That is, sequences of actions should be considered identical if the sequences of actions that arise when internal actions are deleted from the original sequences are identical
sind. are.
Um dies zu erreichen müssen Ereignisstrukturen vor dem Vergleich reduziert werden und Ereignisse denen interne Aktionen zugeordnet sind müssen gelöscht werden. Um die Semantik der Ereignisstruktur zu erhalten, muss beim Löschen von Ereignissen darauf geachtet werden, dass Kausalitäts- und Konfliktrelationen von gelöschten Ereignissen korrekt auf bestehende Ereignisse übertragen werden. To achieve this, event structures must be reduced before the comparison and events to which internal actions are assigned must be deleted. To preserve the semantics of the event structure, care must be taken when deleting events that causality and conflict relations of deleted events are correctly transferred to existing events.
Die in Tabelle 4 aufgeführten internen Aktionen werden zur Erweiterung des oben beschriebenen Ausführungsbeispiels eingeführt. In dieser Version des Modells M müssen Lichtsignal und Schranke zunächst einen Selbsttest durchführen, bevor das Licht angeht bzw. sich der Schranken schließt. In diesem Ausführungsbeispiel wird dabei nicht berücksichtigt, wie die Tests tatsächlich ablaufen, sondern lediglich, ob sie ausgeführt The internal actions listed in Table 4 are introduced to expand the exemplary embodiment described above. In this version of the M model, the light signal and barrier must first carry out a self-test before the light comes on or the barrier closes. In this exemplary embodiment, it is not taken into account how the tests actually run, but only whether they are carried out
wurden. were.
Tabelle 4: Interne Aktionen des Modells M Aktion A Aktionstyp Beschreibung |Bedingung Effekt Table 4: Internal actions of the model M Action A Action type Description | Condition Effect
LTest Intern Führt einen | LTest==False LTest:=True Selbsttest am Licht aus. LTest Intern Performs a | LTest == False LTest: = True self-test on light off.
STest Intern Führt einen | STest==False STest:=True Selbsttest an der Schranke STest Intern Runs a | STest == False STest: = True self-test at the barrier
aus. out.
LAn Ausgabe Das Warnlicht | Pos==Nah && |L:=An geht an sobald |LTest== True sich ein Zug nähert und der Selbsttest des Lichts durchgeführt LAn Issue The warning light | Pos == Nah && | L: = On comes on as soon as | LTest == True a train is approaching and the self test of the light has been carried out
wurde has been
SUnten Ausgabe Die Schranke | Pos==Nah && |S:=0 schließt sich | STest==True sobald sich ein Zug nähert und der Selbsttest der Schranke durchgeführt Bottom edition The barrier | Pos == Close && | S: = 0 closes | STest == True as soon as a train approaches and the barrier self-test is carried out
wurde has been
Der erweiterte erste Teil der Ereignisstruktur E1 ist in Fig. 39 dargestellt. Dabei werden internes Verhalten bzw. interne Aktionen als nicht relevant für den Vergleich von Modellen M erachtet. Von Interesse ist lediglich, ob zwei Modelle M1, M2 dieselben Sequenzen an Eingaben und Ausgaben zulassen. Deswegen werden interne Aktionen ausgeblendet. Zu diesem Zweck kann jede Ereignisstruktur ES auf eine Ereignisstruktur ES ohne interne Aktionen reduziert werden, indem Kausalitätsrelationen KaR bzw. Konfliktrelationen KoR auf bedingte Ereignisse E umgeleitet werden. The expanded first part of the event structure E1 is shown in FIG. 39. Internal behavior or internal actions are not considered relevant for the comparison of models M. It is only of interest whether two models M1, M2 allow the same sequences of inputs and outputs. That is why internal actions are hidden. For this purpose, each event structure ES can be reduced to an event structure ES without internal actions by redirecting causality relations KaR or conflict relations KoR to conditional events E.
Die Reduktion des gezeigten Ausführungsbeispiels erfolgt in folgenden Schritten: The embodiment shown is reduced in the following steps:
Zunächst werden aus der Ereignisstruktur E1 das Ereignis „1“ und alle ausgehenden Kausalitätsrelationen KaR entfernt und die Kausalitätsrelation KaR zwischen dem initialen First, event "1" and all outgoing causal relations KaR are removed from event structure E1 and causal relation KaR between the initial one
Ereignis El und Ereignis „1“ wird zu allen bedingten Ereignissen umgeleitet, welches in Event El and event "1" are redirected to all conditional events, which in
diesem Fall lediglich Ereignis „5“ ist (Fig. 40). Anschließend werden aus der Ereignisstruktur E1 das Ereignis „3“ und alle ausgehenden Kausalitätsrelationen KaR entfernt und die Kausalitätsrelation KaR zwischen dem initialen Ereignis El und Ereignis „3“ wird zu allen bedingten Ereignissen umgeleitet, welches in diesem Fall lediglich In this case, event "5" is only (Fig. 40). Event "3" and all outgoing causality relations KaR are then removed from event structure E1 and the causality relation KaR between initial event E1 and event "3" is redirected to all conditional events, which in this case is merely
Ereignis „6“ ist (Fig. 41). Event is "6" (Fig. 41).
Indirekte Kausalitätsrelationen KaR brauchen nicht eingezeichnet werden. Die entstandene Ereignisstruktur E1' (Fig. 42) ist äquivalent zur Ereignisstruktur E1, d.h. sie ist bis auf die Nummerierung von Ereignissen gleich zum entsprechenden Teil der Ereignisstruktur E1 des originalen Modells. Indirect causal relationships KaR need not be drawn. The resulting event structure E1 '(Fig. 42) is equivalent to the event structure E1, i.e. apart from the numbering of events, it is the same as the corresponding part of the event structure E1 of the original model.
In gleicher Weise werden Konfliktrelationen KoR umgeleitet, was anhand des folgenden Beispiels einer Ereignisstruktur E3 (Fig. 43) demonstriert wird. Zunächst wird Ereignis „2“ aus der Ereignisstruktur E3 entfernt, da es sich dabei um eine interne Aktion, das Testen des Lichtsignals“ handelt und die Kausalitätsrelationen zwischen den Ereignissen „1“ und „2“ werden auf die bedingten Ereignisse „1“ und „4“ umgeleitet und Konfliktrelationen werden auf bedingte Ereignisse „4“ und „3“ umgeleitet (Fig. 44). In the same way, conflict relations KoR are redirected, which is demonstrated using the following example of an event structure E3 (FIG. 43). First, event "2" is removed from event structure E3, since this is an internal action, testing the light signal "and the causal relationships between events" 1 "and" 2 "are related to conditional events" 1 "and" 4 ”and conflict relations are redirected to conditional events“ 4 ”and“ 3 ”(Fig. 44).
Anschließend wird Ereignis „3“, das Testen des Schrankens, aus der Ereignisstruktur E3 entfernt, da es sich dabei um eine interne Aktion, das Testen des Schrankens“ handelt und die Kausalitätsrelationen zwischen den Ereignissen „1“ und „3“ werden auf die bedingten Ereignisse „1“ und „5“ umgeleitet und Konfliktrelationen werden auf bedingte Ereignisse „4“ und „5“ umgeleitet (Fig. 45). Event "3", the testing of the barrier, is then removed from the event structure E3, since this is an internal action, the testing of the barrier "and the causality relationships between the events" 1 "and" 3 "are conditional Events "1" and "5" are redirected and conflict relations are redirected to conditional events "4" and "5" (Fig. 45).
Das Ergebnis dieser Reduktionen der Ereignisstruktur E3 ist, wie erwartet, äquivalent zur entsprechenden Ereignisstruktur E3' ohne internen Aktionen. As expected, the result of these reductions in the event structure E3 is equivalent to the corresponding event structure E3 'without internal actions.
Partieller Aufbau und Vergleich von Modellen M Partial construction and comparison of models M
Beim zuvor beschriebenen Aufbau einer Ereignisstruktur ES kann die Ereignisstruktur ES theoretisch unendlich lang weitergeführt werden. Selbst wenn dies nicht der Fall wäre, können Modelle M enorm groß werden, was sowohl den Aufbau als auch den Vergleich derartiger Ereignisstrukturen ES extrem rechen- und zeitaufwendig und somit praktisch In the construction of an event structure ES described above, the event structure ES can theoretically continue indefinitely. Even if this were not the case, models M can become enormously large, which makes both the structure and the comparison of such event structures ES extremely computational and time-consuming and therefore practical
unmöglich macht. makes impossible.
Um diesem Problem entgegenzutreten, wird der Aufbau und Vergleich von Ereignisstrukturen ES in kleine Teile strukturiert. Eine Ereignisstruktur ES wird, beginnend In order to counter this problem, the structure and comparison of event structures ES is structured into small parts. An event structure ES is starting
von einem vorgegebenen bzw. ausgewählten Zustand des Modells M, solange aufgebaut, bis nur noch Ereignisse E hinzugefügt werden können, die Eingaben als Aktion haben. Der Vergleich erfolgt ebenfalls lediglich auf den Teilereignisstrukturen TE, die einem Abschnitt eines solchen Aufbaus entsprechen. from a predefined or selected state of the model M, built up until only events E can be added that have inputs as an action. The comparison also only takes place on the partial event structures TE, which correspond to a section of such a structure.
Dazu wird das zu vergleichende Modell M1 lediglich partiell in eine Ereignisstruktur ES überführt, und mit entsprechenden Teilen bzw. Ereignisstrukturen ES des für den Vergleich herangezogenen Modells M2 verglichen. Dabei werden partielle Ereignisstrukturen aufgebaut die, beginnend von einem vorgegebenen Zustand des Modells, teilweisen Ausführungen des Modells entsprechen, bei denen alle möglichen Ausgaben des Systems erfolgt sind und das Modell eine Eingabe notwendig macht, um For this purpose, the model M1 to be compared is only partially converted into an event structure ES and compared with corresponding parts or event structures ES of the model M2 used for the comparison. Partial event structures are built up which, starting from a given state of the model, correspond to partial executions of the model, in which all possible outputs of the system have been made and the model requires input in order to
weitere Ausgaben zu produzieren. to produce further editions.
Teile der einen Version des zu vergleichenden Modells werden mit Teilen des für den Vergleich herangezogenen Modells verglichen, die den jeweiligen partiellen Ereignisstrukturen mit der gleichen Eingabe, beginnend von einem gemeinsamen Parts of one version of the model to be compared are compared with parts of the model used for the comparison, which give the respective partial event structures with the same input, starting from a common one
Zustand, entsprechen. Condition, conform.
Beim zuvor angegebenen Beispiel einer Eisenbahnkreuzung erfolgt der Aufbau in folgenden Teilen: Zunächst werden zum initialen Ereignis El die Ereignisse mit den Nummern „1“ entsprechend der Eingaben „ZNah“ und „2“ entsprechend „GKreuz“ eingefügt, wie dies in Fig. 3 dargestellt ist. In the example of a railway crossing given above, the structure is made up of the following parts: First, the events with the numbers “1” corresponding to the inputs “ZNah” and “2” corresponding to “GKreuz” are inserted for the initial event El, as shown in FIG. 3 is.
Die Eingabe „GKreuz“ führt zu keinen weiteren Ereignissen E. Die Eingabe „ZNah“ induziert die in Fig. 46 dargestellte Ereignisstruktur an möglichen Ausgaben. Bei dieser Ereignisstruktur sind „ZKreuz“ und „GKreuz“ mögliche Eingaben, die folgend auf die Aktion 5 „Go“ erfolgen können. Bei Wahl von „ZKreuz“ wird die in Fig. 47 dargestellte Entering "GKreuz" does not lead to any further events E. Entering "ZNah" induces the event structure shown in Fig. 46 in possible outputs. With this event structure, "ZKreuz" and "GKreuz" are possible entries that can be made following action 5 "Go". If “ZKreuz” is selected, the one shown in Fig. 47 is displayed
Ereignisstruktur induziert. Event structure induced.
Abermals sind „ZFern“ und „GKreuz“ bei dieser Ereignisstruktur mögliche Eingaben, die nach Aktion 6 „ZKreuz“ erfolgen können. Die Wahl von „ZFern“ induziert die in Fig. 48 dargestellte Ereignisstruktur. Für die Aktion „ZNah“ gibt es 5 verschiedene Historien (Fig. 48), die sich dadurch unterscheiden, ob sich zwischenzeitlich der Schranken geöffnet hat oder das Licht angegangen ist. Again, "ZFern" and "GKreuz" are possible entries in this event structure, which can be made after action 6 "ZKreuz". The choice of "ZFern" induces the event structure shown in Fig. 48. There are 5 different histories for the “ZNah” campaign (Fig. 48), which differ in whether the barrier has opened in the meantime or the light has come on.
Je nach geplantem Suchaufwand, Suchziel und Modellgröße können einzelne, mehrere, oder alle dieser Historien und Eingaben weiterverfolgt und verglichen werden. Depending on the planned search effort, search target and model size, individual, several or all of these histories and entries can be followed up and compared.
Die Auswahl der Historien und Eingaben kann zufällig, heuristisch, oder umfassend durchgeführt werden, wie dies in Fellner, Andreas, et al. "Model-based, mutation-driven test case generation via heuristic-guided branching search." Proceedings of the 15th ACM-IEEE International Conference on Formal Methods and Models for System Design. ACM, 2017 beschrieben ist. The selection of the histories and inputs can be carried out randomly, heuristically or comprehensively, as described in Fellner, Andreas, et al. "Model-based, mutation-driven test case generation via heuristic-guided branching search." Proceedings of the 15th ACM-IEEE International Conference on Formal Methods and Models for System Design. ACM, 2017.
Statische Analyse Static analysis
Um nur eine eingeschränkte Menge an Ereignissen E beim Vergleich von Ereignisstrukturen ES überprüfen zu müssen, bzw. einen effizienten Aufbau von Ereignisstrukturen ES zu gewährleisten, kann bei einem erfindungsgemäßen Verfahren optional eine statische Analyse genutzt werden, um festzulegen, welche Ereignisse E bei einem bestimmten Zustand des Modells M möglich sind und welche Aktionen potenziell in Konflikt stehen. In order to only have to check a limited number of events E when comparing event structures ES, or to ensure an efficient structure of event structures ES, a static analysis can optionally be used in a method according to the invention to determine which events E occur in a particular state of model M are possible and which actions are potentially in conflict.
Statische Analyse bezeichnet in diesem Zusammenhang die Extraktion und Nutzung von Informationen basierten auf statischen Elementen des Modells M, also zum Beispiel der Bedingungen, Effekten der Aktionen, sowie die Variablen auf die diese zugreifen. Konkret werden die Variablenzugriffe der Aktionen A genutzt, um beim Aufbau der Ereignisstruktur ES festzustellen, für welche Aktionen A möglicherweise neue Ereignisse E einzufügen sind und um festzustellen zwischen welchen Ereignissen Konfliktrelationen eingefügt werden müssen. Als zeit- und rechenaufwendigere Alternative dazu wäre es beispielsweise möglich, nach dem Einfügen eines Ereignisses E, jedes im Modell M zur Verfügung stehende Ereignis E dahingehend zu prüfen, ob eine Einfügung folgend auf das jeweils davor eingefügte Ereignis E zulässig ist. In this context, static analysis refers to the extraction and use of information based on static elements of model M, for example the conditions, effects of actions, and the variables that they access. Specifically, the variable accesses of actions A are used to determine when building the event structure ES for which actions A possibly new events E have to be inserted and to determine between which events conflict relations have to be inserted. As an alternative, which would require more time and computation, it would be possible, for example, after inserting an event E, to check each event E available in the model M to determine whether an insertion following the event E inserted before it is permissible.
Welche Aktionen potenziell in Konflikt stehen ist somit leicht feststellbar. Z.B. stehen die Aktionen „LAn“ und „Go“ in Konflikt weil „LAn“ der Variable „L“ einen Wert zuweist, den „Go“ verwendet. Hingegen stehen die Aktionen „SUnten“ und „LAus“ sicher nicht im Konflikt, da die einzige Variable die beide verwenden „Pos“ ist und beide dieser keinen Wert zuweisen. Der Einsatz einer Konfliktrelation ist eine konservative Approximation der Konfliktrelation wie weiter oben beschrieben wurde. Zwei Aktionen die laut statischer Analyse nicht miteinander in Konflikt stehen, stehen gesichert auch nicht in Konflikt im obigen Sinne. Allerdings kann es Aktionen geben, die laut statischer Analyse in Konflikt stehen, nicht aber im obigen Sinne. Die Berechnung von Konflikten mittels statischer Analyse ist allerdings weitaus weniger rechenaufwendig, da nicht die Resultate von unterschiedlichen Ausführungsreihenfolgen an einer potenziell großen Menge an It is therefore easy to determine which actions are potentially in conflict. E.g. the actions "LAn" and "Go" conflict because "LAn" assigns a value to the variable "L" that "Go" uses. On the other hand, the actions "SUnten" and "LAus" are certainly not in conflict, since the only variable that both use is "Pos" and neither assign any value to it. The use of a conflict relation is a conservative approximation of the conflict relation as described above. Two actions, which according to static analysis do not conflict with each other, are certainly not in conflict in the above sense. However, there can be actions that conflict according to static analysis, but not in the above sense. However, the calculation of conflicts using static analysis is far less computationally expensive, since the results of different execution orders do not affect a potentially large amount
Zuständen überprüft werden muss. Conditions must be checked.
Wenn nun ein Ereignis eingefügt wird, so sind Konfliktrelationen zu erstellen mit allen anderen Ereignissen, wenn die Aktionen, die diese Ereignisse ausführen einen Konflikt haben und die Ereignisse nicht (indirekt) in einer Kausalitätsbeziehung stehen. Obwohl dieses Verfahren die Zahl der Konflikte potentiell überschätzt und damit in einigen Fällen mehr Ereignisse als nötig eingefügt werden, so ist es doch effizienter als eine exakte Analyse der Aktionen, die statt einer syntaktischen Analyse eine mathematische Analyse notwendig macht. If an event is now inserted, conflict relations must be created with all other events if the actions that carry out these events have a conflict and the events are not (indirectly) in a causal relationship. Although this method potentially overestimates the number of conflicts and in some cases more events than necessary are inserted, it is still more efficient than an exact analysis of the actions, which requires a mathematical analysis instead of a syntactical analysis.
Bei der statischen Analyse werden Information über Zugriffe auf Variablen V von einer betreffenden Aktion A genutzt, um die Menge an anderen Aktionen A einzuschränken, deren Zulässigkeit sich nach der Ausführung der betreffenden Aktion A verändert haben kann. Dabei kann sich die Zulässigkeit einer Aktion, durch die Ausführung einer anderen Aktion, nur dann ändern, wenn die Bedingung zur Zulässigkeit der Aktion eine Variable V beinhaltet, die von der anderen Aktion verändert wird. Eine Variable V kann nur dann von einer Aktion A verändert werden, wenn es einen Teileffekt der Aktion gibt, der der Static analysis uses information about accesses to variables V by an action A in question in order to limit the amount of other actions A whose admissibility may have changed after the action A in question has been carried out. The permissibility of an action can only change through the execution of another action if the condition for the admissibility of the action includes a variable V which is changed by the other action. A variable V can only be changed by an action A if there is a partial effect of the action that the
Variable V einen neuen Wert zuweist. Assigns a new value to variable V.
Diese Einschränkung wird im Aufbau von Ereignisstrukturen ES eingesetzt, indem nach dem Einfügen eines Ereignisses E entsprechend einer Aktion A lediglich für die eingeschränkte Menge an Aktionen, deren Zulässigkeit sich geändert haben kann, zuzüglich allen Ereignissen, die mit dem eingefügten Ereignis E in Konflikt stehen, zu überprüfen ist, ob ein neues Ereignis E mit einer solchen Aktion A einzufügen ist. This restriction is used in the construction of event structures ES, in that after the insertion of an event E corresponding to an action A, only for the restricted amount of actions, the admissibility of which may have changed, plus all events that conflict with the inserted event E, check whether a new event E with such an action A is to be inserted.
Im gezeigten Ausführungsbeispiel einer Eisenbahnkreuzung wird ein Teil des Aufbaus der Ereignisstruktur ES wiederholt, um die vorteilhafte Verwendung einer statischen Analyse zu verdeutlichen und zu illustrieren, für welche Aktionen A beispielsweise überprüft wird, ob neue Ereignisse E hinzukommen, wobei diese Ereignisse E mit einer „?“-In the exemplary embodiment of a railroad crossing shown, part of the structure of the event structure ES is repeated in order to clarify the advantageous use of a static analysis and to illustrate the actions A is checked for, for example, whether new events E are added, these events E having a “? "-
Nummerierung symbolisiert werden. Numbering can be symbolized.
Im initialen Zustand | (Fig. 1) sind zunächst alle möglichen Aktionen A des Modells M zu überprüfen. Im gezeigten Ausführungsbeispiel wird zunächst das Ereignis mit der Nummer „1“ bzw. „ZNah“, also dass sich ein Zug der Eisenbahnkreuzung nähert, eingefügt, wie dies in Fig. 2 ersichtlich ist. „ZNah“ verändert die Variable „Pos“, welche in In the initial state | (Fig. 1) all possible actions A of the model M are to be checked first. In the exemplary embodiment shown, the event with the number “1” or “ZNah”, that is to say that a train is approaching the railway crossing, is first inserted, as can be seen in FIG. 2. "ZNah" changes the variable "Pos", which in
der Bedingung zur Prüfung der Zulässigkeit von allen Aktionen A (außer „GKreuz“, siehe Tabelle 2) benötigt wird. the condition for checking the admissibility of all actions A (except "GKreuz", see Table 2) is required.
Dementsprechend ist für alle Aktionen A zu prüfen, ob sie im Anschluss an Ereignis „1“ zulässig sind. Dabei wird nicht analysiert, welchen Wert „Pos“ nach der Ausführung von „ZNah“ hat, da im Allgemeinen der Wert von Variablen davon abhängt welche Aktionen zuvor ausgeführt wurden und eine Analyse die die gesamte Historie mit einbezieht zu rechenaufwändig ist, sondern lediglich welche Variablen V verändert werden. Es brauchen also nur neun statt aller zehn möglichen Aktionen (Fig. 49) auf deren Zulässigkeit überprüft werden. Die Aktion „GKreuz“ muss nicht überprüft werden, da sie die Variable Pos in ihren Bedingungen nicht zur Prüfung ihrer Zulässigkeit benötigt. Accordingly, it must be checked for all actions A whether they are permissible after event "1". It is not analyzed which value “Pos” has after the execution of “ZNah”, since in general the value of variables depends on which actions were carried out beforehand and an analysis that includes the entire history is computationally expensive, but only which variables V can be changed. So only nine instead of all ten possible actions (Fig. 49) need to be checked for their admissibility. The "GKreuz" action does not need to be checked, since the conditions of the variable Pos are not required to check its admissibility.
Die Prüfung der Zulässigkeiten ergibt, dass die Aktionen „LAn“ und „SUnten“ tatsächlich zulässig sind. Für diese Aktionen können also Ereignisse hinzugefügt werden. Zunächst wird aber das Ereignis mit der Nummer „2“ für die Aktion „GKreuz“ eingefügt (Fig. 50), da dieses Ereignis zulässig ist. Diese Aktion verändert die Variable „G“, welche lediglich für die Prüfung der Zulässigkeit der Aktionen „Go“ und „GKreuz“ benötigt werden, welche nun auf Zulässigkeit im Zustand entsprechend Ereignis „2“ geprüft werden. Beide Aktionen sind nicht zulässig, deswegen wird kein neues Ereignis im Anschluss an Ereignis „2“ The examination of the admissibility shows that the actions "LAn" and "SUnten" are actually permitted. Events can therefore be added for these actions. First, however, the event with the number "2" is inserted for the "Cross" action (Fig. 50), since this event is permissible. This action changes the variable "G", which is only required to check the admissibility of the actions "Go" and "GKreuz", which are now checked for admissibility in the state corresponding to event "2". Both actions are not allowed, so no new event following event "2"
hinzugefügt. added.
Ein Ereignis für „LAn“ mit einer Kausalitätsrelation KaR zu Ereignis „1“ wird eingefügt (Fig. 51). Diese Aktion verändert Variable „L“, welche nur für die Prüfung der Zulässigkeit der Aktionen „Go“, „LAus“ und „LAn“ genutzt wird. Dementsprechend braucht auch nur diese Aktion auf Zulässigkeit überprüft werden. Die Aktion „Go“ ist allerdings nicht zulässig, da der Wert von „S“ nicht 0 ist. Es gibt auch kein zu Ereignis „2“ unabhängiges Ereignis, das die Zulässigkeit herstellen könnte. Ebenfalls sind „LAn“ und „LAus“ nicht zulässig, da deren Bedingungen nicht erfüllt sind. An event for "LAn" with a causality relation KaR to event "1" is inserted (Fig. 51). This action changes variable "L", which is only used to check the admissibility of the actions "Go", "LAus" and "LAn". Accordingly, only this action needs to be checked for admissibility. However, the "Go" action is not allowed because the value of "S" is not 0. There is also no event independent of event "2" that could establish admissibility. Likewise, "LAn" and "LAus" are not permitted because their conditions are not met.
Ein Ereignis für „SUnten“ mit Kausalitätsrelation zu Ereignis „1“ wird eingefügt (Fig. 52). Diese Aktion verändert Variable „S“, welches nur für die Prüfung der Aktionen „Go“, „SUnten“ und „SOben“ genützt wird. Die Aktion „Go“ ist nach Ereignis „3“ nicht zulässig, da der Wert von „L“ nicht „True“ ist. Allerdings gibt es mit Ereignis „4“ ein Ereignis, das ebenfalls potenziell die Zulässigkeit der Aktion verändert. Deswegen muss auch geprüft werden, ob die Ereignisse mit den Nummern „4“ und „3“ gemeinsam die Aktion „Go“ An event for "SUnten" with causality relation to event "1" is inserted (Fig. 52). This action changes variable "S", which is only used for checking the actions "Go", "SUnten" and "SOben". The "Go" action is not permitted after event "3" because the value of "L" is not "True". However, with event "4" there is an event that also potentially changes the admissibility of the action. Therefore, it must also be checked whether the events with the numbers "4" and "3" together the action "Go"
zulässig machen, was der Fall ist. Die Aktionen „SUnten“ und „SOben“ sind nicht zulässig an dieser Stelle. allow what is the case. The actions "SUnten" and "SOben" are not permitted at this point.
Es wird ein Ereignis für „Go“ mit Kausalitätsrelation zu beiden bedingenden Ereignissen und einer Konfliktrelation zu Ereignis „2“ eingefügt (Fig. 53). Die Aktion „Go“ verändert die Variable „Stop“, welche zur Prüfung der Zulässigkeit von den Aktionen „SOben“, „LAus“, „Stop“, „Go“ und „ZKreuz“ verwendet wird (Fig. 54). Zusätzlich zur Prüfung der Zulässigkeit dieser fünf Aktionen muss auch die Zulässigkeit der Aktion „GKreuz“ geprüft werden, da es ein Ereignis entsprechend dieser Aktion gibt mit dem Ereignis „4“ in Konflikt steht (Fig. 53). Im Gegensatz zu den Aktionen, die ihre Zulässigkeit potenziell geändert haben können, brauchen Aktionen die in Konflikt stehen, ihre Zulässigkeit nicht zu ändern, um nach dem Ereignis zulässig zu sein. Lediglich die Reihenfolge der Ausführung bedingt einen Unterschied. Aktion „GKreuz“ ist in Ereignis „4“ zulässig, weswegen ein Ereignis für die Aktion eingefügt werden wird (siehe oben). An event for "Go" with a causality relation to both conditional events and a conflict relation to event "2" is inserted (Fig. 53). The "Go" action changes the "Stop" variable, which is used to check the admissibility of the "SOben", "LAus", "Stop", "Go" and "ZKreuz" actions (Fig. 54). In addition to checking the admissibility of these five actions, the admissibility of the "GKreuz" action must also be checked, since there is an event corresponding to this action which conflicts with the event "4" (Fig. 53). Unlike the actions that may have changed their admissibility, actions that are in conflict do not need to change their admissibility to be allowed after the event. Only the order of execution makes a difference. Action "GKreuz" is permitted in event "4", which is why an event for the action will be inserted (see above).
Objektgenaue statische Analyse Object-specific static analysis
Beim erfindungsgemäßen Vergleich von Modellen kann zur kompakteren Darstellung der Modelle optional eine Objektkapselung genutzt werden, die beispielsweise in Marcello M. Bonsangue, Joost N. Kok, and Kaisa Sere. 1998. An Approach to Object-Orientation in Action Systems. In Mathematics of Program Construction, MPC’98, Marstrand, Sweden, June 15-17, 1998, Proceedings (MPC), Johan Jeuring (Ed.), Vol. 1422. Springer, 68-95 oder http:/link.springer.de/link/service/series/0558/bibs/1422/14220068.htm beschrieben ist. When comparing models according to the invention, an object encapsulation can optionally be used for a more compact representation of the models, for example in Marcello M. Bonsangue, Joost N. Kok, and Kaisa Sere. 1998. An Approach to Object Orientation in Action Systems. In Mathematics of Program Construction, MPC'98, Marstrand, Sweden, June 15-17, 1998, Proceedings (MPC), Johan Jeuring (Ed.), Vol. 1422. Springer, 68-95 or http: /link.springer. de / link / service / series / 0558 / bibs / 1422 / 14220068.htm.
Es gibt dabei Klassen, die beschreiben, welche Variablen V jede Instanz dieser Klasse hat. Für jede Klasse gibt es eine Menge an Instanzen und es gibt Variablen die vom Typ einer Klasse sein können, das heißt auf Instanzen dieser Klasse verweisen. Prinzipiell agieren unterschiedliche Instanzen derselben Klasse unabhängig. Diese Unabhängigkeit There are classes that describe which variables V each instance of this class has. For each class there are a lot of instances and there are variables that can be of the type of a class, that is, refer to instances of this class. In principle, different instances of the same class act independently. This independence
soll von den aufgebauten Ereignisstrukturen genutzt werden. should be used by the built event structures.
Allerdings sind für die naive statische Analyse Variablen von einem Objekttyp sowie die Variablen dieser Instanzen ident, weswegen die zugehörigen Aktionen als in Konflikt stehend identifiziert werden. Dieser Umstand soll durch eine detailliertere statische However, for naive static analysis, variables of an object type and the variables of these instances are identical, which is why the associated actions are identified as conflicting. This fact is said to be due to a more detailed static
Analyse vermieden werden und zwischen Variablen die auf verschiedene Instanzen Analysis can be avoided and between variables referring to different instances
verweisen soll unterschieden werden. a distinction should be made.
Diese Unterscheidung von Variablen erfolgt, indem, beginnend vom Ausgangszustand des Vergleichs, die Instanzen von Variablen mit einem Objekttypen mitgeführt und eventuelle Änderungen dieser Instanzen durch Effekte von Aktionen akkurat gehalten werden. Die instanzgenaue Variablenaufschlüsselung wird dann zur Konfliktanalyse verwendet, sodass zwei Variablen mit Objekttyp nur dann als ident identifiziert werden, This distinction between variables is made by carrying out the instances of variables with an object type, starting with the initial state of the comparison, and keeping any changes to these instances accurate through the effects of actions. The instance-specific variable breakdown is then used for conflict analysis, so that two variables with object type are only identified as ident,
wenn sie auf dieselbe Instanz verweisen. if they refer to the same instance.
Zur Veranschaulichung wird das gezeigte Ausführungsbeispiel erweitert und die Situation modelliert, dass es mehrere Gleise gibt. Dazu gibt es eine Klasse „Gleis“, mit einer Variablen „G“, die angibt, ob sich Geröll auf dem Gleis befindet. Die Klasse hat zwei Instanzen „Gleis1“ und „Gleis2“, Dem Modell M werden neue Variablen „AktGleis“ vom Typ „Gleis“ sowie „GIlSet“ beispielsweise vom Typ Boolean hinzugefügt. Die in Tabelle 5 For illustrative purposes, the exemplary embodiment shown is expanded and the situation is modeled that there are several tracks. There is a class "track", with a variable "G", which indicates whether there is scree on the track. The class has two instances "Gleis1" and "Gleis2". New variables "AktGleis" of the type "Gleis" and "GIlSet", for example of the type Boolean, are added to the model M. The in Table 5
zusammengefassten Aktionen werden verändert bzw. hinzugefügt. summarized actions are changed or added.
Tabelle 5: Weitere Aktionen A im Modell M Table 5: Further actions A in model M
Aktion A | Aktionstyp | Beschreibung Bedingung Effekt Action A | Action type | Description Condition Effect
GKreuz1 |Eingabe Geröll gelangt auf Gleis1 | TRUE Gleis1.G := True GKreuz1 | Enter scree on track1 | TRUE Track1.G: = True
GKreuz2 | Eingabe Geröll gelangt auf Gleis2 | TRUE Gleis2.G := True GKreuz2 | Enter rubble on platform 2 | TRUE Track2.G: = True
AktGI1 Eingabe Der Zug fährt auf Gleis1 |GISet==False AktGleis:=Gleis 1 GlSet:=True AktGI1 input The train moves on Track1 | GISet == False AktGleis: = Track 1 GlSet: = True
AktGI2 Eingabe Der Zug fährt auf Gleis2 |GISet==False AktGleis:=Gleis2 GlSet:=True AktGI2 input The train moves on track2 | GISet == False AktGleis: = Gleis2 GlSet: = True
Go Ausgabe Das Stopsignal für den | Pos==Fern && Stop:=Aus Go output The stop signal for the | Pos == Fern && Stop: = Off
Zug geht aus sobald sich Stop==True && | GISet==False Train goes out as soon as Stop == True && | GISet == False
der Zug annähert, the train is approaching
Schranke geschlossen, S==0 && Warnlicht an ist, das|L==True && aktive Gleis gesetzt | aıset- True && wurde und am aktiven Barrier closed, S == 0 && warning light is on, the | L == True && active track set | aıset- True && was and is active
AktGleis.G==False Gleis kein Geröll ist ' AktGleis.G == False track is not a scree '
Beim Aufbau der Ereignisstruktur ES ist zunächst zu klären, welche Variable V die Aktion „Go“ für die Prüfung der Zulässigkeit benötigt. Als Bedingung ist Tabelle 5 zu entnehmen, dass „AktGleis.G“==False ist. „AktGleis“ ist allerdings eine Variable vom Typ „Gleis“. Je nachdem, ob „AktGleis“ gerade „Gleis1“ oder „Gleis2“ zugewiesen ist, wird entweder auf die Variable „Gleis1.G“ oder „Gleis2.G“ zugegriffen. Dies hat speziell Auswirkung darauf, ob eine Konfliktrelation zwischen Ereignissen mit der Aktion „Go“ bzw. „GKreuz1“ und „GKreuz2“ besteht. When setting up the event structure ES, it must first be clarified which variable V requires the "Go" action to check the admissibility. Table 5 shows that "AktGleis.G" == False. "AktGleis" is, however, a variable of the type "Gleis". Depending on whether "AktGleis" is currently assigned to "Gleis1" or "Gleis2", either the variable "Gleis1.G" or "Gleis2.G" is accessed. This has a special effect on whether there is a conflict relation between events with the "Go" or "GKreuz1" and "GKreuz2" actions.
Die Ereignisstruktur in Fig. 55 zeigt das Ergebnis einer objektgenauen Variablenanalyse. Dabei gibt es zwei Ereignisse mit der Aktion „Go“, je nachdem welches Gleis aktiv gesetzt wurde. Die Ereignisse stehen jeweils nur mit dem entsprechenden Ereignis „1“ oder „5“ in Konflikt. Ereignis „8“ kann zum Beispiel unabhängig von Ereignis „5“ eintreten. Dieselbe Analyse wird beispielsweise auch eingesetzt, um die Anzahl an möglichen zulässigen Aktionen A einzuschränken. The event structure in FIG. 55 shows the result of an object-specific variable analysis. There are two events with the "Go" action, depending on which track has been activated. The events only conflict with the corresponding event "1" or "5". Event "8" can occur, for example, independently of event "5". The same analysis is also used, for example, to limit the number of possible permissible actions A.
Testfälle T Test cases T
Erfindungsgemäß erstellte Ereignisstrukturen ES bzw. deren Vergleich können bzw. kann vorteilhafterweise auch zur Testfallgenerierung verwendet werden. Ein Testfall T ist dabei als eine Sequenz von Eingaben, Ausgaben, sowie erwartbaren Ausgaben zu verstehen. Dabei sind bei der Ausführung eines Testfalls T an einem zu testenden System die Eingaben von der ausführenden Instanz dem System zuzuführen, und die observierten Event structures ES created according to the invention or their comparison can or can advantageously also be used for test case generation. A test case T is to be understood as a sequence of inputs, outputs and expected outputs. When executing a test case T on a system to be tested, the inputs from the executing entity are to be fed to the system and the observations
Ausgaben sind mit dem Testfall T zu vergleichen. Outputs are to be compared with test case T.
Ein Testfall T wird dabei als korrekt ausgeführt betrachtet, wenn bei korrekter Abfolge der Sequenz an Eingaben, die vorgegebene Abfolge an Ausgaben beobachtet wird. Ein Testfall T wird als nicht konklusiv ausgeführt betrachtet, wenn bei korrekter Abfolge der Sequenz an Eingaben, eine Ausgabe erfolgt, die zwar als eine mögliche Ausgabe hinterlegt ist, aber nicht der vorgegebenen Sequenz von Ein- und Ausgaben entspricht. Ein Testfall T schlägt fehl, wenn bei korrekter Abfolge der Sequenz an Eingaben, eine Ausgabe erfolgt, die weder als aktuell mögliche Ausgabe hinterlegt ist, noch der vorgegebenen Sequenz von Ein- und Ausgaben entspricht. A test case T is considered to have been carried out correctly if, when the sequence of inputs is correct, the predetermined sequence of outputs is observed. A test case T is considered to be non-conclusive if, when the sequence of inputs is correctly followed, there is an output which is stored as a possible output but does not correspond to the predetermined sequence of inputs and outputs. A test case T fails if, if the sequence of inputs is correct, there is an output that is neither stored as the currently possible output nor corresponds to the predetermined sequence of inputs and outputs.
Testfälle T ergeben sich beispielsweise durch den Vergleich von zwei Versionen eines Modells M, die unter anderem entstehen können durch: Test cases T result, for example, from the comparison of two versions of a model M, which can arise, among other things, from:
- gezieltes Einsetzen von Fehlern im Modell M bzw. Mutationen, auf die später noch eingegangen wird, oder - targeted insertion of errors in model M or mutations, which will be discussed later, or
- Weiterentwicklung des Modells M, oder - Further development of the model M, or
- unabhängige Entwicklung des Modells M auf mehrere Arten, z.B. durch verschiedene Modellierungsansätze, von verschiedenen Personen, über verschiedene Übersetzungen - independent development of the model M in several ways, e.g. through different modeling approaches, from different people, through different translations
aus verschiedenen Modellierungssprachen etc., oder from different modeling languages etc., or
- verschiedene Abstraktionsebenen des Modells M. - different levels of abstraction of the model M.
Auf diese Weise werden zwei Modelle M1 und M2 erstellt. Durch die oben beschriebene Überführung der beiden Modelle M1, M2 in Ereignisstrukturen ES und deren Vergleich ergibt sich entweder, dass es keine Unterschiede in erlaubten Sequenzen von Eingaben und Ausgaben gibt, wobei in diesem Fall kein Testfall T generiert wird, oder dass es Unterschiede in erlaubten Sequenzen von Eingaben und Ausgaben gibt, wobei es in diesem Fall eine Teilereignisstruktur der Ereignisstruktur der einen Version des Modells M bzw. des Modells M1 gibt, die Sequenzen an Eingaben und Ausgaben beschreibt, die laut der Ereignisstruktur der anderen Version des Modells M bzw. des Modells M2 nicht In this way, two models M1 and M2 are created. The above-described conversion of the two models M1, M2 into event structures ES and their comparison either results in there being no differences in permitted sequences of inputs and outputs, in which case no test case T is generated, or that there are differences in permitted There are sequences of inputs and outputs, in which case there is a partial event structure of the event structure of one version of the model M or model M1, which describes sequences of inputs and outputs which, according to the event structure of the other version of the model M or of the Model M2 does not
zulässig sind. are permitted.
Damit kann entweder das Auftreten solcher Sequenzen getestet werden, indem diese Teilereignisstrukturen zu Testfällen T umgewandelt werden. Zusätzlich oder alternativ dazu kann das Ausbleiben falscher Sequenzen getestet werden, indem eine Teilereignisstruktur der Ereignisstruktur der anderen Version des Modells M bzw. des Modells M2 zu Testfällen T umgewandelt wird, wobei diese Teilereignisstruktur Sequenzen an Aktionen A ermöglichen soll, die maximal lang ident sind mit den nicht zulässigen Sequenzen an Aktionen A sind. The occurrence of such sequences can thus be tested by converting these sub-event structures to test cases T. Additionally or alternatively, the absence of incorrect sequences can be tested by converting a partial event structure of the event structure of the other version of model M or model M2 to test cases T, whereby this partial event structure is intended to enable sequences of actions A which are identical for a maximum of the prohibited sequences of actions A.
Konfliktfreie Teilereignisstrukturen können in Testfälle T umgewandelt werden, indem Sequenzen von Aktionen entsprechend Ereignissen gesammelt werden, die, gemäß den Kausalitätsrelationen KaR, bedingende Ereignisse vor bedingten Ereignissen reiht, und diese mit möglichen Ausgaben, die Ereignissen entsprechen, die laut der Kausalitätsrelationen KaR und/oder Konfliktrelationen KoR der gesamten Ereignisstruktur ES jeweils nach dem aktuellen Ereignis auftreten können. Diese Sequenzen können zu Testfällen komplettiert werden, indem für jede Ausgabe die Menge an zulässigen, alternativen Ausgaben aus der Ereignisstruktur abgelesen- und zum Testfall hinzugefügt Conflict-free sub-event structures can be converted into test cases T by collecting sequences of actions corresponding to events that, according to the causality relations KaR, ranks conditional events before conditional events, and these with possible outputs that correspond to events that according to the causality relations KaR and / or Conflict relations KoR of the entire event structure ES can occur after the current event. These sequences can be completed into test cases by reading the amount of permitted, alternative outputs from the event structure for each output and adding them to the test case
werden. become.
Generell werden in der industriellen Praxis als interessante Testfälle T solche betrachtet, die eine Version eines Modells M von einer anderen Version des Modells M unterscheiden. Wie bereits ausgeführt, umfasst ein Testfall T eine Sequenz an Eingaben und Ausgaben, sowie an möglichen Ausgaben die zwar vom Modell M erlaubt werden, aber nicht vom Testfall T an dieser Stelle der Sequenz vorgesehen sind. In general, interesting test cases T are considered in industrial practice to be those which distinguish one version of a model M from another version of the model M. As already stated, a test case T comprises a sequence of inputs and outputs, as well as possible outputs that are permitted by the model M, but are not provided by the test case T at this point in the sequence.
Folgende Sequenzen sind Testfälle T, wobei die Sequenz aus Paaren besteht, deren erster Teil die erwartete Eingabe bzw. Ausgabe ist und deren zweiter Teil die Liste an zulässigen, alternativen Ausgaben ist. The following sequences are test cases T, the sequence consisting of pairs, the first part of which is the expected input or output and the second part of which is the list of permissible, alternative outputs.
T1:< ZNah / {}, LAn / {SUnten}, SUnten / {}, Go / {} > T2: < ZNah / {}, SUnten / {LAn}, LAn / {}, Go /{} > T1: <ZNah / {}, LAn / {SUnten}, SUnten / {}, Go / {}> T2: <ZNah / {}, SUnten / {LAn}, LAn / {}, Go / {}>
T3: < ZNah / {}, LAn / {SUnten}, SUnten / {}, Go / {}, ZKreuz / {}, ZFern {}, Stop / {}, LAus / {SOben}, SOben / {} > T3: <ZNah / {}, LAn / {SUnten}, SUnten / {}, Go / {}, ZKreuz / {}, ZFern {}, Stop / {}, LAus / {SOben}, SOben / {}>
T4: < GKreuz / {} > T4: <GKreuz / {}>
Dabei sind in den in spitzen Klammern < > Sequenzen von Elementen bzw. Aktionen angegeben, wobei die Aktionen durch Schrägstriche / getrennt sind und in den geschwungenen Klammern {} jeweils zulässige, alternative Ausgaben angeführt sind, die statt der Aktion auftreten dürfen. Sofern die Sequenz mehrere Paare enthält, sind diese durch Kommata getrennt. Sequences of elements or actions are indicated in angle brackets <>, whereby the actions are separated by slashes / and in the curly brackets {} respectively permissible, alternative editions are listed which may occur instead of the action. If the sequence contains several pairs, they are separated by commas.
Wird Testfall T1 auf einem System getestet, ist zunächst die Eingabe „ZNah“ zu tätigen. Sollte darauf die Sequenz an Ausgaben < LAn, SUnten, Go > in dieser Reihenfolge beobachtet werden, so gilt der Test als korrekt ausgeführt. Sollte als erste Ausgabe „SUnten“ observiert werden, so endet der Test nicht konklusiv. „SUnten“ ist an dieser Stelle zwar erlaubt, aber nicht vorgesehen, weswegen keine weitere Aussage mehr über den Testablauf gemacht werden kann. Jede andere Ausgabe, oder das Fehlen jeglicher Ausgaben resultiert im Fehlschlag des Tests. Testfall T2 reiht im Vergleich zu Testfall T1 die Aktionen „LAn“ und „SUnten“ in der umgekehrten Richtung. Testfall T3 ist ein Test mit mehreren Eingaben. Testfall T4 testet eine andere erste Eingabe. If test case T1 is tested on a system, the entry "ZNah" must be made first. If the sequence of outputs <LAn, SUnten, Go> is observed in this order, the test is considered to have been carried out correctly. If “SUnten” is observed as the first issue, the test does not end conclusively. "South" is permitted at this point, but not provided, which is why no further statements can be made about the test procedure. Any other issue, or lack of any issue, will result in the test failing. Test case T2 rows the actions "LAn" and "SUnten" in the opposite direction to test case T1. Test case T3 is a test with multiple inputs. Test case T4 tests another first entry.
Im oben gezeigten Ausführungsbeispiel lieferte der Vergleich der beiden Ereignisstrukturen E1 (Fig. 29) und E2 (Fig. 30) ein negatives Ergebnis. Im Falle eines negativen Resultats des Vergleichs von Ereignisstrukturen, konnte nachgewiesen werden, dass Ereignisstruktur E1 mehr Sequenzen von Eingaben und Ausgaben aufweist, als Ereignisstruktur E2. In the exemplary embodiment shown above, the comparison of the two event structures E1 (FIG. 29) and E2 (FIG. 30) yielded a negative result. In the event of a negative result of the comparison of event structures, it could be shown that event structure E1 has more sequences of inputs and outputs than event structure E2.
Derartige Teilereignisstrukturen TE, wie beispielsweise die Teilereignisstruktur E1**, die das Scheitern des Vergleichs zweier Ereignisstrukturen E bewirkt haben, können als Testfälle T interpretiert werden. Dazu wird lediglich die Ereignisstruktur ES in eine lineare Reihenfolge gebracht und die möglichen alternativen Ausgaben, welche von der gesamten ursprünglichen Ereignisstruktur ES stammen, werden gesammelt. Daraus Such partial event structures TE, such as the partial event structure E1 **, which caused the comparison of two event structures E to fail, can be interpreted as test cases T. For this purpose, only the event structure ES is brought into a linear order and the possible alternative outputs, which come from the entire original event structure ES, are collected. Out of it
ergibt sich in diesem Fall folgender Testfall T5: T5: < LAn / {SUnten}, LAn / {SUnten}, SUnten / {} > In this case, the following test case T5 results: T5: <LAn / {SUnten}, LAn / {SUnten}, SUnten / {}>
Der Testfall T5 überprüft das Auftreten der zusätzlichen Sequenz < LAn, LAn, SUnten >. Test case T5 checks the occurrence of the additional sequence <LAn, LAn, SUnten>.
Das Modell M2 aus dem die Ereignisstruktur E2 entsteht, kann diesen Testfall T5 nicht erfolgreich ausführen, da spätestens nach dem ersten Auftreten von „LAn“ einmal „SUnten“ auftritt. Die Sequenz an Eingaben und Ausgaben wird der Ereignisstruktur entnommen, die möglichen Ausgaben beziehen sich auf die originale Ereignisstruktur, deswegen ist zum Beispiel „SUnten“ bereits zu Beginn möglich. The model M2 from which the event structure E2 arises cannot successfully execute this test case T5, since at the latest after the first occurrence of “LAn” “SUnten” occurs. The sequence of inputs and outputs is taken from the event structure, the possible outputs relate to the original event structure, which is why, for example, "SUnten" is possible right from the start.
Analog kann auch Ereignisstruktur E2 (Fig. 30) als Testfall T interpretiert werden. Ein möglicher Testfall T6 ist Event structure E2 (FIG. 30) can also be interpreted analogously as test case T. A possible test case is T6
T6: < LAn / {SUnten}, SUnten / {}, LAn / {} > T6: <LAn / {SUnten}, SUnten / {}, LAn / {}>
Dieser Testfall T6 überprüft das Ausbleiben der zusätzlichen Sequenz < LAn, LAn, SUnten >. Eine Ausführung des Testfalls T6 vom Modell, das Ereignisstruktur E1 induziert, kann diesen Test zum Scheitern bringen, wenn sie zum Beispiel die Sequenz liefert. Mutationen Wie oben erwähnt, können verschiedene Versionen eines Modells durch Mutation erzeugt werden. Eine Mutation ist dabei eine kleine, syntaktische Änderung des Modells. This test case T6 checks for the absence of the additional sequence <LAn, LAn, SUnten>. Executing test case T6 of the model that induces event structure E1 can cause this test to fail if, for example, it provides the sequence. Mutations As mentioned above, different versions of a model can be created by mutation. A mutation is a small, syntactic change in the model.
Mutationen Mutations
Wie oben erwähnt, können verschiedene Versionen eines Modells durch Mutation erzeugt werden. Eine Mutation ist dabei eine kleine, syntaktische Änderung des Modells. As mentioned above, different versions of a model can be created by mutation. A mutation is a small, syntactic change in the model.
angegebene Mutation verändert die Aktion „Go“, sodass die Aktion nicht überprüft, ob der Schranken unten ist. Der Mutant setzt lediglich eine Teilbedingung auf „True“. The specified mutation changes the "Go" action so that the action does not check whether the barrier is below. The mutant only sets a partial condition to "True".
Tabelle 6: Mutation im Modell M Table 6: Mutation in model M
Aktion A | Aktionstyp Beschreibung Bedingung Effekt Go Ausgabe Mutierte Version | Pos==Nah && Stop:=False (Mutant) ersetzt „S==0“ Stop==True &8& durch „True“ True && L==False && G==False Go Ausgabe Originale Version | Pos==Nah && Stop:=False (Original) hat „S==0“ als Stop==True && Teilbedingung S==0 && L==False && G==False Action A | Action Type Description Condition Effect Go Output Mutated Version | Pos == Close && Stop: = False (Mutant) replaces "S == 0" Stop == True & 8 & with "True" True && L == False && G == False Go Edition Original Version | Pos == Close && Stop: = False (original) has "S == 0" as Stop == True && partial condition S == 0 && L == False && G == False
Der für die Aktion „Go“ relevante Teil der Ereignisstruktur ändert sich wie in Fig. 56 dargestellt, sodass eine mutierte Ereignisstruktur EM der in Fig. 57 dargestellten originalen Ereignisstruktur E4 erstellt wird. Der Vergleich der Ereignisstrukturen ergibt, dass die mutierte Ereignisstruktur EM mehr Sequenzen an Aktionen hat als die originale Ereignisstruktur E4. Im Speziellen ist die Sequenz < ZNah, LAn, Go, SUnten > in der mutierten Ereignisstruktur EM möglich, in der originalen Ereignisstruktur E4 jedoch nicht. The part of the event structure relevant to the “Go” action changes as shown in FIG. 56, so that a mutated event structure EM of the original event structure E4 shown in FIG. 57 is created. The comparison of the event structures shows that the mutated event structure EM has more sequences of actions than the original event structure E4. In particular, the sequence <ZNah, LAn, Go, SUnten> is possible in the mutated event structure EM, but not in the original event structure E4.
Ein Testfall entsteht indem eine konfliktfreie Teilereignisstruktur der originalen Ereignisstruktur zu einer Sequenz transformiert wird, die möglichst den Sequenzen entspricht, die im Mutanten möglich, im Original aber nicht möglich sind. In diesem Beispiel gibt es nur eine solche Teilereignisstruktur, welches die gesamte originale Ereignisstruktur E4 ist. Die Ereignisse E werden in eine lineare Sequenz gebracht und die möglichen alternativen Ausgaben werden aus der gesamten Ereignisstruktur ES gesammelt. Der entstandene Testfall T7 ist: A test case is created by transforming a conflict-free partial event structure of the original event structure into a sequence that corresponds as closely as possible to the sequences that are possible in the mutant but not possible in the original. In this example there is only one such partial event structure, which is the entire original event structure E4. The events E are brought into a linear sequence and the possible alternative outputs are collected from the entire event structure ES. The resulting test case T7 is:
T7: < ZNah / {}, LAn / {SUnten}, SUnten / {}, Go / {} > T7: <ZNah / {}, LAn / {SUnten}, SUnten / {}, Go / {}>
Der Testfall T7 überprüft das Ausbleiben der Sequenz < ZNah, LAn, Go, SUnten >. Test case T7 checks for the absence of the sequence <ZNah, LAn, Go, SUnten>.
Auf diese Weise kann ein System wie beispielsweise die Steuer- und Regelungsanlage einer oben beschriebenen Bahnkreuzung getestet werden. Die Steuer- und Regelungsanlage ist dabei zur Messungen von Zustandsgrößen von Sensoren des Systems und zur Steuerung von Aktuatoren des Systems ausgebildet. In this way, a system such as the control and regulation system of an intersection described above can be tested. The open-loop and closed-loop control system is designed to measure state variables of sensors of the system and to control actuators of the system.
Für den Test wird im gezeigten Ausführungsbeispiel auf Grundlage eines Referenzmodells ein Modell für die zu testende Steuer- und Regelungsanlage einer oben beschriebenen Bahnkreuzung erstellt. Dabei werden die Zustände des Modells beispielsweise durch Messungen von Zustandsgrößen der Bahnkreuzung angegeben werden, die von der Steuer- und Regelungsanlage ermittelt werden und die Ausführung der Aktionen A des Modells bewirkt beispielsweise die Veränderung eines Aktuators des Systems gesteuert durch die Steuer- und Regelungsanlage. In the exemplary embodiment shown, a model for the control and regulation system to be tested of an intersection described above is created for the test in the exemplary embodiment shown. The states of the model will be specified, for example, by measurements of state variables of the web crossing, which are determined by the control and regulation system, and the execution of actions A of the model will, for example, change an actuator of the system controlled by the control and regulation system.
Das Referenzmodell kann dabei auf Grundlage der Beobachtung eines physischen Referenzsystems gelernt werden, oder anderweitig zur Verfügung gestellt werden. Als physisches Referenzsystem kann beispielsweise eine Steuer- und Regelungsanlage für Bahnschranken herangezogen werden, die eine fehlerfreie Funktionsweise aufweist. The reference model can be learned based on the observation of a physical reference system, or made available in another way. For example, a control and regulation system for railroad gates can be used as the physical reference system, which has an error-free functioning.
Dazu wird ein weiteres Modell beispielsweise durch Mutation des Referenzmodells d erzeugt und Testfälle T werden erstellt, indem das weitere Modell mit dem For this purpose, a further model is generated, for example, by mutating the reference model d, and test cases T are created by combining the further model with the
Referenzmodell verglichen wird, wie dies zuvor bereits beschrieben wurde. Reference model is compared, as previously described.
Dabei kann ein Testadapter zum Einsatz kommen, bei dem es sich beispielsweise um ein Steuergerät handelt, auf dem die Testfälle T hinterlegt werden. Dieser Testadapter wird beispielsweise an die zu testende Steuer- und Regelungsanlage der Bahnkreuzung angeschlossen und führt die zuvor erstellten Testfälle T durch, um das System anhand der so erzeugten Testfälle T, wie zuvor beschrieben, zu testen. A test adapter can be used, which is, for example, a control unit on which the test cases T are stored. This test adapter is connected, for example, to the control and regulation system of the railroad crossing to be tested and carries out the test cases T previously created in order to test the system on the basis of the test cases T thus generated, as described above.
Dies bedeutet, dass vom Testadapter die Eingaben entsprechend der Testfälle T an die Steuer- und Regelungsanlage übermittelt werden und die als Reaktion auf die Eingaben vom zu testenden System erzeugten Ausgaben erfasst werden. Vorzugsweise werden bei der Ausführung eines Testfalls T die Eingaben dem System zugeführt werden, indem die Sensoren des Systems mit physikalischen Größen beaufschlagt werden, für die sie sensitiv sind, und die Ausgaben des Systems werden vorzugsweise festgestellt, indem This means that the inputs are transmitted from the test adapter to the control and regulation system in accordance with the test cases T and the outputs generated by the system to be tested are recorded in response to the inputs. Preferably, when a test case T is executed, the inputs are fed to the system by applying physical quantities to which the sensors of the system are sensitive, and the outputs of the system are preferably determined by
überprüft wird, ob ein Aktuator eine Aktion ausführt. Die beobachtete Ein- und Ausgaben mit beispielsweise vom Testadapter dem jeweiligen Testfall T verglichen. it is checked whether an actuator performs an action. The observed inputs and outputs are compared with the respective test case T, for example by the test adapter.
Dieser Vergleich der Ein- und Ausgaben mit den Testfällen T gibt Aufschluss darüber, ob die Ausgaben während der Testdurchführung von den erwarteten Ausgaben, die beispielsweise das Referenzsystem erzeugt, abweichen. Ist dies der Fall, deutet dies auf einen Fehler in der Steuer- und Regelungsanlage hin, der durch die Ausführung der Testfälle ermittelt und behoben werden kann, und derart Störungen oder Unfälle auf der getesteten Eisenbahnkreuzung verhindert werden können. This comparison of the inputs and outputs with the test cases T provides information as to whether the outputs during the test execution differ from the expected outputs, which the reference system generates, for example. If this is the case, this indicates an error in the control and regulation system, which can be determined and eliminated by executing the test cases, and in this way malfunctions or accidents at the tested railway crossing can be prevented.
Claims (1)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
ATA51088/2018A AT521931B1 (en) | 2018-12-07 | 2018-12-07 | Procedure for comparing two models that describe concurrent systems |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
ATA51088/2018A AT521931B1 (en) | 2018-12-07 | 2018-12-07 | Procedure for comparing two models that describe concurrent systems |
Publications (2)
Publication Number | Publication Date |
---|---|
AT521931A1 true AT521931A1 (en) | 2020-06-15 |
AT521931B1 AT521931B1 (en) | 2022-01-15 |
Family
ID=71066773
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ATA51088/2018A AT521931B1 (en) | 2018-12-07 | 2018-12-07 | Procedure for comparing two models that describe concurrent systems |
Country Status (1)
Country | Link |
---|---|
AT (1) | AT521931B1 (en) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5757678A (en) * | 1992-10-09 | 1998-05-26 | Texas Instruments Incorporated | Method of simultaneous simulation of a complex system having system objects, parameter objects, state objects, and simulation objects |
GB2357597A (en) * | 1999-12-22 | 2001-06-27 | Keith Andrew Burton | Dynamic process model with model interrogation |
WO2013076071A1 (en) * | 2011-11-25 | 2013-05-30 | Siemens Aktiengesellschaft | Method for semiautomatically creating a simulation model for a mechatronic system |
-
2018
- 2018-12-07 AT ATA51088/2018A patent/AT521931B1/en active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5757678A (en) * | 1992-10-09 | 1998-05-26 | Texas Instruments Incorporated | Method of simultaneous simulation of a complex system having system objects, parameter objects, state objects, and simulation objects |
GB2357597A (en) * | 1999-12-22 | 2001-06-27 | Keith Andrew Burton | Dynamic process model with model interrogation |
WO2013076071A1 (en) * | 2011-11-25 | 2013-05-30 | Siemens Aktiengesellschaft | Method for semiautomatically creating a simulation model for a mechatronic system |
Non-Patent Citations (3)
Title |
---|
BAKALEM, M. et al. 'PPS: An integrated object oriented Approach for modelling and Simulation fo manufacturing systems' Proceedings of IEEE International Conference on Systems, Man and Cybernetics, 2.-5. Okt. 1994, Seiten 2184 - 2189. [heruntergeladen am 28.11.2019] Heruntergeladen von <IEEE Xplore Digital Library, https://ieeexplore.ieee.org/ document/400188> <DOI: 10.1109/ICSMC.1994.400188> * |
HUERTAS-QUINTERO, LINA A. M. et al. 'A Systems Integration perspective to manufacturing modelling and simulation' 2010 IEEE International Systems Conference, 5.-8. April 2010 [heruntergeladen am 28.11.2019]. Heruntergeladen von <IEEE Explore Digital Library, https://ieeexplore.ieee.org/ document/5482347> <DOI: 10.1109/SYSTEMS.2010.5482347 > * |
The smart factory: Responsive , adaptive, connected manufacturing. [Datasheet online]. Deloitte University Press, 2017 [heruntergeladen am 28.11.2019]. Heruntergeladen von <https://www2.deloitte.com/content/dam/insights/us/articles/ 4051_The-smart-factory/DUP_The-smart-factory.pdf> * |
Also Published As
Publication number | Publication date |
---|---|
AT521931B1 (en) | 2022-01-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE60017457T2 (en) | PROCEDURE FOR ISOLATING AN ERROR IN ERROR MESSAGES | |
EP0894304B1 (en) | Process for automatic diagnosis of technical systems taking into consideration efficient knowledge acquisition and efficient processing in relation to operational time | |
DE102015207656B4 (en) | Method and system for testing control software of a controlled system | |
DE69223787T2 (en) | SYSTEM FOR QUALITATIVE CONCLUSION WITH PARALLEL PROCESSING | |
EP0966703B1 (en) | Method for computer-assisted error checking of sensors and/or actors in technical systems | |
DE102010033861A1 (en) | On a formal analysis based development of requirements specifications | |
EP2225617B1 (en) | System and method for the combined acquisition of data for scada and simulation or network calculation applications | |
AT521931B1 (en) | Procedure for comparing two models that describe concurrent systems | |
DE102021116315A1 (en) | Method for merging architectural information | |
EP3232327A1 (en) | Method for testing a control program of a control unit in a simulation environment on a computer | |
CH701481B1 (en) | Process management. | |
DE102020204714A1 (en) | Method and device for testing the compatibility between application software and a mobile work machine | |
WO2005109196A1 (en) | Method for determining deadlocks in secondary processes | |
DE102022213441A1 (en) | Procedure for automatically creating a test script | |
DE102017218143A1 (en) | Method and device for driving a vehicle electronic planning module | |
DE102021006166A1 (en) | Procedure for data transfer between two digital road maps | |
EP1717651B1 (en) | Method and system for analysing events related to operating a vehicle | |
DE102020206327A1 (en) | Method and device for testing a technical system | |
DE102010047957A1 (en) | Formal online verification of executable models | |
DE102010047954A1 (en) | Formal offline verification of executable models | |
EP1958101B1 (en) | System and method for the automatic verification of planning results | |
EP1433061B1 (en) | Method for verifying the calculator core of a microprocessor or a microcontroller | |
EP0828215B1 (en) | Method for computer verification of a program, which is present in a language for a programmable logic control | |
DE10243598A1 (en) | Functional verification method for integrated circuits e.g. storage and memory devices in communication and medical technology, involves defining a model-checking problem of the integrated circuit as an all-quantified formula | |
DE102022200412A1 (en) | FUZZING OF APPLICATION SOFTWARE OF COMPUTING UNITS OF VEHICLES VIA BASIC SOFTWARE ADAPTERS ON EXTERNAL COMPUTER SYSTEM |