DE102009054137A1 - Method for testing application utilized to develop functionalities of e.g. dynamic traction control of motor vehicle, involves considering characteristics of software components to simulate expected temporal characteristics of application - Google Patents

Method for testing application utilized to develop functionalities of e.g. dynamic traction control of motor vehicle, involves considering characteristics of software components to simulate expected temporal characteristics of application Download PDF

Info

Publication number
DE102009054137A1
DE102009054137A1 DE200910054137 DE102009054137A DE102009054137A1 DE 102009054137 A1 DE102009054137 A1 DE 102009054137A1 DE 200910054137 DE200910054137 DE 200910054137 DE 102009054137 A DE102009054137 A DE 102009054137A DE 102009054137 A1 DE102009054137 A1 DE 102009054137A1
Authority
DE
Germany
Prior art keywords
test
application
computing system
software components
execution
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
DE200910054137
Other languages
German (de)
Inventor
Martin Dr. Wechs
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Bayerische Motoren Werke AG
Original Assignee
Bayerische Motoren Werke AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Bayerische Motoren Werke AG filed Critical Bayerische Motoren Werke AG
Priority to DE200910054137 priority Critical patent/DE102009054137A1/en
Publication of DE102009054137A1 publication Critical patent/DE102009054137A1/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

The method involves executing functionalities of software components of an application in calculation units (ECU1-ECU9), and simultaneously executing a part of the software components as a test configuration in a test calculation system (TR). Temporal characteristics of the software components are considered in the calculation units for simulating expected temporal characteristics of the application in a distributed calculation system during execution of the software components, and the characteristics of the application are evaluated.

Description

Die Erfindung betrifft ein Verfahren zum Testen einer Applikation, die für die Ausführung in einem verteilten Rechensystem mit einer Anzahl an über ein Kommunikationsnetzwerk verbundenen Recheneinheiten bestimmt ist, wobei die Applikation aus einer Mehrzahl an Software-Komponenten mit einer jeweiligen Funktionalität gebildet ist, die zu deren Ausführung auf den Recheneinheiten des Rechensystems vorgesehen sind. Insbesondere betrifft die Erfindung ein Verfahren zum Testen einer Applikation für ein Fahrzeug, bei dem das verteilte Rechensystem eine Mehrzahl an kommunikativ miteinander verbundenen und als Steuergeräte bezeichnete Recheneinheiten umfasst.The invention relates to a method for testing an application, which is intended for execution in a distributed computing system with a number of connected via a communication network computing units, wherein the application is formed of a plurality of software components with a respective functionality that to their Execution are provided on the computing units of the computing system. In particular, the invention relates to a method for testing an application for a vehicle, in which the distributed computing system comprises a plurality of computing units that are communicatively connected to one another and designated as controllers.

Insbesondere bei der Entwicklung von Fahrzeugen besteht das Problem, dass eine Applikation, die sich aus einer Vielzahl an Software-Komponenten zusammensetzt, hinsichtlich des Zusammenwirkens der Vielzahl an Software-Komponenten in dem Rechensystem überprüft werden muss. Auf einer jeweiligen Recheneinheit des verteilten Rechensystems kann je nach Applikation eine Software-Komponente oder eine Mehrzahl an Software-Komponenten vorgesehen sein. Sind mehrere Software-Komponenten auf einer Recheneinheit angeordnet, so müssen sich diese bei ihrer Durchführung die zur Verfügung stehenden Hardware-Ressourcen teilen. Die Überprüfung umfasst zum einen eine Analyse der Performanz der Applikation und zum anderen eine Analyse hinsichtlich ihrer bestimmungsgemäßen Funktionalität. Die Überprüfung wird dadurch erschwert, dass die zur Ausführung der Applikation zum Einsatz kommenden Recheneinheiten sich hinsichtlich ihrer Hardware-Ressourcen stark unterscheiden können. Die Recheneinheiten unterscheiden sich z. B. hinsichtlich ihres Prozessors, des zur Verfügung stehenden Speichers, der Anbindung an ein Bussystem usw. Aufgrund dessen weisen die Recheneinheiten ein unterschiedliches Laufzeitverhalten auf.In particular, in the development of vehicles, the problem is that an application, which is composed of a variety of software components, must be checked with regard to the interaction of the plurality of software components in the computing system. Depending on the application, a software component or a plurality of software components may be provided on a respective computing unit of the distributed computing system. If several software components are arranged on one arithmetic unit, they must share the available hardware resources when they are executed. The review includes on the one hand an analysis of the performance of the application and on the other hand an analysis with regard to its intended functionality. The verification is made more difficult by the fact that the computing units used to execute the application can differ greatly in terms of their hardware resources. The computing units differ z. As regards their processor, the available memory, the connection to a bus system, etc. Due to this, the computing units have a different runtime behavior.

Im Rahmen des Entwicklungsprozesses eines Fahrzeugs sollen in das Fahrzeug zu integrierende Funktionen bereits in frühen Entwicklungsphasen modellbasiert, d. h. unter Verwendung von Simulationsverfahren, abgesichert werden. Ziel ist es hierbei, kostenintensive Integrationstests von Applikationen am realen Fahrzeug zu vermeiden. Die Integrationstests sollen durch den Einsatz von zur Verfügung stehenden Informationstechnologien und Testmethoden vollständig substituiert werden. Dabei sollen die Testverfahren möglichst nahe einen Integrationstest am realen Fahrzeug nachbilden. Aufgrund der immer weiter steigenden Komplexität der Fahrzeugelektrik und -elektronik müssen zur Wahrung der Vollständigkeit beim Testen einer Applikation überproportional viele Testfälle vorliegen und Abläufe simuliert werden. Dies hat zur Folge, dass der Testaufwand dabei analog zur Fahrzeugkomplexität exponentiell wächst. Es zeichnet sich bereits jetzt ab, dass für zukünftig zu entwickelnde Fahrzeuge die Integration von Applikationen nicht mehr manuell an einem Testfahrzeug durchgeführt werden kann.Within the scope of the development process of a vehicle, functions to be integrated into the vehicle are model-based already in early development phases, ie. H. using simulation methods. The aim here is to avoid expensive integration tests of applications on the real vehicle. The integration tests are to be completely substituted by the use of available information technologies and test methods. The test procedures should emulate an integration test on the real vehicle as closely as possible. Due to the ever-increasing complexity of vehicle electrics and electronics, a disproportionate number of test cases have to be available and procedures simulated to ensure completeness in the testing of an application. As a result, the test effort grows exponentially analogous to vehicle complexity. It is already becoming apparent that the integration of applications for vehicles to be developed in the future can no longer be carried out manually on a test vehicle.

Zum Testen der Applikation sind sog. nicht-echtzeitfähige Simulationsumgebungen bekannt, die durch Software-basierte Mechanismen Softwarekomponenten zur Simulation von Systemkomponenten integrieren und zueinander synchronisieren. Hierdurch soll das Verhalten des zu untersuchenden Rechensystems mit der darauf ablaufenden Applikation zeitkorrekt abgebildet werden.For testing the application, so-called non-real-time simulation environments are known, which integrate software components for the simulation of system components and synchronize with each other through software-based mechanisms. This is intended to map the behavior of the computing system to be examined with the application running thereon in a time-correct manner.

Es sind auch echtzeitfähige Kontrollsysteme bekannt, die es erlauben, dynamisch, d. h. während der Laufzeit, in Bibliotheken verwaltete Softwarekomponenten zu laden und miteinander zu verknüpfen. Derartige Kontrollsysteme erlauben eine Simulation auf einer fest vorgegebenen Hardware mit einer Ausführungseinheit als Test-Rechensystem.Real-time control systems are also known which allow dynamic, d. H. during runtime, load and link software components managed in libraries. Such control systems allow a simulation on a fixed hardware with an execution unit as a test computing system.

Darüber hinaus sind sog. IT-Applikationsserver bekannt, die es erlauben, Applikationen hardwareunabhängig in eine integrierte Betriebsumgebung per Skript einzubinden und dort vernetzt zur Ausführung zu bringen.In addition, so-called. IT application server are known, which allow applications to integrate hardware independent in an integrated operating environment via script and there networked to run.

Ferner bekannt sind sog. Hardware-in-the-Loop-Prüfstände, die durch Skripte reale Hardware stimulieren und damit reale Verhaltensszenarien simulieren.Also known are so-called hardware-in-the-loop test rigs that use scripts to stimulate real hardware and thus simulate real behavioral scenarios.

Nachteilig an den bekannten Verfahren zum Testen einer Applikation ist, dass die Überprüfung entweder nur mit einer speziellen Hardware, mit nicht integrierbaren Einzelmodulen oder mit nicht ausreichender Performanz, d. h. nicht in Echtzeit, realisierbar ist. Darüber hinaus sind die Ausführungszeiten bei einer Simulation um ein Vielfaches langsamer im Vergleich zu dem real eingesetzten Rechensystem. Dies hat zur Folge, dass eine zeitsynchrone Integration von Software-basierter Simulation und realen Hardwarekomponenten (d. h. Recheneinheiten) nicht möglich ist.A disadvantage of the known method for testing an application is that the check either only with a special hardware, with non-integrable single modules or with insufficient performance, d. H. not in real time, is feasible. In addition, the execution times in a simulation are many times slower compared to the real computing system used. As a result, a time-synchronized integration of software-based simulation and real hardware components (that is, computing units) is not possible.

Es ist daher Aufgabe der vorliegenden Erfindung, ein Verfahren anzugeben, mit dem der Test einer Applikation unter Einsatz von zur Verfügung stehender Informationstechnologie auf einfache und kostengünstige Weise realitätsnah durchgeführt werden kann.It is therefore an object of the present invention to specify a method with which the test of an application can be carried out realistically in a simple and cost-effective manner using information technology available.

