Academia.eduAcademia.edu

Real-Time and Embedded System Verification Based on Formal Requirements

2006

Real-Time and Embedded System Verification Based on Formal Requirements B. Fontan *,**, L. Apvrille***, P. de Saqui-Sannes*,**, J.-P. Courtiat* *LAAS-CNRS, 7 avenue du Colonel Roche, 31077 Toulouse Cedex 04, France **ENSICA, 1 place Emile Blouin, 31056 Toulouse Cedex 05, France *** GET/ENST, 2229 route des Crêtes, B.P. 193, 06904 Sophia-Antipolis Cedex, France bfontan@ensica.fr ; ludovic.apvrille@telecom-paris.fr ; desaqui@ensica.fr ; courtiat@laas.fr Abstract TURTLE is a real-time UML profile supported by a toolkit which enables application of formal verification techniques to the analysis, design and deployment phases of systems design trajectory. This paper extends the TURTLE methodology with a requirement capture phase. SysML requirement diagrams are introduced. Temporal requirements (TR) are formally expressed using a dedicated language based on Allen’s interval algebra. TRs serve as starting point to automatically synthesize observers and to guide the verification process applied to the TURTLE model of the system. Verification results are automatically collected in traceability matrices. A Hybrid Sport Utility Vehicle serves as example. 1. Introduction The concept of “profile” has extensively been used to customize the Unified Modeling Language (UML [14]) standardized by the Object Management Group. OMEGA [10], SYNCHARTS [2] and TURTLE [3] are examples of real-time UML profiles supported by toolkits that enable application of formal verification techniques. These profiles have mostly been developed outside the OMG standardization process. They nevertheless contribute to add formality to the OMG-based notation and they demonstrate the power of formal verification techniques not implemented by commercial real-time UML tools such as TAU G2 [18] or Rhapsody [18]. This paper specifically addresses TURTLE, a real-time UML profile based on the RT-LOTOS [6] formal language. TURTLE is supported by TTool [20], an opensource tool which includes a TURTLE diagrams editor and a RT-LOTOS code generator interfaced with RTL [16] and CADP [4]. RTL implements reachability analysis of RT-LOTOS specifications derived from TURTLE models. CADP is used to minimize the reachability graphs generated by RTL. The TURTLE methodology and toolkit enable application of formal verification techniques to the analysis, design and deployment phases of systems design trajectory. In this paper, we propose to extend the TURTLE methodology with a requirement capture phase. SysML [17] requirement diagrams are introduced. Any type of informal requirement may be expressed. Nevertheless, specific attention is laid on temporal requirements. The latter are expressed using a dedicated language based on Allen’s intervals. An important contribution is that we establish links between temporal requirements and formal verification. Indeed, observers are automatically synthesized from temporal requirements and synchronized with the appropriated TURTLE diagrams of the system under design. Further, verification results are automatically collected in a traceability matrix. The paper is organized as follows. Section 2 presents the TURTLE profile. Section 3 explains how the TURTLE methodology is extended to capture requirements. Section 4 extends TURTLE with requirement diagrams and defines a language for temporal requirement specification. Section 5 discusses formal verification guided by observers and outlines ‘requirement to observers’ synthesis algorithms. Section 6 discusses application of extended TURTLE to an Hybrid Sport Utility Vehicle (HSUV). Section 7 surveys related work. Section 8 concludes the paper. 2. TURTLE The TURTLE profile has been designed with formal verification in mind. Both analysis and design diagrams may be translated into RT-LOTOS so as to reuse already existing verification tools [16] [4] for the profit of TURTLE. This section briefly presents analysis and design diagrams. Then it explains the verification approach that may be applied to either category of diagrams. 1 2.1. Analysis diagrams The designer builds up one use-case diagram and one Interaction Overview Diagram (IOD) which structures a set of scenarios expressed as Sequence diagrams (SD). A TURTLE IOD makes it possible to express that one scenario (SD) may interrupt another scenario at any time. Further, a scenario may explicitly refer to absolute or relative dates, respectively. 1.1. Design diagrams A TURTLE design [3] starts with one class/object diagram which defines the architecture of the system. Like processes in a process algebra language, TURTLE objects may be composed to formally express parallelism, synchronization (via gates), and preemption between two objects. The behaviors of the objects are separately defined in activity diagrams. TURTLE extends UML activity diagrams with synchronization actions. New temporal operators make it possible to express a deterministic delay, a non deterministic delay that may be associated to a deterministic one to create a time interval, and a time limited offer that prevents a ready-to-synchronize object to be blocked for ever. 2. Extended Methodology This section introduces the four-step methodology depicted by Fig. 1. The requirement capture phase starts with a requirement diagram (RD) definition. Each node in the RD defines one requirement in plain text, which means that the requirement in question is informal (in the sense that it is written in, e.g., English and not using a language whose syntax and semantics are formally defined). Both functional and non functional requirements may be expressed. Temporal requirements (TRs) are identified in the previously created requirement diagram (RD). TRs are expressed using the language defined in section 3. These formally expressed TRs are added to the RD. They are used to synthesize observers intended to guide formal verification and to help achieve traceability. 1.2. Formal verification We start from either analysis or design diagrams and generate the corresponding RT-LOTOS specification. Assuming the system under design is bounded and of reasonable size, the RTL tool may generate the reachability graph of that RT-LOTOS specification. The graph is often too complex to be analyzed by hand. Therefore, its transitions are decorated with those actions identified as important with respect to the set of requirements to be verified. The result is a labeled transition system that may me minimized using, e.g., Milner’s observational equivalence [13]. The minimization process outputs one quotient automaton which gives an abstract view of the system modeled in TURTLE. Reachability analysis and minimization take into account the complete set of objects declared in the TURTLE model. This set of objects may be limited to those objects which are parts of the system under design. Observers may be added to that TURTLE model. Verification applies to a model made up of two types of objects: the system objects and observer objects. So far, observers have been built up manually. In this paper, it is shown that observers linked with temporal requirements may be automatically synthesized from these requirements and added to the TURTLE model of the system in order to build up a verification-oriented model. Fig.1. The TURTLE methodology with requirement expression and verification The two dashed lines in Fig.1 indicate that observers may be generated to be associated with analysis or design, respectively. Automatic synthesis algorithms are described in section 4.2. Also, a traceability matrix is automatically generated from the results collected by the observers. Again, automatically generated observers are used to produce quotient automata demonstrating whether observed properties hold or not. More details on that matrix are provided in section.4.4 2 3. Requirement TURTLE capture in extended Overlaps A T2 B T1 3.1. Informal presentation of the proposed extension In SysML, a requirement is a test case stereotyped by <<requirement>> and characterized by four attributes: an identifier, a text (an informal description of the requirement), a type (functional, performance, etc.), and a criticality level. In TURTLE, a requirement has the same structure as in SysML. It may remain informal. An interesting point is that the “text” attribute may also unambiguously express a temporal requirement using the language proposed in section 4.2. Further a “RequirementViolationEvent” attribute is created to define the label to be used in the quotient automaton output by the reachability graph minimization so as to indicate that the temporal requirement is not met. During A T1 A B T1 End A B T1 Equal A Temporal relations define the relative positions between events. The description of theses relations is based on two classes of temporal models: • T2 Start 3.2. Temporal relations • B Point based models contain elementary units representing single events. They are described by four relations: o A LESS_T B T: If A occurs at Ta then B must occur within [ Ta,Ta+T ]. o A GREAT_TB T: If A occurs at Ta then B must occur in [ Ta+T ; +∞ [. o A BETWEEN B [T1,T2]: If A occurs at Ta then B must occur in [ Ta+T1 ; Ta+T2 ]. o A OUTSIDE B [T1,T2]: If A occurs at Ta then B must occur in ] -∞ ; Ta+T1] U [ Ta+T2 ; +∞ [. Interval based models defined by Allen’s interval algebra. According to [1], the relative positions of two processes characterized by their respective departure and completion dates may be characterized by thirteen patterns that reduce to seven patterns (Tab. 1) when symmetrical situations are taken into account. Relation Example Before A B T Meets A B Tab. 1. Allen’s relations [1] 3.3. Temporal requirement expression language The language for temporal requirements with relative dates is defined by the following BNF: Relative-point-temporal-requirement = event “LESS_T” event integer | event “GREAT_T” event integer | event “BETWEEN” event “[” integer “,” integer “]” | event “OUTSIDE” event “[” integer “,” integer “]” where “event” denotes an interaction between two TURTLE objects. For simplicity we express dates as integers (as logical unit). The language is extended to cope with relative intervals. Relative-interval-temporal-requirement = “(” b-event “,” e-event “)” “BEFORE” “(” b-event “,” e-event “)” | “(” b-event “,” e-event “)” “MEETS” “(” b-event “,” e-event “)” | “(” b-event “,” e-event “)” “OVERLAPS” “(” b-event “,” e-event “)” | “(” b-event “,” e-event “)” “DURING” “(” b-event “,” e-event “)” | “(” b-event “,” e-event “)” “STARTS” “(” b-event “,” e-event “)” | “(” b-event “,” e-event “)” “FINISHES” “(” b-event “,” e-event “)” | “(” b-event “,” e-event “)”“EQUALS” “(” b-event “,” e-event “)” The above BNF assumes there exists two “processes” which begin and end by performing b-event and e-event, respectively. Three among the above operators may be extended to deal with fixed duration. The BNF is extended as follows: B 3 Relative-interval-temporal-requirement = … | “(” b-event “,” e-event “)” “BEFORE-T” “(” b-event “,” e-event “)” integer |“(” b-event “,” e-event “OVERLAPS-T” “(” b-event “,” e-event “) “[”integer “,” integer“]” | “(” b-event e-event “DURING-T” “(” b-event “,” e-event “)” “[”integer “,” integer“]” The above extension may be used, e.g., to say that one process A may end before one process B starts, and that three time units must elapse between A’s completion and B’s departure. 4. Formal Verification guided by Observers In TURTLE, formal verification relies on reachability analysis and labeled transition system minimization. Besides the reachability graph minimization, the verification process is further guided by observers. We add the TURTLE model one (or several) <<tobserver>> object(s) that we synchronize with appropriate object(s), i.e. those TURTLE objects which are expected to implement the requirement to be verified. 4.1. Observer Taxonomy To the question “Is there a unique type of observer working for all the operators accepted by TURTLE requirements diagrams?” the answer is “no Tab. 2 identifies various types of observers. Features Type Description Passive Remains passive if the requirement is not satisfied Active Cuts all objects behavior if the requirement is violated derive observers. Currently, this generation process is proposed for TURTLE analysis and design diagrams (and not deployments ones). A user must first describe which requirements he/she desires to observe. Observers are SysML test cases, stereotyped as <<tobserver>> (TURTLE observers) that may be added to TURTLE Requirements Diagrams (RDs). An observer has a name and makes reference to one TURTLE analysis or design. The “verify” relationship defines how a test case verifies a requirement. In SysML, a test case is intended to be used as a general mechanism to represent verification methods [17]. Then, for observers linked to a formal requirement using a <<verify>> relation, an automatic generation process modifies the analysis or design TURTLE diagrams in order to integrate the observer. For example, the RD depicted in Fig.2 contains two observers. ObserverXRq0 is intended to verify requirement X (e.g. “Brake” or “Cruise”) on the TURTLE design named DesignWithObserver. ObserverX01Rq1 is intended to verify requirement X01 on the same design. ObserveXRq012 is aimed to verify requirement X01 on the TURTLE analysis diagrams AnalysisWithObserver. ObserverXRq0 is intended to check the system against an informal requirement. Therefore, that observer must be modeled by hand (not automatically) and inserted by the designer inside the appropriate diagrams. On the contrary, ObserverX01Rq1 and ObserverX01Rq2 check the system against a formal, temporal requirement. Consequently, they may be automatically generated using the synthesis process described afterwards. Behavior Time /Point Based on relative position of events Time /Interval Based on Allen’s interval algebra Local Observer Synchronized with the object which contributes to requirement satisfaction Nature Construction Global Observer Synchronized with several objects Non Intrusive The behavior of observed objects is not modified Intrusive Likely to modify the behavior of observed objects Function Tab. 2. Observer taxonomy 4.2. Observer automatic synthesis To support the methodology presented in section 2 we implement an automatic observer generation process. From formal requirements, it is possible to automatically <<requirement>> X id = “XRq” text=“B must occur before A in less than 5 time units” kind=“performance” criticality =high <<requirement>> X01 <<derive>> id = “X01Rq” text= A LESS_T B 5 kind=“performance” criticality =high RequirementViolationEvent= NOK_X01Rq <<verify>> <<verify>> <<verify>> <<tobserver>> designWithObserver :ObserverX01Rq1 <<tobserver>> designWithObserver :ObserverXRq0 <<tobserver>> analysisWithObserver :ObserverX01Rq2 Fig.2. Example of a TURTLE requirement diagram Automatic generation of observers works as follows. For each <<tobserver>> of a RD, it selects the ones observing formal requirements. Then, for each observer, it considers the diagram (analysis or design) on which the corresponding behavior must be added: 4 • • For an analysis diagram, a preemption operator is added to the high-level interaction overview diagram. This operator makes it possible for the observer to interrupt the system whenever it observes the violation of its corresponding property. Also, for each action it observes on a scenario, a synchronous message is added to this scenario. The associated arrows start from the lifeline of the object performing the action to be observed, and ends to the observer lifeline. For a design diagram, the process modifies the class diagram. A new Tclass (TURTLE class) is inserted into the diagram. This Tclass synchronizes with all the Tclasses doing those actions listed in the requirement. Also, observed Tclasses must be modified as follows: first, for each action that must be observed, a duplicate action synchronized with the observer is generated and added to their activity diagram (see the example below for more details). The behavior of the observer’s Tclass depends on the formal description of the requirement (see 4.3.). Whenever the observed property is violated, the observer stops observing actions, and therefore, observed classes are blocked because synchronization on their observed actions is not offered anymore. Other requirements parameters are also taken into account to generate the observers, depending on the taxonomy presented in 4.1: • • • • id: used for generating the observer’s name as shown in the requirement diagram in Fig.2. text: used to synthesize the appropriate observer. We have defined translation patterns for every expression of the BNF defined in 3.3. The operator (e.g. LESS_T) determines the observer’s nature (as shown in Tab. 2). The operator permits to generate the appropriate observer to guide verification of the formal requirement. To each formal requirement operator corresponds one observer’s pattern. These patterns are described in section 4.3. Events in the formal text provide information about observer’s construction (as shown in Tab. 2). If the events specified in the (formal) text attribute concern the same object then the observer is local; otherwise the observer’s construction is global. Kind: used for requirement documentation. Criticality defines the observer’s behavior (as shown in Tab. 2). We distinguish between three levels of criticality: o Low: the observer is passive; it does not stop the system. Medium: the observer is active; it stops all the objects concerned by the requirement. o High: the observer is active; it stops all the objects in the diagram. Note: An active observer is necessarily intrusive because it will stop the object’s behavior if the formal requirement is violated. RequirementViolationEvent: specifies the label (identifier) used by the observer to denote if the requirement is not satisfied. This label will appear in the quotient automaton each time the corresponding requirement is not satisfied. o • Once observers have been automatically generated from formal requirements, another process automatically generates traceability matrices to clearly establish connections between formal requirements and verification results. Thus, a quotient automaton is automatically generated to show which requirements are not satisfied and why they are not. This quotient automaton features all the events related to a given requirement. 4.3. Observer patterns Observer patterns rely on elementary TURTLE operators: for example, timer in analysis and time limited offer in design. These operators are useful for translating temporal descriptions presented in section 3.3. All the patterns are built upon two sub patterns called LESS_T and GREAT_T. These two patterns are described hereafter, assuming that the action to execute when the property is violated is NOK (Not OK). • LESS_T This pattern is used for modeling a maximum duration. On TURTLE analysis diagrams, a maximum duration may be modeled using a timer operator. As shown in Fig.3, the timer is set when the observer receives the Start action. If the timer expires before the observer receives the Capture action, the observer executes the NOK action. Fig.3. Analysis observer pattern generated for the LESS_T requirement. Criticality is assumed to be high. 5 For TURTLE designs, the time limited offer operator is used. As shown in Fig.4, the time limited offer starts just after the Start action was executed. The observer expects Capture to occur before T time units. After T time units, the observer executes the NOK action. Note: depending on the requirement’s criticality, the execution of the NOK action may stop the execution of the system or not (see 4.2). Capture is received before T time units, the observer sends the NOK action. Fig.6. Design observer pattern generated for the GREAT_T requirement. Criticality is assumed to be high. Fig.4. Design observer pattern generated for the LESS_T requirement. Criticality is assumed to be high. • GREAT_T Fig.5 shows that the NOK action is sent if the observer receives one Capture action before the timer expires. Thus, GREAT_T models a minimal duration. All observer patterns are built upon LESS_T and GREAT_T (Tab. 3). Note : A—B means “A is immediately followed by B”. Requirement expression A BETWEEN B [T1,T2] A OUTSIDE B [T1,T2] (Ab,Ae) BEFORE (Bb,Be) (Ab,Ae) MEETS (Bb,Be) (Ab,Ae) OVERLAPS (Bb,Be) (Ab,Ae) DURING (Bb,Be) (Ab,Ae) STARTS (Bb,Be) (Ab,Ae) FINISHES (Bb,Be) (Ab,Ae) EQUAL (Bb;Be) (Ab,Ae) BEFORE_T (Bb,Be) T (Ab,Ae) OVERLAPS_T (Bb,Be) [T1,T2] (Ab,Ae) DURING_T (Bb,Be) [T1,T2] Tab. 3. Fig.5. Analysis observer pattern generated for the GREAT_T requirement. Criticality is assumed to be high. In Fig.6, a time limited offer on action Capture starts once action Start has been performed. Then, if Excerpts of patterns A GREAT_T B T1—A LESS_T B (T2T1) A LESS_T B T1—A GREAT_T B (T2T1) Ae GREAT_T Bb 1 Ae LESS_T Bb 1 Ab GREAT_T 1 Bb—Ae GREAT_T Be 1 Ab GREAT_T 1 Bb—Be GREAT_T Ae 1 Ab LESS_T 1 Bb Ae LESS_T 1 Be Ab LESS_T 1 Bb—Ae LESS_T 1 Be Ae GREAT_T Bb T-1—Ae LESS_T Bb 2 Ab GREAT_T T1-1 Bb—Ab LESS_T Bb 2—Ae GREAT_T Be T2-1—Ae LESS_T Be 2 Ab GREAT_T T1-1 Bb—Ab LESS_T Bb 2—Be GREAT_T Ae T2-1—Be LESS_T Ae 2 Observer patterns derived from requirement expressions 4.4. Requirement Traceability The methodology presented in section 2 proposes to generate a traceability matrix from observer-guided verification results. An example of TURTLE traceability matrix is given in Tab. 4. 6 Req_ID Form_Req Temporal requirement specification defined in 3.3 (e.g. A LESS_T B 5) XReq Tab. 4. Satisfaction Response (YES/NO) QA_XReq Example of TURTLE Traceability matrix The TURTLE Traceability Matrix (TM) contains: • Req_ID: Requirement Identifier defined in the requirement diagram. • Form_Req: Formal Requirement defined in the requirement diagram (described in section 3.3) • Satisfaction part: described by o Response collected using observers. If the labeled action associated with the requirement violation (NOK_Xreq defined in Fig.2) appears in the reachability graph, a “NO” response is displayed in the TM. In the opposite case a “YES” response is displayed in the TM. o One quotient automaton is generated so as to highlight those actions in the reachability graph which deals with the temporal requirement. Also, this quotient automaton possibly contains one or several transition(s) labeled by the action introduced to characterize the violation of that requirement. 5. Application to the Hybrid Sport Utility Vehicle (HSUV) example 5.1. Requirements Capture The “Cruise” requirement concerns the interaction between CombustionEngine and ElecMotor objects. The combustion process (Fig.7) must overlap the electrical one by two time units at the beginning and two time units at the end (Fig.7). Both engines have three functioning modes. Stop_engine Combustion Engine id = “CRq” text=“The hybrid SUV shall have the acceleration of a typical SUV but have dramatically better fuel economy” kind=“performance” criticality = high <<requirement>> Cruise1 <<derive>> id = “C1Rq” text= start_engine stop_engine OVERLAPS_T start_elec_motor stop_elec_motor [2,2] kind=“performance” criticality = high violatedProperty= NOK_C1Rq Fig.8. Requirement diagram for Cruise The “Brake” requirement concerns the duration between the call of Brake (e.g. push the brake pedal) and the Braking action which represents the end of the braking process. Arbitrarily, the maximum time between the Brake and Braking actions is 2 time units (TU). If this process takes more time than 2 TU, the Brake requirement is not satisfied (Fig.9). Brake Braking Not OK 1 2 3 Fig.9. Requirement description for Brake The temporal requirement expressed in Fig.9 is used to create the Brake requirement depicted in Fig.10. <<requirement>> Brake id = “BRq” text=“The hybrid SUV shall have the braking capability of a typical <<derive>> SUV” kind=“performance” criticality =high <<requirement>> Brake1 id = “B1Rq” text= brake LESS_T Braking 2 kind=“performance” criticality = high violatedProperty= NOK_B1Rq Not OK Start_elec_motor ElecMotor <<requirement>> Cruise HSUV The following sentence defines an informal requirement for the Hybrid Sport Utility Vehicle (HSUV). “The hybrid SUV shall have the braking and acceleration of a typical SUV. It is expected to be dramatically better fuel economy”. “HSUV” requirement is split up into “Cruise” and “Brake” requirements. Start_engine It shall be quite difficult, if not impossible, to formally prove that the hybrid SUV has the acceleration of a typical SUV but has dramatically better fuel economy. By contrast, it is possible to formalize the temporal constraints (shown in Fig.7) using Allen’s OVERLAPS operator. As depicted by Fig.8, the relation between the two requirements is depicted by one “derive” arrow. The formal requirement (right part of Fig.8) is the one considered for formal verification. Stop_elec_motor Fig.10. Requirement diagram for Brake Not OK 5.2. Analysis 2 4 6 Fig.7. Requirement description for Cruise Analysis diagrams of the HSUV are performed once requirements have been captured. The IOD depicted in Fig.11 describes the interactions between a Start_Vehicle 7 scenario (not presented here), a Cruise scenario (e.g. push the acceleration pedal, see Fig.12), and a Brake scenario (e.g. push the brake pedal, see Fig.13). Indeed, a driver pushes either the cruise pedal or the brake one (as with standard vehicles). ID Behavior Observer Active B1Rq Observer C1Rq Active Nature Construction Function Time Local Observer (HSUV) Intrusive LESS_T Time Global Observer Intrusive OVERLAPS _T (ElecMotor, CombustionEngine) Tab. 5. Applying the taxonomy to the HSUV’s requirement The generation of observers modifies analysis diagrams as follows. First, the IOD (see Fig.14) is enhanced with a reference to a new IOD named iod_observer. iod_observer preempts the other sequences diagrams to cut those objects whose behavior contribute to implement the two requirements to be verified (high criticality). The new IOD models the two requirements to be verified. Their behaviors correspond to the patterns introduced in section 4.3. Fig.11. Interaction Overview Diagram of the HSUV Fig.14. IOD with automatically generated observers Fig.12. Cruise scenario of the HSUV 5.3. Design Also, in the design phase, the TURTLE class diagram is automatically enhanced with two observers (as shown in Fig.15). This corresponds to the two formal requirements described by.Fig.8 and Fig.10. They are connected to other Tclasses, according to the taxonomy defined in 4.1. Fig.13. Brake scenario of the HSUV Once modeled, the second step is to verify the requirements depicted in Fig.8 and Fig.10 over these diagrams. Tab. 5 characterizes the observer for the formal and temporal requirements depicted by Fig.8 and Fig.10, respectively. The taxonomy was defined in section 4.1. 8 o In the cruise process, the ElecMotor starts on time. One problem occurs at the end of CombustionEngine process, which may end later than expected (see Fig.17). The duration of CombustionEngine must be modified to fix this problem. Start_engine Stop_engine Combustion Engine NOK Start_elec_motor ElecMotor Stop_elec_motor NOK 2 4 6 Fig.17. Cruise process anomaly Today, the observer automatic generation and verification process is still under development. It will be supported very soon by next beta version of TTool. 6. Related Work Fig.15. Class diagram of HSUV including automatically generated observers 5.4. Requirement Traceability A traceability matrix (see Tab. 6) is generated from the verification results obtained for either analysis or design diagrams enhanced with observers. It gathers all information regarding the verification of formal requirements (see section 4.4). Req_ID Req_Text B1Rq brake LESS_TBraking 2 C1Rq start_engine stop_engine OVERLAPS_T start_elec_motor stop_elec_motor [2,2] Satisfaction NO QA_B1Rq NO QA_C1Rq Tab. 6. Traceability matrix for the case study The above matrix indicates that none of the requirements is satisfied: o The Brake process takes more time (maximum 3 time units, see Fig.16) than expected by its requirement (2 time units). HSUV Brake Braking NOK 1 2 Fig.16. Brake process anomaly 3 SysML particularly answers expectations of system engineers for a UML-based notation that would be less software centric than UML 2.0 and that would bring support for the requirement capture phase [11]. For instance, [19] proposes an extended SysML with bond graphs, a notation used to describe energy flows between mechanical blocks inside one system. Unlike [19], this paper does not reuse SysML block diagrams and ignores the functional design style inherent to diagramming with SysML blocks. The novelty in TURTLE requirement diagrams lies in the possibility to formally express requirements and to associate them with verification results. Several requirement expression languages have already been proposed in the literature. Parts of them are specific to a single application domain. For instance, LDE applies to avionic systems in the framework of CARROLL project [5]. Also, EAST-ADL applies to automotive architecture in the framework of EAST-EEA [9] (ITEA project). Among various general purpose languages, [8] proposes to build constraint diagrams based on duration calculus. Objectiver tool [15] is based on the KAOS [7] methodology which provides a language and a method for goal driven requirement elaboration. This tool enables analysts to elicit and specify requirements in a systematic way and to achieve traceability from requirements to goals. A survey of the literature indicates that research work on requirements and formal verification are often closely related to each other. For instance, [12] proposes a 9 graphical modeling language based on requirement patterns. The latter are translated into LTL formula and verified using model-checker SPIN. In [10], temporal requirements are expressed as state machines that define a so-called ‘requirement and context model’. Both the system’s model and the state machines are translated into IF, the Intermediate Form defined in the framework of OMEGA project. IF is supported by formal verification tools [10]. In [10] the authors say they are looking for a requirement expression language from which context state machines and observers might be automatically generated. This objective is met by the extended TURTLE discussed in this paper. Observers may indeed been generated from temporal requirements and verification results are included into traceability analysis. 7. Conclusions and future work TURTLE is a real-time UML profile designed with formal verification in mind. The TURTLE toolkit indeed enables application of formal verification techniques throughout the life cycle which underlies the TURTLE methodology. So far, that methodology covered analysis, design and deployment diagrams. The requirement capture phase has been ignored. This paper proposes to extend TURTLE with SysML requirement diagrams. Like SysML, TURTLE enables informal requirement description. Our profile is further extended in such a way that temporal requirements may be described in a language based on Allen’s intervals algebra. Both informal and formal requirements may be used for verification, and more precisely formal verification guided by observers. For informal requirements, it is the responsibility of the user of TTool to build up observers that are relevant for the requirements in question. The good news is that for those temporal requirements which are expressed using the language based on Allen’s algebra, observers may be automatically synthesized. This applies to observers to be associated with analysis diagrams, and to observers to be synchronized with design diagrams as well. Discussion in this paper has clearly been focused on temporal requirement expressions and formal verification. Automatic synthesis of observer is an important step towards requirement traceability. An important contribution of the paper is that traceability matrices may be automatically generated from formal verification results. The synthesis approach discussed in the paper is being implemented in TTool. The latter’s diagramming capability is extended to support requirement diagrams. Next step is to not limit formal requirements to temporal requirements based on Allen’s algebra. Solutions are to be sought to include LTL formula inside the “text” field of TURTLE requirements. References [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] J.F. Allen, “Maintaining Knowledge About Temporal Intervals,” Communications of the ACM, Vol. 26, No. 11, pp.832-843, Nov. 1983. C. André, “Computing SyncCharts,” ESLAP’03 (Synchronous Languages, Applications and Programming), Porto, Portugal, July 2003 L. Apvrille, J.-P. Courtiat, C. Lohr, P. de Saqui-Sannes, “TURTLE: A Real-Time UML Profile Supported by a Formal Validation Toolkit”, IEEE Transactions on Software Engineering, Vol. 30, No. 7, July 2004, pp.473487. http://www.inrialpes.fr/vasy/7/ http://www.carroll-research.org/ J.P. Courtiat, C.A.S. Santos, C. Lohr., B. Outtaj, “Experience with RT-LOTOS, a Temporal Extension of the LOTOS Formal Description Technique”, Computer Communications, Vol. 23, No.12, pp.1104-1123, 2000. A.Dardenne, A.van Lamsweerde and S. Fickas, “GoalDirected Requirements Acquisition”, in The Science of Computer Programming 20, 1993. C. Dietz. “Graphical formalization of real-time requirements,” In B. Jonsson and J. Parrow, eds, Formal Techniques in Real-Time and Fault-Tolerant Systems (FTRTFT’96), Uppsala, Sweden, LNCS 1135, pp. 366385, Springer-Verlag, 1996. http://www.east-eea.net/ S. Graff, I. Ober, I. Ober, “Validating Timed UML Models by Simulation and Verification,” STTT International Journal On Software Tools for Technology Transfer, 2005. M. Hause, F. Thom, A. Moore, “Inside SysML,” IEE Computing & Control Engineering, pages 10-15, Aug./Sept. 2005. W. Janssen, R. Mateescu, S. Mauw, P. Fennema, P. Stappen, “Model Checking for Managers,” Spin’99, pp.92-107, 1999. R. Milner, “Communication and Concurrency,” Prentice Hall, 1989. Object Management Group, “Unified Modeling Language Specification”, Version 1.5, http://www.omg.org/docs/formal/03-03-01.pdf, March 2003. http://www.objectiver.com/ http://www.laas.fr/ RT-LOTOS http://www.SysML.org/docs/specs/SysML-v1-Draft-0603-01.pdf http://www.telelogic.com S. Turki, T. Soriano, “A SysML extension for Bond Graph support,” 5th International Conference on Technology and Automation, Thessaloniki, Greece, October 2005. http://labsoc.comelec.enst.fr/TURTLE/ 10