DE102017217663A1 - Analysis of a data structure - Google Patents

Analysis of a data structure Download PDF

Info

Publication number
DE102017217663A1
DE102017217663A1 DE102017217663.6A DE102017217663A DE102017217663A1 DE 102017217663 A1 DE102017217663 A1 DE 102017217663A1 DE 102017217663 A DE102017217663 A DE 102017217663A DE 102017217663 A1 DE102017217663 A1 DE 102017217663A1
Authority
DE
Germany
Prior art keywords
objects
data structure
comparison
comparison key
determined
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102017217663.6A
Other languages
German (de)
Inventor
Oliver Albrecht
Walter Hipp
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Bayerische Motoren Werke AG
Original Assignee
Bayerische Motoren Werke AG
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 AG filed Critical Bayerische Motoren Werke AG
Priority to DE102017217663.6A priority Critical patent/DE102017217663A1/en
Priority to PCT/EP2018/076296 priority patent/WO2019068557A1/en
Publication of DE102017217663A1 publication Critical patent/DE102017217663A1/en
Pending legal-status Critical Current

Links

Images

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

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.

Figure DE102017217663A1_0000
A data structure comprises a plurality of objects that can represent or model, for example, functional components of a control device. 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. In this case, the comparison key of the at least one object is determined on the basis of a structure definition assigned to the object.
Figure DE102017217663A1_0000

Description

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.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.

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.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 by, for example, influencing a longitudinal or transverse movement of the motor vehicle or driving a physical device on board the motor vehicle, such as a heater, an adjustable exterior mirror or an adjustable seat. A malfunction of the control device can cause damage to property or personal injury.

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.If 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.

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.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.

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.One way to do this is to serialize and then compare the data structures. This requires that the objects of the data structure are brought into a predetermined sequence during serialization. However, some objects may not include a comparison key that defines an order.

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.An object underlying the invention is to provide an improved technique for determining comparison keys for objects of a data structure. The invention solves this problem by means of the subjects of the independent claims. Subclaims give preferred embodiments again.

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.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. In this case, the comparison key of the at least one object is determined on the basis of a structure definition assigned to the object.

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.The structure definition indicates how the object is constructed so that the comparison key for each object can be determined in an appropriate manner. In particular, 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. For example, 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.

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.Preferably, 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. For example, 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 consisting of only one digit, a short comparison key can be determined, which can take at least 10 different values, while for an object comprising a table with several entries, a longer comparison key can be determined which has more different values can accept.

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.The structural definition of the at least one object may describe a relationship between two objects of the data structure, the comparison key being determined on the basis of both objects. The relationship may exist between other objects or between the object and one or more other objects. As a result, a meaningful comparison key can also be determined if the object comprises no attributes or only a few of its own, on the basis of which a comparison key is usually determined.

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.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. As a result, 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.

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. 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. A processing effort can thereby be reduced and already certain comparison keys can be utilized in order to enable a meaningful sorting of the objects.

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.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. Usually, the comparison key of the object is determined on the basis of all included or referenced objects, in particular their comparison keys. In a further embodiment, however, those included or referenced objects that are used to form the comparison key for the parent object may also be actively selected, specifically based on a structural definition of the object or one of the included or referenced objects.

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.The comparison key for the object can in particular be determined recursively on the basis of one or more included or referenced objects. In particular, a comparison key of a covered or referenced object can be used to form the comparison key for the higher-level object. 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.

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.For recursive treatment, a depth of work may be predetermined until the included or referenced objects are followed. This can prevent excessively long or even infinite recursion. In one embodiment, the comparison key is first determined with a predetermined recursion depth. If there is a collision between comparison keys, ie if the same comparison keys have been determined for different objects, then 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.

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.Alternatively, 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. In a further embodiment, objects already visited within the scope of a recursion (or references to the objects) are stored and a renewed processing of these objects is skipped in the following.

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.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. The order of the serialized objects in the concatenation is preferably as invariant as possible to a change of one of the objects of the data structure.

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.The serialized data structure can be compared to another serialized data structure. For example, a data structure that reflects, for example, an architecture of a controller may easily comprise several 10 MB in a serialized form. By the described determination of compare keys for objects comprised by the data structure, the comparison with the other serialized data structure can be made more easily since sequences of serialized objects belonging to portions of the data structures that are equal to each other or the same can also be the same. Differences between the serialized data structures can therefore be found improved and, for example, issued or highlighted in the serialization. A person who checks changes and differences between the data structures and, if necessary, is responsible, can thus be made aware of deviations. As a result, it is possible in particular to better control logic-related changes which are automatically carried out in response to a first change.

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.The further serialized data structure may be determined based on a transformation of the other data structure. In particular, one of the data structures may have been created by a transformation from the other. The method may include the transformation. The transformation may reflect a change in the matter reflected by the data structures. For example, if the data structure relates to a controller or its architecture, then 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 ECU control or scheduling a mass production of ECUs, monitoring of changes can support quality assurance. In a further embodiment, the data structure may also reflect a system of a plurality of control devices, in particular on board a motor vehicle.

