ISBN-13: 9783330086494 / Angielski / Miękka / 2017 / 164 str.
ISBN-13: 9783330086494 / Angielski / Miękka / 2017 / 164 str.
In this work we attempt to infer software architecture from source code automatically. We have studied and used unsupervised learning methods for this, namely clustering. The state of the art source code (structure) analysis methods and tools were explored, and the ongoing research in software reverse architecting was studied. Graph clustering based on minimum cut trees is a recent algorithm which satisfies strong theoretical criteria and performs well in practice, in terms of both speed and accuracy. Its successful applications in the domain of Web and citation graphs were reported. To our knowledge, however, there has been no application of this algorithm to the domain of reverse architecting. Moreover, most of existing software artifact clustering research addresses legacy systems in procedural languages or C++, while we aim at modern object-oriented languages and the implied character of relations between software engineering artifacts. We consider the research direction important because this clustering method allows substantially larger tasks to be solved, which particularly means that we can cluster software engineering artifacts at class-level granularity.