Skip to main content

TiPEX: A Tool Chain for Timed Property Enforcement During eXecution

  • Conference paper
  • First Online:
Runtime Verification

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 9333))

Abstract

The TiPEX tool implements the enforcement monitoring algorithms for timed properties proposed in [1]. Enforcement monitors are generated from timed automata specifying timed properties. Such monitors correct input sequences by adding extra delays between events. Moreover, TiPEX also provides modules to generate timed automata from patterns, compose them, and check the class of properties they belong to in order to optimize the monitors. This paper also presents the performance evaluation of TiPEX within some experimental setup.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Notes

  1. 1.

    Regular properties are the ones that can be defined by TA. Safety (resp. co-safety) properties are the prefix-closed (resp. extension-closed) languages. See [1] for more details.

  2. 2.

    The UPPAAL libraries are provided by Aalborg Univ. at http://people.cs.aau.dk/~adavid/python/.

  3. 3.

    A TA defining a safety (resp. a co-safety) property is said to be a safety (resp. a co-safety) TA. In a safety (resp. co-safety) TA, transitions are not allowed from non-accepting (resp. accepting) to accepting (resp. non-accepting) locations. For formal details, see [1].

References

  1. Pinisetty, S., Falcone, Y., Jéron, T., Marchand, H., Rollet, A., Timo, O.N.: Runtime enforcement of timed properties revisited. Formal Methods Syst. Des. 45, 381–422 (2014)

    Article  MATH  Google Scholar 

  2. Falcone, Y., Havelund, K., Reger, G.: A tutorial on runtime verification. In: Engineering Dependable Software Systems. vol. 34, pp. 141–175. IOS Press (2013)

    Google Scholar 

  3. Alur, R., Dill, D.L.: A theory of timed automata. Theor. Comput. Sci. 126, 183–235 (1994)

    Article  MathSciNet  MATH  Google Scholar 

  4. Bengtsson, J.E., Yi, W.: Timed automata: semantics, algorithms and tools. In: Desel, J., Reisig, W., Rozenberg, G. (eds.) Lectures on Concurrency and Petri Nets. LNCS, vol. 3098, pp. 87–124. Springer, Heidelberg (2004)

    Chapter  Google Scholar 

  5. Larsen, K.G., Pettersson, P., Yi, W.: UPPAAL in a nutshell. Int. J. Softw. Tools Technol. Transfer 1, 134–152 (1997)

    Article  MATH  Google Scholar 

  6. Gruhn, V., Laue, R.: Patterns for timed property specifications. Electron. Notes Theor. Comput. Sci. 153, 117–133 (2006)

    Article  Google Scholar 

  7. Pinisetty, S. et al.: TiPEX website (2015). http://srinivaspinisetty.github.io/Timed-Enforcement-Tools/

Download references

Acknowledgments

This work has been partly done in the context of the ICT COST Action IC1402 Runtime Verification beyond Monitoring (ARVI).

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Yliès Falcone .

Editor information

Editors and Affiliations

A Demonstration of TiPEX

A Demonstration of TiPEX

We illustrate the features of TiPEX discussed in the paper via some examples. All the source files with examples, prerequisites, and some documentation are available at:

http://srinivaspinisetty.github.io/Timed-Enforcement-Tools/

1.1 A.1 Modules EMTA and EME

In the following subsections, we describe how to test the input-output behavior of an enforcement monitor, and how to collect performance data for a property.

Testing the Behavior of an Enforcement Monitor. We present how the input-output behavior of enforcement monitors for some properties is tested. We consider three example properties (used in Sect. 3). We also provide the TAs defining these properties in UPPAAL format (.xml files) inside the source folder.

  • Example_Safety.xml defines a safety property expressing that “There should be a delay of at least 5 t.u. between any two request actions”.

  • Example_CoSafety.xml defines a co-safety property expressing that “A request should be immediately followed by a grant, and there should be a delay of at least 7 t.u. between them”.

  • Example_Response.xml defines a regular property, and expresses that “Resource grant and release should alternate. After a grant, a request should occur between 15 to 20 t.u.”. Note that this property is neither a safety nor a co-safety property.

To test the functionality, with these properties for some input traces, simply run the test script testFunctionality.py (available inside the source folder). For each property, the input trace provided and the output of the EM is printed on the console. On the console, we can observe that for each property, for the provided input, the output satisfies the property (soundness) and the other constraints (transparency, optimality).

Collecting Performance Data. We explain via an example how the main test method is invoked via Python command line to collect performance data for a property (see Fig. 5).The steps are the following:

Fig. 5.
figure 5

