<?xml version="1.0" encoding="UTF-8"?>
<TEI xml:space="preserve" xmlns="http://www.tei-c.org/ns/1.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.tei-c.org/ns/1.0 https://raw.githubusercontent.com/kermitt2/grobid/master/grobid-home/schemas/xsd/Grobid.xsd"
 xmlns:xlink="http://www.w3.org/1999/xlink">
	<teiHeader xml:lang="de">
		<fileDesc>
			<titleStmt>
				<title level="a" type="main">Qualitätssichernde Koevolution von Architekturen eingebetteter Systeme</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author role="corresp">
							<persName><forename type="first">Malte</forename><surname>Lochau</surname></persName>
							<email>lochau|goltz@ips.cs.tu-bs.de</email>
							<affiliation key="aff0">
								<orgName type="department">Institut für Programmierung und Reaktive Systeme</orgName>
								<orgName type="institution">TU Braunschweig</orgName>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Ursula</forename><surname>Goltz</surname></persName>
							<affiliation key="aff0">
								<orgName type="department">Institut für Programmierung und Reaktive Systeme</orgName>
								<orgName type="institution">TU Braunschweig</orgName>
							</affiliation>
						</author>
						<title level="a" type="main">Qualitätssichernde Koevolution von Architekturen eingebetteter Systeme</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">9357D547E72846FDCABEA4A19C07B19D</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-24T23:31+0000">
					<desc>GROBID - A machine learning software for extracting information from scholarly documents</desc>
					<ref target="https://github.com/kermitt2/grobid"/>
				</application>
			</appInfo>
		</encodingDesc>
		<profileDesc>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>Eingebettete Software-Systeme sind heute allgegenwärtig und müssen zukünftig auch in Hinblick auf eine stetig steigende Lebensdauer und Wartbarkeit entworfen werden. Entsprechend müssen diese Systeme zunehmend evolvierbar sein, d.h. sowohl Fähigkeiten zur situationsbedingten Adaption im Betrieb aufweisen, als auch flexibel an sich ändernde Anforderungen anpassbar sein. Um die Komplexität von Auswirkungen von Anpassungen an diesen Systemen beherrschbar zu halten und Erosionseffekte zu verhindern, sind abstrahierende Architektur-Modelle eine wesentliche Grundlage für die Planung und strukturierte Durchführung von Änderungen im gesamten Lebenszyklus. Gleichzeitig kann durch Evolutions-begleitende Architektur-Evaluationen die nachhaltige Erfüllung von Qualitätskriterien wie Echtzeiteigenschaften, Sicherheit und Verfügbarkeit sichergestellt werden. Wir beschreiben die Einbettung von Maßnahmen zur fortgesetzten Qualitätssicherung in einen koevolutionären Betriebs-und Wartungsprozess und die hierfür erforderliche Konsistenz der Architektur-Spezifikation mit dem laufenden System. Der Ansatz wird anhand einer Fallstudie, einer adaptiven Robotersteuerung mit harten Echtzeitanforderungen, illustriert.</p></div>
			</abstract>
		</profileDesc>
	</teiHeader>
	<text xml:lang="de">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>1 Einf ührung 1.1 Architekturen evolvierender Systeme Die Software ist der zunehmend kritische Faktor für den Erfolg eingebetteter Systeme. Dabei entsteht ein steigender Anteil der Aufwände und Kosten für derartige Systeme durch Wartungs-, Anpassungs-und Weiterentwicklungstätigkeiten, also der Evolution der Software [EGG + 09, Mas07], die gerade bei eingebetteten Systemen von der Umgebung und dem Anwendungskontext geradezu erzwungen wird <ref type="bibr" target="#b4">[Leh96,</ref><ref type="bibr" target="#b8">Par94]</ref>.</p><p>Der Architektur einer Software kommt zukünftig eine entscheidende Rolle zu, damit ein Software-System evolvierbar ist und bleibt. Dies gilt sowohl für kleinere Anpassungen wie Refactorings <ref type="bibr" target="#b10">[RH06]</ref> oder dem Austausch von Komponenten, als auch für " revolutionäre" Eingriffe, angefangen beim kompletten Reengineering von (Teil-) Systemen bis hin zur Migration ganzer Systeme auf neue Plattformen <ref type="bibr" target="#b7">[Mas07]</ref>. Darüber hinaus müssen moderne Systeme zunehmend adaptiv sein, d.h. sich selbständig zur Laufzeit strategisch an neue Bedingungen anpassen können <ref type="bibr" target="#b11">[SG07,</ref><ref type="bibr" target="#b12">SGM09]</ref>. Um die Komplexität der Evolution zukünftiger Systeme beherrschbar zu halten, muss bereits im Rahmen des Ent-wurfs und der Modellierung die Anpassbarkeit als Kriterium bzw. Eigenschaft explizit berücksichtigt werden. Dies kann nicht allein durch den Einsatz moderner Technologien und Paradigmen und der damit verbundenen "Verheißungen", wie z.B. dem Einsatz Service-orientierter Entwurfsprinzipien, erzielt werden. Vielmehr sind neben Domänenspezifischen Lösungsmustern vor allem übergeordnete Prinzipien einer modularen, konfigurierbaren Architektur-Konzeption wesentlich für eine flexible Anpassbarkeit <ref type="bibr" target="#b0">[BCK03]</ref>.</p><p>Gerade an eingebettete Systeme werden aber auch weitere Qualitätsanforderungen gestellt, wie z.B. Sicherheit, Verfügbarkeit und Echtzeitfähigkeit. Im Kontext kontinuierlicher Evolution besteht somit auch die Notwendigkeit, ein fortlaufendes Qualitätsmanagement begleitend zum gesamten Lebenszyklus zu definieren. Dennoch können nicht alle erdenklichen zukünftigen Richtungen möglicher Weiterentwicklungen und Anpassungen beim Entwurf von System-Architekturen antizipiert werden [EGG + 09]. Gerade für Systeme, die sich durch eine besonders hohe Langlebigkeit auszeichnen, können zukünftige, Lebenszyklus-übergreifende Entwicklungen nur schwer abgeschätzt werden, wie z.B. sich ändernde Anforderungen, Erosionen in der Umgebung oder der technischen Infrastruktur sowie die Portierung auf andere Plattformen. Methodiken zur planvollen Evolution von Software-Systemen, die auf strukturierten, Architektur-basierten Vorgehensweisen beruhen, müssen geeignete Dokumentationsansätze für die Nachverfolgbarkeit unternommener Anpassungen beinhalten. Dabei muss nicht nur die korrekte Funktionsfähigkeit des Systems gewährleistet bleiben, sondern gleichzeitig die Sicherung weiterer Qualitätseigenschaften im Betrieb möglich bleiben. Schädigung" (Erosion) der Architektur. Die so kontinuierlich anwachsende Entropie der Systeme führt dann unter anderem zu abnehmender Wartbarkeit und Performanz <ref type="bibr" target="#b7">[Mas07]</ref>. Zudem werden durch diese "</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>In diesem</head><p>Wucherungen" die Abgrenzungen des Systems zur Umgebung zunehmend unklar.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.2">Architektur-Modellierung und -Rekonstruktion</head><p>Der Architektur-Entwurf ist das Bindeglied zwischen der Anforderungsanalyse und dem technischen Design, auf dessen Grundlage neben der korrekten Implementierung der geforderten Funktionalität zugleich Maßnahmen zur Qualitätssicherung in den Entwurfsprozess integrieren werden können [FGB + 07, LMD + 09, LMS + 09]. </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.2.1">Architektur-Modelle eingebetteter Systeme</head></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.2.3">Architektur-Rekonstruktion</head><p>Die Kenntnis der Architektur eines Systems ist Grundvoraussetzung für ein tiefer gehendes Verständnis der internen Systemstrukturen zur Analyse und Evolutionsplanung. Für langlebige Systeme mit hohen Anteilen an Legacy-Komponenten liegen allerdings häufig nur unvollständige bzw. inkonsistente Architektur-Modelle vor, in denen Änderungen am System häufig nicht adäquat dokumentiert wurden. Zudem beinhalten Spezifikationen oftmals nur für die Qualitätsbewertung unzureichende statische Aspekte der Systemstruktur. Es gibt eine Vielzahl von Ansätzen, um für ein bestehendes System Architektur-Eigenschaften zu rekonstruieren, über die nachfolgend ein kurzer Überblick gegeben werden soll. Rekonstruktion und Extraktion eignen sich vor allem zur Ermittlung statischer Aspekte und Strukturen. In Kombination mit Monitoring-Ansätzen können diese um dynamische Eigenschaften ergänzt werden. In erster Näherung ergeben die genannten Verfahren zunächst konkrete Architektur-Sichten, der Übergang zu einem konzeptionellen Modell bedarf anschließend weiterer Abstraktionsschritte.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.3">Architektur-Koevolution unter Erhalt von Qualitätseigenschaften</head><p>Die Integration der beschriebenen Verfahren erfordert Vorgehensmodelle, die den gesamten Lebenszyklus eingebetteter Systeme vom initialen Entwurf, der Implementierung und Inbetriebnahme, bis zur Wartung und Anpassung im Betrieb, umfassen. Die Konsistenzsicherung zwischen Anforderungsspezifikation, Architektur-Modell und Systemimplementierung verlangt einen umfassenden Ansatz zur Koevolution, d.h. der fortgesetzten Synchronisation des laufenden Systems und der Spezifikation. Neben der Planung und Dokumentation möglicher Evolutionen kann so gleichzeitig die Sicherung der geforderten Qualitätseigenschaften auf Grundlage der aktuellen Architektur-Ausprägung erfolgen. Der prinzipielle Aufbau eines entsprechend zyklischen Vorgehensmodells ist in Abbildung 3 skizziert. Das dargestellte Roundtrip Engineering ist notwendig, um die beiderseitige Synchronisation zwischen Spezifikation und laufendem System sicherzustellen, da (1) Erosionen im laufenden System Anpassungen an der Architektur-Spezifikation erzwingen, und (2) Änderungen der Anforderungen Anpassungen am laufenden System erzwingen. In beiden Fällen bildet die Architektur-Spezifikation die "</p><p>Brücke" zwischen Anforderungen und Implementierung: (1) als Entwurf der initialen (konzeptionellen) Systemstruktur, (2) zur modellbasierten Repräsentation der wesentlichen Aspekte des (konkreten) Systemzustandes, und damit (3) als Grundlage für die Planung, Durchführung und Dokumentation von Anpassungen und Adaptionen. Sowohl beim ersten Entwurf, als auch bei der fortgesetzten Evolution der System-Architektur kann die Sicherstellung geforderter Qualitätseigenschaften durch wiederholte Architektur-Evaluation erfolgen.</p><p>Abbildung 3: Koevolution im gesamten Lebenszyklus Grundlage bzw. Auslöser von Anpassungen sind sich stetig ändernde Anforderungen an das System bezüglich: (1) der Funktionalität, (2) der (technischen) Plattform, wozu prinzipiell auch die Systemumgebung gezählt werden kann sowie (3) Qualitätsanforderungen. Die Planung dieser Anpassungen auf Grundlage evolvierender Architekturen kann sowohl anhand der konkreten, als auch der konzeptionellen Architektur erfolgen. Erstere kann insbesondere für " leichtgewichtige" Adaptionen, wie z.B. der Prozessmigration von Bedeutung sein, wohingegegen das konzeptionelle Architektur-Modell für die Planung von Umstrukturierungen größeren Umfangs, wie z.B. der Integration neuer Komponenten, dienen kann. In diesem Zusammenhang kann bereits im Vorfeld sowie Evolutions-begleitend durch das Qualitätskriterium "</p><p>Modifzierbarkeit" <ref type="bibr" target="#b0">[BCK03]</ref> die Architektur auf potenzielle Anpassungsszenarien hin ausgelegt und bewertet werden. Neben der globalen Koevolution zwischen Anforderungen, Architektur-Modellen und der Implementierung, besteht auch die Notwendigkeit, die Konsistenz von konkreter und konzeptioneller Architektur sicherzustellen. Die konkrete Architektur ergibt sich als Snapshot aus Systemzustand und Laufzeitartefakten im betrachteten Betriebszeitpunkt und kann, wie in Abschnitt 2.2.3 beschriebenen, ermittelt werden. Ergibt sich für die so ermittelte konkrete Architektur zu einem bestimmten Zeitpunkt, dass sie z.B. durch eine Folge von Adaptionen strukturell zu weit von der konzeptionellen Architektur entfernt ist und nicht mehr als dessen Ausprägung gelten kann, ist auch eine Evolution, d.h. Rekonstruktion der konzeptionellen Architektur notwendig. Umgekehrt führt die Planung von Evolutionen auf Grundlage der konzeptionellen Architektur zu einer Diskrepanz mit der konkreten Architektur, die gerade die für diese Anpassungen notwendigen Änderungen im laufenden System impliziert. In beiden Fällen können die aktualisierten Architektur-Modelle zur erneuten Architektur-Evaluation und somit fortlaufenden Qualitätssicherung verwendet werden, bzw. als Entscheidungsgrundlage in den Planungsprozess von Anpassungen und Adaptionen einbezogen und durch Monitoring-Ansätze ergänzt werden. Die laufenden Anpassungen der Implementierung können je nach Grad der hieraus entstehenden Evolution zu unterschiedlich stark ausgeprägten Erosionen der konkreten, und schließlich auch der konzeptionellen Architektur führen. Diese "</p><p>Versionssprünge" stellen die wesentlichen Bezugspunkte bei der Dokumentation der Evolutionsgeschichte für das Änderungs-, Anforderungs-und Qualitätsmanagement langlebiger Systeme dar. Somit sind Architektur-Entscheidungen als Bestandteil der Versionsverwaltung und des Requirements Tracing mitsamt der Evaluationsstruktur für die Qualitätskriterien nachverfolgbar und können auch als Anhaltspunkte für spätere Anpassungen erneut herangezogen werden. Vor der Durchführung von Änderungen am System sind neben der Überprüfung von Qualitätskriterien auch entsprechende Techniken zum Erhalt der funktionalen Korrektheit einzusetzen, wie beispielsweise die Kombination kontinuierlicher Refactorings und Tests aus dem Bereich der agilen Methoden <ref type="bibr" target="#b10">[RH06]</ref>. Für eine nähere Diskussion der in diesem Bereich bestehenden Probleme und Herausforderungen verweisen wir u.a. auf <ref type="bibr" target="#b9">[RB02]</ref>. Literatur</p></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head></head><label></label><figDesc>Abbildung 1: Evaluationsstruktur zur Architektur-Bewertung</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_1"><head>Für</head><label></label><figDesc>Abstraktionskonzepte von Architektur-Spezifikationen, insbesondere zur strukturellen Dekomposition, existieren eine Vielzahl unterschiedlichster Modellierungsansätze und Formalismen<ref type="bibr" target="#b10">[RH06]</ref>. Wir beziehen uns vor allem auf Component-Connector-Modelle<ref type="bibr" target="#b0">[BCK03]</ref>, also die explizite Darstellung grundlegender, häufig rein logischer System-Artefakte und den Abhängigkeiten zwischen diesen Elementen.Eingebettete Systeme sind zunehmend Software-intensiv und realisieren Steuerungs-und Regelungsaufgaben durch Kommunikations-orientierte Integration verschiedenster, hochspezialisierter Komponenten auf häufig massiv verteilten und heterogen strukturierten Hardware-Plattformen. Standardisierte Schichtenarchitekturen erlauben eine flexible Verteilung von Software-und Hardware-Komponenten, sodass beliebige Architektur-Varianten bezüglich (Wieder-) Verwendung, Anordnung, Verteilung und Verknüpfung dieser Komponenten möglich sind und so großen Spielraum für Optimierungen bieten. Ein Problem bei der Entwicklung dieser Systeme besteht u.a. im konzeptionellen "Bruch" beim Übergang von der abstrakten Architektur hin zur möglichst effizienten, d.h. Hardware-nahen Implementierung der Einzelfunktionen. Für die gezielte Planung und Durchführung von Evolutionen langlebiger eingebetteter Systeme bilden Architektur-Modelle eine wichtige Entscheidungsgrundlage, da sie nicht nur Abhängigkeiten zwischen betroffenen Systemteilen aufzeigen, sondern auch durch Modularisierung gezielt die Austauschbarkeit von Teilkomponenten unterstützen. Architektur-Entwürfe konzentrieren sich in der Regel auf die Spezifikation statischer Strukturen, jedoch ist dies für weitergehende Zwecke, wie z.B. für Systemanalysen zur Anpassung bzw. Rekonfiguration, oft unzureichend, sodass deshalb eine Kombination mit Verhaltensmodellen notwendig ist [RB02]. Um zukünftig beim Entwurf von System-Architekturen potenzielle Evolutionen bereits während der Entwicklung zu berücksichtigen, muss die geplante Variabilität des Systems explizit mitmodelliert werden. Derartige evolutionsfähige Architekturen können dann als Grundlage für die Planung und Durchführung von Evolutionsschritten und für die Dokumentation der Evolutionsgeschichte dienen und ermöglichen ein Variabilitätsmanagement vergleichbar mit den Konzepten der Produktlinien-Ansätze [CN07]. Durch vordefinierte Variationspunkte werden mögliche Freiheitsgrade für die Anpassbarkeit des Systems bereits als Teil des Architektur-Modells festgelegt. Je nach Änderungsszenario kann die Evolution dann durch Anpassung betroffener Artefakte erfolgen, und das in sämtlichen Phasen des Lebenszyklus. Hierfür sind Architektur-Metamodelle notwendig, die neben der Zuordnung von Variabilitätspunkten auch die Integration von zusätzlichem Wissen über das System erlauben. Auf diese Weise kann sowohl auf Änderungen funktionaler, als auch nicht-funktionaler Anforderungen zielgerichtet reagiert werden. 2.2.2 Architektur-Sichten eingebetteter Systeme Die Definition von Architektur-Sichten trägt beim Entwurf von Architekturen eingebetteter Systeme maßgeblich zur Übersichtlichkeit und Komplexitätsbeherrschung bei. Ausgehend von der domänenspezifischen Anforderungsspezifikation (inkl. Qualitätskriterien) in der Applikationssicht können sowohl die hochspezialisierte, modularisierte Software in der Funktionsarchitektur-Sicht, als auch die anwendungsspezifische Hardware-Plattform (technische Sicht) zunächst getrennt betrachtet werden, und erst im letzten Schritt durch möglichst günstige Verteilung der Software-Komponenten auf vorhandene Recheneinheiten unter Beachtung des resultierenden Kommunikationsaufkommens flexibel in einer System-Architektur integriert werden. Analog zu [RB02] unterscheiden wir im Folgenden zudem zwischen Architektur-Sichten zur Spezifikations-und Laufzeit: Konzeptionelle Architektur: Die Spezifikation beschreibt abstrakte strukturelle Einheiten des Systems mitsamt ihren Abhängigkeiten. Je nach Modellierungsansatz können konzeptionelle Architekturen unterschiedlichste Artefakte beinhalten. Beispielsweise kann die Struktur des Softwaresystems auf Grundlage einer Component-Connector-Abstraktion beschrieben und durch Schnittstellen-und Prozess-Definitionen verfeinert werden. Beim Entwurf adaptiver Systeme können zudem im Vorfeld gezielt Konfigurationsparameter eingeplant werden. Konkrete Architektur: Zur Laufzeit repräsentieren die im System agierenden, operationellen Einheiten die aktuelle Architektur-Ausprägung. Dazu gehören Artefakte wie laufende Prozesse (Tasks), deren Kommunikation untereinander sowie Werte von Konfigurationsparametern. Diese Instanzen der Elemente der konzeptionellen Architektur variieren je nach Zustand des Systems im betrachteten Zeitpunkt. Eine Divergenz zwischen konzeptioneller und konkreter Architektur ist in der Regel unvermeidbar. Spätestens im Betrieb ergeben sich Erosions-bedingte Inkonsistenzen, z.B. durch unzureichend dokumentierte Evolutionen. Darüber hinaus ist insbesondere für Altsysteme in der Regel keine oder eine nur unvollständige Spezifikation der Architektur vorhanden. Für eine strukturierte Planung von Architektur-Evolutionen ist somit eine Rekonstruktion der konzeptionellen Architektur auf Grundlage der durch die aktuelle Systemausprägung gegebenen konkreten Architektur notwendig. Auch für die Architektur-Evaluation können passende Architektur-Sichten definiert werden, die für die jeweiligen Bewertungstechniken relevanten Artefakte enthalten. Für die Modellierung evolvierender Architekturen können zudem Sichten definiert werden, die eine explizite Spezifikation von Variabilitätsparametern unterstützen. Für die Bewertung von Echtzeiteigenschaften in PROSA-X ist z.B. die Verteilung und Kommunikation von Prozessen im System von entscheidender Bedeutung, wobei eine Reihe von Randbedingungen zu beachten sind. Eine Sicht zur Planung und Bewertung von Prozessmigrationen repräsentiert diese Verteilungs-und Kommunikationsstruktur durch eine entsprechende Graphendarstellung [SGM09].</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_2"><head>Rekonstruktion:</head><label></label><figDesc>Durch " heuristisches" Reverse Engineering wird versucht, höhere Abstraktionsebenenen, wie z.B. Component-Connector-Strukturen und andere Pattern, aus dem Quellcode eines bestehenden Software-Systems ohne adäquate Spezifikation zu ermitteln. Eine wesentliche Problematik besteht hier im " mismatch" zwischen abstrakten Architektur-Konzepten und den Artefakten von Programmiersprachen, also der Definition eines geeigneten correspondence model zwischen Code und Architektur-Modell. Bei der Hardware-nahen Programmierung eingebetteter Systeme gestaltet sich die Identifikation von High-Level-Komponenten als besonders schwierig. Ansätze zum Architektur-Recovery sind in der Regel nur (semi-) automatisierbar, bedürfen also geführter Entscheidungen von Expertenseite. Extraktion: Eine Erweiterung der Rekonstruktionsansätze basiert auf der Einbettung von Architektur-Modellen als Metawissen in den Programmcode, wodurch eine präzisere Identifikation und Zuordnung von Architektur-Artefakten möglich wird. Speziell objektorientierte Programmierparadigmen weisen eine enge konzeptionelle Verwandtschaft zu Komponenten-orientierten Architektur-Modellen auf. Die Einbettung von Verhaltensmodellen werden z.B.. [BSG09] und [SVB + 03] beschrieben. Weiterhin können hier Programmierumgebungen mit Reflection-Funktionen angeführt werden, von denen zur Laufzeit Informationen über die eigene Programmstruktur abgefragt werden können. Monitoring: Für eine beliebig detaillierte Ermittlung von dynamischen Informationen können schließlich eigene Observer-Komponenten innerhalb des Systems zum Tracking von Laufzeitinformationen, z.B. dem Erstellen von Last-und Kommunikationsprofilen, verwendet werden, was insbesondere ein wesentlicher Bestandteil adaptiver Systeme ist. Auf dieser Grundlage können auch entsprechend aussagekräftige Metriken zur Validierung vorhergehender Qualitätsbewertungen definiert werden.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_3"><head>Evolutionsfähige Architekturen:</head><label></label><figDesc>Abbildung 4: Prozess-Migration in PROSA-X Durch das Einsatzgebiet von PROSA-X werden hohe Anforderungen an die Sicherheit, Verfügbarkeit, Performanz, etc. gestellt. Um insbesondere die Erfüllung harter Echtzeitanforderungen sicherzustellen, sind unter Umständen Anpassungen im laufenden Betrieb notwendig, z.B. bei Änderungen an der Ausführungsplattform (Knotenausfall) oder der Betriebslast (Prozessanzahl). In diesen Fällen kann der Self-Manager zur Laufzeit eine neue Konfiguration durch Umverteilung von Prozessen auf Netzwerkknoten ermitteln, um den Erhalt der Echtzeiteigenschaften weiterhin zu gewährleisten. Ein exemplarisches Adaptionsszenario ist in Abbildung 4 dargestellt. Die Planung der Umverteilung erfolgt auf Grundlage einer extrahierten, konkreten Architektur-Sicht, bestehend aus einem durch Monitoring ermittelten Kommunikationsgraphen der laufenden Prozesse. Durch eine Kombination verschiedener Heuristiken zur Graphpartitionierung wird eine möglichst ausgewogene Neuverteilung der Prozesse auf vorhandene Knoten geplant (im Beispiel drei Kontroll-PCs), d.h. (1) eine gleichmäßige Auslastung der einzelnen Prozessorknoten, und (2) eine möglichst geringe Buslast angestrebt. Die Adaption der konkreten Architektur erfolgt durch Prozessmigration im laufenden System. Gleichzeitig kann das angepasste Architektur-Modell zur Prüfung der übrigen Qualitätskriterien herangezogen werden, z.B. die Verletzung von Sicherheitsanforderungen, falls durch die Migration die notwendige Isolation zweier Prozes-</figDesc></figure>
		</body>
		<back>
			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<monogr>
		<title level="m" type="main">Software Architecture in Practice</title>
		<author>
			<persName><forename type="first">L</forename><surname>Bass</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Clements</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Kazman</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2003">2003</date>
			<publisher>Auflage</publisher>
			<biblScope unit="volume">2</biblScope>
			<pubPlace>Amsterdam</pubPlace>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<analytic>
		<title level="a" type="main">Embedding Behavioral Models into Object-Oriented Source Code</title>
		<author>
			<persName><forename type="first">M</forename><surname>Balz</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Striewe</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Goedicke</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Software Engineering</title>
		<imprint>
			<biblScope unit="page" from="51" to="62" />
			<date type="published" when="2009">2009</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<monogr>
		<title level="m" type="main">Software Product Lines: Practices and Patterns</title>
		<author>
			<persName><forename type="first">P</forename><surname>Clements</surname></persName>
		</author>
		<author>
			<persName><forename type="first">L</forename><forename type="middle">M</forename><surname>Northrop</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2007">2007</date>
			<publisher>Auflage</publisher>
			<biblScope unit="volume">6</biblScope>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<analytic>
		<title level="a" type="main">Architekturevaluation: Qualitätssicherung in frühen Entwicklungsphasen</title>
		<author>
			<persName><forename type="first">M</forename><surname>Egg + ; G. Engels</surname></persName>
		</author>
		<author>
			<persName><forename type="first">U</forename><surname>Goedicke</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Goltz</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Rausch</surname></persName>
		</author>
		<author>
			<persName><surname>Reussner</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Ernst</surname></persName>
		</author>
		<author>
			<persName><surname>Saul</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Symposium AAET 2007</title>
				<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2007">2009. 2007</date>
			<biblScope unit="page" from="238" to="248" />
		</imprint>
		<respStmt>
			<orgName>Informatik Spektrum</orgName>
		</respStmt>
	</monogr>
	<note>Design for Future -Legacy-Probleme von morgen vermeidbar?</note>
