Extracting software modules as communities

Research output: Chapter in Book/Report/Conference proceedingConference contributionAcademicpeer-review

1 Downloads (Pure)


Component Based Software Engineering (CBSE) is a development discipline based on the availability of software components, that are described and indexed for internal or external, present or future, reuse. Although the creation of reusable components is requested to be designed from scratch, this is often time consuming and expensive. An alternative is to extract such components from pre-existing OO software. In this work, we compare two different community detection algorithms to perform components extraction from existing software. Considering 'components' as 'communities', the aim is to evaluate how independent, yet cohesive, the components are, when extracted by community detection algorithms. Using a small sample of 3 Java systems, we show how the components can be extracted based on structural information. Furthermore, we consolidate the extracted components using semantic information, to ensure their cohesion. We use three document representation techniques to evaluate the internal cohesion of components. The results show that both algorithms perform well with each having their own strengths. Leiden extracts less cohesive, but better separated, and better clustered components that depend less on similar ones. Infomap, on the other side, creates more cohesive, slightly overlapping clusters that are more likely to depend more on other semantically similar components.

Original languageEnglish
Title of host publicationBENEVOL 2020
Subtitle of host publication Proceedings of the 19th Belgium-Netherlands Software Evolution Workshop Luxembourg, Luxembourg, December 3-4, 2020.
EditorsMike Papadakis, Maxime Cordy
Number of pages5
Publication statusAccepted/In press - 2020
Event19th Belgium-Netherlands Software Evolution Workshop, BENEVOL 2020 - Luxembourg, Luxembourg
Duration: 3-Dec-20204-Dec-2020

Publication series

NameCEUR Workshop Proceedings
ISSN (Print)1613-0073


Conference19th Belgium-Netherlands Software Evolution Workshop, BENEVOL 2020


  • Community Detection
  • Components Identification
  • Components Semantic Analysis

Cite this