DE102022208030A1 - Method for collaboratively creating a software product and method for responding to an error - Google Patents

Method for collaboratively creating a software product and method for responding to an error Download PDF

Info

Publication number
DE102022208030A1
DE102022208030A1 DE102022208030.0A DE102022208030A DE102022208030A1 DE 102022208030 A1 DE102022208030 A1 DE 102022208030A1 DE 102022208030 A DE102022208030 A DE 102022208030A DE 102022208030 A1 DE102022208030 A1 DE 102022208030A1
Authority
DE
Germany
Prior art keywords
metadata
error
component
software product
developer
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
DE102022208030.0A
Other languages
German (de)
Inventor
Konrad Hilarius
Michael Bayer
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.)
Continental Automotive Technologies GmbH
Original Assignee
Continental Automotive Technologies GmbH
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 Continental Automotive Technologies GmbH filed Critical Continental Automotive Technologies GmbH
Priority to DE102022208030.0A priority Critical patent/DE102022208030A1/en
Publication of DE102022208030A1 publication Critical patent/DE102022208030A1/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/33Intelligent editors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Abstract

Die Erfindung betrifft ein Verfahren zum kollaborativen Erstellen eines Softwareprodukts für ein Kraftfahrzeug mittels einer Entwicklungsumgebung durch mehrere Entwickler, wobei zusätzlich zu Programmcode Metadaten bereitgestellt und in eine Integrationsdatenbank gespeichert werden. Die Erfindung betrifft des Weiteren ein zugehöriges Verfahren zur Reaktion auf einen Fehler in einem Softwareprodukt eines Kraftfahrzeugs.The invention relates to a method for collaboratively creating a software product for a motor vehicle using a development environment by several developers, with metadata being provided in addition to program code and stored in an integration database. The invention further relates to an associated method for responding to an error in a software product of a motor vehicle.

Description

Die Erfindung betrifft ein Verfahren zum kollaborativen Erstellen eines Softwareprodukts für ein Kraftfahrzeug sowie ein zugehöriges Verfahren zur Reaktion auf einen Fehler in einem Softwareprodukt eines Kraftfahrzeugs.The invention relates to a method for collaboratively creating a software product for a motor vehicle and an associated method for responding to an error in a software product of a motor vehicle.

Es ist grundsätzlich aus dem Stand der Technik bekannt, gemeinsame Entwicklungsplattformen zur Entwicklung von Softwaresystemen zu verwenden, bei denen mehrere Parteien zu einem gemeinsamen Produkt beitragen. Häufig wird dabei der Sourcecode nicht übermittelt, um darin verborgene Technologie zu schützen. Vielmehr wird lediglich ein Kompilat der Software übermittelt. Die einzelnen Kompilate werden dann zu einem gemeinsamen Softwaresystem zusammengeführt. Nach der Integration werden typischerweise Tests durchgeführt. Fehler, welche dabei gefunden werden oder später im Feld auftreten, werden häufig identifiziert und einer Komponente zugeordnet.It is generally known from the prior art to use common development platforms to develop software systems in which several parties contribute to a common product. The source code is often not transmitted in order to protect the technology hidden therein. Rather, only a compilation of the software is transmitted. The individual compiles are then merged into a common software system. After integration, testing is typically carried out. Errors that are found or occur later in the field are often identified and assigned to a component.

Beispielsweise offenbart das Dokument US 2017/0371731 A1 ein Verfahren zur Erzeugung eines Crash Dumps und Veröffentlichung des Dumps in einem Partnerportal. Dadurch kann die Fehleranalyse erleichtert werden.For example, the document discloses US 2017/0371731 A1 a procedure for generating a crash dump and publishing the dump in a partner portal. This can make error analysis easier.

Bekannte Verfahren haben sich jedoch als fehleranfällig und zeitintensiv herausgestellt, da die einzelnen Kompilate einzeln und manuell untersucht werden müssen. Häufig werden diese in getrennten Umgebungen entwickelt.However, known methods have proven to be error-prone and time-consuming because the individual compiles have to be examined individually and manually. These are often developed in separate environments.

Es ist deshalb eine Aufgabe der Erfindung, Verfahren bereitzustellen, welche das Erstellen eines Softwareprodukts sowie eine zugehörige Reaktion auf einen erkannten Fehler alternativ oder einfacher ausführen. Dies wird erfindungsgemäß durch Verfahren gemäß den jeweiligen Hauptansprüchen erreicht. Vorteilhafte Ausgestaltungen können beispielsweise den jeweiligen Unteransprüchen entnommen werden. Der Inhalt der Ansprüche wird durch ausdrückliche Inbezugnahme zum Inhalt der Beschreibung gemacht.It is therefore an object of the invention to provide methods which alternatively or more simply carry out the creation of a software product and an associated reaction to a detected error. This is achieved according to the invention by methods according to the respective main claims. Advantageous refinements can be found, for example, in the respective subclaims. The content of the claims is made the content of the description by express reference.

Die Erfindung betrifft ein Verfahren zum kollaborativen Erstellen eines Softwareprodukts für ein Kraftfahrzeug mittels einer Entwicklungsumgebung durch mehrere Entwickler. Die Entwickler haben einen jeweiligen separaten Zugang zur Entwicklungsumgebung. Das Verfahren weist für eine jeweilige von einem Entwickler hinzuzufügende Komponente folgende Schritte auf:

  • - Bereitstellen eines Sourcecodes der Komponente,
  • - Kompilieren des Sourcecodes mittels eines Kompilers, dabei Erstellen von Programmcode,
  • - Erstellen von Metadaten zum Programmcode,
  • - Schreiben von Metadaten in eine Integrationsdatenbank, und
  • - Hinzufügen des Programmcodes zum Softwareprodukt.
The invention relates to a method for collaboratively creating a software product for a motor vehicle using a development environment by several developers. The developers have separate access to the development environment. The process has the following steps for each component to be added by a developer:
  • - Providing source code for the component,
  • - Compiling the source code using a compiler, thereby creating program code,
  • - Creating metadata for the program code,
  • - Writing metadata to an integration database, and
  • - Adding the program code to the software product.

