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 PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software 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
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:
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.
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
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.
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
Ü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
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.
In
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
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
In der Architektur des Test-Rechensystems TR ist eine virtuelle Absicherung
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)
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)
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 |
-
2009
- 2009-11-20 DE DE200910054137 patent/DE102009054137A1/en active Pending
Non-Patent Citations (2)
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)
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 |