Keeping one-step ahead of Architectural Smells: A Machine Learning application

Oct 2, 2019 2:00 PM
Invited Talk
Queen Mary University of London
Mile End Rd, Bethnal Green,, London, E1 4NS


Software systems naturally evolve, and this evolution often brings design problems that cause system degradation. Architectural smells are typical symptoms of such problems, and several of these smells are related to undesired dependencies among modules. The early detection of these smells is important for developers, so they can plan ahead for maintenance or refactoring efforts, thus preventing system degradation. Social Network Analysis (SNA) refers to a strategy for investigating social structures using network and graph theories. The link prediction problem adapts SNA techniques for studying to what extent the evolution of a network can be modelled by using features intrinsic to the network. Since the module structure can be regarded as a network, i.e., a dependency graph, we can leverage on network features to analyse the dynamics of such structure. In this talk, we will explore how link prediction and machine learning techniques could help anticipate architectural smells in future system versions. We will start with the basics of predicting future dependencies, up to the application of time forecasting and machine learning models for predicting the appearance of new architectural smells. Particularly, we will focus on two well-known dependency-related smells, cyclic dependencies and hub-like dependency. Finally, we will discuss some open issues and potential extensions.