Abstract
Specifying properties over the behaviour of components of Cyber-Physical Systems usually focuses on the behaviour of signals, i.e., the behaviour of the physical part of the system, leaving the behaviour of the cyber components implicit. There have been some attempts to provide specification languages that enable more explicit reference to the behaviour of cyber components, but it remains awkward to directly express the behaviour of both cyber and physical components in the same specification, using one formalism. In this paper, we introduce a new specification language, Source Code and Signal Logic (SCSL), that 1) provides syntax specific to both signals and events originating in source code; and 2) does not require source code events to be abstracted into signals. We introduce SCSL by giving its syntax and semantics, along with examples. We then provide a comparison between SCSL and existing specification languages, using an example property, to show the benefit of using SCSL to capture certain types of properties.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
Notes
- 1.
These predicates can be computed via static analyses of source code.
References
Copter::crash_check function - ArduPilot. https://github.com/ArduPilot/ardupilot/blob/a40e0208135c73b9f2204d5ddc4a5f281000f3f1/ArduCopter/crash_check.cpp#L100, accessed: 2022-04-13
Copter::fence_check function - ArduPilot. https://github.com/ArduPilot/ardupilot/blob/36f3fb316acf71844be80e0337fdc66515b4cf50/ArduCopter/fence.cpp#L9. Accessed 13 Apr 2022
The ArduPilot autopilot. https://ardupilot.org. Accessed 13 Apr 2022
The ArduPilot GitHub repository. https://github.com/ArduPilot/ardupilot. Accessed 13 Apr 2022
Abbas, H., Fainekos, G., Sankaranarayanan, S., Ivancic, F., Gupta, A.: Probabilistic temporal logic falsification of cyber-physical systems. ACM Trans. Embed. Comput. Syst. 12(2s), 95:1–95:30 (2013). https://doi.org/10.1145/2465787.2465797
Alur, R., et al.: The Algorithmic analysis of hybrid systems. Theor. Comput. Sci. 138(1), 3–34 (1995). https://doi.org/10.1016/0304-3975(94)00202-T
Alur, R., Dill, D.L.: A theory of timed automata. Theor. Comput. Sci. 126(2), 183–235 (1994). https://doi.org/10.1016/0304-3975(94)90010-8
Bartocci, E., Falcone, Y., Francalanza, A., Reger, G.: Introduction to runtime verification. In: Bartocci, E., Falcone, Y. (eds.) Lectures on Runtime Verification. LNCS, vol. 10457, pp. 1–33. Springer, Cham (2018). https://doi.org/10.1007/978-3-319-75632-5_1
Bauer, A., Leucker, M., Schallhart, C.: Comparing LTL semantics for runtime verification. J. Logic Comput. 20(3), 651–674 (2010). https://doi.org/10.1093/logcom/exn075
Bauer, A., Leucker, M., Schallhart, C.: Runtime verification for LTL and TLTL. ACM Trans. Softw. Eng. Methodol. 20(4), 1-64 (2011). https://doi.org/10.1145/2000799.2000800
Boufaied, C., Menghi, C., Bianculli, D., Briand, L., Parache, Y.I.: Trace-checking signal-based temporal properties: a model-driven approach. In: Proceedings of the 35th IEEE/ACM International Conference on Automated Software Engineering, pp. 1004–1015. ASE 2020, Association for Computing Machinery, New York, NY, USA (2020). https://doi.org/10.1145/3324884.3416631
Bozzano, M., Bruintjes, H., Cimatti, A., Katoen, J.-P., Noll, T., Tonetta, S.: COMPASS 3.0. In: Vojnar, T., Zhang, L. (eds.) TACAS 2019. LNCS, vol. 11427, pp. 379–385. Springer, Cham (2019). https://doi.org/10.1007/978-3-030-17462-0_25
Bresolin, D.: HyLTL: a temporal logic for model checking hybrid systems. Electron. Proc. Theor. Comput. Sci. 124, 73–84 (2013). https://doi.org/10.4204/eptcs.124.8
Brim, L., Dluhos, P., Safránek, D., Vejpustek, T.: STL*: extending signal temporal logic with signal-value freezing operator. Inf. Comput. 236, 52–67 (2014). https://doi.org/10.1016/j.ic.2014.01.012
Dawes, J.H.: Towards Automated Performance Analysis of Programs by Runtime Verification (2021). https://cds.cern.ch/record/2766727
Dawes, J.H., Bianculli, D.: Specifying properties over inter-procedural, source code level behaviour of programs. In: Feng, L., Fisman, D. (eds.) RV 2021. LNCS, vol. 12974, pp. 23–41. Springer, Cham (2021). https://doi.org/10.1007/978-3-030-88494-9_2
Dawes, J.H., Bianculli, D.: Specifying Properties over Inter-procedural, Source Code Level Behaviour of Programs (2022). http://hdl.handle.net/10993/52185, extended version
Dawes, J.H., Reger, G.: Specification of temporal properties of functions for runtime verification. In: Proceedings of the 34th ACM/SIGAPP Symposium on Applied Computing, pp. 2206–2214. SAC 2019, Association for Computing Machinery, New York, NY, USA (2019). https://doi.org/10.1145/3297280.3297497
Dwyer, M.B., Avrunin, G.S., Corbett, J.C.: Patterns in property specifications for finite-state verification. In: Proceedings of the 21st International Conference on Software Engineering. p. 411–420. ICSE ’99, Association for Computing Machinery, New York, NY, USA (1999). https://doi.org/10.1145/302405.302672
Fainekos, G., Hoxha, B., Sankaranarayanan, S.: Robustness of specifications and its applications to falsification, parameter mining, and runtime monitoring with S-TaLiRo. In: Finkbeiner, B., Mariani, L. (eds.) RV 2019. LNCS, vol. 11757, pp. 27–47. Springer, Cham (2019). https://doi.org/10.1007/978-3-030-32079-9_3
Ferrère, T., Maler, O., Ničković, D.: Mixed-time signal temporal logic. In: André, É., Stoelinga, M. (eds.) FORMATS 2019. LNCS, vol. 11750, pp. 59–75. Springer, Cham (2019). https://doi.org/10.1007/978-3-030-29662-9_4
Kim, M., Viswanathan, M., Kannan, S., Lee, I., Sokolsky, O.: Java-MaC: a run-time assurance approach for java programs. Formal Meth. Syst. Des. 24, 129–155 (2004). https://doi.org/10.1023/B:FORM.0000017719.43755.7c
Koymans, R.: Specifying real-time properties with metric temporal logic. Real-Time Syst. 2(4), 255–299 (1990). https://doi.org/10.1007/BF01995674
Maler, O., Nickovic, D.: Monitoring temporal properties of continuous signals. In: Lakhnech, Y., Yovine, S. (eds.) FORMATS/FTRTFT -2004. LNCS, vol. 3253, pp. 152–166. Springer, Heidelberg (2004). https://doi.org/10.1007/978-3-540-30206-3_12
Menghi, C., Viganò, E., Bianculli, D., Briand, L.: Trace-checking CPS properties: bridging the cyber-physical gap. In: Proceedings of the 43rd International Conference on Software Engineering (ICSE’21), 23–29 May 2021, Virtual Event, Spain, pp. 847–859. IEEE, Los Alamitos, CA, USA (2021)
Pnueli, A.: The temporal logic of programs. In: 2013 IEEE 54th Annual Symposium on Foundations of Computer Science, pp. 46–57. IEEE Computer Society, Los Alamitos, CA, USA (oct 1977). https://doi.org/10.1109/SFCS.1977.32, https://doi.ieeecomputersociety.org/10.1109/SFCS.1977.32
Acknowledgments
The research described has been carried out as part of the COSMOS Project, which has received funding from the European Union’s Horizon 2020 Research and Innovation Programme under grant agreement No. 957254.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2022 The Author(s), under exclusive license to Springer Nature Switzerland AG
About this paper
Cite this paper
Dawes, J.H., Bianculli, D. (2022). Specifying Source Code and Signal-based Behaviour of Cyber-Physical System Components. In: Tapia Tarifa, S.L., Proença, J. (eds) Formal Aspects of Component Software. FACS 2022. Lecture Notes in Computer Science, vol 13712. Springer, Cham. https://doi.org/10.1007/978-3-031-20872-0_2
Download citation
DOI: https://doi.org/10.1007/978-3-031-20872-0_2
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-031-20871-3
Online ISBN: 978-3-031-20872-0
eBook Packages: Computer ScienceComputer Science (R0)