09.08.2013 Aufrufe

download - SPES 2020

download - SPES 2020

download - SPES 2020

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

Kosimulation im Kontext von <strong>SPES</strong><br />

Tayfun Gezgin, OFFIS<br />

25. Juli 2011<br />

Project name <strong>SPES</strong><strong>2020</strong><br />

Accountability Tayfun Gezgin<br />

QS-Accountability Herr Schachner (Embedded4You)<br />

Created on 20.05.2011<br />

Last changed 25. Juli 2011<br />

Disclosure confidential<br />

project open<br />

public<br />

Status work in progress<br />

submitted<br />

finished


Changes<br />

No. Date<br />

Change<br />

Version<br />

Changed<br />

Chapter(s)<br />

Description Author Status<br />

1 20.05.2011 v0.1 – Setup document template TG work in progress<br />

2 25.05.2011 v0.9 – First version of document TG work in progress<br />

5 21.04.2011 v1.0 3 - 5 Improvements based on Review TG finished


Inhaltsverzeichnis<br />

1 Einleitung 1<br />

2 High Level Architecture 3<br />

2.1 Aufbau der HLA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3<br />

2.2 Zeitmanagement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5<br />

2.2.1 Ordnung von Nachrichten . . . . . . . . . . . . . . . . . . . . . . . . 5<br />

2.2.2 Fortschreiten der logischen Uhren . . . . . . . . . . . . . . . . . . . . 6<br />

2.2.3 Time Regulating Federates . . . . . . . . . . . . . . . . . . . . . . . . 7<br />

2.2.4 Time Constrained Federates . . . . . . . . . . . . . . . . . . . . . . . 8<br />

3 <strong>SPES</strong> Architektur Meta-Modell 10<br />

3.1 Heterogeneous Rich Components . . . . . . . . . . . . . . . . . . . . . . . . . 10<br />

3.2 <strong>SPES</strong> Entwurfsraum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11<br />

4 HLA im Kontext von <strong>SPES</strong> 14<br />

5 Zusammenfassung und Ausblick 16<br />

Bibliography 16<br />

iii


1 Einleitung<br />

Die Entwicklung von softwareintensiven technischen Systemen stellt eine zunehmend große<br />

Herausforderung dar: Der wachsende Anteil der Funktionen, die durch Software gelöst werden,<br />

sowie die steigende Vernetzung und die Integration bestehender heterogener Teilsysteme führt<br />

zu Systemen mit hochgradig komplexen Abhängigkeiten. Da aus Kostengründen die Entwicklung<br />

relativ zügig erfolgen muss, wird diese meist durch mehrere parallele Aktivitäten realisiert.<br />

Diese parallelen Aktivitäten werden innerhalb eines Betriebes von unterschiedlichen Bereichen<br />

oder extern durch Supplier Ketten bearbeitet. Diese Gruppen arbeiten mit einer eigenen Arbeitsplanung,<br />

eigener Begriffswelt und eigenen Methoden und Tools weitgehend unabhängig<br />

voneinander.<br />

Die wesentlichen Probleme, die bei einer parallelen Entwicklung entstehen, sind eine Mehrfachspezifikation<br />

gleicher Daten, Werkzeug- und Modellbrüche und die nicht rechtzeitige Weitergabe<br />

von Schnittstellenänderungen. Beispielsweise hat jede Gruppe eigene Anforderungen<br />

auf Entwicklungsgegenstände und spezifiziert die für sie relevanten Aspekte unabhängig von<br />

den anderen Gruppen. Alle Anforderungen zusammen ergeben dann die gesamte Spezifikation<br />

an den jeweiligen Entwicklungsgegenstand. In der Implementierungsphase werden Subsysteme<br />

in den einzelnen Gruppen durch unterschiedliche Tools realisiert. Durch ausführbare Modelle<br />

können hier frühzeitig Fehler durch Simulation oder formale Analysemethoden entdeckt und<br />

korrigiert werden. Bleibt der Einsatz dieser Verifikationstechniken allerdings nur lokal, d.h. werden<br />

diese nur auf den einzelnen Modellen der Gruppen durchgeführt, können Probleme in der<br />

Integrationsphase entstehen. Erst zu dieser späten Projektphase werden dann Fehlplanungen,<br />

Schnittstellenprobleme und Inkonsistenzen festgestellt. Aufwändige, nicht geplante Iterationszyklen,<br />

die kostspielige Projektverzögerungen mit sich ziehen, sind die Folge.<br />

Das Ziel des <strong>SPES</strong> Projektes ist es, diese Schwierigkeiten zu adressieren: In [4] wurde ein<br />

Anwendungsbereichunabhängiges Meta-Modell zur Architekturmodellierung entwickelt, das<br />

einen Ansatz bietet, um softwareintensive Systeme und deren Architektur strukturiert zu entwickeln<br />

und somit unter anderem Integrationsprobleme zu verringern.<br />

Das Meta-Modell basiert auf den Heterogeneous Rich Components (HRC) [5], das das Konzept<br />

der Kontrakt-basierten Spezifikation realisiert. Bei einer Kontrakt-basierten Spezifikation<br />

werden im Allgemeinen explizit Annahmen über das Eingangsverhalten eines Entwicklungsgegenstandes<br />

von dem Systemkontext spezifiziert und Garantien über das Ausgangsverhalten an<br />

den Kontext getroffen, an den sich der Entwicklungsgegenstand bei korrektem Einsatz hält, d.h.<br />

wenn der Systemkontext sich innerhalb der Annahmen bewegt. Das “Rich” der HRCs bezieht<br />

sich im Speziellen darauf, dass aspektspezifische Schnittstellenspezifikationen eindeutig erfasst<br />

werden. Aspekte dienen zur Gruppierung der Spezifikation und kapseln sowohl funktionale<br />

als auch extra-funktionale (z. B. Safety oder Real-Time) Eigenschaften von Entwicklungsgegenständen.<br />

Das Meta-Modell bietet des Weiteren Abstraktions- und Verfeinerungstechniken sowie Sichten<br />

(View) auf eine Architektur. Abstraktion im Allgemeinen erlaubt dem Entwickler, sich auf<br />

die wesentlichen Probleme in einem Entwurfsschritt zu konzentrieren und unnötige Details auszublenden.<br />

Das Meta-Modell bietet Abstraktionsebenen an, die es ermöglichen, einen Entwicklungsgegenstand<br />

mit einer bestimmten Granularität zu beschreiben und somit in einer bestimm-<br />

1/ 18


Kosimulation in <strong>SPES</strong><br />

ten Entwicklungsphase von irrelevanten Details auszublenden.<br />

Ein Modell eines zu entwickelnden Systems kann mit mehreren Viewpoints assoziiert werden,<br />

die Konstrukte und Regeln zum Beschreiben von unterschiedlichen Views des zu entwickelnden<br />

Systems bieten. Der Begriff der Views und Viewpoints bezieht sich hierbei auf den IEEE Standard<br />

1471-2000 [14]. Im Speziellen bietet das Meta-Modell hierzu einerseits Viewpoints, die<br />

