<?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="en">
		<fileDesc>
			<titleStmt>
				<title level="a" type="main">Model-Based Extension of AUTOSAR for Architectural Online Reconfiguration</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">Basil</forename><surname>Becker</surname></persName>
							<affiliation key="aff0">
								<orgName type="institution">University of Potsdam</orgName>
								<address>
									<addrLine>Prof.-Dr.-Helmert-Str. 2-3</addrLine>
									<postCode>14482</postCode>
									<settlement>Potsdam</settlement>
									<country key="DE">Germany</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Holger</forename><surname>Giese</surname></persName>
							<affiliation key="aff0">
								<orgName type="institution">University of Potsdam</orgName>
								<address>
									<addrLine>Prof.-Dr.-Helmert-Str. 2-3</addrLine>
									<postCode>14482</postCode>
									<settlement>Potsdam</settlement>
									<country key="DE">Germany</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Stefan</forename><surname>Neumann</surname></persName>
							<affiliation key="aff0">
								<orgName type="institution">University of Potsdam</orgName>
								<address>
									<addrLine>Prof.-Dr.-Helmert-Str. 2-3</addrLine>
									<postCode>14482</postCode>
									<settlement>Potsdam</settlement>
									<country key="DE">Germany</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Martin</forename><surname>Schenck</surname></persName>
							<affiliation key="aff0">
								<orgName type="institution">University of Potsdam</orgName>
								<address>
									<addrLine>Prof.-Dr.-Helmert-Str. 2-3</addrLine>
									<postCode>14482</postCode>
									<settlement>Potsdam</settlement>
									<country key="DE">Germany</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Arian</forename><surname>Treffer</surname></persName>
							<affiliation key="aff0">
								<orgName type="institution">University of Potsdam</orgName>
								<address>
									<addrLine>Prof.-Dr.-Helmert-Str. 2-3</addrLine>
									<postCode>14482</postCode>
									<settlement>Potsdam</settlement>
									<country key="DE">Germany</country>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">Model-Based Extension of AUTOSAR for Architectural Online Reconfiguration</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">81043B5087E86FEC8E09E38570928E26</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-19T16:04+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>In the last years innovations in the automotive domain have more and more been realized by software leading to a dramatically increased complexity of such systems. Additionally automotive systems have to be flexible and robust, e.g., to be able to deal with failures of sensors, actuators or other constituents of an automotive system. One possibility to achieve robustness and flexibility in automotive systems is the usage of reconfiguration capabilities. However, adding such capabilities introduces even higher degree of complexity. To avoid this drawback we propose to integrate reconfiguration capabilities into AUTOSAR, an existing framework supporting the management of such complex system at the architectural level. Elaborated and expensive tools and toolchains assist during the development of automotive systems. Hence we present how our reconfiguration solution has been seamlessly integrated into such a toolchain.</p></div>
			</abstract>
		</profileDesc>
	</teiHeader>
	<text xml:lang="en">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="1">Introduction</head><p>Today most innovations in the automotive domain are realized by software. This results in a dramatically increasing complexity of the developed software systems <ref type="foot" target="#foot_0">1</ref> . The objective of the AUTOSAR framework is to deal with this complexity at the architectural level. Additionally these systems need to deal with diverse situations concerning the context in which the software is operating. Such systems and especially the software, which is realizing essential functionalities of the overall system, need to be flexible to react on changes of its context. Regardless if such a system need to react on failures or on other contextual situations <ref type="foot" target="#foot_1">2</ref> , flexibility and robustness plays an important role in today's automotive applications.</p><p>Reconfiguration is one possibility to facilitate the flexibility and robustness of such systems. There exist different possibilities to realize reconfiguration within automotive software. One is to realize reconfiguration mechanisms at the functional level. Because the AUTOSAR framework primarily provides mechanisms to deal with the complexity at the architectural level also the reconfiguration aspects should be available at the same level. Because deriving architectural information from the functional level could be difficult or even impossible we propose to specify reconfiguration aspects at the architectural level and to automatically derive the needed functionality based on the architectural information.</p><p>Further in a typical development scenario one has to deal with black-box components provided by third parties and elaborated information about the included functionality is not available, what also hampers the management of reconfiguration aspects at the functional level. Another possible solution is to introduce a new approach inherently facilitating reconfiguration aspects in the context of automotive systems. Today standard methods and tools already exist for supporting the development process of AUTOSAR. Because adapting existing tools or developing new once is very costly the propagation of such a new approach would be hardly suitable in practice. Summarizing we have identified the need for an development approach that is able to provide reconfiguration capabilities at the architectural level, can be seamlessly integrated into an exiting development solution and can also include third party components into the reconfigurable architecture. In this work we show how reconfiguration capabilities, which are currently not included in the existing AUTOSAR approach can be supported at the architectural level without degrading existing development solutions, tools or the standard itself. We further show how the needed functionality for realizing the reconfiguration logic can be automatically generated based on the architectural information describing the reconfiguration. The used application example for our evaluation is related to the field of fault tolerant systems and from our perspective such systems are one possible field to which reconfiguration like discussed in the remainder of this work can be applied.</p><p>The remainder of this paper is organized as follows. In Section 2 we discuss existing approaches supporting reconfiguration relevant for automotive systems and especially those approaches providing reconfiguration capabilities at the architectural level. In Section 3 we briefly introduce the existing toolchain, which builds the technological foundation for our investigation concerning the developed extension for on-line reconfiguration within the AUTOSAR framework. Subsequently in Section 4 we show how such a system is usually modeled with the given tools and how the additional reconfiguration aspects could be formulated based on the input/output of the existing toolchain. In Section 5 we show how these created additional reconfiguration aspects are automatically merged back into the original architecture and how the merged result fits into the existing tools without discarding or degrading parts of the original toolchain. Finally we give short discussion concerning the current results of our work in Section 6.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2">Related Work</head><p>In several different areas of computer science ideas have been presented, which are related to the approach we are going to present in this paper. In the field of software product lines and especially dynamic software product lines the topic of variable software has been addressed. The software architecture community has presented some work on the reconfigurability of robotic systems. Work, tailored to the automotive domain, has been done in the DySCAS project. We did some research on self-optimizing mechatronic systems.</p><p>In previous work we have presented a modeling technique called Mechatronic UML (mUML), which is suitable for the modeling of reconfigurable and self-optimizing mechatronic systems <ref type="bibr" target="#b0">[1,</ref><ref type="bibr" target="#b1">2]</ref>. However, the mUML approach differs from the one, which will be presented in this paper, in the fact that mUML uses an own code generation mechanisms and thus could hardly be integrated into existing development tool chains.</p><p>In the DySCAS<ref type="foot" target="#foot_2">3</ref> project dynamically self-configuring automotive systems have been studied <ref type="bibr" target="#b2">[3,</ref><ref type="bibr" target="#b3">4]</ref>. DySCAS does not provide a model based development approach, tailored to the specification of reconfiguration. Reconfiguration is specified with policy scripts, which are then evaluated by an engine at run-time (cf. <ref type="bibr" target="#b4">[5]</ref>).</p><p>Software Product Line Engineering (SPLE) <ref type="bibr" target="#b5">[6]</ref> aims at bringing the assembly line paradigm to software engineering. Typically a software product line is used to develop multiple variants of the same product. However, as the classical SPLE approach targets the design-time variability of software it is not comparable to the approach we are going to present in this paper. Recently a new research branch has emerged from SPLE called Dynamic Software Product Line Engineering <ref type="bibr" target="#b6">[7]</ref>. In Dynamic Software Product Lines the decision, which variant to run, has moved from design-to run-time. Such an approach is presented in <ref type="bibr" target="#b7">[8]</ref>, where the authors describe a dynamic software product line, which is suitable for the reconfiguration of embedded systems. In contrast to our approach this one is restricted to the reconfiguration of pipe-and-filter architectures and the reconfiguration has to be given in a textual form.</p><p>In <ref type="bibr" target="#b8">[9]</ref> a framework for the development of a reconfigurable robotic system has been presented. But the presented approach does in contrast to ours not support the model-driven development of reconfiguration. A policy-based reconfiguration mechanism is described in <ref type="bibr" target="#b9">[10]</ref>. The authors present a powerful and expressive modeling notation for the specification of self-adaptive (i.e. reconfigurable) systems but their approach requires too much computational power and is thus only remotely applicable to embedded systems. In <ref type="bibr" target="#b10">[11]</ref> an approach based on mode automata has been presented. However, mode automata only support switching between different behaviors internal to a component and do not cover architectural reconfiguration.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3">Existing Development Approach</head><p>For the development of embedded systems -especially in the automotive domain -several tools exist that provide capabilities for model-based development of such systems. Tools used by companies typically are mature, provide reliable and optimized code generation mechanisms and are as expensive as complex. Hence, any technique that claims being usable in the domain of embedded / automotive systems must be integrated into the existing toolchain. We will use this section to exemplary describe a toolchain, which might be used in the context of the AUTOSAR domain specific language.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.1">AUTOSAR</head><p>The AUtomotive Open System ARchitecture (AUTOSAR) is a framework for the development of complex electronic automotive systems. AUTOSAR provides a layered software architecture consisting of the Application layer, the Runtime Environment and the Basic Software layer. Figure <ref type="figure" target="#fig_4">1 4</ref> shows the different layer of the architecture. The Basic Software layer provides services concerning HW access, communication and Operating System (OS) functionality (cf. <ref type="bibr" target="#b11">[12]</ref>). The Basic Software provides several interfaces in a standardized form to allow the interaction between the Basic Software layer and the application layer routed through the Runtime Environment. The Runtime Environment handles the communication between different constituents of the application layer and between the application layer and the Basic Software layer (e.g., for accessing Hardware via the Basic Software, cf. <ref type="bibr" target="#b12">[13]</ref>). The Application layer consists of Software Components, which can be hierarchically structured and composed to so called Compositions. Software Components and Compositions can have ports and these ports can be connected via Connectors (see <ref type="bibr" target="#b13">[14]</ref> for more details). The real communication is realized through the Runtime Environment in case of local communication between Software Components (Compositions) on the same node (Electronic Control Unit) or through the Runtime Environment in combination with the Basic Software in case of communication between different nodes.</p><p>The main focus of AUTOSAR is the modeling of architectural aspects and of structural aspects. The behavior modeling (e.g., needed control functionality for reading sensor values and setting actuators) is not the main focus of the AU-TOSAR framework. For modeling such behavior existing approaches and tools can be integrated into the development process of AUTOSAR. One commonly used tool for the model based development of behavior is MATLAB/Simulink (like described in Section 3.2). For executing such functionality AUTOSAR provides the concept of Runnables, which are added as a part of the internal behavior of a Software Component. Developed functionality could be mapped to Runnables and these Runnables are mapped to OS tasks. Additionally events can be used to decide inside an OS task if specific runnables are executed at runtime (e.g., runnables could be triggered by events if new data has been received via a port of the surrounding Software Component). For more details about the OS provided by the AUTOSAR framework see <ref type="bibr" target="#b14">[15]</ref>.</p><p>Once the modeling and configuration is done, in the current release version of AUTOSAR<ref type="foot" target="#foot_4">5</ref> changes at run-time concerning the structure of the application layer (e.g., restructuring connectors) are not facilitated by the framework. </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.2">Existing Toolchain</head><p>The scheme in Figure <ref type="figure" target="#fig_1">2</ref>(a) shows one possible toolchain for the development of AUTOSAR systems. Rectangles with rounded corners represent programs, rectangles with cogwheels stand for processes. The arrows indicate exchange of documents, the type of the document (i.e. models, C-code or parameters) is annotated to the arrows. The system's architecture (i.e. components, ports and connectors) is modeled in SystemDesk<ref type="foot" target="#foot_5">6</ref> . Together with the architecture Sys-temDesk also supports the modeling of the system's deployment to several ECUs. The components behavior is specified using Matlab with the extension Simulink. For Matlab/Simulink (ML/SL) special AUTOSAR block sets exist, which allow the import of components specified in SystemDesk into Matlab and following the development of the component's functionality.</p><p>Further SystemDesk supports the generation of optimized C-Code, which conforms to the AUTOSAR standard concerning the Runtime Environment (cf. Subsection 3.1). Together with the C implementation of the software components modeled in SystemDesk the generated output also contains a configuration for the basic software layer. This layer is generated from specialized tools (e.g. Tresos by ElectroBit, abbreviated as BSW-C/G in Figure <ref type="figure" target="#fig_1">2</ref>) and is specific to the system modeled in SystemDesk and the available hardware.</p><p>At the integration step a build environment compiles the generated C-Code and builds the software running on each ECU.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.3">Evaluation Example</head><p>The used application example for showing the reconfiguration capabilities that are supplemented to the existing AUTOSAR framework in our approach is the reconfiguration of a set of adjacent aligned distance sensors. The discussed evaluation example allows reacting on sensor failures in the manner that the failure of individual sensor instances is compensated. <ref type="foot" target="#foot_6">7</ref>Such adjacent aligned sensors are commonly used in a modern car, e.g., in case of a parking distance control. Such a parking distance control uses sensors (e.g., ultrasonic sensors) embedded in the front or rear bumper for measuring the distance to nearby obstacles.</p><p>Additionally in Section 5.3 we discuss the evaluation results of experiments we have made on an evaluation platform using the techniques described in Section 4.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4">Modeling Reconfiguration</head><p>In order to make an AUTOSAR system architecture reconfigurable, some additional concepts are needed. The toolchain needs to be extended in a certain way that extensions do not make the existing toolchain invalid. From our perspective the best way is to integrate an optional tool that can be plugged into the existing toolchain.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.1">Extended Toolchain</head><p>Our modeling approach is currently restricted to the modeling of AUTOSAR software architectures. The toolchain in Figure <ref type="figure" target="#fig_1">2</ref>(b) shows our approach of extending the existing toolchain by another tool without degrading existing ones. By using this proposal the developer is free to choose, whether he wants to use our given enhancement or not. He can either model an architecture, that does not provide any reconfiguration or he can use our tool in addition and empower himself to specify and realize reconfiguration aspects. The advantages are obvious: better control and overview due to the diagrammatic depiction.</p><p>SystemDesk SystemDesk is a tool provided by dSPACE<ref type="foot" target="#foot_7">8</ref> supporting the modeling of AUTOSAR conform systems. Among other things it supports the modeling of the AUTOSAR HW and SW architectures. For modeling the SW architecture Software Components, compositions as well as ports, interfaces and connectors are provided as modeling artifacts. These artifacts can be used to describe the architectural aspects of a concrete SW architecture for a specific system like shown in Figure <ref type="figure" target="#fig_2">3</ref>. <ref type="foot" target="#foot_8">9</ref> Besides modeling the architecture in SystemDesk, the tool also allows the linking of the Software Components to their behavior, written in C-Code or given in form of MATLAB/Simulink models.</p><p>Additionally the HW architecture including the used types of ECUs (Electronic Control Unit), the deployment of Software Components to these ECUs as well as additional information concerning the configuration (e.g., configuration concerning communication and the OS) can be specified. Based on this information SystemDesk automatically generates code, which can be compiled for the specified platform. Besides the code for the application layer SystemDesk also generates source code realizing the Runtime Environment functionality.</p><p>Figure <ref type="figure" target="#fig_2">3</ref> shows the relevant part of the SW architecture concerning our application example modeled in SystemDesk. Like depicted on the right side of Figure <ref type="figure" target="#fig_2">3</ref> the composition consists of four Software Components representing the distance sensors<ref type="foot" target="#foot_9">10</ref> connected to another composition SensorLogic evaluating the sensor values to a single value provided by the port ShowDistanceOut. <ref type="foot" target="#foot_10">11</ref>The above mentioned elements (Software Components, ports and connectors) are used to describe the software when no reconfiguration is intended. Some additional elements shown in Figure <ref type="figure" target="#fig_2">3</ref> are described in more detail in the following section. These elements (Interpolation, Reconfiguration and the unused ports of the sensors) are used later to realize the reconfiguration functionality. dTool The usual modeling procedure is not altered until the modeling in Sys-temDesk <ref type="foot" target="#foot_11">12</ref> is initially done like described above. After the model from Sys-temDesk is exported in form of an XML file <ref type="foot" target="#foot_12">13</ref> and loaded into the dTool the constituents concerning the reconfiguration could be specified. Using the dTool we are now able to model two different aspects, relevant for the reconfiguration. On the one hand our tool allows creating new configurations, which differ from the initial one. Such differences are alternative connections (in form of connectors) between components and/or compositions. Which parts of the architecture are relevant concerning reconfiguration is indicated by the Software Component Reconfiguration included in the original SystemDesk model. Alternatively the dTool allows to manually choosing relevant parts of the imported architecture. On the other hand our dTool allows to model an automaton, which specifies how to switch between the modeled configurations.</p><p>Figure <ref type="figure" target="#fig_3">4</ref>(a) depicts the configuration (modeled in the dTool) associated with the state that sensor two is broken. In the shown configuration the value of the port DistanceOut from the broken sensor Sensor 2 is not available. Consequently the value sent to the port Distance 2 In of the composition SensorLogic is interpolated from the to sensor values of the first and the third sensor via the additional composition Interpolation.  The composition Interpolation used here provides some functionality for interpolating two different sensor values. This functionality has been added specifically for our application example. <ref type="foot" target="#foot_13">14</ref> This interpolation functionality is used to approximate the value of a broken sensor based on the values of two adjacent sensors. It is potentially possible to integrate this functionality into an existing Software Component, but for a better understanding, we decided to introduce a new Software Component for this purpose.</p><p>The second part, which could be modeled in the dTool relevant for the reconfiguration is the automaton shown in Figure <ref type="figure" target="#fig_6">5</ref> specifying how to switch between different configurations. The automaton consist of the initial state initial, where all four sensors work correctly, the state sensor2broke where the second sensor is broken, the state sensor3broke where the third sensor is broken and state allfail where the first or the fourth sensor or more than one sensor is broken. Transitions between these states specify which reconfiguration is applied at runtime. The transitions are further augmented with guards. These guards are expressions over the values provided by components within the reconfigurable composition, which provide information relevant for the reconfiguration (in our case these information are provided via the Status-ports of the four Sensor-Software Components). An example for such a guard is shown at the transition from state initial to state sensor2broke requiring that the status port of the Software Component Sensor 2 provides the value 0 (indicating a broken sensor).</p><p>For the application example we assume that such status ports of the Software Components representing the sensors exist as we otherwise were not able to observe each sensors' status.  </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5">Merge</head><p>In its current version the AUTOSAR standard does not support reconfiguration as a first class modeling element. Thus, SystemDesk also does not support modeling of diagrams that represent different variations of one composition. Hence the direct import of the reconfiguration, we have modeled in the dTool, is impossible. Nevertheless we want to make use of SystemDesk's elaborated and AUTOSAR standard conform code generation capabilities. We had to find a way to translate the reconfiguration behavior into a SystemDesk/AUTOSAR model. This is done by merging all configurations to one final model. In the final model, the reconfiguration logic will be encapsulated by two components, the RoutingComponent and the StateManager.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5.1">Merging configurations</head><p>Our modeling approach only allows the reconfiguration of connections between components but is not suitable for the addition and removal of components at run-time 16 . Hence, a merged configuration consists of all components, which have been modeled in SystemDesk at the early stages (cf. Subsection 4.1). Connections, which do not exist in all configurations, are redirected via a special component, called RoutingComponent. Therefore, the first step is to build the intersection of all configurations. Connections found here are directly inserted into the merged model. Next the RoutingComponent is added.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Generating the RoutingComponent</head><p>The RoutingComponent intersects every connection, which is not invariant to the reconfigurable composition. Followmeasured values of consecutive points in time repeatedly have improper values (too big differences) a malfunction can be deduced. 16 Please note that the dTool allows to modeling configurations, which do not contain all components. The semantic is that the components are hidden, a dynamic loading of components is not supported by AUTOSAR.</p><p>ing the RoutingComponent has to know at each point in time, which configuration is currently the active one. Which configuration is active, is determined by the evaluation of the current configuration and the valuation of the variables used in the guards of the reconfiguration automaton (cf. Figure <ref type="figure" target="#fig_6">5</ref>). As an evaluation of the automaton at each point in time a value is sent to the RoutingComponent, is much too expensive we have implemented a different strategy.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Listing 2. Excerpt from the StateManager's implementation</head><p>Updates to the StateManager's ports are signaled by events, which then trigger the StateManager's evaluation function. 17 A small part of this evaluation function is shown in Listing 2. At line 49 of the listing the currently active configuration is read, which then is used as input for the switch statement in the following line. In case the second distance sensor is broken (identified by StatusSensor2 10 equals zero) the configuration is changed (cf. line 56). Then the changed configuration is written to the StateManager's internal configuration variable (cf. line 57) and provided to other components through the conf out port (cf. line 58). 18</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5.2">Final SystemDesk project</head><p>Figure <ref type="figure" target="#fig_7">6</ref> shows the Sensor-Composition after exporting the merged model to SystemDesk again. The components for the distance sensors are all connected to the RoutingComponent, which is named Reconf in this diagram. The system modeled in our application example does not allow an interpolation for the sensor components one and four. Following these components are always directly connected with the SensorLogic component and are not handled by the RoutingComponent. Nevertheless they also have to be connected to the Rout-ingComponent as the sensor values are used to interpolate the second respective third sensor in case of a failure.</p><p>The StateManager is depicted below the RoutingComponent and is connected to the RoutingComponent through the Conf ports, which provide information about the currently active configuration. As defined in the reconfiguration automaton (cf. Figure <ref type="figure" target="#fig_6">5</ref>) the decision which configuration to use, depends on the values of the sensor components' status ports. Following the StateManager is connected to those ports. As the reconfiguration automaton does not 17 Event mechanisms in form Runtime Environment events provided by the AUTOSAR framework have been used to trigger the runnable realizing the functionality of the StateManager. More information about Runtime Environment events can be found in <ref type="bibr" target="#b12">[13]</ref>. 18 E.g., provided to the RoutingComponent. </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5.3">Evaluation Results</head><p>The above described approach for the modeling and realization of reconfiguration aspects has been evaluated within a project arranged at Hasso-Plattner-Institute in collaboration with the dSPACE GmbH.</p><p>As an evaluation platform for the shown approach the Robotino robot<ref type="foot" target="#foot_17">19</ref> has been used, which provides an open platform for running C/C++ programs (among others) on a Real-Time Operating System (RTOS). The RTOS is provided in form of RTAI<ref type="foot" target="#foot_18">20</ref> , which is a real-time extension for the Linux operating system. To be able to evaluate the developed concepts on this platform an execution environment has been realized based on the existing RTAI Linux, which allows to compile and execute the outcome of the above described extended toolchain including the resulting parts of the reconfiguration functionality.</p><p>The robot provides nine distance sensors uniformly distributed around its chassis. In the context of our evaluation experiments we modeled the reconfig-uration of distance sensors accordingly to the above used evaluation example using nine instead of four sensors. <ref type="foot" target="#foot_19">21</ref>The generated source code of the different tools has been compiled and executed on the platform to show the applicability of our approach. In addition we analyzed the overhead resulting from the reconfiguration functionality added by our approach in comparison to the original functionality without any reconfiguration capabilities. For this purpose we measured the execution time of the generated reconfiguration automaton included in the added StateManager in combination with the parts resulting from the routing functionality realized in the additional RoutingComponent (both components are shown in Figure <ref type="figure" target="#fig_7">6</ref>).</p><p>In case of the nine sensors provided by the robot we measured execution times of the relevant parts concerning the reconfiguration functionality between 20 and 100 microseconds depending on the type of reconfiguration (react on the defect of one or several sensors at the same point in time). The tests have been realized on the equivalent execution platform on which the real functionality has been executed when running the application example on the robot. <ref type="foot" target="#foot_20">22</ref> While the robot provides a more powerful processor like it is the case for the most Electronic-Control-Units (ECUs) used within a modern car, even by using a platform or processor, which has only a tenth of the computation power we will not reach an overhead concerning the reconfiguration leading to an execution time much greater than one millisecond.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="6">Conclusion</head><p>In this paper we have presented an approach to extend AUTOSAR architectures with reconfiguration capabilities. The approach fits into existing toolchains for the development of AUTOSAR systems and allows reusing tools, which where currently used. The overhead added to the resulting reconfigurable architecture has been shown to be minimal but the developer rewards an easier development of reconfiguration logic, which otherwise has to be done manually at the functional / implementation level. We have successfully shown that it is possible to use high-level architectural modeling techniques without generating massive run-time overhead.</p><p>Although our approach has only been evaluated in the context of AUTOSAR it should be applicable to almost any component based development approach.</p><p>For the future we plan to also support the reconfiguration of distributed compositions. From an architectural point of view a distributed composition does not differ from a local one, as AUTOSAR completely hides the communication details in the Runtime Environment-layer from perspective of the application layer. Anyway, a distributed scenario contains enough challenges such as timing delays, Basic Software configuration, deployment decisions concerning Routing-Components, just to name a few. Further the high-level architectural modeling we have introduced in this paper also allows the verification of the modeled systems. First attempts in these directions have been very promising and we are looking forward to look into the details.</p></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head>Fig. 1 .</head><label>1</label><figDesc>Fig. 1. The AUTOSAR layered architecture</figDesc><graphic coords="5,178.19,248.95,242.63,129.61" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_1"><head>Fig. 2 .</head><label>2</label><figDesc>Fig. 2. The current and the extended toolchain for the development with AUTOSAR</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_2"><head>Fig. 3 .</head><label>3</label><figDesc>Fig. 3. Configuration in SystemDesk</figDesc><graphic coords="8,126.11,140.53,346.57,165.31" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_3"><head>Figure 4 (</head><label>4</label><figDesc>b) shows the configuration associated with the state that sensor four is broken and the value sent to the port Distance 3 In of the composition SensorLogic is interpolated based on the sensor values of the second and the fourth sensor.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_4"><head>Fig. 4 .</head><label>4</label><figDesc>Fig. 4. Two configurations of the architecture for two different scenarios</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_5"><head>15</head><label>15</label><figDesc></figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_6"><head>Fig. 5 .</head><label>5</label><figDesc>Fig. 5. Reconfiguration automaton in the dTool</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_7"><head>Fig. 6 .</head><label>6</label><figDesc>Fig. 6. Resulting merged SW Architecture in SystemDesk</figDesc><graphic coords="13,126.35,140.77,345.85,260.95" type="bitmap" /></figure>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="1" xml:id="foot_0">The complexity concerning the size of the developed software, the functionality realized by the software system and so on.</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="2" xml:id="foot_1"><ref type="bibr" target="#b1">2</ref> An example for such a situation, which is not related to a failure is in case the car is connected to diagnostic devices.MoDELS'09 ACES-MB Workshop ProceedingsDenver, CO, USA, October 6, 2009</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="3" xml:id="foot_2">http://www.dyscas.org MoDELS'09 ACES-MB Workshop Proceedings Denver, CO, USA, October 6, 2009</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="4" xml:id="foot_3">MoDELS'09 ACES-MB Workshop Proceedings Denver, CO, USA, October 6, 2009</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="5" xml:id="foot_4"> Release 3.1   </note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="6" xml:id="foot_5">http://www.dspace.de MoDELS'09 ACES-MB Workshop Proceedings Denver, CO, USA, October 6, 2009</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="7" xml:id="foot_6">For our application example we assume that a sensor failure can be observed at the level of Software Components.MoDELS'09 ACES-MB Workshop ProceedingsDenver, CO, USA,October 6, 2009  </note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="8" xml:id="foot_7">www.dspace.de</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="9" xml:id="foot_8">For the realization of control functionality other constituents can be imported into SystemDesk, e.g. in form of C-Code or Matlab/Simulink models, to realize the implementation of internal behavior of Software Components.</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="10" xml:id="foot_9"><ref type="bibr" target="#b9">10</ref> The ports accessing the HW via the Runtime Environment and Basic Software are not shown here because they are not object of</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="11" xml:id="foot_10">reconfiguration.<ref type="bibr" target="#b10">11</ref> To allow a better understanding SensorLogic calculates a single output value based on the different input values. Potentially also several output values can be computed.MoDELS'09 ACES-MB Workshop Proceedings Denver, CO, USA, October 6, 2009</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="12" xml:id="foot_11">http://www.dspace.de/ww/en/ltd/home/products/sw/system architecture software/systemdesk.cfm</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="13" xml:id="foot_12">The AUTOSAR framework specifies XML-Schemes for exchanging AUTOSAR models in a standardized form.MoDELS'09 ACES-MB Workshop ProceedingsDenver, CO, USA,October 6, 2009  </note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="14" xml:id="foot_13">In our application example this functionality has been realized using Matlab/Simulink.</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="15" xml:id="foot_14"><ref type="bibr" target="#b14">15</ref> Alternatively an observer could be realized in form of an additional Software Component evaluating the sensor values over time and providing the status ports. If the MoDELS'09 ACES-MB Workshop Proceedings Denver, CO, USA, October 6, 2009</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" xml:id="foot_15">MoDELS'09 ACES-MB Workshop Proceedings Denver, CO, USA,October 6, 2009  </note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="38" xml:id="foot_16">switch ( c o n f i g u r a t i o n 0 ) {</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="19" xml:id="foot_17">http://www.festo-didactic.com/int-en/news/learning-with-robots.htm</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="20" xml:id="foot_18">For more details see https://www.rtai.org.MoDELS'09 ACES-MB Workshop ProceedingsDenver, CO, USA,October 6, 2009  </note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="21" xml:id="foot_19">For a better understanding we decided to only show four sensors in the previous sections.</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="22" xml:id="foot_20">The robot is equipped with 300 MHz processor.MoDELS'09 ACES-MB Workshop ProceedingsDenver, CO, USA,October 6, 2009  </note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" xml:id="foot_21">Denver, CO, USA,October 6, 2009  </note>
		</body>
		<back>

			<div type="acknowledgement">
