Your browser does not support JavaScript!

Post-graduate theses

Current Record: 87 of 824

Back to Results Previous page
Next page
Add to Basket
[Add to Basket]
Identifier 000441658
Title Software architecture mining from source code
Alternative Title Εξαγωγή της αρχιτεκτονικής λογισμικού από τον πηγαίο κώδικα
Author Σαββάκη, Κρυσταλλία Χ.
Thesis advisor Σαββίδης, Αντώνιος
Reviewer Τραχανιάς, Παναγιώτης
Πρατικάκης, Πολύβιος
Abstract Software architecture plays a primary role in system specifications and design, acting as a bridge between requirements and implementation. As software systems evolve over time, conformance to the initial architecture may be broken, while unexpected or undesirable component dependencies may arise due to the way the source code evolves. Additionally, understanding the underlying architecture of large applications is required for effective maintenance and continuous improvement. However, the problem is that the architecture is not somehow reflected in the source code since it is not a programming language construct. As a consequence, methods and tools to extract architecture-related information from source code that can aid software developers in understanding system structure are required. Reverse engineering is the process of analyzing a system in order to identify and represent the relationships between its components. Architecture mining is a subset of reverse engineering in which meaningful high-level abstractions that represent system components are detected. In this context, reverse engineering methods may be used to compute concrete architectures and compare it to the original conceptual architecture. In this thesis, we propose an architecture mining tool with the aim of reconstructing the software architecture only from C++ source code. In order to accomplish this, we focus on class relationships, since they represent key elements at the source level. Specifically, our system parses C++ projects and statically analyzes the source code to extract classrelated information. Then, it generates and visualizes a dependency graph that represents all the relationships between classes. On top of this graph, we apply clustering methods to identify high-level architectural entities. We use clustering algorithms like Louvain, Infomap and Layered Label Propagation, but also allow users to choose ad-hoc clustering via namespaces and folders. Finally, we have carried out a few case studies to assess and validate the utility of our architecture mining approach.
Language English
Subject Reverse engineering
Αντίστροφη μηχανική
Issue date 2021-07-30
Collection   School/Department--School of Sciences and Engineering--Department of Computer Science--Post-graduate theses
  Type of Work--Post-graduate theses
Permanent Link https://elocus.lib.uoc.gr//dlib/e/d/2/metadata-dlib-1628232817-260062-26395.tkl Bookmark and Share
Views 580

Digital Documents
No preview available

Download document
View document
Views : 17