Die Erfindung schafft ein Verfahren zum Testen einer Applikation, die für die Ausführung in einem verteilten Rechensystem, insbesondere einem Fahrzeug, mit einer Anzahl an über ein Kommunikationsnetzwerk verbundenen Recheneinheiten bestimmt ist. Dabei ist die Applikation aus einer Mehrzahl an Software-Komponenten mit einer jeweiligen Funktionalität gebildet, die zu deren Ausführung auf den Recheneinheiten des Rechensystems vorgesehen sind. Bei dem Verfahren wird zumindest ein Teil der Software-Komponenten der Applikation als Testkonfiguration auf einem Test-Rechensystem gleichzeitig zur Ausführung gebracht, wobei bei der Ausführung einer jeweiligen Software-Komponente deren zeitliches Verhalten auf der Recheneinheit, auf der die Software-Komponente ausgeführt werden soll, berücksichtigt wird, um das in dem verteilten Rechensystem erwartete zeitliche Verhalten der Applikation zu simulieren. Anschließend wird das Verhalten der Applikation ausgewertet.The invention provides a method for testing an application that is intended for execution in a distributed computing system, in particular a vehicle, having a number of computing units connected via a communication network. The application is from one Formed a plurality of software components with a respective functionality, which are provided for their execution on the computing units of the computing system. In the method, at least a portion of the software components of the application is executed simultaneously as a test configuration on a test computing system, wherein in the execution of a respective software component whose temporal behavior on the computing unit on which the software component is to be executed , is taken into account to simulate the expected temporal behavior of the application in the distributed computing system. Subsequently, the behavior of the application is evaluated.

Das erfindungsgemäße Verfahren ermöglicht eine zeitgetreue Abbildung des Verhaltens der zu testenden Applikation, wie sich diese später nach der Integration in das verteilte Rechensystem, beispielsweise eines Fahrzeugs, verhält. Hierdurch kann eine Absicherung von Systemkomponenten, welche die Applikation nutzen, schon in einer sehr frühen Phase realisiert werden, bevor die realen Recheneinheiten des Systems gegebenenfalls schon existieren. Die Integration von Teilsystemen der Applikation kann virtuell vorab der Realisierung in dem realen, verteilten Rechensystem getestet werden. Hiermit ist eine stark reduzierte Fahrzeug-Integrationsleistung verbunden, wodurch die Entwicklungszeit und die Entwicklungskosten für die Realisierung einer Applikation verringert werden können.The method according to the invention enables a timely depiction of the behavior of the application to be tested, as it later behaves after integration into the distributed computing system, for example a vehicle. As a result, a safeguard of system components that use the application can be realized already in a very early phase, before the real computing units of the system may already exist. The integration of subsystems of the application can be virtually tested in advance of the realization in the real, distributed computing system. This involves greatly reduced vehicle integration performance, which can reduce development time and development costs for implementing an application.

Gemäß einer zweckmäßigen Ausgestaltung umfasst der Ausführungscode einer jeweiligen Software-Komponente einen funktionalen Anteil, der die Struktur der Software-Komponenten für die Ausführung auf der realen Recheneinheit umfasst, und einen Anteil zur Bestimmung des Laufzeitverhaltens auf der realen Recheneinheit. Insbesondere wird im Ausführungscode einer jeweiligen Software-Komponente das zeitliche Verhalten der Recheneinheit, auf dem die Software-Komponente ausgeführt werden soll, integriert.According to an expedient embodiment, the execution code of a respective software component comprises a functional portion that includes the structure of the software components for execution on the real computing unit, and a portion for determining the runtime behavior on the real computing unit. In particular, the temporal behavior of the arithmetic unit on which the software component is to be executed is integrated in the execution code of a respective software component.

Ebenso kann das zeitliche Verhalten der Recheneinheit, auf dem die Software-Komponente ausgeführt werden soll, während der Ausführung der Software-Komponente ermittelt werden.Likewise, the temporal behavior of the arithmetic unit, on which the software component is to be executed, can be determined during the execution of the software component.

Zweckmäßigerweise wird das Test-Rechensystem mit einem Echtzeit-Betriebssystem betrieben. Beispielsweise kann als Echtzeit-Betriebssystem Linux oder eine Abwandlung davon zum Einsatz kommen, wodurch die Synchronität der Abläufe der Applikation bereitgestellt werden kann. Dadurch ist die Simulation einer Applikation mindestens in Echtzeit möglich. In einer Ausgestaltung ist dabei vorgesehen, dass das Echtzeit-Betriebssystem das Betriebssystem einer jeweiligen Recheneinheit des verteilten Rechensystems, auf dem die Applikation zum Einsatz kommen soll, emuliert. Das Echtzeit-Betriebssystem stellt daneben ein breites Spektrum an Entwicklungswerkzeugen bereit, die ein Entwickler oder Administrator im Rahmen des Tests der Applikation nutzen kann.Conveniently, the test computing system is operated with a real-time operating system. For example, as a real-time operating system Linux or a modification thereof can be used, whereby the synchronicity of the processes of the application can be provided. This makes it possible to simulate an application at least in real time. In one embodiment, it is provided that the real-time operating system emulates the operating system of a respective computing unit of the distributed computing system on which the application is to be used. The real-time operating system also provides a wide range of development tools that a developer or administrator can use to test the application.

Gemäß einer weiteren Ausgestaltung wird die Funktionalität einer jeweiligen Recheneinheit durch eine Task mit vorgegebener Zeitablaufsteuerung (Scheduling) logisch bereitgestellt, in welcher eine oder mehrere Software-Komponenten ausgeführt werden.According to a further embodiment, the functionality of a respective computing unit is provided logically by a task with a predetermined timing control (scheduling), in which one or more software components are executed.

Das Test-Rechensystem umfasst eine Anzahl an Testrechnern, welche im Falle mehrerer Testrechner über ein Kommunikationssystem miteinander verbunden sind, wobei auf einem jeweiligen Testrechner ein oder mehrere Tasks ausgeführt werden. Als Testrechner kann ein herkömmlicher PC verwendet werden. Der Einsatz von standardisierten Rechnern (PCs, Grafikkarten, Consumer-Electronic-Devices) ermöglicht die kostengünstige Bereitstellung von Rechenleistung. Durch ein Test-Rechensystem mit einer Mehrzahl an Testrechnern kann eine sehr viel größere Rechenleistung bereitgestellt werden im Vergleich zu der von herkömmlichen Fahrzeugprüfständen. Durch die prinzipiell wählbaren Rechenressourcen ist ein vollautomatisches Testen möglich, wodurch eine starke Reduktion der Gewährleistungskosten ermöglicht wird. Darüber hinaus ist eine gute Skalierbarkeit und kostengünstige Wartung durch einfaches Austauschen bzw. Erweitern einzelner Testrechnerin dem Test-Rechensystem sichergestellt.The test computing system comprises a number of test computers, which in the case of several test computers are connected to one another via a communication system, wherein one or more tasks are executed on a respective test computer. As a test computer, a conventional PC can be used. The use of standardized computers (PCs, graphic cards, consumer electronic devices) enables the cost-effective provision of computing power. By a test computing system with a plurality of test computers, a much greater computing power can be provided compared to that of conventional vehicle test benches. Due to the basically selectable computing resources, a fully automatic testing is possible, which enables a strong reduction of the warranty costs. In addition, good scalability and cost-effective maintenance is ensured by simply exchanging or extending individual test computer in the test computing system.

Gemäß einer weiteren Ausgestaltung wird das zeitliche Verhalten eines Kommunikationspfads des Rechensystems, über den zwei Software-Komponenten bei der Ausführung der Applikation Daten austauschen, als eigenständiges Software-Modul nachgebildet und im Rahmen des Tests auf dem Test-Rechensystem simuliert. Ein Kommunikationspfad kann beispielsweise ein Bus (z. B. gemäß Ethernet-Protokoll) sein. Ein Kommunikationspfad kann auch die lokale Kommunikation in einem Arbeitsspeicher der simulierten Recheneinheit betreffen. Hierdurch kann das tatsächliche zeitliche Verhalten der Applikation auf dem realen, verteilten Rechensystem mit weiter verbesserter Präzision nachgebildet werden.According to a further embodiment, the temporal behavior of a communication path of the computer system, via which two software components exchange data during the execution of the application, is simulated as an independent software module and simulated in the test on the test computer system. A communication path may be, for example, a bus (eg, in accordance with the Ethernet protocol). A communication path may also relate to the local communication in a main memory of the simulated arithmetic unit. In this way, the actual temporal behavior of the application on the real, distributed computing system can be modeled with further improved precision.

Eine weitere Ausgestaltung sieht vor, dass eine dynamische Integration einer jeweiligen Software-Komponente und/oder eines Software-Moduls in die Testkonfiguration des Test-Rechensystems erfolgt, wodurch unterschiedliche Applikationsumfänge der Applikation überprüfbar sind. Insbesondere ist der Verzicht auf eine Kompilierung zumindest mancher der Software-Komponenten der Applikation zur Durchführung eines Tests möglich. Hierdurch lässt sich der Entwicklungsprozess für softwareintensive Funktionen in dem verteilten Rechensystem effizient und insbesondere verteilt durchführen. Es ist eine wirkungsvolle Synchronisierung möglich. Hierdurch können beispielsweise Dritte technisch in den Entwicklungsprozess eingebunden werden. Eine Abnahme von zugelieferten Software-Komponenten kann in einer frühen Phase nach der Durchführung des erfindungsgemäßen Testverfahrens erfolgen. Das Verhalten einer zugelieferten Software-Komponente ist sowohl funktional als auch von seinem Ressourcenbedarf her präzise nachvollziehbar. Nachbesserungen sind auf einfache Weise möglich, teure Änderungen schon im Vorfeld vermeidbar.A further embodiment provides that a dynamic integration of a respective software component and / or a software module into the test configuration of the test computing system, whereby different application scopes of the application can be checked. In particular, the omission of compiling at least some of the software components of the application for performing a test is possible. This leaves The development process for software-intensive functions in the distributed computing system is efficient and especially distributed. An effective synchronization is possible. As a result, for example, third parties can be technically integrated into the development process. A decrease of supplied software components can be done in an early phase after the performance of the test method according to the invention. The behavior of a supplied software component is both functional and precisely traceable to its resource requirements. Improvements are possible in a simple way, expensive changes in advance can be avoided.

Zweckmäßigerweise wird für eine jeweilige Testkonfiguration ein Konfigurationsdatensatz erstellt, mit dem die Reihenfolge und die Laufzeiten der Softwarekomponenten einer betreffenden Testkonfiguration festgelegt werden, wobei der Konfigurationsdatensatz durch eine Ablaufsteuerung des Test-Rechensystems verarbeitet wird. Das zur Simulation verwendete Test-Rechensystem ist durch die Verwendung eines oder mehrerer Konfigurationsdatensätze entsprechend des zu simulierenden, verteilten Rechensystems auf einfache und präzise Weise kalibrierbar. Insbesondere ermöglicht es das erfindungsgemäße Verfahren, dass der Konfigurationsdatensatz zur Laufzeit des Tests Verändert wird. Hierdurch wird eine weitere Vereinfachung des Simulationsverfahrens ermöglicht, da im Rahmen eines Tests einzelne Komponenten durch Alternativen ersetzt werden können, ohne dass hierzu ein vollständiger Test neu durchgeführt werden müsste. Vielmehr kann hierdurch auf bereits ermittelte Testwerte zurückgegriffen werden, welche durch die veränderten Software-Komponenten dann weiterverarbeitet werden.A configuration data set is expediently created for a respective test configuration, with which the sequence and the transit times of the software components of a respective test configuration are determined, wherein the configuration data record is processed by a sequence control of the test computing system. The test computing system used for the simulation can be easily and accurately calibrated by using one or more configuration records corresponding to the distributed computing system being simulated. In particular, the method according to the invention makes it possible to modify the configuration data record at the runtime of the test. This allows a further simplification of the simulation method, since in the context of a test individual components can be replaced by alternatives, without the need for a complete test would have to be performed again. Rather, it is thereby possible to resort to already determined test values, which are then further processed by the modified software components.

Es ist weiterhin vorgesehen, dass in die Testumgebung ein Mittel zur technischen Überwachung von vorgegebenen Anforderungen integriert wird.It is further envisaged that a means for technical monitoring of given requirements will be integrated into the test environment.

Die Erfindung wird nachfolgend näher anhand eines Ausführungsbeispiels in der Zeichnung erläutert. Es zeigen:The invention will be explained in more detail below with reference to an embodiment in the drawing. Show it:

1 eine schematische Darstellung einer Zielsystem-abhängigen Synchronisation zweier Software-Komponenten, 1 a schematic representation of a target system-dependent synchronization of two software components,

2 einen schematischen Aufbau eines erfindungsgemäßen Test-Rechensystems zur Durchführung eines Verfahrens zum Testen einer Applikation, 2 a schematic structure of a test computing system according to the invention for carrying out a method for testing an application,

3 eine schematische Darstellung des Einsatzes einer sog. Integrationsschicht, 3 a schematic representation of the use of a so-called integration layer,

4 eine schematische Darstellung einer Zeitablaufsteuerung (Scheduling) vernetzter Steuergeräte, welche in Gestalt von Betriebssystemtasks nachgebildet werden, 4 a schematic representation of a timing control (scheduling) networked control devices, which are modeled in the form of operating system tasks,

5 ein schematisches Ablaufschema einer mehrere Software-Komponenten umfassenden Applikation, wobei eine zur Laufzeit durchgeführte Änderung eines Konfigurationsdatensatzes vorgenommen wird, 5 a schematic flow diagram of an application comprising several software components, wherein a modification of a configuration data record carried out at runtime is carried out,

6 eine schematische Darstellung der Infrastruktur zur Simulation und Absicherung von Elektrik/Elektronik-Systemen, wie diese zur Durchführung des erfindungsgemäßen Verfahrens eingesetzt wird, und 6 a schematic representation of the infrastructure for simulating and hedging electrical / electronic systems, as used for carrying out the method according to the invention, and

7 die schematische Darstellung einer Architektur eines erfindungsgemäßen Test-Rechensystems. 7 the schematic representation of an architecture of a test computing system according to the invention.

Im nachfolgenden Ausführungsbeispiel wird das Testen einer Applikation aus einer Mehrzahl an Software-Komponenten mit einer jeweiligen Funktionalität unter Bezugnahme auf die Anwendung in einem Fahrzeug erläutert. Prinzipiell ist das erfindungsgemäße Verfahren jedoch nicht auf solche Anwendungen mit Kraftfahrzeug-Bezug beschränkt, sondern für all diejenigen Anwendungen einsetzbar, die in einem verteilten Rechensystem ausgeführt werden sollen.In the following exemplary embodiment, the testing of an application from a plurality of software components with a respective functionality is explained with reference to the application in a vehicle. In principle, however, the method according to the invention is not limited to such applications relating to motor vehicles but can be used for all those applications which are to be carried out in a distributed computing system.

Ein verteiltes Rechensystem in einem Fahrzeug umfasst eine Anzahl an über ein Kommunikationsnetzwerk verbundene Recheneinheiten. Diese Recheneinheiten werden als Steuergeräte (sog. Electronic Control Units) bezeichnet. Das Kommunikationsnetzwerk umfasst alle Arten an Datenleitungen, wie z. B. Datenbusse. Auf den Steuergeräten sind jeweils ein oder mehrere Software-Komponenten gespeichert, welche durch jeweilige Prozessoren der Steuergeräte ausgeführt werden. Eine Mehrzahl an (verteilten) Software-Komponenten bildet eine Applikation, welche beispielsweise zur Ausbildung der Funktionalität einer dynamischen Traktionskontrolle oder eines elektronischen Stabilitätssystems und dergleichen vorgesehen ist. Zur Bereitstellung der Funktionalität der Applikation müssen beispielsweise von der Software-Komponente eines Steuergeräts Sensordaten, wie z. B. Raddrehzahlen, Geschwindigkeit, Beschleunigungen in Quer- und Längsrichtung, erfasst werden. Einer Software-Komponente eines anderen Steuergeräts werden diese Sensordaten zur Auswertung zugeführt. Ein oder mehrere Aktoren sind mit einem oder einem jeweiligen weiteren Steuergerät gekoppelt, wobei die darauf befindliche oder befindlichen Software-Komponenten abhängig vom Ergebnis der Auswertung einen oder mehrere der Aktoren ansteuern. Zur Bereitstellung der Funktionalität einer Applikation ist damit das Zusammenwirken einer Vielzahl von Software-Komponenten notwendig, welche sich auf einer Mehrzahl von Steuergeräten des verteilten Rechensystems befinden. Dabei können sich die von einem jeweiligen Steuergerät bereitgestellten Ressourcen (z. B. Prozessor, Speicher, angeschlossenes Bussystem) beträchtlich unterscheiden, so dass es zu einem unterschiedlichen Laufzeitverhalten bei der Ausführung der Software-Komponenten auf den unterschiedlichen Steuergeräten kommt. Zur Bereitstellung der gewünschten Funktionalität einer Applikation muss dieses unterschiedliche Verhalten der Steuergeräte berücksichtigt sein.A distributed computing system in a vehicle includes a number of computing units connected via a communications network. These arithmetic units are called control units (so-called Electronic Control Units). The communication network includes all types of data lines, such. B. data buses. One or more software components, which are executed by respective processors of the control devices, are respectively stored on the control devices. A plurality of (distributed) software components forms an application which is provided, for example, for forming the functionality of a dynamic traction control or an electronic stability system and the like. To provide the functionality of the application must, for example, from the software component of a control unit sensor data, such. As wheel speeds, speed, accelerations in the transverse and longitudinal directions are detected. A software component of another controller, these sensor data are supplied to the evaluation. One or more actuators are coupled to one or a respective further control unit, wherein the software components located or located thereon, depending on the result of the evaluation, actuate one or more of the actuators. To provide the functionality of an application is thus the Collaboration of a variety of software components necessary, which are located on a plurality of controllers of the distributed computing system. In this case, the resources provided by a respective control device (eg processor, memory, connected bus system) can differ considerably, so that different runtime behavior occurs during the execution of the software components on the different control devices. To provide the desired functionality of an application, this different behavior of the controllers must be taken into account.

Um ein realistisches Verhalten der Applikation beim Testen auf einem Test-Rechensystem zu erhalten, ist deshalb eine zeitgetreue Abbildung des Verhaltens der Applikation von Bedeutung. Da die Applikation, wie erläutert, auf verschiedensten Prozessorplattformen der Steuergeräte laufen muss und darauf abgestimmt unter anderen durch einen Compiler hochoptimiert ist, muss die Struktur der Zielapplikation, d. h. der finalen Applikation im Fahrzeug, in den Simulationsprozess mit einbezogen werden. Dazu wird der für die Zielarchitektur (das sog. Zielsystem oder die Zielplattform) des verteilten Rechensystems bestimmte Quellcode analysiert und in einen funktionalen Anteil und einen Anteil zur Bestimmung des Laufzeitverhaltens zerlegt und annotiert. Diese beiden Anteile werden für den Test der Applikation übersetzt und in einen sog. Integrationslayer, der nachfolgend erläutert werden wird, bei entsprechender Konfiguration einer Ablaufsteuerung eingebunden. Neben dem Berechnen von Abbildungsvorschriften erfolgt während der Laufzeit des Tests ein hochgenaues Abschätzen der Laufzeiten einer jeweiligen Software-Komponente, wie diese auf dem verteilten Rechensystem im Fahrzeug zu erwarten sind. Die berechneten Zeiten werden anschließend zur passenden Synchronisation der unterschiedlichen Software-Applikationen und der Verifikation von vorgegebenen Performanzanforderungen eingesetzt.In order to obtain a realistic behavior of the application when testing on a test computer system, a timely depiction of the behavior of the application is therefore important. Since the application, as explained, must run on the most diverse processor platforms of the control units and is highly optimized, among other things, by a compiler, the structure of the target application, i. H. the final application in the vehicle to be included in the simulation process. For this purpose, the source code determined for the target architecture (the so-called target system or the target platform) of the distributed computing system is analyzed and broken down into a functional component and a component for determining the runtime behavior and annotated. These two components are translated for the test of the application and integrated into a so-called integration layer, which will be explained below, with appropriate configuration of a sequence control. In addition to calculating mapping rules, a high-precision estimation of the running times of a respective software component, as can be expected on the distributed computing system in the vehicle, takes place during the runtime of the test. The calculated times are then used for the appropriate synchronization of the different software applications and the verification of given performance requirements.

1 zeigt dabei in schematischer Darstellung das hierbei verwendete Vorgehen. Mit R, E und W sind Berechnungsschritte, sog. Ticks, auf dem Test-Rechensystem dargestellt. Die Zeitdauer eines jeweiligen Berechnungsschritts hängt von der Leistungsfähigkeit des Test-Rechensystems bzw. eines Test-Rechners ab. R kennzeichnet einen Lesevorgang, E kennzeichnet ein Ausführen bzw. Verarbeiten eines oder mehrerer eingelesener Daten, W repräsentiert einen Schreibvorgang von Daten in einen Speicher. Eine erste Software-Applikation P1 umfasst beispielhaft drei Berechnungsschritte, in denen jeweils ein Verarbeiten von Daten folgt. Das Einlesen des oder der Daten im Berechnungsschritt R soll im Beispiel nicht Bestandteil der ersten Software-Applikation P1 sein. Eine zweite Software-Applikation P2 umfasst beispielhaft lediglich zwei Berechnungsschritte, in denen Daten verarbeitet werden, welche von der ersten Software-Komponente P1 bereitgestellt werden. An die Berechnungsschritte der zweiten Software-Komponente P2 schließt sich beispielhaft als abschließender Berechnungsschritt ein Schreibvorgang W an. 1 shows a schematic representation of the procedure used here. With R, E and W are calculation steps, so-called Ticks, shown on the test-computing system. The duration of a particular calculation step depends on the performance of the test computing system or a test computer. R indicates a read operation, E indicates a processing of one or more read data, W represents a write operation of data to a memory. A first software application P1 comprises by way of example three calculation steps, in each of which a processing of data follows. The reading of the data or data in the calculation step R should not be part of the first software application P1 in the example. A second software application P2 includes by way of example only two calculation steps in which data is processed, which are provided by the first software component P1. The calculation steps of the second software component P2 are followed, by way of example, as a final calculation step, by a write process W.