Mittels eines solchen Verfahrens können zusätzlich zu dem Programmcode, welcher typischerweise die auszuführende Funktionalität beinhaltet, Metadaten erstellt und in einer Integrationsdatenbank abgespeichert werden. Diese Metadaten sind insbesondere Daten, welche den Überblick über die einzelnen Komponenten des Softwareprodukts erleichtern. Die Metadaten werden in einer zentralen Datenbank abgespeichert, nämlich der Integrationsdatenbank. Dort stehen sie auch anderen Entwicklern und/oder anderen Projektteilnehmern zur Verfügung, so dass sie zur Fehlersuche verwendet werden können, ohne eventuelle vertrauliche Informationen über im Programmcode enthaltene Funktionalität preiszugeben, so dass die Akzeptanz des Schreibens von Metadaten in eine Integrationsdatenbank durch die Entwickler erhöht wird.Using such a method, metadata can be created and stored in an integration database in addition to the program code, which typically contains the functionality to be executed. This metadata is in particular data that makes it easier to get an overview of the individual components of the software product. The metadata is stored in a central database, namely the integration database. There they are also available to other developers and/or other project participants so that they can be used for troubleshooting without revealing any confidential information about functionality contained in the program code, thereby increasing the acceptance of writing metadata to an integration database by developers .

Unter einem Entwickler wird insbesondere ein Unternehmen oder eine Person verstanden, wobei typischerweise jeder Entwickler einen oder mehrere Programmcodes liefert, welche zusammen das Softwareprodukt ergeben. Zwischen den Programmcodes können auch Abhängigkeiten entstehen. So können beispielsweise einzelne Programmcodes auf die Funktionen anderer Programmcodes zugreifen. Typischerweise stellt ein Programmcode eine oder mehrere Funktionalitäten zur Verfügung, welche im Rahmen des Softwareprodukts typischerweise jeweilige Teilaufgaben wahrnehmen.A developer is understood to mean in particular a company or a person, with each developer typically providing one or more program codes, which together result in the software product. Dependencies can also arise between the program codes. For example, individual program codes can access the functions of other program codes. Typically, a program code provides one or more functionalities that typically perform respective subtasks within the framework of the software product.

Das Softwareprodukt kann beispielsweise insgesamt eine bestimmte Funktionalität in einem Kraftfahrzeug ausführen, beispielsweise eine Sicherheitsfunktion, eine Fahrassistenzfunktion oder eine Komfortfunktion.For example, the software product as a whole can carry out a specific functionality in a motor vehicle, for example a safety function, a driving assistance function or a comfort function.

Ein Zugang zur Entwicklungsumgebung ist typischerweise so gestaltet, dass nur der jeweilige Entwickler Zugriff darauf hat. Dies kann beispielsweise durch eine Sicherung mittels eines Zugangs mit Benutzername und Kennwort erfolgen. Die Entwicklungsumgebung wird typischerweise zentral für alle Entwickler bereitgestellt. Sie kann beispielsweise auf einem zentralen Server oder einem Cloud-System laufen.Access to the development environment is typically designed so that only the respective developer has access to it. This can be done, for example, by securing access with a user name and password. The development environment is typically provided centrally for all developers. For example, it can run on a central server or a cloud system.

Der Sourcecode ist typischerweise in einer für Menschen lesbaren Sprache, beispielsweise einer Programmiersprache wie C++, geschrieben. Durch das Kompilieren des Sourcecodes mittels eines Kompilers wird daraus der Programmcode, welcher nur noch maschinenlesbar ist. Während aus dem Sourcecode Funktionen ersichtlich sind, welche eventuell vertrauliche Merkmale enthalten, sind derartige Funktionen aus dem Programmcode typischerweise nicht mehr ersichtlich.The source code is typically written in a human-readable language, such as a programming language such as C++. By compiling the source code using a compiler, it becomes the program code, which is only machine readable. While functions that may contain confidential features can be seen from the source code, such functions are typically no longer visible from the program code.

Der Schritt des Hinzufügens des Programmcodes zum Softwareprodukt wird typischerweise nicht vom Entwickler selbst, sondern automatisch und/oder von anderen Personen wie beispielsweise einem zentralen Projektteam durchgeführt. Das Verfahren kann auch so formuliert werden, dass der Schritt des Hinzufügens des Programmcodes zum Softwareprodukt nicht Bestandteil des Verfahrens ist.The step of adding the program code to the software product is typically not carried out by the developer himself, but automatically and/or by other people such as a central project team. The procedure can also be formulated in such a way that the step of adding the program code to the software product is not part of the procedure.

Nachfolgend werden unterschiedliche Möglichkeiten beschrieben, wie bzw. mit welchem Inhalt die Metadaten erstellt werden können. Diese können einzeln verwendet, oder auch untereinander kombiniert werden.Different options are described below as to how and with what content the metadata can be created. These can be used individually or combined with each other.

Die Metadaten können insbesondere ein Integrationsrezept aufweisen, wobei das Integrationsrezept insbesondere beim Kompilieren verwendete Parameter des Kompilers beinhalten kann. Derartige Parameter des Kompilers können beeinflussen, wie der Programmcode beim Kompilieren erzeugt wird. Dies kann insbesondere bedeuten, dass aus dem gleichen Sourcecode bei unterschiedlichen Parametern unterschiedlicher Programmcode erzeugt wird. Diese Parameter als Bestandteil der Metadaten werden somit vorteilhaft in der Integrationsdatenbank abgespeichert, so dass sie für den Fall zur Verfügung stehen, dass bei einer späteren Fehlersuche ein erneutes Kompilieren erforderlich wird. Der Kompiler kann dann mit den gleichen Parametern erneut betrieben werden.The metadata can in particular have an integration recipe, wherein the integration recipe can contain compiler parameters used in particular during compilation. Such compiler parameters can influence how the program code is generated during compilation. This can mean in particular that different program code is generated from the same source code with different parameters. These parameters, as part of the metadata, are thus advantageously stored in the integration database so that they are available in the event that recompilation becomes necessary during later troubleshooting. The compiler can then be operated again with the same parameters.