eine strukturell verschiedene Sichten auf das Modell realisieren - die sogenannten Perspektiven<br />

- und andererseits Viewpoints, die orthogonal zur Struktur des Systems stehen und verschiedene<br />

Aspekte von funktionalen und extra-funktionalen Eigenschaften des Entwicklungsgegenstandes<br />

beschreiben.<br />

Aspekt-Realisierungen von Subsystemen kann durch beliebige Tools erfolgen. Werden diese<br />

Subsysteme mit ausführbaren Modellen realisiert, kann eine automatische Verifikation gegen ihre<br />

Spezifikationen erfolgen. Durch Simulieren der entstehenden ausführbaren Modelle können<br />

frühzeitig Designalternativen evaluiert und Fehler aufgedeckt werden, ohne vorher einen kostenintensiven<br />

Prototypen erstellen zu müssen. Eine einzelne, monolithische Simulation kann allerdings<br />

die Anforderungen und Bedürfnisse aller Anwender und Anwendungen nicht decken.<br />

Aus diesem Grund wurde die High Level Architecture (HLA) von dem US-amerikanischen<br />

Verteidigungsministerium entwickelt: Sie ist eine Softwarearchitektur für eine verteilte Modellierung<br />

und Simulation. Die generelle Idee hierbei ist, dass verschiedene Simulatoren zu<br />

einer Kosimulation zusammengeschlossen werden können. Anstelle eines einzigen Simulators,<br />

der mehrere unterschiedliche Aufgaben realisieren müsste, können somit mehrere spezielle,<br />

domänenspezifische Simulatoren eingesetzt werden. Die HLA legt hierzu funktionale Komponenten,<br />

Design-Regeln und Schnittstellen fest und spezifiziert die Kommunikation zwischen<br />

den am Simulationsverbund teilnehmenden Simulationssystemen.<br />

Die Verwaltung einer Kosimulation - also insbesondere dem der Kommunikation zwischen<br />

den einzelnen Simulatoren und dem der gemeinsamen Simulationszeit - übernimmt eine funktionale<br />

Komponente der HLA, die als Runtime Infrastructure (RTI) bezeichnet wird. Die Kommunikation<br />

zwischen einzelnen Simulationsteilnehmern, die auch als Federates bezeichnet werden,<br />

läuft damit ausschließlich über diese zentrale Komponente. Der HLA Standard legt dabei<br />

fest, wie die Kommunikation mit der RTI abzulaufen und wie die Schnittstelle zwischen den<br />

Federates und der RTI auszusehen hat.<br />

Die Verwendung der HLA im Kontext von <strong>SPES</strong> kann die Entwicklung von Systemen bereichern:<br />

Das System wird zunächst mithilfe des Meta-Modells strukturiert entwickelt. Dabei<br />

werden die einzelnen Subkomponenten und deren Schnittstellen durch Kontrakte spezifiziert.<br />

Realisierungen von den Kompnenten können dann mittels Anbindung an die RTI durch eine<br />

Kosimulation verifiziert weren.<br />

Kontrakte können des Weiteren als weitere Federates in Form von Observern mit an die<br />

Kosimulation angeschlossen werden und den Simulationsverlauf automatisch verifizieren. Ein<br />

solcher Ansatz wurde in [12, 10] realisiert, in dem anstelle von Kontrakten QLTL-Formeln<br />

(Quantitative Linear Time Temporal Logic) in Observer-Federates überführt wurden.<br />

Das Dokument ist wie folgt gegliedert. Zunächst wird die High Level Architecture vorgestellt<br />

und im Speziellen das Zeitmanagement in einer Kosimulation erläutert. In dem darauf folgenden<br />

Abschnitt werden die Heterogeneous Rich Components und der <strong>SPES</strong> Entwurfsraum<br />

eingeführt. In Abschnitt 4 wird der Einsatz von der HLA im Kontext von <strong>SPES</strong> vorgestellt.<br />

Abschnitt 5 fasst schließlich das Dokument zusammen.<br />

2/ 18


2 High Level Architecture<br />

Die High Level Architecture (HLA) ist ein Framework für verteilte Modellierung und Simulation.<br />

Sie wurde von dem US-amerikanischen Verteidigungsministerium entwickelt und später<br />

von der Institute of Electrical and Electronics Engineers (IEEE) standardisiert.<br />

Die generelle Idee der HLA ist, dass verschiedene Simulatoren zu einer Kosimulation zusammengeschlossen<br />

werden können. Anstelle eines einzigen Simulationsmodells, das mehrere<br />

unterschiedliche Aufgabenbereiche abdecken müsste, können somit mehrere spezielle,<br />

domänenspezifische Simulatoren eingesetzt werden. Eine solche verteilte Simulation hat mehrere<br />

Vorteile. Komplexe Simulationsmodelle sind im Allgemeinen umso rechenaufwendiger,<br />

je höher der Detaillierungsgrad eines modellierten Systems ist. Wird ein solches Simulationsmodell<br />

nun unterteilt in mehrere kleinere Teilsimulationen, so können diese auf verschiedenen<br />

Prozessoren ausgeführt werden, sodass im Gegensatz zu dem monolytischen Simulationsmodell<br />

die Rechenzeit verkürzt werden kann. Ein weiterer wesentlicher Vorteil einer solchen Modularisierung<br />

ist die Wiederverwendbarkeit von bereits existierenden Komponenten.<br />

Zur Realisierung einer verteilten Simulation bietet die HLA eine standardisierte Architektur<br />

für Simulatoren. Damit die Interoperabilität für eine solche Kosimulation gegeben ist, müssen<br />

sich die Komponenten der Kosimulation an gewisse Standards halten. Hierzu wird eine einheitliche<br />

Schnittstelle definiert, die die Teilnehmer einer verteilten Simulation realisieren müssen.<br />

Außerdem definiert die HLA eine gemeinsame Software Infrastruktur, die die Koordinierung<br />

der Kosimulation übernimmt. Die Teilnehmer einer Kosimulation kommunizieren dann über<br />

diese Software Infrastruktur. Sie ist eine zentrale Komponente und wird als Run Time Infrastructure<br />

(RTI) bezeichnet [6]. Die HLA liefert dabei für eine RTI keine fertige Software, sondern<br />

definiert nur die Dienste, die eine solche RTI den Kosimulationsteilnehmern bieten muss.<br />

Auf die Dienste der RTI wird im Folgenden genauer eingegangen.<br />

In diesem Kapitel wird zunächst eine allgemeine Übersicht der HLA gegeben. Im Anschluss<br />

wird auf das Zeitmanagement konkreter eingegangen. Ziel dieses Kapitels ist es nicht, eine<br />

vollständige Darstellung aller Funktionen der HLA zu bieten. Es steht dem interessierten Leser<br />

frei, sich durch die im Verlauf dieses Kapitels genannten Quellen genauer zu informieren.<br />

2.1 Aufbau der HLA<br />

Eine HLA definiert einen Standard zum Aufbau einer Kosimulation zwischen mehreren Simulatoren,<br />

die durch eine Run Time Infastructure (RTI) miteinander verbunden werden. Da neben<br />

Simulatoren auch andere Komponenten an die RTI angeschlossen werden können, werden die<br />

Teilnehmer einer Kosimulation auch als Federate, die Kosimulation selbst als Federation bezeichnet.<br />

Die HLA besteht dabei aus drei Teilen, die im Folgenden aufgeführt sind [9]:<br />

1. Federations-Regeln: Die Federationsregeln beschreiben die generellen Prinzipien der<br />

HLA und spezifizieren die Dienstbereiche der Federates und der Federation selbst. Die<br />

Regeln im Detail können in [7] nachgelesen werden.<br />

3/ 18


Kosimulation in <strong>SPES</strong><br />

Abbildung 2.1: Funktionelle Komponenten einer HLA Federation [3]<br />

2. Object Model Template (OMT): Objektmodelle der HLA stellen Beschreibungen der austauschbaren<br />

Elemente einer Federation dar. Dabei spezifiziert die HLA zwei Typen von<br />

Objektmodellen: In dem Federation Object Model (FOM) soll die Menge der Informationen<br />

beschrieben werden, die innerhalb einer Federation ausgetauscht werden kann. Im<br />

Gegensatz dazu soll ein Simulation Object Model (SOM) nur für jeweils ein Federate<br />

beschreiben, welche Informationen dieses Federate anbietet und welche es von anderen<br />

empfangen kann. Die Informationen stellen dabei Objektklassen und Interaktionen dar<br />

[3, 8]. Objektklassen bestehen aus einer Menge von Attributen und beschreiben solche<br />

Informationen, die beständig sind. Im Gegensatz dazu bestehen Interaktionen aus einer<br />

Menge von Parametern und beschreiben Ereignisse, d.h. nicht beständige Informationen.<br />

3. Schnittstellenspezifikation: Die Schnittstellenspezifikation definiert für Federates die<br />

Schnittstelle zur RTI. Außerdem wird definiert, welche Dienste die RTI zur Verfügung<br />

stellen muss, damit eine Kosimulation ermöglicht werden kann.<br />

Die Spezifikationen aus diesen drei Teilen zusammen definieren ein Framework zum Erstellen<br />

und zum Ausführen von HLA Federationen [9]. Um eine HLA Federation also aufbauen und<br />

HLA konforme Federates erstellen zu können, müssen die in diesen drei Teilen aufgeführten<br />

Spezifikationen eingehalten werden. Eine HLA Federation besteht dann aus mehreren funktionellen<br />

Komponenten, die in Abbildung 2.1 aufgeführt sind. Die erste funktionelle Komponente<br />

bilden die Federates. Wie eingangs bereits erwähnt, können neben Simulatoren auch andere<br />

Komponenten wie beispielsweise eine Schnittstelle zu einem bemannten Simulator oder zu einer<br />

passiven Datensammlungskomponente an einer HLA Federation teilnehmen [3]. Die zweite<br />

funktionelle Komponente einer HLA Federation bildet die Schnittstelle zur RTI, die von jedem<br />

Federate implementiert werden muss, um an einer Federation teilnehmen zu können. Die dritte<br />

funktionelle Komponente bildet die RTI. Die RTI muss den Federates mehrere Dienste anbieten,<br />

damit die Federation funktionieren kann. Die einzelnen Dienstbereiche der RTI sind im<br />

Folgenden aufgeführt [6]:<br />

• Federation Management Dienste stellen die grundlegenden Funktionalitäten zur<br />

Verfügung, mit denen es einem Federate ermöglicht wird, eine Federation zu erstellen<br />

und zu betreiben.<br />

• Declaration Management Dienste ermöglichen den Datenaustausch zwischen den Federates<br />

einer Federation und sind nach dem Observer Entwurfsmuster realisiert. Mit diesen<br />

4/ 18


Kosimulation in <strong>SPES</strong><br />

Diensten können Federates deklarieren, welche Informationen sie generieren und welche<br />

sie empfangen möchten. Anders ausgedrückt kann ein Federate ausdrücken, dass er Daten<br />

für Instanzen einer bestimmten Objektklasse generieren kann oder daran interessiert ist,<br />

Daten einer Objektklasse zu empfangen. Hierzu muss der Federate bei der RTI angeben,<br />

für welche Objektklassen dieser Daten generieren kann bzw. an welchen er interessiert<br />

ist, indem er entsprechende Objektklassen veröffentlicht (publish) bzw. sich für solche<br />

anmelden (subscribe) .<br />

• Object Management Dienste ermöglichen es für ein Federate, unter anderem Objektinstanzen<br />

von entsprechenden Objektklassen zu erstellen, zu modifizieren und zu löschen.<br />

So kann beispielsweise eine Aktualisierung von Attributenwerten einer Objektinstanz der<br />

RTI mitgeteilt werden. Diese wiederum leitet die Aktualisierung den entsprechenden Federates,<br />

die sich für die Objektinstanz interessieren, weiter. Solche Aktualisierungen von<br />

Attributenwerten einer Objektinstanz werden im Folgenden als Nachrichten bezeichnet.<br />

• Ownership Management Dienste regeln die Besitzrechte von Objektinstanzen. Dabei ist<br />

anzumerken, dass jede Objektinstanz zu jeder Zeit genau einem Federate gehört. Nur der<br />

Federate, das die Besitzrechte für eine Objektinstanz hat, kann die Werte der Attribute<br />

der Objektinstanz aktualisieren. Die Besitzrechte können während der Kosimulation<br />

wechseln.<br />

• Time Management Dienste ermöglichen das Sortieren von Nachrichten, so dass kausale<br />

Zusammenhänge während der Kosimulation nicht verloren gehen.<br />

• Data Distribution Management Dienste, die das Senden sowie Empfangen von irrelevanten<br />

Daten reduzieren sollen.<br />

• Support Services Dienste, die es einem Federate unter anderem ermöglichen, über<br />

Änderungen von vorher definierten Bedingungen informiert zu werden.<br />

Der Zeitmanagement-Dienst soll im folgenden Abschnitt näher erläutert werden, da dieser<br />

zum korrekten Ablauf einer Kosimulation wesentlich ist und zum Verständis des Ablaufs einer<br />

Kosimulation beiträgt.<br />

2.2 Zeitmanagement<br />

Die Aufgabe des Zeitmanagements der RTI ist es, die logischen Zeiten aller Federates zu koordinieren.<br />

Dies ist nötig, da jeder Federate eine eigene logische Zeit hat.<br />

Das Zeitmanagement besteht aus zwei Komponenten [11], nämlich aus einem Dienst, der<br />

Nachrichten bezüglich ihrer Ordnungsrelation sortiert und an die Empängerfederates weiterleitet<br />

sowie aus einem Protokoll, das das Fortschreiten der logischen Zeiten aller Federates regelt.<br />

2.2.1 Ordnung von Nachrichten<br />

Die HLA definiert für Nachrichten zwei Ordnungstypen: Die einfache receive order (RO) leitet<br />

Nachrichten in der Reihenfolge an die Empfängerfederates weiter, in der sie bei der RTI eingegangen<br />