Würde die Software-Komponente P1 auf einem Steuergerät eines Fahrzeugs ausgeführt werden, so würde hierfür eine Zeit tRS benötigt werden. Da das Simulationsverfahren jedoch auf einem Test-Rechensystem ausgeführt wird, das im Vergleich zum Prozessor des Steuergeräts um den Faktor 2 bis 5 schneller ist, ist die Ausführung bereits nach einer im Vergleich kürzeren Zeitdauer tTR beendet. Die Ausführungszeiten der ersten Software-Komponente P1 in dem Test-Rechensystem und einem realen Steuergerät unterscheiden sich damit um die Zeitspanne Δtreal. Dieses Verhalten des Steuergeräts, auf dem die erste Software-Komponente P1 ausgeführt werden soll, wird daher bei der Simulation im Ausführungscode berücksichtigt. Dies bedeutet, die Ausführung der Software-Komponente P1 wird gezielt um Δtreal verzögert. In dem in der Figur gezeigten Ausführungsbeispiel endet tRS während des letzten Berechnungsschritts E. Es muss deshalb noch eine Zeitspanne tP gewartet werden, bis durch die zweite Software-Komponente P2 der nachfolgende Berechnungsschritt E ausgeführt werden kann. Die Einhaltung dieser „Pause” bis zum nächsten Berechnungsschritt ist notwendig, um die Synchronität der Software-Komponenten P1, P2 gewährleisten zu können. Der in 1 gezeigte Ablauf wird als Ausführungszyklus MiC bezeichnet, der die Ausführung gegebenenfalls mehrerer Software-Komponenten eines Steuergeräts umfasst. Die Verzögerung Δtreal kann wahlweise im Ausführungscode einer betreffenden Software-Komponente integriert sein. Die Verzögerung kann auch während der Ausführung der Software-Komponente ermittelt werden.If the software component P1 were to be executed on a control unit of a vehicle, a time t RS would be required for this purpose. However, since the simulation method is executed on a test computing system that is faster by a factor of 2 to 5 compared to the processor of the controller, the execution is already completed after a shorter compared to the time period t TR . The execution times of the first software component P1 in the test computing system and a real control device thus differ by the time period Δt real . This behavior of the controller on which the first software component P1 is to be executed is therefore taken into account in the simulation in the execution code. This means that the execution of the software component P1 is specifically delayed by Δt real . In the embodiment shown in the figure, t RS ends during the last calculation step E. It is therefore still necessary to wait a period of time t P until the subsequent calculation step E can be carried out by the second software component P2. Compliance with this "pause" until the next calculation step is necessary to ensure the synchronicity of the software components P1, P2. The in 1 shown sequence is referred to as execution cycle MiC, which includes the execution of possibly multiple software components of a controller. The delay Δt real may optionally be integrated in the execution code of a respective software component. The delay can also be determined during the execution of the software component.

Die Ausführungszeiten des annotierten Quellcodes einer jeweiligen Software-Komponente sollten im Vergleich zum Originalquellcode nicht mehr als doppelt so viel Zeit in Anspruch nehmen, was mit der wesentlich höheren Prozessorleistung des Test-Rechensystems im Vergleich zum Steuergerät ein durch die während der Laufzeit berechneten Synchronisation nahezu identisches Zeitverhalten von Simulation im Vergleich zum Zielsystem gewährleistet.The execution times of the annotated source code of a respective software component should take no more than twice as long compared to the original source code, which is almost identical to the much higher processor performance of the test computing system compared to the controller by the calculated during runtime synchronization Timing of simulation compared to the target system guaranteed.

Neben einer Abschätzung der Laufzeiten durch Quellcodeannotation kann in einem ähnlichen Verfahren auf Basis von Objektcode die Ausführungszeit ermittelt werden. Diese Variante hat den Vorteil, dass auch geschützte Software-Komponenten entsprechend dem Zielsystem analysiert werden können und gegebenenfalls über einen Emulator in das Test-Rechensystem integriert werden können. Insbesondere bietet sich hierbei die Möglichkeit, Dritte, wie z. B. Zulieferer, in den Entwicklungsprozess der Applikation mit einzubinden.In addition to an estimation of the runtimes by source code annotation, the execution time can be determined in a similar method on the basis of object code. This variant has the advantage that even protected software components can be analyzed according to the target system and, if appropriate, can be integrated into the test computing system via an emulator. In particular, this offers the possibility of third parties, such. As suppliers, in the development process of the application to involve.

2 zeigt den prinzipiellen Aufbau eines zur Durchführung des Verfahrens vorgesehenen Test-Rechensystems TR. Die zu simulierenden Software-Komponenten, die auf jeweiligen Steuergeräten ECU1, ..., ECU9 ablaufen, werden beispielhaft auf drei Testrechner TR1, TR2, TR3 verteilt. Prinzipiell könnte auch eine andere Anzahl an Testrechnern TR1, TR2, TR3 in einem Test-Rechensystem TR verwendet werden. Die Anzahl der verwendeten Testrechner hängt von der benötigten Rechenleistung ab. Als Testrechner TR1, TR2, TR3 können herkömmliche Rechner, wie z. B. PCs, eingesetzt werden, welche zur Erhöhung ihre Leistungsfähigkeit z. B. über spezielle Beschleunigungshardware (z. B. Grafikkarten) verfügen. Das Test-Rechensystem ist bevorzugt als Rechnercluster ausgelegt. Prinzipiell können auch andere hardwaretechnische Lösungen zur Bereitstellung der Rechenleistung eingesetzt werden. In einem derartigen Rechencluster lassen sich auch neue Hardware-Technologien auf einfache Weise integrieren. 2 shows the basic structure of a provided for performing the method test computing system TR. The software components to be simulated, which run on respective control units ECU1,..., ECU9, are distributed by way of example to three test computers TR1, TR2, TR3. In principle, a different number of test computers TR1, TR2, TR3 could also be used in a test computing system TR. The number of test computers used depends on the required computing power. As a test computer TR1, TR2, TR3 conventional computer, such. As PCs, which are used to increase their performance z. For example, you may have special acceleration hardware (such as graphics cards). The test computing system is preferably designed as a computer cluster. In principle, other hardware solutions can be used to provide the computing power. In such a computing cluster, new hardware technologies can be easily integrated.

Im Ausführungsbeispiel werden in jedem der Testrechner TR1, TR2, TR3 beispielhaft drei Steuergeräte simuliert, nämlich ECU1, ECU2, ECU3 im Testrechner TR1, ECU7, ECU8, ECU9 im Testrechner TR2 und ECU4, ECU5, ECU6 im Testrechner TR3. Die in einem jeweiligen Testrechner TR1, TR2, TR3 simulierten Steuergeräte sind jeweils über Kommunikationsverbindungen KV miteinander verbunden. Die Kommunikationsverbindungen KV, die in dem realen verteilten Rechensystem z. B. durch Busleitungen und dergleichen gebildet sind, sind zur Simulation durch eine entsprechende Software-Komponente nachgebildet. Die Kommunikation zwischen den Testrechnern TR1, TR2, TR3 wird z. B. durch ein Hochgeschwindigkeits-LAN realisiert. Dieses umfasst entsprechende Kommunikationsverbindungen KV, welche mit einem Kommunikationssystem KS verbunden sind. Die Hardware der Testrechner TR1, TR2, TR3 wird um ein Vielfaches über der Leistungsfähigkeit des abzusichernden Zielsystems gewählt. Auf diese Weise ist gewährleistet, dass neben der Überwachung der Simulation notwendige Software-Erweiterungen ausführbar sind, wobei die Simulation dennoch in Echtzeit erfolgt.In the exemplary embodiment, three control units are simulated by way of example in each of the test computers TR1, TR2, TR3, namely ECU1, ECU2, ECU3 in the test computer TR1, ECU7, ECU8, ECU9 in the test computer TR2 and ECU4, ECU5, ECU6 in the test computer TR3. The control units simulated in a respective test computer TR1, TR2, TR3 are each connected to one another via communication links KV. The communication links KV used in the real distributed computing system e.g. B. are formed by bus lines and the like, are simulated for simulation by a corresponding software component. The communication between the test computers TR1, TR2, TR3 is z. B. realized by a high-speed LAN. This comprises corresponding communication links KV, which are connected to a communication system KS. The hardware of the test computers TR1, TR2, TR3 is chosen many times over the performance of the target system to be protected. In this way, it is ensured that in addition to monitoring the simulation necessary software extensions are executable, the simulation is still done in real time.

In der Praxis kann jedes Steuergerät ECU1, ..., ECU9 eine beliebige Anzahl an Software-Komponenten umfassen. Jedes Steuergerät ist logisch als Partition mit einer definierten Speicher- und Zeitallokation des jeweiligen Testrechners organisiert. Eine Partition stellt in dem Testrechner einen virtuellen Bereich dar, in welchem die Software-Komponenten ausführbar sind. Ein Testrechner kann eine Mehrzahl solcher Partitionen aufweisen. Jeder Partition werden ein bestimmter Anteil am Speicher sowie ein bestimmter Anteil an der Prozessorverfügbarkeit zugesichert. Die Partitionen kapseln die zu testende Applikation von der Simulationsinfrastruktur, d. h. dem Test-Rechensystem. Durch diese Methodik ist es möglich, das Test-Rechensystem TR beliebig zu erweitern. Die Partitionen können unabhängig auf den Testrechnern verteilt werden und bieten neben der realen Abbildung eines Steuergeräts in der Simulation die Möglichkeit, Partitionen, wie sie als Teil der Software-Architektur auf dem Zielsystem vorgesehen sind, direkt zu simulieren und zu testen.In practice, each control unit ECU1,..., ECU9 may comprise any number of software components. Each control unit is logically organized as a partition with a defined memory and time allocation of the respective test computer. A partition represents in the test computer a virtual area in which the software components are executable. A test computer can have a plurality of such partitions. Each partition is guaranteed a certain amount of memory as well as a certain amount of processor availability. The partitions encapsulate the application under test from the simulation infrastructure, i. H. the test computing system. By this methodology, it is possible to expand the test computing system TR arbitrarily. The partitions can be distributed independently on the test computers and offer, in addition to the real image of a control unit in the simulation, the possibility of directly simulating and testing partitions as they are provided as part of the software architecture on the target system.

