Skip to main content
Log in

Towards harnessing theories through tool support for hard real-time Java programming

  • SI: Theories & Tool Support for Software
  • Published:
Innovations in Systems and Software Engineering Aims and scope Submit manuscript

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.

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

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. aicas—Realtime Java technology. http://www.aicas.com/ (last accessed 8 April 2011)

  2. aJile Systems. http://www.ajile.com/ (last accessed 21 October 2011)

  3. 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

  4. 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

    Chapter  Google Scholar 

  5. Apache Software Foundation: Byte Code Engineering Library (BCEL) (2006) http://jakarta.apache.org/bcel/ (last accessed 8 March 2011)

  6. Atego-Home-Atego. http://www.atego.com/ (last accessed 8 April 2011)

  7. Baron T, Jean P, Mercier G (2007) Design and implementation of a real-time embedded application. Master’s Thesis, Aalborg University

  8. Beckert B, Hähnle R, Schmitt PH (eds) (2007) Verification of object-oriented software: the KeY approach, LNCS, vol 4334. Springer, Berlin

  9. 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

  10. 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

  11. 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

  12. Bouyssounouse B, Sifakis J (eds) (2005) Embedded systems design. The ARTIST Roadmap for Research and Development, LNCS, vol 3436. Springer, Berlin

  13. Bruno EJ, Bollella G (2009) Real-time Java programming with Java RTS. Prentice Hall, Englewood Cliffs

    Google Scholar 

  14. Burns A (1999) The Ravenscar profile. Ada Lett XIX:49–52. doi:10.1145/340396.340450

  15. 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

  16. 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

    Google Scholar 

  17. FOSS. http://www.foss.dk/ (last accessed 21 October 2011)

  18. 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)

  19. 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

  20. HVM (Hardware near Virtual Machine). http://www.icelab.dk/ (last accessed 21 October 2011)

  21. IBM Web Sphere real time. http://www-01.ibm.com/software/webservers/realtime/ (last accessed 12 April 2011)

  22. 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

  23. Li Y, Malik S (1995) Performance analysis of embedded software using implicit path enumeration. ACM SIGPLAN Notices 30(11): 88–98

    Article  Google Scholar 

  24. 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

  25. 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

  26. The Open Group (2010) Safety Critical Java technology specification (JSR-302)-Draft

  27. Oracle: RTSJ 1.1 Alpha 6, release notes (2009). http://www.jcp.org/en/jsr/detail?id=282

  28. 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

  29. 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

  30. RTSJ.org (2010) RTSJ 1.0.2. http://www.rtsj.org/specjavadoc/book_index.html (last accessed 25 February 2011)

  31. 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

  32. Schoeberl M (2008) A Java processor architecture for embedded real-time systems. J Syst Archit 54/1–2: 265–286

    Article  Google Scholar 

  33. 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

    Article  Google Scholar 

  34. 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

  35. Sun Java real-time system. http://java.sun.com/javase/technologies/realtime/index.jsp (last accessed 6 April 2011)

  36. Sun Microsystems (2009) RTSJ 1.0, release notes. http://www.jcp.org/en/jsr/detail?id=1

  37. JStik Systronix. http://www.systronix.com/jstik/compare.htm (last accessed 21 October 2011)

  38. 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

  39. T.J. Watson libraries for analysis (WALA). http://wala.sourceforge.net (last accessed 1 April 2011)

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to René Rydhof Hansen.

Rights and permissions

Reprints 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

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11334-012-0185-4

Keywords

Navigation