Automated Data Dependency Visualization for Embedded Systems Programmed in C

University essay from KTH/Skolan för informations- och kommunikationsteknik (ICT)

Author: Josip Pantovic; [2013]

Keywords: ;

Abstract: This thesis deals with analysis and visualization of data dependencies in embedded system software. The goal was to create a comprehensive, practical analysis tool that fits the needs at Scania well, while being as general and reusable as possible. Given the complexity of problem area, the goal was to position the outcome of this project as the basis for further development, making future extensibility an important consideration. This type of analysis has previously been performed either manually, or with help of problem-specific and system-specific tools developed by specific users for their own needs. Here, a wider user spectrum was interviewed to collect and analyze their needs in order to delimit the scope of the project and provide fundamentals of a solution that would benefit most users to the largest degree.  Application developed throughout this thesis is of a strongly layered structure, to provide most opportunity for future reuse and extension. In the first layer, XML representation of abstract syntax trees is obtained through source code analysis. This part relies on the work performed as a part of the thesis by Martin Pruscha [23], modifying and extending the tools developed for C code parsing and analysis there.  Intermediate part of the toolchain transforms this into a generalized XML representation of desired data relationships, based on detection of patterns in abstract syntax tree that correspond to code structures that signify global variables and functions within C modules, as well as their mutual dependencies, such as function calls or reading or writing to variables. While actual implementation deals only with inter-functional analysis, issues pertaining to problems necessitating intra-functional analysis of data flow (deeper pointer variable analysis, function pointers, flow of data through non-global variables) are discussed. In the final stage, based on user preferences selected via a GUI, this format is converted to GraphML format which can be graphically represented in yEd application. Finally, results and performance were analyzed to provide guidelines to future work

  AT THIS PAGE YOU CAN DOWNLOAD THE WHOLE ESSAY. (follow the link to the next page)