Das Test-Rechensystem ermöglicht das automatische Einspielen der Testkonfigurationen. Daneben können durch das Test-Rechensystem Hardwareeigenschaften des Zielsystems (d. h. des Zielprozessors und der Zielarchitektur) realitätsgetreu abgebildet werden. Durch einen performanceoptimierten parametrierten Ansatz werden Konfigurationsdatensätze und Software-Komponenten in das Test-Rechensystem dynamisch integriert.The test computing system allows automatic import of the test configurations. In addition, through the test computing system, hardware characteristics of the target system (i.e., the target processor and the target architecture) can be faithfully mapped. A performance-optimized parameterized approach dynamically integrates configuration data sets and software components into the test computing system.

Die Realisierung des Test-Rechensystems TR basiert auf dem Einsatz einer sog. Integrationsschicht (Integrationslayer), welche idealerweise auch auf dem Zielsystem eingesetzt wird. Die Ausgestaltung einer Integrationsschicht ist in 3 dargestellt. In einer Partition, welche die Funktionalität eines Steuergeräts ECU nachbildet, wird eine Anzahl an Software-Komponenten ausgeführt. Im Ausführungsbeispiel sind dies vier Software-Komponenten SWK1, SWK2, SWK3, SWK4. Über eine Schnittstelle IF werden die Software-Komponenten SWK1, SWK2, SWK3, SWK4 hinsichtlich ihres Zeitablaufs gesteuert. Zu diesem Zweck werden über die Schnittstelle IF Zeitablaufdaten T zur Verfügung gestellt. Ein weiterer Bestandteil der Integrationsschicht ist eine Ablaufsteuerung SCH, welcher Konfigurationsdaten KD zur Verfügung gestellt werden, mit denen das Zusammenspiel der Software-Komponenten SWK1, SWK2, SWK3, SWK4 sowie gegebenenfalls weiteren Software-Komponenten in anderen Partitionen festgelegt wird. Über einen Port PT werden Daten mit anderen Partitionen auf dem gleichen oder einem anderen Testrechner über das in 2 beschriebene Kommunikationsnetzwerk ausgetauscht.The realization of the test computing system TR is based on the use of a so-called integration layer (integration layer), which is ideally also used on the target system. The embodiment of an integration layer is in 3 shown. In a partition which simulates the functionality of a control unit ECU, a number of software components are executed. In the exemplary embodiment, these are four software components SWK1, SWK2, SWK3, SWK4. Via an interface IF, the software components SWK1, SWK2, SWK3, SWK4 are controlled with respect to their timing. For this purpose, timing data T are made available via the interface IF. Another component of the integration layer is a sequence controller SCH, which configuration data KD are made available with which the interaction of the software components SWK1, SWK2, SWK3, SWK4 and possibly other software components in other partitions is determined. Via a port PT, data with other partitions on the same or another test computer on the in 2 exchanged communication network described.

Über die Ablaufsteuerung wird mittels der Konfigurationsdaten festgelegt, wann welche Software-Komponente ausgeführt wird. Beispielsweise ist in den Konfigurationsdaten hinterlegt, zu welchem Zeitpunkt die Software-Komponente 2 Daten von Software-Komponente 1 benötigt. In diesem Fall ist eine Reihenfolge im Ablauf der Software-Komponenten einzuhalten, um die bestimmungsgemäße Funktionalität zu erhalten.The process control uses the configuration data to determine when which software component is executed. For example, stored in the configuration data, at which time the software component 2 requires data from software component 1. In this case, a sequence in the course of the software components must be adhered to in order to maintain the intended functionality.

Da der Testrechner, in dem die Partition eingerichtet ist, eine größere Performanz als das spätere reale Steuergerät aufweist, können die Konfigurationsdaten während einer Simulation über eine im Hintergrund laufende Task geändert werden. Dadurch wird das Laufzeitverhalten der Applikation bzw. der einzelnen Software-Komponenten SWK1, SWK2, SWK3, SWK4 zueinander jedoch nicht verändert.Because the test machine where the partition is set up performs better than that has later real controller, the configuration data can be changed during a simulation on a task running in the background. As a result, however, the runtime behavior of the application or the individual software components SWK1, SWK2, SWK3, SWK4 to each other is not changed.

Als Betriebssystem des Testrechners dient vorzugsweise ein Echtzeit-Linux, wie z. B. Xefloral, das neben der Emulation von Betriebssystemfunktionen des Steuergeräte-Betriebssystems des Zielsystems ein breites Spektrum an Entwicklungswerkzeugen bietet, die für den Applikations-Entwickler und Administrator zur Verfügung stehen. Die Integrationsschicht setzt oberhalb der Betriebssystemebene an und gibt eine echtzeitfähige Software-Architektur zur Integration der Software-Komponenten vor. Die zustandsabhängige Steuerung sowie die Schnittstellen können dynamisch konfiguriert werden und stellen Standardsoftware-Komponenten dar.As the operating system of the test computer is preferably a real-time Linux, such. For example, Xefloral, which, in addition to emulating operating system functions of the target system's control system operating system, provides a wide range of development tools available to the application developer and administrator. The integration layer starts above the operating system level and provides a real-time software architecture for integrating the software components. The state-dependent control as well as the interfaces can be configured dynamically and represent standard software components.

Die einzelnen Steuergeräte werden durch eine Gruppe von Betriebsystemtasks mit einer definierten Zeitablaufsteuerung (Scheduling), in denen die Applikationen laufen, logisch dargestellt. Die Kommunikation zwischen den Betriebssystemtasks erfolgt entweder lokal (d. h. über den Arbeitsspeicher) oder über die Kommunikationsverbindungen, wie z. B. breitbandige Ethernet-Verbindungen. Die dynamische Konfigurationsmöglichkeit wird gegenüber einem sog. statischen Binden der Software-Komponenten aufgrund der in einem verteilten Entwicklungsprozess, unter anderem mit externen Partnern, zu erwartenden Last und Asynchronität der Simulationsvorgänge bevorzugt.The individual control units are logically represented by a group of operating system tasks with a defined scheduling in which the applications run. The communication between the operating system tasks takes place either locally (that is, via the main memory) or via the communication connections, such. B. broadband Ethernet connections. The dynamic configuration option is preferred over a so-called static binding of the software components due to the expected in a distributed development process, including with external partners, load and asynchronicity of the simulation processes.

4 zeigt die Zeitablaufsteuerung vernetzter Betriebssystemtasks bzw. Steuergeräte ECU1, ECU2, ..., ECUn. Für jedes der dargestellten Steuergeräte ECU1, ..., ECUn ist jeweils mindestens ein Ausführungszyklus MiC dargestellt, der – wie eingangs bereits erläutert – als ersten Berechnungsschritt Lesen R, mehrere Berechnungsschritte Ausführen/Verarbeiten E und als letzten Berechnungsschritt Schreiben W umfasst. Aus 4 ist ohne Weiteres zu erkennen, dass die Berechnungsschritte R eines jeweiligen Steuergeräts ECU1, ..., ECUn um jeweils einen Berechnungsschritt zueinander versetzt sind. Darüber hinaus ist die Kommunikation auf einer Kommunikationsverbindung BUS dargestellt, über die innerhalb eines jeweiligen Berechnungsschritts (Ticks) jeweils drei Nachrichten N übertragen werden können. Dies resultiert daraus, dass beispielsweise das Steuergerät ECU2 Daten, welche von dem Steuergerät ECU1 in einem vorherigen Ausführungszyklus ermittelt wurden, verarbeiten muss, usw. Die Kommunikation wird durch einen jeweiligen Berechnungsschritt des Schreibens W eines jeweiligen Steuergeräts ECU1, ECU2, ..., ECUn verursacht. 4 shows the timing of networked operating system tasks or ECUs ECU1, ECU2, ..., ECUn. For each of the illustrated control units ECU1,..., ECUn, at least one execution cycle MiC is illustrated, which, as already explained, comprises reading R as the first calculation step, several execution / processing steps E, and writing W as the last calculation step. Out 4 It can readily be seen that the calculation steps R of a respective control device ECU1,..., ECUn are offset from one another by one calculation step in each case. In addition, the communication is shown on a communication link BUS, via which three messages N can be transmitted within a respective calculation step (ticks). This is because, for example, the ECU ECU2 has to process data detected by the ECU ECU1 in a previous execution cycle, etc. The communication is performed by a respective writing step W of a respective ECU ECU1, ECU2,..., ECUn caused.

5 zeigt die Organisation der Software-Komponenten, die über alternative Ablauf-Schemata vermittels unterschiedlicher Konfigurationsdaten gesteuert werden. Ein Konfigurationsdatensatz KD bestimmt, wie die Reihenfolge und Laufzeiten bei der Ausführung der Software-Komponenten ist. Die Konfigurationsdaten KD können parallel zur Simulation geladen und in einer Art Warmstart in Echtzeit aktiviert werden. Während die Simulation der Software-Komponenten in einer aktiven Task oder Haupttask MT erfolgt, erfolgt das Laden neuer oder geänderter Konfigurationsdaten (gekennzeichnet durch RecKD) in einer Hintergrundtask BT, welche zeitlich parallel zu der Haupttask MT ausgeführt werden kann. 5 shows the organization of the software components that are controlled via alternative flowcharts by means of different configuration data. A configuration record KD determines what the order and runtime is in the execution of the software components. The configuration data KD can be loaded parallel to the simulation and activated in real time in a kind of warm start. While the simulation of the software components takes place in an active task or main task MT, the loading of new or changed configuration data (identified by RecKD) takes place in a background task BT, which can be executed in parallel to the main task MT.

