Not logged in.

Contribution Details

Type Master's Thesis
Scope Discipline-based scholarship
Title Overcoming the gap between structured dependencies and change coupling
Other Titles Towards an Incremental Call Graph Generator from source code
Organization Unit
Authors
  • Gabriela Eugenia López Magaña
Supervisors
  • Harald C. Gall
  • Carol Alexandru
  • Sebastiano Panichella
Language
  • English
Institution University of Zurich
Faculty Faculty of Business, Economics and Informatics
Date 2021
Abstract Text In this thesis, we conduct an empirical analysis of the history of object-oriented complex cyber- physical systems to discover contextual metrics computed on top of software changes, based on call graph analysis and evolution of software entities (e.g., call graph changes of a given calling functions at a specific commit, release, or time frame). These metrics serve as proxies to measure how high (or low) the change coupling of subsequent software changes will be. Additionally, they should reveal if the coupled changes happened within the call graph or outside of it. Specifically, we conjecture that such metrics are valuable indicators of complex types of changes that directly impact the maintainability of the system code. For the support of our investigation and future research, we developed an automatic approach to compute the designed metrics. To validate our research questions we carry on a case study involving four open-source projects in the domains of house automation, health devices, small robots controlling, and robot real-time visual processing. The results of this study highlight how these metrics, accompanied by a user-friendly tool, provide to practitioners quantitative views of dependencies and evolution, based on call graph analysis. As future work, we plan to quantitatively and qualitatively assess the change-proneness ex- posed by our metrics in further projects and organizations from different industrial domains. As motivation for this thesis, we inquire three fundamental research questions: RQ1: To what extent is it possible to build evolutionary call-graphs based on software version man- agement information? RQ2: What is the relation between structural coupling (on a function level) and the call-graphs software evolution?RQ3: Is there a relation between conceptual (non-structural) coupling and the call-graphs software evolution?
Zusammenfassung In dieser Arbeit führen wir eine empirische Analyse der Geschichte objektorientierter komplexer cyber-physikalischer Systeme durch. Durch Analyse von Aufrufdiagrammen und durch Betrach- tung der Evolution von Software-Entitäten (z. B. Änderungen des Aufrufdiagramms einer bes- timmten aufrufenden Funktion bei einem bestimmten Commit, Release oder Zeitrahmen) hoffen wir kontextuelle Metriken zu entwickeln. Diese Metriken dienen als Proxys, um zu messen, wie hoch (oder niedrig) die Änderungskop- plung nachfolgender Softwareänderungen sein wird. Außerdem sollen sie zeigen, ob die gekop- pelten Änderungen innerhalb oder außerhalb des Aufrufdiagramms stattfanden. Insbesondere vermuten wir, dass solche Metriken für komplexe Arten von Änderungen wertvolle Hilfestellung bei der Bewertung der Wartbarkeit des Systemcodes bieten können. Um unsere Un- tersuchung und zukünftige Forschung zu unterstützen, haben wir einen automatischen Ansatz zur Berechnung der entworfenen Metriken entwickelt. Dann haben wir unsere Forschungsfragen anhand einer Fallstudie validiert, die vier Open-Source-Projekte in den Bereichen Hausautoma- tisierung, Gesundheitsgeräte, Steuerung kleiner Roboter und visuelle Echtzeitverarbeitung von Robotern umfasst. Die Ergebnisse dieser Studie zeigen, wie diese Metriken Anwendern(??) quan- titative und auf Aufrufdiagrammen basierende Sichten von Abhängigkeiten und Evolution zur Verfügung stellen können, die aufbereitet durch ein anwenderfreundliches Tool eine Bewertung der Codequalität zulassen und so zu einer Verbesserung der Effizienz führen können. Als zukün- ftige Arbeit planen wir die quantitative und qualitative Bewertung der Änderungsanfälligkeit, die durch unsere Metriken in weiteren Projekten und Organisationen aus verschiedenen indus- triellen Bereichen aufgedeckt wird. Als Motivation für diese Arbeit stellen wir uns drei grundle- gende Forschungsfragen: RQ1: Inwieweit ist es möglich, evolutionäre Aufrufdiagramme auf Basis von Software-Versionsmanagement- Informationen zu erstellen? RQ2: Welcher Zusammenhang besteht zwischen struktureller Kopplung (auf der Ebene von Funkitionen) und der Software-Evolution der Aufrufdiagramme?RQ3: Gibt es einen Zusammenhang zwischen konzeptioneller (nicht-struktureller) Kopplung und der Evolution von Aufrufdiagramm-Software?
PDF File Download
Export BibTeX