Abstract
Safety-Critical Java (SCJ) introduces a new programming paradigm for applications that must be certified. The SCJ specification (JSR 302) is an Open Group Standard, but it does not include verification techniques. Previous work has addressed verification for SCJ Level 1 programs. We support the much more complex SCJ Level 2 programs, which allows the programming of highly concurrent multi-processor applications with Java threads, and wait and notify mechanisms. We present a formal model of SCJ Level 2 that captures the state and behaviour of both SCJ programs and the SCJ API. This is the first formal semantics of the SCJ Level 2 paradigm and is an essential ingredient in the development of refinement-based reasoning techniques for SCJ Level 2 programs. We show how our models can be used to prove properties of the SCJ API and applications.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
TightRope can be found at www.cs.york.ac.uk/circus/hijac/tools.html.
References
Bogdanas, D., Roşu, G.: K-Java: a complete semantics of Java. SIGPLAN Not. 50(1), 445–456 (2015)
Cavalcanti, A., Sampaio, A., Woodcock, J.: Unifying classes and processes. Softw. Syst. Model. 4(3), 277–296 (2005). http://dx.doi.org/10.1007/s10270-005-0085-2
Cavalcanti, A., Wellings, A., Woodcock, J., Wei, K., Zeyda, F.: Safety-critical Java in circus. In: Proceedings of the 9th International Workshop on Java Technologies for Real-Time and Embedded Systems, JTRES 2011, pp. 20–29. ACM, New York, NY, USA (2011). http://doi.acm.org/10.1145/2043910.2043915
EUROCAE and RTCA: Software Considerations in Airborne Systems and Equipment Certification. Norm ED-12C, EUROCAE (2012)
Gibson-Robinson, T., Armstrong, P., Boulgakov, A., Roscoe, A.: Failures Divergences Refinement (FDR) Version 3 (2013). www.cs.ox.ac.uk/projects/fdr/
Haddad, G., Hussain, F., Leavens, G.T.: The design of SafeJML, a specification language for SCJ with support for WCET specification. In: Proceedings of the 8th International Workshop on Java Technologies for Real-Time and Embedded Systems, JTRES 2010, pp. 155–163. ACM, New York, NY, USA (2010). http://doi.acm.org/10.1145/1850771.1850793
Havelund, K., Pressburger, T.: Model checking JAVA programs using JAVA PathFinder. Int. J. Softw. Tools Technol. Transf. 2(4), 366–381 (2000). http://dx.doi.org/10.1007/s100090050043
Hoare, C.A.R.: Communicating sequential processes (2004). www.usingcsp.com/cspbook.pdf
IceLab. www.icelab.dk/index.html
Kalibera, T., Parizek, P., Malohlava, M., Schoeberl, M.: Exhaustive testing of safety-critical Java. In: Proceedings of the 8th International Workshop on Java Technologies for Real-Time and Embedded Systems, JTRES 2010, pp. 164–174. ACM, New York, NY, USA (2010). http://doi.acm.org/10.1145/1850771.1850794
Luckcuck, M.: hiJaC Case Studies (2016). www.cs.york.ac.uk/circus/hijac/case.html. Accessed 14 Jan 2016
Luckcuck, M.: Safety-Critical Java Level 2 Framework Model (2016). www.cs.york.ac.uk/circus/publications/techreports/reports/SCJLevel2Framework.pdf
Luckcuck, M., Wellings, A., Cavalcanti, A.: Safety-Critical Java: Level 2 in Practice (submitted)
Morgan, C.: Programming from Specifications. Prentice-Hall, Inc., USA (1990)
Schoeberl, M.: A Java processor architecture for embedded real-time systems. J. Syst. Architect. 54(1–2), 265–286 (2008). www.sciencedirect.com/science/article/pii/S1383762107000963
Sherif, A., Cavalcanti, A., Jifeng, H., Sampaio, A.: A process algebraic framework for specification and validation of real-time systems. Formal Aspects Comput. 22(2), 153–191 (2009)
Søndergaard, H., Korsholm, S.E., Ravn, A.P.: Safety-critical Java for low-end embedded platforms. In: Proceedings of the 10th International Workshop on Java Technologies for Real-Time and Embedded Systems, JTRES 2012, pp. 44–53. ACM, New York, NY, USA (2012)
Spivey, J.M.: The Z Notation: A Reference Manual. International Series in Computer Science. Prentice-Hall, Inc. Upper Saddle River (1992)
Tang, D., Plsek, A., Vitek, J.: Static checking of safety critical Java annotations. In: Proceedings of the 8th International Workshop on Java Technologies for Real-Time and Embedded Systems, pp. 148–154. ACM, Prague, Czech Republic (2010)
The Open Group: Safety-critical Java technology specification V0.100. Technical report, The Open Group, 27 December 2014. http://jcp.org/en/jsr/detail?id=302
The Real-Time for Java Expert Group: Real-Time Specification for Java Language Specification (2005). www.timesys.com/java/
Thomsen, B., Luckow, K.S., Leth, L., Bøgholm, T.: From safety critical java programs to timed process models. In: Burrows, M., et al. (eds.) Degano Festschrift. LNCS, vol. 9465, pp. 319–338. Springer, Heidelberg (2015). doi:10.1007/978-3-319-25527-9_21
Wellings, A., Luckcuck, M., Cavalcanti, A.: Safety-critical Java level 2: motivations, example applications and issues. In: Proceedings of the 11th International Workshop on Java Technologies for Real-time and Embedded Systems, JTRES 2013, pp. 48–57. ACM, New York, NY, USA (2013). http://doi.acm.org/10.1145/2512989.2512991
Woodcock, J., Cavalcanti, A.: The semantics of \(Circus\). In: Bert, D., Bowen, J.P., C. Henson, M., Robinson, K. (eds.) B 2002 and ZB 2002. LNCS, vol. 2272, pp. 184–203. Springer, Heidelberg (2002)
Zeyda, F., Lalkhumsanga, L., Cavalcanti, A., Wellings, A.: Circus models for safety-critical Java programs. Comput. J. 57, 1046–1091 (2013). http://comjnl.oxfordjournals.org/content/early/2013/07/02/comjnl.bxt060.abstract
Acknowledgements
This research reported in this paper is funded by the UK EPSRC under grant EP/H017461/1. No new primary data was produced during this work. One of the authors is a member of the SCJ Expert Group; we would like to thank the other members of the Expert Group. We would also like to thank Frank Zeyda, Alan Burns, and Thomas Gibson-Robinson for their very helpful suggestions.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2016 Springer International Publishing Switzerland
About this paper
Cite this paper
Luckcuck, M., Cavalcanti, A., Wellings, A. (2016). A Formal Model of the Safety-Critical Java Level 2 Paradigm. In: Ábrahám, E., Huisman, M. (eds) Integrated Formal Methods. IFM 2016. Lecture Notes in Computer Science(), vol 9681. Springer, Cham. https://doi.org/10.1007/978-3-319-33693-0_15
Download citation
DOI: https://doi.org/10.1007/978-3-319-33693-0_15
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-33692-3
Online ISBN: 978-3-319-33693-0
eBook Packages: Computer ScienceComputer Science (R0)