In 5 sind im Ausführungsbeispiel zeitlich aufeinander folgende Ausführungszyklen MiC1, ..., MiCn dargestellt, welche Bestandteile einer ersten Testkonfiguration MaC1 sind. Daran schließt sich ein Ausführungszyklus MiC1 einer zweiten Testkonfiguration MaC2 an. Jeder der Ausführungszyklen MiC1, ..., MiCn umfasst als Berechnungsschritte Lesen R, Ausführen/Verarbeiten E und Schreiben W. Es versteht sich, dass in jedem Ausführungszyklus MiC1, ..., MiCn entsprechend der jeweiligen Software-Komponente auch eine andere Anzahl an jeweiligen Berechnungsschritten R, E, W ausgeführt werden könnte. Während die Ausführungszyklen MiC1, ..., MiCn des Ausführungszyklus MaC1 der ersten Testkonfiguration in der Haupttask MT ausgeführt werden, wird parallel dazu in einer Hintergrundtask BT ein neuer Konfigurationsdatensatz geladen (RecKD), welcher für die Durchführung der zweiten Testkonfiguration MaC2 verwendet wird.In 5 In the exemplary embodiment, temporally successive execution cycles MiC1,..., MiCn are shown, which are components of a first test configuration MaC1. This is followed by an execution cycle MiC1 of a second test configuration MaC2. Each of the execution cycles MiC1,..., MiCn comprises, as calculation steps, read R, execute / process E and write W. It is understood that in each execution cycle MiC1,..., MiCn also have a different number according to the respective software component respective calculation steps R, E, W could be executed. While the execution cycles MiC1,..., MiCn of the execution cycle MaC1 of the first test configuration are executed in the main task MT, a new configuration data record (RecKD) is loaded in parallel in a background task BT, which is used to execute the second test configuration MaC2.

Unmittelbar nach Beendigung der ersten Testkonfiguration MaC1 kann damit mit der Ausführung der zweiten Testkonfiguration MaC2 begonnen werden. Beispielsweise kann im Rahmen der zweiten Testkonfiguration das Verhalten der Applikation mit anderen Softwarekomponenten im Vergleich zu der ersten Testkonfiguration überprüft werden. Dabei ist es den Software-Komponenten der zweiten Testkonfiguration möglich, auf Berechnungsergebnisse zurückzugreifen, die durch Software-Komponenten der ersten Testkonfigurationen ermittelt und bereitgestellt werden. Das Verfahren ermöglicht es damit, die Simulation einer Applikation unterbrechungsfrei auch mit unterschiedlichen Testkonfigurationen vornehmen zu können. Dies ist beispielsweise beim Test einer Applikation für ein Gesamtfahrzeug relevant, in welchem überprüft werden soll, wie sich die Applikation mit unterschiedlichen Motorsteuerungen, welche durch unterschiedliche Software-Komponenten realisiert werden, verhalt Neben der eigentlichen Applikation können Testtreiber und Testmonitore zur technischen Überwachung von Anforderungen in das Test-Rechensystem mit eingebunden werden. Testtreiber und Testmonitore können zur Simulation der Applikation verwendet werden. Ebenso dienen diese zur Überprüfung des Verhaltens auf Übereinstimmung mit zuvor modellierten Anforderungen oder erwarteten Testergebnissen.Immediately after the completion of the first test configuration MaC1, the execution of the second test configuration MaC2 can begin. For example, in the context of the second test configuration, the behavior of the application with other software components can be checked in comparison to the first test configuration. In this case, it is possible for the software components of the second test configuration to resort to calculation results that are determined and provided by software components of the first test configurations. The method makes it possible to perform the simulation of an application without interruption, even with different test configurations. This is relevant, for example, when testing an application for a complete vehicle, in which it is to be checked how the application behaves with different motor controls, which are implemented by different software components. In addition to the actual application, test drivers and test monitors can be used for technical monitoring of requirements the test computing system to be involved. Test drivers and test monitors can be used to simulate the application. Likewise, these serve for Verification of behavior for compliance with previously modeled requirements or expected test results.

Das Test-Rechensystem und das dabei verwendete Verfahren meistert neben klassischen Modultests die Herausforderung eines gleichzeitigen Überprüfens nichtfunktionaler als auch teillösungsübergreifender funktionaler Anforderungen. Nichtfunktionale Anforderungen sind beispielsweise Redundanz, Speicherbedarf, Prozessor-/Busauslastung, Reaktionszeiten, Robustheit, Modularisierbarkeit, usw. Die hardwarenahe Auslegung des Test-Rechensystems bei der Parametrierung bietet den Vorteil, beim automatisierten Umsetzen bzw. Konfigurieren der Applikation für das Zielsystem, die Unterschiede zwischen Testkonfiguration und Zielkonfiguration, also der Konfiguration auf dem Zielsystem durch Einsatz von standardisierten Software-Komponenten und/oder Architekturen sowie der Integration von optimierten Seriensoftwareanteilen, zum Testen minimal zu halten. Der Testaufwand wird damit weitestgehend von dem Zielsystem auf das Test-Rechensystem verlagert.The test computing system and the method used in addition to classical module tests master the challenge of simultaneously testing non-functional as well as cross-part functional requirements. Non-functional requirements are, for example, redundancy, memory requirements, processor / bus utilization, response times, robustness, modularizability, etc. The hardware-related design of the test computing system during parameterization offers the advantage of automatically converting or configuring the application for the target system, the differences between Test configuration and target configuration, ie the configuration on the target system by using standardized software components and / or architectures as well as the integration of optimized serial software parts, to minimize testing. The test effort is thus largely shifted from the target system to the test computing system.

Im Gegensatz zum Integrationsprozess direkt am Fahrzeug, der als mit der Anzahl der Bauteile zeitlich skalierender Konfigurations-, Validierungs- und Abnahmeprozess ausgelegt ist, kann auf dem Test-Rechensystem unter Einbezug mehrerer Testkonfigurationen fortlaufend, d. h. 24 Stunden, sieben Tage in der Woche, parallel mit immer leistungsstärkeren Prozessoren die Integration des Gesamtsystems zukunftssicher virtuell vor der eigentlichen Fahrzeugintegration erfolgen, womit der steigenden Softwarekomplexität begegnet werden kann.In contrast to the in-vehicle integration process, which is designed as a time-scaling configuration, validation, and approval process with the number of components, the test computing system can continually run, including multiple test configurations. H. 24 hours a day, seven days a week, in parallel with increasingly powerful processors, the integration of the entire system is future-proof virtually before the actual vehicle integration takes place, whereby the increasing software complexity can be counteracted.

Der methodische Ansatz zur Realisierung des erfindungsgemäßen Vorgehens ist wie folgt:
Als Ausgangsbasis dienen textuell erfasste, funktionale Anforderungen. Diese werden kontinuierlich nach einer Formalisierung auf ihre Widerspruchsfreiheit überprüft. Dazu dienen entsprechende, anforderungsbezogene Testfunktionen oder sog. formale Methoden. Die Summe aller validierten Anforderungen beschreibt den für einen modellbasierten Funktionsentwurf zur Verfügung stehenden Lösungsraum. Die Funktionen werden unter Berücksichtigung der fachlichen Anforderungen zur Beschreibung von Abbildungsvorschriften, Zustandsbeschreibung und Transaktionsverhalten modular als Teillösungen eines funktionalen Gesamtsystems entwickelt.
The methodological approach for realizing the procedure according to the invention is as follows:
The basis for this is textually recorded, functional requirements. These are continuously checked for their consistency after formalization. This is done by corresponding, requirement-related test functions or so-called formal methods. The sum of all validated requirements describes the solution space available for a model-based function design. The functions are developed modularly as partial solutions of a functional overall system taking into account the technical requirements for the description of imaging regulations, status description and transaction behavior.

Teillösungen werden in einem Systemverifikationsprozess gegenüber den ihnen direkt zugeordneten Anforderungen verifiziert. Dabei wird überprüft, ob es sich um zulässige, d. h. anforderungskonforme, Lösungen handelt. Eine Methode zur Systemverifikation ist neben dem sog. „Model Checking” das Generieren von formalen Anforderungen aus der durch Modelle beschriebenen Lösung. Der so erzeugte Satz von Anforderungen beschreibt äquivalent zu dem Modell die Lösung. Wird der technische Satz an Anforderungen paarweise mit den funktionalen Anforderungen, aus denen die Lösung entwickelt worden ist, auf Widerspruchsfreiheit überprüft, so liegt ein sehr gutes Kriterium für die Lösungskonformität vor. Das Kriterium ist notwendig, aber nicht hinreichend. Bei Widersprüchen zwischen Lösung und Anforderung leiten sich neben Schwächen in der Lösung eventuell auch Anpassungen der Anforderungen direkt ab. Die Konsistenz der Anforderungen gewährleistet dann ein adäquater Änderungsmanagementprozess.Partial solutions are verified in a system verification process against their directly assigned requirements. It checks whether it is permissible, d. H. requirement-compliant solutions. One method of system verification, in addition to the so-called "model checking", is the generation of formal requirements from the solution described by models. The set of requirements thus generated describes the solution equivalent to the model. If the technical set of requirements is checked for consistency in pairs with the functional requirements from which the solution was developed, then there is a very good criterion for the solution conformity. The criterion is necessary but not sufficient. In the case of contradictions between solution and requirement, not only weaknesses in the solution may also be derived directly from requirements adjustments. The consistency of the requirements then ensures an adequate change management process.

Die verifizierten Teillösungen werden in einer Folgeaktivität modellbasiert zu einer Gesamtlösung integriert. Integrationstests überprüfen dabei das Gesamtsystem auf eine Verletzung nicht funktionaler Anforderungen sowie Teilsystem bzw. teillösungsübergreifende funktionale Anforderungen. Das Vorgehen setzt sich damit aus den drei Schritten des Plausibilisierens der Anforderungen, des Verifizierens der Teillösungen auf Modellebene und der Integration der Teillösungen durch Testen zusammen.The verified partial solutions are integrated in a follow-up model-based model to form a complete solution. Integration tests check the overall system for a violation of non-functional requirements as well as a subsystem or component-functional requirements. The procedure consists of the three steps of plausibilizing the requirements, verifying the partial solutions on a model level and integrating the partial solutions through testing.

Diesem Vorgehen liegt dabei die in 6 gezeigte Infrastruktur zu Grunde. Ein Front-End 602 dient der Dateneingabe, wie z. B. bei der Anforderungsentwicklung und Modellierung der Teillösungen. Daten werden in einem geeigneten Datenmanagementsystem 606 konsistent verwaltet, wobei über das Front-End 602 auf die in dem Datenmanagementsystem 606 gespeicherte Daten zugegriffen werden kann. Aus dem Front-End 602 werden alle notwendigen Konfigurationsdaten, welche in der Figur als berücksichtigte Informationen bzw. Parameter 608 dargestellt sind, dem Test-Rechensystem, das durch ein Back-End 604 repräsentiert ist, ausgeleitet und diesem zur Verfügung gestellt.This procedure lies in the 6 underlying infrastructure. A front end 602 is used for data entry, such. B. in the requirements development and modeling of the partial solutions. Data is stored in a suitable data management system 606 managed consistently, being beyond the front-end 602 on the in the data management system 606 stored data can be accessed. From the front end 602 All necessary configuration data, which in the figure as considered information or parameters 608 are shown, the test computing system, by a back-end 604 is represented, rejected and made available to it.

