Analyzing and Visualizing Information Flow in Heterogeneous Component-Based Software Systems. Yazdanshenas, A., R. & Moonen, L. Submitted to Information and Software Technology, Elsevier, 2015.
abstract   bibtex   
Context: Component-based software engineering is aimed at managing the complexity of large-scale software development by composing systems from reusable parts. In order to understand or validate the behavior of a system, one needs to acquire understanding of the components involved in combination with understanding how these components are instantiated, initialized, and interconnected in that system. In practice, the heterogeneous nature of source and configuration artifacts often hinders this task, and there is little to no tool support to help software engineers with such a system-wide analysis. Objective: This paper contributes a method to analyze and visualize information flow in a component-based system at various levels of abstraction, and from two complementary perspectives. These visualisations should support the comprehension needs of both safety domain experts and software engineers, in the context of respectively certification and development of safety-critical systems at our industrial partner. Method: We build system-wide dependence graphs and use program slicing to detect end-to-end information flows though and across system's components. We define a hierarchy of five abstractions over these information flows that reduce visual distraction and reduce cognitive overload, while satisfying the prospective users' information needs. The views are interconnected in a way that supports both systematic, as well as opportunistic navigation scenarios. Results: We discuss the design and implementation of our approach and the resulting views in a prototype tool called FlowTracker. We present two qualitative evaluation studies on the effectiveness and usability of these views for software development and certification. We discuss a number of improvements, such as more selective information presentations, that resulted from the evaluation. Conclusions: The evaluation showed that the proposed approach and views are useful and address information needs with respect to impact analysis and dependence analysis of component-based systems, that could earlier only be met by manual inspection of the source code. We discuss lessons learned and directions for future work.
@article{
 title = {Analyzing and Visualizing Information Flow in Heterogeneous Component-Based Software Systems},
 type = {article},
 year = {2015},
 publisher = {Elsevier},
 city = {.},
 id = {4e7b2965-dac9-305c-b967-992659f6e640},
 created = {2015-07-07T13:02:34.000Z},
 file_attached = {false},
 profile_id = {6670f279-692b-3eed-bc36-b89af19ad6e0},
 last_modified = {2015-08-13T12:17:21.000Z},
 read = {false},
 starred = {false},
 authored = {true},
 confirmed = {true},
 hidden = {false},
 citation_key = {yazdanshenas:2015:analyzing},
 abstract = {Context: Component-based software engineering is aimed at managing the complexity of large-scale software development by composing systems from reusable parts. In order to understand or validate the behavior of a system, one needs to acquire understanding of the components involved in combination with understanding how these components are instantiated, initialized, and interconnected in that system. In practice, the heterogeneous nature of source and configuration artifacts often hinders this task, and there is little to no tool support to help software engineers with such a system-wide analysis. Objective: This paper contributes a method to analyze and visualize information flow in a component-based system at various levels of abstraction, and from two complementary perspectives. These visualisations should support the comprehension needs of both safety domain experts and software engineers, in the context of respectively certification and development of safety-critical systems at our industrial partner. Method: We build system-wide dependence graphs and use program slicing to detect end-to-end information flows though and across system's components. We define a hierarchy of five abstractions over these information flows that reduce visual distraction and reduce cognitive overload, while satisfying the prospective users' information needs. The views are interconnected in a way that supports both systematic, as well as opportunistic navigation scenarios. Results: We discuss the design and implementation of our approach and the resulting views in a prototype tool called FlowTracker. We present two qualitative evaluation studies on the effectiveness and usability of these views for software development and certification. We discuss a number of improvements, such as more selective information presentations, that resulted from the evaluation. Conclusions: The evaluation showed that the proposed approach and views are useful and address information needs with respect to impact analysis and dependence analysis of component-based systems, that could earlier only be met by manual inspection of the source code. We discuss lessons learned and directions for future work.},
 bibtype = {article},
 author = {Yazdanshenas, Amir Reza and Moonen, Leon},
 journal = {Submitted to Information and Software Technology}
}

Downloads: 0