WO2006100078A1 - Vergleich von schnittstellen zwischen softwarekomponenten - Google Patents
Vergleich von schnittstellen zwischen softwarekomponenten Download PDFInfo
- Publication number
- WO2006100078A1 WO2006100078A1 PCT/EP2006/002680 EP2006002680W WO2006100078A1 WO 2006100078 A1 WO2006100078 A1 WO 2006100078A1 EP 2006002680 W EP2006002680 W EP 2006002680W WO 2006100078 A1 WO2006100078 A1 WO 2006100078A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- description
- interface
- standard
- inheritance hierarchy
- software components
- Prior art date
Links
- 238000000034 method Methods 0.000 claims abstract description 25
- 238000007792 addition Methods 0.000 claims 1
- 230000004044 response Effects 0.000 description 10
- 238000004364 calculation method Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 238000012360 testing method Methods 0.000 description 7
- 238000011161 development Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 5
- 238000002347 injection Methods 0.000 description 4
- 239000007924 injection Substances 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000009466 transformation Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 239000000446 fuel Substances 0.000 description 2
- XXQGYGJZNMSSFD-UHFFFAOYSA-N 2-[2-(dimethylcarbamoyl)phenoxy]acetic acid Chemical compound CN(C)C(=O)C1=CC=CC=C1OCC(O)=O XXQGYGJZNMSSFD-UHFFFAOYSA-N 0.000 description 1
- 102100022443 CXADR-like membrane protein Human genes 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000005352 clarification Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/541—Interprogram communication via adapters, e.g. between incompatible applications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
- G06F8/24—Object-oriented
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44536—Selecting among different versions
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
Die Erfindung betrifft ein Verfahren zur Überprüfung der Kompatibilität zwischen zwei Softwarekomponenten eines Steuergerätenetzwerks, wobei jeder Softwarekomponente wenigstens eine technische Schnittstellenbeschreibung zugeordnet ist, die einem bestimmten Beschreibungsstandard zugehört, und wobei jeder Beschreibungsstandard eine hierarchische Position in einer Vererbungshierarchie aller möglichen Beschreibungsstandards aufweist, wobei anhand der Vererbungshierarchie der in der Vererbungshierarchie nächstliegendste gemeinsame Beschreibungsstandard der zu vergleichenden Softwarekomponenten ermittelt wird und anhand des gemeinsamen Beschreibungsstandards der gemeinsame Anteil der jeweiligen Schnittstellenbeschreibungen ermittelt und miteinander verglichen wird.
Description
Vergleich von Schnittstellen zwischen Softwarekomponenten
Die Erfindung betrifft ein Verfahren zur Überprüfung der Kompatibilität zwischen zwei Softwarekomponenten, wobei jeder Softwarekomponente wenigstens eine technische Schnittstellenbeschreibung zugeordnet ist, die einem bestimmten Beschreibungsstandard zugehört.
Nahezu alle regelungstechnischen Systeme eines Automobils beinhalten heute Software. Die Software gilt als Wegbereiter für die meisten technischen Innovationen der vergangenen Jahre. Implementiert in einem Steuergerät, steuert und regelt Software heute unter anderem Motoren, Getriebe oder Sicherheits- und Komfortsysteme.
Mit zunehmender Anzahl an Anwendungsgebieten steigt die Anzahl regelungstechnisch realisierter Funktionen und damit auch die Komplexität. Die rasante Entwicklung stellt die Automobilhersteller heute vor große Herausforderungen um Qualität und die Entwicklungskosten von Software beiderseits auf moderatem Niveau zu halten. Der lange Lebenszyklus von automotiver Software (ca. 4 Jahre Entwicklung, ca. 8 Jahre Produktion und ca. 10 Jahre Reproduzierbarkeit mit Service) spielt dabei eine große Rolle. Während in den ersten vier Jahren enorme Entwicklungs- und Testkosten zu Buche schlagen, können in den Jahren wo das Auto produziert wird, hohe Kosten bei der Verwaltung von Varianten entstehen, dies vor allem bedingt durch unterschiedliche Softwarestände und Heterogenität bei der verwendeten Steuergerätehardware.
Um diese Probleme zu lösen, setzt die Automobilindustrie auf eine Standardisierung der Elektronikkomponenten.
Zielsetzung ist es, über die Grenzen der einzelnen Fahrzeughersteller hinweg, offene Standards für Elektrik/Elektronik (E/E) Architekturen auf dem Automobilsektor zu schaffen. Zu den aktuellen softwaretechnischen Standards zählen AUTOSAR, MSR SW DTD oder EAST-EEA. Innerhalb der E/E Architekturen werden dabei verstärkt Softwarearchitekturen entworfen, deren wesentlicher Bestandteil Softwarekomponenten sind.
Die Softwarekomponenten repräsentieren Softwarebaussteine die speziell im Hinblick auf Wiederverwendung entworfen werden und ihre geschlossene Funktionalität durch ihre vertraglich spezifizierten Schnittstellen veröffentlichen.
Vertraglich spezifizierte Schnittstellen sind eindeutige Beschreibungen über das einerseits geforderte Verhalten als auch über das andererseits gebotene Verhalten von Softwarekomponenten. Vertraglich spezifizierte Schnittstellen reduzieren demnach die Verflechtung des Systems. Somit können Softwarekomponenten unabhängig voneinander entwickelt, gewartet, installiert und zusammengesetzt werden.
Die Standardisierung der vertraglich spezifizierten Schnittstellen über offene Standards gewährleistet darüber hinaus, dass Softwarekomponenten untereinander interoperabel sind, was ihre wichtigste Eigenschaft die Wiederverwendung vereinfacht. Eine Softwarekomponente die beispielsweise einen Teil einer Regelung eines Anti-Blockiersystems (ABS) umfasst, wird damit (OEM) Original Equipment Manufacturer -übergreifend nutzbar.
Auf Softwarekomponenten basierende E/E Architekturen ermöglichen aufgrund ihrer Wiederverwendbarkeit damit auch eine bessere Wartbarkeit und Aktualisierung der Systeme und unterstützen darüber hinaus durch die verbesserte Entkopplung der Steuergerätesoftware von der Hardware verstärkt den kommerziellen Einsatz von „Steuergeräten von der Stange".
Rein technisch betrachtet bestehen die vertraglich spezifizierten Schnittstellen der Softwarekomponenten zum einen aus der Veröffentlichung einer Sammlung von Operationen die von einer anderen Softwarekomponente als Dienst in Anspruch
genommen werden können und zum anderen aus der vertraglichen Spezifikation der Schnittstelle selbst.
Eine sehr einfache Betrachtungsweise auf die vertraglich spezifizierten Schnittstellen ist, zwischen Dienstanbietern und Klienten zu unterscheiden. Dienstanbieter können beispielsweise Softwarekomponenten sein, die bestimmte Dienste implementieren und anbieten und Klienten können Softwarekomponenten sein, die bestimmte Dienste von Dienstanbietern in Anspruch nehmen. Dabei gibt die vertraglich spezifizierte Schnittstelle darüber Auskunft, welche Bedingungen erfüllt sein müssen, um ein erfolgreiches Zusammenspiel von Dienstanbietern und Klienten zu ermöglichen. Inhalte vertraglich spezifizierter Schnittstellen sind daher einerseits eine vertragliche Beschreibung dessen was der Klient vom Dienstanbieter an Diensten und Verhalten fordert (geforderte Schnittstelle) und gleichermaßen eine vertragliche Beschreibung dessen, was der Dienstanbieter unter bestimmten Vorraussetzungen an Diensten mit einem bestimmten Verhalten anbietet (gebotene Schnittstelle).
Die technische Beschreibung einer vertraglich spezifizierten Schnittstelle teilt sich in zwei Teile auf; einem funktionalen und einem nichtfunktionalen Teil. Zum funktionalen Anteil zählen beispielsweise Namen und Signaturen von Operationen und Datenelementen die zwischen zwei Softwarekomponenten ausgetauscht werden können. Zum nichtfunktionalen Teil zählt hauptsächlich das Verhalten der Softwarekomponente. Dazu zählen technischen Größen wie zum Beispiel das Antwortzeitverhalten in Millisekunden [ms] oder der Ressourcenverbrauch in Kilobyte [Kb], oder auch beispielsweise der genaue Ort bzw. die Angabe des Steuergerätes wo die Softwarekomponente zu Ausführung kommen soll.
Als Beispiel für die Beschreibung des nichtfunktionalen Anteils bzw. für das Verhalten einer Softwarekomponente diene eine Software komponente (Dienstanbieter) mit einer Funktionsbibliothek für die Berechnung von Einspritzmengen von Kraftstoffen, die von einer anderen Softwarekomponente (Klient), einer Steuerungs-Komponente der elektronischen Kraftstoffeinspritzung genutzt wird. Im Laufe der Zeit wird die Funktionsbibliothek so verbessert, dass die berechneten Einspritzmengen immer genauer wurden, jedoch zum Nachteil der
Rechenzeit. Dies kann zur Folge haben, dass die Einspritzmenge nicht mehr in Real- Time an die Steuerungs-Komponente zurückgemeldet wird und die beiden Softwarekomponenten nicht mehr fehlerfrei zusammenwirken. Anhand dieses Beispiels ist ersichtlich, dass für die Beschreibung des nichtfunktionalen Anteils, die Festlegung des Antwortzeitverhaltens ein wichtiger „Vertragsbestandteil" ist.
Mit zunehmender Größe von Systemen zum Beispiel einem Steuergeräte-Netzwerk, wächst die Bedeutung einer Gesamtübersicht oder Architektursicht auf das System und damit einer Beschreibung aller im System befindlichen Softwarekomponenten und ihrer Interaktion untereinander, einschließlich den im System verfügbaren Recheneinheiten. Diese Beschreibung wird daher auch als Architekturbeschreibung bezeichnet. Für den Entwickler oder besser den Software-Architekt, der sich mit dem „Zusammenbau" von Softwarekomponenten und dem Verteilen von Softwarekomponenten auf verschiedene Recheneinheiten beschäftigt, stellt die Architekturbeschreibung eine wichtige Vorstufe für die spätere Implementierung dar, da die Architekturbeschreibung als eine Empfehlung für den Bauplan einer späteren Implementation gesehen werden kann. Durch die Möglichkeit Architekturen und Architekturbeschreibungen auch mit objektorientierten Ansätzen in Bezug zu bringen, besteht ferner die Möglichkeit, Vererbungsprinzipien z.B. aus der objektorientierten Sprachwelt in die abstraktere Architektursicht fortzuschreiben. Damit beschränkt sich die geforderte Wiederverwendung nicht nur auf Softwarekomponenten sondern auch auf die Wiederverwendung von Architekturen und Architekturbeschreibungen.
Anhand der Beschreibungen von Softwarekomponenten und Architekturen lassen sich Analysen betreiben, die die Softwarekomponenten bzw. die Architektur hinsichtlich ihrer Eigenschaften bewerten. Beispielsweise lassen sich aus den Beschreibungen der Softwarekomponenten Verträglichkeitsüberprüfungen für ein erfolgreiches Zusammenspiel von Softwarekomponenten durchführen oder die voraussichtlichen Antwortzeiten für Botschaften innerhalb des Systems abschätzen. Auf diese Weise kann der Entwickler schon zum Zeitpunkt des Architekturdesigns mögliche Engpässe bei der Erfüllung wichtiger Anforderungen aufdecken und frühzeitig, weit vor dem Zeitpunkt der Implementierung, Gegenmaßnahmen treffen.
Bei dem Entwurf oder dem Design von Architekturen werden Entwickler heute von modellbasierten Architekturwerkzeugen unterstützt.
Dabei wird die Architektur eines Systems grafisch mit dem Architekturwerkzeug auf dem Bildschirm entworfen. In einem ersten Schritt komponiert der Entwickler eine Anzahl von Softwarekomponenten und Recheneinheiten zu einem System.
Die Schnittstellen der Softwarekomponenten werden dabei entsprechend miteinander verschaltet. Ferner erfolgt eine Verteilung der Softwarekomponenten auf die Recheneinheiten auf denen später die Softwarekomponenten zur Ausführung kommen sollen. Dieser Vorgang wird im allgemeinen auch als „Matching" bezeichnet.
Figur 1 zeigt zunächst der UML Schnittstellen-Notation sehr ähnlich zwei Softwarekomponenten die über Schnittstellen miteinander verbunden sind und auf dem Steuergerät A zur Ausführung gebracht werden. Figur 2 zeigt ein etwas komplexeres Beispiel mit mehreren Softwarekomponenten und mehreren Recheneinheiten (Steuergerät = Electronic Control Unit) nach erfolgtem „Matching".
Bei dem Verschalten von Softwarekomponenten kann der Entwickler Verträglichkeitsüberprüfungen vornehmen. Beispielsweise kann er überprüfen, ob die gebotene Schnittstelle einer Softwarekomponente die Eigenschaften der geforderten Schnittstelle erfüllt. Für die Verträglichkeitsüberprüfung ermittelt das Architekturwerkzeug anhand der vertraglich spezifizierten Schnittstellen beider Softwarekomponenten Unterschiede und teilt diese dem Entwickler mit.
Der Vergleich erfolgt konkret durch den Vergleich der Beschreibungen der vertraglich spezifizierten Schnittstellen. Ähnlich anderer automotiver Standards wie z.B. OSEK/VDX oder ASAM müssen auch die Beschreibungen der vertraglich spezifizierten Schnittstellen von Softwarekomponenten über eine formal einheitliche respektive technisch standardisierte Definition ihrer Inhalte, ihres strukturellen Aufbaus und ihres Formats verfügen. Ein Vergleich wäre sonst nicht so ohne weiteres möglich. Grundvoraussetzung für eine werkzeuggestützte Modellierung und einer Analyse oder einem ersten Test von Architekturen ist daher eine formale
Beschreibung aller Bausteine einer Architektur, einschließlich der formalen Beschreibung der vertraglich spezifizierten Schnittstellen der Softwarekomponenten.
Das eigentlich technische Problem ist, dass es unterschiedliche Typen, Varianten oder Versionen eines Standards von technischen Softwarekomponentenbeschreibungen geben kann. Damit ist ein Vergleich ausschließlich auf Parameterebene (technische Größe und Einheit) nicht mehr so ohne weiteres möglich, da es andere Formate oder zusätzliche oder geänderte Kenngrößen in den Softwarekomponentenbeschreibungen geben kann.
Ein großer Nachteil besteht heute darin, dass derzeit für jeden Typ, Variante oder Version eines Standards einer technischen Beschreibung von Softwarekornponenten eine eigene Variante eines Architekturwerkzeugs für die Beschreibung von Softwarekomponenten vorausgesetzt wird. Architekturwerkzeuge können zwar mehrere Standards unterstützen, aber immer nur in einzelnen in sich abgeschlossenen Systemen. Ein Vergleich von Softwarekomponenten mit unterschiedlichen Standards in einer gemeinsamen Architektur war bisher nur schwer möglich. So ist es beispielsweise besonders schwierig und aufwändig eine Softwarekomponente vom Zulieferer A mit einer Softwarekomponente vom Zulieferer B zu verschalten, wenn die Beschreibungen der vertraglich spezifizierten Schnittstellen beider Softwarekomponenten unterschiedlichen Typen, Varianten oder Versionen von Beschreibungsstandards zugehören. Der Vergleich kann nur manuell mit hohem Aufwand erfolgen.
Die Aufgabe der vorliegenden Erfindung ist es, bei dem Verschalten von Softwarekomponenten die gebotenen und geforderten Schnittstellen überprüfen zu können, obwohl sie möglicherweise über unterschiedliche Typen, Varianten oder Versionen von Beschreibungsstandards verfügen, um im Entwicklungsprozess möglichst frühzeitig qualitative Aussagen zu der Verträglichkeit zwischen Softwarekomponenten zu bekommen.
Die Aufgabe wird dadurch gelöst, dass jeder Beschreibungsstandard eine hierarchische Position in einer Vererbungshierarchie aller möglichen Beschreibungsstandards aufweist, wobei anhand der Vererbungshierarchie der in
der Vererbungshierarchie nächstliegendste gemeinsame Beschreibungsstandard der zu vergleichenden Softwarekomponenten ermittelt wird und anhand des gemeinsamen Beschreibungsstandards der gemeinsame Anteil der jeweiligen Schnittstellenbeschreibungen ermittelt und miteinander verglichen wird. So kann erfindungsgemäß mit einer Beschreibungsstandard-Vererbungshierarchie ein Verträglichkeitstest zwischen Softwarekomponenten durchgeführt werden.
Dabei wird zunächst jede Softwarekomponentenbeschreibung bzw. jede Schnittstellenbeschreibung einer Softwarekomponente einer Position in einer Vererbungshierarchie der Beschreibungsstandards zugeordnet. Anhand der Vererbungshierarchie wird der nächstliegendste gemeinsame Beschreibungsstandard zweier Schnittstellenbeschreibungen ermittelt.
So können bevorzugt die Schnittstellenbeschreibungen der zu vergleichenden Softwarekomponenten anhand der Festlegungen in dem nächstliegenden gemeinsamen Beschreibungsstandard verglichen werden. Auf diese Weise werden Verträglichkeiten aber auch Unverträglichkeiten zwischen den Schnittstellenbeschreibungen der Softwarekomponenten aufgedeckt.
Da dieser Verträglichkeitstest zu einem sehr frühen Zeitpunkt im Entwicklungsprozess eines Steuergerätes durchgeführt werden kann (unter Umständen noch bevor die Software implementiert wird), lassen sich im Falle von Unverträglichkeiten zusätzliche Kosten für nachträgliche Änderungen an der Implementation bzw. an bereits erstellter Software einsparen.
Zur Lösung dieser Aufgabe waren zunächst technische Überlegungen erforderlich. Diese beruhten darauf, dass technische Beschreibungen von Softwarekomponenten, also z.B. die technischen Schnittstellenbeschreibungen nur dann miteinander verglichen werden können, wenn beide technischen Beschreibungen zumindest zu einem Teil einem gemeinsamen Beschreibungsstandard angehören.
Für die weitere Präzisierung der Erläuterung der zur Rede stehenden Erfindung, soll ein Beispiel mit vier Softwarekomponenten angeführt werden. Figur 2 zeigt dieses Beispiel.
Die Softwarekomponenten 1 bis 4 verfügen jeweils über Schnittstellen, über die sie mit anderen Softwarekomponenten kommunizieren.
Jeder der Schnittstellen wird ein Beschreibungsstandard zugeordnet. Im dargestellten Beispiel verfügt die Softwarekomponente 1 über die Schnittstellen 1.1 und 1.2 . Beide Schnittstellen verfügen über Schnittstellenbeschreibungen vom Beschreibungsstandard Typ C.
Schnittstellenbeschreibungen beinhalten konkrete Beschreibungen zu den Fähigkeiten und/oder Eigenschaften einer Schnittstelle. Beispielsweise die Fähigkeit Methoden zu beschreiben oder den Ressourcenverbrauch oder auch das Antwortzeitverhalten (Responsetime). Wie aus Figur 1 und Figur 2 ersichtlich, wird dabei zwischen gebotenen Schnittstellen und geforderten Schnittstellen unterschieden. Schnittstellenbeschreibungen beschreiben somit insbesondere technische Fähigkeiten und Eigenschaften.
Softwarekomponenten können beispielsweise für eine benötigte Berechnung eine bestimmte Antwortzeit in ihrer Schnittstellenbeschreibung fordern und andere Softwarekomponenten können in ihrer Schnittstellenbeschreibung diese Berechnung mit einem bestimmten Antwortzeitverhalten anbieten. Hieraus ergibt sich eine Art von Vertragsschließung zwischen den Softwarekomponenten bzw. zwischen den Schnittstellen, was in Figur 2 als Verbindung dargestellt wird. Die Überprüfung ob eine Softwarekomponente in ein Gesamtsystem mit ihren gebotenen Schnittstellen und geforderten Schnittstellen passt oder nicht (Prüfung der Verträglichkeit) ist Aufgabe dieser Erfindung und soll an diesem Beispiel erläutert werden.
Um die Verträglichkeiten zwischen Softwarekomponenten festzustellen ist es notwendig, ihre Schnittstellenbeschreibungen miteinander zu vergleichen. Der Vergleich muss jedoch bestimmten Regeln und einer bestimmten Vorgehensweise unterworfen werden, damit Vergleiche möglich werden. Ein Vergleich ist z.B. möglich wenn:
1. Format und syntaktische Beschreibung der zu vergleichenden Inhalte gleich sind und damit die Lesbarkeit und Interpretierbarkeit von Schnittstellenbeschreibungen ermöglicht wird
2. bekannt ist, welche Fähigkeiten in einem bestimmten Beschreibungsstandard enthalten sind, damit geforderte Fähigkeiten auf ihre Rechtmäßigkeit hin überprüft werden können
3. bekannt ist, welchem Beschreibungsstandard die zu vergleichenden Schnittstellenbeschreibungen angehören.
Vorteilhaft am erfindungsgemäßen Verfahren ist es, dass auch Schnittstellenbeschreibungen unterschiedlicher Beschreibungsstandards miteinander verglichen werden können.
Die Erfindung geht davon aus, dass mit der Existenz von verschiedenen Versionen von Beschreibungsstandards und gebildeten Varianten die Beschreibungsstandards einen Ursprung in einem bestimmten, insbesondere übergeordneten Beschreibungsstandard haben. Die Möglichkeit der Verfolgung der Entwicklung von Beschreibungsstandards ist daher von elementarer Bedeutung. Insbesondere dann, wenn zwei unterschiedliche Beschreibungsstandards miteinander verglichen werden sollen.
Die Idee ist, alle in einem Gesamtsystem vorkommenden Beschreibungsstandards in eine Vererbungshierarchie einzuordnen. Damit ist es möglich, jeden Beschreibungsstandard bis zu seinem Ursprung zurückzuverfolgen und beim Vergleich zweier Schnittstellenbeschreibungen den nächsten gemeinsamen verwandten Standard zu ermitteln.
Mit dieser Methode ist es möglich, den gemeinsamen Anteil zweier Schnittstellenbeschreibungen zu ermitteln und zu vergleichen. Sind bei einer Schnittstellenpaarung alle geforderten und gebotenen Fähigkeiten in diesem gemeinsamen Anteil zu finden und werden alle geforderten Fähigkeiten erfüllt, ist der Verträglichkeitstest positiv.
Dieses Beispiel zeigt exemplarisch, dass mit dieser Methode auch Softwarekomponenten auf Verträglichkeit geprüft werden können, obwohl unterschiedliche Beschreibungsstandards im Spiel sind. Dies setzt voraus, dass neue Softwarekomponenten dessen Schnittstellen über bisher unbekannte Beschreibungsstandards verfügen, eine Beschreibung zu der bestehenden Vererbungshierarchie mitbringen müssen, sodass eine Einordnung und ein Update der Vererbungshierarchie ermöglicht werden kann.
Die Vergleiche von Schnittstellenbeschreibungen können z.B. durch Schnittstellenmanager erfolgen. Der Schnittstellenmanager ist ein Programm, das zur Laufzeit des Architekturwerkzeugs geladen werden kann und den Vergleich von Schnittstellenbeschreibungen durchführt. Ein möglicher Zeitpunkt des Ladens wäre, wenn ein Architekturwerkzeug anhand der angegebenen Schnittstellenbeschreibungen und anhand der Vererbungshierarchie den richtigen Schnittstellenmanager für einen anstehenden Verträglichkeitstest ermittelt hat. Der Schnittstellenmanager vergleicht anschließend die geforderten Fähigkeiten mit den gebotenen Fähigkeiten anhand der vorliegenden Schnittstellenbeschreibungen. Werden die Forderungen erfüllt, dann ist der Vergleich erfolgreich und die Verträglichkeit zwischen den Schnittstellen ist gegeben. Der Vergleich erfolgt gemäß der Vererbungshierarchie für den gemeinsamen Anteil der Schnittstellenbeschreibungen. Gibt es neben einem gemeinsamen Anteil auch jeweils individuelle Anteile in den Schnittstellenbeschreibungen, so können diese vom zuständigen Schnittstellenmanager zunächst nicht miteinander verglichen werden. Insofern geht mit dem Vergleich der gemeinsamen Anteile auch ein Informationsverlust hinsichtlich der individuellen Anteile einher. Der Anwender kann bevorzugt auf individuelle Anteile aufmerksam gemacht werden, sodass er manuell einen Vergleich individueller Anteile vornehmen kann.
Aus der Figur 3 ist ersichtlich, dass der Beschreibungsstandard Typ C vom Beschreibungsstandard Typ A. abstammt. Würde im vorliegendem Beispiel eine Schnittstellenbeschreibung vom Beschreibungsstandard Typ B mit der Schnittstellenbeschreibung vom Beschreibungsstandard Typ C verglichen, wäre der nächste gemeinsame Verwandte der Typ A . Der Schnittstellenmanager SM_A wäre
dann das Programm, dass den Vergleich zwischen den Schnittstellenbeschreibungen Typ B und C vornimmt.
Bei der Paarung Typ E und Typ B wäre es der Schnittstellenmanager SM_B und bei der Paarung Typ F und Typ G wäre es der Schnittstellenmanager SM_C.
Sonderfälle entstehen, wenn ein Vergleich der Beschreibungsstandards nicht über die Vererbungshierarchie des Vererbungsbaums erfolgen kann oder erfolgen soll. Beispielsweise wenn die Anforderung besteht, zwei Beschreibungsstandards miteinander zu verglichen und sich dabei ein Beschreibungsstandard außerhalb der Hierarchie befindet oder beispielsweise beide Beschreibungsstandards sich innerhalb der Hierarchie befinden aber direkt und ohne Informationsverlust miteinander verglichen werden sollen.
Dieser Sachverhalt wird beispielsweise an der Paarung C-CX deutlich wie in Figur 3 und Figur 5 beispielhaft dargestellt. Für diese Sonderfälle gibt es gibt es mehrere Möglichkeiten einen Vergleich durchzuführen.
Die erste Möglichkeit besteht in der Transformation des Beschreibungsstandards von einem in den anderen Standard. Im vorliegenden Beispiel würde der Transformator die Schnittstellenbeschreibung CX in die Schnittstellenbeschreibung C transformieren. Dabei würde der Transformator wie aus Figur 5 beispielhaft ersichtlich die Samplerate von [μs] in [ms] umwandeln. Nach der Transformation würde der Schnittstellenmanager „SM_C" den Vergleich von C und CX vornehmen. Die zweite Möglichkeit besteht in der Verwendung eines speziellen Schnittstellenmanagers. Dieser vergleicht C und CX miteinander ohne vorherige Transformation und wird aufgrund seiner Spezialisierung die Samplerate nur temporär für den Vergleich umrechnen.
Spezielle Schnittstellenmanager oder Transformatoren können auch erforderlich sein, wenn Schnittstellenbeschreibungen innerhalb der Vererbungshierarchie ohne Informationsverlust verglichen werden sollen. Beispielsweise der Vergleich von Typ B mit Typ F. In diesem Fall würde ursprünglich der Schnittstellenmanager SM_A den Vergleich vornehmen. Aus der Vererbungshierarchie ist ersichtlich, dass nur der
gemeinsame Anteil aus Typ A miteinander verglichen werden kann. Der Informationsverlust wäre also entsprechend groß. Mit einem speziellen Transformator oder einem speziellen Schnittstellenmanager für die Paarung Typ B mit Typ F könnte der Informationsverlust vermieden werden. Daher macht die Verwendung von speziellen Transformatoren oder speziellen Schnittstellenmanagern nicht nur für Paarungen Sinn wo ein Teil des Paares außerhalb der Vererbungshierarchie angeordnet ist, sondern auch für Paarungen die innerhalb der Vererbungshierarchie angeordnet sind.
In der Praxis könnte es dann so sein, dass Hersteller von Softwarekomponenten zu ihrer Softwarekomponente einen Transformator oder einen speziellen Schnittstellenmanager für bestimmte Vererbungshierarchien mitliefern. Dies würde die Wiederverwendbarkeit von Softwarekomponenten nochmals deutlich verbessern.
Figur 4 zeigt, welchen gemeinsamen Schnittstellenmanager das Architekturwerkzeug anhand der Vererbungshierarchie gemäß der Figur 3 ermitteln würde, wenn das Beispiel aus Figur 2 zugrunde gelegt wird.
Als eine weitere Ausführungsform kann auch vorgesehen werden, dass keine dedizierten Schnittstellenmanager zum Vergleich gegeben sind. Im Falle zunehmender Standardisierung könnte es sein, dass der Vergleich nur noch von einem Schnittstellenmanager durchgeführt wird, da auf höchster Ebene Inhalte, Struktur, das formelle Aussehen und das Format in dem die Schnittstellenbeschreibungen vorliegen einheitlich standardisiert sind. In diesem Fall könnte ein einzelner Schnittstellenmanager alle in der Vererbungshierarchie befindlichen Schnittstellenbeschreibungen miteinander vergleichen. Das Vorhandensein von unterschiedlichen Varianten eines Beschreibungsstandards und das Vorhandensein der Vererbungshierarchie bleibt davon jedoch unberührt.
Ein wichtiges Merkmal der vorliegenden Erfindung ist, dass die Beschreibungsstandards den allgemein bekannten Eigenschaften von Vererbung unterworfen werden. Daraus folgt, dass mit der zugrunde gelegten Vererbungshierarchie ein Nachfahre-Beschreibungsstandard immer über einen gemeinsamen Anteil mit seinem in der Vererbungshierarchie nächst höheren
Vorfahre-Beschreibungsstandard verfügt. Unterschiede zwischen Vorfahre und Nachfahre bestehen immer aus dem Hinzufügen weiterer Fähigkeiten Schnittstellen zu beschreiben.
Es ist nicht zulässig, dass beispielsweise im gemeinsamen Anteil zweier Beschreibungsstandards eine Eigenschaft oder Fähigkeit, z.B. der Ressourcenverbrauch unterschiedlich beschrieben wird. In diesem Fall wäre eine Transformation von einem Standard in den anderen Standard notwendig oder ein spezieller Schnittstellenmanager (Siehe Typ CX in Figur 3, Figur 4 und Figur 5). Ist dies nicht möglich sind die jeweiligen Softwarekomponenten nicht kompatibel und ein Vergleich verläuft negativ.
Unterschiede können in der Vererbungshierarchie folglich nur aus dem Hinzufügen von weiteren Fähigkeiten bestehen. Figur 5 verdeutlicht beispielhaft diesen Sachverhalt. An dieser Stelle sei erwähnt, dass die angeführten Fähigkeiten in Figur 5 nur als Beispiel dienen um den Zusammenhang der Vererbung und die Erweiterung von Fähigkeiten zu verdeutlichen. Tatsächlich würde ein Großteil der jetzt dort verteilt aufgeführten Fähigkeiten in einem einzigen Beschreibungsstandard vereint sein. Eine vollständige Aufführung würde den Rahmen einer übersichtlichen Veranschaulichung jedoch sprengen.
Mit den vorliegenden Informationen aus Fig. 2 bis Fig. 5 ist ein Architekturwerkzeug in der Lage, einen Vergleich zwischen zwei konkret vorliegenden Schnittstellenbeschreibungen durchzuführen. Figur 6 zeigt ein Beispiel einer konkreten Schnittstellenbeschreibung für die Schnittstelle 1.1.
Aus der Figur 6 wird erkenntlich, dass die Schnittstelle 1.1 dem Typ C entspricht. Beispielhaft wurde auch die Syntax des Schnittstellenstandards Typ C festgelegt. Es wird angenommen, dass in der Schnittstelle 1.1 alle in Typ C aufgeführten Fähigkeiten verwendet bzw. geboten werden. Diese sind sowohl die gemeinsamen Fähigkeiten mit dem übergeordneten Standard A (Fähigkeit 1) als auch die neu hinzugefügten Fähigkeiten (Fähigkeit 2) bzgl. weiterer Tasks im Standard C. So bietet die Schnittstelle 1.1 die Methoden Op1 (), Op2() und Op3(), sowie die Tasks Task10 und Task20. In der untersten Tabelle wird für dieses Beispiel fiktiv das
Verhalten bestimmt indem beispielsweise RESPONSTIME oder SAMPLERATE mit konkreten Werten versehen werden.
Analog zur Schnittstelle 1.1 und Figur 6 können für alle anderen im Beispiel gemäß Figur 2 vorkommenden Schnittstellen ebenfalls Werte angenommen werden. Aus Figur 7 bis Figur 13 wird deutlich, dass mehr Fähigkeiten in einem Schnittstellenstandard definiert sein können, als später in einer konkreten Schnittstellenbeschreibung enthalten sind.
Nachfolgende Figuren zeigen beispielhaft die Berechnungsergebnisse der ermittelten Schnittstellenmanager. Dabei werden die Verbindungen gemäß Figur 2 zugrunde gelegt sowie die Vererbungshierarchie aus Figur 3.
Die Figur 7 zeigt als ein Beispiel, dass alle geforderten Fähigkeiten der Verbindung 1 erfüllt sind, z.T. besser als gefordert. Der Vergleich verläuft somit positiv.
Das Beispiel nach Figur 8 zeigt einen negativen Vergleich bei der Verbindung 2, da die geforderten Ressourcen nicht geboten werden. Die jeweiligen Komponenten sind nicht kompatibel.
Figur 9 zeigt beim Vergleich der Schnittstellenbeschreibungen der Verbindung 3, dass der Beschreibungsstandard C den nächstliegenden gemeinsamen Standard bildet. Schnittstelle 3.2 bietet diesen Standard C, jedoch fordert Schnittstelle 2.2 mehr als Standard C, nämlich Standard G. Dieser Standard G umfasst alle Fähigkeiten des Standards C fordert jedoch noch weitere Fähigkeiten, nämlich die Zuordnung von Prioritäten einerseits 1 andererseits 4 zu den Tasks 3 und 4. Da diese Prioritäten nicht im Standard C geboten werden kann es sein, dass die Softwarekomponenten nicht kompatibel sind.
Gemäß Figur 10 sind bei der Verbindung 4 wieder alle geforderten Fähigkeiten durch die gebotenen gegeben. Die Softwarekomponenten sind kompatibel. In Figur 11 ist ersichtlich, dass die Signale Sig1 und Sig2 jeweils gefordert und geboten werden, jedoch fordert die Schnittstelle 2.3 vom Typ E eine Signalabhängigkeit, die nicht geboten wird. Auch hier kann deswegen eine Inkompatibilität vorliegen.
Figur 12 zeigt ein Beispiel, bei dem zunächst eine Inkompatibilität im geforderten und gebotenen Zeitverhalten vorliegt, da die zugehörigen Beschreibungsstandards in diesem Punkt nicht übereinstimmen. Das Fehlen der Übereinstimmung ist jedoch nur durch die jeweilige Einheit der relevanten Größe bedingt. Die Schnittstelle 4.3 fordert ein Zeitverhalten in Mikrosekundenbereich, die Schnittstelle 3.2 bietet ein Zeitverhalten im Millisekundenbereich. Ein spezieller Schnittstellenmanager kann nun in der Lage sein während der Vergleiches festzustellen, dass es sich lediglich um eine formale Inkompatibilität handelt und zur Laufzeit die geforderte Einheit transformieren, so dass sie der gebotenen entspricht. Sodann ist feststellbar, dass die gebotenen Größe besser ist als die geforderte. Die Komponenten sind somit kompatibel.
Gemäß Figur 13 wird die Problematik der formalen Inkompatibilität aufgrund unterschiedlicher Einheitenangaben beim Zeitverhalten derart gelöst, dass mit einem Transformator die geforderte Schnittstelle vom Standard CX transformiert wird in eine Schnittstelle vom Standard C. Sodann ergibt sich wieder die Kompatibilität.
Die Erfindung wurde anhand eines Prototypen getestet. Mit der Modellierungssprache UML (Unified Modeling Language), einer Sprache zur Beschreibung von Softwaresystemen, lassen sich die bisher in den Figuren 2 und 3 dargestellten Informationen formal beschreiben. Die Möglichkeit UML Diagramme nach XMI bzw. XML Dateien zu exportieren, kann ein Architekturwerkzeug nutzen, um die Informationen z.B. aus Figur 2 sowie Figur 3 oder alternativ Figur 4 datentechnisch zu verarbeiten. Für den Prototyp war es daher notwendig die Figuren 3 bis 6 teilweise in UML Diagramme umzuwandeln. Figur 14 zeigt beispielweise das zugehörige UML Diagramm zur Softwarekomponente 1.
Figur 15 zeigt das UML Klassendiagramm zur Softwarekomponente 2.
Figur 16 zeigt das UML Klassendiagramm zur Softwarekomponente 3.
Figur 17 zeigt das UML Klassendiagramm zur Softwarekomponente 4.
Figur 18 zeigt das UML Klassendiagramm zur Vererbungshierarchie gemäß Figur 3.
Der Übersichtlichkeit halber wurde in Figur 18 der Sonderfall für den Standard Typ CX nicht eingezeichnet.
Ein Architekturwerkzeug wäre nach dem Einlesen der UML Diagramme beziehungsweise nach dem Einlesen der exportierten XML Files in der Lage, die im Gesamtsystem verfügbaren Softwarekomponenten und ihre gebotenen sowie geforderten Schnittstellen anzuzeigen. Ein Softwarearchitekt kann jetzt Verbindungen gemäß Figur 1 herstellen. Das Architekturwerkzeug kann anhand der Vererbungshierarchie gemäß Figur 18 für eine Verbindung den zugehörigen Schnittstellenmanager ermitteln und eine Berechnung durchführen.
Figur 19 zeigt ein Beispiel wie der Prototyp „Softwarekomponentenevaluator" als Teil eines Architekturwerkzeugs die Softwarekomponenten darstellen könnte.
In einem nächsten Schritt können die für die Verbindung in Frage kommenden Schnittstellen ausgewählt werden, was beispielhaft für Verbindung 1 in Figur 20 dargestellt wird. Mit Betätigung der Schaltfläche „Berechne Ergebnis" wird vom Softwarekomponentenevaluator der richtige Schnittstellenmanager aus der Vererbungshierarchie ermittelt und (zur Laufzeit) gestartet. Der Schnittstellenmanager führt anschließend die Berechnung durch. Figur 20 zeigt hierfür beispielhaft die Berechnung. Die Berechnung gleicht der Berechnung in Figur 7.
Damit unterschiedliche Beschreibungsstandards in einem Architekturwerkzeug in einem Gesamtsystem verwendet werden können, müssen Vererbungshierarchie, Beschreibungsstandards und Schnittstellenmanager sowie die Softwarekomponentenbeschreibungen dem Architekturwerkzeug explizit vorliegen. Figur 21 verdeutlicht diesen Sachverhalt noch einmal.
Ein Architekturwerkzeug, mittels dem z.B. auch grafisch ein Zusammenstellen von Softwarekomponenten erfolgen kann greift zu auf eine explizit vorliegende spezielle Vererbungshierarchie, die Softwarekomponenten- bzw. Schnittstellenbeschreibungen, die einzelnen Beschreibungsstandards mit Schnittstellenmanagern und ggf. Transformatoren bzw. spezielle
Schnittstellenmanager. So kann direkt bei der Softwarekomponentenmodellierung die Kompatibilität geprüft werden, unabhängig davon ob die Softwarekomponente bereits als ausführbares Programm vorliegt oder nicht.
Im derzeitigen Stand der Technik gibt es noch keine Vergleiche zwischen den unterschiedlichen Arten der Beschreibungen von Softwarekomponenten. Bisher geht man davon aus, dass alle Softwarekomponenten in einem System einheitlich standardisierte Schnittstellen haben. Der wesentliche Vorteil besteht darin, mit der erfindungsgemäßen Methode schon zur Zeit der Softwarekomponentenmodeliierung unterschiedliche Standards in einem Architekturwerkzeug zu verarbeiten bzw. die Unterschiede bekannt zu machen. Hersteller von Architekturwerkzeugen sind dann nicht gezwungen, für jeden am Markt befindlichen Standard ein eigenes Werkzeug entwickeln. In einer weiteren Ausführungsform kann die zur Rede stehende Erfindung auch auf den Vergleich von ganzen Architekturbeschreibungen übertragen werden. Damit könnte das erfindungsgemäße Verfahren auch qualitative Aussagen zu verschiedenen Architekturen ermöglichen, obwohl sie unterschiedlichen Beschreibungsstandards angehören.
Claims
1. Verfahren zur Überprüfung der Kompatibilität zwischen zwei Softwarekomponenten eines Steuergerätenetzwerks, wobei jeder Softwarekomponente wenigstens eine technische Schnittstellenbeschreibung zugeordnet ist, die einem bestimmten Beschreibungsstandard zugehört, dadurch gekennzeichnet, dass jeder Beschreibungsstandard eine hierarchische Position in einer Vererbungshierarchie aller möglichen Beschreibungsstandards aufweist, wobei anhand der Vererbungshierarchie der in der Vererbungshierarchie nächstliegendste gemeinsame Beschreibungsstandard der zu vergleichenden Softwarekomponenten ermittelt wird und anhand des gemeinsamen Beschreibungsstandards der gemeinsame Anteil der jeweiligen Schnittstellenbeschreibungen ermittelt und miteinander verglichen wird.
2. Verfahren nach Anspruch 1 , dadurch gekennzeichnet, dass die Schnittstellenbeschreibungen der zu vergleichenden Softwarekomponenten des Steuergerätenetzwerkes anhand der Festlegungen in dem nächstliegenden gemeinsamen Beschreibungsstandard verglichen werden.
3. Verfahren nach einem der vorherigen Ansprüche, dadurch gekennzeichnet, dass eine Vererbungshierarchie aller Beschreibungsstandards dadurch gebildet wird, dass jeder Beschreibungsstandard bis auf der in der Vererbungshierarchie höchste zumindest zu einem Teil einen hierarchisch höherliegenden Beschreibungsstandard umfasst und hierzu Ergänzungen aufweist.
4. Verfahren nach einem der vorherigen Ansprüche, dadurch gekennzeichnet, dass in einer Schnittstellenbeschreibung einer Softwarekomponente des Steuergerätenetzwerkes die von der Softwarekomponente gebotenen und/oder geforderten technischen Eigenschaften beschrieben sind.
5. Verfahren nach Anspruch 4, dadurch gekennzeichnet, dass bei einem Vergleich geprüft wird, ob die geforderten Fähigkeiten einer Schnittstelle von den gebotenen Fähigkeiten einer anderen Schnittstelle erfüllt werden.
6. Verfahren nach einem der vorherigen Ansprüche, dadurch gekennzeichnet, dass bislang nicht in der Vererbungshierarchie eingeordnete Beschreibungsstandards einer Schnittstellenbeschreibung zur Einordnung und Erweiterung der Vererbungshierarchie derart geändert werden, dass sie einen mit der bestehenden Vererbungshierarchie gemeinsamen Anteil aufweisen.
7. Verfahren nach einem der vorherigen Ansprüche, dadurch gekennzeichnet, dass jedem Beschreibungsstandard der Vererbungshierarchie ein Schnittstellenmanager zugeordnet ist, der für den Vergleich zweier Schnittstellenbeschreibungen eingesetzt wird, insbesondere wobei für den Vergleich derjenige Schnittstellenmanager des nächstliegenden gemeinsamen Beschreibungsstandards zweier Schnittstellenbeschreibungen ausgewählt wird.
8. Verfahren nach einem der vorherigen Ansprüche, dadurch gekennzeichnet, dass Softwarekomponenten des Steuergerätenetzwerks mittels eines insbesondere grafischen Architekturwerkzeuges zusammengesetzt werden, wobei während der Laufzeit des Architekturwerkzeugs der für einen Vergleich benötigte Schnittstellenmanager anhand der Vererbungshierarchie ermittelt und ausgeführt wird.
9. Verfahren nach einem der vorherigen Ansprüche, dadurch gekennzeichnet, dass ein Beschreibungsstandard einer Schnittstellenbeschreibung, der keinen Anteil aufweist, der einem Beschreibungsstandard der Vererbungshierarchie entspricht mittels eines Transformators transformiert wird in einen Beschreibungsstandard, der einen Anteil aufweist, der einem Beschreibungsstandard der Vererbungshierarchie entspricht.
10. Verfahren nach einem der vorherigen Ansprüche, dadurch gekennzeichnet, dass eine Schnittstellenbeschreibung mit einem ersten Beschreibungsstandard, der keinen Anteil aufweist, der einem Beschreibungsstandard der Vererbungshierarchie entspricht mittels eines speziellen Schnittstellenmanagers verglichen wird mit einer anderen Schnittstellenbeschreibung, wobei der Schnittstellenmanager temporär den ersten Beschreibungsstandard transformiert so dass beide Beschreibungsstandards der zu vergleichenden Schnittstellenbeschreibungen zumindest während des Vergleichs einen gemeinsamen nächstliegenden Beschreibungsstandard aufweisen.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/909,594 US8707255B2 (en) | 2005-03-24 | 2006-03-23 | Comparison of interfaces between software components |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102005014273A DE102005014273B4 (de) | 2005-03-24 | 2005-03-24 | Vergleich von Schnittstellen zwischen Softwarekomponenten |
DE102005014273.7 | 2005-03-24 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2006100078A1 true WO2006100078A1 (de) | 2006-09-28 |
Family
ID=36607332
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/EP2006/002680 WO2006100078A1 (de) | 2005-03-24 | 2006-03-23 | Vergleich von schnittstellen zwischen softwarekomponenten |
Country Status (3)
Country | Link |
---|---|
US (1) | US8707255B2 (de) |
DE (1) | DE102005014273B4 (de) |
WO (1) | WO2006100078A1 (de) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008138770A1 (de) * | 2007-05-15 | 2008-11-20 | Siemens Aktiengesellschaft | Verfahren zum rechnergestützten wissensschutz eines software-systems |
Families Citing this family (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102007006614A1 (de) * | 2007-02-06 | 2008-08-07 | Daimler Ag | Anwendung einer verteilten Diagnosearchitektur in AUTOSAR |
US20100269089A1 (en) * | 2009-04-21 | 2010-10-21 | Vinod R Panicker | Method and system for generation of reusable design patterns |
JP2011028559A (ja) * | 2009-07-27 | 2011-02-10 | Denso Corp | 中継プログラムおよび電子制御装置 |
CN102053825A (zh) * | 2009-10-30 | 2011-05-11 | 国际商业机器公司 | 用于处理软件设计冲突的方法和系统 |
US20110106712A1 (en) * | 2009-11-02 | 2011-05-05 | Microsoft Corporation | Cost-Aware Service Aggregation |
DE102011075416A1 (de) * | 2011-05-06 | 2012-11-08 | Zf Friedrichshafen Ag | Steuerungseinrichtung eines Kraftfahrzeugs |
US8938424B2 (en) * | 2012-10-31 | 2015-01-20 | Ca, Inc. | System and method of assessing the state of a database product for installation consistency |
US9383986B2 (en) * | 2013-06-18 | 2016-07-05 | Disney Enterprises, Inc. | Safe low cost web services software deployments |
US10394533B2 (en) | 2013-09-30 | 2019-08-27 | The Mathworks, Inc. | Reusable component in a modeling environment |
US9430228B2 (en) | 2013-12-16 | 2016-08-30 | International Business Machines Corporation | Verification of backward compatibility of software components |
US9952837B1 (en) * | 2015-04-01 | 2018-04-24 | The Mathworks, Inc. | Reusable component in a modeling environment |
US11037063B2 (en) | 2017-08-18 | 2021-06-15 | Diveplane Corporation | Detecting and correcting anomalies in computer-based reasoning systems |
US11010672B1 (en) | 2017-09-01 | 2021-05-18 | Google Llc | Evolutionary techniques for computer-based optimization and artificial intelligence systems |
US10713570B1 (en) | 2017-10-04 | 2020-07-14 | Diveplane Corporation | Evolutionary programming techniques utilizing context indications |
US10296310B1 (en) * | 2017-10-04 | 2019-05-21 | Diveplane Corporation | Evolutionary programming techniques utilizing context indications |
US11676069B2 (en) | 2018-12-13 | 2023-06-13 | Diveplane Corporation | Synthetic data generation using anonymity preservation in computer-based reasoning systems |
US11941542B2 (en) | 2017-11-20 | 2024-03-26 | Diveplane Corporation | Computer-based reasoning system for operational situation control of controllable systems |
US11669769B2 (en) | 2018-12-13 | 2023-06-06 | Diveplane Corporation | Conditioned synthetic data generation in computer-based reasoning systems |
US11092962B1 (en) | 2017-11-20 | 2021-08-17 | Diveplane Corporation | Computer-based reasoning system for operational situation vehicle control |
US11640561B2 (en) | 2018-12-13 | 2023-05-02 | Diveplane Corporation | Dataset quality for synthetic data generation in computer-based reasoning systems |
US11625625B2 (en) | 2018-12-13 | 2023-04-11 | Diveplane Corporation | Synthetic data generation in computer-based reasoning systems |
US11727286B2 (en) | 2018-12-13 | 2023-08-15 | Diveplane Corporation | Identifier contribution allocation in synthetic data generation in computer-based reasoning systems |
US11454939B2 (en) | 2018-04-09 | 2022-09-27 | Diveplane Corporation | Entropy-based techniques for creation of well-balanced computer based reasoning systems |
US11385633B2 (en) | 2018-04-09 | 2022-07-12 | Diveplane Corporation | Model reduction and training efficiency in computer-based reasoning and artificial intelligence systems |
US11880775B1 (en) | 2018-06-05 | 2024-01-23 | Diveplane Corporation | Entropy-based techniques for improved automated selection in computer-based reasoning systems |
EP3861487A1 (de) | 2018-10-30 | 2021-08-11 | Diveplane Corporation | Clustering, erklärbarkeit und automatisierte entscheidungen in computerbasierten schlussfolgerungssystemen |
US11494669B2 (en) | 2018-10-30 | 2022-11-08 | Diveplane Corporation | Clustering, explainability, and automated decisions in computer-based reasoning systems |
US11176465B2 (en) | 2018-11-13 | 2021-11-16 | Diveplane Corporation | Explainable and automated decisions in computer-based reasoning systems |
US11763176B1 (en) | 2019-05-16 | 2023-09-19 | Diveplane Corporation | Search and query in computer-based reasoning systems |
Family Cites Families (55)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0737921B1 (de) | 1990-09-17 | 2000-06-28 | Cabletron Systems, Inc. | System und Verfahren zur Modellierung eines Computer-Netzwerks |
CN1183841A (zh) | 1995-02-13 | 1998-06-03 | 英特特拉斯特技术公司 | 用于安全交易管理和电子权利保护的系统和方法 |
US6363409B1 (en) | 1995-04-24 | 2002-03-26 | Microsoft Corporation | Automatic client/server translation and execution of non-native applications |
US6138140A (en) | 1995-07-14 | 2000-10-24 | Sony Corporation | Data processing method and device |
US6381239B1 (en) | 1996-02-13 | 2002-04-30 | Taqua Systems, Inc. | Multiple application switching platform and method |
US6373846B1 (en) | 1996-03-07 | 2002-04-16 | Lsi Logic Corporation | Single chip networking device with enhanced memory access co-processor |
EP0888585A1 (de) | 1996-03-19 | 1999-01-07 | Massachusetts Institute Of Technology | Rechnervorrichtung und rechnerimplementierter prozess zur darstellung von softwaresystembeschreibungen und zur erzeugung ausführbarer rechnerprogramme und rechnersystemkonfiguration aus softwaresystembeschreibungen |
US6374255B1 (en) | 1996-05-21 | 2002-04-16 | Immersion Corporation | Haptic authoring |
US6026379A (en) | 1996-06-17 | 2000-02-15 | Verifone, Inc. | System, method and article of manufacture for managing transactions in a high availability system |
US6373950B1 (en) | 1996-06-17 | 2002-04-16 | Hewlett-Packard Company | System, method and article of manufacture for transmitting messages within messages utilizing an extensible, flexible architecture |
US6047280A (en) | 1996-10-25 | 2000-04-04 | Navigation Technologies Corporation | Interface layer for navigation system |
US6369855B1 (en) | 1996-11-01 | 2002-04-09 | Texas Instruments Incorporated | Audio and video decoder circuit and system |
US6377570B1 (en) | 1997-02-02 | 2002-04-23 | Fonefriend Systems, Inc. | Internet switch box, system and method for internet telephony |
US6363497B1 (en) | 1997-05-13 | 2002-03-26 | Micron Technology, Inc. | System for clustering software applications |
AU8684098A (en) | 1997-07-31 | 1999-02-22 | Sapphire Communications, Inc. | Means and method for a synchronous network communications system |
US6360234B2 (en) | 1997-08-14 | 2002-03-19 | Virage, Inc. | Video cataloger system with synchronized encoders |
US6574661B1 (en) | 1997-09-26 | 2003-06-03 | Mci Communications Corporation | Integrated proxy interface for web based telecommunication toll-free network management using a network manager for downloading a call routing tree to client |
US6381644B2 (en) | 1997-09-26 | 2002-04-30 | Mci Worldcom, Inc. | Integrated proxy interface for web based telecommunications network management |
US6363411B1 (en) | 1998-08-05 | 2002-03-26 | Mci Worldcom, Inc. | Intelligent network |
CA2236525C (en) | 1998-05-01 | 2003-07-15 | Mitel Corporation | Method and apparatus for migrating embedded pbx system to personal computer |
US6380968B1 (en) | 1998-01-06 | 2002-04-30 | Intel Corporation | Method and apparatus for controlling a remote video camera in a video conferencing system |
US6373485B2 (en) | 1998-02-17 | 2002-04-16 | Sun Microsystems, Inc. | Mitigating the effects of object approximations |
US6370508B2 (en) | 1998-09-11 | 2002-04-09 | Genesys Telecommunications Laboratories, Inc. | Interface engine for managing business processes within a multimedia communication-center |
US6373821B2 (en) | 1998-02-20 | 2002-04-16 | Apple Computer, Inc. | Method for setting time stamp in SYT field of packet headers for IEEE-1394 devices |
US6381640B1 (en) | 1998-09-11 | 2002-04-30 | Genesys Telecommunications Laboratories, Inc. | Method and apparatus for automated personalization and presentation of workload assignments to agents within a multimedia communication center |
US6360243B1 (en) | 1998-03-10 | 2002-03-19 | Motorola, Inc. | Method, device and article of manufacture for implementing a real-time task scheduling accelerator |
CA2326894C (en) | 1998-04-03 | 2010-07-13 | Vertical Networks Inc. | Voice and data apparatus comprising a selective tapping digital signal processing resource |
US6363421B2 (en) | 1998-05-31 | 2002-03-26 | Lucent Technologies, Inc. | Method for computer internet remote management of a telecommunication network element |
US6363486B1 (en) | 1998-06-05 | 2002-03-26 | Intel Corporation | Method of controlling usage of software components |
US6360332B1 (en) | 1998-06-22 | 2002-03-19 | Mercury Interactive Corporation | Software system and methods for testing the functionality of a transactional server |
US6377860B1 (en) | 1998-07-31 | 2002-04-23 | Sun Microsystems, Inc. | Networked vehicle implementing plug and play with javabeans |
US6363472B1 (en) | 1998-09-03 | 2002-03-26 | Telefonaktiebolaget L M Ericsson (Publ) | Method and system for minimizing effect of replacing programming languages in telephony systems |
US6369811B1 (en) | 1998-09-09 | 2002-04-09 | Ricoh Company Limited | Automatic adaptive document help for paper documents |
US6373507B1 (en) | 1998-09-14 | 2002-04-16 | Microsoft Corporation | Computer-implemented image acquistion system |
US6185555B1 (en) | 1998-10-31 | 2001-02-06 | M/A/R/C Inc. | Method and apparatus for data management using an event transition network |
US6370606B1 (en) | 1998-11-05 | 2002-04-09 | Compaq Computer Corporation | System and method for simulating hardware interrupts in a multiprocessor computer system |
US6298353B1 (en) * | 1998-11-19 | 2001-10-02 | International Business Machines Corporation | Checking serialization compatibility between versions of java classes |
US6374145B1 (en) | 1998-12-14 | 2002-04-16 | Mark Lignoul | Proximity sensor for screen saver and password delay |
US6373822B1 (en) | 1999-01-08 | 2002-04-16 | Cisco Technology, Inc. | Data network protocol conformance test system |
US6366297B1 (en) | 1999-03-01 | 2002-04-02 | 3Com Corporation | System and method for displaying modem information on a graphical user interface display |
US6381267B1 (en) | 1999-03-08 | 2002-04-30 | International Business Machines Corporation | Modems, methods, and computer program products for falling back to a lower data rate protocol upon detecting abnormal line conditions during startup |
US6366683B1 (en) | 1999-03-16 | 2002-04-02 | Curtis P. Langlotz | Apparatus and method for recording image analysis information |
US6363449B1 (en) | 1999-03-29 | 2002-03-26 | Compaq Information Technologies Group, L.P. | Method and apparatus for providing interchassis communication and management |
US6370509B1 (en) | 1999-03-31 | 2002-04-09 | I2 Technologies Us, Inc. | Three-dimensional production schedule display for computer-implemented production management system |
US6377960B1 (en) | 1999-07-26 | 2002-04-23 | Microsoft Corporation | Transactional configuration store and runtime versus administration isolation with version snapshots and aging |
US6366897B1 (en) | 1999-07-26 | 2002-04-02 | Hnc Software, Inc. | Cortronic neural networks with distributed processing |
US6374242B1 (en) | 1999-09-29 | 2002-04-16 | Lockheed Martin Corporation | Natural-language information processor with association searches limited within blocks |
US6363065B1 (en) | 1999-11-10 | 2002-03-26 | Quintum Technologies, Inc. | okApparatus for a voice over IP (voIP) telephony gateway and methods for use therein |
WO2001037116A2 (en) * | 1999-11-16 | 2001-05-25 | 01, Inc. | Method and system for executing financial transactions via a communication medium |
US6369859B1 (en) | 1999-12-17 | 2002-04-09 | Lsi Logic Corporation | Patching degraded video data |
US6377281B1 (en) | 2000-02-17 | 2002-04-23 | The Jim Henson Company | Live performance control of computer graphic characters |
US6761046B2 (en) | 2001-06-15 | 2004-07-13 | Jayson J. Nelson | Cold rolling of glass preforms |
US6813587B2 (en) * | 2001-06-22 | 2004-11-02 | Invensys Systems, Inc. | Remotely monitoring/diagnosing distributed components of a supervisory process control and manufacturing information application from a central location |
US20030093551A1 (en) * | 2001-10-17 | 2003-05-15 | Graham Taylor | Adaptive software interface |
US20040045007A1 (en) * | 2002-08-30 | 2004-03-04 | Bae Systems Information Electronic Systems Integration, Inc. | Object oriented component and framework architecture for signal processing |
-
2005
- 2005-03-24 DE DE102005014273A patent/DE102005014273B4/de not_active Expired - Fee Related
-
2006
- 2006-03-23 WO PCT/EP2006/002680 patent/WO2006100078A1/de active Application Filing
- 2006-03-23 US US11/909,594 patent/US8707255B2/en not_active Expired - Fee Related
Non-Patent Citations (3)
Title |
---|
CHAKRABARTI A ET AL: "Interface compatibility checking for software modules", COMPUTER AIDED VERIFICATION. 14TH INTERNATIONAL CONFERENCE, CAV 2002. PROCEEDINGS (LECTURE NOTES IN COMPUTER SCIENCE VOL.2404) SPRINGER-VERLAG BERLIN, GERMANY, 2002, pages 428 - 441, XP002389815, ISBN: 3-540-43997-8 * |
CHAKRABARTI A ET AL: "Resource interfaces", EMBEDDED SOFTWARE. THIRD INTERNATIONAL CONFERENCE, EMSOFT 2003. PROCEEDINGS (LECTURE NOTES IN COMPUT. SCI. VOL.2855) SPRINGER-VERLAG BERLIN, GERMANY, 2003, pages 117 - 133, XP002389814, ISBN: 3-540-20223-4 * |
HEINECKE ET AL: "AUTomotive Open System ARchitecture - An Industry-Wide Initiative to Manage the Complexity of Emerging Automotive E/E-Architectures", INTERNET ARTICLE, 2004, pages 1 - 8, XP002389816, Retrieved from the Internet <URL:http://www.autosar.org/download/AUTOSAR_Paper_Convergence_2004.pdf> [retrieved on 20060710] * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008138770A1 (de) * | 2007-05-15 | 2008-11-20 | Siemens Aktiengesellschaft | Verfahren zum rechnergestützten wissensschutz eines software-systems |
Also Published As
Publication number | Publication date |
---|---|
US8707255B2 (en) | 2014-04-22 |
DE102005014273A1 (de) | 2006-10-12 |
US20090144704A1 (en) | 2009-06-04 |
DE102005014273B4 (de) | 2012-04-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE102005014273B4 (de) | Vergleich von Schnittstellen zwischen Softwarekomponenten | |
EP1176482B1 (de) | Verfahren und Computerprogramm zum Herstellen einer Regelung oder Steuerung | |
DE102014210854A1 (de) | Computerimplementiertes Verfahren und Signalfolge für ein Programm zur Wiederverwendung von ausführbaren Softwarekonfigurationen für Softwaresysteme sowie Rechneranlage und ein Computerprogramm mit Programmcode zur Durchführung des Verfahrens | |
DE102018110020A1 (de) | Verfahren zum Erzeugen eines auf einem Testgerät ausführbaren Modells eines technischen Systems und Testgerät | |
DE10333087A1 (de) | Verfahren zum automatischen Zerlegen von dynamischen Systemmodellen in Teilmodelle | |
DE102017120016A1 (de) | Verfahren zur Konfiguration eines zum Testen eines elektronischen Steuergeräts eingerichteten Testgeräts sowie Konfigurationssystem | |
EP1268996A2 (de) | Verfahren und vorrichtung zur modellierung eines mechatronischen systems in einem kraftfarhzeug | |
EP3306295A1 (de) | Verfahren und vorrichtung zum testen elektronischer steuerungen, insbesondere zum testen von automobilsteuerungen | |
DE10324594A1 (de) | Verfahren zum Bereitstellen einer verbesserten Simulationsfähigkeit eines dynamischen Systems außerhalb der ursprünglichen Modellierungsumgebung | |
DE102018206762A1 (de) | Feature-Development-Framework und Feature-Integration-Framework zum Implementieren physikalischer Funktionsfeatures in einem Zielgerät | |
WO2005022382A2 (de) | Verfahren zur installation einer programmkomponente | |
WO2007068563A1 (de) | Verfahren zur verarbeitung und erzeugung von diagnosedaten in einem softwareentwicklungsprozess | |
DE102012210482A1 (de) | Verfahren und System zum Migrieren von Geschäftsprozessinstanzen | |
DE102005018864B4 (de) | Verfahren und System zum Erzeugen eines Quellcodes für ein Computerprogramm | |
DE102016115314A1 (de) | Modifizieren und Simulieren der Betriebssoftware eines technischen Systems | |
DE102021202133A1 (de) | Verfahren, Vorrichtung und Konfigurationsumgebung zum Erzeugen von Konfigurationsdaten für ein Steuergerät | |
DE102020214922A1 (de) | Verfahren zum Testen einer Anwendung für Fahrzeuge | |
DE102008022132A1 (de) | Verfahren zum Konfigurieren einer Testeinrichtung, Testverfahren und Testeinrichtung | |
DE102016207768A1 (de) | Vorrichtung und Verfahren zum Bereitstellen einer Menge von Modultypen | |
WO2022117306A1 (de) | Verfahren zum bereitstellen von programmdaten aus einer datenbank | |
DE112019007763T5 (de) | Softwareaktualisierungsvorrichtung, Server, Softwareaktualisierungssystem undSoftwareaktualisierungsverfahren | |
DE102022113104A1 (de) | Eindeutige Identitätskennung für Lognachrichtenquellen in Fahrzeugen | |
WO2021089295A1 (de) | Verfahren und vorrichtung zum verwalten einer softwarekomponente für ein vorgegebenes system | |
WO2022117305A1 (de) | Verfahren zum hinterlegen von programmdaten in einer datenbank | |
DE102022113112A1 (de) | Verfahren und System zum Sammeln von Daten für Fahrzeuge |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
NENP | Non-entry into the national phase |
Ref country code: RU |
|
WWW | Wipo information: withdrawn in national office |
Country of ref document: RU |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 06723669 Country of ref document: EP Kind code of ref document: A1 |
|
WWW | Wipo information: withdrawn in national office |
Ref document number: 6723669 Country of ref document: EP |
|
WWE | Wipo information: entry into national phase |
Ref document number: 11909594 Country of ref document: US |