DE102021005309A1 - Verfahren zur Bewilligung der Einbringung von Programmcode aus einem Programmcode-Freigabepaket in eine Anwendungsumgebung und informationstechnisches System - Google Patents

Verfahren zur Bewilligung der Einbringung von Programmcode aus einem Programmcode-Freigabepaket in eine Anwendungsumgebung und informationstechnisches System Download PDF

Info

Publication number
DE102021005309A1
DE102021005309A1 DE102021005309.5A DE102021005309A DE102021005309A1 DE 102021005309 A1 DE102021005309 A1 DE 102021005309A1 DE 102021005309 A DE102021005309 A DE 102021005309A DE 102021005309 A1 DE102021005309 A1 DE 102021005309A1
Authority
DE
Germany
Prior art keywords
program
application environment
program code
dependencies
configuration
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102021005309.5A
Other languages
English (en)
Inventor
Christian Seiler
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mercedes Benz Group AG
Original Assignee
Mercedes Benz Group AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mercedes Benz Group AG filed Critical Mercedes Benz Group AG
Priority to DE102021005309.5A priority Critical patent/DE102021005309A1/de
Publication of DE102021005309A1 publication Critical patent/DE102021005309A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

Die Erfindung betrifft ein Verfahren zur Bewilligung der Einbringung von Programmcode aus einem Programmcode-Freigabepaket (1) in eine Anwendungsumgebung, wobei die Einbringung bewilligt wird, wenn eine Erlaubnis zur Verwendung eines durch eine Ausführung des Programmcodes bereitgestellten Implementierungs-Programms (2) mit einer festgelegten Programmkonfiguration (SW-C) in der Anwendungsumgebung vorliegt. Das erfindungsgemäße Verfahren ist gekennzeichnet durch die folgenden Verfahrensschritte:- Automatisierte Extraktion von Abhängigkeiten zwischen dem Implementierungs-Programm (2) und einer Konfiguration der Anwendungsumgebung, aus dem Programmcode-Freigabepaket (1) durch eine Recheneinheit;- Ablegen der aus dem Programmcode-Freigabepaket (1) extrahierten Abhängigkeiten in einem durch einen SAT-Löser verarbeitbaren Format durch die Recheneinheit;- Überprüfen einer Übereinstimmung der extrahierten Abhängigkeiten mit den für eine gemäß einer ersten Konfiguration konfigurierten Anwendungsumgebung geltenden Abhängigkeiten durch den SAT-Löser; und- Bewilligen der Einbringung des Programmcodes, wenn sämtliche extrahierten Abhängigkeiten mit den für die gemäß der ersten Konfiguration konfigurierte Anwendungsumgebung geltenden Abhängigkeiten übereinstimmen.

