download - SPES 2020
download - SPES 2020
download - SPES 2020
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