Collecting performance data.

  • Import the MainTest module.

  • Specify the property by indicating its path.“Example_Safety.xml” is the property in this example, which is a UPPAAL model stored as “.xml”.

  • Specify the accepting locations in the input TA. For instance, by typing “accLoc=[‘S1, ‘S2’]”, one specifies that the set of accepting locations in the input TA is {S1, S2}.

  • Specify the possible actions. For instance by typing “actions = [‘a,’r’]” one specifies that the set of actions is {a, r}.

  • Define the range of possible delays.

  • Invoke method testStoreProcess in module MainTest, providing the following arguments in order: property, accepting locations, actions, delays, # traces incr.

“#traces” is the number of traces used for testing (3 in the example above), each trace varying in length, and “incr” is the increment in length per trace (1,000 in the example above). As shown in Fig. 5, a list of triples (trace length, total execution time of the Update function, average time per call of the Update function) is returned as the result.

1.2 A.2 Module TAG

Module TAG has a basic GUI. The following lines demonstrate how to launch the GUI via Python command line.

Fig. 6.
figure 6

GUI.

  • Browse to the folder containing the source code.

  • Execute the script GUI_TAG_Tool.py entering the following line in the command prompt python GUI_TAG_Tool.py.

  • A GUI will be launched (shown in Fig. 6a), using which the user can select to generate a basic TA, or to combine TAs, or to check the class of a TA.

We demonstrate how to use each feature via an example.

Generating Basic Timed Automata. We present some TAs generated using module TA Generator. Clicking “Generate Basic TA” launches the GUI shown in Fig. 6b. To generate a TA defining the requirement “In any time interval of 10 t.u., there cannot be 3 or more a actions”, the values of the input parameters provided the tool are:

Fig. 7.
figure 7

Automaton belonging to the precedence pattern.

  • PATTERN = absence,

  • COMPLEXITY_CONSTANT = 3,

  • TIME_CONSTRAINT_CONSTANT = 10,

  • ACTION1 = a, and ACTION2 = b.

Figure 8 shows the representation in UPPAAL. In this TA, \(\mathrm L0\) is initial location, {L0, L1, L2, L3} is the set of accepting locations, and the only non-accepting location is Final_NA. In \(\mathrm L0\), upon action \(\mathrm a\), if the value of clock \(x\ge 10\), then the clock x is reset and the TA remains in the same location. We can see that the TA moves to a non-accepting (trap location) \(\mathrm {Final\_NA}\) upon 3 a actions within 10 time units. To generate a TA defining the requirement “A sequence of 3 a actions enables action b after a delay of at least 5 t.u.”, the values of the input parameters provided to the tool are:

Fig. 8.
figure 8

Automaton belonging to the absence pattern.

  • PATTERN = precedence,

  • COMPLEXITY_CONSTANT = 3,

  • TIME_CONSTRAINT_CONSTANT = 5,

  • ACTION1 = a, and ACTION2 = b.

Figure 7 shows its representation in UPPAAL tool. In this TA, \(\mathrm L0\) is the initial location, \(\left\{ \mathrm L0, L1, L2, L3 \right\} \) is the set of accepting locations, and the only non-accepting location is NAcc. We can see that from locations \(\mathrm L0\), \(\mathrm L1\), and \(\mathrm L2\), if a \(\mathrm b\) action occurs then the TA moves to the trap state, since 3 preceding \(\mathrm a\) actions are missing.

Composing Timed Automata. Clicking “Combine TAs” launches the GUI shown in Fig. 9. Clicking “Select File” button allows the user to select an input UPPAAL model. The input UPPAAL model (stored as .xml) selected by the user, should contain two input TAs (defined as two different templates). Note that in the input TAs, names of accepting locations should be prefixed by “Final”. The user should select an operation. The resulting TA will be written as another template in the UPPAAL model file given as input by the user.

Fig. 9.
figure 9

Combine TA GUI.

Fig. 10.
figure 10

Example: Combining TAs using Boolean operations.

Let us now see an example of the resulting TA obtained after combining two TAs using the Boolean Operations functionality. The two input TAs are shown in Figs. 10a and b. Figure 10c shows the resulting TA after combining the two input TAs using Union operation.

Rights and permissions

Reprints and permissions

Copyright information

© 2015 Springer International Publishing Switzerland

About this paper

Cite this paper

Pinisetty, S., Falcone, Y., Jéron, T., Marchand, H. (2015). TiPEX: A Tool Chain for Timed Property Enforcement During eXecution. In: Bartocci, E., Majumdar, R. (eds) Runtime Verification. Lecture Notes in Computer Science(), vol 9333. Springer, Cham. https://doi.org/10.1007/978-3-319-23820-3_22

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-23820-3_22

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-23819-7

  • Online ISBN: 978-3-319-23820-3

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics