Modular Dependency Analysis in Heterogeneous Software Systems

Date
2020-09-25
Journal Title
Journal ISSN
Volume Title
Publisher
Abstract
One way to develop and manage software systems is to build them using reusable components instead of developing them from the ground up. Over the past two decades, there has been growth in the use of multiple programming languages to develop a software system; we refer to such systems as heterogeneous software systems. Several technologies have been introduced to make the bridging of languages in these systems easier. Software analysis, e.g., change impact analysis and change propagation, helps in retaining consistency within the software system. While there exist many single-language approaches to perform change propagation for homogeneous systems, there is a lack of analogous research on heterogeneous systems. Inter-language dependencies, known as cross-language links, are the root cause of issues for a complete analysis of such systems. This thesis contributes a method to support change propagation by building upon an existing dependency analysis model to design a standard meta-model for multiple languages called a unified meta-model. We use abstract syntax representation models to act as modules for each language to be plugged into the meta-model for every new language introduced. We present a novel approach for cross-language analysis that is generalizable to new languages and does not require hard coding of bridging semantics. We adapt an existing framework to accommodate dependency analysis, which is performed using static source code analysis, as well as program slicing for heterogeneous systems. We identify the cross-language links between sets of languages based on an initial study of technologies that allow bridging between languages. The single-language analysis is used as the baseline for the evaluation while our approach is a cross-language analysis. The study revealed that cross-links are identified with a static source code analysis. We evaluated our approach for effectiveness, scalability, and accuracy on 15 homogeneous systems, 5 for each language among C#, Python, and TSQL. Additionally, to evaluate the cross-link identification process, we studied 6 heterogeneous software systems and compared our results against the actual execution path to evaluate the accuracy of cross-links. Our results show that our approach is able to correctly identify cross-language links with an F-score of over 75% for the set of evaluated projects.
Description
Keywords
software engineering, dependency analysis, cross-language analysis, multi-language systems
Citation
Afzal, R. (2020). Modular Dependency Analysis in Heterogeneous Software Systems (Master's thesis, University of Calgary, Calgary, Canada). Retrieved from https://prism.ucalgary.ca.