Die Datenstruktur kann eine baumartige Struktur der Objekte umfassen. Dadurch können viele praktische Strukturen, beispielsweise auch lineare oder hierarchische, verbessert bearbeitet werden.The data structure may include a tree-like structure of the objects. As a result, many practical structures, for example linear or hierarchical, can be improved.

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.An apparatus comprises a memory device for storing a data structure with a plurality of objects; and a processing device. In this case, 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.

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.The processing device is preferably set up to carry out a method described here in whole or in part and may in particular comprise a programmable microcomputer or microcontroller. The method may be wholly or partially in the form of a computer program product with program code means and run on the processing device or stored on a computer-readable medium. Features or advantages of the method may be related to the device and vice versa.

Die Erfindung wird nun mit Bezug auf die beigefügten Zeichnungen genauer beschrieben, in denen:

  • 1 ein beispielhaftes Kraftfahrzeug mit einem Steuergerät;
  • 2 exemplarische, schematische Repräsentationen eines Steuergeräts und eines geänderten Steuergeräts; und
  • 3 ein Ablaufdiagramm eines Verfahrens
illustriert.The invention will now be described in more detail with reference to the accompanying drawings, in which:
  • 1 an exemplary motor vehicle with a control unit;
  • 2 exemplary, schematic representations of a controller and a modified controller; and
  • 3 a flowchart of a method
illustrated.

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. 1 shows exemplary system 100 , which is realized as a motor vehicle, and at least one control unit 105 includes. The control unit 105 In particular, it can control a physical function of the system 100 be set up, in the present example as a brake system for influencing a longitudinal movement or an electronic stability program (ESP) for influencing a transverse movement of the motor vehicle 100 ,

Das Steuergerät 105 umfasst üblicherweise mehrere Komponenten 110, von denen in der beispielhaften Darstellung von 1 exemplarisch mehrere Eingabekomponenten 115, eine Verarbeitungskomponente 120 und eine Ausgabekomponente 125 dargestellt sind. Andere oder weitere Komponenten 110-120 können ebenfalls umfasst sein. Das Steuergerät 105 kann insbesondere mittels einer Eingabekomponente 115 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.The control unit 105 usually includes several components 110 of which in the exemplary illustration of 1 exemplarily several input components 115 , a processing component 120 and an output component 125 are shown. Other or further components 110 - 120 may also be included. The control unit 105 can in particular by means of an input component 115 and / or an output component 125 be connected to another controller, a sensor or an actuator. Communication between the controller and other devices on board the motor vehicle 100 can be done by means of a control bus (not shown).

