Architectural model synthesis from source code using Simulink and Hierarchical Function Call-Graphs

Modern software systems developed in the automotive industry are very complex. In order to analyze, understand, and document these software systems, architectural models of the systems at different abstraction levels are used. However, these models are typically ambiguous and inconsistent with the i...

Full description

Bibliographic Details
Main Author: Olifer, Maksim
Format: Others
Language:English
Published: Uppsala universitet, Institutionen för informationsteknologi 2016
Online Access:http://urn.kb.se/resolve?urn=urn:nbn:se:uu:diva-296883
id ndltd-UPSALLA1-oai-DiVA.org-uu-296883
record_format oai_dc
spelling ndltd-UPSALLA1-oai-DiVA.org-uu-2968832016-06-21T05:34:01ZArchitectural model synthesis from source code using Simulink and Hierarchical Function Call-GraphsengOlifer, MaksimUppsala universitet, Institutionen för informationsteknologi2016Modern software systems developed in the automotive industry are very complex. In order to analyze, understand, and document these software systems, architectural models of the systems at different abstraction levels are used. However, these models are typically ambiguous and inconsistent with the implementation. This thesis presents an approach to construct an unambiguous model of C code in an automatic manner, with a focus on architecture consistency by employing the Simulink environment extended by an external custom GUI. Such approach also facilitates compliance with the functional safety standard ISO 26262 that requires models of software systems (including legacy code), where the models capture both its behavior and structure. More specifically, we develop a method for hierarchical modelling in Simulink and describe mapping to the actual C code architecture expressed by distinct abstraction levels (e.g. layers, modules, functions). Although Simulink is capable of handling modular structures, there is a lack of proper visual representation support, which at the moment can reflect only inter-functional dependencies in terms of caller-to-callee relations, omitting any hierarchical view of abstraction layers. An attempt to extend graphical features of Simulink had several drawbacks and performance issues. As an enhanced solution, external GUI was developed for enabling a "complete" representation of the code architecture. For that purpose, reverse engineering approaches were employed with a help of LLVM compiler infrastructure and poolalloc project. A further analysis of LLVM IR allowed extracting a function call graph, including indirect function calls with a satisfactory precision (which can be possibly improved). For a better performance, the resulting graph was placed in a database, which allowed to dynamically select particular parts and relations of the graph. The developed tool-chain was evaluated on a two production software system called COO7 and GMS. This thesis was done at Scania CV AB in Södertälje, Sweden. Student thesisinfo:eu-repo/semantics/bachelorThesistexthttp://urn.kb.se/resolve?urn=urn:nbn:se:uu:diva-296883IT ; 16023application/pdfinfo:eu-repo/semantics/openAccess
collection NDLTD
language English
format Others
sources NDLTD
description Modern software systems developed in the automotive industry are very complex. In order to analyze, understand, and document these software systems, architectural models of the systems at different abstraction levels are used. However, these models are typically ambiguous and inconsistent with the implementation. This thesis presents an approach to construct an unambiguous model of C code in an automatic manner, with a focus on architecture consistency by employing the Simulink environment extended by an external custom GUI. Such approach also facilitates compliance with the functional safety standard ISO 26262 that requires models of software systems (including legacy code), where the models capture both its behavior and structure. More specifically, we develop a method for hierarchical modelling in Simulink and describe mapping to the actual C code architecture expressed by distinct abstraction levels (e.g. layers, modules, functions). Although Simulink is capable of handling modular structures, there is a lack of proper visual representation support, which at the moment can reflect only inter-functional dependencies in terms of caller-to-callee relations, omitting any hierarchical view of abstraction layers. An attempt to extend graphical features of Simulink had several drawbacks and performance issues. As an enhanced solution, external GUI was developed for enabling a "complete" representation of the code architecture. For that purpose, reverse engineering approaches were employed with a help of LLVM compiler infrastructure and poolalloc project. A further analysis of LLVM IR allowed extracting a function call graph, including indirect function calls with a satisfactory precision (which can be possibly improved). For a better performance, the resulting graph was placed in a database, which allowed to dynamically select particular parts and relations of the graph. The developed tool-chain was evaluated on a two production software system called COO7 and GMS. This thesis was done at Scania CV AB in Södertälje, Sweden.
author Olifer, Maksim
spellingShingle Olifer, Maksim
Architectural model synthesis from source code using Simulink and Hierarchical Function Call-Graphs
author_facet Olifer, Maksim
author_sort Olifer, Maksim
title Architectural model synthesis from source code using Simulink and Hierarchical Function Call-Graphs
title_short Architectural model synthesis from source code using Simulink and Hierarchical Function Call-Graphs
title_full Architectural model synthesis from source code using Simulink and Hierarchical Function Call-Graphs
title_fullStr Architectural model synthesis from source code using Simulink and Hierarchical Function Call-Graphs
title_full_unstemmed Architectural model synthesis from source code using Simulink and Hierarchical Function Call-Graphs
title_sort architectural model synthesis from source code using simulink and hierarchical function call-graphs
publisher Uppsala universitet, Institutionen för informationsteknologi
publishDate 2016
url http://urn.kb.se/resolve?urn=urn:nbn:se:uu:diva-296883
work_keys_str_mv AT olifermaksim architecturalmodelsynthesisfromsourcecodeusingsimulinkandhierarchicalfunctioncallgraphs
_version_ 1718314276985241600