One way to manage the complexity of software systems is to compose them from reusable components, instead of starting from scratch. Components may be implemented in different programming languages and are tied together using configuration files that entail their instantiation, initialization and interconnections. Although correctly engineering the composition and configuration of components is crucial for the overall behavior, there is little support for incorporating this information in the static verification and validation of such systems.
This thesis contributes a method to support analysis across the components of component-based systems by, firstly, building upon the Knowledge Discovery Metamodel to reverse engineer homogeneous models of the system. This homogeneous model is then used as the building block to support various activities crucial for efficient maintenance and evolution of heterogeneous systems, namely: information flow analysis to support quality assurance, visualizations needed for comprehension, and change impact analysis. As the final section of this thesis, we conduct a study to assess the state of the art in cross-lingual program analysis. We contribute a systematic literature review on the available literature, and discus several implications for future research and practice as a basis for the improvement of software evolution in multi-language systems.
The thesis is written within the field of Software Engineering and Static Program Analysis. The work has been conducted at Simula Research Laboratory with collaboration with Kongsberg Maritime.
Prior to the defense, at Storstua 10:15, Amir Reza Yazdanshenas presented his trial lecture Dependence analysis techniques in software and their accuracy.
The adjudication committee
• Prof., Lori L. Pollock, University of Delaware, USA
• Prof., Jurgen J. Vinju, Centrum Wiskunde & Informatica, Netherlands
• Prof., Arne Maus, Department of Informatics, UiO
Chair of the disputation
• Department Head, Knut Liestøl, Department of Informatics, UiO
• Senior Research Scientist, Leon Moonen, Simula Research Laboratory
• Chief Research Scientist, Prof., Magne Jørgensen, Simula Research Laboratory, UiO