SpideyBC: Static Resource Analysis of Safety-Critical Java Applications
Studenteropgave: Kandidatspeciale og HD afgangsprojekt
- Mikkel Todberg
- Jeppe Lund Andersen
4. semester, Software, Kandidat (Kandidatuddannelse)
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.
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.
Sprog | Engelsk |
---|---|
Udgivelsesdato | 31 maj 2013 |
Antal sider | 91 |
Emneord | Resource Analysis, Safety-Critical Java, SCJ, Java Bytecode, Program Analysis, Memory Analysis |
---|