Bevorzugt werden die Metadaten ganz oder teilweise basierend auf dem Sourcecode erstellt. Dadurch können Informationen über den Sourcecode in die Metadaten eingehen, welche zum Identifizieren des Sourcecodes und seiner Eigenschaften dienen können. Trotzdem erlaubt die Verwendung der Metadaten die Sicherung von eventuell in dem Sourcecode enthaltenen vertraulichen Informationen.The metadata is preferably created in whole or in part based on the source code. This allows information about the source code to be included in the metadata, which can be used to identify the source code and its properties. Nevertheless, the use of the metadata allows the backup of any confidential information contained in the source code.

Die Metadaten können insbesondere Informationen über den Entwickler und/oder über die Komponente beinhalten. Dies erlaubt bei einer Fehlersuche einen unmittelbaren Rückschluss auf den jeweiligen Entwickler und/oder auf die jeweilige Komponente. Informationen über den Entwickler können beispielsweise Informationen über eine Firma des Entwicklers, eine verwendete Programmiersprache und/oder einen Erstellungszeitpunkt beinhalten.The metadata can in particular contain information about the developer and/or about the component. When troubleshooting, this allows an immediate conclusion to be drawn about the respective developer and/or the respective component. Information about the developer may include, for example, information about the developer's company, a programming language used and/or a creation time.

Die Metadaten können insbesondere eine Versionsnummer und/oder Kompatibilitätsinformationen beinhalten. Dies erlaubt eine unmittelbare Zuordnung von jeweiligen Versionen, wobei eine Versionsnummer typischerweise immer weiter nach oben gesetzt wird, und zwar jedes Mal, wenn eine Komponente überarbeitet wurde. Dies erlaubt einen Rückschluss auf die Funktionalität und eventuell bereits behobene Fehler. Kompatibilitätsinformationen können insbesondere angeben, welche anderen Funktionen zum Betrieb einer Komponente erforderlich sind und/oder mit welchen möglichen anderen Komponenten eine jeweilige Komponente nicht harmoniert.The metadata can in particular contain a version number and/or compatibility information. This allows an immediate assignment of respective versions, with a version number typically being set higher and higher each time a component has been revised. This allows conclusions to be drawn about the functionality and any errors that have already been fixed. Compatibility information can in particular indicate which other functions are required to operate a component and/or which possible other components a respective component does not harmonize with.

Die beschriebenen möglichen Bestandteile der Metadaten können beliebig untereinander kombiniert werden.The possible components of the metadata described can be combined with one another as desired.

Der Kompiler kann insbesondere Teil der Entwicklungsumgebung sein, welche auch die Zugänge bereitstellt. Dadurch kann ein gemeinsamer Kompiler verwendet werden, wodurch eventuelle Fehlerquellen aufgrund unterschiedlicher verwendeter Kompiler ausgeschlossen werden. Zudem erleichtert das Bereitstellen des Kompilers als Teil der Entwicklungsumgebung die Arbeit der Entwickler, da diese nicht einen jeweiligen separaten Kompiler verwenden müssen und ein gemeinsam verwalteter Kompiler zur Verfügung steht, was beispielsweise eine spätere erneute Kompilierung, welche im Rahmen einer Fehlersuche erforderlich sein kann, erleichtern kann.The compiler can in particular be part of the development environment, which also provides the access. This means that a common compiler can be used, which eliminates possible sources of error due to different compilers used. In addition, providing the compiler as part of the development environment makes the work of the developers easier, as they do not have to use a separate compiler and a jointly managed compiler is available, which, for example, makes later recompilation easier, which may be necessary as part of troubleshooting can.

Vorzugsweise wird der Sourcecode nicht dem Softwareprodukt hinzugefügt. Dadurch kann verhindert werden, dass im Sourcecode eventuell enthaltene vertrauliche Informationen durch ein Hinzufügen zum Softwareprodukt veröffentlicht werden. Es genügt, wenn der Programmcode dem Softwareprodukt hinzugefügt wird, um die gewünschte Funktionalität zu erreichen. Dies erhöht die Akzeptanz des Systems bei Entwicklern.Preferably the source code is not added to the software product. This can prevent any confidential information contained in the source code from being published by adding it to the software product. It is sufficient if the program code is added to the software product to achieve the desired functionality. This increases the acceptance of the system among developers.

Die Erfindung betrifft des Weiteren ein Verfahren zur Reaktion auf einen Fehler in einem Softwareprodukt eines Kraftfahrzeugs. Das Softwareprodukt wurde insbesondere mittels eines Verfahrens wie hierin beschrieben erstellt. Bezüglich dieses Verfahrens kann auf alle hierin beschriebenen Ausführungen und Varianten zurückgegriffen werden. Das Verfahren zur Reaktion weist insbesondere folgende Schritte auf:

  • - Erkennen des Fehlers,
  • - Ermitteln derjenigen Komponente, in welcher der Fehler aufgetreten ist,
  • - Auslesen von Metadaten der Komponente, und
  • - Bereitstellen der Metadaten an den Entwickler der Komponente.
The invention further relates to a method for responding to an error in a software product of a motor vehicle. The software product was created in particular using a method as described herein. With regard to this method, all versions and variants described herein can be used. The reaction process has the following steps in particular:
  • - recognizing the error,
  • - Determine the component in which the error occurred,
  • - Reading metadata of the component, and
  • - Providing the metadata to the developer of the component.

Mittels eines solchen Verfahrens kann eine Fehlersuche deutlich vereinfacht werden. Der Entwickler bekommt die Metadaten, welche unmittelbar insbesondere aus der Integrationsdatenbank ausgelesen werden können. Diese Integrationsdatenbank ist Teil der Entwicklungsumgebung, so dass die relevanten Informationen unmittelbar zur Verfügung stehen. Dies erleichtert die Fehlersuche erheblich.Using such a procedure, troubleshooting can be significantly simplified. The developer receives the metadata, which can be read directly from the integration database. This integration database is part of the development environment so that the relevant information is immediately available. This makes troubleshooting much easier.

Ein Fehler kann insbesondere dadurch erkannt werden, dass eine Funktion nicht wie erwartet ausgeführt wird. Beim Ermitteln einer Komponente, in welcher der Fehler aufgetreten ist, kann auf bekannte Ausführungen zurückgegriffen werden. Die Metadaten der Komponente können insbesondere aus der Integrationsdatenbank ausgelesen werden. Die Metadaten können insbesondere über den jeweiligen separaten Zugang dem Entwickler zur Verfügung gestellt werden.An error can be identified in particular if a function is not executed as expected. When determining a component in which the error occurred, known versions can be used. The component's metadata can in particular be read from the integration database. The metadata can be made available to the developer in particular via the respective separate access.