sind. Die Nachrichten werden also vorher nicht sortiert und es wird diejenige Nachricht,<br />

die zuerst bei der RTI eingeht, dem Empfängerfederate als erstes geliefert. Die Zweite wird als<br />

time-stamp order (TSO) bezeichnet. Hier werden Nachrichten mit einem Zeitstempel versehen,<br />

sodass die RTI diese Nachrichten nach den Zeitstempeln sortieren und in dieser sortierten<br />

5/ 18


Kosimulation in <strong>SPES</strong><br />

Reihenfolge den Empfangsfederates übermitteln kann. Nachrichten, die mit einem Zeitstempel<br />

versehen wurden, werden im Folgenden als TSO-Nachrichten bezeichnet. Entsprechend werden<br />

Nachrichten ohne Zeitstempel als RO-Nachrichten bezeichnet. Die RTI garantiert, dass ein<br />

Federate niemals Nachrichten mit Zeitstemplen empfängt, die kleiner sind als derjenige Zeitstempel<br />

der zuletzt empfangenen Nachricht. Die RTI erhält somit durch die TSO-Ordnung der<br />

Nachrichten kausale Zusammenhänge.<br />

2.2.2 Fortschreiten der logischen Uhren<br />

Eine wesentliche Anforderung der RTI ist es, zu gewährleisten, dass kein Federate TSO-<br />

Nachrichten empfängt, deren Gültigkeit abgelaufen ist, d.h. deren Zeitstempel kleiner ist als die<br />

logische Zeit des Federates. Um dieses zu gewährleisten, wird ein Protokoll zum Fortschreiten<br />

der logischen Zeit der Federates benötigt: Federates müssen explizit bei der RTI anfragen, ihre<br />

logische Zeit fortschreiten lassen zu dürfen, was von der RTI genehmigt werden muss. Der<br />

konkrete Ablauf des Protokolls sieht dabei wie folgt aus [11]:<br />

• Der Federate fragt bei der RTI an, seine lokale Zeit auf einen Wert treq fortschreiten zu<br />

lassen.<br />

• Die RTI liefert dem Federate daraufhin sämtliche RO-Nachrichten sowie alle TSO-<br />

Nachrichten, die einen Zeitstempel kleiner als bzw. gleich der beantragen Zeit treq haben,<br />

die in der RTI über andere Federates eingegangen sind.<br />

• Die RTI gewährt dem Federate das Fortschreiten seiner logischen Zeit, falls sie garantieren<br />

kann, dass keine weiteren TSO-Nachrichten mit einem kleineren Zeitstempel als bzw.<br />

gleichem Zeitstempel wie treq diesem gesendet werden können [6].<br />

Das Fortschreiten der Zeit von Federates, die TSO-Nachrichten empfangen, hängt also implizit<br />

von denjenigen Federates ab, die ihnen diese Daten zur Verfügung stellen.<br />

Generell stellt die HLA es jedem Federate frei, die Zeitmanagement-Dienste zu nutzen.<br />

Wichtigstes Mittel hierzu ist dabei der Typ eines Federates, den es durch zwei Flags bestimmen<br />

kann [11]:<br />

• Time Regulating : Falls ein Federate TSO-Nachrichten verschicken will, muss er das time<br />

regulation Flag setzen. Damit deklariert sich der Federate als time regulating Federate.<br />

• Time Constrained : Falls ein Federate TSO-Nachrichten empfangen will, muss er seinen<br />

Status als time constrained Federate setzen.<br />

Ein Federate kann hierbei sowohl time regulating als auch time constrained sein. Ein Federate,<br />

der weder TSO-Nachrichten senden noch empfangen will, muss keinen der oben genannten<br />

Typen setzten. Die beiden Typen suggerieren bereits den Beitrag eines entsprechenden Federates<br />

zu der Koordinierung der logischen Zeiten aller restlichen Federates einer Federation: Ein<br />

time constraint Federate darf seine logische Zeit nicht beliebig fortschreiten lassen, da dieser<br />

TSO-Nachrichten von anderen Federates erwartet und somit TSO-Nachrichten mit Zeitstempeln<br />

kleiner als seine logische Zeit empfangen könnte. Time regulation Federates bestimmen<br />

damit implizit, bis zu welcher logischen Zeit die Federates, die von ihnen Daten erwarten, voranschreiten<br />

dürfen, ohne diese Bedingung zu verletzen. Diese Eigenschaften werden in den<br />

nächsten beiden Abschnitten genauer untersucht.<br />

6/ 18


Kosimulation in <strong>SPES</strong><br />

Abbildung 2.2: Schnappschuss einer Federation zu einem Zeitpunkt, in dem sich die logischen<br />

Zeiten aller Federates 10 betragen. Falls der Lookahead aller Federates<br />

Null ist, können nur TSO-Nachrichten mit Zeitstempel t ′ = 10 an die<br />

Empfängerfederates weitergeleitet werden. Beträgt der Lookahead dagegen L =<br />

5, können alle TSO-Nachrichten mit Zeitstempel kleiner gleich 15 übermittelt<br />

werden. [11]<br />

2.2.3 Time Regulating Federates<br />

Falls ein Federate TSO-Nachrichten senden will, muss der bei der RTI anfragen, das time<br />

regulating Flag zu setzen. Nachdem die RTI dieses bestätigt, ist der Typ des Federates time<br />

regulating.<br />

Beim Setzen des Flags muss der Federate einen Lookahead angeben. Ein Lookahead ist<br />

dabei eine positive Zahl, mit der der kleinst mögliche Zeitstempel bestimmt wird, den der Federate<br />

einer TSO-Nachricht zuweisen kann [6]. Der kleinst mögliche Zeitstempel ergibt sich<br />

dabei aus der Summe der aktuellen logischen Zeit des Federates und des Lookaheads.<br />

Beantragt ein time constrained Federate bei der RTI seine logische Zeit auf einen bestimmten<br />

Wert fortschreiten zu lassen, garantiert dieser Federate damit gleichzeitig, dass es keine TSO-<br />

Nachrichten mit Zeitstempeln versieht, die kleiner sind als die Summe aus beantragter Zeit und<br />

Lookahead (bzw. kleiner gleich dieser Summe, falls der Lookahead Null ist).<br />

Abbildung 2.2 verdeutlicht den Nutzen des Lookaheads: Abgebildet ist ein Schnappschuss<br />

einer Federation, in dem die logischen Zeiten aller Federates 10 betragen. Die Boxen stehen<br />

für TSO-Nachrichten, die von den jeweiligen Federates noch nicht empfangen wurden, schon<br />

aber in der RTI eingegangen sind und gepuffert wurden. Der Federate D bearbeitet zur aktuellen<br />

Zeit die TSO-Nachricht mit Zeitstempel t ′ = 10. Nach dem Bearbeiten könnte der Federate allen<br />

anderen Federates eine TSO-Nachricht senden. Ist der Lookahead von Federate D Null, so kann<br />

Federate D diese Nachricht mit Zeitstempel 10 versehen. In Abbildung 2.2 ist dies durch die<br />