Description

  • Die Erfindung betrifft ein Verfahren zur Bewilligung der Einbringung von Programmcode aus einem Programmcode-Freigabepaket in eine Anwendungsumgebung nach der im Oberbegriff von Anspruch 1 näher definierten Art sowie ein informationstechnisches System.
  • Komplexe Maschinen werden aus einer Vielzahl verschiedener Einzelteile und Komponenten gefertigt. Bei einer solchen Maschine kann es sich beispielsweise um ein Fahrzeug handeln. Fahrzeuge werden typischerweise in verschiedenen Varianten angeboten, so lassen sich je nach Kundenwunsch beispielsweise die Motorisierung, das Fahrwerk, das Klimatisierungssystem, das Infotainmentsystem oder dergleichen anpassen. Hierdurch entstehen viele verschiedene Kombinationsmöglichkeiten oder Varianten das Fahrzeug zu bauen. Bevor das Fahrzeug gebaut werden darf, muss eine Freigabe für genau die Fahrzeugvariante vorliegen, sprich genau die spezielle Kombination einzelner Komponenten, die das Fahrzeug auszeichnet. Neben verschiedenen physischen Komponenten können sich Fahrzeuge auch durch die Verwendung unterschiedlicher Programme oder Programmcodeteile sowie einer abweichende Softwarekonfiguration unterscheiden.
  • Typischerweise halten produzierende Unternehmen eine Datenbank mit allen verbaubaren Hardwarekomponenten vor, wobei mittels eines sogenannten SAT-Lösers, auch als SAT-Solver bezeichnet, eine auf Regeln der Aussagenlogik basierende Baubarkeit eines bestimmten Produkts gemäß Kundenwünschen geprüft wird.
  • Ferner sind aus der US 2014/0324918 A1 ein System und ein Verfahren zur Erzeugung von Datenbanken sowie ein Produktlinienverwaltungssystem bekannt. Bei der Datenbank handelt es sich um eine Variantendatenbank möglicher Produktkonfigurationen. Die Datenbank wird automatisiert erstellt. Hierzu werden verschiedene Produktmodelle, die den verschiedenen Produktvarianten der Produkte einer Produktlinie entsprechen, automatisiert von dem informationstechnischen System eingelesen und die verschiedenen Parameter, welche Unterschiede zwischen einzelnen Produkten bedingen, aus den Produktmodellen extrahiert.
  • Der vorliegenden Erfindung liegt die Aufgabe zugrunde, ein Verfahren zur Bewilligung der Einbringung von Programmcode aus einem Programmcode-Freigabepaket in eine Anwendungsumgebung anzugeben, mit dessen Hilfe der Arbeitsaufwand zur Überprüfung, ob die Einbringung von Programmcode in eine Anwendungsumgebung mit einer bestimmten Konfiguration erlaubt ist oder nicht, reduziert wird, und dabei die Wahrscheinlichkeit eine korrekte Aussage zu treffen gegenüber bekannten Methoden gesteigert wird.
  • Erfindungsgemäß wird diese Aufgabe durch ein Verfahren zur Bewilligung der Einbringung von Programmcode aus einem Programmcode-Freigabepaket in eine Anwendungsumgebung mit den Merkmalen des Anspruchs 1 und ein informationstechnisches System mit den Merkmalen des Anspruchs 7 gelöst. Vorteilhafte Ausgestaltungen und Weiterbildungen ergeben sich aus den hiervon abhängigen Ansprüchen.
  • Bei einem Verfahren zur Bewilligung der Einbringung von Programmcode aus einem Programmcode-Freigabepaket in eine Anwendungsumgebung der eingangs genannten Art, wird die Einbringung bewilligt, wenn eine Erlaubnis zur Verwendung eines durch eine Ausführung des Programmcodes bereitgestellten Implementierungs-Programms mit einer festgelegten Programmkonfiguration in der Anwendungsumgebung vorliegt, wobei die Erlaubnis zur Verwendung des Implementierungs-Programms mit der festgelegten Programmkonfiguration in der Anwendungsumgebung in Abhängigkeit einer Konfiguration der Anwendungsumgebung bezüglich zumindest eines weiteren in der Anwendungsumgebung ausgeführten Anwendungs-Programms und/oder einer Hardwarekonfiguration der Anwendungsumgebung erteilt wird, wobei sich mögliche Konfigurationen der Anwendungsumgebung durch Anwendung von Regeln auf eine verschiedene Anwendungs-Programme und/oder Hardwarekonfigurationen umfassende Variantendatenbank ergeben und eine festgelegte Konfiguration der Anwendungsumgebung durch eine aus der Variantendatenbank abgeleitete Stückliste beschrieben wird. Erfindungsgemäß werden hierbei die folgenden Verfahrensschritte ausgeführt:
    • - Automatisierte Extraktion von Abhängigkeiten zwischen dem Implementierungs-Programm und möglichen Programmkonfigurationen, Anwendungs-Programmen und/oder Hardwarekonfigurationen der Anwendungsumgebung, aus dem Programmcode-Freigabepaket durch eine Recheneinheit;
    • - Ablegen der aus dem Programmcode-Freigabepaket extrahierten Abhängigkeiten in einem durch einen SAT-Löser verarbeitbaren Format durch die Recheneinheit;
    • - Überprüfen einer Übereinstimmung der aus dem Programmcode-Freigabepaket extrahierten Abhängigkeiten mit den für eine gemäß einer ersten Konfiguration konfigurierten Anwendungsumgebung geltenden Abhängigkeiten durch den SAT-Löser; und
    • - Bewilligen der Einbringung des Programmcodes in die gemäß der ersten Konfiguration konfigurierte Anwendungsumgebung, wenn sämtliche aus dem Programmcode-Freigabepaket extrahierten Abhängigkeiten mit den für die gemäß der ersten Konfiguration konfigurierte Anwendungsumgebung geltenden Abhängigkeiten übereinstimmen.
  • Bei dem erfindungsgemäßen Verfahren extrahiert eine Recheneinheit automatisiert aus dem Programmcode-Freigabepaket die zur Ausführung des Implementierungs-Programms in einer Anwendungsumgebung relevanten Abhängigkeiten zu anderen Anwendung-Programmen und/oder Hardwarekonfigurationen, entsprechend denen die Anwendungsumgebung, auf der das Implementierungs-Programm eingesetzt werden soll, konfiguriert ist. Somit entfällt das Erfordernis, dass diese Extraktion händisch, sprich manuell, durchgeführt werden muss, wodurch das Risiko menschlicher Fehler reduziert wird bzw. gänzlich vermieden wird und wodurch erst das Verwalten vergleichsweise umfassender Datensätze mit einer Vielzahl von möglichen Varianten und Kombinationsmöglichkeiten in einer vertretbaren Zeit ermöglicht wird.
  • Bei dem Implementierungs-Programm und einem Anwendungs-Programm kann es sich generell um ähnliche Programme oder Programme zur Durchführung ähnlicher oder sogar derselben Aufgabe in der Anwendungsumgebung handeln. Die Nomenklatur wurde gewählt, um zwischen einem Programm, welches in die Anwendungsumgebung einzubringen ist und dabei eine Einbringung nur erfolgen darf, wenn die Anwendungsumgebung eine bestimmte Konfiguration aufweist (Implementierungs-Programm) und einem sonstigen Programm, welches unabhängig von jeglicher Konfiguration der Anwendungsumgebung in der Anwendungsumgebung verwendet werden darf, oder dessen Erlaubnis zur Einbringung in die Anwendungsumgebung bereits vorliegt (Anwendungs-Programm), zu unterscheiden.
  • Dabei unterscheiden sich verschiedene Anwendungsumgebungen durch das Aufweisen unterschiedlicher Hardwarekomponenten, in der Anwendungsumgebung ausgeführter Anwendungs-Programme und/oder durch unterschiedliche Programmkonfigurationen der entsprechenden Anwendungs-Programme. Die Verwendung des Implementierungs-Programms in der Anwendungsumgebung kann lediglich für bestimmte mögliche Konfigurationen der Anwendungsumgebung zugelassen oder auch technisch möglich sein. Es muss also zuerst überprüft werden, ob die Anwendungsumgebung, in die das Implementierungs-Programm eingebracht werden soll, einer solchen Konfiguration entspricht, also, ob die Anwendungsumgebung den tatsächlichen Einsatz des Implementierungs-Programms ermöglicht bzw. erlaubt.
  • Der Programmcode kann dabei generell ein oder auch mehrere ausführbare Programme oder auch nur Programmabschnitte umfassen. Dabei bildet zumindest eins der Programme bzw. Programmabschnitte das Implementierungs-Programm aus. Das Programmcode-Freigabepaket wird beispielsweise aus einer Software-Datenbank extrahiert. Beispielsweise können Softwareentwickler den Programmcode erstellen und in Form des Programmcode-Freigabepakets in der Software-Datenbank speichern. Dabei können die Entwickler auch Regeln definieren, für welche mögliche Konfigurationen der Anwendungsumgebung verschiedene Programme bzw. Programmkonfigurationen eingesetzt werden dürfen.
  • Die aus dem Programmcode-Freigabepaket extrahierten Abhängigkeiten werden in einem SAT-Löser verarbeitbaren Format abgelegt, was die Verarbeitung der Abhängigkeiten durch einen SAT-Löser erlaubt. Dies erfolgt im nächsten Verfahrensschritt. Dabei geht in den SAT-Löser die Konfiguration der Anwendungsumgebung, sprich die Gesamtheit der einzelnen Hardwarekomponenten und die in der Anwendungsumgebung ausgeführten Anwendungs-Programme nebst ihrer jeweiligen Programmkonfiguration in Form der Stückliste als Eingangsgröße ein, woraufhin der SAT-Löser überprüft, ob das Implementierungs-Programm auf der entsprechend konfigurierten Anwendungsumgebung eingesetzt werden darf. Hierzu werden die aus dem Programmcode-Freigabepaket extrahierten Abhängigkeiten mit denen für die gemäß der ersten Konfiguration konfigurierten Anwendungsumgebung geltenden Abhängigkeiten verglichen.
  • Stimmen die aus dem Programmcode-Freigabepaket extrahierten Abhängigkeiten mit den für die gemäß der ersten Konfiguration konfigurierter Anwendungsumgebung geltenden Abhängigkeiten überein, so wird die Einbringung des Programmcodes in die Anwendungsumgebung bewilligt. Dabei kann auch ein Nachweis ausgestellt werden, dass die Einbringung des Programmcodes in die Anwendungsumgebung geltenden Freigabekonformitäten gerecht wird, also erlaubt ist. Dies kann beispielsweise später von einem die Anwendungsumgebung produzierenden Unternehmen genutzt werden, um eine sachgemäße Produktion der Anwendungsumgebung nachzuweisen.
  • Dass sämtliche Abhängigkeiten übereinstimmen müssen meint in diesem Zusammenhang, dass für ein bestimmtes Implementierungs-Programm die Anwendungsumgebung in die der das Implementierungs-Programm umfassende Programmcode eingebracht werden soll zumindest eine Hardwarekonfiguration, zumindest ein Anwendungs-Programm und/oder Programmkonfiguration umfassen muss, die für die Anwendung des Implementierungs-Programm erfordert wird und/oder die Anwendungsumgebung eine Hardwarekonfiguration, Anwendungs-Programm und/oder Programmkonfiguration nicht umfasst, die die Anwendung des Implementierungs-Programms unmöglich macht. Dabei ergeben sich auch aus der Konfiguration der Anwendungsumgebung Abhängigkeiten für ein mögliches in der Anwendungsumgebung einsetzbaren Implementierungs-Programms. Umfasst beispielsweise ein Fahrzeug als Anwendungsumgebung einen bestimmten Motor mit einem bestimmten Fahrwerk, so kann dies bedingen, dass nur bestimmte Steuerungsprogramme eingesetzt werden können.
  • Eine vorteilhafte Weiterbildung des Verfahrens sieht vor, dass ein Fahrzeug als Anwendungsumgebung verwendet wird. Fahrzeuge werden typischerweise in einer Vielzahl unterschiedlicher Konfigurationsvarianten angeboten. Dies erfordert es, dass im Fahrzeug verwendete Programme auch beim Vorsehen unterschiedlicher Fahrzeugkomponenten, wie einer unterschiedlichen Motorisierung, einem unterschiedlichen Fahrwerk, unterschiedlichen Raddurchmessern oder dergleichen korrekt funktionieren. Dementsprechend können einzelne Programme und/oder Programmkonfigurationen nur für bestimmte Fahrzeugkonfigurationen erlaubt sein, da die Programme nur für diese speziellen Konfigurationen konfiguriert sind bzw. das Vorhandensein bestimmter Hardwarekomponenten erfordern.
  • Entsprechend einer weiteren vorteilhaften Ausgestaltung des Verfahrens wird ein Steuerungsprogramm für ein Fahrzeugsteuergerät als Implementierungs-Programm verwendet. Wie bereits erwähnt erfordern verschiedene Konfigurationen der Anwendungsumgebung, sprich des Fahrzeugs, den Einsatz unterschiedlicher Programme bzw. Programmkonfigurationen. Weist beispielsweise ein Fahrwerk eine unterschiedliche Dämpfung auf oder unterscheiden sich die Räder des Fahrzeugs in ihrem Durchmesser, so sind Steuerungsprogramme unterschiedlich zu parametrieren, um korrekte Steuergrößen berechnen zu können. In verschiedenen Fahrzeugen, insbesondere Fahrzeuge unterschiedlicher Baureihen, können auch unterschiedliche Fahrzeugsteuergeräte verbaut sein. Entsprechend kann der Einsatz verschiedener Steuerungsprogramme nur auf bestimmten Fahrzeugsteuergeräten möglich sein.
  • Eine weitere vorteilhafte Ausgestaltung des Verfahrens sieht ferner vor, dass ein Motorsteuergerät als Fahrzeugsteuergerät verwendet wird. Bei dem Motorsteuergerät handelt es sich um eine für die korrekte Funktionsweise des Fahrzeugs zentrale Komponente, die einen korrekten Gebrauch des Fahrzeugs ermöglichen muss, auch wenn das Fahrzeug unterschiedliche Hardwarekonfigurationen und/oder Programmkonfigurationen verschiedener Anwendungs-Programme aufweist. Aufgrund der hohen Vielfalt möglicher Fahrzeugkonfigurationen und der Vielfalt verschiedener Motorsteuergeräte werden vom Fahrzeughersteller typischerweise unterschiedliche Motorsteuerprogramme in verschiedenen Versionen und Konfigurationen geschrieben. Dies macht den Einsatz des erfindungsgemäßen Verfahrens zur Überprüfung, ob ein bestimmtes Steuerungsprogramm für ein Motorsteuergerät in dem Fahrzeug mit der ersten Konfiguration eingesetzt werden darf, besonders effizient, da hier besonders viele Konfigurationsvarianten durchgeprüft werden müssen.
  • Entsprechend einer weiteren vorteilhaften Ausgestaltung des Verfahrens wird zur Bestimmung einer Abhängigkeit zwischen dem Implementierungs-Programm und möglichen Programmkonfigurationen, Anwendungs-Programmen und/oder Hardwarekonfigurationen der Anwendungsumgebung zumindest eine der folgenden Größen berücksichtigt:
    • - eine Ausführungsart zumindest einer in der Anwendungsumgebung eingesetzten Recheneinheit und/oder Hardwarekomponente;
    • - eine Programmbezeichnung;
    • - eine Programmversion;
    • - eine Programmversions-Variante; und/oder
    • - eine Produktlinie eines die Anwendungsumgebung repräsentierenden Produkts.
  • Wie bereits erwähnt kann der Einsatz des Implementierungs-Programms nur auf solchen Anwendungsumgebungen möglich sein oder erlaubt sein, die eine bestimmte Konfiguration aufweisen. Die Anwendungsumgebung kann sich beispielsweise durch verschiedene in der Anwendungsumgebung eingesetzte Recheneinheiten und/oder Hardwarekomponenten unterscheiden. Beispielsweise kann ein physischer Datenspeicher einer bestimmten Recheneinheit zu klein sein, um das Speichern des Programmcodes zu ermöglichen. In diesem Falle kann der Programmcode nicht in die Recheneinheit, und damit die die Recheneinheit aufweisende Anwendungsumgebung, eingebracht werden. Auch kann die Anwendungsumgebung unterschiedliche Hardwarekomponenten aufweisen, beispielsweise bei einer Anwendungsumgebung in Form eines Fahrzeugs, eine unterschiedliche Motorisierung. So können verschiedene Motoren eine abweichende Zylinderanzahl, Hubraum, Sensoren oder dergleichen umfassen, was den Einsatz verschiedener Implementierungs-Programme, beispielsweise einer Motorsteuerungssoftware, erfordert.
  • Entsprechend können unterschiedliche Programme für den Einsatz in Anwendungsumgebungen vorgesehen sein. Umfasst ein Fahrzeug beispielsweise als Infotainmentsystem lediglich ein Radio, so ist eine andere Medienverwaltungssoftware erforderlich, als bei einem Infotainmentsystem mit Touchdisplay und erweiterten Funktionen wie einer Navigationsführung. Entsprechend können unterschiedliche Programme eine unterschiedliche Programmbezeichnung aufweisen wie beispielsweise „Radiosteuerungsprogramm“ oder „Infotainmentsystemprogramm“. Die Bezeichnung kann auch codiert erfolgen und beispielsweise eine Seriennummer umfassen oder von dieser ausgebildet sein. Analog kann ein und dasselbe Programm auch in verschiedenen Programmversionen vorliegen, wobei beispielsweise ältere Programme auf neueren Steuergeräten nicht mehr verwendet werden dürfen oder können. Ein und dieselbe Programmversion kann auch in einer oder mehreren Varianten vorliegen. Verschiedene Programm-Versionsvarianten unterscheiden sich beispielsweise durch eine unterschiedliche Programmkonfiguration. So können beispielsweise in zur Bestimmung von Steuerungsgrößen verwendeten Formeln unterschiedliche Parameter eingesetzt werden. Verschiedene Programmbezeichnungen, Programmversionen und/oder Programmversions-Varianten können sowohl für ein Implementierungs-Programm als auch für Anwendungs-Programme vorliegen.
  • Bevorzugt wird bei Nicht-Bewilligen der Einbringung des Programmcodes in die Anwendungsumgebung zumindest eine der folgenden Aktionen durchgeführt:
    • - Erweiterung der vom Programmcode-Freigabepaket umfassten Abhängigkeiten; und/oder
    • - Überarbeiten der in der Variantendatenbank gespeicherten möglichen Konfigurationen der Anwendungsumgebung und/oder der auf die Variantendatenbank angewendeten Regeln zum Ableiten von Abhängigkeiten.
  • Wird die Einbringung des Programmcodes in die Anwendungsumgebung nicht bewilligt, so sind Maßnahmen zu treffen, die die Einbringung des Programmcodes ermöglichen. Mit anderen Worten ist es dann erforderlich, den Programmcode bzw. einzelne Programmcodeteile neu zu programmieren, sodass diese auch auf unterschiedlich konfigurierten Anwendungsumgebungen eingesetzt werden können bzw. es muss die Konfiguration der Anwendungsumgebung angepasst werden, sodass nur solche Varianten der Anwendungsumgebung, beispielsweise von einem Kunden, konfiguriert werden können, welche die Einbringung des Programmcodes erlauben.
  • Ein informationstechnisches System ist erfindungsgemäß dazu eingerichtet, ein im vorigen beschriebenes Verfahren auszuführen. Bei dem informationstechnischen System handelt es sich beispielsweise um eine Recheneinheit wie einen Computer, einen Server und/oder einen Rechnerverbund wie mehrere über ein Netzwerk miteinander kommunizierender Computer und/oder Server. Dabei kann der oder können die Rechner, Computer bzw. Server die Variantendatenbank sowie die Software-Datenbank mit den entsprechenden Programmcode-Freigabepaketen umfassen. Der Einsatz eines Rechnerverbunds, insbesondere unter Verwendung von Servern, ermöglicht die Nutzung und den Zugriff auf das erfindungsgemäße Verfahren durch eine Vielzahl an Akteuren. Ein entsprechender Rechnerverbund kann beispielsweise auch über ein Intranet, einen VPN und/oder das Internet zugänglich sein.
  • Weitere vorteilhafte Ausgestaltungen des erfindungsgemäßen Verfahrens zur Bewilligung der Einbringung von Programmcode aus einem Programmcode-Freigabepaket in eine Anwendungsumgebung ergeben sich auch aus dem Ausführungsbeispiel, welches nachfolgend unter Bezugnahme auf die Figur näher beschrieben wird.
  • Dabei zeigt:
    • 1 einen schematischen Ablauf eines erfindungsgemäßen Verfahrens.
  • Eine Anwendungsumgebung, beispielsweise ein Fahrzeug, lässt sich in Abhängigkeit unterschiedlicher verbauter bzw. angewendeter Hardwarekonfigurationen HW, Anwendungs-Programme SW und/oder Programmkonfigurationen SW-C konfigurieren. Dabei werden typischerweise alle möglichen Hardwarekonfigurationen HW, Anwendungs-Programme SW und Programmkonfigurationen SW-C in einer sogenannten Variantendatenbank 4 gespeichert. Durch eine Anwendung von Regeln 3 auf die Variantendatenbank 4 lassen sich mögliche realisierbare Konfigurationen eines Fahrzeugs definieren. Erteilt nun ein Kunde 6 eines produzierenden Unternehmens wie eines Fahrzeugherstellers, einen Auftrag zur Fertigung eines bestimmten Fahrzeugs, so lässt sich dieses Fahrzeug ausschließlich gemäß der möglichen Konfigurationen konfigurieren. Entsprechend wird eine Stückliste 5 aus der Variantendatenbank 4 abgeleitet, welche die Teile der vom Kunden 6 bestellten Konfiguration des Fahrzeugs umfasst.
  • Nun ist es so, dass bestimmte im Fahrzeug zu verwendende Programme lediglich in Fahrzeugen mit einer ganz bestimmten Konfiguration eingesetzt werden können oder dürfen. Ein solches Programm wird im Folgenden als Implementierungs-Programm 2 bezeichnet. Während einige Programme wie die Anwendungs-Programme SW unabhängig von jeglicher Konfiguration des Fahrzeugs sind, so können die Implementierungs-Programme 2, wie bereits erwähnt, nur bei bestimmten Fahrzeugkonfigurationen eingesetzt werden. Hierzu erstellen die Entwickler der Implementierungs-Programme 2 ein sogenanntes Programmcode-Freigabepaket 1, welches verschiedene Implementierungs-Programme 2 umfasst. So unterscheiden sich beispielsweise die Implementierungs-Programme 2a und 2b durch ihre Version, wobei beispielsweise das Implementierungs-Programm 2a auf einem ersten Fahrzeugsteuergerät, beispielsweise einem Motorsteuergerät, eingesetzt werden darf bzw. kann und das zweite Implementierungs-Programm 2b auf einem zweiten Fahrzeugsteuergerät, beispielsweise einem zum ersten Motorsteuergerät abweichenden Motorsteuergerät verwendet werden kann bzw. darf. Das Programmcode-Freigabepaket 1 kann zudem verschiedene Varianten 2a.1, 2a.2, 2a.3, 2a.4 sowie 2b.1, 2b.2, 2b.3, 2b.4 der beiden Implementierungs-Programme 2a und 2b umfassen.
  • Erfindungsgemäß erfolgt eine automatische Überprüfung der Tauglichkeit der entsprechenden Implementierungs-Programme 2 für die Einbringung im Fahrzeug. Hierdurch lässt sich menschliches Versagen vermeiden, wodurch fälschlicherweise ein nicht zugelassenes Implementierungs-Programm 2 in das Fahrzeug eingebracht werden könnte. Der Einsatz von Informationstechnik, sprich einem Rechnersystem wie einem Computer und entsprechender Verwaltungssoftware, ermöglicht es, einen händischen Aufwand zur Überprüfung der Tauglichkeit der Einbringung entsprechen Programmcodes in das Fahrzeug zu reduzieren.
  • So werden in einem Verfahrensschritt 101 aus dem Programmcode-Freigabepaket 1 automatisiert Abhängigkeiten zwischen dem Implementierungs-Programm 2 und möglichen Programmkonfigurationen SW-C, Anwendungs-Programmen SW und/oder Hardwarekonfigurationen HW extrahiert. Hieraus wird beispielsweise ein fahrzeugbaureihenspezifisches Programmcode-Freigabepaket 7 erstellt.
  • In einem Verfahrensschritt 102 wird die Stückliste 5 mit dem baureihenspezifischen Programmcode-Freigabepaket 7 verglichen. Hierzu überprüft ein SAT-Löser die aus dem Programmcode-Freigabepaket 1 extrahierten Abhängigkeiten mit den für das entsprechend des Kundenwunsches konfigurierte Fahrzeug geltenden Abhängigkeiten, sprich, ob zumindest eins der vom fahrzeugbaureihenspezifischen Programmcode-Freigabepaket 7 umfassten Implementierungs-Programms 2 in dem nach dem Kundenwunsch konfigurierten Fahrzeug, also die für dieses Fahrzeug spezielle Kombination aus Hardwarekonfiguration HW, Anwendungs-Programmen SW und/oder Programmkonfigurationen SW-C eingesetzt werden darf. So umfassen die aus dem Programmcode-Freigabepaket 7 extrahierten Abhängigkeiten beispielsweise die genaue Bezeichnung einzelner Hardwarekomponenten, Programmbezeichnungen und/oder Programmkonfigurationen, die explizit im Fahrzeug vorhanden sein müssen oder explizit nicht vom Fahrzeug umfasst sein dürfen, damit eine Einbringung des Implementierungs-Programms erfolgen darf. Die entsprechenden Hardwarekomponenten, Programmbezeichnungen und/oder Programmkonfigurationen werden entsprechend aus der Stückliste 5 ausgelesen.
  • Stimmen sämtliche Abhängigkeiten überein, beziehungsweise kommt es zu keinem Konflikt, also weist das Fahrzeug beispielsweise ein Motorsteuergerät auf, für welches das Implementierungs-Programm 2 freigegeben ist oder weist das Fahrzeug kein solches Motorsteuergerät auf, für welches der Einsatz des Implementierungs-Programms 2 untersagt ist, so kann das Einbringen von Programmcode in das Fahrzeug im Verfahrensschritt 103 erfolgen und entsprechend das Fahrzeug gebaut werden. Weicht zumindest eine Abhängigkeit zwischen dem aus dem Programmcode-Freigabepaket 1 extrahierten Abhängigkeiten und den für das Kundenfahrzeug geltenden Abhängigkeiten ab, so ist im Verfahrensschritt 104 das Weiterentwickeln des Programmcode-Freigabepakts 1 und entsprechend des Programmcodes erforderlich bzw. das Anpassen der Variantendatenbank 4 bzw. der auf die Variantendatenbank 4 angewendeten Regeln 3 erforderlich. Das Anpassen der Variantendatenbank 4 bzw. der auf die Variantendatenbank 4 angewendeten Regeln ermöglicht, dass dem Kunden 6 nur solche Fahrzeugkonfigurationen zum Bestellen angezeigt werden, bei denen das Einbringen des Implementierungs-Programms 2 erlaubt ist.
  • Bei dem vom SAT-Löser lesbaren Format kann es sich beispielsweise um eine JSON-Datei handeln. In dieser Datei werden BOOLEAN-wertige Abhängigkeiten für die verschiedenen Hardwarekonfigurationen HW, Anwendungs-Programme SW und/oder Programmkonfiguration SW-C gespeichert. Beispielsweise kann eine solche JSON-Datei folgenden Inhalt aufweisen:
 { „constraint":
 { „type": „BOOLEAN_LOGICNG", "
 serializedConstraint": „(ECU_A_SwSachnummer+SwStand_Version1 & CarlineY) =>
 ~(ECU_A_Variante1 | ECU_A_Variante4)"
 }
 },
 { "constraint": {
 "type": „BOOLEAN_LOGICNG",
 "serializedConstraint": „(ECU_A_SwSachnummer+SwStand_Version1 & CarlineY) =>
 (ECU_A_Variante2 | ECU_A_Variante3)"
 } 
 }, {
 "constraint":
 {"type": „BOOLEAN_LOGICNG",
 „serializedConstraint": „(ECU_A_SwSachnummer+SwStand_Version1 & CarlineY) =>
 (ECU_B_SwSachnummer+SwStand_Version3)"
 }
 },
 { "constraint": {
 "type": „BOOLEAN_LOGICNG",
 "serializedConstraint": „(ECU_B_SwSachnummer+SwStand_Version3 & CarlineY) =>
 (ECU_A_SwSachnummer+SwStand_Version1)"
 }
 },
 { "constraint":
 { "type": „BOOLEAN_LOGICNG",
 "serializedConstraint": "(ECU_B_SwSachnummer+SwStand_Version3 & CarlineY) =>
 ~(ECU_B_Variante1)"
 }
 },
 { "constraint": {
 "type": „BOOLEAN_LOGICNG",
 "serializedConstraint": „(ECU_B_SwSachnummer+SwStand_Version3 & CarlineY) =>
 (ECU_B_Variante2 | ECU_B_Variante3)"
 }
  • Beispielsweise beschreibt die erste Abhängigkeit:
    • (ECU_A_SwSachnummer+SwStand_Version1 & CarlineY) => ~(ECU_A_Variante1 | ECU_A_Variante4) den Sachverhalt, dass für ein erstes Motorsteuergerät mit einem Steuerprogramm in der Softwareversion 1 und in der Fahrzeugbaureihe Y gilt, dass das erste Motorsteuergerät in einer ersten Variante und in einer vierten Variante nicht vorkommen darf.
  • Beispielsweise könnte ein Fahrzeugauftrag für die Produktion eines der Stückliste 5 entsprechenden Fahrzeugs folgendes ergeben:
    • • Motorsteuergerät 1: Sw-Sachnummer 2239020900, Sw-Stand 000200, Variante 2
    • • Motorsteuergerät 2: Sw-Sachnummer 2239020911, Sw-Stand 000110, Variante 3 Im Programmcode-Freigabepaket 1 steht folgendes:
      • • Motorsteuergerät 1: Sw-Sachnummer 2239020900, Variante 2 oder 3
      • • Motorsteuergerät 2: Sw-Sachnummer 2239020911, Variante 2 oder 3
  • Eine Auswertung durch den SAT-Solver liefert beispielsweise folgendes Ergebnis:
  •  Auswertung:
     "constraint": {
     "type": „BOOLEAN_LOGICNG",
     „serializedConstraint": „(ECU_A_SwSachnummer+SwStand_Version1 & CarlineY) =>
     ~(ECU_A_Variante1 | ECU_A_Variante4)"
     }
     }
     Ergebnis: TRUE
     {
     "constraint": {
     "type": „BOOLEAN_LOGICNG",
     "serializedConstraint": „(ECU_A_SwSachnummer+SwStand_Version1 & CarlineY) =>
     (ECU_A_Variante2 | ECU_A_Variante3)"
     }
     }
     Ergebnis: TRUE
     {
     "constraint": {
     "type": „BOOLEAN_LOGICNG",
     "serializedConstraint": „(ECU_A_SwSachnummer+SwStand_Version1 & CarlineY) =>
     (ECU_B_SwSachnummer+SwStand_Version3)"
     }
     }
     Ergebnis: TRUE
     {
     "constraint": {
     "type": „BOOLEAN_LOGICNG", 
    
     „serializedConstraint": "(ECU_B_SwSachnummer+SwStand_Version3 & CarlineY) =>
     (ECU_A_SwSachnummer+SwStand_Version1)"
     }
     }
     Ergebnis: TRUE
     {
     "constraint": {
     „type": „BOOLEAN_LOGICNG",
     „serializedConstraint": "(ECU_B_SwSachnummer+SwStand_Version3 & CarlineY) =>
     ~(ECU_B_Variante1)"
     }
     }
     Ergebnis: TRUE
     { "constraint": {
     „type": „BOOLEAN_LOGICNG",
     „serializedConstraint": „(ECU_B_SwSachnummer+SwStand_Version3 & CarlineY) =>
     (ECU_B_Variante2 | ECU_B_Variante3)"
     }
     }
     Ergebnis: TRUE
  • Entsprechend wird die Einbringung des Programmcodes in das Fahrzeug bewilligt.
  • Der Fahrzeugauftrag eines anderen Fahrzeugs liefert beispielsweise Folgendes:
    • • Motorsteuergerät 1: Sw-Sachnummer 2239021530, Sw-Stand 102000, Variante 2
    • • Motorsteuergerät 2: Sw-Sachnummer 2239020911, Sw-Stand 000110, Variante 3 Im Programmcode-Freigabepaket folgendes:
      • • Motorsteuergerät 1: Sw-Sachnummer 2239020900, Variante 2 oder 3
      • • Motorsteuergerät 2: Sw-Sachnummer 2239020911, Variante 2 oder 3
  • Eine Auswertung durch den SAT-Löser ergibt beispielsweise:
  •  "constraint": {
     "type": „BOOLEAN_LOGICNG", 
    
     „serializedConstraint": „(ECU_A_SwSachnummer+SwStand_Version1 & CarlineY) =>
     ~(ECU_A_Variante1 | ECU_A_Variante4)"
     }
     }
     Ergebnis: FALSE
  • Schon die erste Abhängigkeit des Programmcode-Freigabepakets 1 kann nicht befriedigt werden, da die Vorbedingung „ECU A SWSachnummer+SWStand Version 1“ nicht erfüllbar ist. Entsprechend darf der Programmcode nicht in das Fahrzeug eingebracht werden.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 2014/0324918 A1 [0004]

    Claims (7)

    1. Verfahren zur Bewilligung der Einbringung von Programmcode aus einem Programmcode-Freigabepaket (1) in eine Anwendungsumgebung, wobei die Einbringung bewilligt wird, wenn eine Erlaubnis zur Verwendung eines durch eine Ausführung des Programmcodes bereitgestellten Implementierungs-Programms (2) mit einer festgelegten Programmkonfiguration (SW-C) in der Anwendungsumgebung vorliegt, wobei die Erlaubnis zur Verwendung des Implementierungs-Programms (2) mit der festgelegten Programmkonfiguration (SW-C) in der Anwendungsumgebung in Abhängigkeit einer Konfiguration der Anwendungsumgebung bezüglich zumindest eines weiteren in der Anwendungsumgebung ausgeführten Anwendungs-Programms (SW) und/oder einer Hardwarekonfiguration (HW) der Anwendungsumgebung erteilt wird, wobei sich mögliche Konfigurationen der Anwendungsumgebung durch Anwendung von Regeln (3) auf eine verschiedene Anwendungs-Programme (SW) und/oder Hardwarekonfigurationen (HW) umfassende Variantendatenbank (4) ergeben und eine festgelegte Konfiguration der Anwendungsumgebung durch eine aus der Variantendatenbank (4) abgeleitete Stückliste (5) beschrieben wird, gekennzeichnet durch die folgenden Verfahrensschritte: - Automatisierte Extraktion von Abhängigkeiten zwischen dem Implementierungs-Programm (2) und möglichen Programmkonfigurationen (SW-C), Anwendungs-Programmen (SW) und/oder Hardwarekonfigurationen (HW) der Anwendungsumgebung, aus dem Programmcode-Freigabepaket (1) durch eine Recheneinheit; - Ablegen der aus dem Programmcode-Freigabepaket (1) extrahierten Abhängigkeiten in einem durch einen SAT-Löser verarbeitbaren Format durch die Recheneinheit; - Überprüfen einer Übereinstimmung der aus dem Programmcode-Freigabepaket (1) extrahierten Abhängigkeiten mit den für eine gemäß einer ersten Konfiguration konfigurierten Anwendungsumgebung geltenden Abhängigkeiten durch den SAT-Löser; und - Bewilligen der Einbringung des Programmcodes in die gemäß der ersten Konfiguration konfigurierte Anwendungsumgebung, wenn sämtliche aus dem Programmcode-Freigabepaket (1) extrahierten Abhängigkeiten mit den für die gemäß der ersten Konfiguration konfigurierte Anwendungsumgebung geltenden Abhängigkeiten übereinstimmen.
    2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass ein Fahrzeug als Anwendungsumgebung verwendet wird.
    3. Verfahren nach Anspruch 2, dadurch gekennzeichnet, dass ein Steuerungsprogramm für ein Fahrzeugsteuergerät als Implementierungs-Programm (2) verwendet wird.
    4. Verfahren nach Anspruch 3, dadurch gekennzeichnet, dass ein Motorsteuergerät als Fahrzeugsteuergerät verwendet wird.
    5. Verfahren nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, dass zur Bestimmung einer Abhängigkeit zwischen dem Implementierungs-Programm (2) und möglichen Programmkonfigurationen (SW-C), Anwendungs-Programmen (SW) und/oder Hardwarekonfigurationen (HW) der Anwendungsumgebung zumindest eine der folgenden Größen berücksichtigt wird: - eine Ausführungsart zumindest einer in der Anwendungsumgebung eingesetzten Recheneinheit und/oder Hardwarekomponente; - eine Programmbezeichnung; - eine Programmversion; eine Programmversions-Variante; und/oder - eine Produktlinie eines die Anwendungsumgebung repräsentierenden Produkts.
    6. Verfahren nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, dass bei nichtbewilligen der Einbringung des Programmcodes in die Anwendungsumgebung zumindest eine der folgenden Aktionen durchgeführt wird: - Erweiterung der vom Programmcode-Freigabepaket (1) umfassten Abhängigkeiten; und/oder - Überarbeiten der in der Variantendatenbank (4) gespeicherten möglichen Konfigurationen der Anwendungsumgebung und/oder der auf die Variantendatenbank (4) angewendeten Regeln zum Ableiten von Abhängigkeiten.
    7. informationstechnisches System, gekennzeichnet durch eine Einrichtung zur Durchführung eines Verfahrens nach einem der Ansprüche 1 bis 6.
    DE102021005309.5A 2021-10-26 2021-10-26 Verfahren zur Bewilligung der Einbringung von Programmcode aus einem Programmcode-Freigabepaket in eine Anwendungsumgebung und informationstechnisches System Pending DE102021005309A1 (de)

    Priority Applications (1)

    Application Number Priority Date Filing Date Title
    DE102021005309.5A DE102021005309A1 (de) 2021-10-26 2021-10-26 Verfahren zur Bewilligung der Einbringung von Programmcode aus einem Programmcode-Freigabepaket in eine Anwendungsumgebung und informationstechnisches System

    Applications Claiming Priority (1)

    Application Number Priority Date Filing Date Title
    DE102021005309.5A DE102021005309A1 (de) 2021-10-26 2021-10-26 Verfahren zur Bewilligung der Einbringung von Programmcode aus einem Programmcode-Freigabepaket in eine Anwendungsumgebung und informationstechnisches System

    Publications (1)

    Publication Number Publication Date
    DE102021005309A1 true DE102021005309A1 (de) 2023-04-27

    Family

    ID=85796204

    Family Applications (1)

    Application Number Title Priority Date Filing Date
    DE102021005309.5A Pending DE102021005309A1 (de) 2021-10-26 2021-10-26 Verfahren zur Bewilligung der Einbringung von Programmcode aus einem Programmcode-Freigabepaket in eine Anwendungsumgebung und informationstechnisches System

    Country Status (1)

    Country Link
    DE (1) DE102021005309A1 (de)

    Citations (1)

    * Cited by examiner, † Cited by third party
    Publication number Priority date Publication date Assignee Title
    US20140324918A1 (en) 2013-04-29 2014-10-30 Siemens Aktiengesellschaft Database Generation System, Method For Generating A Database, Product Line Management System And Non-Transitory Data Carrier

    Patent Citations (1)

    * Cited by examiner, † Cited by third party
    Publication number Priority date Publication date Assignee Title
    US20140324918A1 (en) 2013-04-29 2014-10-30 Siemens Aktiengesellschaft Database Generation System, Method For Generating A Database, Product Line Management System And Non-Transitory Data Carrier

    Non-Patent Citations (3)

    * Cited by examiner, † Cited by third party
    Title
    Knowledge-based configuration. In: Wikipedia, the free encyclopedia. Bearbeitungsstand: 29.12.2020. URL: https://en.wikipedia.org/w/index.php?title=Knowledge-based_configuration&oldid=997038326 [abgerufen am 13.06.2022]
    Paketverwaltung. In: Wikipedia, die freie Enzyklopädie. Bearbeitungsstand: 10.07.2021. URL: https://de.wikipedia.org/w/index.php?title=Paketverwaltung&oldid=213719135 [abgerufen am 13.06.2022]
    ZYpp. In: Wikipedia, the free encyclopedia. Bearbeitungsstand: 29.03.2021. URL: https://en.wikipedia.org/w/index.php?title=ZYpp&oldid=1014905844 [abgerufen am 13.06.2022]

    Similar Documents

    Publication Publication Date Title
    DE102005026040B4 (de) Parametrierung eines Simulations-Arbeitsmodells
    DE102011011951A1 (de) Anforderungsgetriebener Merkmalsentwicklungsprozess
    EP2869145B1 (de) Verfahren zur Beeinflussung eines Steuerprogramms eines Steuergerätes
    WO2019211122A1 (de) Feature-development-framework und feature-integration-framework zum implementieren physikalischer funktionsfeatures in einem zielgerät
    DE102011012068A1 (de) Begriffsverwaltungssystem (tms)
    DE102011006000B4 (de) Signaturaktualisierung durch Codetransformation
    DE102021005309A1 (de) Verfahren zur Bewilligung der Einbringung von Programmcode aus einem Programmcode-Freigabepaket in eine Anwendungsumgebung und informationstechnisches System
    DE102020204714A1 (de) Verfahren und Vorrichtung zum Prüfen der Kompatibilität zwischen einer Anwendungssoftware und einer mobilen Arbeitsmaschine
    EP3617912A1 (de) Verfahren und vorrichtung zum rechnergestützten generieren einer komponente für ein technisches system
    WO2022253537A1 (de) Verfahren und system zum erkennen und beseitigen von schwachstellen in einzelnen dateisystemschichten eines container-images
    EP3783493A1 (de) Verfahren zum testen eines systems auf eine anforderung
    WO2023169808A1 (de) Verfahren zur dokumentation einer typkonfiguration für eine recheneinrichtung, computerprogramm sowie datenträger
    DE102010014720A1 (de) Verfahren zum Verifizieren eines aus einem Quellmodell generierten Zielprogramms
    WO2022117306A1 (de) Verfahren zum bereitstellen von programmdaten aus einer datenbank
    DE102020107141B4 (de) Simulieren einer Steuergerätekommunikation zwischen einem zu testenden Steuergerät und mindestens einem weiteren Steuergerät
    DE102020118479A1 (de) Verfahren zum Ermöglichen einer automatischen Evaluierung eines aktuellen Software-Sicherheitsstatus und Datenverarbeitungseinrichtung
    DE102021003842A1 (de) Verfahren zum Erstellen eines Konfigurationsdatensatzes für ein Kraftfahrzeug mittels einer elektronischen Recheneinrichtung, sowie elektronische Recheneinrichtung
    DE102023107067A1 (de) Computerimplementiertes Verfahren zum Absichern eines ein Fahrzeug und/oder ein System des Fahrzeugs repräsentierenden Signalnetzwerkes, Computerprogramm und/oder computerlesbares Medium und Datenverarbeitungsvorrichtung
    DE102021102460A1 (de) Verfahren zur Durchführung einer Simulation
    DE102021211620A1 (de) Verfahren und System zur automatischen Erzeugung eines eingebetteten Quellcodes für die elektronische Steuereinheit eines AD/ADAS-Strassenfahrzeugs
    DE102022134027A1 (de) Computer-implementiertes Verfahren zum Bestimmen Algorithmusversions-kompatibler Test- und/oder Simulationsdaten und entsprechendes System
    DE102022208030A1 (de) Verfahren zum kollaborativen Erstellen eines Softwareprodukts und Verfahren zur Reaktion auf einen Fehler
    DE102021213650A1 (de) Verfahren zum Verarbeiten von Geometriedaten, Computerprogrammprodukt sowie System zum Verarbeiten von Geometriedaten
    DE102022112141A1 (de) Verfahren zur Erstellung eines vereinfachten virtuellen Steuergeräts
    DE102020006031A1 (de) Verfahren zum Erzeugen einer Softwarekomponente für eine elektronische Recheneinrichtung eines Kraftfahrzeugs, Computerprogrammprodukt, computerlesbares Speichermedium sowie kraftfahrzeugexternes Aktualisierungssystem

    Legal Events

    Date Code Title Description
    R012 Request for examination validly filed
    R079 Amendment of ipc main class

    Free format text: PREVIOUS MAIN CLASS: G06F0008700000

    Ipc: G06F0021100000

    R081 Change of applicant/patentee

    Owner name: MERCEDES-BENZ GROUP AG, DE

    Free format text: FORMER OWNER: DAIMLER AG, STUTTGART, DE

    R016 Response to examination communication