Im Fehlerfall stürzt typischerweise zunächst ein Programm ab, z.B. weil es außerhalb eines erlaubten Speicherbereichs zugreift. Ein Betriebssystem überwacht dies und bekommt den Fehlerfall mit. Das Betriebssystem kann das Programm beenden. Das Betriebssystem speichert dann beispielsweise den Fehlerfall-Systemzustand in Form eines „coredumps“ ab. Die Lokalisierung erfolgt dann wie in den folgenden Seiten beschrieben: Über die Integrationsdatenbank erfolgt eine automatische Anfrage eines kompatiblen Kompilats mit erweiterten Fehleranalysemöglichkeiten (Debug-Build, incl. Quellcode). Mittels bestehender Softwareprodukte kann aus dem coredump und dem Debug-Build gezeigt werden, unter welchen Umständen an welcher Code-Stelle der Fehler aufgetreten ist.In the event of an error, a program typically crashes first, e.g. because it accesses outside a permitted memory area. An operating system monitors this and notices an error. The operating system can terminate the program. The operating system then saves, for example, the error system state in the form of a “coredump”. The localization is then carried out as described on the following pages: An automatic request for a compatible compile with extended error analysis options (debug build, including source code) is made via the integration database. Using existing software products, the coredump and the debug build can be used to show under what circumstances and at which point in the code the error occurred.

Insbesondere kann zusätzlich eine Fehlerposition innerhalb der Komponente an den Entwickler bereitgestellt werden. Mittels einer solchen Fehlerposition kann die Fehlersuche weiter vereinfacht werden. Die Fehlerposition kann beispielsweise eine bestimmte Position innerhalb des Programmcodes und/oder innerhalb des Sourcecodes angeben.In particular, an error position within the component can also be provided to the developer. Using such an error position, troubleshooting can be further simplified. The error position can, for example, indicate a specific position within the program code and/or within the source code.

Insbesondere kann zusätzlich ein Core Dump der Komponente an den Entwickler bereitgestellt werden. Der Core Dump kann auch als Speicherabzug bezeichnet werden. Es handelt sich dabei insbesondere um einen konservierten Zustand des Speichers (Register, Stack, Teile des Arbeitsspeichers, ...) eines Rechners. Ein solcher wird typischerweise angelegt, wenn ein Programmfehler auftritt, um die Fehlersuche zu vereinfachen.In particular, a core dump of the component can also be provided to the developer. The core dump can also be called a memory dump. In particular, this is a preserved state of the memory (registers, stack, parts of the main memory, ...) of a computer. This is typically created when a program error occurs to simplify troubleshooting.

Die Entwicklungsumgebung kann insbesondere als gemeinsame Cloud-basierte Entwicklungsumgebung ausgeführt sein. Die Entwicklungsumgebung kann auch als Kollaborationsplattform bezeichnet werden. Die Entwicklungsumgebung kann insbesondere die folgenden Komponenten enthalten:

  • - Entwicklungsumgebung für die einzelnen Teilnehmer,
  • - Code-Verwaltung,
  • - Verwaltung von Zugriffsrechten,
  • - Build-System,
  • - Plattform-Komponenten (zum Beispiel Metainformationsstandards, Schnittstelle zur gemeinsamen Plattform des Build-Systems, Abhängigkeitsdatenbank).
The development environment can in particular be designed as a common cloud-based development environment. The development environment can also be referred to as a collaboration platform. The development environment may contain in particular the following components:
  • - Development environment for the individual participants,
  • - code management,
  • - Management of access rights,
  • - build system,
  • - Platform components (e.g. metainformation standards, interface to the common platform of the build system, dependency database).

In einem ersten Schritt kann sich beispielsweise ein Zulieferer auf der Entwicklungsumgebung anmelden und einen für sich abgeschotteten Bereich erstellen. In diesem Bereich können der Sourcecode und Methoden zur Erzeugung seines Kompilats vorhanden sein. Seine Entwicklungsergebnisse werden am Ende in die gemeinsame Entwicklungsumgebung übertragen.In a first step, for example, a supplier can log on to the development environment and create a separate area for themselves. The source code and methods for generating its compilation may be present in this area. At the end, its development results are transferred to the shared development environment.

Während der Integration kann das Lieferpaket in das Gesamtsoftwaresystem integriert werden. Dieses kann im Anschluss auf ein Fahrzeug (oder virtuelles Fahrzeug) geladen werden. Während des Betriebs können Fehler auftreten. Im Fehlerfall schreibt typischerweise das Softwaresystem einen Speicherabzug. Dieser kann in einer Datenbank innerhalb der Kollaborationsplattform gespeichert werden.During integration, the delivery package can be integrated into the overall software system. This can then be loaded onto a vehicle (or virtual vehicle). Errors may occur during operation. In the event of an error, the software system typically writes a memory dump. This can be stored in a database within the collaboration platform.

Mittels einer Abfrage der bereits erwähnten Integrationsdatenbank lässt sich für einen Speicherabzug über Softwarereleases hinweg eine eindeutige Identifizierung bis zur Binärdatei (über Hash-Summen) erreichen. Damit kann in einem geschützten Bereich (Trusted Environment) beim Zulieferer explizit der fehlerhafte Build mit erweiterten Debug-Informationen angefragt werden, so dass er dem automatischen Core-Dump-Analysesystem zugefügt werden kann.By querying the already mentioned integration database, a clear identification can be achieved down to the binary file (via hash sums) for a memory dump across software releases. This means that the incorrect build can be explicitly requested from the supplier in a protected area (trusted environment) with extended debug information so that it can be added to the automatic core dump analysis system.

Das Resultat ist ein bereits voranalysierter Bug Report, mit Informationen zur Komponente, Softwareversion, Build, Stacktrace, verursachende Source-Datei- und Zeile, Disassembly, Registerinformationen, etc.The result is an already pre-analyzed bug report, with information about the component, software version, build, stack trace, causing source file and line, disassembly, register information, etc.

