Academia.eduAcademia.edu

The architectural specification of an avionic subsystem

1995, Proceedings of 1995 IEEE Workshop on Industrial-Strength Formal Specification Techniques

The work of the British Aerospace Dependable Computing Systems Centre includes the development of formal techniques for use in defining and tracing requirements for software systems at the system architecture level. A basic repertoire of techniques proposed so far includes the graphical representation of timing requirements allied to model-oriented specifications of functionality. This paper gives an overview of these techniques and reports on a small study in their application conducted by British Aerospace Defence. The study uses a realistic example of an avionics system: the pilot data entry system for a waypoint database. The example is described with some technical detail. Formally analysing a timing requirement for the rate of data entry yields local timing requirements for the cockpit equipments. Conclusions assess the value of these techniques, as perceived by BAe systems developers, and propose further work in providing tool support.

The Architectural Specification of an Avionic Subsystem L. M. Barroca J. S. Fitzgerald L. Spencer Dept. Computing The Open University Milton Keynes MK7 6AA U.K. Centre for Software Reliability University of Newcastle upon Tyne U.K. British Aerospace Defence Ltd Military Aircraft Division, Warton Aerodrome, Warton Preston PR4 1AX U.K. Abstract The work of the British Aerospace Dependable Computing Systems Centre includes the development of formal techniques for use in defining and tracing requirements for software systems at the system architecture level. A basic repertoire of techniques proposed so far includes the graphical representation of timing requirements allied to model-oriented specifications of functionality. This paper gives an overview of these techniques and reports on a small study in their application conducted by British Aerospace Defence. The study uses a realistic example of an avionics system: the pilot data entry system for a waypoint database. The example is described with some technical detail. Formally analysing a timing requirement for the rate of data entry yields local timing requirements for the cockpit equipments. Conclusions assess the value of these techniques, as perceived by BAe systems developers, and propose further work in providing tool support. 1 Introduction Part of the work of the British Aerospace Dependable Computing Systems Centre (BAe DCSC) is the development of formal techniques for use in the design of realtime avionics systems. The main aim of this work is to encourage rigorous consideration of aspects of the intended behaviour of a system at earlier stages in the development process than is generally the case. It is important that the techniques developed are accessible to avionics engineers, allow for the production of rigorous arguments about the correctness of design decisions and support the tracing of design decisions against the requirements they purport to satisfy. These last two points are particularly important for the production of arguments in the assessment process. In developing formal techniques for use in industry, we have not chosen to begin by proposing a new specification language, but are instead building a repertoire of applicable methods, based on those which already have some history of successful application in BAe and other parts of the aerospace industry. A group of techniques has been proposed, under the name of the Architectural Specification Method (ArchSM), for the formal specification of real-time systems [1] at the logical architecture level [2]. The ArchSM uses a graphical notation and Real Time Logic (RTL [3, 4]) for describing the system’s temporal properties and the model-oriented specification language Z [5] for describing functionality. In this paper, we illustrate the techniques which go to make up the ArchSM, concentrating on specification and proof of timing behaviour. Section 2 provides an overview of these techniques. The main part of the paper describes one example of their experimental use: the construction of arguments about timing requirements for a waypoint data entry system, described in Section 3. Section 4 shows how ArchSM techniques were used in BAe to describe the system behaviour and conduct a proof justifying splitting a system-level timing requirement into allocations of time bounds to operations running on the various equipments participating in the system. The technical detail of the proof is omitted in this paper. In Section 5, we report the experience of the study within BAe and discuss areas of future work, including tool support. 2 The Architectural Specification Method The ArchSM is intended to support modelling and reasoning about three important aspects of a putative system’s behaviour: its timing properties, its functionality and its system structure. This paper principally concentrates on the first aspect. However, in this section we review the techniques employed in all three areas. 2.1 Temporal Behaviour and Formal Verification of Temporal Properties Timed Statecharts State-transition diagrams have been widely used as a design tool in avionics projects for some time. In our work with BAe, we have chosen to represent the timing be- haviour of systems with a graphical notation, based on the language of Timed Statecharts. This has the advantage of being accessible to people with a less mathematical background, while being sufficiently expressive and formal. A further consideration was that some BAe engineers are already familiar with the notation through experience of the Statemate tool [6]. Statecharts [7, 8, 9, 6] are an extension of state machines and state diagrams for the specification of reactive systems. Timed Statecharts [10] take this further to deal with time constraints. E/ev1 S1 S2 tation. Real Time Logic [3],[4] is a formal language for capturing the time constraints of real-time systems. It deals with time quantitatively, rather than just relative temporal order: RTL has no modal operators. Its basic concepts are actions, state predicates and events. The occurrence relation θ captures the notion of time: θ(ev , i, t ) asserts that the ith occurrence of event ev happens at time t . Formulas in RTL use the universal and existential quantifiers and first order logic. In the ArchSM in order to produce rigorous statements and proofs of timing properties, statecharts are interpreted as theories in RTL. Each state S in the statechart has an associated entry event →S and exit event S→ (c.f. the Modechart semantics [4]). We can, for example, record that the state B is entered if and only if the state A is exited: [l,u]/ev2 ∀ t • ∃ i • θ(→B , i, t ) ⇔ ∃ i • θ(A→, i, t ) Figure 1: Example of a simple timed statechart Each box in the diagram represents a system state, each arrow a transition between states. There is a distinguished initial state, indicated by the little arrow without a source state. The transitions are labelled with the trigger before the slash (“/”) and with the names of any events raised by the transition after the slash. External events (caused by agents outside the system of interest) are shown in upper case. In the case of an immediate transition, the trigger is the name of an event, as in the transition from S1 to S2 in Figure 1. The trigger may also be a condition (shown between square brackets). Immediate transitions are taken as soon as the trigger occurs while the condition holds. For a delayed transition, the trigger is a time bound, as in the transition from S2 to S1 . The time bounds [l , u] define the minimum and maximum time for which the transition may be enabled before being triggered, indicating where the engineer considers there might be some time delay on taking a transition due to some data processing. Thus in Figure 1, the transition from S1 to S2 occurs the instant E happens, raising the event ev 1, which may in turn trigger transitions in other state machines. The transition from S2 to S1 occurs between l and u time units of entry to S2 , raising the event ev 2. Reasoning about Timed Statecharts We have already indicated that the production of rigorous arguments is important for the assessment process. In the ArchSM, Real Time Logic (RTL) is used to construct such arguments about timing properties of systems whose timing behaviour is expressed using the Timed Statechart no1 In We have developed a systematic, but as yet not automated, approach to deriving the axioms for a chart. We consider each state in turn, and write down appropriate axioms for the initial condition, entries, exits, progress and stability of each state as discussed below. Initial State Axioms If the state S is an initial state (Figure 2, diagram (i)) then we assert: θ(→S , 1, 0) If S is not the initial state, we assert θ(S→, 1, 0) We need to distinguish the initial state from the others and to establish that the system is not in non-initial states at time 0. This decision affects all the following axioms; entering the initial state for the ith time is followed by the corresponding ith exit, while for any non-initial state entering it for the ith time will be followed by the i + 1th exit of the state. Exit Axioms If state S1 has a single exit transition (Figure 2, diagram (ii)) to state S2 there will be the following set of axioms: • SO1 : leaving the source state S1 entails entering the target state, S2 . Formally, we write1 : ∀ i, t • θ(S1→, i, t ) ⇒ ∃ j • θ(→S2 , j , t ) all RTL formulas in this paper, i, j and k range over occurrence numbers, time Occ domain, (non-zero T (Natural Naturalnumbers). numbers), and t ranges over the RTL discrete • SO2 : an axiom that relates leaving the source state, S1 , with the trigger of the transition. For transitions triggered by events, this axiom says that if S1 is exited there has to be an occurrence of the event (and the condition, if it is the case, be true): (i) Initial State S1 ∀ i, t • θ(S1→, i, t ) ⇒ ∃ j • θ(trigger , j , t ) For delayed transitions where the trigger is [l , u], say, this axiom says that if S1 is exited, this happens at a time within the lower and upper bounds, counted from the entry to S1 : ∀ i, t • θ(S1→, i, t ) ⇒ ∃ t1 • θ(→S1 , i, t1 ) ∧ t1 + l ≤ t ≤ t1 + u Note that that in this case we consider S1 as being initially true; for an initially false state this axiom would be slightly different: ∀ i, t • θ(S1→, i, t ) ∧ i > 1 ⇒ ∃ t1 • θ(→S1 , i − 1, t1 ) ∧ t1 + l ≤ t ≤ t1 + u • SO3 : when leaving the source state, S1 , the effect of the transition has to occur (an event is generated): ∀ i, t • θ(S1→, i, t ) ⇔ θ(effect , i, t ) The right hand side is weakened to ∃ j • θ(effect , j , t ) if the same event can be generated by a number of different transitions in the statechart. We omit the formal versions of the remaining axioms. See the waypoint data entry example in Sections 3, 4, and in the appendix, for examples. For each state S1 with multiple exit transitions (Figure 2, diagram (iii)), the following axioms are derived: • MO1 : leaving S1 implies that one of the exit triggers is enabled and the corresponding target state is entered (this axiom corresponds to SO1 and SO2 combined); • MO2 : leaving S1 implies that one of the effects (shown in the transition labels) is generated and the corresponding target state is entered (this axiom corresponds to SO1 and SO3 combined). (ii) Single Exit/ Single Entry trigger/effect S2 (iii) Multiple Exit trigger2/effect2 S2 S1 S1 ... triggern/effectn Sn (iv) Multiple Entry S2 trigger2/effect2 ... Sn S1 triggern/effectn Figure 2: Some possible statemachines Entry Axioms If state S2 has a single entry transition from state S1 the following axioms will be asserted: • SI1 : entering the target state, S2 coincides with leaving the source state, S1 ; • SI2 : an axiom that relates entering the target state, S2 , with the trigger of the transition; • SI3 : entering the target state, S2 coincides with the effect of the transition. For each state S1 that has multiple entry transitions transitions (Figure 2, diagram (iv)), there will be the following axioms: • MI1 : entering S1 implies that one of the entry labels is enabled; • MI2 : entering S1 implies that one of the effects on the entry labels has been generated. Progress Axioms Progress axioms ensure that, when a state has been entered, an exit, if available, is taken. For a single-exit transition, axiom PSO1 asserts that if the transition is immediate (i.e. the trigger is of form e[c]) the state has to be left when the event e occurs if condition c is true; if the transition is delayed (i.e. the trigger is of form [l , u]) the transition has to be taken after the lower bound has elapsed but before the upper bound, counting time from entry of the state. If there are several exit transitions from a state, some of them delayed and some immediate, axiom PMO1 imposes that when an immediate transition is enabled a transition out of the state is taken (that immediate transition or any other enabled at the same time). If there are delayed transitions out of a state, the progress axiom implies that the state has to be left at or before before the minimum of all the upper bounds (u2 , . . . , un ) of the delayed transitions has elapsed. If several transitions are enabled at the same time there is no guarantee on which one is taken. Stability Axioms Symmetrically to the progress axioms, the stability axioms state that if no transition out of a state is enabled, the state will not be left. A stability axiom (named SSO1 ) is generated for each single-exit immediate transition. The stability axiom for multiple exits (SMO1 ) says that: • if we are in a state at a certain point in time and no immediate transition (e[c]) is enabled at that time, and • that time is before the minimum of the lower bounds, of the delayed transitions, has elapsed, then the state will not be left. Using the general principles above, the set of axioms generated for a timed statechart will certainly contain some redundancy, for example the event causing an exit appears both in the entry and exit axioms. For example, in a delayed transition, the obligation of leaving the state within a certain interval is repeated in both the exit and progress axioms for the source state. 2.2 Functionality We have chosen Z [5] as a formalism for representing the functionality of a system, again because of its familiarity to some groups of BAe engineers. The operations associated with each agent in a system are described as relations on state type, input and output values. In relating the Timed Statechart model of a component of the system, we associate an operation (action) to a state in a state machine model. In this case the operation is invoked when the state is entered, and the invariant of the operation is related to the system being in that state. If there is a time bound on an outward transition out of that state, this time interval usually represents the minimal and maximal time allowed for the execution of the operation. Conditions on labels refer to the values of variables changed by the actions within the states. Another approach is to associate a single operation with a whole state machine. In this case the specification of the functionality will correspond to a moded definition in the sense that the functionality will change according to the state the system is in. This form of moded definition is common in aerospace systems where one equipment may provide different functions during, say, different phases of flight. 2.3 Structure—Partitioning the System A specification at the logical architecture level partitions the system into independent agents that interact in a well-defined way. In later stages of the development process, the communication initially defined in simple terms of signals between the components will be realised by more complex communication protocols. One notation which can be used to represent system structure is a subset of the DORIS Real Time Networks [11]. Its structural aspects can be used to define an initial high level design of the system in terms of the agents/activities of which it is composed and their interactions. At detailed design levels, the DORIS methodology allows communication between agents to be described via a rich repertoire of shared data structures. However, at the level of specification in the study described here, communication between agents is identified only in terms of the events that trigger and are raised by each agent. 3 The Waypoint Data Entry Example In this and the following section, we describe how the ArchSM formalisms introduced in Section 2 were applied to a case study in the analysis of an avionic system. The case study concerns a system for the entry and display of waypoint data by a pilot. Waypoints are geographical locations to be visited by an aircraft on its journey. The aircraft’s on-board computer contains a database of such waypoints—the Destination List—which may be modified by the pilot in flight. Four main equipments are used by the pilot for entering and displaying data. These are shown informally in Figure 3. The Multi-purpose Display (MPD) is a headdown display and pilot interface for the Display Processor (DPMC). The pilot uses the MPD softkeys to choose DPMC Stores Dest List Dest list updated data item Validates new waypoints Updates Dest List Dest list request MPD Displays data list Pilot format data item Selects format selected data item Selects data item to edit Edits data item data HUD Scratchpad DEP data Displays current data item Figure 3: Informal picture of data flows in the waypoint entry system the required display, in this case the Destination List. The pilot then selects the position in this list at which a new waypoint is to be entered or selects an existing waypoint for modification. The selected waypoint is displayed on the Head-Up Display (HUD) scratchpad. The Data Entry Panel (DEP) is used to enter new data and submit this to the DPMC for validation and storage. Avionics systems are required to meet a wide range of requirements. Some of these are concerned with the pilot entering data into the system within a specific time period (typically tens of seconds). In this example, a typical requirement in the top-level requirements document would read as follows: . . . It shall be possible to manually enter/modify navigation data at the rate of one waypoint in not more than 30 seconds . . . The study reported here raised a number of questions about this rather incomplete statement of a requirement: What are the start and end points of the data entry sequence? How many iterations are included in the sequence? How many failed attempts can be made, and should this be limited? Could the data entry sequence be interrupted if, for example, the pilot has to respond to a warning? If so, how does this impact the requirement? early in the development process, it is helpful to be able to design code around known timing limitations. At the higher level of architectural specification, the allocation of timing budgets to processes or equipments has great potential value in influencing the choice of algorithms, process priorities or scheduling policies. In the pilot data entry example, the top-level timing requirement given above influences the implementations of the operations performed by each of the agents involved. For the purposes of the timing analysis, the system boundary was drawn around the four equipments. For each of these, a statechart was drawn up describing the behaviour of the agent when a data entry sequence is carried out by the pilot. Figure 4 shows the charts for the Multi-Purpose Display and the Display Processor. The original requirement is imprecise regarding how many items of data (parts of waypoints) can be entered or modified within the data entry sequence, or how many times the pilot might enter and then correct data, perhaps because the DPMC rejects it as invalid. In order to allow for these possible iterations, the waypoint data entry procedure was broken down into a number of steps: 1 2 3 4 Formal analysis of the example This section gives an overview of the use of formal techniques in the analysis of the 30-second requirement as it affects the waypoint entry system. BAe engineering staff suggested and carried out the study with the support of researchers developing the ArchSM techniques. The system structure used was that of Figure 3. The following sections describe the representation of timing and functionality. Given the timing requirement, we concentrate on the former. The principal object of this case study was to gauge the feasibility and value of the Timed Statechart and RTL notations in the analysis of a realistic avionics subsystem. Would it, in the view of BAe engineers, be worth further developing the methods proposed by defining formal proof theory, designing tools etc.? Additional objectives were to obtain evidence of the kinds of analysis which engineers want to perform on architectural specifications; to determine the forms of support which should be available and to expose limitations of the techniques used. 4.1 Timing Behaviour Correctly predicting timing behaviour is essential to the success of many aerospace applications. Where the implementation technology (e.g. processor clock speeds) is fixed 2 The 4 5 Display Destination List (within m time units) Complete data entry (within n time units) Reject data entered and correct data (within p time units) Accept data entered and update Destination List (within q time units) Exit Destination List format (within r time units) Since each step must be completed before the next can begin, the engineers felt it reasonable to apportion time among the steps. The overall requirement was deemed to be met if m + x ∗ (n + (y ∗ p) + q) + r ≤ 30 where x is the number of valid data modifications that the pilot makes to a waypoint, and y is the number of invalid data entries which must be corrected before proceeding. The values of x and y depend on the number of data items in a waypoint and the likelihood of pilot error. The examples in the rest of this section deal with step 4, i.e. accepting the data entered and updating the destination list. To keep the display consistent with the data changed, the accepted data has to be displayed within q time units. The MPD displays the destination list when the destination list format is selected using the DEST LIST key and the data is accessed by the DPMC2 . It also allows the event, MPD triggering betweenthe l 2 and retrieval u2 time of the units destination after it islist retrieved. by the DPMC while transition on the MPD triggered by DEST LIST raises the retrieve the the MPD is in state DestListPage. The retrieval takes between l 1 and u1 time units and raises the accessed event. The destination list is displayed on MPD FORMAT_SELECT DEST_LIST/ StartMPD DestListPage accessed retrieve Display Dest List [l2,u2] Dest List Displayed WAYPOINT_SELECT Selecting Waypoint ENT Entering new data ENT/validate accepted Data Entered DPMC retrieve StartDPMC [l1,u1]/ accessed Get Dest List validate [l4,u4]/ accepted Validate Data Entry [l3,u3] Validation Complete Update Dest List [data_valid] [data_invalid]/rejected Figure 4: Charts showing timing properties of multi-purpose display and display processor rejected ini : State × Occ × T → Bool pilot to select a waypoint and enter new data for that waypoint. We will be looking at the behaviour of the MPD from the point when new data has been entered. The pilot selects one waypoint and then presses the MPD ENT key to display it; he then enters data using the DEP control panel, after which he presses the ENT key again to have the data validated. We do not show the Data Entry Panel behaviour. The DPMC performs a validation function on the input data and updates the destination list. RTL was used to prove conjectures about the relationship between the delays on transitions in the individual equipments and the overall time budget. The statecharts are interpreted as RTL rules. For example, consider the DPMC. The event StartDPMC → occurs if and only if the system is in that state (→ StartDPMC has occurred and retrieve or validate have not occurred since then) and retrieve or validate occur. We record this as the following rule: ∀ i, t .θ(StartDPMC→, i, t ) ⇔ ini(StartDPMC , i, t ) ∧ ∃ j .θ(retrieve, j , t ) ∨ θ(validate, j , t ) where ini is a function that decides if a state machine is in a given state at a given time, for the ith iteration: ∀ S : State, i : Occ, t : T • ini(S , i, t ) ⇔ θ(S→, 1, 0) ∧ ∃ t1 : T • θ(→S , i, t1 ) ∧ t1 ≤ t ∧ ∀ t2 : T • t2 < t1 ⇒ ¬θ(S→, i + 1, t2 ) ∨ θ(→S , 1, 0) ∧ ∃ t1 : T • θ(→S , i, t1 ) ∧ t1 ≤ t ∧ ∀ t2 : T • t2 < t1 ⇒ ¬θ(S→, i, t2 ) Time bounds are recorded on the exit from ValidateDataEntry. This results in a progress assumption that, if ValidateDataEntry is entered, it will be left between l3 and u3 time units after entry3 : ∀ i, t .θ(→ValidateDataEntry, i, t ) ⇒ ∃ t1 .θ(ValidateDataEntry→, i + 1, t1 ) ∧ t + l3 ≤ t1 ≤ t + u3 Full sets of axioms were recorded for each of the statecharts, using the systematic approach mentioned above. The full set of axioms is shown in the appendix for one of the statecharts. The resulting theory was used to construct rigorous proofs of temporal properties of the whole system. For example, the following formal conjecture states that the maximum delay on Step 4 of the accept and display new data procedure is u3 + u4 + u2 time units. More rigorously, if data is entered at time t , and the data is validated, then there will be a later re-displaying of the modified data list within t + u3 + u4 + u2 time units. When we record this property rigorously, we need to include some more detail. The conjecture is stated as follows: i : Occ; t : T θ(EnteringNewData→, i, t ) ∧ i > 1 ∃ j • ini(StartDPMC , j , t ) ∀ tn • next (t , ValidationComplete→, tn ) ⇒ data valid (tn ) ∃ j , t ′ • θ(DisplayDestList→, j + 1, t ′ ) ∧ t ≤ t ′ ≤ t + u3 + u4 + u2 The hypotheses state that: 1. i and t are an occurrence number and time respectively; 3 Since 2. the state EnteringNewData, in the MPD, is left at time t ; 3. at time t the DPMC is in state StartDPMC ; ValidateDataEntry is a state that is initially false, the occurrence index for leaving the state after the ith entrance is i + 1. 5 follows: that in Figure 4 the state ValidationComplete is an artificial state; it is shown 1 , E , t2 ) states that the next occurrence of E after t1 is t2 ; it is defined asNote anything between l3 and u3 time units, one of the conditions data valid or data inval next : T × Events × T 4 next(t next(t1 , E , t2 ) ⇔ ∃ i : Occ • θ(E , i, t2 ) ∧ ¬(∃ t • t1 < t < t2 ∧ ∃ i : Occ • θ(E , i, t)) 4. the data entered by the pilot is valid: the next4 time ValidationComplete is left the condition data valid is true5 . An informal argument of this conjecture would run as follows: On leaving EnteringNewData, the event validate is raised. Since the DPMC is in state StartDPMC (by Hypothesis 4), ValidateDataEntry is entered and, after a maximum delay of u3 time units, state ValidationComplete is entered. Because the data is valid (Hypothesis 5), state UpdateDestList is entered, followed by StartDPMC again: the maximum delay so far is u3 + u4 . The transition to StartDPMC raises the event accepted , which releases the MPD from DataEntered into DisplayDestList. After a further delay of up to u2 units, the destination list has been redisplayed. The total delay has been up to u3 + u4 + u2 time units. A rigorous proof of the conjecture follows the same lines of argument, but naturally deals with much more semantic detail. In the case study, a straightforward rigorous proof was constructed by hand, using the full list of rules derived from the statecharts (see Appendix). Formally recording the timing behaviour allows the allocated time budget to be distributed among the various actions and equipments in the system. For example, it is now known that q must be at least u3 + u4 + u2 . Most importantly, it provides a means of arguing formally whether or not the initial time budget will be satisfied and supports the tracing of design decisions which contribute to the satisfaction of the overall requirement (e.g. the choice of validation algorithm contributes to the value of u3 and hence to q, and hence to the overall 30-second requirement). 4.2 Specifying Functionality The functionality of the waypoint database was recorded formally using Z. For each equipment, local state data and the functions which operate on them have been identified. Data flow between the different equipments and the pilot is treated via inputs and outputs to the local operations. The data flow given on the structure diagram (Figure 3) helps to identify the main data structures required. For example, the local state associated with the DPMC is the waypoint list: DPMC State Waypoint list : seq Waypoint #Waypoint list = maxwaypoints One of the operations associated with the DPMC is Update Dest List . There are two inputs, the number of the waypoint being modified and the new waypoint. This operation is associated with the UpdateDestList box in Figure 4, where it is allocated between l4 and u4 time units to complete: Update Dest List ∆DPMC State waypoint no? : N1 new waypoint ? : Waypoint 1 ≤ waypoint no? ≤ max size Waypoint list ′ = Waypoint list⊕ {waypoint no? 7→ new waypoint ?} Before the list of waypoints is updated the waypoint has to be validated; the relation valid lats shows the validation of the latitude; similarly for the longitude and height. The latitude is expressed in degrees and minutes and it is valid if it is between 0 and 90 degrees and 0.0 and 59.9 minutes. Latitude degrees : N minutes : R valid lats : P Latitude l ∈ valid lats ⇔ 1 ≤ l .degrees? ≤ 90 ∧ 0.0 ≤ l .minutes ≤ 59.9 The other operations on the database are specified similarly. 5 Conclusions Use of the ArchSM The principal object of this case study was to gauge the feasibility and value of using the Timed Statechart and RTL notations in the analysis of a realistic avionics system. It was felt after the study that the techniques themselves were valuable, and further work in making them easier to use in an industrial-scale development were justified. The BAe engineer involved in the proof activities found that the use of statecharts and RTL was straightforward, once the effort had been made to gain familiarity with the notations and understand how RTL axioms relate to fragments of statecharts. The graphical component was well received when the work was described to other engineers who were familiar with a statechart approach. The analysis was also felt to be valuable in encouraging early consideration of timing issues, which might otherwise be left to implementation or test phases. It identified those interactions in the system which have an effect on the timing requirements and which could potentially prevent the overall timing requirements from being met. The use of Statecharts and RTL is related to existing techniques for performance analysis in which “chains” of functions are identified; performance budgets are then either apportioned to each of the functions so that the overall requirement is met, or the achievable performance is calculated from the performance of the functions and assessed against the required performance. Similarly, it would be possible to allocate timing budgets to the various bounds, or, where time bounds are already fixed (e.g. by display update rates), determine what time bound can be achieved for the overall system. The time bounds associated with pilot data input speed were useful in identifying the system developer’s assumptions about pilot behaviour. Although only a small part of the case study is described here, one criticism of the exercise is its small scale and comparative simplicity, in that the steps identified in the data entry procedure are sequential. It might be argued that the approach used is cumbersome in such cases, where the time delays are obvious by inspection or animation of the statechart. The waypoint entry system is also very dependent on the interactions between pilot and system. Machine Support An additional objective of the study was to determine the forms of support which should be available for architectural specification activities. The RTL rules were derived entirely by hand, but in a systematic way, strongly suggesting that a trusted tool could be devised to generate the axioms. This would embody a semantics for the graphical statechart language in RTL: the production of such a semantics is a current activity. We hope to learn from the RTL semantics of the Modechart language in this respect [4]. In the example presented here, the proof itself is also routine, effectively following a chain of transitions. Again, we can envisage a specialist tool to perform time bound calculations on statecharts of the simple kind used in this example, effectively animating the proof. For more general validation and verification, full proof support is required. Colleagues in the DCSC [12] have encoded RTL in Proofpower HOL [13]. In proofs about applications, it is suggested in [14], that arguments in RTL usually involve inequalities imposing lower/upper time bounds on occurrences of events. Our application of RTL bears this out, as shown in Section 4. PVS [15], with its powerful decision procedures for simple arithmetic, is also under investigation. Other Future Work The study has suggested a number of other areas of future work: description of temporal be- haviour under error conditions and the interaction of timing and functionality specifications, for example. Furthermore, the analysis done here is still some way from being able to ensure that the specification can be implemented within fixed resource limits. To do this it would be necessary to take account of the scheduling model and the communication services. Our aim in the ArchSM work has been to introduce a systematic approach to stating timing and functionality requirements at stages in the development process when the system’s logical architecture is fixed. This case study addressed a very limited problem, but it did indicate that our use of familiar structuring mechanisms and graphical techniques is accessible to avionics developers. The formal use of RTL and Z contributes to assessment by providing a basis for rigorous validation and verification arguments and improving the traceability of timing requirements. Areas for further work on tool support and the formal basis of the techniques used have been identified. Acknowledgments A number of colleagues have done work which supports that reported here, in particular Jim Armstrong and Amer Saeed. JSF gladly acknowledges the support of the UK EPSRC and the University of Manchester through Research Fellowships. References [1] L. Barroca and J. McDermid, “Specification of real-time systems—a view-oriented approach,” in Proceedings of XIII Congresso da Sociedade Brasileira de Computação, XX SEMISH, Seminário Integrado de Software e Hardware, Florianópolis, Brasil, Sociedade Brasileira de Computação, 1993. [2] A. Burns and A. Lister, “A framework for building dependable systems,” Computer Journal, vol. 34, no. 2, pp. 173– 181, 1991. [3] F. Jahanian and A. K. Mok, “Safety analysis of timing properties in real-time systems,” IEEE Transactions on Software Engineering, vol. SE-12, no. 9, pp. 890–903, 1986. [4] F. Jahanian, A. K. Mok, and D. Stuart, “Formal specification of real-time systems,” tr-88-25, Dept. of Computer Sciences, The University of Texas at Austin, Austin, Texas 78712, 1988. [5] M. Spivey, The Z Notation: A Reference Manual. Prentice Hall International, 1992. [6] D. Harel, H. Lachover, A. Naamad, and A. Pnueli, “Statemate: A working environment for the development of complex reactive systems,” IEEE Transactions on Software Engineering, vol. 16, no. 4, pp. 403–414, 1990. [7] D. Harel, “Statecharts: A visual formalism for complex systems,” Science of Computer Programming, vol. 8, pp. 231– 274, 1987. [8] D. Harel, A. Pnueli, J. Schmidt, and R. Sherman, “On the formal semantics of statecharts,” in 2nd IEEE Symposium on Logic in Computer Science, (New York), IEEE, 1987. [12] J. Armstrong and L. Barroca, “Specification and verification of reactive system behaviour: The railroad crossing example,” DCSC/TN/93/20, DCSC, 1993. [9] D. Harel, “On visual formalisms,” Communications of the ACM, vol. 16, no. 4, pp. 514–530, 1988. [13] FST Group, ICL Computers Ltd., Proofpower User Documentation, 1992. DS/FMU/IED/USR006, issue 1.9. [10] T. Henzinger, Z. Manna, and A. Pnueli, “Timed transition systems,” in Proceedings of the REX Workshop–Real-Time: Theory and Practice, 1991. [11] H. Simpson, “Methodological and notational conventions in DORIS real time networks,” tech. rep., Dynamics Division, British Aerospace, 1993. [14] F. Jahanian and A. K. Mok, “A graph-theoretic approach for timing analysis and its implementation,” IEEE Transactions on Computers, vol. C-36, no. 8, pp. 961–975, 1987. [15] N. Shankar, S. Owre, and J. M. Rushby, “The PVS Proof Checker: A Reference Manual,” tech. rep., Computer Science Laboratory, SRI International, Menlo Park, CA 94025, USA, 1993. Appendix: Rules for MPD statechart A set of rules has been defined for the translation of the subset of Timed Statecharts used in this paper, into RTL axioms. This set of rules is the basis for the automatic derivation of the axioms. The derived RTL axioms fall into six categories: initial state axioms (Ii ), exit axioms (SOi for single exit, and MOi for multiple exits), entry axioms (SIi for single entry, and MIi for multiple entries), progress axioms (PSOi for single exit, and PMOi for multiple exits), and stability axioms (SSOi for single exit, and SMOi for multiple exits). The rules for the DPMC are omitted. MPD StartMPD (I1 ) θ(→StartMPD , 1, 0) (SO1 ) ∀ i, t • θ(StartMPD→, i, t ) ⇒ ∃ j • θ(→DestListPage, j , t ) (SO2 ) ∀ i, t • θ(StartMPD→, i, t ) ⇒ ∃ j • θ(DEST LIST , j , t ) (SO3 ) ∀ i, t • θ(StartMPD→, i, t ) ⇔ θ(retrieve, i, t ) (SI1 ) ∀ i, t • θ(→StartMPD , i, t ) ∧ i > 1 ⇒ ∃ j • θ(DestListDisplayed→, j , t ) (SI2 ) ∀ i, t • θ(→StartMPD , i, t ) ∧ i > 1 ⇒ ∃ j • θ(FORMAT SELECT , j , t ) (PSO1 ) ∀ i, t • ini(StartMPD , i, t ) ∧ ∃ j • θ(DEST LIST , j , t ) ⇒ θ(StartMPD→, i, t ) (SSO1 ) ∀ t , ∄j • θ(DEST LIST , j , t ) ⇒ ∄i • θ(StartMPD→, i, t ) DestListPage (I1 ) θ(DestListPage→, 1, 0) (SO1 ) ∀ i, t • θ(DestListPage→, i, t ) ∧ i > 1 ⇒ ∃ j • θ(→DisplayDestList, j , t ) (SO2 ) ∀ i, t • θ(DestListPage→, i, t ) ∧ i > 1 ⇒ ∃ j • θ(accessed , j , t ) (SI1 ) ∀ i, t • θ(→DestListPage, i, t ) ⇒ ∃ j • θ(StartMPD→, j , t ) (SI2 ) ∀ i, t • θ(→DestListPage, i, t ) ⇒ ∃ j • θ(DEST LIST , j , t ) (SI3 ) ∀ i, t • θ(→DestListPage, i, t ) ⇒ ∃ j • θ(retrieve, j , t ) (PSO1 ) ∀ i, t • ini(DestListPage, i, t ) ∧ ∃ j • θ(accessed , j , t ) ⇒ θ(DestListPage→, i + 1, t ) (SSO1 ) ∀ t , ∄j • θ(accessed , j , t ) ⇒ ∄i • i > 1 ∧ θ(DestListPage→, i, t ) DisplayDestList (I1 ) θ(DisplayDestList→, 1, 0) (SO1 ) ∀ i, t • θ(DisplayDestList→, i, t ) ∧ i > 1 ⇒ ∃ j • θ(→DestListDisplayed , j , t ) (SO2 ) ∀ i, t • θ(DisplayDestList→, i, t ) ∧ i > 1 ⇒ ∃ t1 • θ(→DisplayDestList, i − 1, t1 ) ∧ t1 + l2 ≤ t ≤ t1 + u2 (MI1 ) ∀ i, t • θ(→DisplayDestList, i, t ) ⇒ ∃ k , j • k > 1 ∧ θ(accessed , j , t ) ∧ θ(DestListPage→, k , t ) ∨ ∃ k , j • k > 1 ∧ θ(accepted , j , t ) ∧ θ(DataEntered→, k , t ) (PSO1 ) ∀ i, t • θ(→DisplayDestList, i, t ) ⇒ ∃ t1 • θ(DisplayDestList→, i + 1, t1 ) ∧ t + l2 ≤ t1 ≤ t + u2 DestListDisplayed (I1 ) θ(DestListDisplayed→, 1, 0) (MO1 ) ∀ i, t • θ(DestListDisplayed→, i, t ) ∧ i > 1 ⇒ ∃ j , k • θ(FORMAT SELECT , j , t ) ∧ θ(→StartMPD , k , t ) ∨ ∃ j , k • θ(WAYPOINT SELECT , j , t ) ∧ θ(→SelectingWaypoint , k , t ) (SI1 ) ∀ i, t • θ(→DestListDisplayed , i, t ) ⇒ ∃ j • θ(DisplayDestList→, j , t ) (SI2 ) ∀ i, t • θ(→DestListDisplayed , i, t ) ⇒ ∃ t1 , j • θ(→DisplayDestList, j , t1 ) ∧ t1 + l2 ≤ t ≤ t1 + u2 (PMO1 ) ∀ i, t • ini(DestListDisplayed , i, t ) ∧ ∃ j • θ(WAYPOINT SELECT , j , t ) ∨ θ(FORMAT SELECT , j , t ) ⇒ θ(DestListDisplayed→, i + 1, t ) (SMO1 ) ∀ t , ∄j • θ(WAYPOINT SELECT , j , t ) ∨ θ(FORMAT SELECT , j , t ) ⇒ ∄i • i > 1 ∧ θ(DestListDisplayed→, i, t ) SelectingWaypoint (I1 ) θ(SelectingWaypoint→, 1, 0) (SO1 ) ∀ i, t • θ(SelectingWaypoint→, i, t ) ∧ i > 1 ⇒ ∃ j • θ(→EnteringNewData, j , t ) (SO2 ) ∀ i, t • θ(SelectingWaypoint→, i, t ) ∧ i > 1 ⇒ ∃ j • θ(ENT , j , t ) (SI1 ) ∀ i, t • θ(→SelectingWaypoint , i, t ) ⇒ ∃ j • θ(DestListDisplayed→, j , t ) (SI2 ) ∀ i, t • θ(→SelectingWaypoint , i, t ) ⇒ ∃ j • θ(WAYPOINT SELECT , j , t ) (PSO1 ) ∀ i, t • ini(SelectingWaypoint , i, t ) ∧ ∃ j • θ(ENT , j , t ) ⇒ θ(SelectingWaypoint→, i + 1, t ) (SSO1 ) ∀ t , ∄j • θ(ENT , j , t ) ⇒ ∄i • i > 1 ∧ θ(SelectingWaypoint→, i, t ) EnteringNewData (I1 ) θ(EnteringNewData→, 1, 0) (SO1 ) ∀ i, t • θ(EnteringNewData→, i, t ) ∧ i > 1 ⇒ ∃ j • θ(→DataEntered , j , t ) (SO2 ) ∀ i, t • θ(EnteringNewData→, i, t ) ∧ i > 1 ⇒ ∃ j • θ(ENT , i, t ) (SO3 ) ∀ i, t • θ(EnteringNewData→, i, t ) ∧ i > 1 ⇔ θ(validate, i − 1, t ) (MI1 ) ∀ i, t • θ(→EnteringNewData, i, t ) ⇒ ∃ k , j • k > 1 ∧ θ(rejected , j , t ) ∧ θ(DataEntered→, k , t ) ∨ ∃ k , j • k > 1 ∧ θ(ENT , j , t ) ∧ θ(SelectingWaypoint→, k , t ) (PSO1 ) ∀ i, t • ini(EnteringNewData, i, t ) ∧ ∃ j • θ(ENT , j , t ) ⇒ θ(EnteringNewData→, i + 1, t ) (SSO1 ) ∀ t , ∄j • θ(ENT , j , t ) ⇒ ∄i • i > 1 ∧ θ(EnteringNewData→, i, t ) DataEntered (I1 ) θ(DataEntered→, 1, 0) (MO1 ) ∀ i, t • θ(DataEntered→, i, t ) ∧ i > 1 ⇒ ∃ j , k • θ(rejected , j , t ) ∧ θ(→EnteringNewData, k , t ) ∨ ∃ j , k • θ(accepted , j , t ) ∧ θ(→DisplayDestList, k , t ) (SI1 ) ∀ i, t • θ(→DataEntered , i, t ) ⇒ ∃ j • θ(EnteringNewData→, j , t ) (SI2 ) ∀ i, t • θ(→DataEntered , i, t ) ⇒ ∃ j • θ(ENT , j , t ) (SI3 ) ∀ i, t • θ(→DataEntered , i, t ) ⇔ θ(validate, i, t ) (PMO1 ) ∀ i, t • ini(DataEntered , i, t ) ∧ ∃ j • θ(rejected , j , t ) ∨ θ(accepted , j , t ) ⇒ θ(DataEntered→, i + 1, t ) (SMO1 ) ∀ t , ∄j • θ(rejected , j , t ) ∨ θ(accepted , j , t ) ⇒ ∄i • i > 1 ∧ θ(DataEntered→, i, t )