roten Pfeile dargestellt. Damit müssten aber alle anderen Federates warten, bis Federate D seine<br />

logische Zeit fortschreitet, um sicher zu gehen, dass sie eine solche Nachricht mit Zeitstempel<br />

10 nicht in der Vergangenheit empfangen können. Ist der Lookahead jedoch auf beispielsweise<br />

5 gesetzt, so können alle Federates ihre logischen Zeiten bis auf 15 fortschreiten lassen, ohne<br />

auf Federate D warten zu müssen. Somit können alle in der Abbildung grün markierten TSO-<br />

7/ 18


Kosimulation in <strong>SPES</strong><br />

Abbildung 2.3: Nachrichtenaustausch in einer Federation mit zwei Federates und der RTI<br />

Nachrichten an die entsprechenden Federates übermittelt und von diesen bearbeitet werden. Mit<br />

dem Lookahead wird also die parallele Bearbeitung von TSO-Nachrichten ermöglicht.<br />

2.2.4 Time Constrained Federates<br />

Time Constrained Federates sind Federates, die den time constrained Flag gesetzt haben. Sie<br />

können damit von anderen Federates TSO-Nachrichten empfangen.<br />

Um zu garantieren, dass alle TSO-Nachrichten rechtzeitig bei einem Federate ankommen,<br />

d.h. ein Federate empfängt keine TSO-Nachricht, deren Zeitstempel kleiner sind als die logische<br />

Zeit des Federates, muss die RTI für alle time constained Federates eine obere Zeitschranke<br />

berechnen, bis zu der diese ihre logischen Zeiten fortschreiten dürfen. Diese obere Schranke<br />

garantiert damit, dass time constrained Federates ihre Zeit nicht soweit fortschreiten können,<br />

dass sie TSO-Nachrichten empfangen, deren Zeitstempel kleiner sind als die logische Zeit des<br />

Federates. Diese obere Schranke wird als Greatest Available Logical Time (GALT) bezeichnet<br />

[6]. Anfragen eines time constrained Federate, seine logische Zeit auf Werte kleiner dem GALT<br />

fortschreiten zu lassen, können dann von der RTI direkt genehmigt werden. Beantragt ein time<br />

constrained Federate jedoch seine Zeit über dem GALT fortschreiten zu lassen, so wird dies<br />

von der RTI solange nicht gewährt, bis der GALT größer als die beantragte Zeit wird. Dies<br />

ist dann der Fall, wenn time regulating Federates, von denen der betrachtete time constrained<br />

Federate TSO-Nachrichten erwartet, ihre logischen Zeiten fortschreiten.<br />

Neben dem GALT berechnet die RTI für alle time constrained Federates den Least Incoming<br />

Time Stamp (LITS) . Der LITS gibt den kleinsten Zeitstempel einer TSO-Nachricht an, den ein<br />

time constrained Federate in der Zukunft empfangen könnte [6]. Der LITS wird bestimmt durch<br />

die logischen Zeiten der time regulating Federates (von denen der betrachtete time constrained<br />

Federate TSO-Nachrichten empfängt) und deren Lookaheads.<br />

Der Unterschied zwischen LITS und GALT soll durch das Beispiel in Abbildung 2.3 verdeutlicht<br />

werden: In der Abbildung ist eine Federation mit zwei Federates und der dazwischen<br />

liegenden RTI dargestellt. Der Federate A ist dabei ein time regulating Federate und<br />

hat einen Lookahead L mit L = 0.3. Federate A hat bei der RTI Daten für eine Objektklasse<br />

veröffentlicht, für die sich Federate B angemeldet hat. Somit bekommt Federate B von Federate<br />

A TSO-Nachrichten geliefert. Federate B ist damit ein time constrained Federate. Die<br />

Folge der Nachrichten, die zwischen diesen Federates und der RTI versendet werden, verläuft<br />

in der Abbildung 2.3 von links nach rechts. Der Federate A fragt zunächst durch den Methodenaufruf<br />

timeAdvanceRequest(t) bei der RTI an, seine logische Zeit auf den Wert t = 1<br />

8/ 18


Kosimulation in <strong>SPES</strong><br />

fortschreiten zu lassen und bekommt dies direkt genehmigt, indem bei diesem die Methode<br />

timeAdvanceGrant(t) aufgerufen wird. Nachdem es dann eine TSO-Nachricht mit Zeitstempel<br />

1.3 über den Aufruf der Methode updateAttributeValues(t) sendet, erhöht<br />

es seine logische Zeit auf 1.5. Der GALT des Federates B beträgt an dieser Stelle 1.8, d.h.<br />

Federate B darf seine logische Zeit mit Werten kleiner als 1.8 fortschreiten lassen. Dies wird<br />

sofort klar, da die RTI Kenntnis davon hat, welche TSO-Nachrichten der Federate B bis zu dieser<br />

Zeiteinheit empfangen wird. Die nächste von Federate A generierte TSO-Nachricht darf nur<br />

noch einen Zeitstempel von mindestens 1.8 haben. Der LITS jedoch beträgt 1.3, da der Federate<br />

B die Nachricht mit diesem Zeitstempel noch nicht empfangen hat. Erhöht Federate B nun<br />

seine logische Zeit auf 1.5, empfängt es alle Nachrichten mit einem kleineren bzw. gleichem<br />

Zeitstempel, indem die RTI die Methode reflectAttributeValues(t) beim Federate<br />

aufruft. In diesem Beispiel ist nach dieser Aktion der LITS gleich dem GALT.<br />

9/ 18


3 <strong>SPES</strong> Architektur Meta-Modell<br />

In diesem Abschnitt wird das Meta-Modell der Heterogeneous Rich Components und der <strong>SPES</strong><br />

Entwurfsraum vorgestellt. Dieses Kapitel soll nur eine Einführung in die wesentlichen Konzepte<br />

bieten. Zu einer detaillierten Beschreibung des Meta-Modells sei der interessierte Leser auf [4]<br />

verwiesen.<br />

3.1 Heterogeneous Rich Components<br />

Heterogeneous Rich Components (HRC) wurden in [16] eingeführt. Das Meta-Modell der HR-<br />

Cs bietet ein Framework zum Durchführen eines komponentenbasierten Entwurfs. Eine Komponente<br />

stellt dabei ein Modul dar, das eine bestimmte Funktionalität des zu entwickelnden<br />

Systems kapselt und eine wohldefinierte Schnittstelle bietet. Ports stellen dabei die Interaktionspunkte<br />

einer Komponente dar. Eine Komponente kann selbst aus Subkomponenten bestehen,<br />

die miteinander verbunden sind und zusammen das Verhalten und die Funktionalität der<br />

Komponente realisieren.<br />

Abbildung 3.1: Komponente BasicAutomation ist zusammangesetzt aus Subkomponenten<br />

Sensor, WidthCtrl und Actuator.<br />

Ein Beispiel für eine HRC ist in Abbildung 3.1 dargestellt. Die Komponente<br />

BasicAutomation hat zwei Eingangsports setPoint width und rawMaterial und<br />