<div xmlns="http://www.tei-c.org/ns/1.0"><p>Acknowledgment We thank the dSPACE GmbH and especially Dirk Stichling and Petra Nawratil for their support in setting up the project. We want to thank the participants of the student project "A run-time environment for reconfigurable automotive software" : Christian Lück, Johannnes Dyck, Matthias Richly, Nico Rehwaldt, Thomas Beyhl, Thomas Schulz and Robert Gurol.</p></div>
			</div>

			<div type="annex">
<div xmlns="http://www.tei-c.org/ns/1.0"><head>// Routing f o r c o n f i g u r a t i o n i n i t i a l :</head><p>The configurations modeled in the dTool get a unique number each. The RoutingComponent receives the number of the currently active configuration via a special input port. Using this information the RoutingComponent can be implemented as a sequence of switch statements. The computation of the current active configuration is done in a second component -the StateManager. The dTool automatically generates a runnable for the RoutingComponent containing the described behavior. An excerpt of the RoutingComponent's implementation is shown in Listing 1. The variables configuration 0 and distance 1 hold the values of the current configuration and the second sensor's distance respectively. The excerpt is responsible for routing the value provided by the second distance sensor. In configuration allfail (cf. line 44) and sensor2broke (cf. line 47) no routing takes place. In the initial configuration the sensor's distance value is simply forwarded (cf. line 41) and in case the third distance sensor broke down, the value is forwarded as in initial (cf. line 51) but it is also sent to the Interpolation component (cf. line 52).</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>StateManager</head><p>The StateManager -as briefly mentioned above -is responsible for the computation of the currently active configuration. Therefore, it has to be connected with all ports that provide values, which are used in the guards of reconfiguration automaton. Each time the StateManager receives an update on its ports, it has to evaluate the automaton again and change the value of the currently active configuration accordingly. </p></div>			</div>
			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<analytic>
		<title level="a" type="main">Tool Support for the Design of Self-Optimizing Mechatronic Multi-Agent Systems</title>
		<author>
			<persName><forename type="first">S</forename><surname>Burmester</surname></persName>
		</author>
		<author>
			<persName><forename type="first">H</forename><surname>Giese</surname></persName>
		</author>
		<author>
			<persName><forename type="first">E</forename><surname>Münch</surname></persName>
		</author>
		<author>
			<persName><forename type="first">O</forename><surname>Oberschelp</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><surname>Klein</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Scheideler</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">International Journal on Software Tools for Technology Transfer</title>
		<imprint>
			<biblScope unit="volume">10</biblScope>
			<biblScope unit="issue">3</biblScope>
			<biblScope unit="page" from="207" to="222" />
			<date type="published" when="2008">2008</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<analytic>
		<title level="a" type="main">Modular design and verification of component-based mechatronic systems with online-reconfiguration</title>
		<author>
			<persName><forename type="first">H</forename><surname>Giese</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Burmester</surname></persName>
		</author>
		<author>
			<persName><forename type="first">W</forename><surname>Schäfer</surname></persName>
		</author>
		<author>
			<persName><forename type="first">O</forename><surname>Oberschelp</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. SIGSOFT &apos;04/FSE-12</title>
				<meeting>SIGSOFT &apos;04/FSE-12<address><addrLine>New York, NY, USA</addrLine></address></meeting>
		<imprint>
			<publisher>ACM Press</publisher>
			<date type="published" when="2004">2004</date>
			<biblScope unit="page" from="179" to="188" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<analytic>
		<title level="a" type="main">Self configuration of dependent tasks for dynamically reconfigurable automotive embedded systems</title>
		<author>
			<persName><forename type="first">L</forename><surname>Feng</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Chen</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Törngren</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. of 47th IEEE Conference on Decision and Control</title>
				<meeting>of 47th IEEE Conference on Decision and Control</meeting>
		<imprint>
			<date type="published" when="2008">2008</date>
			<biblScope unit="page" from="3737" to="3742" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<analytic>
		<title level="a" type="main">Policy-driven self-management for an automotive middleware</title>
		<author>
			<persName><forename type="first">R</forename><surname>Anthony</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Ekeling</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">HotAC II: Hot Topics in Autonomic Computing on Hot Topics in Autonomic Computing</title>
				<meeting><address><addrLine>Berkeley, CA, USA</addrLine></address></meeting>
		<imprint>
			<publisher>USENIX Association</publisher>
			<date type="published" when="2007">2007</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<monogr>
		<title level="m" type="main">DySCAS Project: Guidelines and Examples on Algorithm and Policy Design in the DySCAS Middleware System</title>
		<ptr target="http://www.dyscas.org/doc/DySCASD2.3partIII.pdf" />
		<imprint>
			<date type="published" when="2009-02">February 2009</date>
		</imprint>
	</monogr>
	<note>Deliverable D2.3 Part III</note>
