DE102006040698A1 - Automated, model-based method for integrating a functional system architecture with a physical system architecture to an electronic system - Google Patents
Automated, model-based method for integrating a functional system architecture with a physical system architecture to an electronic system Download PDFInfo
- Publication number
- DE102006040698A1 DE102006040698A1 DE102006040698A DE102006040698A DE102006040698A1 DE 102006040698 A1 DE102006040698 A1 DE 102006040698A1 DE 102006040698 A DE102006040698 A DE 102006040698A DE 102006040698 A DE102006040698 A DE 102006040698A DE 102006040698 A1 DE102006040698 A1 DE 102006040698A1
- Authority
- DE
- Germany
- Prior art keywords
- platform
- components
- component
- application
- functional
- 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.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/398—Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
Abstract
Die Erfindung betrifft ein automatisches, modellbasiertes Verfahren zur Integration einer funktionalen Systemarchitektur mit einer physikalischen Systemarchitektur zu einem elektronischen System, insbesondere einem Avioniksystem, wobei die funktionale Systemarchitektur einzelne Applikationskomponenten umfasst und die physikalische Systemarchitektur einzelne Plattformkomponenten umfasst. Eine Zuordnung von Applikationskomponenten auf Plattformkomponenten wird derart vorgenommen, dass I. die Zuordnung vollständig ist II. der funktionale Ablauf der funktionalen Systemarchitektur gewährleistet ist III. die nicht-funktionalen Anforderungen an das Gesamtsystem erfüllt werden.The invention relates to an automatic, model-based method for integrating a functional system architecture with a physical system architecture into an electronic system, in particular an avionics system, wherein the functional system architecture comprises individual application components and the physical system architecture comprises individual platform components. An assignment of application components to platform components is made such that I. the assignment is complete II. The functional sequence of the functional system architecture is ensured III. the non-functional requirements for the entire system are met.
Description
Die Erfindung betrifft ein automatisches, modellbasiertes Verfahren zur Integration einer funktionalen Systemarchitektur mit einer physikalischen Systemarchitektur zu einem elektronischen System, insbesondere einem Avioniksystem. Es handelt sich dabei um Systeme die mehrere Prozessoren aufweisen und mit mehreren Netzwerken verbunden sind (so genannte "verteilte eingebettete Systeme").The The invention relates to an automatic, model-based method to integrate a functional system architecture with a physical system architecture to an electronic system, in particular an avionics system. These are systems that have multiple processors and are connected to multiple networks (called "distributed embedded Systems ").
Bei der Entwicklung von integrierten modularen Avioniksystemen (IMA) wird die Softwarefunktionalität hardware-unabhängig in Form eines Funktionsgraphen entwickelt. Diese so genannte funktionale Architektur kann unter Berücksichtigung von hardware-spezifischen und betriebssystemspezifischen Rahmenbedingungen auf verschiedene Hardwareplattformen (so genannte physikalische Architektur) verteilt, integriert werden. Diese Verteilung wird in Systemtabellen festgeschrieben.at the development of integrated modular avionics systems (IMA) becomes the software functionality hardware-independent developed in the form of a function graph. This so-called functional Architecture can be considered of hardware-specific and operating system-specific framework conditions on different hardware platforms (so-called physical Architecture), be integrated. This distribution will enshrined in system tables.
IMA-Systeme werden derzeit in vielen neuen fliegenden Systemen (z.B. Airbus A380, Eurofighter) eingeführt, entsprechende IMA-Systemtabellen müssen von Hand erstellt werden. Die hohe Systemkomplexität manifestiert sich in umfangreichen Systemtabellen, welche bei manueller Erstellung eine hohe Fehlerrate aufweisen können. Systemfehlverhalten, hervorgerufen durch fehlerhafte bzw. inkonsistente IMA-Systemtabellen ist schwer als solches zu lokalisieren, da es sich typischerweise als funktionaler Fehler für den Nutzer darstellt.IMA systems are currently used in many new flying systems (e.g., Airbus A380, Eurofighter), appropriate IMA system tables must be created by hand. The high system complexity manifests itself in extensive system tables, which in manual Creation can have a high error rate. System failure caused through faulty or inconsistent IMA system tables is hard as such, as it is typically a functional error for the Represents users.
Es ist Aufgabe der Erfindung, ein automatisches, modellbasiertes Verfahren zur Integration von funktionaler und physikalischer Systemarchitektur zu schaffen.It The object of the invention is an automatic, model-based method for integration of functional and physical system architecture to accomplish.
Diese Aufgabe wird mit dem Verfahren gemäß Patentanspruch 1 gelöst. Eine vorteilhafte Ausführung ist Gegenstand eines Unteranspruchs.These Task is solved by the method according to claim 1. A advantageous embodiment is the subject of a sub-claim.
Erfindungsgemäß wird ein automatisches, modellbasiertes Verfahren zur Integration einer funktionalen Systemarchitektur (im Folgenden auch als Applikation bezeichnet) mit einer physikalischen Systemarchitektur (im Folgenden auch als Plattform bezeichnet) zu einem elektronischen System, insbesondere einem Avioniksystem, geschaffen, wobei die funktionale Systemarchitektur einzelne Applikationskomponenten umfasst und die physikalische Systemarchitektur einzelne Plattformkomponenten umfasst. Eine Zuordnung (im Folgenden auch als Bindung bezeichnet) von Applikationskomponenten auf Plattformkomponenten wird derart vorgenommen, dass
- I. die Zuordnung vollständig ist gemäß Schritt 5
- II. der funktionale Ablauf der funktionalen Systemarchitektur gewährleistet ist
- III. die nicht-funktionalen Anforderungen an das Gesamtsystem erfüllt werden.
- I. the assignment is complete according to step 5
- II. The functional flow of the functional system architecture is ensured
- III. the non-functional requirements for the entire system are met.
In einem ersten Schritt wird die Spezifikation der funktionalen Systemarchitektur sowie der physikalische Systemarchitektur zur Verfügung gestellt, welche folgende Eigenschaften aufweisen:
- I. Plattformkomponenten als auch Applikationskomponenten bilden eine Hierarchie, bei der Unterkomponenten eine strukturelle Verfeinerung der zugehörigen Vaterkomponenten darstellen,
- II. mittels Verhaltenserweiterung von Plattformkomponenten als auch von Applikationskomponenten können diesen weitere Anschlüsse, Funktionen und Attribute hinzugefügt werden,
- III. die Plattformkomponenten weisen so genannte logische Plattformunterkomponenten als Platzhalter für später einzufügende Applikationskomponenten auf.
- I. platform components as well as application components form a hierarchy in which subcomponents represent a structural refinement of the associated parent components,
- II. By means of behavioral expansion of platform components as well as of application components, further connections, functions and attributes can be added to these
- III. The platform components have so-called logical platform subcomponents as placeholders for later to be inserted application components.
In einem zweiten Schritt wird die Menge der logischen Plattformunterkomponenten der physikalischen Systemarchitektur bestimmt.In a second step is the set of logical platform subcomponents determined by the physical system architecture.
In einem dritten Schritt wird die Menge der der physikalischen Systemarchitektur zuzuordnenden Applikationskomponenten bestimmt, wobei die Zuordnung einer Applikationskomponente auf eine Plattformkomponente zulässig ist, wenn
- I. eine Applikationskomponente auch als logische Plattformunterkomponente der Plattformkomponente existiert, oder
- II. eine Applikationskomponente von einer logischen Plattformunterkomponente der Plattformkomponente durch Verhaltenserweiterung abgeleitet ist,
- I. an application component also exists as a logical platform subcomponent of the platform component, or
- II. An application component is derived from a logical platform subcomponent of the platform component by behavior extension,
Falls die Zuordnung einer Applikationskomponente auf eine Plattformkomponente nicht zulässig ist, kann in einer vorteilhaften Ausführung geprüft werden, ob die Bindung einer Vaterkomponente der Applikationskomponente zulässig ist.If the assignment of an application component to a platform component is not allowed can in an advantageous embodiment being checked, whether the binding of a parent component of the application component permissible is.
In einem vierten Schritt wird die Menge der Cluster von Applikationskomponenten bestimmt, wobei ein Cluster solche Applikationskomponenten umfasst, die derselben Plattformkomponente zugeordnet werden müssen.In a fourth step is the set of clusters of application components determined, wherein a cluster comprises such application components, which must be assigned to the same platform component.
In einem fünften Schritt wird eine erste Systemvariante durch vollständige Zuordnung der Cluster von Applikationskomponenten auf die Plattformkomponenten erzeugt.In a fifth Step is a first system variant by complete assignment the cluster of application components on the platform components generated.
In einem sechsten Schritt wird überprüft, ob die erzeugte Systemvariante vorgegebene funktionale und nicht-funktionale Anforderungen erfüllt; fällt die Prüfung negativ aus, werden durch Änderung der Zuordnung der Cluster auf die Plattformkomponenten neue Systemvarianten erzeugt, uns zwar solange, bis eine zulässige Systemvariante vorliegt.In a sixth step, it is checked whether the generated system variant fulfills given functional and non-functional requirements; If the test is negative, new system variants are generated by changing the assignment of the clusters to the platform components. until there is an admissible system variant.
In einem siebten Schritt schließlich wird die zulässige Systemvariante in eine Systemtabelle für das elektronische System transformiert.In a seventh step finally will be the allowed System variant in a system table for the electronic system transformed.
Mit der vorliegenden Erfindung sind die folgenden Vorteile beim Einsatz in Luftfahrzeugen verbunden:
- – Effizienzerhöhung bei der Integration von IMA-Systemen durch Automatisierung und inhärente Konsistenzsicherung;
- – Beschleunigung inkrementeller Änderungen im IMA-Systemdesign durch Automatisierung wichtiger Systemintegrationsschritte;
- – Wiederverwendbarkeit von Komponenten und konfigurierten Systemvarianten durch Speicherung in Datenbank; langfristiger Know-How-Aufbau und potentielle Effizeinzsteigerung bei der Entwicklung neuer IMA-Systeme;
- – Systemtabellen-Gernerierung adaptierbar für verschiedene Plattformen durch einfachen Austausch des Systemtabellen-Generators (z.B. ASAAC/ARINC), wobei Systemkonfigurator und Datenbankformat gleich bleiben (ASAAC und ARINC sind international standardisierte IMA-Plattformen).
- - Increase of efficiency in the integration of IMA systems through automation and inherent consistency assurance;
- Acceleration of incremental changes in IMA system design by automating key system integration steps;
- - Reusability of components and configured system variants through storage in database; long-term know-how build-up and potential increase in efficiency in the development of new IMA systems;
- - System table generation adaptable to different platforms by simply swapping the system table generator (eg ASAAC / ARINC) keeping the system configurator and database format the same (ASAAC and ARINC are internationally standardized IMA platforms).
Die Erfindung wird im Folgenden anhand konkreter Beispiele unter Bezugnahme auf Fig. näher erläutert. Es zeigen:The The invention will be described below with reference to specific examples closer to Fig explained. Show it:
Die
Datenbank
Formale Spezifikationsmethodik (
Das erfindungsgemäße Verfahren gründet sich auf eine formale Spezifikationsmethodik. Diese wird nachfolgend beschrieben, bevor das erfindungsgemäße Verfahren selbst im Einzelnen erläutert wird.The inventive method is founded on a formal specification methodology. This will be below described before the inventive method itself in detail explained becomes.
1. Komponentenbasierte Beschreibung1. Component-based description
Die komponentenbasierte Beschreibung (auch Spezifikation) von Verarbeitungs- und Kommunikationsfunktionalitäten mittels so genannter Verarbeitungskomponenten und Kommunikationskomponente respektive. Komponentenbeschreibungen im Sinne dieser Erfindung beinhalten:
- a) Ports zur Datenflussmodellierung
- b) Methoden zur Kontrollflussmodellierung und
- c) Attribute zur Beschreibung nichtfunktionaler Eigenschaften, wie z.B. Bandbreiten von Netzwerksystemen, Ausführungszeiten, Abmessungen von Hardwaremodulen, etc.
- a) Ports for data flow modeling
- b) methods for control flow modeling and
- c) Attributes describing non-functional properties, such as bandwidths of network systems, execution times, dimensions of hardware modules, etc.
Wie
in
Attribute im Sinne dieser Erfindung besitzen einen Namen, einen Typ, einen Wertebereich (gemäß Typ), einen Defaultwert (gemäß Typ) und eine optionale Evaluierungsfunktion.attributes For the purposes of this invention have a name, a type, a Value range (according to type), a default value (according to type) and an optional evaluation function.
2. Beschreibung von struktureller Verfeinerung2. Description of structural refinement
Es
besteht die Möglichkeit
der strukturellen Verfeinerung von Komponenten mittels Unterkomponenten,
wie in
Diese
Methode der strukturellen Verfeinerung basiert darauf, dass eine
Vaterkomponente mittels einer beliebigen Anzahl Unterkomponenten
modelliert und die Datenflüsse
(via Ports) und Kontrollflüsse
(via Methoden) zwischen dieser Unterkomponenten spezifiziert werden.
Bei Unterkomponenten wird unterschieden zwischen echten Unterkomponenten
und logischen Unterkomponenten, wobei letztere Platzhalter (auch
als "Templates" bezeichnet) für später einzufügende echte
Unterkomponenten darstellen. Zu diesem Zweck besteht die Möglichkeit,
für eine
logische Unterkomponente die minimale und maximale Anzahl der einzufügenden echten
Unterkomponenten zu spezifizieren (siehe
Des weiteren werden funktionale Abhängigkeiten zwischen den Attributen der Vaterkomponente und den Attributen der enthaltenen Unterkomponenten in Form von Evaluierungsfunktionen definiert. Es handelt sich hierbei um ein allgemeines Prinzip aus dem Compilerbau, hier angewandt auf die Systemhierarchie.Of others become functional dependencies between the attributes of the parent component and the attributes of the parent contained subcomponents in the form of evaluation functions Are defined. It is a general principle of the Compiler build, applied here to the system hierarchy.
3. Beschreibung von Verhaltenserweiterung3. Description of behavior extension
Es
besteht die Möglichkeit
der Verhaltenserweiterung von Komponenten, wie in
Verhaltenserweiterung
kann sowohl für
Verarbeitungs- als auch für
Kommunikationskomponenten angewendet werden. Die hier beschriebene
formale Modellierungsmethodik definiert die „extends" Relation als Spezifikationsprimitiv
für die
Verhaltenserweiterung. Mathematisch korrekt (siehe
4. Beschreibung von (Architektur-)Schichten4. Description of (architectural) layers
Dies
betrifft die Möglichkeit
der Beschreibung einer Architektur mittels Schichten (engl. Layer),
welche eine Menge von Komponenten in die zwei Klassen Plattformkomponenten
(„Platform
Building Blocks")
und Applikationskomponenten („Applicati on Building
Blocks") unterteilen
(
Zum
Zweck der besseren Verständlichkeit sind
in den
5. Beschreibung der Applikationsbindung5. Description of the application binding
Dies betrifft die Beschreibung verschiedener Varianten der Zuordnung (Bindung) einer Applikation bestehend aus Applikationskomponenten auf eine Plattform bestehend aus Plattformkomponenten. Ein solches Binding ist nur möglich, wenn alle Applikationskomponenten entweder als logische Unterkomponente einer Komponente in der Plattform existieren oder von einer solchen Unterkomponente mittels Verhaltenserweiterung abgeleitet wurden.This concerns the description of different variants of the assignment (Binding) of an application consisting of application components on a platform consisting of platform components. Such Binding is only possible if all application components either as a logical subcomponent a component in the platform exist or from such Subcomponent derived by means of behavioral extension.
Nachfolgend
ist beispielhaft ein mögliches Bindings
einer Applikation auf eine Plattform dargestellt und erläutert. Eine
graphische Darstellung hierzu zeigt
- 1) Prozesse „TerrainProvision" und „ObstacleProvision" werden auf die Plattformkomponente „MMM" gebunden, da nur
diese Plattformkomponente Applikationsprozesse mit einem Speicher-API
(MEM) ausführen
kann. Dies sind, gemäß
4 , all jene Applikationsprozesse, die von Prozess „MMMProcess" mittels Verhaltenserweiterung abgeleitet wurden. - 2) Der Prozess „GraphicProcessing" wird auf Plattformkomponente „GPM" gebunden, da nur diese
Plattformkomponente Applikationsprozesse mit Graphik-API ausführen kann.
Wie
4 entnommen werden kann, wurde der Prozess "Graphic Processing" mittels Verhaltenserweiterung vom Prozess GPMProcess abgeleitet. - 3) Die Prozesse „ProximityWarning" und „VisionControl" können auf
die Plattformkomponenten MMM, DPM oder GPM gebunden werden, da Applikationsprozesse
welche von Prozess „DPMProcess" abgeleitet wurden
(siehe
4 ) auf allen 3 Plattformkomponenten ausgeführt werden können (die Plattformkomponenten „MMM", „DPM" oder „GPM" beinhalten jeweils logische Unterkomponenten vom Typ DPMProcess). Im Interesse einer gleichmäßigen Lastverteilung wird jedoch eine Bindung auf Plattformkomponente „DPM" erfolgen (Prinzip des statischen „Load Balancing"). - 4) Nach erfolgter Bindung der Verarbeitungskomponenten der Applikation auf die Plattform erfolgt die Bindung der zughörigen Kommunikationskomponenten. Nachfolgende Beschreibung beruht auf der Annahme, dass die beiden Prozesse „ProximityWarning" und „VisionControl" auf die Plattformkomponente „DPM" gebunden wurden.
- 5) Die Kommunikationskomponente „LocalVirtualChannel" (LVC) zwischen den Prozessen „ProximityWarning" und „VisionControl" wird wird auf die Plattformkomponente „DPM" gebunden.
- 6) Alle weiteren Kommunikationskomponenten der Applikation sind „GlobalVirtualChannels" (GVC), welche eine
Kommunikation zwischen Applikationsprozessen auf verschiedenen Plattformkomponenten
ermöglichen.
GVCs können
nicht direkt gebunden werden, da entsprechende „logische" Komponenten nicht Bestandteil der Modulspezifikation
sind (siehe
3 für die Plattformkomponente DPM). Gebunden werden statt dessen die beiden Unterkomponenten „VCStub" eines GVC (sieh5 ). Wie in8 dargestellt, erfolgt diese Bindung verteilt auf die beiden Plattformkomponenten MMM, DPM, welche die beiden über den GVC kommunizierenden Verarbeitungsfunktionen der Applikation ausführen. - 7) Falls die Zuordnung einer Applikationskomponente auf eine
Plattformkomponente nicht zulässig
ist, kann geprüft
werden, ob die Bindung einer Vaterkomponente der Applikationskomponente zulässig ist.
Beispiel hierfür
ist der Pro zess "TerrainProvision", der als strukturell
verfeinerte Vaterkomponente (siehe z.B.
4 ) auf die Plattformkomponente MMM gebunden wird, wobei alle Unterkomponenten der Vaterkomponente implizit mit gebunden werden.
- 1) Processes "TerrainProvision" and "ObstacleProvision" are bound to the platform component "MMM", since only this platform component can execute application processes with a storage API (MEM)
4 , all those application processes derived from the "MMMProcess" process by means of behavior extension. - 2) The "GraphicProcessing" process is bound to platform component "GPM", since only this platform component can execute application processes with graphics API. As
4 can be taken, the process "Graphic Processing" was derived by means of behavior extension of the process GPMProcess. - 3) The processes "ProximityWarning" and "VisionControl" can be linked to the platform components MMM, DPM or GPM, as application processes derived from process "DPMProcess" (see
4 ) can be executed on all three platform components (the platform components "MMM", "DPM" or "GPM" each contain logical subcomponents of the type DPMProcess) However, in the interests of uniform load distribution, binding will take place on platform component "DPM" (principle of static) "Load balancing"). - 4) After the processing components of the application have been linked to the platform, binding of the associated communication components takes place. The following description is based on the assumption that the two processes "ProximityWarning" and "VisionControl" were bound to the platform component "DPM".
- 5) The communication component "LocalVirtualChannel" (LVC) between the processes "ProximityWarning" and "VisionControl" is bound to the platform component "DPM".
- 6) All other communication components of the application are "GlobalVirtualChannels" (GVC), which enable communication between application processes on different platform components.GVCs can not be bound directly, because corresponding "logical" components are not part of the module specification (see
3 for the platform component DPM). Instead, the two subcomponents "VCStub" of a GVC are bound (see5 ). As in8th As shown, this binding is distributed over the two platform components MMM, DPM, which execute the two processing functions of the application communicating via the GVC. - 7) If the assignment of an application component to a platform component is not permitted, it can be checked whether the binding of a parent component of the application component is permitted. An example of this is the process "TerrainProvision", which is a structurally refined father component (see eg
4 ) is bound to the platform component MMM, with all subcomponents of the parent component being implicitly bound.
Hinweis:
Konfigurationsalgorithmus (
Eine
generelle Übersicht über das
erfindungsgemäße Konfigurationsverfahren
und der Abhängigkeiten
zwischen den einzelnen Schritten ist in
Schritt 1Step 1
In
einem ersten Schritt wird die Spezifikation der funktionalen Systemarchitektur
(Applikation AK) sowie der physikalische Systemarchitektur (Plattform PK)
zur Verfügung
gestellt (siehe
Schritt 2step 2
Zielsetzung
dieses Schrittes ist die Bestimmung der Menge der logischen Komponenten,
die von der Plattformkomponente angeboten werden. Eine beispielhafte
Ausführung
ist in
Input:
Plattformkomponente (PK)
Output: die Menge PLK (logische
Komponenten der Plattform),
eine Abbildung der logischen Komponenten
auf eine Menge möglicher
Vaterkomponenten fVK()
- a. die Menge PLK und die Abbildung fVK() sind anfangs leer, d.h. PLK = {} und fVK() = {}
- b. die Menge PK enthält die noch nicht auf logische Komponenten untersuchten Komponenten und enthält anfangs nur die PK, d.h. PK = {PK}
- c. solange die Menge (1) PK nicht leer ist (PK ≠ {}) wähle eine Komponente K aus PK und entferne sie aus PK, (2) PK leer ist (PK ≡ {}) gehe zu f.
- d. für jede (wenn vorhanden) Unterkomponente (UK) von K untersuche ob sie (1) eine echte Unterkomponente ist, dann füge sie zu PK hinzu (PK = PK ∪ UK), (2) eine logische Unterkomponente ist, dann füge sie zur Menge PLK hinzu (PLK = PLK ∪ UK) hinzu, weiterhin füge K zu fVK(UK) hinzu (fVK(UK) = fVK(UK) ∪ K)
- e. gehe zu c.
- f. falls PLK leer ist (PLK ={}), dann kann auf diese Plattformkomponente nichts gebunden werden (Fehler), ansonsten enthält PLK die Menge der logischen Komponenten von PK
Input: Platform Component (PK)
Output: the set P LK (logical components of the platform),
a mapping of the logical components to a set of possible father components f VK ()
- a. the set P LK and the mapping f VK () are initially empty, ie P LK = {} and f VK () = {}
- b. the set P K contains the components not yet examined for logical components and initially contains only the PK, ie P K = {PK}
- c. as long as the set (1) P K is not empty (P K ≠ {}) choose a component K from P K and remove it from P K , (2) P K is empty (P K ≡ {}) go to f ,
- d. For each (if any) subcomponent (UK) of K, examine whether it is (1) a true subcomponent, then add it to P K (P K = P K ∪ UK), (2) is a logical subcomponent, then add add them to the set P LK (P LK = P LK ∪ UK), add K to f VK (UK) (f VK (UK) = f VK (UK) ∪ K)
- e. go to c.
- f. if P LK is empty (P LK = {}) then nothing can be tied to this platform component (error), otherwise P LK contains the set of logical components of PK
Schritt 3step 3
Zielsetzung
dieses Schrittes ist die Bestimmung der Menge der zu bindenden Applikationsunterkomponenten
ABK. Eine beispielhafte Ausführung ist
in
Input: Applikationskomponente
AK und PLK
Output: die Menge ABK (die zu bindenden Applikationsunterkomponenten)
- a. die Menge ABK ist anfangs leer, d.h. ABK = {}
- b. die Menge AK enthält die noch nicht auf Bindbarkeit untersuchten Komponenten und enthält anfangs nur die AK, d.h. AK = {AK}
- c. solange die Menge (1) AK nicht leer ist (AK ≠ {}) wähle eine Komponente A aus AK und entferne sie aus AK, (2) AK leer ist (AK ≡ {}) gehe zu e.
- d. falls die Komponente A (1) ein Subtyp einer Komponente in PLK ist, füge A zu ABK hinzu (ABK = ABK ∪ A), sonst (2) echte Unterkomponenten besitzt, füge alle echten Unterkomponenten von A in AK ein, sonst (3) auf der Plattform nicht bindbar (Fehler)
- e. die Menge ABK enthält alle auf die Plattform zu bindenden Komponenten
Input: Application component AK and P LK
Output: the set A BK (the application subcomponents to bind)
- a. the set A BK is initially empty, ie A BK = {}
- b. the set A K contains the components not yet examined for bondability and initially contains only the AK, ie A K = {AK}
- c. as long as the set (1) A K is not empty (A K ≠ {}) choose a component A from A K and remove it from A K , (2) A K is empty (A K ≡ {}) go to e ,
- d. if component A (1) is a subtype of a component in P LK , add A to A BK (A BK = A BK ∪ A), otherwise (2) has true subcomponents, add all true subcomponents from A to A K , otherwise (3) not bindable on the platform (error)
- e. the set A BK contains all components to be bound to the platform
Schritt 4Step 4
Zielsetzung
dieses Schrittes ist die Ermittlung unmittelbarer Bindungsnebenbedingungen
(Bindungsconstraints, insbesondere aufgrund notwendiger lokaler
Kontroll← und
Datenflüsse – lokal
bedeutet hier auf dem selben Prozessor und somit im selben Speicher
(On-Board)) durch Clusterbildung, d.h. aus ABK die
Menge der zu bindenden Cluster ABC ermitteln.
Eine beispielhafte Ausführung
ist in
Input:
ABK (die zu bindenden Applikationsunterkomponenten)
Output:
ABC (Menge der zu bindenden Cluster von Applikationsunterkomponenten)
- a. die Menge ABC ist anfangs leer, d.h. ABC = {}
- b. solange die Menge (1) ABK nicht leer (ABK ≠ {}) ist, wähle eine Komponente A aus ABK und entferne sie aus ABK, sonst (2) ABK leer ist (ABK ≡ {}) gehe zu f.
- c. füge A in die Menge ACluster ein (ACluster = {A})
- d. füge alle mit A über Kontrollflüsse (requires/provides) oder Datenflüsse (in/out/inout) verbundene Komponenten in ACluster ein, entferne diese Komponenten aus ABK, ACluster enthält damit alle mit A verbunden Komponenten (transitive Hülle)
- e. füge ACluster in ABC ein und gehe zu b.
- f. die Menge ABC einhält alle zusammenhängenden Cluster der Applikationskomponente, wobei jeder Cluster aus auf die Plattform bindbaren Komponenten besteht
Input: A BK (the application subcomponents to be bound)
Output: A BC (set of clusters of application subcomponents to bind)
- a. the set A BC is initially empty, ie A BC = {}
- b. as long as the set (1) ABK is not empty (ABK ≠ {}), select a component A from ABK and remove it from ABK, otherwise (2) ABK is empty (ABK ≡ {}) go to f.
- c. add A to the set A cluster (A cluster = {A})
- d. insert all components connected to A via control flows (requires / provides) or data flows (in / out / inout) into A cluster , remove these components A BK , A cluster contains all components connected to A (transitive shell)
- e. insert A Cluster in A BC and go to b.
- f. the set A BC includes all contiguous clusters of the application component, each cluster consisting of components bindable to the platform
Schritt 5Step 5
Ziel
dieses Schrittes ist die Ermittlung einer initialen Bindung der
Cluster auf die Plattform. Eine beispielhafte Ausführung ist
in
Input:
fVK() (Abbildung von logischen Komponenten zu
ihren Vaterkomponenten),
ABC (Menge
der zu bindenden Cluster von Applikationsunterkomponenten)
Output:
S (Systemvariante bestehend aus zwei Unterkomponenten AK und PK,
wobei die AK vollständig
auf die PK gebunden ist)
- a. Erzeuge S, mit zwei echten Unterkomponenten AK und PK
- b. solange die Menge ABC (1) nicht leer (ABC ≠ {}) ist, wähle einen Cluster C aus ABC und entferne ihn aus ABC, sonst (2) leer ist (ABC ≡ {}) gehe zu f.
- c. wähle aus C eine Komponente K aus, setzte die Menge M gleich fVK(K)
- d. solange die Menge M (1) nicht leer (M ≠ {}) ist, wähle eine Komponente VK aus M und entferne sie aus M, sonst (2) leer ist (M ≡ {}), dann ist es nicht möglich den Cluster C auf die PK zu binden (Fehler) oder falls bereits Cluster der Plattformunterkomponente zugeordnet wurden und diese potentiell auch auf andere Plattformunterkomponenten bindbar sind (durch andere Wahl in [d.(1)] oder [b.(1)]), dann kann durch back-tracking diese Wahl rückgängig gemacht werden und erneut versucht werden, C zu binden
- e. wenn die VK (1) genügend ungebundene logische Unterkomponenten besitzt, um alle Komponenten des Clusters C diesen logischen Unterkomponenten zuzuordnen, dann binde (verlinke) die Komponenten von C mit den entsprechenden logischen Unterkomponenten von VK und gehe zu b. (2) nicht genügend ungebundene logische Unterkomponenten besitzt, um alle Komponenten des Clusters C diesen logischen Unterkomponenten zuzuordnen, dann gehe zu d.
- f. S ist eine vollständig gebundene Systemvariante
Input: f VK () (mapping of logical components to their parent components),
A BC (set of clusters of application subcomponents to bind)
Output: S (system variant consisting of two subcomponents AK and PK, whereby the AK is completely bound to the PK)
- a. Create S, with two real subcomponents AK and PK
- b. as long as the set A BC (1) is not empty (A BC ≠ {}), choose a cluster C from A BC and remove it from A BC , otherwise (2) is empty (A BC ≡ {}) go to f ,
- c. choose from C a component K, set the set M equal to f VK (K)
- d. as long as the set M (1) is not empty (M ≠ {}), choose a component VK from M and remove it from M, otherwise (2) is empty (M ≡ {}), then it is not possible the cluster C bind to the PK (errors) or if clusters have already been mapped to the platform subcomponent and they are potentially bindable to other platform subcomponents (by other choice in [d. (1)] or [b. (1)]), then This choice can be undone by back-tracking and trying to bind C again
- e. if the VK (1) has enough unbound logical subcomponents to map all components of cluster C to these logical subcomponents, then link (link) the components of C to the corresponding logical subcomponents of VK and go to b. (2) does not have enough unbound logical subcomponents to map all components of cluster C to these logical subcomponents, then go to d.
- f. S is a fully bound system variant
Schritt 6Step 6
In
diesem Schritt wird die Erfüllung
der funktionalen und nicht-funktionalen Eigenschaften der Systemvariante überprüft.
Input:
S (vollständig
gebundene Systemvariante)
Output: S (gültige Systemvariante, d.h.
erfüllt
die funktionalen und nicht-funktionalen Eigenschaften)
- a. Überprüfung kumulativer nicht-funktionaler Eigenschaften, z.B. (1) Speicheranforderung: Jede gebundene Applikationsunterkomponente (A1, A2, ...) kann Attribute mit Speicheranforderungen (Stack, Heap, etc.) definieren. Die Speicheranforderung an die Plattform ist die Summe aller entsprechenden Speicheranforderungen der Applikationsunterkomponenten, die auf eine logische Plattformkomponente (siehe Schritt 5e.(1)) gebunden sind (StackSum = Stack(A1) + Stack(A2) + ...). Die direkte Plattformvaterkomponente oder eine ihrer Vaterkomponenten kann eine maximale Speichergröße (z.B.: MaxHeap, etc.) definieren, sodass überprüft werden kann, ob überhaupt genügend Speicher für die Applikationskomponenten auf der Plattform zur Verfügung steht. Falls nicht genügend Speicher zur Verfügung steht, ist diese nicht-funktionale Eigenschaft nicht erfüllt und damit die Systemvariante ungültig (Fehler). Analog zu Schritt 5d.(2) kann ein back-tracking durchgeführt werden, um eine neue Systemvariante zu erhalten. (2) Lasten: Jede Applikationsunterkomponente AUK definiert einen lokalen Taskgraphen gemäß [1, 2] mit den Tasks T(AUK) = T1, ..., Tn. Durch der Verbindung der AUKs entsteht ein globaler Taskgraph. Daraus lässt sich die Periode der entsprechenden Tasks ableiten. Sobald eine Applikation auf eine logische Plattformkomponente PFK gebunden ist (siehe Schritt 5e.(1)) lassen sich die Ausführungszeiten der Tasks auf dieser PFK ermitteln. Die Last eines Tasks T ist dann das Verhältnis zwischen Ausführungszeit und Periode (Last(T) = Zeit(T, PFK)/Periode(T)). Die Menge der auf einer PFK gebundenen Tasks ist gegeben durch die Menge aller Tasks der gebundenen Applikationskomponenten (T(PFK) = T(AUK1) + T(AUK2) + ...). Somit lässt sich die Gesamtlast einer PFK durch Summierung aller Teillasten ermitteln (Last(PFK) = Last(T1) + Last(T2) + ...). Ist diese Last größer 1, so ist die PFK überlastet und die Systemvariante ungültig (Fehler). Analog zu Schritt 5d.(2) kann ein Back-Tracking durchgeführt werden, um eine neue Systemvariante zu erhalten. Es ist darauf hinzuweisen, dass kumulative Eigenschaften bereits in Schritt 5e. als zusätzliche Bedingung überprüft werden können (d.h. genügend ungebunden logische Komponenten UND entsprechende kumulative Eigenschaft erfüllt). Dies kann von Vorteil sein, da sie sehr schnell überprüfbar sind.
- b. Überprüfung zeitlicher nicht-funktionaler Eigenschaften z.B. Analyse von WCETs (Worst Case Execution Times = Ausführungs/Durchlaufzeiten im schlechtesten Fall) und BCETs (Best Case Execution Times Ausführungs/Durchlaufzeiten im besten Fall) nach der Methode beschrieben in [1, 2], wobei das Verfahren an die in Anhang B beschriebene Modellierung angepasst wird: (1) die Plattformkomponenten definieren jeweils ein WCET und BCET Attribut, welche mit jeweils einer Evaluierungsfunktion verbunden sind. (2) diese Evaluierungsfunktionen besitzen als Eingabeparameter den Task T. Dieser Task T entspricht einem auf der Plattformkomponente gebunden Task. (3) Es existieren verschiedene Evaluierungsfunktionen in der Datenbank für die verschiedenen Scheduling Verfahren (z.B. RMS, TDMA, etc.) Nach der Berechnung der BCETs und WCETs wird die Einhaltung von Deadlines (Zeit zwischen zwei Ereignissen, z.B. von der Aktivierung eines Task bis zur Deaktivierung) und die Überschreitung der Periode durch die WCET eines Task (WCET muss kleiner als Periode sein) überprüft. Bei der Verletzung einer dieser beiden Eigenschaften wird (1) entweder: die Priorität (bei RMS) bzw. der Timeslot (bei TDMA) des Tasks erhöht und erneut Schritt [b.] durchlaufen, (2) oder: Analog zu Schritt 5d.(2) kann ein Back-Tracking durchgeführt werden, um eine neue Systemvariante zu erhalten. (3) oder: die Systemvariante wird als ungültig zurückgewiesen (Fehler).
- c. Überprüfung funktionaler Eigenschaften z.B.: Deadlock- und Lifelock-Freiheit, Erreichbarkeit von Systemzuständen. Basierend auf der formalen Beschreibung des Komponentenmodells (Prozessalgebra gemäß [3]) wird eine statische Analyse der Systemvariante durchgeführt, die mögliche Deadlock- und Lifelockzustän de identifiziert. Falls Deadlocks, Lifelocks existieren bzw. geforderte Systemzustände nicht erreicht werden, ist die Systemvariante ungültig (Fehler). Diese Analyse kann bereits (teilweise) vor Schritt 2 durchgeführt werden
- d. Wenn a., b. und c. erfolgreich durchlaufen sind, ist die Systemvariante gültig
Input: S (fully bound system variant)
Output: S (valid system variant, ie fulfills the functional and non-functional properties)
- a. Review of cumulative non-functional properties, eg (1) memory requirement: Each bound application subcomponent (A1, A2, ...) can define attributes with memory requirements (stack, heap, etc.). The memory requirement to the platform is the sum of all corresponding memory requirements of the application subcomponents bound to a logical platform component (see step 5e (1)) (Stack Sum = Stack (A1) + Stack (A2) + ...). The direct platform father component or one of its parent components can define a maximum memory size (eg, MaxHeap, etc.) so that it can be checked if there is enough memory available for the application components on the platform at all. If not enough memory is available, this non-functional property is not fulfilled and the system variant is invalid (error). Analogous to step 5d (2), a back-tracking can be carried out in order to obtain a new system variant. (2) Loads: Each application subcomponent AUK defines a local task graph according to [1, 2] with the tasks T (AUK) = T 1 , ..., T n . The combination of the AUKs creates a global task graph. From this the period of the corresponding tasks can be derived. As soon as an application is bound to a logical platform component PFK (see step 5e (1)), the execution times of the tasks can be determined on this PFK. The load of a task T is then the relationship between execution time and period (load (T) = time (T, PFK) / period (T)). The set of tasks bound on a PFK is given by the set of all tasks of the bound application components (T (PFK) = T (AUK1) + T (AUK2) + ...). Thus, the total load of a PFK can be determined by summing all partial loads (load (PFK) = load (T1) + load (T2) + ...). If this load is greater than 1, the PFK is overloaded and the system variant is invalid (error). Analogous to step 5d (2), back-tracking can be carried out in order to obtain a new system variant. It should be noted that cumulative properties already in step 5e. can be checked as an additional condition (ie enough unbound logical components AND corresponding cumulative property met). This can be an advantage as they can be checked very quickly.
- b. Review of temporal non-functional properties eg analysis of WCETs (Worst Case Execution Times) and BCETs (Best Case Execution Times execution / lead times in the best case) according to the method described in [1, 2], where the Is adapted to the modeling described in Appendix B: (1) the platform components each define a WCET and BCET attribute, each associated with an evaluation function. (2) these evaluation functions have the task T as input parameters. This task T corresponds to a task bound on the platform component. (3) There are various evaluation functions in the database for the different scheduling methods (eg RMS, TDMA, etc.) After the BCETs and WCETs have been calculated, deadlines are observed (time between two events, eg from the activation of a task to the Deactivation) and the exceeding of the period by the WCET of a task (WCET must be less than period). If either of these two properties are violated, either (1) the priority (in RMS) or timeslot (in the case of TDMA) of the task is incremented, and step [b.] Is repeated, (2) or: analogously to step 5d. 2) back-tracking can be performed to get a new system variant. (3) or: the system variant is rejected as invalid (error).
- c. Check of functional properties eg deadlock and Lifelock freedom, accessibility of system states. Based on the formal description of the component model (process algebra according to [3]), a static analysis of the system variant is performed, which identifies possible deadlock and Lifelockzustän de. If deadlocks, Lifelocks exist or required System statuses are not reached, the system variant is invalid (error). This analysis may already be performed (in part) before step 2
- d. If a., B. and c. have passed successfully, the system variant is valid
Schritt 7Step 7
Das
Ziel dieses Schrittes ist die Transformation der verifizierten Systemvariante
in eine Systemtabelle. Eine beispielhafte Ausführung ist in
Input:
SVER (gültige
Systemvariante)
tf() (eine Transformationsvorschrift von Komponenten
und Attributen der Systemvariante in Elemente der Systemtabelle)
Output:
ST (Systemtabelle)
a. ST = tf(S)The goal of this step is to transform the verified system variant into a system table. An exemplary embodiment is in
Input: S VER (valid system variant)
tf () (a transformation specification of components and attributes of the system variant in elements of the system table)
Output: ST (system table)
a. ST = tf (S)
Referenzenreferences
-
[1]
Razvan Racu, Kai Richter, Rolf Ernst. Calculating Task Output Event Models to Reduce Distributed System Cost. In GI/ITG/GMM Workshop Methoden und Beschreibungssprachen zur Modellierung und Verifikation von Schaltungen und Systemen, pages 1–10. Kaiserslautern, Germany, February 2004 Razvan Racu, Kai Richter, Rolf Ernst. Calculating Task Output Event Models to Reduce Distributed System Cost. In GI / ITG / GMM Workshop Methods and Description Languages for Modeling and Verifying Circuits and Systems, pages 1-10. Kaiserslautern, Germany, February 2004 -
[2]
R. Henia, A. Hamman, M. Jersak, R. Racu, K. Richter, R. Ernst. System Level Performance Analysis – the SymTA/S Approach. IEEE Proceedings Computers and Digital Techniques, 2005 R. Henia, A. Hamman, M. Jersak, R. Racu, K. Richter, R. Ernst. System Level Performance Analysis - the SymTA / S Approach. IEEE Proceedings Computers and Digital Techniques, 2005 -
[3]
S. Förster, M. Fischer, A. Windisch, B. Balser, D. Monjau. A New Specification Methodology for Embedded Systems based an the Pi-Calculus Process Algebra. In Proceedings of the 14th International IEEE Workshop an Rapid System Prototyping (RSP), San Diego, USA, 2003 S. Forster, M. Fischer, A. Windisch, B. Balser, D. Monjau. A New Specification Methodology for Embedded Systems based on the Pi-Calculus Process Algebra. In Proceedings of the 14th International IEEE Workshop on Rapid System Prototyping (RSP), San Diego, USA, 2003
Claims (2)
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102006040698A DE102006040698A1 (en) | 2006-08-30 | 2006-08-30 | Automated, model-based method for integrating a functional system architecture with a physical system architecture to an electronic system |
GB0716690A GB2441432A (en) | 2006-08-30 | 2007-08-28 | An Automated Model Based Procedure for Integrating a Functional with a Physical System Architecture to form an Electronic System. |
FR0706096A FR2905491B1 (en) | 2006-08-30 | 2007-08-30 | MODEL-BASED AUTOMATIC METHOD FOR THE INTEGRATION OF A FUNCTIONAL SYSTEM ARCHITECTURE WITH A PHYSICAL SYSTEM ARCHITECTURE FOR FORMING AN ELECTRONIC SYSTEM |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102006040698A DE102006040698A1 (en) | 2006-08-30 | 2006-08-30 | Automated, model-based method for integrating a functional system architecture with a physical system architecture to an electronic system |
Publications (1)
Publication Number | Publication Date |
---|---|
DE102006040698A1 true DE102006040698A1 (en) | 2008-03-20 |
Family
ID=38599341
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE102006040698A Withdrawn DE102006040698A1 (en) | 2006-08-30 | 2006-08-30 | Automated, model-based method for integrating a functional system architecture with a physical system architecture to an electronic system |
Country Status (3)
Country | Link |
---|---|
DE (1) | DE102006040698A1 (en) |
FR (1) | FR2905491B1 (en) |
GB (1) | GB2441432A (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2978265A1 (en) | 2011-07-20 | 2013-01-25 | Eads Europ Aeronautic Defence | AUTOMATIC METHOD BASED ON MODELS FOR THE GENERATION OF PHYSICAL ARCHITECTURES OF SYSTEMS AND THEIR OPTIMIZATION |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6289488B1 (en) * | 1997-02-24 | 2001-09-11 | Lucent Technologies Inc. | Hardware-software co-synthesis of hierarchical heterogeneous distributed embedded systems |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5870588A (en) * | 1995-10-23 | 1999-02-09 | Interuniversitair Micro-Elektronica Centrum(Imec Vzw) | Design environment and a design method for hardware/software co-design |
US7243330B1 (en) * | 2005-04-21 | 2007-07-10 | Xilinx, Inc. | Method and apparatus for providing self-implementing hardware-software libraries |
US20070162531A1 (en) * | 2006-01-12 | 2007-07-12 | Bhaskar Kota | Flow transform for integrated circuit design and simulation having combined data flow, control flow, and memory flow views |
US20070162268A1 (en) * | 2006-01-12 | 2007-07-12 | Bhaskar Kota | Algorithmic electronic system level design platform |
-
2006
- 2006-08-30 DE DE102006040698A patent/DE102006040698A1/en not_active Withdrawn
-
2007
- 2007-08-28 GB GB0716690A patent/GB2441432A/en not_active Withdrawn
- 2007-08-30 FR FR0706096A patent/FR2905491B1/en not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6289488B1 (en) * | 1997-02-24 | 2001-09-11 | Lucent Technologies Inc. | Hardware-software co-synthesis of hierarchical heterogeneous distributed embedded systems |
Also Published As
Publication number | Publication date |
---|---|
GB2441432A (en) | 2008-03-05 |
GB0716690D0 (en) | 2007-10-03 |
FR2905491B1 (en) | 2011-09-02 |
FR2905491A1 (en) | 2008-03-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE102005014273B4 (en) | Comparison of interfaces between software components | |
DE60017457T2 (en) | PROCEDURE FOR ISOLATING AN ERROR IN ERROR MESSAGES | |
DE102016119320A1 (en) | Method for configuring a real or virtual electronic control unit | |
DE10333087A1 (en) | Process for the automatic decomposition of dynamic system models into sub-models | |
EP3285165A1 (en) | Modification and simulation of the operating software of a technical system | |
WO2001073279A2 (en) | Method and device for modelling a mechatronic system in a motor vehicle | |
DE10324594A1 (en) | Method for providing improved simulation capabilities of a dynamic system outside of the original modeling environment | |
EP3306295A1 (en) | Method and device for testing electronic controls, in particular for testing of automobile control systems | |
DE112008003511T5 (en) | Integrated technical analysis process | |
DE102006040698A1 (en) | Automated, model-based method for integrating a functional system architecture with a physical system architecture to an electronic system | |
DE112008003514T5 (en) | Integrated technical analysis system | |
DE102012210482A1 (en) | Method and system for migrating business process instances | |
EP1483745A2 (en) | Device and method for assessing the safety of systems and for obtaining safety in systems, and corresponding computer program | |
WO2019223970A1 (en) | Creating of an interdisciplinary simulation model | |
EP3702922A1 (en) | Method for the computer-assisted validation of embedded software | |
DE102016115314A1 (en) | Modifying and simulating the operating software of a technical system | |
DE102020213809A1 (en) | Method for operating a control device when testing software in the control device and method for operating a test computer when testing software in a control device | |
WO2007107394A2 (en) | Method and management system for configuring an information system | |
EP3783493A1 (en) | Method for testing a system for a request | |
DE102020206327A1 (en) | Method and device for testing a technical system | |
Balz et al. | Use case-based fault tree analysis of safety-related embedded systems | |
DE102017212612A1 (en) | Method for automatically generating tests for the software of a vehicle | |
EP2544090A1 (en) | Computer system, computer-implemented method and computer program product for determining a pessimistic time response by an error tolerance mechanism | |
AT511297B1 (en) | Method for generating a model of a communication task | |
DE102022207612A1 (en) | Computer-implemented method for verifying a software component of an automated driving function |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
R120 | Application withdrawn or ip right abandoned |
Effective date: 20110908 |