Efficient Extension of a Software Analysis Framework to Additional Languages
dc.contributor.advisor | Walker, Robert James | |
dc.contributor.author | Soltanpour, Shahryar | |
dc.contributor.committeemember | Aycock, John | |
dc.contributor.committeemember | Oehlberg, Lora | |
dc.date | 2023-11 | |
dc.date.accessioned | 2023-07-21T16:19:38Z | |
dc.date.available | 2023-07-21T16:19:38Z | |
dc.date.issued | 2023-07 | |
dc.description.abstract | In the current era of software development, multi-language codebases are common, and change propagation in these codebases is challenging. The existing change propagation tool ModCP is a solution that can assist software developers with propagating changes across several languages, but only one at a time. However, ModCP has some architectural problems in that make supporting new languages hard to develop and maintain for a long time. In addition, supporting change propagation across code snippets consisting of a programming language embedded inside a different programming language would be a useful feature for ModCP. To achieve this, we must detect the embedded code snippets in a code being analyzed by ModCP. In this thesis, we develop a new, more efficient architecture for ModCP, involving a single abstract model that each language extends for its usage, resulting in complete isolation between language results. We compare our approach with a baseline version that uses the same, concrete model for all languages and adds new models when necessary. Our approach reduces code complexity and development time and makes code more compatible with best practices of development compared to the baseline. Moreover, we design a system for ModCP to guess and validate the programming language used in code snippets, based on the initial detection of keywords, as input to execute change propagation for multi-language codes embedded inside each other. We compare our keyword detection approach with existing deep learning and brute force approaches and show that our method is the best choice if accuracy, performance, and scalability are needed simultaneously. | |
dc.identifier.citation | Soltanpour, S. (2023). Efficient extension of a software analysis framework to additional languages (Master's thesis, University of Calgary, Calgary, Canada). Retrieved from https://prism.ucalgary.ca. | |
dc.identifier.uri | https://hdl.handle.net/1880/116776 | |
dc.identifier.uri | https://dx.doi.org/10.11575/PRISM/41618 | |
dc.language.iso | en | |
dc.publisher.faculty | Graduate Studies | |
dc.publisher.institution | University of Calgary | |
dc.rights | University 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. | |
dc.subject | Software Engineering | |
dc.subject | Computer Science | |
dc.subject | Software Analysis | |
dc.subject | Embedded Language Identification | |
dc.subject.classification | Education--Technology | |
dc.title | Efficient Extension of a Software Analysis Framework to Additional Languages | |
dc.type | master thesis | |
thesis.degree.discipline | Computer Science | |
thesis.degree.grantor | University of Calgary | |
thesis.degree.name | Master of Science (MSc) | |
ucalgary.thesis.accesssetbystudent | I do not require a thesis withhold – my thesis will have open access and can be viewed and downloaded publicly as soon as possible. |