Essenziell für diese Methode ist typischerweise eine definierte Integrationsschnittstelle, die den Austausch von Binärlieferungen ermöglicht. Diese Integrationsmetadaten können zum Beispiel in einem Rezept wie folgt definiert sein:

  • - Referenz zu einem Schnittstellen-Stand (API)
  • - Referenz zur Kompilerkonfiguration (Build-System)
  • - Referenz zu Release Build (ohne IP)
  • - Referenz zu Debug Build (mit IP).
Essential for this method is typically a defined integration interface that enables the exchange of binary deliveries. For example, this integration metadata can be defined in a recipe as follows:
  • - Reference to an interface version (API)
  • - Compiler configuration reference (build system)
  • - Reference to release build (without IP)
  • - Reference to Debug Build (with IP).

Optional:

  • - Referenz zur Tool-Umgebung, mit dem die Komponente gebaut wurde
  • - Referenz zu abhängigen Komponenten
  • - Information über die gelieferte Variante (falls relevant).
Optional:
  • - Reference to the tool environment with which the component was built
  • - Reference to dependent components
  • - Information about the variant delivered (if relevant).

Dadurch ergeben sich insbesondere die nachfolgend genannten Vorteile.This results in the following advantages in particular.

Da alle Teilnehmer in einer gemeinsamen Kollaborationsplattform arbeiten, wird im Fehlerfall automatisiert der Verursacher ermittelt und alle nötigen Informationen werden übermittelt. Durch die Übermittlung der Fehlerinformationen (Core Dump plus Metadaten) wird das automatisierte Zusammenführen des Ursprungs Binary/Software-Stand und Debug-Informationen (Debug-Build) ermöglicht. Damit kann der Ersteller der Software den Fehler bis zur relevanten Sourcecode-Zeile zurückführen.Since all participants work in a common collaboration platform, in the event of an error, the cause is automatically identified and all necessary information is transmitted. By transmitting the error information (core dump plus metadata), the automated merging of the original binary/software version and debug information (debug build) is possible. This allows the creator of the software to trace the error back to the relevant source code line.

Im Unterschied zu bekannten Ausführungen wird die IP (Sourcecode, Debug-Informationen) vor der Auslieferung entfernt und nur wirklich relevante Informationen für die Ausführung werden mitgegeben. Diese Informationen sowie Metainformationen aus der Integrationsdatenbank, aus welchen im Fehlerfall die Debug-Informationen reproduziert werden können, erlauben ein späteres Rückvollziehen eines Fehlerfalls über das Verfahren. Aus diesem Grund kann eine spätere Analyse am Core Dump trotzdem durchgeführt werden. Die generelle Analyse eines Core Dump beim Zulieferer der Software verläuft dann gleich.In contrast to known versions, the IP (source code, debug information) is removed before delivery and only really relevant information for the execution is included. This information as well as meta information from the integration database, from which the debug information can be reproduced in the event of an error, allows an error to be traced later using the procedure. For this reason, a later analysis can still be carried out on the core dump. The general analysis of a core dump at the software supplier then proceeds in the same way.

Wenn ein Fehler bei einem Softwareupgrade häufig auftritt, kann ein Rollback für alle Fahrzeuge mit der fehlerhaften Komponente ausgeführt werden.If a software upgrade error occurs frequently, all vehicles with the faulty component can be rolled back.

Wenn beispielsweise für eine neue Fahrzeuggeneration eine neue Softwareplattform entwickelt werden soll, bei der eine Vielzahl von Zulieferern Komponenten zuliefern, kann die hierin beschriebene Implementierung angewendet werden. Während der Entwicklung wird beispielsweise immer wieder ein letzter Softwarestand auf eine Flotte von Fahrzeugen appliziert. Im Betrieb des Fahrzeugs kann es zu einem Fehlerfall kommen und eine Komponente stoppt ihren Dienst. Der Fehler wird typischerweise erkannt und ihr entsprechender Core Dump wird erzeugt. Durch das hierin beschriebene Verfahren wird das Problem eindeutig und vollautomatisiert auf den Lieferanten der Software zurückgeführt und dieser hat alle Informationen, um den Fehler bis zur Source-Code-Zeile zurückführen zu können. Daher kann der Fehler schnell identifiziert und gefunden werden, obwohl der Sourcecode nicht für alle Teilnehmer einsichtig ist.For example, if a new software platform is to be developed for a new generation of vehicles in which a large number of suppliers supply components, the implementation described herein can be used. During development, for example, the latest software version is repeatedly applied to a fleet of vehicles. An error may occur during vehicle operation and a component may stop working. The error is typically detected and your corresponding core dump is generated. Through the procedure described here, the problem is clearly and fully automatically traced back to the software supplier, who has all the information to be able to trace the error back to the source code line. Therefore, the error can be identified and found quickly, even though the source code is not visible to all participants.

Durch die Identifizierung des genauen Fehler-Binaries (Core Dump plus Metadaten) kann die Software im Fahrzeug verändert werden. Es kann ein automatischer Austausch des Binaries auf eine andere Softwareversion erfolgen. Es kann eine Simulation der Anwendung zuerst in einem virtuellen Fahrzeug erfolgen, bevor sie in ein reales Fahrzeug überspielt wird.By identifying the exact error binary (core dump plus metadata), the software in the vehicle can be changed. The binary can be automatically replaced with another software version. The application can first be simulated in a virtual vehicle before it is transferred to a real vehicle.

Weitere Merkmale und Vorteile wird der Fachmann dem nachfolgend mit Bezug auf die beigefügte Zeichnung beschriebenen Ausführungsbeispiel entnehmen. Dabei zeigen:

  • 1: ein Ablaufdiagramm, und
  • 2: ein Diagramm zur Darstellung von Abhängigkeiten.
A person skilled in the art will find further features and advantages in the exemplary embodiment described below with reference to the accompanying drawing. Show:
  • 1 : a flowchart, and
  • 2 : a diagram to represent dependencies.

1 zeigt ein Ablaufdiagramm bei der Erstellung einer Komponente im Rahmen einer kollaborativen Softwareentwicklung. 1 shows a flowchart for creating a component as part of collaborative software development.