einen Ausgangsport material. Sie ist zusammengesetzt aus den Subkomponenten Sensor,<br />

WidthCtrl and Actuator.<br />

Neben diesen Standardkonzepten bietet die HRC Mittel, um eindeutige Schnittstellenspezifikationen<br />

einer Komponente zu definieren. Das “Rich” der HRCs bezieht sich darauf, eine<br />

Komponente eine aspektspezifische Spezifikation und eine Realisierung haben kann. Das “He-<br />

10/ 18


Kosimulation in <strong>SPES</strong><br />

Abbildung 3.2: Der <strong>SPES</strong> Entwurfsraum.<br />

terogeneous” bezieht sich darauf, das verschiedene Aspekte typischerweise verschiedene Modellierungselemente<br />

verwenden.<br />

Eine Spezifikation definiert, was eine Komponente machen soll. In HRC werden Spezifikationen<br />

partitioniert in Aspekte, die funktionale und extra-funktionale Eigenschaften erfassen.<br />

Damit kann eine Komponente verschiedene Aspekt-Spezifikationen haben wie beispielsweise<br />

eine Real-Time oder eine Safety Spezifikation. Diese Spezifikationen werden durch Kontrakte<br />

erfasst, die wiederum in Form von Textmustern (Requirement Specification Language, kurz<br />

RSL) formuliert werden. Auf die Textmuster soll in diesem Deliverable jedoch nicht näher eingegangen<br />

werden. Weitere Details kann der interessierte Leser in [15, 4] finden.<br />

Kontrakt-basierte Spezifikation ermöglicht es, für jeden Aspekt den erlaubten Entwurfskontext<br />

eines Entwicklungsgegenstandes mittels strong Assumptions zu charakterisieren: Eine Verletzung<br />

dieser ist gleichbedeutend mit einer Verletzung der Nutzungsspezifikation, sodass für<br />

solche Fälle die Produkthaftung nicht mehr gewährleistet wird. Für erlaubte Entwurfskontexte<br />

charakterisiert die Guarantee eines Kontrakts sowohl funktionale als auch extra-funktionale<br />

Eigenschaften des Entwurfsgegenstandes.<br />

Der Annahme-Teil eines Kontrakts besteht neben der strong Assumption aus einer weak Assumption.<br />

Dieser partitioniert den erlaubten Kontext, der durch die strong Assumption definiert<br />

wird. Eine einzelne weak Assumption definiert damit nur einen Teil des erlaubten Kontexts<br />

und ermöglicht es somit, verschiedene Anwendungsfälle eines Entwicklungsgegenstandes zu<br />

definieren. Erfüllt dann der Kontext eine solche weak Assumption, kann der Entwicklungsgegenstand<br />

ein strengeres Verhalten garantieren.<br />

Neben der Spezifikation bieten HRCs Mittel um Aspekt-Realisierungen zu erfassen. Aspekt-<br />

Realisierungen definieren, wie eine Komponente sich konkret verhält. Die Realisierung eines<br />

konkreten Aspekts einer Komponente kann durch andere Formalismen außerhalb der <strong>SPES</strong><br />

Entwurfsmethodik erfolgen, wie beispielsweise Programmcode oder ausführbare Modelle.<br />

Die HRCs bilden das Grundkonzept der <strong>SPES</strong> Entwurfsmethodik, auf dem der <strong>SPES</strong> Entwurfsraum<br />

aufbaut, der im nächsten Abschnitt eingeführt wird.<br />

3.2 <strong>SPES</strong> Entwurfsraum<br />

Das Meta-Modell bietet Abstraktions- und Verfeinerungstechniken(↑) sowie Sichten (View(↑))<br />

auf eine Architektur. Diese Entwurfsmethoden bilden den <strong>SPES</strong> Entwurfsraum, der in Abbildung<br />

3.2 mit schemenhaften Modellen dargestellt ist. Im Folgenden wird auf die einzelnen<br />

11/ 18


Kosimulation in <strong>SPES</strong><br />

Begriffe näher eingegangen.<br />

Abstraktion im Allgemeinen erlaubt dem Entwickler, sich auf die wesentlichen Probleme in<br />

einem Entwurfsschritt zu konzentrieren und unnötige Details auszublenden. Das Meta-Modell<br />

bietet Abstraktionsebenen(↑) an, die es ermöglichen, einen Entwicklungsgegenstand mit einer<br />

bestimmten Granularität zu beschreiben. Die Granulatität ist dabei abhängig vom konkreten<br />

Entwicklungsprozess und erlaubt es, sich auf bestimmte Teile zu konzentrieren und zu einer<br />

bestimmten Entwicklungsphase irrelevante Details auszublenden. Die Anzahl sowie Benennung<br />

von Abstraktionsebenen ist dabei anwendungsabhängig und kann z. B. durch eine konkrete<br />

Suppy-Chain beeinflusst werden.<br />

Ein Modell eines zu entwickelnden Systems kann mit mehreren Viewpoints assoziiert werden,<br />

die Konstrukte und Regeln zum Beschreiben von unterschiedlichen Views des zu entwickelnden<br />

Systems bieten. Der Begriff der Views und Viewpoints bezieht sich hierbei auf den IEEE<br />

Standard 1471-2000 [14].<br />

Das Meta-Modell bietet hierzu einerseits Viewpoints, die eine strukturell verschiedene Sichten<br />

auf das Modell realisieren - die sogenannten Perspektiven - und andererseits Viewpoints,<br />

die orthogonal zur Struktur des Systems stehen und verschiedene Aspekte von funktionalen<br />

und extra-funktionalen Eigenschaften des Entwicklungsgegenstandes beschreiben.<br />

Orientiert an weit verbreiteten Software-Engineering-Vorgehensweisen (z. B. [18])<br />

berücksichtigt das Meta-Modell also verschiedene Perspektiven auf das zu entwickelnde System,<br />

um Sichten von lösungsunabhängiger Entwicklung bis hin zu konkreten technischen<br />

Lösungen zu unterstützen. Im Speziellen wurden die Perspektiven operationale, funktionale,<br />

logische, technische sowie geometrische definiert, die im Folgenden näher erläutert werden.<br />

In der operationalen Perspektive(↑) werden unabhängig von einer konkreten (technischen)<br />

Lösung der Kontext des zu entwickelten System betrachtet und Anforderungen an das zu entwickelnde<br />

System sowie die nötigen Schnittstellen des Systems zu seiner Umwelt festgehalten.<br />

Hierdurch wird eine frühe präzise Beschreibung der Anwendungsfälle des zu entwickelten Systems<br />

ermöglicht. Durch z. B. einer Validierung mittels Simulation von Szenarien kann in dieser<br />

Perspektive sehr früh erkannt werden, ob das richtige System entwickelt wird. Einen ganzheitlichen<br />

Ansatz zum modellbasierten Requirements Engineering bietet dabei ZP-AP2 an. Die<br />

operationale Perspektive stellt die Schnittstelle zu diesen Konzepten dar.<br />

In der funktionalen Perspektive(↑) erfolgt basierend auf den Anwendungsfällen und Anforderungen<br />