Eine Funktion, Struktur oder Architektur des Steuergeräts 105 auf der Basis der Komponenten 110 kann in Form einer Datenstruktur wiedergegeben werden. Zur Analyse oder Manipulation einer solchen Datenstruktur, die unten mit Bezug auf 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.A function, structure or architecture of the controller 105 based on the components 110 can be rendered in the form of a data structure. To analyze or manipulate such a data structure, with reference to below 2 will be described in more detail, a device 130 be provided, which preferably has an input device 135 for acquiring the data structure and a processing device 140 includes. A storage device is also preferred 145 is provided, which is adapted to include 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.

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 2 besteht die Änderung exemplarisch im Hinzufügen einer Eingabekomponente 115, was in einer Änderung eines Teils der zweiten Datenstruktur 210 gegenüber der ersten Datenstruktur 205 reflektiert ist. Die hinzugefügte Eingabekomponente 115 in 1 und das dazu korrespondierende Objekt in 2 sind zur besseren Verständlichkeit dunkel eingefärbt. 2 shows a first data structure 205 , for example, a control unit 105 reflected, and a second data structure 210 that the control unit 105 after a change 215 reflected. Related to the data structures 205 . 210 can the change 215 also be referred to as transformation. In the presentation of 2 If the change exists as an example in the addition of an input component 115 , resulting in a change of part of the second data structure 210 opposite the first data structure 205 is reflected. The added input component 115 in 1 and the corresponding object in 2 are darkened for clarity.

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 Ausführungsformen 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 (BLOB = „binary large object“).The first data structure 205 exemplifies the basic shape of a tree and includes several objects 220 , Between objects 220 can relationships 225 consist. An object 220 can have one or more attributes 230 include, where an attribute 230 For example, it may include a value or a tuple or a collection of multiple values. Other embodiments are also possible and an attribute 230 can also be very complex, for example in the form of a data object. The exact structure of an attribute 230 can be unknown (BLOB = "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.An object 220 can be a comparison key 235 be assigned, which allows objects 220 to bring a common level of organization into a clear order, by bringing the objects 220 in ascending or descending order of their assigned comparison key 235 to be brought. For example, all objects 220 that is a common object 220 are subordinate to be sorted in this way.

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 UID 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.Some objects 220 can already compare key 235 include or you can compare key 235 already assigned. The presence of a comparison key 235 may depend on the type of each object 220 and their concrete implementation. As comparison key 235 in particular, a unique identification of the object 220 which is also known as a UID ("unique identifier"). It may be unknown how the UID was determined, as long as it is unique, so it is not two objects 220 with the same UIDs. The order thus declared between two objects 220 but can be arbitrary.

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.However, it is assumed that at least one of the objects 220 initially no comparison key 235 assigned. A structure of this object 220 is in the form of a structural definition 240 specified. The structure definition 240 Specify in particular which attributes 230 the object 220 and with which objects 220 it in what relationship 225 stands. It is suggested that a comparison key 235 for such an object based on its structure definition 240 is determined. Optionally, also the actual structure of the object 220 be considered, for example, if the structure definition 240 Alternatives or an optional element includes. In addition, elements of the object 220 and / or elements of one with the object 220 in relationship 225 standing object 220 for the determination of the comparison key 235 be used.

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 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.The comparison key 205 . 210 For example, they can be used to structure the data 205 . 210 to serialize. Serialized versions of the data structures 205 . 210 are in the lower range of 2 shown schematically. The serialized data structures in this way 205 . 210 In particular, a comparison or a determination of differences in the data structures 205 . 210 facilitate.

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 f1, 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
For the concrete determination of a comparison key 235 Many variants are conceivable.
  • - The comparison key 235 an object 220 can be determined by means of a function f or a combination of functions f1 ... fn
  • - The functions can be values of attributes 230 , Comparison keys 235 one in relationship 225 standing further object 220 or the other object 220 itself, in particular in its representation in a memory of a processing system
  • For example, a function f1 may be based on a specific attribute 230 or a reference or relationship 225 which represents a unique identifier, the function being the identifier as a comparison key 235 can determine
  • For example, a type-specific function f2 (t) can be based on a combination of attributes 230 and / or relationships 225 which together represent a unique identifier, where function f2 uses the identifier as the comparison key 235 can determine
  • - A function f3 can be based on the values of attributes 230 and / or the comparison keys of 225 standing objects 220 based and, for example, a concatenation (concatenation) of these values as a comparison key 235 determine
  • An alternative function f4 can for example be defined such that always a non-empty value is used as the comparison key 235 is determined; this can be realized, for example, by a function which returns a representation of the object in a memory to a processing system
  • Several functions can be executed in a predetermined order, for example first f1, then f2, then f3, etc. Here, the first return value of a function f can be used as a comparison key 235 be determined that is not empty
  • - The comparison key 235 an object 220 In particular, it can be determined recursively if it is on the comparison key 235 one in relationship 225 standing object 220 is based

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üssel 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,
Numerous variants and options are also conceivable for the realization of the function:
  • - The functions should have a low collision probability, that is, different arguments should lead to different outputs as possible
  • A number of arguments for a function is preferably irrelevant
  • If the order of the arguments is relevant, they can be used in a predetermined order, for example alphabetically
  • - If the order of the arguments is relevant, then relationships can 225 with multiple objects 220 omitted or preprocessed, for example by means of sorting
  • - One of the functions may include a hash function (truncation function) or a combination with a hash function
  • An example function f determines an existing unique identifier of an object 220 can 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 , provided the combination within the data structure 205 is unique
  • An exemplary function f3 determines a concatenation of character strings of attributes 230 of the object 220 and comparison keys 235 in relationship 225 standing objects 220 as a comparison key 235 ; For example, the ingredients may be related to the names of the attributes 230 or the name of the relationship 225 be sorted
  • 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
  • - In the case of loop relationships 225 can already edited parts of a memory in which objects 220 are marked, in order to subsequently omit re-editing
  • - Attributes 230 that are not indicative of an object 220 can, when determining a comparison key 235 be left out. This can be attributes, for example 230 one of the types "not changeable", "transient", "volatile" or "derived"
  • - Relationships 225 that are not indicative of an object 220 can, when determining a comparison key 235 be left out. This can be relationships, for example 225 one of the types not changeable, transient, volatile, derived or container
  • - Will the comparison key 235 recursively over several objects 220 determined, so a processing depth can be predetermined. It is possible to specify a subkey in a first run. This subkey should be insufficient because it is another object 220 with the same subkey, so the processing depth can be gradually increased until all objects 220 be included in the provision
  • - Comparison key 235 of objects 220 can be kept in a fast buffer (cache) for further determinations of comparison keys 235 to accelerate
  • Additional functions can be used to match differences that should not be taken into account, such as the case-independent handling of strings,

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.
The process can work with any type of object 220 such as collections, models (models), or tables (tables), to:
  • - objects 220 to sort,
  • - differences between objects 220 to determine, or
  • - objects 220 to lead together.

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“, „transient“, „volatile“ oder „derived“.
Depending on the determination of the comparison key 235 further optimizations can be applied. If, for example, the order of the objects is to be changed, in particular in the case of sorting, then objects can 220 be skipped
  • - whose order can not be changed (for example, because their current order is important);
  • - which already have a desired order; or
  • - whose order does not need to be changed, such as objects 220 one of the types "not changeable", "transient", "volatile" or "derived".

Im Kontext dieser Erfindung bedeutet:

  • - „not changeable“: es ist nicht möglich, einem damit ausgezeichneten Element einen Wert zuzuordnen;
  • - „transient“: 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.
In the context of this invention means:
  • - "not changeable": it is not possible to assign a value to a given element;
  • - "transient": an element awarded with it is not serialized;
  • - "volatile": an element awarded with it has no allocated memory space;
  • - "derived": an element thus awarded is determined on the basis of other elements;
  • - "container": an element awarded with it contains a backward reference to an element that is superior to it.

3 zeigt ein Ablaufdiagramm eines beispielhaften Verfahrens 300, das insbesondere ganz oder in Teilen auf der Vorrichtung 130 des Systems 100 von 1 ausgeführt werden kann. 3 shows a flowchart of an exemplary method 300 in particular, in whole or in part on the device 130 of the system 100 from 1 can be executed.

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 an optional step 305 becomes a data structure 205 captured and may, for example, in the storage device 145 be filed. Subsequently, the objects should 220 that from the data structure 205 are included, with comparison keys 235 be equipped. This can be done by the objects 220 be checked in any order. In one embodiment, 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 shape, such as a tree.

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 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.In one step 310 can be an object 220 the data structure 205 be determined, which should be checked. It is preferred in one step 315 determines whether an associated or included comparison key 235 is available. If this is the case, then in step 310 with a next object 220 be continued. Otherwise, it is preferred in one step 320 a structure definition 240 of the object 220 certainly. The structure definition 240 explains a structure of the object 220 from elements like attributes 230 or relationships 225 , The comparison key 235 can in one step 325 be determined, preferably the structure definition 240 and / or the object 220 covered elements are taken into account. For the exact determination of the comparison key, above with reference to 2 possible embodiments and variants indicated. The specific comparison key 235 can the object 220 in one step 330 be assigned. Subsequently, in step 310 with a following object 220 be continued. The steps 310 to 330 can be performed recursively when determining a comparison key 235 a comparison key 235 a covered or related object 220 is required.

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.After the comparison key 235 of all objects 220 are determined, the data structure 205 in one step 335 be serialized by the objects it encompasses 220 in an order and preferably expressed as strings. Here is the order of the objects 220 through the comparison key 235 certainly. Alternatively, the objects can 220 also within the data structure, for example 205 sorted or otherwise with respect to their comparison key 235 be manipulated.

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.In its serialized form, the data structure 205 with a serialized second data structure 210 be compared. Differences between the data structures 205 . 210 can in one step 345 determined and highlighted in one of the representations or output separately.

BezugszeichenlisteLIST OF REFERENCE NUMBERS

100100
System (Kraftfahrzeug)System (motor vehicle)
105105
Steuergerätcontrol unit
110110
Komponentecomponent
115115
Eingabekomponenteinput component
120120
Verarbeitungskomponenteprocessing component
125125
Ausgabekomponenteoutput component
130130
Vorrichtungcontraption
135135
Eingabevorrichtunginput device
140140
Verarbeitungseinrichtungprocessing device
145145
Speichervorrichtung storage device
205205
erste Datenstrukturfirst data structure
210210
zweite Datenstruktursecond data structure
215215
Änderung / TransformationChange / transformation
220220
Objektobject
225225
Beziehungrelationship
230230
Attributattribute
235235
VergleichsschlüsselCompare key
240240
Strukturdefinition structure definition
205205
erste Datenstrukturfirst data structure
210210
zweite Datenstruktursecond data structure
215215
Änderung modification
300300
Verfahrenmethod
305305
Erfassen DatenstrukturCapture data structure
310310
Bestimmen ObjektDetermine object
315315
Schlüssel vorhanden?Key available?
320320
Bestimmen StrukturdefinitionDetermine structure definition
325325
Bestimmen VergleichsschlüsselDetermine comparison key
330330
Zuordnen VergleichsschlüsselAssign Comparison Key
335335
Serialisieren DatenstrukturSerialize data structure
340340
Vergleichen mit weiterer serialisierter DatenstrukturCompare with another serialized data structure
345345
Unterschiede bestimmen / ausgebenDetermine differences

Claims (14)

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.A method (300), comprising the steps of: - detecting (305) a data structure (205) having a plurality of objects (220); - determining (325) a comparison key (235) for at least one of the objects (220); Assigning (330) the determined comparison key (235) to the object (220), so that the objects (220) are assigned different comparison keys (235); characterized in that - the comparison key (235) of the at least one object (220) is determined (325) on the basis of a structure definition (240) associated with the object (220). 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.Method (300) according to Claim 1 wherein at least two objects (220) of the data structure (205) are assigned different structure definitions (240) and comparison keys (235) for the two objects (220) are determined in different ways. 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.Method (300) according to Claim 1 or 2 wherein the structure definition (240) of the at least one object (220) describes a relationship between two objects (220) of the data structure (205) and the comparison key (235) is determined based on both objects (220). 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.Method (300) according to Claim 3 wherein the structure definition (240) describes a relationship with an optional object (220), and the comparison key (235) is determined depending on the optional object (220) only if present in the data structure (205). 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.Method (300) according to one of the preceding claims, wherein an object (220) of the data structure (205) is assigned a comparison key (235) only if the object (220) does not yet comprise a comparison key (235). 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.The method (300) of any one of the preceding claims, wherein the at least one object (220) comprises one or more further objects (220) and the comparison key (235) is determined based on the included objects (220). 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.The method (300) of any one of the preceding claims, wherein the at least one object (220) comprises one or more further objects (220) and the comparison key (235) is determined based on comparison keys (235) of the included objects (220). Verfahren (300) nach Anspruch 7, wobei der Vergleichsschlüssel (235) für das Objekt (220) rekursiv bestimmt wird.Method (300) according to Claim 7 wherein the comparison key (235) for the object (220) is determined recursively. Verfahren (300) nach einem der vorangehenden Ansprüche, ferner umfassend ein Serialisieren der Datenstruktur (205) in monotoner Reihenfolge der Vergleichsschlüssel (235).The method (300) of any one of the preceding claims, further comprising serializing the data structure (205) in monotonic order of the compare keys (235). Verfahren (300) nach Anspruch 9, ferner umfassend ein Vergleichen der serialisierten Datenstruktur (205) mit einer weiteren serialisierten Datenstruktur (205).Method (300) according to Claim 9 further comprising comparing the serialized data structure (205) with another serialized data structure (205). Verfahren (300) nach Anspruch 9, wobei die weitere serialisierte Datenstruktur (205) auf der Basis einer Transformation der anderen Datenstruktur (205) bestimmt wurde.Method (300) according to Claim 9 wherein the further serialized data structure (205) has been determined based on a transformation of the other data structure (205). Verfahren (300) nach einem der vorangehenden Ansprüche, wobei die Datenstruktur (205) eine baumartige Struktur der Objekte (220) umfasst.The method (300) according to one of the preceding claims, wherein the data structure (205) comprises a tree-like structure of the objects (220). Verfahren (300) nach einem der vorangehenden Ansprüche, wobei die Datenstruktur (205) ein Steuergerät beschreibt.Method (300) according to one of the preceding claims, wherein the data structure (205) describes a control device. 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.Apparatus (130) comprising: - a storage device (145) for storing a data structure (205) having a plurality of objects (220); - processing means (140) arranged to: - determine a comparison key (235) for at least one of the objects (220); and - assign the determined comparison key (235) to the object (220), - so that the objects (220) are assigned different comparison keys (235); characterized in that - the processing means (140) is arranged to determine the comparison key (235) of the at least one object (220) on the basis of a structure definition (240) associated with the object (220).
DE102017217663.6A 2017-10-05 2017-10-05 Analysis of a data structure Pending DE102017217663A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE102017217663.6A DE102017217663A1 (en) 2017-10-05 2017-10-05 Analysis of a data structure
PCT/EP2018/076296 WO2019068557A1 (en) 2017-10-05 2018-09-27 Analysis of a data structure

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102017217663.6A DE102017217663A1 (en) 2017-10-05 2017-10-05 Analysis of a data structure

Publications (1)

Publication Number Publication Date
DE102017217663A1 true DE102017217663A1 (en) 2019-04-11

Family

ID=63713870

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102017217663.6A Pending DE102017217663A1 (en) 2017-10-05 2017-10-05 Analysis of a data structure

Country Status (2)

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

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE202004021549U1 (en) * 2004-10-01 2008-11-27 Abb Research Ltd. System for the structure-decoupled exchange of object-oriented data structures
DE102016200322A1 (en) * 2016-01-13 2017-07-13 Robert Bosch Gmbh Method and system for transmitting information

Also Published As

Publication number Publication date
WO2019068557A1 (en) 2019-04-11

Similar Documents

Publication Publication Date Title
DE2554442C2 (en) Device for comparing logical quantities with a group of logical reference quantities
DE3911465C2 (en) Process for the automatic configuration of technical systems from components
DE10255128A1 (en) Computer-implemented PDF document management
DE112014003087T5 (en) Program for common parameter interface generation and program for reading parameters
DE102017126349A1 (en) METHOD FOR CONNECTING A FIRST DATA BLOCK TO A SECOND DATA BLOCK, METHOD FOR VERIFYING THE INTEGRITY OF A BLOCK CHAIN STRUCTURE, DEVICE AND COMPUTER PROGRAM PRODUCT
DE102016007651A1 (en) Numerical control with automatic selection of a storage destination for a machining program
DE10048478C2 (en) Method of accessing a storage unit when searching for substrings
DE102017217663A1 (en) Analysis of a data structure
AT522281A1 (en) Method for characterizing the operating status of a computer system
DE102012025351B4 (en) Processing of an electronic document
DE102019131613A1 (en) Method for operating an electronic computing device for a product development process using machine learning, as well as electronic computing device
EP2682866B1 (en) Methods for the implementation of data formats
EP1331794B1 (en) Method for address allocation in a network and components therefore
EP2037375B1 (en) Method for operating databases
DE112016007465T5 (en) Program development support apparatus and method for managing program components
DE102008044808B4 (en) Method for generating program code in an operating system memory and an application memory of a data carrier
DE102004020873A1 (en) A system and method for determining applicable configuration information for use in computer-aided design analysis
DE102020209340A1 (en) Method and device for determining an optimal manufacturing process for a given product design using methods of artificial intelligence
DE102021003842A1 (en) Method for creating a configuration data set for a motor vehicle by means of an electronic computing device and electronic computing device
EP0563077B1 (en) Method of detecting, by computing machine, identical data elements in two data sequences
WO2021043956A1 (en) Method for data-matching a webpage
DE102021212973A1 (en) Method for determining a target value
DE102008042744A1 (en) Controllable device with a control program
EP2290561B1 (en) Method and device for saving and restoring electronic documents and databases
EP3428802A1 (en) Method for optimizing a plurality of at least in respect to an access time of different data storage devices and computer program with an implementation of the method

Legal Events

Date Code Title Description
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0017300000

Ipc: G06F0016000000

R163 Identified publications notified