AAU Student Projects - visit Aalborg University's student projects portal
A master thesis from Aalborg University

SpideyBC: Static Resource Analysis of Safety-Critical Java Applications

Author(s)

Term

4. term

Education

Publication year

2013

Submitted on

2013-05-31

Pages

91 pages

Abstract

This report documents the design and development of a software tool for statically analysing memory usage in Safety-Critical Java (SCJ) applications. The project acts as a natural extension of our previous work, "A study of Safety-Critical Java and its Specification Applied", in which we investigated the SCJ specification draft from September 2012 and developed a level 1 compliant use-case library of the Cubesat Space Protocol. From this work, we highlighted the difficulty of being able to properly specify the required storage parameters - an aspect that especially proved difficult for SCJ newcomers and to embedded system development in general. The developed tool, SpideyBC, draws on well established concepts from static program analysis including adaptions of acknowledged WCET techniques such as the Implicit Path Enumeration Technique (IPET). With SpideyBC, the developer can analyse one or more Java methods such as the handleAsyncEvent methods in order to find the maximum dynamic memory consumption and worst-case JVM stack sizes. The results are presented in a report that in a convenient and visual way shows information regarding worst-case execution paths, call graphs, control flow graphs, stacks etc. Furthermore, by using this tool, developers can analyse all methods that allocates in a private memory area, the mission memory area or the immortal memory area in order to get an indication of the worst possible storage size for the memory region in question - thus making the developer able to specify the respective storage parameters of an SCJ application.

This report documents the design and development of a software tool for statically analysing memory usage in Safety-Critical Java (SCJ) applications. The project acts as a natural extension of our previous work, "A study of Safety-Critical Java and its Specification Applied", in which we investigated the SCJ specification draft from September 2012 and developed a level 1 compliant use-case library of the Cubesat Space Protocol. From this work, we highlighted the difficulty of being able to properly specify the required storage parameters - an aspect that especially proved difficult for SCJ newcomers and to embedded system development in general. The developed tool, SpideyBC, draws on well established concepts from static program analysis including adaptions of acknowledged WCET techniques such as the Implicit Path Enumeration Technique (IPET). With SpideyBC, the developer can analyse one or more Java methods such as the handleAsyncEvent methods in order to find the maximum dynamic memory consumption and worst-case JVM stack sizes. The results are presented in a report that in a convenient and visual way shows information regarding worst-case execution paths, call graphs, control flow graphs, stacks etc. Furthermore, by using this tool, developers can analyse all methods that allocates in a private memory area, the mission memory area or the immortal memory area in order to get an indication of the worst possible storage size for the memory region in question - thus making the developer able to specify the respective storage parameters of an SCJ application.

Keywords

Documents


Colophon: This page is part of the AAU Student Projects portal, which is run by Aalborg University. Here, you can find and download publicly available bachelor's theses and master's projects from across the university dating from 2008 onwards. Student projects from before 2008 are available in printed form at Aalborg University Library.

If you have any questions about AAU Student Projects or the research registration, dissemination and analysis at Aalborg University, please feel free to contact the VBN team. You can also find more information in the AAU Student Projects FAQs.