Im unteren Bereich sind dabei Tätigkeiten bei einem externen Zulieferer aufgeführt. Im oberen Bereich sind Tätigkeiten auf einer Kollaborationsplattform aufgeführt, welche auch als Entwicklungsumgebung bezeichnet werden kann.Activities at an external supplier are listed in the lower section. In the upper area, activities are listed on a collaboration platform, which can also be referred to as a development environment.

Zunächst stellt bei der dargestellten Ausführung ein Systemintegrator eine Anfrage an einen Zulieferer für eine neue Softwarelieferung, oder der Zulieferer übergibt eine neue Softwareversion. Der entwickelte Sourcecode wird dann zunächst kompiliert, wodurch vollständige Lieferpakete entstehen. Diese verbleiben beim Zulieferer und enthalten eventuell IP (Intellectual Property, geistiges Eigentum, welches typischerweise geheim gehalten werden soll, insbesondere solange sie noch nicht zum Patent angemeldet ist). Daraus wird anschließend ein Lieferpaket extrahiert, welches keine IP enthält. Das Lieferpaket passt zu einer vorab beispielsweise mit Tier 1 (direkter Zulieferer eines Herstellers von Endkundenprodukten)/OEM (Original Equipment Manufacturer) definierten Lieferstruktur, die zum Beispiel in Form eines Rezepts festgehalten werden kann. Es beinhaltet typischerweise keine Quelldateien, sondern nur kompilierte Binärdateien ohne Debug-Symbole. Dadurch wird die IP geschützt. Zusätzlich sind typischerweise integrationsrelevante Metadaten wie beispielsweise Version, Kompatibilitätsinformationen (zum Beispiel auf Binärebene), Variante(n) etc. erforderlich. Diese stehen ebenfalls im Rezept. Das Lieferpaket wird dann an die Kooperationsplattform geliefert. Dabei erfolgt die Lieferung sowohl an eine Integrations-Metadaten-Datenbank, welche auch als Integrationsdatenbank bezeichnet werden kann. In diese werden Metadaten geschrieben, wodurch beispielsweise ein kompletter Abhängigkeitsgraph des Gesamtsoftwaresystems und aller Komponenten entstehen kann. Referenzen zu allen Komponentenlieferungen und der darin enthaltenen Binärdateien (zum Beispiel in Form von Hash-Summen) können enthalten sein. Binärdateien, welche insbesondere Programmcode enthalten können, also aus Sourcecode kompilierten Programmcode, können insbesondere in einem Datenspeicher für Lieferpakete gespeichert werden. Diese können einer Integration zugeführt werden, wodurch ein Softwaresystempaket erstellt wird. Dieses enthält typischerweise alle relevanten, angefragten und/oder passenden Lieferpakete aller Zulieferer, welche zu einem Gesamtsoftwaresystem integriert werden können.First, in the embodiment shown, a system integrator makes a request to a supplier for a new software delivery, or the supplier delivers a new software version. The developed source code is then first compiled, creating complete delivery packages. These remain with the supplier and may contain IP (intellectual property, which should typically be kept secret, especially as long as it has not yet been registered for a patent). A delivery package is then extracted from this, which does not contain any IP. The delivery package fits a delivery structure defined in advance, for example with Tier 1 (direct supplier of a manufacturer of end customer products)/OEM (Original Equipment Manufacturer), which can be recorded, for example, in the form of a recipe. It typically does not contain any source files, just compiled binaries without debug symbols. This protects the IP. In addition, integration-relevant metadata such as version, compatibility information (e.g. at binary level), variant(s), etc. are typically required. These are also in the recipe. The delivery package is then delivered to the cooperation platform. The delivery takes place both to an integration metadata database, which is also referred to as an integration database can. Metadata is written into this, which can, for example, create a complete dependency graph of the entire software system and all components. References to all component deliveries and the binaries contained therein (for example in the form of hash sums) may be included. Binary files, which in particular can contain program code, i.e. program code compiled from source code, can be stored in particular in a data memory for delivery packages. These can be integrated, creating a software system package. This typically contains all relevant, requested and/or suitable delivery packages from all suppliers, which can be integrated into an overall software system.

Das Softwaresystempaket kann insbesondere auf ein Fahrzeug oder ein virtuelles Fahrzeug geladen werden. Im Fahrzeugbetrieb (virtuell in Kollaborationsplattform, zum Beispiel in einer emulierten Kollaborationsplattform, oder physisch beim OEM oder Endkunden) kann ein Fehler entstehen. Dabei kann ein Speicherabzug einer Komponente (Core Dump) erzeugt werden. Dieser kann in einem Datenspeicher für Speicherabzüge abgespeichert werden. Im Fehlerfall kann auch die Integrations-Metadaten-Datenbank abgefragt werden, wodurch Integrations-Metadaten erhalten werden. Dadurch kann das exakte Zulieferer-Build identifiziert werden, zum Beispiel über einen Binary Hash. Anschließend wird ein Debug Executable beim Zulieferer (Supplier) angefragt, was beispielsweise automatisch erfolgen kann. Die Integrationsmetadaten werden dabei bereitgestellt. Unter Berücksichtigung der vollständigen Lieferpakete wird ein Debug Build bzw. eine exakte Zulieferer-Binärdatei extrahiert, was zuliefererseitig erfolgen kann. Anschließend erfolgt eine Fehleridentifikation mittels automatischem Coredumpanalysesystem, insbesondere in einem vertrauenswürdigen Bereich (Trusted Bereich). Die Ausführung der Coredumpanalyse in einer sicheren „trusted zone“ der Kollaborationsplattform ist möglich, so dass keine vertraulichen Daten offengelegt werden. Alternativ kann ein Instanziieren eines Coredumpanalysesystem-Knotens in der Infrastruktur des Zulieferers erfolgen.The software system package can in particular be loaded onto a vehicle or a virtual vehicle. An error can occur during vehicle operation (virtually in a collaboration platform, for example in an emulated collaboration platform, or physically at the OEM or end customer). A memory dump of a component (core dump) can be created. This can be saved in a data storage for memory dumps. In the event of an error, the integration metadata database can also be queried, thereby obtaining integration metadata. This allows the exact supplier build to be identified, for example via a binary hash. A debug executable is then requested from the supplier, which can be done automatically, for example. The integration metadata is provided. Taking the complete delivery packages into account, a debug build or an exact supplier binary file is extracted, which can be done by the supplier. Error identification is then carried out using an automatic core dump analysis system, especially in a trustworthy area. It is possible to carry out the core dump analysis in a secure “trusted zone” of the collaboration platform so that no confidential data is disclosed. Alternatively, a core dump analysis system node can be instantiated in the supplier's infrastructure.