</biblStruct>

<biblStruct xml:id="b5">
	<monogr>
		<author>
			<persName><forename type="first">K</forename><surname>Pohl</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><surname>Böckl</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><surname>Van Der Linden</surname></persName>
		</author>
		<title level="m">Software Product Line Engineering. Foundations, Principles, and Techniques</title>
				<meeting><address><addrLine>Berlin Heidelberg New York</addrLine></address></meeting>
		<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2005">2005</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b6">
	<analytic>
		<title level="a" type="main">Dynamic Software Product Lines</title>
		<author>
			<persName><forename type="first">S</forename><surname>Hallsteinsen</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Hinchey</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Park</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><surname>Schmid</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Computer</title>
		<imprint>
			<biblScope unit="volume">41</biblScope>
			<biblScope unit="issue">4</biblScope>
			<biblScope unit="page" from="93" to="95" />
			<date type="published" when="2008">2008</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b7">
	<analytic>
		<title level="a" type="main">From product lines to self-managed systems: an architecture-based runtime reconfiguration framework</title>
		<author>
			<persName><forename type="first">M</forename><surname>Kim</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Jeong</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Park</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. of the 2005 workshop on Design and evolution of autonomic application software</title>
				<meeting>of the 2005 workshop on Design and evolution of autonomic application software<address><addrLine>New York, NY, USA</addrLine></address></meeting>
		<imprint>
			<publisher>ACM</publisher>
			<date type="published" when="2005">2005</date>
			<biblScope unit="volume">05</biblScope>
			<biblScope unit="page" from="1" to="7" />
		</imprint>
	</monogr>
	<note>DEAS</note>