Das Plausibilisieren der Anforderungen kann inkrementell durchgeführt werden. Bei einem Hinzufügen neuer Anforderungen wird automatisch die Plausibilität als „Konsistenzcheck” überprüft. Sind die Anforderungen strukturiert und umfassen die Teillösungen nur wenige Anforderungen, so kann diese Aufgabe direkt in einem Entwicklungswerkzeug durchgeführt werden. Aus Gründen der Wartbarkeit und Skalierbarkeit werden die einzelnen Überprüfungen bevorzugt auf dem als Rechencluster ausgebildeten Back-End unter Zuhilfenahme performanter Recheneinheiten parallelisiert zur Ausführung gebracht. Das Ergebnis wird abschließend an das modellbasierte Entwicklungswerkzeug im Front-End übertragen.The plausibility of the requirements can be carried out incrementally. When new requirements are added, the plausibility is automatically checked as a "consistency check". If the requirements are structured and the partial solutions contain only a few requirements, this task can be carried out directly in a development tool. For reasons of maintainability and scalability, the individual checks are preferably carried out in parallel on the backend designed as a computation cluster with the aid of high-performance computing units. The result is finally transferred to the model-based development tool in the front-end.

Die Verifikation der weitestgehend unabhängig entwickelten Teillösungen erfolgt durch formale Methoden bzw. das an sich bekannte Model Checking. Voraussetzung ist aufgrund des hohen Speicherbedarfs eines Model Checkers hierfür eine Modularisierung der Teillösungen. Die Algorithmen bzw. Software-Komponenten werden auf dem Back-End im Stapelbearbeitungsmodus nebenläufig durchgeführt oder als sog. Legacy-Software-Komponente in eine in 4 dargestellte Elektrik-/Elektronik-Systemplattform integriert.The verification of largely independently developed partial solutions is carried out by formal methods or the known per se model Checking. The prerequisite for this is a modularization of the partial solutions due to the high memory requirements of a Model Checker. The algorithms or software components are carried out concurrently on the back-end in the batch processing mode or as a so-called legacy software component in an in 4 integrated electrical / electronic system platform integrated.

In der Architektur des Test-Rechensystems TR ist eine virtuelle Absicherung 702 vorgesehen. Diese kommuniziert in Echtzeit mit der Elektrik-/Elektronik-Systemplattform 704. Über standardisierte Schnittstellen 706 können Test- und Applikations-Software-Komponenten 708, Funktionen 710 und Legacy-Software-Komponenten 712 in die Systemplattform 704 eingebunden werden. Das System zeichnet sich dadurch aus, dass es um einzelne Module erweiterbar ist, indem zusätzliche Schnittstellen 714 zu der Systemplattform 704 vorgesehen werden.In the architecture of the test computing system TR is a virtual hedge 702 intended. It communicates in real time with the electrical / electronic system platform 704 , Via standardized interfaces 706 can test and application software components 708 , Functions 710 and legacy software components 712 into the system platform 704 be involved. The system is characterized by the fact that it can be extended by individual modules by adding additional interfaces 714 to the system platform 704 be provided.

Die Erfindung zeichnet sich dadurch aus, dass die Simulation von verteilten Rechensystemen in Echtzeit erfolgen kann. Eine hardwareunabhängige Infrastruktur erlaubt die Integration und Absicherung von Systemkomponenten schon in einer sehr frühen Phase, bevor die realen Recheneinheiten, z. B. Steuergeräte in einem Fahrzeug, bereits existieren. Die Rechenleistung zur Durchführung der Simulation kann kostengünstig mit herkömmlichen Rechensystemen bereitgestellt werden. Durch Konfigurationsdatensätze entsprechend der zu simulierenden Hardware ist die Simulation kalibrierbar. Ferner kann die Integration von Teilsystemen virtuell vorab der Realisierung in dem verteilten Rechensystem getestet werden, wodurch reale Integrationstests nicht oder in verringertem Maße stattfinden müssen. Durch ein einfaches Austauschen bzw. Erweitern von Testrechnern in dem Test-Rechensystem ist eine gute Skalierbarkeit und kostengünstige Wartung gewährleistet. Das Verfahren erlaubt es, die Zeit von Zielsystem-optimierten Software-Komponenten präzise und performant abzuschätzen. Zudem zeichnet sich das Verfahren dadurch aus, dass reale Hardware als Peripherie aufgrund der Echtzeitfähigkeit gemäß einem HIL eingebunden werden kann.The invention is characterized in that the simulation of distributed computing systems can take place in real time. A hardware-independent infrastructure allows the integration and protection of system components already at a very early stage, before the real computing units, z. As control devices in a vehicle, already exist. The computing power to perform the simulation can be provided inexpensively with conventional computing systems. By means of configuration data sets corresponding to the hardware to be simulated, the simulation can be calibrated. Furthermore, the integration of subsystems can virtually be tested in advance of the implementation in the distributed computing system, whereby real integration tests need not take place or take place to a lesser extent. Easy replacement or expansion of test computers in the test computing system ensures good scalability and cost-effective maintenance. The method makes it possible to estimate the time of target system-optimized software components precisely and with high performance. In addition, the method is characterized by the fact that real hardware can be incorporated as peripherals due to the real-time capability according to a HIL.

BezugszeichenlisteLIST OF REFERENCE NUMBERS

P1P1
erste Software-Komponentefirst software component
P2P2
zweite Software-Komponentesecond software component
RR
Berechnungsschritt: LesenCalculation step: Read
Ee
Berechnungsschritt: Ausführen/VerarbeitenCalculation step: Execute / Process
WW
Berechnungsschritt: SchreibenCalculation step: Write
MiCMiC
Ausführungszyklus einer Software-KomponenteExecution cycle of a software component
MiC1Mic1
Ausführungszyklus einer ersten Software-KomponenteExecution cycle of a first software component
MiCnMICN
Ausführungszyklus einer n-ten Software-KomponenteExecution cycle of an nth software component
MaCMaC
Ausführungszyklus einer TestkonfigurationExecution cycle of a test configuration
MaC1MAC1
erste Testkonfigurationfirst test configuration
MaC2MAc2
zweite Testkonfigurationsecond test configuration
tTR t TR
Ausführungszeit eines Berechnungsschritts (Tick) auf dem Test-RechensystemExecution time of a calculation step (tick) on the test computer system
tRS t RS
Ausführungszeit eines Berechnungsschritts (Tick) auf einer Recheneinheit eines realen RechensystemsExecution time of a calculation step (tick) on a computing unit of a real computing system
tP t p
Zeitpuffer bis zum Beginn des nächsten Berechnungsschritts (Tick)Time buffer until the beginning of the next calculation step (tick)
Δtreal Δt real
Zeitdifferenz der Ausführungszeiten auf dem Test-Rechensystem und der Recheneinheit des realen RechensystemsTime difference of the execution times on the test computing system and the computing unit of the real computing system
ECUECU
simulierte Recheneinheit des realen Rechensystems in dem Test-Rechensystemsimulated arithmetic unit of the real computing system in the test computing system
ECU1ECU1
simulierte Recheneinheit des realen Rechensystems in dem Test-Rechensystemsimulated arithmetic unit of the real computing system in the test computing system
......
ECU9ECU9
simulierte Recheneinheit des realen Rechensystems in dem Test-Rechensystemsimulated arithmetic unit of the real computing system in the test computing system
KVKV
Kommunikationsverbindungcommunication link
KSKS
Kommunikationssystemcommunication system
SWK1SWK1
Software-KomponenteSoftware component
SWK2SWK2
Software-KomponenteSoftware component
SWK3SWK3
Software-KomponenteSoftware component
SWK4SWK4
Software-KomponenteSoftware component
KDKD
Konfigurationsdatenconfiguration data
SCHSCH
Ablaufsteuerungflow control
IFIF
Schnittstelleinterface
TT
ZeitablaufdatenTiming data
PTPT
Portport
BUSBUS
Kommunikationsverbindungcommunication link
NN
Nachrichtmessage
MTMT
aktive Task (Haupttask)active task (main task)
BTBT
HintergrundtaskBackground task
RecKDRecKD
geänderter Konfigurationsdatensatzchanged configuration record
C1C1
Zykluscycle
Cncn
Zykluscycle
Cn + 1Cn + 1
Zykluscycle
TRTR
Test-RechensystemTest computing system
TR1TR1
Testrechnertest computer
TR2TR2
Testrechnertest computer
TR3TR3
Testrechnertest computer
602602
Front-EndFront End
604604
Back-EndBack-End
606606
DatenmanagementsystemData Management System
608608
berücksichtigte Informationen/Parameterconsidered information / parameters
702702
virtuelle Absicherungvirtual protection
704704
E/E-SystemplattformE / E system platform
706706
Schnittstelleinterface
708708
Software-KomponenteSoftware component
710710
Funktionfunction
712712
Legacy Software-KomponenteLegacy software component
714714
Schnittstelleinterface

Claims (13)

