WO2019068557A1 - Analyse einer datenstruktur - Google Patents

Analyse einer datenstruktur Download PDF

Info

Publication number
WO2019068557A1
WO2019068557A1 PCT/EP2018/076296 EP2018076296W WO2019068557A1 WO 2019068557 A1 WO2019068557 A1 WO 2019068557A1 EP 2018076296 W EP2018076296 W EP 2018076296W WO 2019068557 A1 WO2019068557 A1 WO 2019068557A1
Authority
WO
WIPO (PCT)
Prior art keywords
objects
data structure
comparison
determined
key
Prior art date
Application number
PCT/EP2018/076296
Other languages
English (en)
French (fr)
Inventor
Oliver Albrecht
Walter Hipp
Original Assignee
Bayerische Motoren Werke Aktiengesellschaft
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Bayerische Motoren Werke Aktiengesellschaft filed Critical Bayerische Motoren Werke Aktiengesellschaft
Publication of WO2019068557A1 publication Critical patent/WO2019068557A1/de

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/80Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML

Definitions

  • the invention relates to a method and a device for analyzing a data structure.
  • the data structure may in particular represent or model functional components of a control device.
  • a motor vehicle includes a controller that includes a plurality of components that are interconnected and that can exchange messages with each other.
  • the control unit can influence a physical aspect of the motor vehicle, for example by influencing a longitudinal or transverse movement of the motor vehicle or by activating a physical device on board the motor vehicle, such as a heater, an adjustable one
  • Exterior mirrors or an adjustable seat Malfunction of the controller may result in property damage or personal injury.
  • a component of the controller is changed, for example, by one of its electronic components is replaced by another, then a change to another component may be required to ensure a desired functionality of the controller.
  • the way in which the components work together may be indicated as a data structure that includes objects that represent the objects.
  • a change of the control device can correspond to a transformation of the data structure. In order to understand each change individually, differences between the data structures have to be determined.
  • An object underlying the invention is an improved technique for determining comparison keys for objects of a
  • a data structure comprises several objects.
  • a method includes steps of determining a comparison key for at least one of the objects; and assigning the determined comparison key to the object such that the objects are assigned different comparison keys.
  • the comparison key of the at least one object is determined on the basis of a structure definition assigned to the object.
  • the structure definition indicates how the object is constructed, so that the
  • Comparison key for each object can be determined in an appropriate manner.
  • the comparison key can take into account a characteristic of the object, so that the order can not only be reproducible but also meaningful with respect to the object.
  • a comparison key for an object associated with a controller may be determined based on a designation of the controller, wherein different portions of the label may be treated differently.
  • At least two objects of the data structure are assigned different structure definitions, and comparison keys for the two objects are determined in different ways.
  • Objects with the same or similar structures can thus be compared, while objects with different structures do not have to be comparable.
  • comparison keys of different objects may have different lengths to reflect possible object varieties and to reduce storage space for the comparison key. For an object that consists of only one digit, can be a short
  • Comparison key can be determined, which can assume at least 10 different values, while for an object that has a table with several
  • the structure definition of the at least one object may describe a relationship between two objects of the data structure, wherein the Comparison key is determined on the basis of both objects.
  • the relationship may exist between other objects or between the object and one or more other objects. This can also be a
  • the structure definition may describe a relationship to an optional object, where the comparison key is determined depending on the optional object, if present in the data structure.
  • the structure definition can be specified flexibly.
  • a determination of which optional objects are actually related to the processed object, how this relationship is designed, and what kind of optional objects may be improved can be determined only at run time.
  • An object can only be assigned a comparison key if the object does not yet contain a comparison key. As a result, already existing comparison keys can be exploited and only for those objects which do not comprise a comparison key or to which no comparison key is assigned, a new key is determined. On
  • the at least one object may include or reference one or more further objects, and the comparison key for the object may be determined based on the included or referenced objects.
  • the comparison key of the object is determined on the basis of all included or referenced objects, in particular their comparison keys.
  • those may comprise or
  • referenced objects that are used to form the comparison key for the parent object are also actively selected, specifically based on a structural definition of the object or one of the included or referenced objects.
  • the comparison key for the object can in particular be determined recursively on the basis of one or more included or referenced objects. In this case, in particular, a comparison key of a covered or referenced object for forming the comparison key for the
  • parent object can be used.
  • An encompassed object that is not characteristic of the parent object, for example, because it is encompassed by a large variety of other objects, can not be taken into account in forming the compare key.
  • a depth of work may be predetermined until the included or referenced objects are followed. This can prevent excessively long or even infinite recursion.
  • the comparison key is first determined with a predetermined recursion depth. Then there is a collision between comparison keys, so were the same for different objects
  • the determination can be repeated with an increased recursion depth until no more collision occurs.
  • the repeated determination can relate to one or more of the objects whose comparison keys conflict with one another, or also to further or all objects of the data structure.
  • the recursion can be aborted even if a cycle has been detected in a chain of dependencies of the objects. For example, if a first object includes a second, and this the first, then there is a cycle that can not be resolved by recursion.
  • objects already visited within the scope of a recursion are stored and a renewed processing of these objects is skipped in the following.
  • the data structure can be serialized in monotonic order of the comparison keys.
  • the objects covered by the data structure can be concatenated in ascending or descending order of their comparison key.
  • Concatenation is preferably as invariant as possible to a change of one of the objects of the data structure.
  • the serialized data structure can be compared to another serialized data structure.
  • a data structure that reflects, for example, an architecture of a controller may easily comprise several 10 MB in a serialized form.
  • the further serialized data structure may be determined based on a transformation of the other data structure.
  • the method may include the transformation.
  • the transformation may be a change to the thing reflected by the data structures
  • the transformation may reflect a change to the controller or to the architecture.
  • the control unit can be set up in particular for use on board a motor vehicle. For example, for a design of a controller or planning a mass production of
  • Controllers can assist the monitoring of changes with quality assurance.
  • the data structure may also reflect a system of a plurality of control devices, in particular on board a motor vehicle.
  • the data structure may include a tree-like structure of the objects. This allows many practical structures, such as linear or
  • a device comprises a memory device for storing a
  • the processing device is set up to determine a comparison key for at least one of the objects on the basis of a structure definition assigned to the object; and associate the particular comparison key with the object so that the objects are assigned different comparison keys.
  • the processing device is preferably set up to carry out a method described herein in whole or in part and may in particular comprise a programmable microcomputer or microcontroller.
  • the method may be completely or partially in the form of a
  • Computer program product with program code means present and run on the processing device or stored on a computer-readable medium.
  • FIG. 1 shows an exemplary motor vehicle with a control unit.
  • FIG. 2 shows exemplary, schematic representations of a
  • FIG. 3 illustrates a flowchart of a method.
  • FIG. 1 shows an exemplary system 100, which is realized as a motor vehicle, and comprises at least one control unit 105.
  • the controller 105 may
  • a brake system for controlling a physical function of the system 100 for controlling a physical function of the system 100, in the present example, a brake system for
  • the control unit 105 usually comprises a plurality of components 110, of which in the exemplary representation of FIG. 1, by way of example, a plurality of input components 15, a processing component 120, and a
  • Output component 125 are shown. Other or further components 1 10-120 may also be included.
  • the control unit 105 may be connected in particular by means of an input component 1 15 and / or an output component 125 with another control device, a sensor or an actuator. Communication between the controller and other devices on board the motor vehicle 100 may be by means of a control bus (not shown).
  • a function, structure or architecture of the controller 105 based on the components 110 may be represented in the form of a data structure.
  • a device 130 may be provided which preferably comprises an input device 135 for acquiring the data structure and a processing device 140.
  • a memory device 145 is further provided, which is configured to record the data structure in whole or in part and optionally further information such as a structure definition of an object that is encompassed by the data structure.
  • FIG. 2 shows a first data structure 205, which for example reflects a control unit 105, and a second data structure 210, which the control unit 105 reflects after a change 215.
  • the change 215 may also be referred to as transformation.
  • the change is exemplary in the addition of a
  • the first data structure 205 has the basic shape of a tree and comprises a plurality of objects 220. Relationships 225 may exist between objects 220. An object 220 may have one or more attributes
  • an attribute 230 is, for example, a value or a tuple or a collection of multiple values.
  • an attribute 230 can also be very complex, for example in the form of a data object.
  • An object 220 may be associated with a comparison key 235 which allows objects 220 of a common level of organization to be brought into a unique order by moving the objects 220 in ascending or descending order
  • all objects 220 that are subordinate to a common object 220 can be sorted in this way.
  • Some objects 220 may already include compare keys 235 or may already be associated with compare keys 235.
  • the presence of a comparison key 235 may depend on the nature of the particular objects 220 and their specific implementation.
  • a unique identifier of the object 220 which is also known as a UID ("unique identifier"), may be used as the comparison key 235. It may be unknown how the UI D was determined as long as it is unique, that is, if there are no two objects 220 However, the order between two objects 220 thus explained may be arbitrary.
  • a structure of this object 220 is given in the form of a structure definition 240.
  • structure definition 240 may indicate which attributes 230 the object 220 has and with which objects 220 it is in which relation 225. It is proposed that a comparison key 235 for such an object be determined based on its structure definition 240. Optionally, the actual structure of the object 220 can also be taken into account, for example if the structure definition 240 comprises alternatives or an optional element. Additionally, elements of the object 220 and / or elements of an object 220 related to the object 220 in relation 225 may be used for the determination of the comparison key 235. For example, the compare keys 205, 210 may be used to serialize the data structures 205, 210. Serialized versions of the data structures 205, 210 are shown schematically in the lower part of FIG. The serialized data structures 205, 210 may in particular be a comparison or a determination of differences in the
  • the comparison key 235 of an object 220 may be determined by means of a function f or a combination of functions f1 ... fn
  • the functions may determine values of attributes 230, comparison keys 235 of a further object 220 in relationship 225 or of the further object 220 itself, in particular in its representation in a memory of a processing system
  • a function f1 may be based on a specific attribute 230 or a reference or relationship 225 representing a unique identifier, which function may designate the identifier as comparison key 235
  • a type-specific function f2 (t) may be on a
  • function f2 may determine the identifier as compare key 235.
  • a function f3 may be based on the values of attributes 230 and / or the comparison keys of related 225 objects 220 and, for example, determine a concatenation of these values as comparison key 235
  • An alternative function f4 may for example be defined such that a non-empty value is always determined as comparison key 235; This can for example be realized by a function which a
  • first f 1, then f2, then f3, and so on For example, the first return value of a function f may be determined as compare key 235 which is not empty
  • the comparison key 235 of an object 220 can be recursively determined, in particular, if it is based on the comparison key 235 of a relationship 225 standing object 220
  • the functions should have a low probability of collision, that is, different arguments should lead to different outputs as possible
  • arguments for a function are preferably irrelevant. If the order of the arguments is relevant, they may be used in a predetermined order, for example
  • relationships 225 with multiple objects 220 may be omitted or preprocessed, for example by means of sorting
  • One of the functions may include a hash function (litter function) or a combination with a hash function
  • An example function f determines an existing unique identifier of an object 220 may be used as a comparison key 235
  • An exemplary function f2 (t1) concatenates a path, a name and a type of an object 220 as a comparison key 235,
  • An exemplary function f3 determines a concatenation of
  • the components can be sorted, for example, with regard to the names of the attributes 230 or the names of the relationships 225
  • An exemplary function f3 comprises a predetermined hash function of a programming language used for the implementation, for example, C ++ or C #.
  • the particular hash value can be converted into a string
  • Attributes 230 that are not indicative of an object 220 may be omitted in determining a compare key 235. For example, this may affect attributes 230 of one of the types "not changeable”, “transient”, “volatile” or "derived"
  • relations 225 that are not indicative of an object 220 may be omitted in determining a compare key 235. This may, for example, relate to relations 225 of one of the types "not changeable”, “transient”, “volatile”, “derived” or “container”. If the comparison key 235 is determined recursively over several objects 220, then a processing depth can be predetermined. It is possible to specify a subkey in a first run. Should this subkey be insufficient because there is another object 220 with the same subkey, the processing depth may be increased stepwise until all objects 220 are included in the determination
  • Comparison keys 235 of objects 220 may be held in a fast cache to expedite further determinations of compare keys 235
  • the method can be used with any type of object 220,
  • Container an element awarded with it contains a backward reference to an element that is superior to it.
  • FIG. 3 shows a flowchart of an exemplary method 300 that can be executed, in particular, in whole or in part on the device 130 of the system 100 of FIG.
  • a data structure 205 is detected and can be stored, for example, in the storage device 145. Subsequently, the objects 220, which are encompassed by the data structure 205, are to be used
  • Comparison keys 235 are equipped.
  • the objects 220 can be checked in any order.
  • a recursive check is carried out, it being possible in particular to start at a root object if the data structure 205 has a hierarchical form, for example in the manner of a tree.
  • an object 220 of the data structure 205 that is to be checked can be determined.
  • the structure definition 240 explains a construction of the object 220 from elements such as attributes 230 or relationships 225.
  • the comparison key 235 may be determined in a step 325, preferably taking into account the structure definition 240 and / or elements comprised by the object 220. For exact determination of the comparison key, possible embodiments and variants are given above with reference to FIG.
  • the determined comparison key 235 may be assigned to the object 220 in a step 330. Subsequently, in step 310, a subsequent object 220 can be continued. Steps 310 to 330 may be performed recursively when determining for the determination of a
  • Comparison key 235 a comparison key 235 of a covered or related object 220 is required.
  • the data structure 205 can be serialized in a step 335 by placing the objects 220 encompassed by it in an order, and preferably expressing them in each case as character strings. In this case, the order of the objects 220 is determined by the comparison keys 235. Alternatively, the objects 220 may also be sorted within the data structure 205, for example, or otherwise manipulated with respect to their comparison keys 235.
  • the data structure 205 may be compared to a serialized second data structure 210. Differences between the data structures 205, 210 may be determined in a step 345 and highlighted in one of the representations or output separately.
  • Reference numeral 100 system motor vehicle

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Eine Datenstruktur umfasst mehrere Objekte, die beispielsweise funktionale Komponenten eines Steuergeräts repräsentieren oder modellieren können. Ein Verfahren umfasst Schritte des Bestimmens eines Vergleichsschlüssels für wenigstens eines der Objekte; und des Zuordnens des bestimmten Vergleichsschlüssels zu dem Objekt, sodass den Objekten unterschiedliche Vergleichsschlüssel zugeordnet sind. Dabei wird der Vergleichsschlüssel des wenigstens einen Objekts auf der Basis einer dem Objekt zugeordneten Strukturdefinition bestimmt.

