A Formal Approach for Incremental Modeling and Verification of Real-Time Distributed Systems1 Yi Deng, JiaCun Wang, and Rakesh Sinha School of Computer Science Florida International University Miami, FL 33199 e-mail: {deng,wangji,sinha)@cs.fiu.edu Abstraction An incremental approach for modeling and verification of real-time distributed systems design is presented. We first present a Real-time Architectural Specification (RAS) model. RAS combines Time Petri nets (TPN) and Real-Time Computational Tree Logic (RTCTL) to form an integrated system model to systematically achieve high assurance in design and to improve scalability in modeling and analysis. Based on RAS, we further present a method to verify timing properties of a system design. This verification method helps to conquer the complexity of analysis in two dimensions. Horizontally at each level of design, incremental verification is achieved by introducing TPN reduction rules that ensure the composition-ability of analysis results on individual system components. Vertically across design levels, incremental verification is achieved by systematically decomposing and propagating higher-level constraints to lower-level designs so that we can safely plug a component or subsystem design into a high-level architecture without having to re-verify the entire model. A naval command and control (C2) system is used throughout the paper to demonstrate the concept and usability of our approach. Keywords: Distributed systems, real-time systems, time Petri nets, real-time computational tree logic, incremental verification. 1. Introduction We present an integrated approach for incremental modeling and verification of real-time distributed systems. The approach expands and integrates existing formal methods, more specifically TPN [5] and RTCTL [10], in a way that scales better and also helps to achieve high assurance in design than each formalism used alone. 1 This work was supported by the National Science Foundation under Grant No. CCR_9308473, by Air Force Office of Scientific Research under Grant No. F49620-96-1-0221, and by NASA under Grand No. NAGW-4080. The views and conclusions contained herein are those of the authors and should not be interpreted as necessarily representing the official polices or endorsements either expressed or implied by the above named Agencies. 1 This paper focuses on timing and control in architectural design. Timing and control are among the most critical aspects of system design. Architectural design – the engineering of a system into components and their interactions – is a key step of system development critical to reliability and extensibility of the system. A rigorous approach of modeling and analysis at architecture level will significantly raise our confidence on the system. We first present a Real-time Architectural Specification (RAS) model. RAS is built on top of TPN and RTCTL. The former is a well-known operational formalism for modeling control but is cumbersome for specifying rules and constraints. The latter is a popular descriptive model best suited for describing rules and constraints but not control and composition of systems. By integrating them into a coherent architectural model, RAS offers two desirable features: First, it establishes a formal basis to systematically maintain a correlation between requirements and design and to verify or validate the conformance of design to the requirements. This is a key step towards high-assurance in design. In RAS, a distributed system is modeled as a multileveled composition of subsystems (using extended TPN) together with the specification of real-time constraints (using RTCTL) that each of the components and their composition must satisfy at every design level. The refinement of system architecture in RAS goes hand-in-hand with decomposition of the constraints, which in turn serve as the basis for analysis and further refinement. This property helps to enforce that, at any design level, every design decision can be traced to and meets the time-critical system requirements. Second, RAS offers better scalability in modeling and analysis: Components interact with environment only via their communication interface (called ports). Moreover, the constraint specification deals with only the ports, with internal states of the components encapsulated. This structural property ensures that, horizontally at each design level, an architectural model can be constructed and verified compositionally, and vertically across design levels, lower level (interface and constraint conforming) design can be specified and analyzed incrementally and safely plugged into their parent level architecture without the need of re-verifying the entire model. Based on RAS, we further present a method to verify timing properties of system design that materializes the above advantages. The verification method manages complexity of analysis in two dimensions: At each design level, we introduce component-level net reduction rules, which allow us to reduce arbitrarily complex net structure associated with a verified component into one of predefined small patterns of constant size, which in turn is used in the verification of other components. Consequently, system-wide properties are verified by composing the results of 2 analysis on individual components, and thus, the complexity of analysis is proportional to the size and number of components, rather than the size of the entire model. Across different design levels, incremental verification is achieved by systematically decomposing and propagating highlevel constraints to lower-level designs in such a way that a verified subsystem architecture can be safely plugged into its parent-level architecture without having to re-verify the entire model. Throughout the paper, a naval command and control (C2) system, a typical complex real-time distributed system, is used to demonstrate our modeling approach and verification technique. Neither the use of dual languages nor introducing modular structure in formal modeling is a new idea. None of the previous results, however, combines the complementary features of operational and descriptive modeling in such a way as in RAS to form an integrated approach of modeling and analysis. In [13], for example, TRIO logic is coupled with TPN for modeling realtime systems. TRIO++ [13] further extends the notation of TRIO to explore the use of objectoriented concepts and constructs in modeling. The objective here, however, is to axiomatize TPN so that logical deduction can be used to prove certain properties of real-time systems. Unlike RAS, TRIO’s coupling with TPN doesn’t address relationship between requirement and design or deal with issue of incremental modeling and verification. Many efforts in Petri nets community have been proposed to introduce modular and/or object-based structure into the net representation. Examples of these efforts include PROTOB [2], OBJSA Nets [4], POT/POP [11], Cooperative Object Nets [3], OPNets [12], and CmTPN [7]. A common objective of these models is to improve scalability in modeling and analysis. Among them, only CmTPN has a well-defined real-time semantics, and supports reachability-based compositional verification. Each of these studies has more or less helped us to formulate the component-based modular structure of RAS model. The rest of the paper is organized as follows: In Section 2, we present an informal overview of the RAS model. In Section 3, we first describe a naval command and control system and then illustrate the use of RAS to incrementally construct a design model for this system. In Section 4, we discuss incremental verification of RAS models -- both at a given design level and across different design levels, with the former discussed in detail. Section 5 concludes the paper. Appendix contains a formal description of the RAS model. 2. Overview of RAS Model An RAS architectural model consists of three basic elements: component specifications (henceforth referred to as specifications), connections, and architectural constraints (constraints). 3 The specifications describe the real-time behavior and communication interface of the components or subsystems; the connections specify how the components interact with each other; and the constraints define real-time system requirements imposed on the components and connections. All connections are defined using only communication interfaces. In this way, the architecture can be viewed as a template for system composition, that is, a specific design (or subarchitecture) of a component can be “plugged-into” the place of the corresponding specification to form an instantiated, recursively defined multi-level architectural model. The framework of RAS is illustrated at a more detailed level in Figure 1. In the RAS architectural model, a component (e.g., C) specification is described as a time Petri net (TPN). The specification has two parts: (1) communication ports (denoted graphically by half circles), including input ports (e.g., PORT5) and output ports (e.g., PORT6), and (2) a net that describes the time-dependent, operational behavior of C, that is, it defines the semantics associated with the ports. The communication between C and its environment is solely through the ports. Such an interface specification not only promotes information hiding, but more importantly, allows any sub-architecture that conforms to the component specification to be “plugged into” the place of the specification to form a multi-leveled, and more detailed system architecture. C1: For request issued from A.PORT1, reply must be received at A.PORT2 within 20 time units. C2: A flow initiated from B.PORT4 must reach A.PORT7 in 20 – 30 time units. POR A PORT POR T1 T2 7 POR T6 POR C PORB T3 POR T4 POR T5 E F T6 C POR T5 G Figure 1 Framework of the RAS model The components (either specification or sub-architecture) form the building blocks of RAS architecture, but the main focus in RAS is on the composition of components. A connection represents a channel of interaction between two components. A connection, modeled by timed 4 transitions connecting the components’ communication ports, defines the direction of message flow and delay in the channel. A connection may be uni-directional or bi-directional. For instance, the connection between component A and B describes a request-reply relationship and is bi-directional, whereas the connection from C to A is uni-directional. The basic communication model supported by the RAS is asynchronous message (token) passing; that is, the sending component does not suspend itself if there is a concurrent activity available. In addition to serving as a component’s communication interface, RAS communication ports also provide the linkage between the operational design (components and connections) and the descriptive architectural constraints. Each port represents an atomic proposition, which is satisfied by an arriving token (an incoming message at the port). These ports constitute the alphabet (atomic propositions) of the RTCTL formulae that define the constraints. That is, the architectural constraints are specified without using any internal information (or state) of the components, which gives us the flexibility to experiment with different component designs under the same architecture. Four types of architectural constraints are defined in the RAS: (1) component constraints on a component define the required, externally observable real-time properties of the component; (2) connection constraints describe time-dependent properties required on a connection; (3) crossconnection constraints define the required time-critical synchronization among multiconnections; and (4) environmental constraints specify the assumptions made about the environment of the system or components for the system to function properly. Examples of connection constraints and cross-connection constraints are shown in Figure 1, respectively. Formally, connection constraint C1 is described as: Port1 AF20PORT2, and cross-connection constraint C2 as: PORT4A(G20PORT7 F30PORT7). These constraints play an important role in system design and are an integral part of an architectural specification. First, they provide guidance for and help to enhance traceability in architecture refinement. For instance, any specification or sub-architecture for component B must satisfy constraints C1. Second, they provide the basis for architecture validation and verification. Third, the environmental assumptions explicitly define what behavior a component (and the system) can expect from its environment, and thus eliminates the need to consider those disallowed events and states in the design. This effectively reduces the state space of a system architecture, which, in turn, reduces the complexity of design and analysis. 5 3. A Motivating Example In this section, we first introduce a practical design example—the hierarchical design of a generic naval Command and Control (C2) system and then use the example to demonstrate our modeling principle and incremental verification techniques. A C2 system is a typical real-time distributed system representing complex integration of multi-techniques and multi-hardware. Delays in execution of any of its functions may degrade the kill probability, result in inefficient use of battle space, cause too many weapons to be assigned against the same target, and perhaps allow many targets to leak through a particular defense zone [1]. A naval command and control battle group (BG) is an example of a C2 system. It consists of at least one carrier along with several escorting platforms (ships, submarines, and aircraft). The carriers and their platforms contain a wide variety of sensors and weapon systems, which allow BG to carry out defensive and offensive missions as prescribed by a controlling authority. The threat to BG is multi-warfare in character consisting of enemy submarines, surface ships, and aircrafts. As a consequence, the defense of BG involves anti-submarine warfare (ASW), antisurface warfare (ASUW), and anti-air warfare (AAW). The enemy platforms must be detected using information from organic BG sensors; they must also be identified, tracked, and engaged before they launch their offensive weapons against the BG assets. C2 Center AAW Center Air Radar ASUW Center AAW Fire Unit ASW Center ASUW Fire Unit Surface Radar : intelligence flow Sonar Tracking ASW Fire Unit : control flow Nomenclature: ASUW: Anti-Surface Warfare ASW: Anti-Submarine Warfare AAW: Anti-Aircraft Warfare C2: Command and Control Figure 2 A generic naval command and control system. Usually a naval BG operates under a distributed C2 doctrine, the so-called Composite Warfare Commander (CWC) doctrine which reflects the complexities of naval warfare and survivability. The sensor admiral in charge of BG under the CWC doctrine can delegate 6 command and control authority and responsibility to three senior warfare commanders: the ASW commander, the ASUW commander, and the AAW commander who are specialists in their respective warfare areas. The CWC assigns control of specific platforms (submarines, ships, aircraft, etc.) to each subordinate warfare commander, a resource-allocation problem, so that each commander can define the BG assets from the specific threat in his assigned domain. Due to space limitation, we only consider the ASUW subsystems. (The study of the entire system with three types of warfare involved is included in [9].) Figure 3(a) shows ASUW system’s structure. It has three components: (1) C2 Center, which reflects the function of compositional warfare organization; (2) ASUW Center, which reflects the function of ASUW organization; and (3) ASUW Fire Unit, which reflects the function of fire unit. The third component, ASUW Fire Unit, can be further refined into two low level components, Fire Control and Damage Assessment, as shown in Figure 3(b). Table I, II and III show the meanings of ports and transitions in Figure 3(a) and (b). TABEL I LEGENDS OF PORTS IN FIGURE 3(a). PORT DESRIPTION TYPE ASUC.SI ASUW center ready to send intelligence to C2 center output ASUC.RM ASUW center received command from C2 center input ASUC.SM ASUW center ready to send command to ASUW fire unit output ASUF.R ASUW fire unit received command from ASUW center input ASUF.S ASUW fire unit ready to send damage assessment results to ASUW center output C2C.R C2 center received messages from centers input C2C.S C2 center ready to send commands to centers output C2.SUR A message from surface radar arrived input C2.FSU ASUW center received damage assessment results input C2.ASU A combat command from ASUW fire unit is sent output TABEL II LEGENDS OF TRANSITIONS IN FIGURE 3(a). TRANSITION DESCRIPTION FIRING INTERVAL T1 ASUW center sends intelligence to C2 center [1, 1] T2 C2 center sends command to ASUW center [1, 1] T3 ASUW center sends command to ASUW fire unit [1, 1] T4 ASUW fire unit sends damage assessment results to ASUW center [1, 1] 7 C2 CENTER (C2C) C2C.S C2C.R T2 T1 ASUC.RM ASUC.SI ASUF.R ASUW CENTER (ASUC) C2.SUR FIRE CONTROL (FC) C2.ASU FC.SM C2.FSU ASUC.SM T20 T3 T4 ASUF.R DA.RM1 DA.RM3 ASUF.S ASUW FIRE UNIT (ASUF) ASUF.S C2.ASU Figure 3 (a) Structure of the ASUW system. DAMAGE ASSESSMENT (DA) (b) Refinement of ASUW Fire Unit. TABEL III LEGENDS OF PORTS AND TRANSITIONS IN FIGURE 3(b). PORT DESCRIPTION TYPE FC.SM Ready to send command for collecting firing results output DA.RM1,2,3 Waiting for damage assessment input TRANSITION T20 DESCRIPTION FIRING INTERVAL ASUW fire unit sends command of collecting firing results [1, 2] The first concern of the designer and the user of a C2 system should be the reaction time of the system. Consequently, we add a cross-connection constraint C2.SUR AF40C2.ASU, which states that a fire command must be issued within 40 time units of receiving an enemy intelligence message. Since a C2 system is a closed-loop system, a constraint reflecting the time limitation for the feedback of damage assessment results should be included. Thus we have the component constraint: C2.SUR AF45C2.FSU, Moreover, because the bottleneck for information processing is usually located in component C2 Center the component is always asked to respond as soon as possible. This is captured by the connection constraint: ASUC.SI AF18ASUC.RM, 8 We also have an environmental constraint about the inter-arrival time of radar data: C2.SUR AG50C2.SUR, which states that the time interval between two successive radar messages entering the system is at least 50 units. Figure 4, 5, and 6 show the internal TPN representation of the three components. (The description of nodes of TPN models is given in [9].) We need to verify whether the formal operational model is consistent with the first three constraints. It is clear that constructing the reachability graph of the entire TPN model is not a practical idea because of the state explosion problem. The next section presents an incremental verification technique that takes advantages of the structural features of RAS to verify the design against the above timing constraints. Our method works by breaking the task of verifying a complex design into verification of several simpler TPNs. ASUC.SI p1 t2 p3 t5 t4 t1 t6 t7 C2.SUR ASUC.SM C2C.S C2C.R p2 p6 p4 t3 Static firing time intervals: t5: [2, 3], t6: [1, 2], t7: [ 4, 6]. Static firing time intervals: t1: [1, 2], t2: [3, 5], t3: [3, 5], t4: [5, 6]. Figure 4. The internal representation of C2 Center. ASUF.R p5 ASUC.RM t8 p8 Figure 5. The internal representation of ASUW Center. t9 C2.ASU ASUF.S t10 p9 Static firing time intervals: t8: [4, 6], t9: [1, 2], t10: [5, 7] Figure 6. The internal representation for ASUW Fire Unit. 4. An Incremental Verification Method for Timing Analysis The goal of verification is to ensure that the behavior of the model is what was intended. In a hierarchical design, verification not only applies to component-connections in each given design level, but also to models between any two different design levels. The former verifies whether the 9 operational model is consistent with the specifications or constraints, while the latter verifies whether the specifications of lower level are consistent with those of higher level. In this section, we present an incremental technique for timing verification of RAS design models. Our method works by verifying designs independently at each level – starting from the very top level. Within a given level, we analyze one component at a time. The analysis consists of verifying all constraints related to this component and then reducing it to a simpler TPN of constant size, which, in turn, is used to verify subsequent components. We need to address several issues: (1) As design gets refined across levels, how can we ensure that sub-architecture can be safely plugged into the high-level architecture without having to re-verify the entire model? This is addressed in Section 4.3. (2) How can we reduce a component into a simpler TPN while still preserving its externally observable time-critical properties? We give a set of component-level reduction rules in Section 4.1. (3) Within a given level, we can’t verify a component until all other components it depends on have already been verified. So we need to choose the right order in which components are verified. In section 4.1, we outline a method for choosing the right order in which components can be verified incrementally. We first present the incremental verification algorithm for a given level of design. 4.1 Incremental Verification at a Given Design Level The following definitions are needed for the description of our verification algorithm. Definition 1 A pair of input port PORT_in and output port PORT_out in a given component are said to form a port pair if there exists a directed path between them. Definition 2 A port pair <PORT_in, PORT_out> is a calling pair if a reply token from the environment is expected at PORT_in whenever a token is sent to some other component from PORT_out. Definition 3 A port pair <PORT_in, PORT_out> is a passing pair if a token is expected to be sent to the environment from PORT_out whenever a token from some other component is received at PORT_in,. 10 From the three definitions, we know that a port pair is either a calling pair or a passing pair. In Figure 5, <ASUC.SI, ASUC.RM> and <ASUC.SM, C2.FSU> are calling pairs, whereas <C2.SUR, ASUC.SI> is a passing pair. The basic idea of the algorithm is to close passing pairs by connecting them with timed transitions, thereby replacing each component by a very simple net of constant size that preserves all external observable time-critical properties of the component being replaced. In Figure 7, we introduce five component-level reduction rules to support such closure. The reduction rules introduced here work at a much coarse level than the reduction rules given in [14], which work at individual transition level. Consequently, we need fewer applications of our rules to reduce the size of the model being analyzed. In these rules, the static firing time interval SIM_(A, B) of transition T_(A, B) is the time delay interval of the message transfer between PORTA being marked and PORTB being marked, and SIM_((A, B), C) of T_((A, B), C) is the time delay interval of the message transfer between both PORTA and PORTB being marked and PORTC being marked, and so on. In our reduction rules, we make the same assumption as Sloan and Buy [14]: Assumption 1. The underlying (untimed) net corresponding to the TPN of a RAS model is safe. This assumption implies that, for a given passing pair in a component, a token can be received from the input port only after the previous input token has exited from the output port. As indicated in [14], this assumption holds for many systems. Of course, we need to make sure that these reduction rules preserve timing properties of nets. Let L(N) be the set of all firing schedules of TPN N. For any set of transitions U, let L(N)|U be the set of all schedules of N where transitions not from U have been deleted from each of schedules. Definition 4 [14] Let NR be the result of applying some reduction rule to a time Petri net N, and let U be any set of transitions of N which are left completely unmodified by this transformation. Then we say that a reduction rule is equivalence preserving if L(N)|U=L(NR)|U. Theorem Reduction rules 1 - 5 are equivalence preserving. (A proof is included in [9].) 11 PORTA PORTA PORTA PORTB PORTA T_(A,B) PORTC PORTC PORTB PORTB T_((A,B),C) PORTB ( PORTA and PORTB have same post-set) Figure 7(a) Illustration for Rule 1. Figure 7(b) Illustration for Rule 2. PORTA’ T_(A, B) PORTB PORTB PORTA competitive PORTB concurrent PORTC PORTA PORTC PORTC PORTC PORTA’’ T_(A, C) T_(A,C) ( Each of PORTB and PORTC will receive a token for every token arriving at PORTA.) (The token arriving in PORTA will either reach PORTB or PORTC) Figure 7(c) Illustration of Rule 3. Figure 7(d) Illustration for Rule 4. PORTA PORTA T_(A,B) PORTB PORTA PORTC PORTC T_((A,B), (C,D)) PORTB PORTD PORTB PORTD (PORTA and PORTB have same post-set. PORTC and PORTD have same pre-set.) Figure 7(e) Illustration for Rule 5. Because of dependencies among components we need to be careful in choosing the order in which components are considered. E.g., if a component has a calling pair, it needs to interact with other components. We say that component A depends on component B, denoted by AB, if after A sends a token from the output port of its calling pair, it can not receive a token at the input port if we remove B away from the system. If AB then B has to be analyzed before A. If AB and BC, then C has to be analyzed before B, which, in turn, has to be analyzed before A. We can build a dependency graph such that there is a directed edge from component A to component B iff A depends on B. If this dependency graph contains a cycle, then we can’t pick an order, so we assume that Assumption 2 The dependency graph does not contain a cycle. In which case we can (linearly) order the component (e.g., by performing a topological sort [8]) in such a way that all dependency edges go from a component higher in this order to a component lower in the order. In other words, the first component does not depend on any other components so it can be verified and reduced to a simple TPN. The second component depends only on the first one, which has already been reduced, and so on. Suppose that there are m 12 components, which are linked together by inter-related connection structures to form the system or subsystem. Now we can describe our incremental verification method as follows: Initialization (1) List calling pairs, and passing pairs for each component; (2) For each port pair, list the reduction rule that can be applied to this pair; and (3) Build the dependency graph on components and perform a topological sort. If the sorted order is CP1, CP2, , CPm, then we know that i>j, CPjCPi is not possible. Procedure for incremental verification for CP1 to CPm verify connection constraints; if violation found quit the algorithm, report the violation of constraints and redesign the system or subsystem; endif verify all cross-connection constraints; if violation found quit the algorithm, report the violation of constraints and redesign the system or subsystem; endif calculate time delay interval of the message transfer between each passing pair of the component; verify component constraints; if violation found quit the algorithm, report the violation of constraints and redesign the system or subsystem; endif if all constrains of the first three types are verified the algorithm returns successfully; else close passing pairs by applying reduction rules 1-5; endif endfor 4.2 Verification of the C2 System We now illustrate the incremental verification on the C2 system given in section 3. It is easy to see that the second constraint (C2.SURAF45C2.FSU) and the environmental constraint (C2.SUR AG50C2.SUR) ensure that the C2 system satisfies assumption 1. Therefore, our verification method is applicable to this system. (Due to the space limitation, we skip some steps that are not crucial for understanding the algorithm.) The C2 system consists of three components: C2 Center, ASUW Center and ASUW Fire Unit. There are two dependency edges: ASUW CenterC2 Center, and ASUW CenterASUW Fire Unit, so we can order the three components as C2 Center, ASUW Fire Unit, and ASUW Center. Applying reduction rule 1 to 13 component C2 Center results in Figure 8(a), and applying reduction rule 4 to component ASUW Fire Unit results in Figure 8(b). Applying simple reachability analysis [5,6], we conclude SIM_(C2C.R, C2C.S)=[9, 13], SIM_(ASUF.R, C2.AS)=[5, 8], and SIM_(ASUF.R, ASSF.S)=[10, 15]. This gives SIM_(ASUF.SI, ASSU.RM)=[11, 15]. So the constraint ASUC.SIAF18ASUC.RM is verified. Next, we consider component ASUW Center. Figure 8(c) shows its interaction with the other two components, which have been simplified. Based on Figure 8(c), we obtain SIM_(C2.SUR, C2.ASU)=[24, 35], and SIM_(C2.SUR, C2.FSU)=[30, 43]. Based on these values, we have verified C2.SURAF40C2.ASU and C2.SURAF45C2.FSU. Therefore, all three constraints have been verified. T_(C2C.R, C2C.S) T_(C2C.R, C2C.S) C2C.R C2C.S C2C.R C2C.S T2 T1 (a) ASUC.SI ASUC.RM ASUU.R’ T_(ASUU.R, C2.ASU) C2.FSU ASUF.R’ t5 C2.SAU p5 t6 p7 t7 ASUC.SM T_(ASUU.R, ASUU.S) C2.SUR T23 T_(ASUF.R, C2.ASU) T23 ASUU.R’’ T_(ASUF.R, ASUF.S) ASUF.S p6 ASUF.R’’ ASUF.S C2.FSU (b) T23 6 (c) Figure 8 (a) Reduction of component C2 Center. (b) Reduction of component ASUW Fire Unit. (c) The simple but equivalent model of the system. 4.3 Constraints Decomposition and Incremental Verification across Design Levels In the last subsection we showed that we could use the compositional algorithm to verify the design at any given level. In this section, we briefly describe an incremental technique that ensures that, after each refinement step, we can safely plug the sub-architecture into its parentlevel architecture without having to re-verify the entire model. For more details, refer to [9]. This technique consists of three basic elements: 1) We automatically derive constraints for the lowerlevel design that is consistent with the higher-level constraints. 2) The lower-level design is 14 verified using the technique discussed in the last section. 3) the sub-architecture is plugged into the parent-level architecture to form a more detailed architectural model. In fact, when we refine an RAS component into a sub-architecture, the RAS model mandates that it inherit all the ports from the high-level component to ensure interface consistency. During the verification of the high-level design, we compute time delays for certain port-pairs. Correctness of the high-level design is contingent on the values of these time delays. So for the lower level design, we add these delays as constraints that must be satisfied. As long as these constraints are satisfied, we can ensure that the low-level designs is consistent with the high-level design. Let’s take the analysis of the C2 system as an example. In the last subsection, we finished the verification of its high-level design. Figure 7 shows the internal representation p11 t12 p14 p12 t13 p15 p13 t14 p16 t11 ASUU.R t15 C2.AS of low-level design for ASUW Fire Unit. From this figure we know ports ASUF.R, C2.AS, and ASUF.S are inherited ASUU.SM from Figure 6, the high-level design model for ASUW Fire T20 ASUU.RM1 Unit (The legends of nodes in Figure 9 is included in [9]). During the high-level verification, we concluded that SIM_(ASUF.R, C2.AS)=[5, 8], and SIM_(ASUF.R, ASSU.S)=[10, 15], which enabled us to prove the t19 ASUU.S p17 t16 p18 t17 p19 ASUU.RM3 ASUU.RM2 t18 constraints for the high-level design. Hence, for the lowlevel model we have the following two constraints: Figure 9. Refinement of Figure 6. (1) ASUF.RA(G5 C2.AS F8 C2.AS), and (2) ASUF.RA(G10AASU.S F15 AASU.S). Then we can use the compositional verification algorithm from the previous subsection to verify the design in Figure 7 as long as the static firing time interval for each transition is given. 5. CONCLUSION We have presented an RAS-based incremental approach for architectural modeling and verification of real-time distributed systems. The contribution of this paper is twofold: First, it provides a systematic way to link real-time system constraints to the process of formal modeling and analysis to ensure that the constraints are met at any given design level. Second, our approach is scalable in both modeling and analysis. We have presented an incremental verification technique for timing analysis based on constraint propagation and component-level Petri net 15 reduction. This technique significantly reduces the complexity of analysis by supporting both horizontal and vertical composition-ability. These two features together ensure that a complex system model can be built, changed and verified progressively both at a given design level and across different design levels. A restriction of our verification method is that, as in [14], it assumes that the underlying (untimed) Petri net is safe. We are exploring alternative analysis techniques that may allow us to remove this restriction. A potential solution to this problem is to use compositional model checking. Reference: [1] M. Athans. Command and control (C2) theory: A challenge to control science. IEEE Transactions on Automatic Control, AC-32 (4):286-293, 1987. [2] M. Baldasssri, G. Bruno. Protob: An object methodology for developing discrete event dynamic system. High-level Petri Nets: Theory and Application, 1991. [3] R. Bastide, C. Blanc, P. palanque. Cooperative objects: A concurrent Petri-net based, objected-oriented language. Procedings of the IEEE International Conference on System, Man and Cybernetics, 3:286-291, 1993. [4] E. Battiston, F. Cindio, G. Mauri. Objsa nets: A class of high-level nets having objects as domains. Advances in Petri Nets, LNCS 340, 1988. [5] B. Berthomieu, M. Menasche. An enumerative approach for analyzing time Petri nets. Procedings of IFIP Congress, Sept. 1983. [6] B. Berthomieu, M. Diaz. Modeling and verification of time dependent systems using time Petri nets. IEEE Transactions on Software Engineering, 17(3), 1991. [7] G. Bucci, E. Member. Compositional validation of time-critical systems using communicating time Petri nets. IEEE Transactions on Software Engineering, 21(12): 969-992, 1995. [8] T. Cormen, C. Leiserson, R. Rivest. Introduction to algorithms. The MIT Press, 1994. [9] Y. Deng, J. Wang, R. Sinha. Compositional and incremental verification of real-time systems based on the RAS model. Technical Report, School of Computer Science, Florida International University, 1997. [10] E.A. Emerson, A.K. Mok, A. P. Sistla, J. Srinivasian. Quantitative temporal reasoning. 1989. [11] J. Engelfriet, G. Leih, G. Rozenberg. Net-based description of parallel object-based system, or pots and pops. Foundations of object-oriented languages, LNCS, 489, 1990. 16 [12] Y. Lee, S. Park. Opnets: An object-oriented high-level Petri net model for real-time systems. Journal of Systems & Software, SE-13(3):69-86, 1993. [13] D. Mandrioli, A. Morzenti, M. Pezze, P. Pietro S. and S. Silva. A Petri net and logic approach to the specification and verification of real time systems. Formal Methods for Real time Computing, Ed: C. Heitmeyer and D. Mandrioli, John Wiley & Sons Ltd, 1996. [14] R. Sloan, U. Buy. Reduction rules for time Petri nets. Acta Informatica. 33:687-706, 1996. Appendix: Formal Description of RAS Model The basic building block of an RAS model is called Atomic RAS Architecture (ARA), which corresponds to the concept of component specification discussed earlier. Formally, an ARA is defined as a tripe: ARA=(TPN, PORT, AC), where (1) TPN=(P, T, B, F, M0, SIM) is a time Petri net. (2) PORTTPN.P is a special class of places used to represent the communication ports of the component. Furthermore, PORT = PORT.INPORT.OUT, and PORT.INPORT.OUT = , where PORT.IN and PORT.OUT are called the set of input-ports and output ports, respectively. (3) AC is a RTCTL formula used to describe component and environment constraints for the component. In particular, AC.AlphabetPORT, where AC.Alphabet denotes the alphabet of AC. An ARA describes a system component from the perspective of its externally observable and operational behavior (by TPN), its ports of interaction with its environment (by PORT), the constraints it needs to satisfy, and the assumptions about its environment (by AC). Based on the definition of ARA, we recursively define the architecture of any real-time system (called an RAS architecture, and denoted by RA) as a composition of component specifications (ARAs) or sub-architectures linked together by inter-related connection structures. Formally, an RAS architecture RA is defined as follows: (1) An ARA is an RAS architecture (RA). (2) If RA1, RA2, …, RAk are a set of RAS architectures, then RA=(SAS, PORT, CON, AC) is an RAS Architecture, where (a) SAS= ki=1RAi are called the sub-architectures of RA; (b) PORTki=1RAi.PORT are the ports of RA; 17 (c) CON=(P, T, B, F, M0, [SIM, Pty]) is a TPN used to describe the connections between the sub-architectures RAi, i=1,…,k, that satisfies the following rules: i. P is a set of places. In particular, (ki=1RAi.PORT-RA.PORT)P. This set of ports is called the internal ports of RA, which are used solely for connections between the system components, and not accessible from outside of the system; ii. T is a set of transitions describing real-time behavior of the connections; iii. B=TPN is the backward incidence function of the TPN. In particular, (pki=1RAi.PORT.IN, and tT), B(t, p)=0. That is, an input port can only accept incoming communication, but cannot generate outgoing communication; iv. F=TPN is the forward incidence function of the TPN. In particular, (pki=1RAi.PORT.OUT, and tT), F(t, p)=0. That is, an output port can only generate outgoing communication, but cannot accept incoming communication; and v. pki=1RAi.-RA.PORT, ( tT), such that B(t, p)>0, or F(t, p)>0. That is, all internal ports of an architecture must be connected to at least one connection. vi. M0 is the initial marking of the TPN used to describe the initial state of the system. vii. [SIM, Pty] are the time intervals and priorities associated with the transitions, respectively. In particular, SIM=TN(N) and Pty=TN. The defualt time interval for a tT is (0, ), and the default priority is 0 (lowest priority). (d) AC is an RTCTL formula used to describe the architecture constraints of RA, with its alphabet being the ports of the components. That is, AC.Alphabetki=1RAi.PORT. AC=CCCICEC, where C is the component constraints used to describe the required synchronization between connections, and EC is the environmental constraints used to describe the assumptions about the environment of the system and components. 18