aus der operationalen Perspektive das Erfassen sämtlicher Funktionen, die das zu<br />

entwickelnde System anbieten soll. Top-Level Funktionen werden dabei durch Funktionsdekomposition<br />

in feingranularere Sub-Funktionen abgeleitet. Je nach Grad der Vollständigkeit<br />

der Funktionsbeschreibung können z. B. erste Überprüfungen hinsichtlich der Abhängigkeiten<br />

zwischen den verschiedenen Funktionen erstellt werden (z.B. mittels AutoFocus[1]).<br />

Die logische Perspektive(↑) erfasst die logische Architektur des Systems, die plattformunabhängig<br />

erstellt wird. Der Fokus liegt hier bei der Wiederverwendbarkeit der erstellten Komponenten.<br />

Plattformunabhängige Analysen können hier durchgeführt werden, um beispielsweise<br />

Fehler, die bei der Transformation auf plattformabhängige Spezifika entstehen, aufdecken zu<br />

können.<br />

Die technische Perspektive(↑) konkretisiert die logische Architektur. In dieser Perspektive<br />

werden Software/Hardware-Partitionierungsfragen geklärt. Beispielsweise kann eine logische<br />

Komponente in dieser Perspektive durch einen konkreten Aktor realisiert werden. Informationstechnisch<br />

gesehen stellt die technische Perspektive die plattformabhängige Modellierung<br />

des Systems dar.<br />

In der geometrischen Perspektive(↑) wird das Layout des Systems modelliert. Die geometrische<br />

Perspektive lag bisher nicht in dem Kompetenzbereich von <strong>SPES</strong> und wird daher in der in<br />

12/ 18


Kosimulation in <strong>SPES</strong><br />

diesem Dokument vorgestellten Fallstudie nicht weiter betrachtet.<br />

Zwischen Entwicklungsgegenständen auf unterschiedlichen Abstraktionsebenen und Perspektiven<br />

können Verlinkungen erstellt werden, um die Traceability zu wahren und Modelle in<br />

Beziehung zu setzen. Zwischen verlinkten Entwicklungsgegenständen müssen Verfeinerungsbeziehungen<br />

gelten, die im Deliverable [4] definiert wurden. Diese Verfeinerungen beziehen<br />

sich dabei auf die Aspekt-Spezifikationen: Entwicklungsgegenstände, die sich in einer tieferen<br />

Abstraktionsebene oder in einer konkreteren Perspektive befinden, müssen (mindestens)<br />

die Spezifikationen der Entwicklungsgegenstände auf abstrakteren Ebenen und Perspektiven,<br />

zu denen sie verlinkt sind, erfüllen. Techniken zum automatischen Verifizieren dieser Beziehungen<br />

wurden in den Deliverables [13, 19] ausgearbeitet.<br />

Der nächste Abschnitt behandelt die Observer-basierte Verifikation von Aspekt-<br />

Realisierungen, d.h. einer Technik, um die in Deliverable [4] definierte Satisfiability der Implementierung<br />

einer Komponente bezüglich ihrer Spezifikation zu überprüfen.<br />

13/ 18


4 HLA im Kontext von <strong>SPES</strong><br />

In [17] wurde die operationale Semantik von Kontrakt-basierten Aspekt-Spezifikationen definiert.<br />

Diese Semantik wird hier verwendet, um eine Simulation der Spezifikationen mit den<br />

entsprechenden Aspekt-Realisierungen zu etablieren.<br />

In Abbildung 4.1 wurde ein zu entwickelnden Systems mit dem <strong>SPES</strong> Architektur Meta-<br />

Modell modelliert. Ein Teil des logischen Modells auf der zweiten Abstraktionsebene (Subsysteme)<br />

ist dabei in der Mitte des Bildes hervorgehoben und soll näher betrachtet werden.<br />

Die Komponente Cmp1 ist mit der Komponente Cmp2 verbunden und bietet dieser die Daten<br />

d1. Beide Komponenten sind mit jeweils einem Kontrakt versehen, die aus einer strong<br />

Assumption (As), einer weak Assumption (Aw) und einer Guarantee (G) bestehen. Weiter unten<br />

im Bild werden die Aspekt-Realisierungen beider Komponenten schemenhaft angedeutet:<br />

Das Verhalten der Komponente Cmp1 wurde in Matlab/Simulink 1 und das der Cmp2 in Scade<br />

2 modelliert. Diese beiden Verhaltensmodellierungen können nun mittels einer RTI zu einer<br />

Kosimulation zusammgengeschlossen und erste Simulationsergebnisse ermittelt werden.<br />

Die Komponente Cmp1 veröffentlicht dabei die Objektklassen, die von seinem Ausgangsport<br />

spezifiziert wurden. Wurde des Weiteren eine zeitliche Spezifikation für den Ausgangskanal<br />

angegeben, so kann sich die Komponente als Time Regulating Federate bei der RTI anmelden<br />

und einen entsprechenden Lookahead aus der Spezifikation ableiten. Beispielsweise wurde für<br />

den Port folgendes Aktivierungsverhalten mit Hilfe eines Real-Time Pattern 3 spezifiziert:<br />

d1 occurs each 5ms with jitter 2ms.<br />

Der Lookahead eines solchen Nachrichtenstroms würde dann 3ms betragen.<br />

Um die Kontrakte automatisch zu überprüfen, kann ein analoger Ansatz zu [12, 10] durchgeführt<br />

wereden: Kontrakte werden zu Observer-Programmen generiert und als zusätzliche Federates<br />

in die Kosimulation mit aufgenommen. Sie melden sich dabei zu den Nachrichten an,<br />

die in der Spezifikation referenziert werden. Zur Laufzeit prüfen die Observer dann, ob das<br />

observierte Verhalten dem spezifizierten entspricht.<br />

1 http://www.mathworks.de/<br />

2 http://www.esterel-technologies.com/products/scade-suite/<br />

3 Für mehr Informationen über RSL sei der interessierte Leser auf [2] veriwesen.<br />

14/ 18


Perspektive<br />

Ebene<br />

Gesamtanlage<br />

Subsysteme<br />

...<br />

Kosimulation in <strong>SPES</strong><br />

Operational Funktional Logisch Technisch Geometrisch<br />

...<br />

...<br />

As Aw G<br />

<br />

...<br />

RTI<br />

Cmp1<br />

Observer1<br />

Observer2<br />

d1<br />

As Aw G<br />

<br />

Cmp2<br />

... ...<br />

Abbildung 4.1: Anbindung der Aspekt-Realisierungen an eine Kosimulation.<br />

15/ 18


5 Zusammenfassung und Ausblick<br />

In diesem Deliverable wurde die High Level Architecture vorgestellt und der Nutzen im Kontext<br />

von <strong>SPES</strong> erläutert. Im Speziellen wurde beschrieben, dass eine Anbindung der Aspekt-<br />

Realisierungen, die durch verschiedene Tools in einem parallelisierten Entwicklungsprozess<br />

entstehen, an eine gemeinsame Kommunikationsplattform erfolgen kann.<br />