Description

Analyse einer Datenstruktur
Die Erfindung betrifft ein Verfahren und eine Vorrichtung zur Analyse einer Datenstruktur. Die Datenstruktur kann insbesondere funktionale Komponenten eines Steuergeräts repräsentieren oder modellieren.
Ein Kraftfahrzeug umfasst ein Steuergerät, das mehrere Komponenten umfasst, die miteinander verbunden sind und gegenseitig Nachrichten austauschen können. Das Steuergerät kann auf einen physischen Aspekt des Kraftfahrzeugs Einfluss nehmen, indem beispielsweise eine Längs- oder Querbewegung des Kraftfahrzeugs beeinflusst oder eine physische Vorrichtung an Bord des Kraftfahrzeugs angesteuert wird, etwa eine Heizung, ein verstellbarer
Außenspiegel oder ein verstellbarer Sitz. Eine Fehlfunktion des Steuergeräts kann einen Sach- oder Personenschaden nach sich ziehen.
Wird eine Komponente des Steuergeräts verändert, beispielsweise indem eines seiner elektronischen Bauteile durch ein anderes ersetzt wird, so kann auch eine Änderung an einer anderen Komponente erforderlich sein, um eine gewünschte Funktionalität des Steuergeräts sicher zu stellen.
Die Art und Weise, in welcher die Komponenten zusammen wirken, kann als Datenstruktur angegeben werden, die Objekte umfasst, welche die Objekte repräsentieren. Eine Änderung des Steuergeräts kann einer Transformation der Datenstruktur entsprechen. Um alle Änderungen einzeln nachvollziehen zu können, müssen Unterschiede zwischen den Datenstrukturen bestimmt werden.
Eine Möglichkeit hierzu umfasst ein Serialisieren und anschließendes
Vergleichen der Datenstrukturen. Dazu ist erforderlich, dass die Objekte der Datenstruktur beim Serialisieren in eine vorbestimmte Reihenfolge gebracht werden. Einige Objekte können jedoch keinen Vergleichsschlüssel umfassen, anhand dessen eine Reihenfolge definiert ist.
Eine der Erfindung zu Grunde liegende Aufgabe besteht darin, eine verbesserte Technik zur Bestimmung von Vergleichsschlüsseln für Objekte einer
Datenstruktur anzugeben. Die Erfindung löst diese Aufgabe mittels der Gegenstände der unabhängigen Ansprüche. Unteransprüche geben bevorzugte Ausführungsformen wieder.
Eine Datenstruktur umfasst mehrere Objekte. Ein Verfahren umfasst Schritte des Bestimmens eines Vergleichsschlüssels für wenigstens eines der Objekte; und des Zuordnens des bestimmten Vergleichsschlüssels zu dem Objekt, sodass den Objekten unterschiedliche Vergleichsschlüssel zugeordnet sind. Dabei wird der Vergleichsschlüssel des wenigstens einen Objekts auf der Basis einer dem Objekt zugeordneten Strukturdefinition bestimmt.
Die Strukturdefinition gibt an, wie das Objekt aufgebaut ist, sodass der
Vergleichsschlüssel für jedes Objekt auf eine angemessene Weise bestimmt werden kann. Insbesondere kann der Vergleichsschlüssel ein Charakteristikum des Objekts berücksichtigen, sodass die Reihenfolge nicht nur reproduzierbar, sondern auch sinnvoll mit Bezug auf das Objekt sein kann. Beispielsweise kann ein Vergleichsschlüssel für ein Objekt, das einem Steuergerät zugeordnet ist, auf der Basis einer Bezeichnung des Steuergeräts bestimmt werden, wobei unterschiedliche Teile der Bezeichnung unterschiedlich behandelt werden können.
Bevorzugt sind wenigstens zwei Objekten der Datenstruktur unterschiedliche Strukturdefinitionen zugewiesen sind und Vergleichsschlüssel für die zwei Objekte werden auf unterschiedliche Weisen bestimmt. Objekte mit gleichen oder ähnlichen Strukturen können so miteinander vergleichbar werden, während Objekte mit unterschiedlichen Strukturen nicht miteinander vergleichbar sein müssen. Vergleichsschlüssel unterschiedlicher Objekte können beispielsweise unterschiedliche Längen aufweisen, um jeweils mögliche Objektvielfalten zu reflektieren und einen Speicherplatz für den Vergleichsschlüssel zu reduzieren. Für ein Objekt, das nur aus einer Ziffer besteht, kann ein kurzer
Vergleichsschlüssel bestimmt werden, der wenigstens 10 unterschiedliche Werte annehmen kann, während für ein Objekt, das eine Tabelle mit mehreren
Einträgen umfasst, ein längerer Vergleichsschlüssel bestimmt werden kann, der mehr unterschiedliche Werte annehmen kann. Die Strukturdefinition des wenigstens einen Objekts kann eine Beziehung zwischen zwei Objekten der Datenstruktur beschreiben, wobei der Vergleichsschlüssel auf der Basis beider Objekte bestimmt wird. Die Beziehung kann zwischen anderen Objekten oder zwischen dem Objekt und einem oder mehreren anderen Objekten vorliegen. Dadurch kann auch dann ein
aussagekräftiger Vergleichsschlüssel bestimmt werden, wenn das Objekt keine oder nur wenige eigene Attribute umfasst, auf deren Basis üblicherweise ein
Vergleichsschlüssel bestimmt wird.
Die Strukturdefinition kann eine Beziehung zu einem optionalen Objekt beschreiben, wobei der Vergleichsschlüssel nur dann in Abhängigkeit des optionalen Objekts bestimmt wird, falls dieses in der Datenstruktur vorhanden ist.
Dadurch kann die Strukturdefinition flexibel angegeben sein. Eine Bestimmung, welche optionalen Objekte tatsächlich mit dem bearbeiteten Objekt in Beziehung stehen, wie diese Beziehung gestaltet ist und welcher Art die optionalen Objekte sind, kann verbessert erst zur Laufzeit bestimmt werden.
Einem Objekt der Datenstruktur kann nur dann ein Vergleichsschlüssel zugeordnet werden, wenn das Objekt noch keinen Vergleichsschlüssel umfasst. Dadurch können bereits bestehende Vergleichsschlüssel ausgenutzt werden und nur für solche Objekte, die keinen Vergleichsschlüssel umfassen oder denen kein Vergleichsschlüssel zugeordnet ist, wird ein neuer Schlüssel bestimmt. Ein
Verarbeitungsaufwand kann dadurch reduziert sein und bereits bestimmte Vergleichsschlüssel können ausgenutzt werden, um eine sinnvolle Sortierung der Objekte zu ermöglichen. Das wenigstens eine Objekt kann eines oder mehrere weitere Objekte umfassen oder referenzieren und der Vergleichsschlüssel für das Objekt kann auf der Basis der umfassten oder referenzierten Objekte bestimmt werden. Üblicherweise wird der Vergleichsschlüssel des Objekts auf der Basis aller umfassten oder referenzierten Objekte, insbesondere ihrer Vergleichsschlüssel, bestimmt. In einer weiteren Ausführungsform können diejenigen umfassten oder
referenzierten Objekte, die zur Bildung des Vergleichsschlüssels für das übergeordnete Objekt verwendet werden, jedoch auch aktiv gewählt werden, und zwar insbesondere auf der Basis einer Strukturdefinition des Objekts oder eines der umfassten oder referenzierten Objekte. Der Vergleichsschlüssel für das Objekt kann insbesondere rekursiv auf der Basis von einem oder mehreren umfassten oder referenzierten Objekten bestimmt werden. Dabei kann insbesondere ein Vergleichsschlüssel eines umfassten oder referenzierten Objekts zur Bildung des Vergleichsschlüssels für das
übergeordnete Objekt verwendet werden. Ein umfasstes Objekt, das nicht charakteristisch für das übergeordnete Objekt ist, beispielsweise weil es von einer großen Vielzahl anderer Objekte umfasst ist, kann bei der Bildung des Vergleichsschlüssels nicht berücksichtigt werden.
Für die rekursive Behandlung kann eine Bearbeitungstiefe vorbestimmt werden, bis zu der umfassten oder referenzierten Objekten gefolgt wird. Dadurch kann eine übermäßig lange oder sogar unendliche Rekursion verhindert werden. In einer Ausführungsform wird der Vergleichsschlüssel zunächst mit einer vorbestimmten Rekursionstiefe bestimmt. Besteht dann eine Kollision zwischen Vergleichsschlüsseln, wurden also für unterschiedliche Objekte gleiche
Vergleichsschlüssel bestimmt, so kann die Bestimmung mit einer vergrößerten Rekursionstiefe wiederholt werden, bis keine Kollision mehr auftritt. Die wiederholte Bestimmung kann eines oder mehrere der Objekte betreffen, deren Vergleichsschlüssel miteinander kollidieren, oder auch weitere oder alle Objekte der Datenstruktur.
Alternativ kann die Rekursion auch dann abgebrochen werden, wenn ein Zyklus bei einer Kette von Abhängigkeiten der Objekte festgestellt wurde. Umfasst beispielsweise ein erstes Objekt ein zweites, und dieses das erste, so liegt ein Zyklus vor, der durch Rekursion nicht aufgelöst werden kann. In einer weiteren Ausführungsform werden bereits im Rahmen einer Rekursion besuchte Objekte (oder Referenzen auf die Objekte) gespeichert und eine erneute Bearbeitung dieser Objekte im Folgenden übersprungen.
Die Datenstruktur kann in monotoner Reihenfolge der Vergleichsschlüssel serialisiert werden. Die von der Datenstruktur umfassten Objekte können dabei in aufsteigender oder absteigender Reihenfolge ihrer Vergleichsschlüssel konkateniert werden. Die Reihenfolge der serialisierten Objekte in der
Konkatenation ist dabei bevorzugt möglichst invariant gegenüber einer Änderung eines der Objekte der Datenstruktur. Die serialisierte Datenstruktur kann mit einer weiteren serialisierten Datenstruktur verglichen werden. Eine Datenstruktur, die beispielsweise eine Architektur eines Steuergeräts reflektiert, kann in serialisierter Form ohne Weiteres mehrere 10 MB umfassen. Durch die beschriebene Bestimmung von Vergleichsschlüsseln für von der Datenstruktur umfasste Objekte kann der Vergleich mit den anderen serialisierten Datenstruktur leichter durchgeführt werden, da Sequenzen von serialisierten Objekten, die zu Abschnitten der Datenstrukturen gehören, die einander entsprechen oder gleich sind, ebenfalls gleich sein können.
Unterschiede zwischen den serialisierten Datenstrukturen können daher verbessert aufgefunden und beispielsweise ausgegeben oder in der
Serialisierung hervorgehoben werden. Eine Person, welche Änderungen oder Unterschiede zwischen den Datenstrukturen überprüft und gegebenenfalls verantwortet, kann so gezielt auf Abweichungen hingewiesen werden. Dadurch können insbesondere logisch bedingte Änderungen besser kontrolliert werden, die in Antwort auf eine erste Änderung automatisch durchgeführt werden.
Die weitere serialisierte Datenstruktur kann auf der Basis einer Transformation der anderen Datenstruktur bestimmt sein. Insbesondere kann eine der
Datenstrukturen durch eine Transformation aus der anderen hervorgegangen sein. Das Verfahren kann die Transformation umfassen. Die Transformation kann eine Änderung an der durch die Datenstrukturen reflektieren Sache
wiederspiegeln. Betrifft die Datenstruktur beispielsweise ein Steuergerät oder dessen Architektur, so kann die Transformation eine Änderung am Steuergerät oder an der Architektur reflektieren. Das Steuergerät kann insbesondere zum Einsatz an Bord eines Kraftfahrzeugs eingerichtet sein. Beispielsweise für einen Entwurf eines Steuergeräts oder eine Planung einer Serienfertigung von
Steuergeräten kann die Überwachung von Änderungen eine Qualitätssicherung unterstützen. In einer weiteren Ausführungsform kann die Datenstruktur auch ein System mehrerer Steuergeräte, insbesondere an Bord eines Kraftfahrzeugs, reflektieren.
Die Datenstruktur kann eine baumartige Struktur der Objekte umfassen. Dadurch können viele praktische Strukturen, beispielsweise auch lineare oder
hierarchische, verbessert bearbeitet werden. Eine Vorrichtung umfasst eine Speichervorrichtung zur Ablage einer
Datenstruktur mit mehreren Objekten; und eine Verarbeitungseinrichtung. Dabei ist die Verarbeitungseinrichtung dazu eingerichtet, einen Vergleichsschlüssel für wenigstens eines der Objekte auf der Basis einer dem Objekt zugeordneten Strukturdefinition zu bestimmen; und den bestimmten Vergleichsschlüssels dem Objekt zuzuordnen, sodass den Objekten unterschiedliche Vergleichsschlüssel zugeordnet sind.
Die Verarbeitungseinrichtung ist bevorzugt dazu eingerichtet, ein hierin beschriebenes Verfahren ganz oder teilweise durchzuführen und kann insbesondere einen programmierbaren Mikrocomputer oder MikroController umfassen. Das Verfahren kann dazu ganz oder teilweise in Form eines
Computerprogrammprodukts mit Programmcodemitteln vorliegen und auf der Verarbeitungseinrichtung ablaufen oder auf einem computerlesbaren Datenträger gespeichert sein. Merkmale oder Vorteile des Verfahrens können auf die
Vorrichtung bezogen werden und umgekehrt.
Die Erfindung wird nun mit Bezug auf die beigefügten Zeichnungen genauer beschrieben, in denen:
Fig. 1 ein beispielhaftes Kraftfahrzeug mit einem Steuergerät;
Fig. 2 exemplarische, schematische Repräsentationen eines
Steuergeräts und eines geänderten Steuergeräts; und Fig. 3 ein Ablaufdiagramm eines Verfahrens illustriert.
Fig. 1 zeigt beispielhaftes System 100, das als Kraftfahrzeug realisiert ist, und wenigstens ein Steuergerät 105 umfasst. Das Steuergerät 105 kann
insbesondere zur Steuerung einer physischen Funktion des Systems 100 eingerichtet sein, im vorliegenden Beispiel etwa ein Bremssystem zur
Beeinflussung einer Längsbewegung oder ein elektronisches
Stabilitätsprogramm (ESP) zur Beeinflussung einer Querbewegung des
Kraftfahrzeugs 100. Das Steuergerät 105 umfasst üblicherweise mehrere Komponenten 1 10, von denen in der beispielhaften Darstellung von Figur 1 exemplarisch mehrere Eingabekomponenten 1 15, eine Verarbeitungskomponente 120 und eine
Ausgabekomponente 125 dargestellt sind. Andere oder weitere Komponenten 1 10-120 können ebenfalls umfasst sein. Das Steuergerät 105 kann insbesondere mittels einer Eingabekomponente 1 15 und/oder einer Ausgabekomponente 125 mit einem anderen Steuergerät, einem Sensor oder einem Aktuator verbunden sein. Eine Kommunikation zwischen dem Steuergerät und anderen Einrichtungen an Bord des Kraftfahrzeugs 100 kann mittels eines Steuerbusses (nicht dargestellt) erfolgen.
Eine Funktion, Struktur oder Architektur des Steuergeräts 105 auf der Basis der Komponenten 1 10 kann in Form einer Datenstruktur wiedergegeben werden. Zur Analyse oder Manipulation einer solchen Datenstruktur, die unten mit Bezug auf Figur 2 noch genauer beschrieben wird, kann eine Vorrichtung 130 vorgesehen sein, die bevorzugt eine Eingabevorrichtung 135 zur Erfassung der Datenstruktur und eine Verarbeitungseinrichtung 140 umfasst. Bevorzugt ist weiter eine Speichervorrichtung 145 vorgesehen, die dazu eingerichtet ist, die Datenstruktur ganz oder in Teilen sowie optional weitere Informationen wie eine Strukturdefinition eines Objekts aufzunehmen, das von der Datenstruktur umfasst ist.
Figur 2 zeigt eine erste Datenstruktur 205, die beispielsweise ein Steuergerät 105 reflektiert, und eine zweite Datenstruktur 210, die das Steuergerät 105 nach einer Änderung 215 reflektiert. Bezogen auf die Datenstrukturen 205, 210 kann die Änderung 215 auch als Transformation bezeichnet werden. In der Darstellung von Figur 2 besteht die Änderung exemplarisch im Hinzufügen einer
Eingabekomponente 1 15, was in einer Änderung eines Teils der zweiten
Datenstruktur 210 gegenüber der ersten Datenstruktur 205 reflektiert ist. Die hinzugefügte Eingabekomponente 1 15 in Figur 1 und das dazu
korrespondierende Objekt in Figur 2 sind zur besseren Verständlichkeit dunkel eingefärbt.
Die erste Datenstruktur 205 hat beispielhaft die grundsätzliche Form eines Baums und umfasst mehrere Objekte 220. Zwischen Objekten 220 können Beziehungen 225 bestehen. Ein Objekt 220 kann eines oder mehrere Attribute
230 umfassen, wobei ein Attribut 230 beispielsweise einen Wert oder ein Tupel oder eine Sammlung aus mehreren Werten umfassen kann. Weitere
Au sf ü h ru ngsf orm en sind ebenfalls möglich und ein Attribut 230 kann auch sehr komplex sein, beispielsweise in Form eines Datenobjekts. Die genaue Struktur eines Attributs 230 kann unbekannt sein (BLOß =„binary large object").
Einem Objekt 220 kann ein Vergleichsschlüssel 235 zugeordnet sein, der es erlaubt, Objekte 220 einer gemeinsamen Organsiationsebene in eine eindeutige Ordnung, zu bringen, indem die Objekte 220 in auf- oder absteigender
Reihenfolge ihrer zugeordneten Vergleichsschlüssel 235 gebracht werden.
Beispielsweise können alle Objekte 220, die einem gemeinsamen Objekt 220 untergeordnet sind, auf diese Weise sortiert werden.
Einige Objekte 220 können bereits Vergleichsschlüssel 235 umfassen oder ihnen können Vergleichsschlüssel 235 bereits zugeordnet sein. Das Vorhandensein eines Vergleichsschlüssels 235 kann von der Art der jeweiligen Objekte 220 und ihrer konkreten Implementierung abhängig sein. Als Vergleichsschlüssel 235 kann insbesondere eine eindeutige Kennzeichnung des Objekts 220 verwendet werden, die auch als UID („unique identifier") bekannt ist. Dabei kann unbekannt sein, wie die UI D bestimmt wurde, solange sie eindeutig ist, es also keine zwei Objekte 220 mit gleichen UIDs gibt. Die dadurch erklärte Reihenfolge zwischen zwei Objekten 220 kann dabei jedoch willkürlich sein.
Es wird jedoch davon ausgegangen, dass zumindest eines der Objekte 220 zunächst keinen Vergleichsschlüssel 235 zugewiesen hat. Eine Struktur dieses Objekts 220 ist in Form einer Strukturdefinition 240 angegeben. Die
Strukturdefinition 240 kann insbesondere angeben, welche Attribute 230 das Objekt 220 aufweist und mit welchen Objekten 220 es in welcher Beziehung 225 steht. Es wird vorgeschlagen, dass ein Vergleichsschlüssel 235 für ein solches Objekt auf der Basis seiner Strukturdefinition 240 bestimmt wird. Optional kann auch die tatsächliche Struktur des Objekts 220 berücksichtigt werden, beispielsweise wenn die Strukturdefinition 240 Alternativen oder ein optionales Element umfasst. Zusätzlich können Elemente des Objekts 220 und/oder Elemente eines mit dem Objekt 220 in Beziehung 225 stehenden Objekts 220 für die Bestimmung des Vergleichsschlüssels 235 verwendet werden. Die Vergleichsschlüssel 205, 210 können beispielsweise verwendet werden, um die Datenstrukturen 205, 210 zu serialisieren. Serialisierte Versionen der Datenstrukturen 205, 210 sind im unteren Bereich von Figur 2 schematisch dargestellt. Die auf diese Weise serialisierten Datenstrukturen 205, 210 können insbesondere einen Vergleich oder eine Bestimmung von Unterschieden in den
Datenstrukturen 205, 210 erleichtern.
Zur konkreten Bestimmung eines Vergleichsschlüssels 235 sind zahlreiche Varianten denkbar.
Der Vergleichsschlüssel 235 eines Objekts 220 kann mittels einer Funktion f oder einer Kombination von Funktionen f1 ... fn bestimmt werden
Die Funktionen können Werte von Attributen 230, Vergleichsschlüsseln 235 eines in Beziehung 225 stehenden weiteren Objekts 220 oder des weiteren Objekts 220 selbst, insbesondere in dessen Repräsentation in einem Speicher eines Verarbeitungssystems, bestimmt werden
Eine Funktion f1 kann beispielsweise auf einem spezifischen Attribut 230 oder einer Referenz oder Beziehung 225 basieren, die einen einzigartigen Identifikator („unique identifier") repräsentiert, wobei die Funktion den Identifikator als Vergleichsschlüssel 235 bestimmen kann
Eine typspezifische Funktion f2(t) kann beispielsweise auf einer
Kombination von Attributen 230 und/oder Beziehungen 225 basieren, die zusammen einen einzigartigen Identifikator repräsentieren, wobei die Funktion f2 den Identifikator als Vergleichsschlüssel 235 bestimmen kann Eine Funktion f3 kann auf den Werten von Attributen 230 und/oder den Vergleichsschlüsseln von in Beziehung 225 stehenden Objekten 220 basieren und beispielsweise eine Aneinanderreihung (Konkatenation) dieser Werte als Vergleichsschlüssel 235 bestimmen
Eine Ausweichfunktion f4 kann beispielsweise derart definiert sein, dass stets ein nicht-leerer Wert als Vergleichsschlüssel 235 bestimmt wird; dies kann beispielsweise durch eine Funktion realisiert werden, welche eine
Repräsentation des Objekts in einem Speicher einem Verarbeitungssystem zurückliefert
Mehrere Funktionen können in einer vorbestimmten Reihenfolge ausgeführt werden, beispielsweise zuerst f 1 , dann f2, dann f3 usw. Dabei kann der erste Rückgabewert einer Funktion f als Vergleichsschlüssel 235 bestimmt werden, der nicht leer ist
Der Vergleichsschlüssel 235 eines Objekts 220 kann insbesondere dann rekursiv bestimmt werden, wenn er auf dem Vergleichsschlüssel 235 eines in Beziehung 225 stehenden Objekts 220 basiert
Für die Realisierung der Funktion sind ebenfalls zahlreiche Varianten und
Optionen denkbar:
Die Funktionen sollten eine niedrige Kollisionswahrscheinlichkeit aufweisen, das heißt, dass verschiedene Argumente möglichst zu verschiedenen Ausgaben führen sollen
Eine Anzahl von Argumenten für eine Funktion ist vorzugsweise irrelevant Ist die Reihenfolge der Argumente relevant, so können sie in einer vorbestimmten Reihenfolge verwendet werden, beispielsweise
alphabetisch
Ist die Reihenfolge der Argumente relevant, so können Beziehungen 225 mit mehreren Objekten 220 ausgelassen oder vorverarbeitet werden, beispielsweise mittels Sortieren
Eine der Funktionen kann eine Hashfunktion (Streuwertfunktion) oder eine Kombination mit einer Hashfunktion umfassen
Eine beispielhafte Funktion f bestimmt einen vorhandenen einzigartigen Identifikator eines Objekts 220 kann als Vergleichsschlüssel 235
Eine beispielhafte Funktion f2(t1 ) konkateniert einen Pfad, einen Namen und einen Typ eines Objekts 220 als Vergleichsschlüssel 235,
vorausgesetzt die Kombination innerhalb der Datenstruktur 205 ist einzigartig
Eine beispielhafte Funktion f3 bestimmt eine Konkatenation von
Zeichenketten von Attributen 230 des Objekts 220 und
Vergleichsschlüsseln 235 von in Beziehung 225 stehenden Objekten 220 als Vergleichsschlüssei 235; dabei kann können die Bestandteile beispielsweise bezüglich der Namen der Attribute 230 bzw. der Namen der Beziehungen 225 sortiert werden
Eine beispielhafte Funktion f3 umfasst eine vorbestimmte Hashfunktion einer zur Implementation verwendeten Programmiersprache, beispielsweise C++ oder C#. Dabei kann der bestimmte Hashwert in eine Zeichenkette umgewandelt werden
Im Fall schleifenförmiger Beziehungen 225 können bereits bearbeitete Teile eines Speichers, in welchem Objekte 220 abgelegt sind, markiert werden, um eine erneute Bearbeitung anschließend auszulassen
Attribute 230, die nicht kennzeichnend für ein Objekt 220 sind, können bei der Bestimmung eines Vergleichsschlüssels 235 ausgelassen werden. Dies kann beispielsweise Attribute 230 eines der Typen "not changeable", "transient", "volatile" oder "derived" betreffen
Beziehungen 225, die nicht kennzeichnend für ein Objekt 220 sind, können bei der Bestimmung eines Vergleichsschlüssels 235 ausgelassen werden. Dies kann beispielsweise Beziehungen 225 eines der Typen "not changeable ', "transient ", "volatile", "derived" oder„Container" betreffen Wird der Vergleichsschlüssel 235 rekursiv über mehrere Objekte 220 bestimmt, so kann eine Bearbeitungstiefe vorbestimmt werden. Es ist möglich, in einem ersten Lauf einen Teilschlüssel zu bestimmen. Sollte dieser Teilschlüssel ungenügend sein, weil es ein anderes Objekte 220 mit dem gleichen Teilschlüssel gibt, so kann die Bearbeitungstiefe schrittweise vergrößert werden, bis alle Objekte 220 in die Bestimmung einbezogen werden
Vergleichsschlüssel 235 von Objekten 220 können in einem schnellen Zwischenspeicher (Cache) vorgehalten werden, um weitere Bestimmungen von Vergleichsschlüsseln 235 zu beschleunigen
Zusätzliche Funktionen können verwendet werden, um Unterschiede anzugleichen, die nicht berücksichtigt werden sollen, beispielsweise das großschreibungsunabhängige Behandeln von Zeichenketten,
Das Verfahren kann mit jeder Art von Objekt 220 verwendet werden,
beispielsweise Sammlungen (collections), Modelle (models) oder Tabellen (tables), um:
Objekte 220 zu sortieren,
Unterschiede zwischen Objekten 220 zu bestimmen, oder
Objekte 220 zusammen zu führen. In Abhängigkeit eines die Bestimmung der Vergleichsschlüssel 235
ausführenden Systems können weitere Optimierungen angewandt werden. Soll beispielsweise die Reihenfolge der Objekte verändert werden, insbesondere im Fall eines Sortierens, so können Objekte 220 übersprungen werden,
deren Reihenfolge nicht verändert werden kann (beispielsweise weil ihre derzeitige Reihenfolge wichtig ist);
die bereits eine gewünschte Reihenfolge aufweisen; oder
deren Ordnung nicht verändert werden muss, beispielsweise Objekte 220 einer der Typen "not changeable", "transienf , "volatile" oder "derived".
Im Kontext dieser Erfindung bedeutet:
„not changeable": es ist nicht möglich, einem damit ausgezeichneten Element einen Wert zuzuordnen;
„transienf: ein damit ausgezeichnetes Element wird nicht serialisiert; „volatile": ein damit ausgezeichnetes Element hat keinen zugewiesenen Speicherplatz;
„derived": ein damit ausgezeichnetes Element wird auf der Basis anderer Elemente bestimmt;
„Container": ein damit ausgezeichnetes Element umfasst eine Rückwärts- Referenz zu einem Element, das ihm übergeordnet ist.
Figur 3 zeigt ein Ablaufdiagramm eines beispielhaften Verfahrens 300, das insbesondere ganz oder in Teilen auf der Vorrichtung 130 des Systems 100 von Figur 1 ausgeführt werden kann.
In einem optionalen Schritt 305 wird eine Datenstruktur 205 erfasst und kann beispielsweise in der Speichervorrichtung 145 abgelegt werden. Anschließend sollen die Objekte 220, die von der Datenstruktur 205 umfasst sind, mit
Vergleichsschlüsseln 235 ausgestattet werden. Dazu können die Objekte 220 in einer beliebigen Reihenfolge überprüft werden. In einer Ausführungsform erfolgt eine rekursive Überprüfung, wobei insbesondere an einem Wurzelobjekt begonnen werden kann, wenn die Datenstruktur 205 hierarchische Form aufweist, etwa nach Art eines Baums. In einem Schritt 310 kann ein Objekt 220 der Datenstruktur 205 bestimmt werden, das überprüft werden soll. Bevorzugt wird in einem Schritt 315 bestimmt, ob ein zugeordneter oder umfasster Vergleichsschlüssel 235 vorhanden ist. Ist dies der Fall, so kann im Schritt 310 mit einem nächsten Objekt 220 fortgefahren werden. Andernfalls wird bevorzugt in einem Schritt 320 eine Strukturdefinition
240 des Objekts 220 bestimmt. Die Strukturdefinition 240 erklärt einen Aufbau des Objekts 220 aus Elementen wie Attributen 230 oder Beziehungen 225. Der Vergleichsschlüssel 235 kann in einem Schritt 325 bestimmt werden, wobei bevorzugt die Strukturdefinition 240 und/oder vom Objekt 220 umfasste Elemente berücksichtigt werden. Zur genauen Bestimmung des Vergleichsschlüssels sind oben mit Bezug auf Figur 2 mögliche Ausführungsformen und Varianten angegeben. Der bestimmte Vergleichsschlüssel 235 kann dem Objekt 220 in einem Schritt 330 zugeordnet werden. Anschließend kann im Schritt 310 mit einem folgenden Objekt 220 fortgefahren werden. Die Schritte 310 bis 330 können rekursiv durchgeführt werden, wenn für die Bestimmung eines
Vergleichsschlüssels 235 ein Vergleichsschlüssel 235 eines umfassten oder in Beziehung stehenden Objekts 220 erforderlich ist.
Nachdem die Vergleichsschlüssel 235 aller Objekte 220 bestimmt sind, kann die Datenstruktur 205 in einem Schritt 335 serialisiert werden, indem die von ihr umfassten Objekte 220 in eine Reihenfolge gebracht und bevorzugt jeweils als Zeichenketten ausgedrückt werden. Dabei ist die Reihenfolge der Objekte 220 durch die Vergleichsschlüssel 235 bestimmt. Alternativ können die Objekte 220 auch beispielsweise innerhalb der Datenstruktur 205 sortiert oder anderweitig bezüglich ihrer Vergleichsschlüssel 235 manipuliert werden.
In ihrer serialisierten Form kann die Datenstruktur 205 mit einer serialisierten zweiten Datenstruktur 210 verglichen werden. Unterschiede zwischen den Datenstrukturen 205, 210 können in einem Schritt 345 bestimmt und in einer der Darstellungen hervorgehoben oder separat ausgegeben werden. Bezugszeichen 100 System (Kraftfahrzeug)
105 Steuergerät
1 10 Komponente
1 15 Eingabekomponente
120 Verarbeitungskomponente
125 Ausgabekomponente
130 Vorrichtung
135 Eingabevorrichtung
140 Verarbeitungseinrichtung
145 Speichervorrichtung
205 erste Datenstruktur
210 zweite Datenstruktur
215 Änderung / Transformation
220 Objekt
225 Beziehung
230 Attribut
235 Vergleichsschlüssel
240 Strukturdefinition 205 erste Datenstruktur
210 zweite Datenstruktur
215 Änderung
300 Verfahren
305 Erfassen Datenstruktur
310 Bestimmen Objekt
315 Schlüssel vorhanden?
320 Bestimmen Strukturdefinition
325 Bestimmen Vergleichsschlüssel 330 Zuordnen Vergleichsschlüssel
335 Serialisieren Datenstruktur Vergleichen mit weiterer serialisierter Datenstruktur Unterschiede bestimmen / ausgeben

Claims

Ansprüche
Verfahren (300), folgende Schritte umfassend:
Erfassen (305) einer Datenstruktur (205) mit mehreren Objekten (220); Bestimmen (325) eines Vergleichsschlüssels (235) für wenigstens eines der Objekte (220);
Zuordnen (330) des bestimmten Vergleichsschlüssels (235) zu dem Objekt (220),
sodass den Objekten (220) unterschiedliche Vergleichsschlüssel (235) zugeordnet sind;
dadurch gekennzeichnet, dass
der Vergleichsschlüssel (235) des wenigstens einen Objekts (220) auf der Basis einer dem Objekt (220) zugeordneten Strukturdefinition (240) bestimmt (325) wird.
Verfahren (300) nach Anspruch 1 , wobei wenigstens zwei Objekten (220) der Datenstruktur (205) unterschiedliche Strukturdefinitionen (240) zugewiesen sind und Vergleichsschlüssel (235) für die zwei Objekte (220) auf unterschiedliche Weisen bestimmt werden.
Verfahren (300) nach Anspruch 1 oder 2, wobei die Strukturdefinition (240) des wenigstens einen Objekts (220) eine Beziehung zwischen zwei Objekten (220) der Datenstruktur (205) beschreibt und der Vergleichsschlüssel (235) auf der Basis beider Objekte (220) bestimmt wird.
Verfahren (300) nach Anspruch 3, wobei die Strukturdefinition (240) eine Beziehung zu einem optionalen Objekt (220) beschreibt und der
Vergleichsschlüssel (235) nur dann in Abhängigkeit des optionalen Objekts (220) bestimmt wird, falls dieses in der Datenstruktur (205) vorhanden ist.
Verfahren (300) nach einem der vorangehenden Ansprüche, wobei einem Objekt (220) der Datenstruktur (205) nur dann ein Vergleichsschlüssel (235) zugeordnet wird, wenn das Objekt (220) noch keinen Vergleichsschlüssel (235) umfasst.
6. Verfahren (300) nach einem der vorangehenden Ansprüche, wobei das wenigstens eine Objekt (220) eines oder mehrere weitere Objekte (220) umfasst und der Vergleichsschlüssel (235) auf der Basis der umfassten Objekte (220) bestimmt wird.
7. Verfahren (300) nach einem der vorangehenden Ansprüche, wobei das wenigstens eine Objekt (220) eines oder mehrere weitere Objekte (220) umfasst und der Vergleichsschlüssel (235) auf der Basis von
Vergleichsschlüsseln (235) der umfassten Objekte (220) bestimmt wird.
8. Verfahren (300) nach Anspruch 7, wobei der Vergleichsschlüssel (235) für das Objekt (220) rekursiv bestimmt wird.
9. Verfahren (300) nach einem der vorangehenden Ansprüche, ferner
umfassend ein Serialisieren der Datenstruktur (205) in monotoner Reihenfolge der Vergleichsschlüssel (235).
10. Verfahren (300) nach Anspruch 9, ferner umfassend ein Vergleichen der serialisierten Datenstruktur (205) mit einer weiteren serialisierten
Datenstruktur (205). 1 1 . Verfahren (300) nach Anspruch 9, wobei die weitere serialisierte
Datenstruktur (205) auf der Basis einer Transformation der anderen Datenstruktur (205) bestimmt wurde.
12. Verfahren (300) nach einem der vorangehenden Ansprüche, wobei die Datenstruktur (205) eine baumartige Struktur der Objekte (220) umfasst.
13. Verfahren (300) nach einem der vorangehenden Ansprüche, wobei die Datenstruktur (205) ein Steuergerät beschreibt. Vorrichtung (130), umfassend:
eine Speichervorrichtung (145) zur Ablage einer Datenstruktur (205) mit mehreren Objekten (220);
eine Verarbeitungseinrichtung (140), die dazu eingerichtet ist, einen Vergleichsschlüssel (235) für wenigstens eines der Objekte (220) zu bestimmen; und
den bestimmten Vergleichsschlüssel (235) dem Objekt (220) zuzuordnen,
sodass den Objekten (220) unterschiedliche Vergleichsschlüssel (235) zugeordnet sind;
dadurch gekennzeichnet, dass
die Verarbeitungseinrichtung (140) dazu eingerichtet ist, den
Vergleichsschlüssel (235) des wenigstens einen Objekts (220) auf der Basis einer dem Objekt (220) zugeordneten Strukturdefinition (240) zu bestimmen.
PCT/EP2018/076296 2017-10-05 2018-09-27 Analyse einer datenstruktur WO2019068557A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102017217663.6 2017-10-05
DE102017217663.6A DE102017217663A1 (de) 2017-10-05 2017-10-05 Analyse einer Datenstruktur

Publications (1)

Publication Number Publication Date
WO2019068557A1 true WO2019068557A1 (de) 2019-04-11

Family

ID=63713870

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2018/076296 WO2019068557A1 (de) 2017-10-05 2018-09-27 Analyse einer datenstruktur

Country Status (2)

Country Link
DE (1) DE102017217663A1 (de)
WO (1) WO2019068557A1 (de)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102004047877A1 (de) * 2004-10-01 2006-04-06 Abb Research Ltd. System und Verfahren zum strukturentkoppelten Austausch von objektorientierten Datenstrukturen
WO2017121513A1 (de) * 2016-01-13 2017-07-20 Robert Bosch Gmbh Verfahren und system zur informationsübermittlung

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102004047877A1 (de) * 2004-10-01 2006-04-06 Abb Research Ltd. System und Verfahren zum strukturentkoppelten Austausch von objektorientierten Datenstrukturen
WO2017121513A1 (de) * 2016-01-13 2017-07-20 Robert Bosch Gmbh Verfahren und system zur informationsübermittlung

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ANONYMOUS: "public class BinaryTree", 2 August 2010 (2010-08-02), XP002786227, Retrieved from the Internet <URL:https://web.archive.org/web/20100101000000*/https://www.cis.upenn.edu/~matuszek/cit597-2006/Assignments/AnimalsFiles/BinaryTree.java> [retrieved on 20181108] *

Also Published As

Publication number Publication date
DE102017217663A1 (de) 2019-04-11

Similar Documents

Publication Publication Date Title
DE3911465C2 (de) Verfahren zur automatischen Konfiguration technischer Systeme aus Komponenten
DE102005026040A1 (de) Parametrierung eines Simulations-Arbeitsmodells
DE112014003087T5 (de) Programm zur Common-Parameter-Schnittstellenerzeugung und Programm zum Lesen von Parametern
EP2407842A2 (de) Verfahren zur Inbetriebnahme von Maschinen oder Maschinen einer Maschinenserie und Projektierungssystem
DE112014003085T5 (de) SPS-System und Vorrichtung zur Unterstützung von Datenerzeugung für arithmetische Ausdrücke
EP2363809B1 (de) Verfahren zur Optimierung eines Steuerprogramms für Aktuatoren
WO2019068557A1 (de) Analyse einer datenstruktur
DE10332203A1 (de) Verteiltes Bayesnetz-basiertes Expertensystem zur Fahrzeugdiagnose und Funktions-Wiederherstellung
DE10322837A1 (de) Verfahren zur Projektierung eines Automatisierungssystems
WO2020193481A1 (de) Verfahren und vorrichtung für training und herstellung eines künstlichen neuronalen netzes
DE102019131613A1 (de) Verfahren zum Betreiben einer elektronischen Recheneinrichtung für einen Produktentwicklungsprozess mittels maschinellen Lernens, sowie elektronische Recheneinrichtung
EP2682866B1 (de) Verfahren zur Umsetzung von Datenformaten
EP1331794B1 (de) Verfahren zur Adresszuweisung in einem Netzwerk und Komponenten dafür
DE102008044808B4 (de) Verfahren zur Generierung von Programmcode in einem Betriebssystemspeicher und einem Applikationsspeicher eines Datenträgers
EP2037375B1 (de) Verfahren zum Betreiben von Datenbanken
DE102021003842A1 (de) Verfahren zum Erstellen eines Konfigurationsdatensatzes für ein Kraftfahrzeug mittels einer elektronischen Recheneinrichtung, sowie elektronische Recheneinrichtung
DE102020209340A1 (de) Verfahren und Vorrichtung zum Ermitteln eines optimalen Fertigungsprozesses für ein vorgegebenes Produktdesign mithilfe Methoden künstlicher Intelligenz
DE102005023145B4 (de) Verfahren zum Simulieren und Untersuchen einer elektrischen Schaltung und Speichermedium
DE102022132033A1 (de) Computerimplementiertes Verfahren zur Steuerung und/oder Regelung einer Ein-Kompressor-Station mit einem Kompressor
WO2021249941A1 (de) Verfahren und vorrichtung zur automatischen untersuchung eines verhaltens einer technischen einrichtung
EP4381360A1 (de) Erkennung einer anomalie an einem haushaltsgerät
DE102020208151A1 (de) Verfahren zur Steuerung der Herstellung eines Blechbauteils und Verfahren zum Herstellen eines Blechbauteils bzw. mehrerer unterschiedlicher Blechbauteile
DE102009035122A1 (de) Verfahren zum Erzeugen eines Parameters zur Themenklassifikation eines aus Wörtern bestehenden Fremdtextes aus alphanumerischen Zeichen mit einem unbekannten Inhalt
DE102015210498A1 (de) Verfahren zum rechnergestützten Erzeugen einer graphischen Modellierungssprache
DE102013100214A1 (de) Maus und deren Eingabeverfahren

Legal Events

Date Code Title Description
NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 18779638

Country of ref document: EP

Kind code of ref document: A1