Analyzing Software Systems through Social Network Analysis

(Technical Briefings)

Abstract

This technical briefing explains how the theory of Social Network Analysis (SNA) is applied to analyze the structure of complex software systems. Three different approaches based upon SNA will be presented. Two approaches aim to recover high-level architecture of software systems and the third approach defines new metrics to analyze software systems. They use centrality measures, ego network analysis, and relationships among program elements respectively. Further, this technical briefing explains the role of SNA to manage technical debt resulting from early decisions in the system design phase. This technical briefing is mainly targeted to practitioners and researchers interested in managing the increasing complexity of evolving software systems. It will provide them with newer ideas to combine SNA and Machine Learning (ML) methods in novel ways to devise effective techniques and tools.

  • Social Network Analysis: Brief Overview: It provides a generic framework to analyze the structure of complex systems. It includes a rich set of measures, models, and methods to extract the patterns of interactions among systems’ elements. A complex system is expressed as a network of nodes and edges. Few examples of complex systems that have been analyzed with the help of SNA include communities on social media platforms and neural systems besides this techniques from SNA have been also applied to analyze the influence of pandemic diseases, to understand biological systems, and to investigate protein interactions. In these applications of SNA, a complex system is represented as a graph i.e. nodes and edges, and then they are analyzed through measures such as centrality, scale-free, small world, and community structure from the theory of SNA.
  • Applying SNA for Architecture Analysis and Recovery: The value of explicit software architecture has been increasingly recognized for software maintenance and evolution activities. Architecture descriptions in terms of high-level abstractions such as patterns, styles and views have been found as a valuable tool to communicate system functionalities effectively. Despite the numerous benefits, a legacy or open-source software system often lacks such architecture descriptions. Moreover, when such architecture descriptions are available, they are not aligned with the latest version.
    A lightweight architecture recovery approach that approximately represents a system decomposition may be more convenient than sophisticated architecture recovery techniques in such situations. Such a light approach shall quickly extract relevant information necessary to build a system decomposition so that it can provide much-needed assistance to software architects dealing with re-engineering or modernization of existing systems, thus increasing their productivity. This talk will present two such light-weight architecture recovery approaches that adopt SNA to extract layered decomposition from an implemented system
    1. Architecture Recovery through Centrality measures: The first method uses centrality measures from the theory SNA to analyze software structure formed by dependency relationship. Three observations drove the rationale behind using centrality measures for architecture extraction: (i) Most of these measures provide a highly intuitive and computationally simple way to analyze interactions when a graph represents the structure of a system. (ii) These measures quantify the structure of a system at multiple levels, i.e., at a particular node level, concerning other nodes in the graph, and at a group of nodes or communities. (iii) These measures support the development of data-driven approaches to architecture recovery. Hence such approaches can learn the rules of architecture recovery from given data.
    2. Architecture Recovery through Ego Network Analysis: Ego network analysis is usually performed for social systems to understand system dynamics by figuring out interaction with a central node. We adopted it for Software Systems. The following reasons drive the choice of ego network analysis for software systems. (i) Ego network can represent a hierarchy in a software system centred around the most significant or core program elements in an application. (ii) It intuitively represents the structure of a general system, including software systems. (iii) It will be challenging to represent the architecture recovery problem in terms of ego network analysis.
    3. Measures to analyze Software Structure: In the third application of SNA for software systems, we define the measures to evaluate layered architecture. These metrics measure the logical separation of the layer. These measures address the following issues: (i) Monitoring the status of the software, (ii) Keeping a check on the design considerations of the software. (iii) Check the existence of the layered structure, and analyze its nature i.e. either open or closed.
    The talk will also describe other applications of the theory of SNA to design and evaluate software systems. Further, we will put the architecture recovery approaches adopting SNA in the context of existing architecture recovery approaches.

Speaker's Profile: Arvind W Kiwelekar

Arvind W Kiwelekar is working as a Professor in Computer Engineering at Dr Babasaheb Ambedkar Technological University-Lonere, India. He has about thirty years of teaching and research experience. His research areas of interest include diverse topics such as Artificial Intelligence, Blockchain Technology, ICT for Sustainable Development (ICT4D), Learning Analytics, Machine Learning, Ontological Modelling, and Software Architecture. He has published twelve book chapters, Seven journal papers and 22 research papers in peer-reviewed leading international conferences. He received research fellowships from IBM, the Indian Academy of Sciences and MHRD. He graduated with a PhD (2012) from the Indian Institute of Technology Bombay, ME from VJTI (1999) and B E (1991) from Marathwada University.

Speaker's Profile: Sanjay Thakare

Sanjay Thakare is currently pursuing this PhD program at Dr Babasaheb Ambedkar Technological University-Lonere, India his areas of interest include Social Network Analysis and Software Architecture.

Earlier Presentations

The Architecture recovery approach based on centrality measures and machine learning techniques has been presented in the First International Workshop on Software Architecture and Machine Learning (SAML 2021) co-located with the 15th European Conference on Software Architecture.

Duration
  • 90 mins