DE102017217663A1 - Analysis of a data structure - Google Patents
Analysis of a data structure Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/80—Information 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. 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.
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
-
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
Das Steuergerät
Eine Funktion, Struktur oder Architektur des Steuergeräts
Die erste Datenstruktur
Einem Objekt
Einige Objekte
Es wird jedoch davon ausgegangen, dass zumindest eines der Objekte
Die Vergleichsschlüssel
Zur konkreten Bestimmung eines Vergleichsschlüssels
- -
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 inBeziehung 225 stehenden weiteren Objekts220 oder des weiteren Objekts220 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 Beziehung225 basieren, die einen einzigartigen Identifikator („unique identifier“) repräsentiert, wobei die Funktion denIdentifikator 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 denIdentifikator als Vergleichsschlüssel 235 bestimmen kann - - Eine Funktion f3 kann auf den
Werten von Attributen 230 und/oder den Vergleichsschlüsseln von inBeziehung 225 stehenden Objekten 220 basieren und beispielsweise eine Aneinanderreihung (Konkatenation) dieserWerte 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 erauf dem Vergleichsschlüssel 235 eines inBeziehung 225 stehenden Objekts 220 basiert
- - The comparison key
235 anobject 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 inrelationship 225 standingfurther object 220 or theother 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 orrelationship 225 which represents a unique identifier, the function being the identifier as acomparison key 235 can determine - For example, a type-specific function f2 (t) can be based on a combination of
attributes 230 and / orrelationships 225 which together represent a unique identifier, where function f2 uses the identifier as thecomparison key 235 can determine - - A function f3 can be based on the values of
attributes 230 and / or the comparison keys of225 standingobjects 220 based and, for example, a concatenation (concatenation) of these values as acomparison 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 anobject 220 In particular, it can be determined recursively if it is on thecomparison key 235 one inrelationship 225 standingobject 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 derDatenstruktur 205 ist einzigartig - - Eine beispielhafte Funktion f3 bestimmt eine Konkatenation von
Zeichenketten von Attributen 230 desObjekts 220 und Vergleichsschlüsseln 235 von inBeziehung 225 stehenden Objekten 220 als Vergleichsschlüssel 235 ; dabei kann können die Bestandteile beispielsweise bezüglich der Namen derAttribute 230 bzw. der Namen derBeziehungen 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, inwelchem Objekte 220 abgelegt sind, markiert werden, um eine erneute Bearbeitung anschließend auszulassen - -
Attribute 230 , die nicht kennzeichnend fürein Objekt 220 sind, können bei der Bestimmung eines Vergleichsschlüssels235 ausgelassen werden. Dies kannbeispielsweise Attribute 230 eines der Typen „not changeable“, „transient“, „volatile“ oder „derived“ betreffen - -
Beziehungen 225 , die nicht kennzeichnend fürein Objekt 220 sind, können bei der Bestimmung eines Vergleichsschlüssels235 ausgelassen werden. Dies kann beispielsweise Beziehungen225 eines der Typen „not changeable“, „transient“, „volatile“, „derived“ oder „container“ betreffen - -
Wird der Vergleichsschlüssel 235 rekursiv über mehrere Objekte220 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 esein 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 weitereBestimmungen 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,
- - 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 withmultiple 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 acomparison key 235 - An exemplary function f2 (t1) concatenates a path, a name and a type of an
object 220 as acomparison key 235 , provided the combination within thedata structure 205 is unique - An exemplary function f3 determines a concatenation of character strings of
attributes 230 of theobject 220 andcomparison keys 235 inrelationship 225 standingobjects 220 as acomparison key 235 ; For example, the ingredients may be related to the names of theattributes 230 or the name of therelationship 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 objects220 are marked, in order to subsequently omit re-editing - - Attributes
230 that are not indicative of anobject 220 can, when determining acomparison key 235 be left out. This can be attributes, for example230 one of the types "not changeable", "transient", "volatile" or "derived" - -
Relationships 225 that are not indicative of anobject 220 can, when determining acomparison key 235 be left out. This can be relationships, for example225 one of the types not changeable, transient, volatile, derived or container - - Will the
comparison key 235 recursively overseveral 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 anotherobject 220 with the same subkey, so the processing depth can be gradually increased until allobjects 220 be included in the provision - -
Comparison key 235 ofobjects 220 can be kept in a fast buffer (cache) for further determinations ofcomparison 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
- -
Objekte 220 zu sortieren, - -
Unterschiede zwischen Objekten 220 zu bestimmen, oder - -
Objekte 220 zusammen zu führen.
- - 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
- - 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“.
- - 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.
- - "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.
In einem optionalen Schritt
In einem Schritt
Nachdem die Vergleichsschlüssel
In ihrer serialisierten Form kann die Datenstruktur
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)
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)
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 |
-
2017
- 2017-10-05 DE DE102017217663.6A patent/DE102017217663A1/en active Pending
-
2018
- 2018-09-27 WO PCT/EP2018/076296 patent/WO2019068557A1/en active Application Filing
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 |