Werden - analog zu dem in [12, 10] vorgestellten Verfahren - an die entstehende Federation<br />

die zu den entsprechenden Subsystemen der Aspekt-Realisierungen zugehörigen Kontrakte<br />

zu Observer-Federates übersetzt und als Federates an die Federation dazugeschaltet, kann eine<br />

on-the-fly Auswertung dieser im Kosimulationsverlauf erfolgen. Der Beitrag einer solchen<br />

Kosimulation wäre eine sehr frühzeitige Aufdeckung von Integrations- und Schnittstellenproblemen.<br />

Im Rahmen einer Studentischen Projektgruppe kam die High Level Architecture bereits zum<br />

Einsatz: Ein entwickeltes Fahrerassistenssystem wurde hierzu zusammen mit einer Verkehrssimulation<br />

an eine RTI der Firma Pitch 1 geschlossen 2 . Durch Ausführen dieser Kosimulation<br />

konnten mehrere Fehler aufgedeckt werden.<br />

Des Weiteren wird im Rahmen einer Masterarbeit an der Anpassung und Erweiterung einer<br />

Open-Source RTI namens CERTI 3 gearbeitet. CERTI realisiert dabei vollständig den HLA<br />

Standard 1.3 und Teilweise den neueren Standard 1516 − 2000. Die Masterarbeit erweitert diese<br />

Open-Source RTI um grundlegende Bestandteile, die in dem Standard 1516 − 2000 definiert<br />

sind, sodass Kosimulationen nach diesem Standard durchgeführt werden könnnen. Für die in<br />

diesem Deliverable beschriebene Kosimulation könnte diese RTI nach Fertigstellung und Evaluation<br />

zum Einsatz kommen, was den großen Vorteil mit sich bringt, dass eine teure Anschaffung<br />

einer kommerziellen RTI entfällt.<br />

1 http://www.pitch.se/<br />

2 https://svnbroy.in.tum.de/spes<strong>2020</strong>/Zentralprojekt/ZP-AP3/Deliverables/D3.3Architekturbewertung/D3.3.C-<br />

ACC demo.mp4<br />

3 http://savannah.nongnu.org/projects/certi<br />

16/ 18


Literaturverzeichnis<br />

[1] Manfred Broy, Franz Huber, and Bernhard Schätz. AutoFocus – Ein Werkzeugprototyp zur<br />

Entwicklung eingebetteter Systeme. Informatik Forschung und Entwicklung, (13(3)):121–<br />

134, 1999.<br />

[2] CESAR SP2 Partners. Definition and exemplification of requirements specification<br />

language and requirements meta model. CESAR D SP2 R2.2 M2 v1.000.pdf on<br />

http://www.cesarproject.eu/fileadmin/user upload/, 2010.<br />

[3] Judith Dahmann, Richard M. Fujimoto, and Richard M. Weatherly. The dod high level<br />

architecture: an update. In WSC ’98: Proceedings of the 30th conference on Winter simulation,<br />

pages 797–804, Los Alamitos, CA, USA, 1998. IEEE Computer Society Press.<br />

[4] Werner Damm, Hardi Hungar, Stefan Henkler, Ingo Stierand, Bernhard Josko, Philipp<br />

Reinkemeier, Andreas Baumgart, Matthias Büker, Tayfun Gezgin, Günter Ehmen, and Raphael<br />

Weber. <strong>SPES</strong><strong>2020</strong> Architecture Modeling. <strong>SPES</strong><strong>2020</strong> Deliverable D3.5, <strong>SPES</strong><strong>2020</strong>,<br />

November 2010.<br />

[5] Werner Damm, Angelika Votintseva, Alexander Metzner, Bernhard Josko, Thomas Peikenkamp,<br />

and Eckard Böde. Boosting re-use of embedded automotive applications<br />

through rich components. In Foundations of Interface Technologies, FIT’05, 2005.<br />

[6] IEEE Standard for Modeling and Simulation (M&S). High level architecture - federate<br />

interface specification. IEEE Computer Society Press, September 2000.<br />

[7] IEEE Standard for Modeling and Simulation (M&S). High level architecture - framework<br />

and rules. IEEE Computer Society Press, September 2000.<br />

[8] IEEE Standard for Modeling and Simulation (M&S). High level architecture - object<br />

model template (omt) specification. IEEE Computer Society Press, September 2000.<br />

[9] IEEE Standard for Modeling and Simulation (M&S). Recommended practice for high level<br />

architecture - federation development and execution process. IEEE Computer Society<br />

Press, März 2003.<br />

[10] Martin Fränzle, Tayfun Gezgin, Hardi Hungar, Stefan Puch, and Gerald Sauter. Using<br />

guided simulation to assess driver assistance systems. In Eckehard Schnieder and Geza<br />

Tarnai, editors, FORMS/FORMAT 2010, pages 195–205. Springer Berlin Heidelberg,<br />

2011.<br />

[11] Richard M. Fujimoto. Time management in the high level architecture. SIMULATION,<br />

71(6):388–400, 1998.<br />

[12] Tayfun Gezgin. Observerbasierte on-the-fly Auswertung von QLTL-Formeln innerhalb<br />

eines HLA-Simulationsverbundes. Master’s thesis, Carl von Ossietzky Universität Oldenburg,<br />

26121 Oldenburg, 2009.<br />

17/ 18


Kosimulation in <strong>SPES</strong><br />

[13] Tayfun Gezgin. On the Role of Perspectives and Aspects on Architectural Description<br />

of Software-Intensive Systems. <strong>SPES</strong> <strong>2020</strong> Deliverable D3.2.B-Subtask 3.2.2, The <strong>SPES</strong><br />

<strong>2020</strong> Project, OFFIS, May 2011.<br />

[14] ISO/IEC/(IEEE). ISO/IEC 42010 (IEEE Std) 1471-2000 : Systems and Software engineering<br />

- Recomended practice for architectural description of software-intensive systems,<br />

July 2007.<br />

[15] Andreas Mitschke. Requirements Specification Language and Requirements Meta Model.<br />

CESAR Deliverable D SP2 R2.2 M2, CESAR Project, October 2010.<br />

[16] WP.2.1 Partners. SPEEDS L-1 Meta-Model. Technical report, SPEEDS Consortium, May<br />

2009.<br />

[17] Phillip Reinkemeier. Operational Semantics. <strong>SPES</strong> <strong>2020</strong> Deliverable D3.3.B-Subtask<br />

3.3.4, The <strong>SPES</strong> <strong>2020</strong> Project, OFFIS, April 2011.<br />

[18] Andrew P. Sage and William B. Rouse. Handbook of Systems Engineering and Management.<br />

Wiley-Interscience, Wiley-Interscience.<br />

[19] Raphael Weber and Tayfun Gezgin. Composition Concepts or Abstraction Levels - Realization<br />

Test. <strong>SPES</strong> <strong>2020</strong> Deliverable D3.2.C-Subtask 3.2.2, The <strong>SPES</strong> <strong>2020</strong> Project,<br />

OFFIS, June 2011.<br />

18/ 18

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!