Verfahren zum Testen einer Applikation, die für die Ausführung in einem verteilten Rechensystem, insbesondere einem Fahrzeug, mit einer Anzahl an über ein Kommunikationsnetzwerk verbundenen Recheneinheiten (ECU1, ..., ECU9) bestimmt ist, wobei die Applikation aus einer Mehrzahl an Software-Komponenten (SWK1, ..., SWK4) mit einer jeweiligen Funktionalität gebildet ist, die zu deren Ausführung auf den Recheneinheiten (ECU1, ..., ECU9) des Rechensystems vorgesehen sind, bei dem – zumindest ein Teil der Software-Komponenten (SWK1, ..., SWK4) der Applikation als Test-Konfiguration (MaC1, MaC2) auf einem Test-Rechensystem (TR) gleichzeitig zur Ausführung gebracht wird, wobei bei der Ausführung einer jeweiligen Software-Komponente (SWK1, ..., SWK4) deren zeitliches Verhalten auf der Recheneinheit (ECU1, ..., ECU9), auf dem die Software-Komponente ausgeführt werden soll, berücksichtigt wird, um das in dem verteilten Rechensystem erwartete zeitliche Verhalten der Applikation zu simulieren, und – das Verhalten der Applikation ausgewertet wird.Method for testing an application that is intended for execution in a distributed computing system, in particular a vehicle, having a number of computing units (ECU1,..., ECU9) connected via a communication network, wherein the application consists of a plurality of software components (SWK1, ..., SWK4) is formed with a respective functionality, which are provided for their execution on the computing units (ECU1, ..., ECU9) of the computing system, in which At least some of the software components (SWK1, ..., SWK4) of the application as a test configuration (MaC1, MaC2) are executed simultaneously on a test computing system (TR), whereby in the execution of a respective software Component (SWK1, ..., SWK4) whose temporal behavior on the arithmetic unit (ECU1, ..., ECU9), on which the software component is to be executed, is taken into account by the expected in the distributed computing system temporal behavior of the application to simulate, and - the behavior of the application is evaluated. Verfahren nach Anspruch 1, bei dem der Ausführungscode einer jeweiligen Software-Komponente einen funktionalen Anteil, der die Struktur der Software-Komponente für die Ausführung auf der realen Recheneinheit umfasst, und einen Anteil zur Bestimmung des Laufzeitverhaltens auf der realen Recheneinheit umfasst.The method of claim 1, wherein the execution code of a respective software component comprises a functional portion comprising the structure of the software component for execution on the real computing unit, and a portion for determining the runtime behavior on the real computing unit. Verfahren nach Anspruch 1 oder 2, bei dem im Ausführungscode einer jeweiligen Software-Komponente das zeitliche Verhalten der Recheneinheit, auf dem die Software-Komponente ausgeführt werden soll, integriert wird,The method of claim 1 or 2, wherein in the execution code of a respective software component, the temporal behavior of the computing unit on which the software component is to be executed, is integrated, Verfahren nach einem der vorgehenden Ansprüche, bei dem das zeitliche Verhalten der Recheneinheit, auf dem die Software-Komponente ausgeführt werden soll, während der Ausführung der Software-Komponente ermittelt wird.Method according to one of the preceding claims, wherein the temporal behavior of the arithmetic unit, on which the software component is to be executed, during the execution of the software component is determined. Verfahren nach einem der vorhergehenden Ansprüche, bei dem das Test-Rechensystem mit einem Echtzeit-Betriebssystem betrieben wird.Method according to one of the preceding claims, wherein the test computing system is operated with a real-time operating system. Verfahren nach Anspruch 5, bei dem das Echtzeit-Betriebssystem das Betriebssystem einer jeweiligen Recheneinheit emuliert.The method of claim 5, wherein the real-time operating system emulates the operating system of a respective computing unit. Verfahren nach einem der vorgehenden Ansprüche, bei dem die Funktionalität einer jeweiligen Recheneinheit durch eine Task mit vorgegebener Zeitablaufsteuerung (Scheduling) logisch bereitgestellt wird, in welcher eine oder mehrere Software-Komponenten ausführt werden.Method according to one of the preceding claims, in which the functionality of a respective computing unit is provided logically by a task with predetermined timing (scheduling), in which one or more software components are executed. Verfahren nach einem der vorhergehenden Ansprüche, bei dem das Test-Rechensystem eine Anzahl an Testrechnern umfasst, welche im Falle mehrerer Testrechner über ein Kommunikationssystem miteinander verbunden sind, wobei auf einem jeweiligen Testrechner ein oder mehrere Tasks ausgeführt werden.Method according to one of the preceding claims, wherein the test computing system comprises a number of test computers, which are connected in the case of multiple test computers via a communication system, wherein one or more tasks are performed on a respective test computer. Verfahren nach einem der vorhergehenden Ansprüche, bei dem das zeitliche Verhalten eines Kommunikationspfads des Rechensystems, über den zwei Software-Komponenten bei der Ausführung der Applikation Daten austauschen, als eigenständiges Software-Modul nachgebildet und im Rahmen des Tests auf dem Test-Rechensystem simuliert wird.Method according to one of the preceding claims, in which the temporal behavior of a communication path of the computer system, via which two software components exchange data during the execution of the application, is simulated as an independent software module and simulated in the test on the test computer system. Verfahren nach einem der vorhergehenden Ansprüche, bei dem eine dynamische Integration einer jeweiligen Software-Komponente und/oder eines Software-Moduls in die Testkonfiguration des Test-Rechensystems erfolgt, wodurch unterschiedliche Applikationsumfänge der Applikation überprüfbar sind.Method according to one of the preceding claims, in which a dynamic integration of a respective software component and / or a software module in the test configuration of the test computing system takes place, whereby different application scopes of the application can be checked. Verfahren nach einem der vorhergehenden Ansprüche, bei dem für eine jeweilige Testkonfiguration ein Konfigurationsdatensatz erstellt wird, mit dem die Reihenfolge und Laufzeiten der Software-Komponenten einer betreffenden Testkonfiguration festgelegt werden, wobei der Konfigurationsdatensatz durch eine Ablaufsteuerung des Test-Rechensystems verarbeitet wird.Method according to one of the preceding claims, wherein for a respective test configuration, a configuration data set is created, with which the order and maturity of the software components of a respective test configuration are determined, the configuration data set is processed by a flow control of the test computing system. Verfahren nach Anspruch 11, bei dem der Konfigurationsdatensatz zur Laufzeit des Tests verändert wird.The method of claim 11, wherein the configuration record is changed at runtime of the test. Verfahren nach einem der vorhergehenden Ansprüche, bei dem in die Testumgebung ein Mittel zur technischen Überwachung von vorgegebenen Anforderungen integriert wird.Method according to one of the preceding claims, in which a means for technical monitoring of predetermined requirements is integrated into the test environment.
DE200910054137 2009-11-20 2009-11-20 Method for testing application utilized to develop functionalities of e.g. dynamic traction control of motor vehicle, involves considering characteristics of software components to simulate expected temporal characteristics of application Pending DE102009054137A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE200910054137 DE102009054137A1 (en) 2009-11-20 2009-11-20 Method for testing application utilized to develop functionalities of e.g. dynamic traction control of motor vehicle, involves considering characteristics of software components to simulate expected temporal characteristics of application

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE200910054137 DE102009054137A1 (en) 2009-11-20 2009-11-20 Method for testing application utilized to develop functionalities of e.g. dynamic traction control of motor vehicle, involves considering characteristics of software components to simulate expected temporal characteristics of application

Publications (1)

Publication Number Publication Date
DE102009054137A1 true DE102009054137A1 (en) 2011-05-26

Family

ID=43902062

Family Applications (1)

Application Number Title Priority Date Filing Date
DE200910054137 Pending DE102009054137A1 (en) 2009-11-20 2009-11-20 Method for testing application utilized to develop functionalities of e.g. dynamic traction control of motor vehicle, involves considering characteristics of software components to simulate expected temporal characteristics of application

Country Status (1)

Country Link
DE (1) DE102009054137A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2990284A1 (en) * 2012-05-04 2013-11-08 Airbus Operations Sas Method for assisting to development and validation of aircraft, involves estimating difference between specifications of complex system, identifying function implementing particular element, and testing function in prototype of system
DE102021214973A1 (en) 2021-12-23 2023-06-29 Robert Bosch Gesellschaft mit beschränkter Haftung Computer-implemented test environment and methods for testing software components

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
HONKA,H.,et.al.: A Simulation-Based System for Testing Real-Time Embedded Software in the Host Environment. In: Microprocessing and Microprogramming 32,1991. North-Holland,S.127-134 Abschnitt 2,2.1
HONKA,H.,et.al.: A Simulation-Based System for Testing Real-Time Embedded Software in the Host Environment. In: Microprocessing and Microprogramming 32,1991. North-Holland,S.127-134 bschnitt 2,2.1$ *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2990284A1 (en) * 2012-05-04 2013-11-08 Airbus Operations Sas Method for assisting to development and validation of aircraft, involves estimating difference between specifications of complex system, identifying function implementing particular element, and testing function in prototype of system
DE102021214973A1 (en) 2021-12-23 2023-06-29 Robert Bosch Gesellschaft mit beschränkter Haftung Computer-implemented test environment and methods for testing software components
WO2023117240A1 (en) * 2021-12-23 2023-06-29 Robert Bosch Gmbh Computer-implemented test environment, and method for testing software components

Similar Documents

Publication Publication Date Title
EP2685382B1 (en) Method and device for producing and testing a control device program
DE102005026040B4 (en) Parameterization of a simulation working model
EP3451202B1 (en) Method for generating a model of a technical system which can be run on a test device and a test device
EP2770389A2 (en) Method for performing a configuration of a control instrument test system
DE102014110096A1 (en) Test device for real-time test of a virtual control device
EP3001313A1 (en) Methods for simulating an application program of an electronic control device on a computer
EP3336730B1 (en) Method for creating a model compatible with a simulation apparatus
DE102016119320A1 (en) Method for configuring a real or virtual electronic control unit
DE102017120016A1 (en) A method of configuring a test device set up to test an electronic controller and a configuration system
EP1428126A2 (en) Software verification method for control units and verification system
DE102018111851A1 (en) Method for event-based simulation of a system
WO2016173862A1 (en) Method for computer-supported development of an overall system consisting of subsystems
DE112010004037T5 (en) Simulation method, system and program
EP3832517A1 (en) Computer-implemented method for integrating at least one signal value in a virtual control device
WO2009095202A1 (en) Method and device for carrying out tests by means of functionally cascaded testing and experimental devices
DE102018206762A1 (en) Feature development framework and feature integration framework for implementing physical feature features in a target device
DE10324594A1 (en) Method for providing improved simulation capabilities of a dynamic system outside of the original modeling environment
EP3015995A1 (en) Method for configuring an interface unit of a computer system
DE102020123506A1 (en) Method for generating source code with service-based communication
DE102009054137A1 (en) Method for testing application utilized to develop functionalities of e.g. dynamic traction control of motor vehicle, involves considering characteristics of software components to simulate expected temporal characteristics of application
WO2006035038A2 (en) Method for testing control device software for a control device
DE102021212009A1 (en) Method for simulating a hardware unit in a computing unit
DE69217472T2 (en) Method and arrangement for checking the standard adaptation of a cell, representing a circuit for transmission protocol management
DE102012217328A1 (en) Method for simulating a control device
EP3979009A1 (en) Creation of a simplified model for xil systems

Legal Events

Date Code Title Description
OM8 Search report available as to paragraph 43 lit. 1 sentence 1 patent law
R012 Request for examination validly filed