Anschließend kann ein voranalysierter Fehlerreport im Trusted Bereich automatisiert erstellt werden. Bei erfolgreicher Fehlersuche kann anschließend ein fehlerfreies Release erstellt werden.A pre-analyzed error report can then be created automatically in the trusted area. If the troubleshooting is successful, an error-free release can then be created.

2 zeigt diverse Abhängigkeiten, ausgehend von einem Integrationsrezept. Dabei sind gewisse Referenzen des Integrationsrezepts auf andere Komponenten angegeben. 2 shows various dependencies, starting from an integration recipe. Certain references of the integration recipe to other components are given.

Zentral vorgegeben ist eine Schnittstellendefinition, auf welche eine Referenz erfolgt. Teilweise zentral vorgegeben und teilweise verbleibend beim Zulieferer ist eine Tool Umgebung. Diese enthält insbesondere einen Kompiler, eine Version, Optimierungen, ein Buildsystem und eine Zielplattform. Das gleiche gilt für Kompiler Flags und/oder Varianten. Ein Sourcecode Management verbleibt grundsätzlich beim Zulieferer oder in einem separat zugänglichen Bereich der Kollaborationsplattform, so dass die ungewollte Offenlegung von vertraulichen Informationen verhindert wird. Ein Debug Build kann bei Bedarf automatisiert angefragt werden, um in einer Trusted Build Environment analysiert zu werden. Ein Integrationsrezept kann insbesondere Teil einer Lieferung sein, wobei das gleiche auch für einen Release Build ohne IP gilt.An interface definition is centrally specified and is referenced. A tool environment is partly specified centrally and partly remains with the supplier. This contains in particular a compiler, a version, optimizations, a build system and a target platform. The same applies to compiler flags and/or variants. Source code management generally remains with the supplier or in a separately accessible area of the collaboration platform, so that the unwanted disclosure of confidential information is prevented. If necessary, a debug build can be requested automatically to be analyzed in a trusted build environment. In particular, an integration recipe can be part of a delivery, although the same also applies to a release build without IP.

Erwähnte Schritte des erfindungsgemäßen Verfahrens können in der angegebenen Reihenfolge ausgeführt werden. Sie können jedoch auch in einer anderen Reihenfolge ausgeführt werden, soweit dies technisch sinnvoll ist. Das erfindungsgemäße Verfahren kann in einer seiner Ausführungen, beispielsweise mit einer bestimmten Zusammenstellung von Schritten, in der Weise ausgeführt werden, dass keine weiteren Schritte ausgeführt werden. Es können jedoch grundsätzlich auch weitere Schritte ausgeführt werden, auch solche welche nicht erwähnt sind.Mentioned steps of the method according to the invention can be carried out in the order specified. However, they can also be executed in a different order if this makes technical sense. The method according to the invention can be carried out in one of its embodiments, for example with a specific combination of steps, in such a way that no further steps are carried out. However, in principle, further steps can also be carried out, including those not mentioned.

Es sei darauf hingewiesen, dass in den Ansprüchen und in der Beschreibung Merkmale in Kombination beschrieben sein können, beispielsweise um das Verständnis zu erleichtern, obwohl diese auch separat voneinander verwendet werden können. Der Fachmann erkennt, dass solche Merkmale auch unabhängig voneinander mit anderen Merkmalen oder Merkmalskombinationen kombiniert werden können.It should be noted that in the claims and the description features may be described in combination, for example to facilitate understanding, although they may also be used separately. The person skilled in the art will recognize that such features can also be combined independently of one another with other features or combinations of features.

Rückbezüge in Unteransprüchen können bevorzugte Kombinationen der jeweiligen Merkmale kennzeichnen, schließen jedoch andere Merkmalskombinationen nicht aus.References in subclaims can indicate preferred combinations of the respective features, but do not exclude other combinations of features.

ZITATE ENTHALTEN IN DER BESCHREIBUNGQUOTES INCLUDED IN THE DESCRIPTION

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.This list of documents listed by the applicant was generated automatically and is included solely for the better information of the reader. The list is not part of the German patent or utility model application. The DPMA assumes no liability for any errors or omissions.

Zitierte PatentliteraturCited patent literature

  • US 20170371731 A1 [0003]US 20170371731 A1 [0003]

Claims (10)

