Abstract
We present a rationale for a selection of tools that assist developers of hard real-time applications to verify that programs conform to a Java real-time profile and that platform-specific resource constraints are satisfied. These tools are specialised instances of more generic static analysis and model checking frameworks. The concepts are illustrated by two case studies, and the strengths and the limitations of the tools are discussed.
Similar content being viewed by others
References
aicas—Realtime Java technology. http://www.aicas.com/ (last accessed 8 April 2011)
aJile Systems. http://www.ajile.com/ (last accessed 21 October 2011)
Alt M, Martin F (1995) Generation of efficient interprocedural analyzers with PAG. In: Proceedings of the international symposium on static analysis, (SAS’95). Springer, Berlin, pp 33–50
Amnell T, Fersman E, Mokrushin L, Pettersson P, Yi W (2004) TIMES—a tool for schedulability analysis and code generation of real-time systems. In: Larsen K, Niebert P (eds) Formal modeling and analysis of timed systems, LNCS, vol 2791. Springer, Berlin, pp 60–72
Apache Software Foundation: Byte Code Engineering Library (BCEL) (2006) http://jakarta.apache.org/bcel/ (last accessed 8 March 2011)
Atego-Home-Atego. http://www.atego.com/ (last accessed 8 April 2011)
Baron T, Jean P, Mercier G (2007) Design and implementation of a real-time embedded application. Master’s Thesis, Aalborg University
Beckert B, Hähnle R, Schmitt PH (eds) (2007) Verification of object-oriented software: the KeY approach, LNCS, vol 4334. Springer, Berlin
Bengtsson J, Larsen K, Larsson F, Pettersson P, Yi W (1996) UPPAAL a tool suite for automatic verification of real-time systems. Hybrid Systems III, pp 232–243
Bøgholm T, Hansen RR, Ravn AP, Thomsen B, Søndergaard H (2009) A predictable Java profile: rationale and implementations. In: JTRES ’09: Proceedings of the 7th international workshop on Java technologies for real-time and embedded systems. ACM, New York, pp 150–159
Bøgholm T, Kragh-Hansen H, Olsen P, Thomsen B, Larsen KG (2008) Model-based schedulability analysis of safety critical hard real-time Java programs. In: Proceedings of the 6th international workshop on Java technologies for real-time and embedded systems, JTRES ’08. ACM, New York, pp 106–114
Bouyssounouse B, Sifakis J (eds) (2005) Embedded systems design. The ARTIST Roadmap for Research and Development, LNCS, vol 3436. Springer, Berlin
Bruno EJ, Bollella G (2009) Real-time Java programming with Java RTS. Prentice Hall, Englewood Cliffs
Burns A (1999) The Ravenscar profile. Ada Lett XIX:49–52. doi:10.1145/340396.340450
Burns A, Wellings A (2009) Real-time systems and programming languages: ADA 95, real-time Java, and real-time POSIX, 4th edn. Addison-Wesley, Boston
Flanagan C, Leino KRM, Lillibridge M, Nelson G, Saxe JB, Stata R (2002) Extended static checking for java. SIGPLAN Not. 37:234–245. doi:10.1145/543552.512558
FOSS. http://www.foss.dk/ (last accessed 21 October 2011)
Gourvest H, Pattton W, Notebaert P, Berkelaar M, Eikland K, Dirks J (2010) lp_solve reference guide. http://lpsolve.sourceforge.net/ (last accessed 8 March 2011)
Huber B, Schoeberl M (2009) Comparison of implicit path enumeration and model checking based WCET analysis. In: Holsti N (ed) 9th international workshop on worst-case execution time (WCET) analysis. Schloss Dagstuhl–Leibniz-Zentrum fuer Informatik, Germany, Dagstuhl, Germany http://drops.dagstuhl.de/opus/volltexte/2009/2281
HVM (Hardware near Virtual Machine). http://www.icelab.dk/ (last accessed 21 October 2011)
IBM Web Sphere real time. http://www-01.ibm.com/software/webservers/realtime/ (last accessed 12 April 2011)
Kwon J, Wellings A, King S (2002) Ravenscar-Java: a high integrity profile for real-time Java. In: Proceedings of the 2002 joint ACM-ISCOPE conference on Java Grande. ACM, NEW York, pp 131–140
Li Y, Malik S (1995) Performance analysis of embedded software using implicit path enumeration. ACM SIGPLAN Notices 30(11): 88–98
Liu Z, Mencl V, Ravn AP, Yang L (2006) Harnessing theories for tool support. In: International symposium on Leveraging applications of formal methods, ISoLA 2006. IEEE, pp 371–382
Necula GC (1997) Proof-carrying code. In: Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on principles of programming languages, POPL ’97. ACM, New York, pp 106–119. doi:10.1145/263699.263712
The Open Group (2010) Safety Critical Java technology specification (JSR-302)-Draft
Oracle: RTSJ 1.1 Alpha 6, release notes (2009). http://www.jcp.org/en/jsr/detail?id=282
Prantl A, Knoop J, Kirner R, Kadlec A, Schordan M (2009) From trusted annotations to verified knowledge. In: Holsti N (ed) 9th international workshop on worst-case execution time (WCET) analysis. Schloss Dagstuhl–Leibniz–Zentrum fuer Informatik, Dagstuhl, Germany. http://drops.dagstuhl.de/opus/volltexte/2009/2282
Puffitsch W, Huber B, Schoeberl M (2010) Worst-case analysis of heap allocations. In: Proceedings of the 4th international conference on Leveraging applications of formal methods, verification, and validation, vol part II, ISoLA’10. Springer, Berlin, pp 464–478. http://dl.acm.org/citation.cfm?id=1939345.1939394
RTSJ.org (2010) RTSJ 1.0.2. http://www.rtsj.org/specjavadoc/book_index.html (last accessed 25 February 2011)
Schoeberl M (2003) JOP: a Java optimized processor. In: On the move to meaningful Internet systems 2003: workshop on Java technologies for real-time and embedded systems (JTRES 2003), LNCS, vol 2889. Springer, Catania, pp 346–359
Schoeberl M (2008) A Java processor architecture for embedded real-time systems. J Syst Archit 54/1–2: 265–286
Schoeberl M, Puffitsch W, Pedersen R, Huber B (2010) Worst-case execution time analysis for a Java processor. Softw Pract Exp 40(6): 507–542
Søndergaard H, Thomsen B, Ravn AP (2006) A Ravenscar-Java profile implementation. In: JTRES ’06: Proceedings of the 4th international workshop on Java technologies for real-time and embedded systems. ACM, New York, pp 38–47. doi:10.1145/1167999.1168008
Sun Java real-time system. http://java.sun.com/javase/technologies/realtime/index.jsp (last accessed 6 April 2011)
Sun Microsystems (2009) RTSJ 1.0, release notes. http://www.jcp.org/en/jsr/detail?id=1
JStik Systronix. http://www.systronix.com/jstik/compare.htm (last accessed 21 October 2011)
Ventura J, Siebert F, Walter A, Hunt JJ (2002) HIDOORS—a high integrity distributed deterministic java environment. In: IEEE international workshop on object-oriented real-timedependable systems (WORDS 2002), pp 113–118
T.J. Watson libraries for analysis (WALA). http://wala.sourceforge.net (last accessed 1 April 2011)
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Bøgholm, T., Frost, C., Hansen, R.R. et al. Towards harnessing theories through tool support for hard real-time Java programming. Innovations Syst Softw Eng 9, 17–28 (2013). https://doi.org/10.1007/s11334-012-0185-4
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11334-012-0185-4