=Paper=
{{Paper
|id=Vol-1342/resacs7
|storemode=property
|title=A Modular Safety Assurance Method considering Multi-Aspect Contracts during Cyber Physical System Design
|pdfUrl=https://ceur-ws.org/Vol-1342/06-resacs.pdf
|volume=Vol-1342
|dblpUrl=https://dblp.org/rec/conf/refsq/BattramKW15
}}
==A Modular Safety Assurance Method considering Multi-Aspect Contracts during Cyber Physical System Design==
A Modular Safety Assurance Method considering Multi-Aspect Contracts during Cyber Physical System Design⋆ Peter Battram1 , Bernhard Kaiser2 , and Raphael Weber1 1 OFFIS - Institute for Information Technology Oldenburg, Germany peter.battram|raphael.weber@offis.de 2 Berner & Mattner Systemtechnik GmbH Munich, Germany bernhard.kaiser@berner-mattner.com Abstract. Designing safety-critical cyber physical systems (CPS) was and remains a challenging task. CPS engineers are supposed to design solutions that are easy to modify, reusable, satisfy certification authori- ties, meet safety goals, separate between concerns, etc. With these partly contradicting demands it sometimes is even impossible to find a viable CPS design. The idea using contract-based design methods has been around for over two decades and enables automating the (re-)validation of the specification of CPS against the surrounding system or operational environment. In this work we extend the notion of contracts by compo- nent and interface contracts and give ideas on how to integrate them in a modular safety assurance approach. The explicit separation between these two types of contracts also better reflects the separation of con- cerns and reduces the overall modeling effort. We evaluate our approach with an automotive E-Drive case study. Keywords: cyber physical systems, multi-aspect, contract based de- sign, modular safety assurance 1 Introduction When designing safety-critical cyber physical systems (CPS) we are dealing with a very difficult challenge. For a CPS, being safe means that the designer of that system must forsee everything that can lead to an unsafe situation. That being said, the designer not only has to install certain counter-acting mechanisms, increasing safety, he also must ensure that these mechanisms work correctly and that they actually increase the safety of that CPS. More precisely formulated, the designer of a safety-critical system has to guarantee its safety. ⋆ This work was supported by the Federal Ministry for Education and Research (BMBF) under support code 01IS12005M Copyright © 2015 by the authors. Copying permitted for private and academic purposes. This volume is published and copyrighted by its editors. 185 This fact is also mandatory when developing a system that has to be compli- ant to safety standards like the ISO26262 [8] or the DO178c [15]. These standards demand a safety case that evinces the absence of unreasonable risk for humans caused by the system under development. A vital part of these safety cases is a safety concept that depicts the architectural decisions concerning the fault de- tection as well as the fault mitigation. Besides an increasing use of components- off-the-shelf, the effective reaction to changes in the system design requires such safety concepts to be modelled in a modular way. Therefore the modular safety specification and analysis gain more and more importance. Aside from the problem of ensuring the safety of embedded systems, there is another challenge in designing today’s CPS: The ever-growing complexity, caused by the inclusion of yet another new feature, greatly impacting the rest of the system. The last few decades saw tremendous effort to cope with this complexity as well as safety issues. In order to master this complexity, we need to break it down to the essentials. There are many formalisms to model different aspects of complex safety-critical systems. One single formalism in isolation only represents a fraction of the ac- tual system under design. While some of these formalisms in isolation are well understood, the combination of them turns out to be another challenge. The combination of different modelling aspects allows for more realistic representa- tions of the actual embedded system. However, that also makes it harder to analyze the systems to assure certain properties of interest. Safety requirements are fundamental artifacts in the specification of safety- critical CPS, as they document how the hazards and failure of the system are mitigated. They are produced by the hazard and safety analyses and may there- fore suffice in various viewpoints and levels of abstraction. 1.1 Cyber Physical Systems and Contracts Embedded systems are small computing systems deeply embedded into their surroundings such that their existence is barely noticed. Since most embedded systems are small devices reacting on changes in their environment the notion cyber physical systems was coined to emphasize the necessity to take the en- vironment into account during design [9]. CPS are also more networked due to the complex interdependencies of the environmental properties that are to be controlled by the CPS. The intended control behavior and corresponding safety properties of CPS can be specified with various formalisms. In this regard, the use of contract- based modeling has proven to be beneficial [10]. To cope with the complexity of CPS, e. g. component-based design is applied during the development process. But when components or sub-systems are abstracted by their interfaces, such interfaces do not necessarily provide sufficient information for the correct and safe implementation of the other components [2]. Additional information about the interface in form of assumptions about the context conditions the compo- nent and the interface is needed. Contract-based design provides the concepts to handle these aspects. 186 Contracts represent a requirement in a structured way separating it into an assumption, stating the expected properties of the environment, and a guarantee, which describes the desired behavior of the component, provided the assumption is met by the environment. The introduced separation is the foundation for building a sound theory that allows the reasoning about the composition of systems in a formal way. Additionally, it reflects the very idea of CPS to explicitly consider the properties of the surrounding environment. In this work we provide a method to distinguish between two contract types providing separation of concerns on the one hand and module decomposition and reusability on the other hand. This method may be applied in different domains allowing for the consideration of multiple aspects of CPS design and specification. In the context of safety-critical CPS design we describe how to integrate our proposed method into a modular safety assurance process. 1.2 Related Work Using Contracts for better specification of critical systems and partly for improv- ing safety analysis and verifications is currently a flourishing research domain. For example, Safety ADD (see [17]) helps to define and verify the safety con- tracts for software components in a graphical editor. The algorithm traverses all assumptions and guarantees to make sure they match. A tool for checking the refinement between contracts called OCRA (Oth- ello Contracts Refinement Analysis) was presented in [4]. It provides means for checking the contracts specified in a pattern based language called Othello which are later translated to a linear-time temporal logic for discrete and real-time con- straints. The underlying engine allows to reason whether contract refinement is correct. A full range of safety mechanisms, such as, definitions of faults and failures, fault containment, safety mechanisms, handling the degradation modes and safe states at multiple abstraction levels is proposed in [11, 12]. The interface between the safety view and the functional design is highlighted as well. Multiple safety patterns are provided in LTL [13] notation. Temporal logic is also used in [3] for decomposing the system architecture with contracts. The framework automatically generates a set of proves. 1.3 Outline The paper is organized as follows: In Section 2 we give a basic overview over contracts-based design. Section 3 details our approach to differ component and interface contracts and how to apply them in a modular safety assurance process. We evaluate this approach with an automotive E-Drive case-study in Section 4. Finally, we conclude our paper in Section 5 and give an outlook. 187 2 Fundamentals In this section we will give a brief overview over contract-based design (informal and formal) and the pattern based RSL to specify contracts in a semantically sound way. In Subsection 2.3 we give a formal definition of the validation pro- cedure that has to be performed in order to verify the correctness of contracts. Note that this procedure may differ in necessary effort or difficulty for different aspects. 2.1 Contract-based Design Contracts are pairs consisting of an assumption (A) and a guarantee (G). The as- sumption specifies how the context of the component, i. e. the environment from the point of view of the component, should behave. Only if the assumption holds, then the component will behave as guaranteed. This kind of specification allows to replace components by more detailed ones, if they allow a less demanding environment, without re-validating the whole system. Thus, the system decom- position can be verified with respect to contracts without the knowledge of the concrete implementation. In this work, we use the RSL to specify the assumption and guarantee parts of contracts. Assumption: a occurs Assumption: a occurs Assumption: b occurs each 50ms. each 50ms. each 50ms with jitter 8ms. Guarantee: Whenever Guarantee: Whenever Guarantee: Whenever b a occurs, b occurs a occurs, c occurs occurs, c occurs during during [5ms,8ms]. during [10ms,14ms]. [5ms,6ms]. a Subsystem A1 b Subsystem A2 c System A Fig. 1. Example for a contract specification. One advantage of using contracts is that they can help to decrease the com- plexity of verifying the implementation against its specification. For example, consider the system in Fig. 1, to which a contract is assigned. The system con- tract states, that the input port ’a’ is triggered each 50ms, and when it is trig- gered, the system has to respond by sending an event on port ’c’ within a specific time interval. The system is decomposed into two subsystems each with one con- tract, and some internal behavior modeled by, e. g. state machines. Assume that the functionality on subsystem A2 depends on the output of subsystem A1. Fur- ther, assume that the subsystems would not be annotated with contracts. Thus, to validate the contract of the overall system A, the composed behavior of both 188 subsystems has to be computed, which generally leads to large state spaces. Using contracts for A1 and A2, we can omit the composition and validate the sub-contracts locally. Formally, the semantics of a contract is defined as [[C]] := [[A]]Cmpl ∪ [[G]], (1) where (X)Cmpl defines the complement of a set X in some universe U, and [[X]] is defined as the semantic interpretation of X. In our case, [[X]] is given in terms of sets of timed traces. A trace over an alphabet Σ is a sequence of events. Further, a time sequence τ is a monotonically increasing sequence of real values, such that for each t ∈ R there exist some i ≥ 1 such that τi > t. A timed trace is a sequence (ρ,τ ) where ρ is a sequence of events and τ a time sequence. The set of all timed traces over Σ is denoted by T r(Σ). The!specification S of a component is given in terms of a set of contracts, i. e. n [[S]] := i=1 [[Ci ]]. An implementation I of a component satisfies its specification S, if [[I]] ⊆ [[S]] holds. The refinement relation between two contracts C and C ′ is defined as follows: C ′ refines C, if [[A]] ⊆ [[A′ ]] and [[G′ ]] ⊆ [[G]], (2) 2.2 Requirements Specification Language Natural language requirements are often accompanied by ambiguity, incomplete- ness or inconsistency; the reason for this resides in the very nature of a spoken language. These unintended byproducts may not be detected until late phases of the development process and therefore cause the realization to not fulfill the in- tended goals of the specification or cause incompatibilities to other system parts. A solution to this problem would be the use of formal languages to specify the re- quirements. But these are often hard to understand and therefore difficult to use. An alternative that bridges this gap is the pattern-based Requirements Specifi- cation Language (RSL) [14, 1]. This formal language provides a fixed semantic that enables an automated validation or verification but is still well readable compared to natural language. Consisting of static text elements and attributes which are filled in by a re- quirements engineer, patterns have a well-defined semantic so that a consistent interpretation of the system specification between all stakeholders can be en- sured. To cope with the needs of the different aspects of a design, various sets of patterns have been defined which are partly described in the following. 2.3 Validation of Contracts When a component is decomposed into a set of sub-components, we have to check whether the overall contract C = (A, G) (which also will be called global contract) and all subcontracts Ci = (Ai , Gi ) (also called local contracts) for 189 i ∈ {1, ..., n} are consistent. We have to check the following virtual integration condition: i) A ∧ G1 ∧ ... ∧ Gn ⇒ A1 ∧ ... ∧ An (3) ii) A ∧ G1 ∧ ... ∧ Gn ⇒ G. An in-depth discussion about virtual integration can be found in [5]. In [5] contracts were extended by so called weak assumptions. Weak assumptions are used to describe a set of possible environments in which the component guarantees different behaviors. This separation is only methodological, and does not affect the semantics of the definition of the original contracts: Let C = (As , Aw1 , ..., Awn , G1 , ..., Gn ) be a contract consisting of a strong assump- tion As , a set of weak assumptions Awi , and a set of corresponding guaran- tees Gi for i ∈ N. Semantically, we map C to a standard contract of the form C ′ = (As , G), where G = (G′1 ∧ ... ∧ G′n ) G′i = (Awi ⇒ Gi ). For timing and a special subset of safety properties the validation has already been done [6, 7]. For other aspects this may, however, be more difficult which is one reason to also consider a methodological approach. We propose the methodological separation between component and interface contracts described in the following section. 3 Multi-Aspect Modular Safety Assurance This section gives informal definitions of component and interface contracts. Furthermore, we describe how to transform them into each other and how to integrate them into a modular safety assurance process. The term multi-aspect thereby refers to the possibility to specify required properties concerning multiple views on the CPS (e. g. signal quality, timing, or reliability). 3.1 Component Contracts In contract-based design, contracts are used to systematically derive and docu- ment requirements and to conduct contract validation on the systems architec- ture. Such validation can serve as evidence for the correct allocation of functions which in turn constitute the overall function of a system, i. e. the allocation of the functions to a given CPS architecture and environment is correct and provably valid. Component contracts are contracts between any system of consideration and its operational context. Therefore, they are a key artifact in order to make re- quirements allocated to a component modular and reusable, and to make for- merly tacit assumptions explicit. In the context of safety, contract-based specifi- cations aim at reasoning about the fault containment properties of components in a modular, reusable way [12]. Fig. 2 depicts an excerpt of the architecture of an E-Drive system (more details in Section 4) and two exemplary contracts linked to the Microcontroller component. The functional contract e. g. states that under the assumption that 190 the components power supply is sufficient and the temperature of the compo- nents environment is suitable, the component will start the calculation of the pWM signal within 5 milliseconds after the acceleration pedal has been pressed. A safety contract, focusing on failure propagation, states that the outputs of the Microcontroller component (shutOffSignal and pWM) will not fail, if the com- ponents input (phaseCurrentValue) or the component itself do not fail. These contracts are represented in a formal way using the predefined RSL (see Sec- tion 2.2). Functional Contract Safety Contract Assumption: Assumption: Always (Power = 12 V AND None of {{phaseCurrentValue_fail}, Temp_Env < 90°). {MicroController_internal_fail}} Guarantee: occurs. Whenever accelPedalPressed Guarantee: occurs, microControllerPWMCalc None of {{shutOffSignal_fail, occurs within 5 ms. PWM_fail}} occurs. shutOff Emergency Signal Shut Off phaseCurrent Micro- Phase Current Value controller Sensors pWM Driver E-Drive Fig. 2. Functional and safety examples of component contracts. 3.2 Interface Contracts The relationship between assumptions of specific component to guarantees of its neighbors (and vice versa) can be defined by an interface contract. The differ- ence to component contracts is mainly that assumptions refer to signal qualities provided at input ports of a component and promises refer to signal qualities provided at the output ports of the neighbor components. Interface contracts and component contracts can be transformed into each other canonically. An interface contract is a combination or a pair consisting of an assumption and a guarantee attached to the interfaces. Each contract is negotiated between two respective neighbor components. Assumptions and guarantees may refer to signal characteristics at a given port, as seen by an omniscient external observer, e. g. the accuracy of a signal with respect to the real physical quantity, the in- tegrity of a signal, the delay of a port signal with respect to an event in the outside world. It is obvious that some reusable component, taken out of its envi- ronment, shall not refer to such context knowledge that is not directly related to 191 quantities observable at its direct interfaces - therefore the modularization to its full extent is only achieved by later transforming interface contracts into com- ponent contracts. Yet, interface contracts help verifying the architecture when decomposing the system, because it can easily be checked along the signal flow links whether or not the assumptions at the input of some component are fulfilled by the guarantees at the linked output of its predecessor component. Unfulfilled contracts, i. e. assumptions that are not satisfied by corresponding guarantees, can be detected and highlighted automatically, which has been demonstrated by a prototype tool in [16]. Fig. 3 illustrates the concept of the interface contract. Super Component Ci-1 Ci Ci+1 Guarantee: Assumption: output.imprecision<10mA input.imprecision<30Nm Assumption: Guarantee: Contract input.imprecision<10mA output.imprecision<20Nm Contract Fig. 3. Signal quality examples of interface contracts. 3.3 Using Component and Interface Contracts In order to use both types of contracts during the design of CPS, we propose the following steps: 1. Let S be some CPS to be developed with its external interfaces, some re- quirements (e. g. some signal to be provided with a required accuracy and safety integrity, or an event to be triggered with a specified maximum delay counted upon some internal condition, e. g. some failure condition) and some assumptions about its environment. The job at hand is to decompose the re- quirements and to allocate them onto the designated (sub-)components of the system, thereby verifying that the refinement is correct. 2. The requirements engineer specifies the informal (textual) requirements for- mally, or at least in a semi-formal notation, which allows to specify the target properties unambiguously. A parametrized template language (like the RSL) may be a semi-formal way to do so, temporal logics like LTL [13] may be formal notations that are suitable. Thereby, the requirements to the system are stated as guarantees that the system must fulfill, while it can rely on assumptions, which are the formalized assumptions about the technical us- age environment. These assumptions and guarantees constitute a component contract with the system to be developed being the subject component. 192 3. The architect decomposes the system into components, specifying their pur- poses and their interfaces at which (intermediate) signals are provided. Each signal gets some meaning assigned and all signals are listed in a signal dictio- nary. The architect states his ideas about how to decompose the requirements into sub-requirement and how to assign the budgets on quality properties (such as timing, accuracy, safety integrity) among the components. He does so by tentatively specifying assertions that are meant to hold at different “probing points” (signals) in the architecture. 4. The assertions can be interpreted as interface contracts as follows: The out- put of the component upstream in the signal flow must guarantee the prop- erties at the given point, whereas the input of the component downstream in the signal flow may rely on the property as being granted, i. e. this is an assumption. Interface contracts are made between neighbor components. Where an input comes directly from an input port of the surrounding sys- tem or an output direct feeds an output port of the surrounding system, the stated assertions are propagated one level up in the system hierarchy (or matched with the systems assumptions and guarantees, when we are on the top level of the hierarchy). 5. The interface contracts are not yet suitable for specifying the sub-compo- nents as standalone components with the potential of being designed from some external supplier who does not know about the rest of the system. This is due to the fact that the assertions were stated from the architects point of view (who is in the position of an omniscient observer, which is obviously not true for the component supplier). For instance, the manufacturer of a car airbag controller cannot guarantee that the airbag inflates at max 100 microseconds after the crash occurs, simply because he has no knowledge about the crash occurrence. All he knows is the signal at the input port of his own component, provided for example by some sensor subsystem, and therefore all requirements must refer to this behavior at the ports. The solution to this challenge is to transfer the interface contracts into component contracts, which is a canonical step (i. e. can be fully automated). 6. The resulting component contracts only consist of propositions that refer to the observable behavior at the outer interface of the component of interest. Therefore, the guarantees that the component will have to fulfill can be transferred into requirements to the component (if the supplier is unfamiliar with the specific formal notation, a pattern generator could be used to create boilerplate language in English or any other natural language out of it). The other way around, the assumptions granted to the component can also be exported to the supplier and give him some certainty about properties of the usage environment he can rely on when designing the component. 3.4 Integration into a Modular Safety Assurance Method For the usage of component and interface contracts in an integrated safety pro- cess, we propose a three-step approach: 193 – During conventional system design, functional requirements are analyzed and an initial system architecture is derived from these requirements. The architectural view allows for specifying system contracts, which cover in this step the decomposition and verification of the nominal behavior of the system. The system architecture is hence enriched by functional contracts. – The next step in the system engineering process is the safety analysis. The purpose of this analysis is to find failures, i. e. component behavior observable at the component interfaces that violates the specification of the nominal behavior and that might lead, if not handled appropriately, to some hazard or accident. The contracts defined in the previous step formalize the nominal behavior of the system, which aids in finding deviations. This means, that the failure mode definitions needed to aggregate different types of safety analysis, can be interpreted as contract violations: If, for instance, an output interface of some sensor component provides the value for a measured temperature and an interface contract promises for this output an accuracy of ±2◦ C, then every value actually provided at the output which deviates from the true value by more than 2◦ C is obviously considered as failure of the sensor component (to be precise, corresponding to failure modes “too high” or “too low” respectively, when applying the failure mode keywords known from the HAZOP analysis technique). The existing functional contracts together with the architecture design and the results of safety analysis serve as a basis to define safety contracts and thereby derive the functional safety requirements. – The final step in the safety process is to create the technical safety concept. The systems architectural view is now updated to include additional safety components and mechanisms in addition to the system design, which may become necessary to detect and mitigate the identified component failures, or to achieve the required safety integrity level. To these new components, but also to the existing ones, additional contracts can be assigned, this time relating to safety properties. Examples for those properties can be promises for safety-relevant properties that hold with a defined safety integrity level or a minimum guaranteed probability, or the guarantee that despite certain failures at a component input, there will be no failures at its output (e. g. Assumption: Input can be any well-formed bus message; Guarantee: Output is an integer software variable either corresponding to the value transmitted by the bus message or the accompanying Boolean valid flag being set to FALSE.) Transforming such kind of safety-related interface contracts into component contracts leads to the formulation of the related technical safety requirements. As a result, the system architecture showing the nominal be- havior design is enriched towards the final system safety architecture. 4 E-Drive Case Study We evaluated our approach by applying the component and interface contract modeling to an automotive E-Drive case study that has been introduced in [16]. An E-Drive is a system responsible for actuating a vehicle. It consists of an 194 electric machine, a controller and power electronics. An excerpt of the E-Drive system architecture is depicted in Fig. 4. This case study qualifies for the eval- uation of our approach, because of its safety-critical properties and its modular character, meaning that an E-Drive could for example replace a conventional combustion engine in the future. Besides the architecture of the E-Drive, Fig. 4 also shows interface contracts (located on the left and right hand side above the architecture) as well as a component contract for the Microcontroller component (located in the center above the architecture). Assumption: Guarantee: Microcontroller. Microcontroller. phaseCurrentValue. Assumption: shutOffSignal. imprecision 1mA Temp_Env 90° occurenceTime 100ms Contract Guarantee: Contract Microcontroller.phaseCurrentValue. Guarantee: Assumption: PhaseCurrentSensors. imprecision 1mA => EmergencyShutOff. phaseCurrentValue. Microcontroller.shutOffSignal. shutOffSignal. imprecision 1mA occurenceTime 100ms. occurenceTime 200ms Microcontroller Phase phaseCurrent CurrentPlausibility shutOff Emergency CurrentSensors Value Check Signal ShutOff pWM TorqueController Driver E-Drive Fig. 4. Interface and component contracts linked to the corresponding architecture entity of an E-Drive system. For this case study the interface contracts have been modeled along the signal flow from the Phase Current Sensors via the Microcontroller to the Emergency Shut-Off component. They specifically state which condition the signal property does fulfill or has to fulfill like for example the guarantee of the Phase Current Sensors output. This guarantee states that the imprecision of the phase current value is not allowed to exceed one milliampere. Following the signal flow, the next component to process the signal is the Microcontroller. This component itself has requirements regarding the input signals, which are stated as an assumption. In this case the component also demands the phase current value’s imprecisions to not exceed one milliampere. This pair of guarantee and assumption constitutes an interface contract between the two components regarding the phase current value’s imprecisions. The same procedure was performed for the shut-off signal sent from the Mi- crocontroller to the Emergency Shut-Off component (right hand side of Fig. 4). 195 For this case, analyses like a compatibility check can be performed. Applying this kind of analysis to our case study showed that the compatibility between the components along this signal flow was given. In the next process step the interface contracts were used to derive the com- ponent contracts for the components of the E-Drive system. The result, the com- ponent contract for the Microcontroller is depicted in the top center of Fig. 4. As can be seen the guarantee was derived by the previously defined assumption and guarantee of the Microcontroller, stating that if the left hand side of the implication is fulfilled, the right hand side can be guaranteed. The assumption in the example was added to state that the Microcontroller can just guarantee its correct functionality for an environmental temperature not exceeding 90◦ Celsius. The evaluation of the approach showed that besides the fact that forcing the engineer to capture requirements in a more structured and ultimately a more formal way decreases the ambiguity of the specification. Interface as well as com- ponent contracts enable analyses to validate the specification against the system context or the operational environment. Additionally, these approaches support a modular safety assessment by encapsulating the assumptions and guarantees relevant for the component that shall be changed or replaced. 5 Conclusion Coping with specifications for CPS and validating them is a regular task that needs to be performed during system design. This paper described a new method to apply contract-based design in the context of a modular safety assurance pro- cess. We therefore distinguished between component and interface contracts to better support the system architect in validating the correctness of his design (including the specification and the structural composition). We evaluated our approach using an automotive E-Drive case-study which also showed an improve- ment in the usability and applicability of contracts in general. Future work will be conducted in the field of multi-aspect validation and verification of insepa- rable properties of CPS. There are still a lot of design concerns that have not yet been formalized or addressed at all. Optimizing one or more properties of interest (e. g. reduce costs, maximize safety, . . . ) is another topic which we will look into. References 1. Baumgart, A., Böde, E., Büker, M., Damm, W., Ehmen, G., Gezgin, T., Henkler, S., Hungar, H., Josko, B., Oertel, M., Peikenkamp, T., Reinkemeier, P., Stierand, I., Weber, R.: Architecture modeling. Tech. rep., OFFIS (March 2011), http://ses.informatik.uni-oldenburg.de/download/bib/paper/OFFIS- TR2011_ArchitectureModeling.pdf 2. Benveniste, A., Caillaud, B., Nickovic, D., Passerone, R., Raclet, J.B., Reinkemeier, P., Sangiovanni-Vincentelli, A., Damm, W., Henzinger, T., Larsen, K.: Contracts for systems design. In: Inria Research (2012) 196 3. Bozzano, M., Cimatti, A., Katoen, J.P., Nguyen, V.Y., Noll, T., Roveri, M.: Safety, dependability and performance analysis of extended aadl models. Comput. J. 54(5), 754–775 (May 2011), http://dx.doi.org/10.1093/comjnl/bxq024 4. Cimatti, A., Dorigatti, M., Tonetta, S.: Ocra: A tool for checking the refinement of temporal contracts. In: ASE IEEE. pp. 702–705 (2013) 5. Damm, W., Hungar, H., Josko, B., Peikenkamp, T., Stierand, I.: Using contract- based component specifications for virtual integration testing and architecture de- sign. In: DATE Exhibition. pp. 1–6 (2011) 6. Gezgin, T., Weber, R., Girod, M.: A refinement checking technique for contract– based architecture designs. In: Fourth International Workshop on Model Based Architecting and Construction of Embedded Systems (10 2011) 7. Gezgin, T., Weber, R., Oertel, M.: Multi-aspect virtual integration approach for real-time and safety properties. In: International Workshop on Design and Imple- mentation of Formal Tools and Systems (DIFTS14). IEEE (Oct 2014) 8. ISO: Road Vehicles - Functional Safety. International Standard Organization (November 2011), iSO 26262 9. Lee, E.A., Seshia, S.A.: Introduction to Embedded Systems - A Cyber-Physical Systems Approach. Lee and Seshia, 1 edn. (2010), http://chess.eecs.berkeley. edu/pubs/794.html 10. Meyer, B.: Applying ”design by contract”. Computer 25(10), 40–51 (1992) 11. Oertel, M., Kacimi, O., Böde, E.: Proving compliance of implementation models to safety specifications. In: Bondavalli, A., Ceccarelli, A., Ortmeier, F. (eds.) Com- puter Safety, Reliability, and Security, Lecture Notes in Computer Science, vol. 8696, pp. 97–107. Springer International Publishing (2014), http://dx.doi.org/ 10.1007/978-3-319-10557-4_13 12. Oertel, M., Mahdi, A., Böde, E., Rettberg, A.: Contract-based safety: Specification and application guidelines. In: Proceedings of the 1st International Workshop on Emerging Ideas and Trends in Engineering of Cyber-Physical Systems (EITEC 2014) (2014) 13. Pnueli, A.: The temporal logic of programs. In: Foundations of Computer Science, 1977., 18th Annual Symposium on. pp. 46–57 (Oct 1977) 14. Reinkemeier, P., Stierand, I., Rehkop, P., Henkler, S.: A pattern-based require- ment specification language: Mapping automotive specific timing requirements. In: Reussner, R., Pretschner, A., Jähnichen, S. (eds.) Software Engineering 2011 Workshopband. pp. 99–108. Gesellschaft für Informatik e.V. (GI) (2011) 15. RTCA: DO-178C: Software Considerations in Airborne Systems and Equipment Certification. Radio Technical Commission for Aeronautics (RTCA) (2011) 16. Sonski, S.: Contract-based modeling of component properties for safety-critical systems. Master’s thesis, Hochschule Darmstadt University of Applied Sciences (2013) 17. Warg, F., Vedder, B., Skoglund, M., Soderberg, A.: Safetyadd: A tool for safety- contract based design. In: International Symposium on Software Reliability Engi- neering (ISSRE) 2014 Workshops. to appear (2014) 197