</biblStruct>

<biblStruct xml:id="b8">
	<analytic>
		<title level="a" type="main">SHAGE: a framework for self-managed robot software</title>
		<author>
			<persName><forename type="first">D</forename><surname>Kim</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Park</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Y</forename><surname>Jin</surname></persName>
		</author>
		<author>
			<persName><forename type="first">H</forename><surname>Chang</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Y</forename><forename type="middle">S</forename><surname>Park</surname></persName>
		</author>
		<author>
			<persName><forename type="first">I</forename><forename type="middle">Y</forename><surname>Ko</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><surname>Lee</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Lee</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Y</forename><forename type="middle">C</forename><surname>Park</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Lee</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. SEAMS &apos;06</title>
				<meeting>SEAMS &apos;06<address><addrLine>Shanghai, China</addrLine></address></meeting>
		<imprint>
			<publisher>ACM</publisher>
			<date type="published" when="2006">2006</date>
			<biblScope unit="page" from="79" to="85" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b9">
	<analytic>
		<title level="a" type="main">Policy-based self-adaptive architectures: a feasibility study in the robotics domain</title>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">C</forename><surname>Georgas</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><forename type="middle">N</forename><surname>Taylor</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. SEAMS &apos;08</title>
				<meeting>SEAMS &apos;08<address><addrLine>New York, NY, USA</addrLine></address></meeting>
		<imprint>
			<publisher>ACM</publisher>
			<date type="published" when="2008">2008</date>
			<biblScope unit="page" from="105" to="112" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b10">
	<analytic>
		<title level="a" type="main">Polychronous mode automata</title>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">P</forename><surname>Talpin</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Brunette</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Gautier</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Gamatié</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">EMSOFT &apos;06: Proc. of the 6th ACM &amp; IEEE International conference on Embedded software</title>
				<meeting><address><addrLine>New York, NY, USA</addrLine></address></meeting>
		<imprint>
			<publisher>ACM</publisher>
			<date type="published" when="2006">2006</date>
			<biblScope unit="page" from="83" to="92" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b11">
	<analytic>
		<title level="a" type="main">AUTOSAR GbR: List of Basic Software Modules</title>
	</analytic>
	<monogr>
		<title level="j">Version</title>
		<imprint>
			<biblScope unit="volume">1</biblScope>
			<biblScope unit="issue">3</biblScope>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b12">
	<monogr>
		<title level="m">Specification of RTE</title>
				<imprint/>
	</monogr>
	<note>Version 2.1.0</note>
</biblStruct>

<biblStruct xml:id="b13">
	<monogr>
		<title level="m" type="main">AUTOSAR GbR: Specification of the Virtual Functional Bus</title>
		<imprint>
			<date type="published" when="2008">2008</date>
		</imprint>
	</monogr>
	<note>Version 1.0.2</note>
</biblStruct>

<biblStruct xml:id="b14">
	<monogr>
		<title level="m" type="main">Specification of Operating System</title>
		<imprint>
			<date type="published" when="2009">2009</date>
		</imprint>
	</monogr>
	<note>Version 3.1.1</note>
</biblStruct>

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