Verfahren zum kollaborativen Erstellen eines Softwareprodukts für ein Kraftfahrzeug mittels einer Entwicklungsumgebung durch mehrere Entwickler, welche einen jeweiligen separaten Zugang zur Entwicklungsumgebung haben, wobei das Verfahren für eine jeweilige von einem Entwickler hinzuzufügende Komponente folgende Schritte aufweist: - Bereitstellen eines Sourcecodes der Komponente, - Kompilieren des Sourcecodes mittels eines Kompilers, dabei Erstellen von Programmcode, - Erstellen von Metadaten zum Programmcode, - Schreiben der Metadaten in eine Integrationsdatenbank, und - Hinzufügen des Programmcodes zum Softwareprodukt.Method for collaboratively creating a software product for a motor vehicle using a development environment by several developers who each have separate access to the development environment, the method having the following steps for a respective component to be added by a developer: - Providing source code for the component, - Compiling the source code using a compiler, thereby creating program code, - Creating metadata for the program code, - Writing the metadata to an integration database, and - Adding the program code to the software product. Verfahren nach Anspruch 1, - wobei die Metadaten ein Integrationsrezept aufweisen, - wobei das Integrationsrezept beim Kompilieren verwendete Parameter des Kompilers beinhaltet.Procedure according to Claim 1 , - where the metadata has an integration recipe, - where the integration recipe includes parameters of the compiler used during compilation. Verfahren nach einem der vorhergehenden Ansprüche, - wobei die Metadaten ganz oder teilweise basierend auf dem Sourcecode erstellt werden.Method according to one of the preceding claims, - where the metadata is created in whole or in part based on the source code. Verfahren nach einem der vorhergehenden Ansprüche, - wobei die Metadaten Informationen über den Entwickler und/oder über die Komponente beinhalten.Method according to one of the preceding claims, - where the metadata contains information about the developer and/or about the component. Verfahren nach einem der vorhergehenden Ansprüche, - wobei die Metadaten eine Versionsnummer und/oder Kompatibilitätsinformationen beinhalten.Method according to one of the preceding claims, - where the metadata includes a version number and/or compatibility information. Verfahren nach einem der vorhergehenden Ansprüche, - wobei der Kompiler Teil der Entwicklungsumgebung ist, welche auch die Zugänge bereitstellt.Method according to one of the preceding claims, - where the compiler is part of the development environment, which also provides the access. Verfahren nach einem der vorhergehenden Ansprüche, - wobei der Sourcecode nicht dem Softwareprodukt hinzugefügt wird.Method according to one of the preceding claims, - whereby the source code is not added to the software product. Verfahren zur Reaktion auf einen Fehler in einem Softwareprodukt eines Kraftfahrzeugs, wobei das Softwareprodukt mittels eines Verfahrens nach einem der vorhergehenden Ansprüche erstellt wurde, wobei das Verfahren zur Reaktion folgende Schritte aufweist: - Erkennen des Fehlers, - Ermitteln derjenigen Komponente, in welcher der Fehler aufgetreten ist, - Auslesen von Metadaten der Komponente, und - Bereitstellen der Metadaten an den Entwickler der Komponente.Method for responding to an error in a software product of a motor vehicle, the software product being created using a method according to one of the preceding claims, the method for responding comprising the following steps: - recognizing the error, - Determine the component in which the error occurred, - Reading metadata of the component, and - Providing the metadata to the developer of the component. Verfahre nach Anspruch 8, - wobei ferner eine Fehlerposition innerhalb der Komponente an den Entwickler bereitgestellt wird.Follow the procedure Claim 8 , - further providing an error location within the component to the developer. Verfahren nach einem der Ansprüche 8 oder 9, - wobei ein Core-Dump der Komponente an den Entwickler bereitgestellt wird.Procedure according to one of the Claims 8 or 9 , - where a core dump of the component is provided to the developer.
DE102022208030.0A 2022-08-03 2022-08-03 Method for collaboratively creating a software product and method for responding to an error Pending DE102022208030A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102022208030.0A DE102022208030A1 (en) 2022-08-03 2022-08-03 Method for collaboratively creating a software product and method for responding to an error

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102022208030.0A DE102022208030A1 (en) 2022-08-03 2022-08-03 Method for collaboratively creating a software product and method for responding to an error

Publications (1)

Publication Number Publication Date
DE102022208030A1 true DE102022208030A1 (en) 2024-02-08

Family

ID=89575117

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102022208030.0A Pending DE102022208030A1 (en) 2022-08-03 2022-08-03 Method for collaboratively creating a software product and method for responding to an error

Country Status (1)

Country Link
DE (1) DE102022208030A1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170371731A1 (en) 2016-06-23 2017-12-28 Vmware, Inc. Culprit module detection and signature back trace generation
EP3336690A1 (en) 2016-12-13 2018-06-20 Palantir Technologies Inc. Extensible data transformation authoring and validation system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170371731A1 (en) 2016-06-23 2017-12-28 Vmware, Inc. Culprit module detection and signature back trace generation
EP3336690A1 (en) 2016-12-13 2018-06-20 Palantir Technologies Inc. Extensible data transformation authoring and validation system

Similar Documents

Publication Publication Date Title
DE60010420T2 (en) Automatic regression testing of workstation software
DE69932371T2 (en) Movable instrumentation tags for testing and troubleshooting a computer program
DE60130840T2 (en) Apparatus and method for cataloging symbolic data for use in performance analysis of computer programs
DE60021066T2 (en) Checking a software package
EP2069920A1 (en) Method for the computer-assisted analysis of a software source code
DE102008061480A1 (en) Method and apparatus for exchanging a component of a computer system
Langhammer Automated Coevolution of Source Code and Software Architecture Models
DE10119876A1 (en) Process system and computer program structure for processing job monitoring
DE202016008043U1 (en) Apparatus for creating, collecting, storing and loading debug information for failed test scripts
EP1701266A1 (en) Test apparatus for verification of a batch processing
DE102004025264A1 (en) Data processing device and method for restoring an operating state
EP2977888B1 (en) Method and system for storage and version management of computer programs
WO2009010338A1 (en) Method for the computer-assisted obfuscation of a software program and computer program product
DE102022208030A1 (en) Method for collaboratively creating a software product and method for responding to an error
EP2787437A1 (en) Method for checking and/or transforming a computer program with static functions of the first class
DE102021207872A1 (en) COMPOSITIONAL VERIFICATION OF EMBEDDED SOFTWARE SYSTEMS
Zirkelbach et al. On the Modularization of ExplorViz towards Collaborative Open Source Development
DE102020213809A1 (en) Method for operating a control device when testing software in the control device and method for operating a test computer when testing software in a control device
DE202012013449U1 (en) System for inline insertion of script dependencies
DE102008048862A1 (en) Test module and method for testing an O / R imaging middleware
Degutis How to speed up BDD automated acceptance testing for safety-critical systems
DE102008060440A1 (en) Device, particularly computer unit for providing requirement-conformal source code, has requirement analysis unit for analyzing specified functional or non-functional total requirement of source code
DE102017212612A1 (en) Method for automatically generating tests for the software of a vehicle
DE102021212597A1 (en) MEMORY USAGE-BASED FUZZING
DE102022211270A1 (en) Method for testing a computer program programmed in an object-oriented scripting language, as well as system, computer program and computer-readable storage medium

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R081 Change of applicant/patentee

Owner name: CONTINENTAL AUTOMOTIVE TECHNOLOGIES GMBH, DE

Free format text: FORMER OWNER: CONTINENTAL AUTOMOTIVE TECHNOLOGIES GMBH, 30165 HANNOVER, DE