Walker, Robert J.Afzal, Raheela2020-09-302020-09-302020-09-25Afzal, R. (2020). Modular Dependency Analysis in Heterogeneous Software Systems (Master's thesis, University of Calgary, Calgary, Canada). Retrieved from https://prism.ucalgary.ca.http://hdl.handle.net/1880/112654One 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.engUniversity of Calgary graduate students retain copyright ownership and moral rights for their thesis. You may use this material in any way that is permitted by the Copyright Act or through licensing that has been assigned to the document. For uses that are not allowable under copyright legislation or licensing, you are required to seek permission.software engineeringdependency analysiscross-language analysismulti-language systemsComputer ScienceModular Dependency Analysis in Heterogeneous Software Systemsmaster thesis10.11575/PRISM/38313