</biblStruct>

<biblStruct xml:id="b4">
	<analytic>
		<title level="a" type="main">Laws of Software Evolution revisited</title>
		<author>
			<persName><forename type="first">M</forename><surname>Lehman</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Software Process Technology</title>
				<imprint>
			<date type="published" when="1996">1996</date>
			<biblScope unit="page" from="108" to="124" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<analytic>
		<title level="a" type="main">Architektur-Evaluation von AUTOSAR-Systemen: Adaption und Integration</title>
		<author>
			<persName><forename type="first">;</forename><forename type="middle">M</forename><surname>Lmd</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Lochau</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Müller</surname></persName>
		</author>
		<author>
			<persName><forename type="first">U</forename><surname>Detering</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Goltz</surname></persName>
		</author>
		<author>
			<persName><surname>Form</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Tagungsband des 1. Elektronik automotive congress</title>
				<meeting><address><addrLine>München</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2009">2009</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b6">
	<analytic>
		<title level="a" type="main">To appear: Optimierung von AUTOSAR-Systemen durch automatisierte Architektur-Evaluation</title>
		<author>
			<persName><forename type="first">;</forename><forename type="middle">M</forename><surname>Lms</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Lochau</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Müller</surname></persName>
		</author>
		<author>
			<persName><forename type="first">U</forename><surname>Steiner</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Goltz</surname></persName>
		</author>
		<author>
			<persName><surname>Form</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="s">VDI-Berichte</title>
		<imprint>
			<biblScope unit="volume">14</biblScope>
			<date type="published" when="2009">2009</date>
			<publisher>Internationale Konferenz Elektronik im Kraftfahrzeug</publisher>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b7">
	<monogr>
		<author>
			<persName><forename type="first">D</forename><surname>Masak</surname></persName>
		</author>
		<title level="m">Legacysoftware: Das lange Leben der Altsysteme</title>
				<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2007">2007</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b8">
	<analytic>
		<title level="a" type="main">Software Aging</title>
		<author>
			<persName><forename type="first">D</forename><forename type="middle">L</forename><surname>Parnas</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">ICSE &apos;94: Proceedings of the 16th international conference on Software engineering</title>
				<meeting><address><addrLine>Los Alamitos, CA, USA</addrLine></address></meeting>
		<imprint>
			<publisher>IEEE Computer Society Press</publisher>
			<date type="published" when="1994">1994</date>
			<biblScope unit="page" from="279" to="287" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b9">
	<analytic>
		<title level="a" type="main">Evolutionary Development of Software Architectures</title>
		<author>
			<persName><forename type="first">A</forename><surname>Rausch</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Broy</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Technology for Evolutionary Software Development, a Symposium organised by NA-TO&apos;s Research &amp; Technology Organization (RTO)</title>
				<imprint>
			<date type="published" when="2002">2002</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b10">
	<monogr>
		<author>
			<persName><forename type="first">R</forename><surname>Reussner</surname></persName>
		</author>
		<author>
			<persName><forename type="first">W</forename><surname>Hasselbring</surname></persName>
		</author>
		<title level="m">Handbuch der Software-Architektur</title>
				<imprint>
			<publisher>Dpunkt</publisher>
			<date type="published" when="2006">2006</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b11">
	<analytic>
		<title level="a" type="main">Engineering Self-Management into Legacy Systems</title>
		<author>
			<persName><forename type="first">J</forename><surname>Steiner</surname></persName>
		</author>
		<author>
			<persName><forename type="first">U</forename><surname>Goltz</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceeding for 3rd International Conference on Self-Organization and Autonomous Systems in Computing and Communications (SOAS 2007), Jgg. 2 of System and Information Science Notes</title>
				<meeting>eeding for 3rd International Conference on Self-Organization and Autonomous Systems in Computing and Communications (SOAS 2007), Jgg. 2 of System and Information Science Notes</meeting>
		<imprint>
			<date type="published" when="2007">2007</date>
			<biblScope unit="page" from="114" to="117" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b12">
	<analytic>
		<title level="a" type="main">Dynamische Verteilung von Steuerungskomponenten unter Erhalt von Echtzeiteigenschaften</title>
		<author>
			<persName><forename type="first">J</forename><surname>Steiner</surname></persName>
		</author>
		<author>
			<persName><forename type="first">U</forename><surname>Goltz</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Maaß</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Paderborner Workshop Entwurf mechatronischer Systeme</title>
				<imprint>
			<date type="published" when="2009">2009</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b13">
	<monogr>
		<title level="m" type="main">Model-carrying code: A practical approach for safe execution of untrusted applications</title>
		<author>
			<persName><forename type="first">V</forename><surname>Svb + ; R. Sekar</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Venkatakrishnan</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Basu</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Bhatkar</surname></persName>
		</author>
		<author>
			<persName><surname>Duvarney</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2003">2003</date>
		</imprint>
	</monogr>
</biblStruct>

				</listBibl>
			</div>
		</back>
	</text>
</TEI>
