Linear Software Models: An Occam’s Razor Set of Algebraic Connectors Integrates Modules into a Whole Software System

Author(s):  
Iaakov Exman ◽  
Harel Wallach

Well-designed software systems, with providers only modules, have been rigorously obtained by algebraic procedures from the software Laplacian Matrices or their respective Modularity Matrices. However, a complete view of the whole software system should display, besides provider relationships, also consumer relationships. Consumers may have two different roles in a system: either internal or external to modules. Composite modules, including both providers and internal consumers, are obtained from the joint providers and consumers Laplacian matrix, by the same spectral method which obtained providers only modules. The composite modules are integrated into a whole Software System by algebraic connectors. These algebraic connectors are a minimal Occam’s razor set of consumers external to composite modules, revealed through iterative splitting of the Laplacian matrix by Fiedler eigenvectors. The composite modules, of the respective standard Modularity Matrix for the whole software system, also obey linear independence of their constituent vectors, and display block-diagonality. The spectral method leading to composite modules and their algebraic connectors is illustrated by case studies. The essential novelty of this work resides in the minimal Occam’s razor set of algebraic connectors — another facet of Brooks’ Propriety principle leading to Conceptual Integrity of the whole Software System — within Linear Software Models, the unified algebraic theory of software modularity.

Author(s):  
Iaakov Exman ◽  
Rawi Sakhnini

We have recently shown that one can obtain the numbers and sizes of modules of a software system from the eigenvectors of its modularity matrix symmetrized and weighted by an affinity matrix. However such a weighting still demands a suitable definition of an affinity. This paper offers an alternative way to obtain the same results by means of the eigenvectors of a Laplacian matrix, directly obtained from the modularity matrix without the need of weighting. These two formalizations stand in a mutual isomorphism. We call it bipartite isomorphism since it is most straightforwardly shown by deriving the Laplacian from the modularity matrix and vice versa through the intermediate bipartite graph between two separate sets: the structors’ and the functionals’ sets. This isomorphism is also demonstrated through the equation defining the Laplacian in terms of the modularity matrix, or by the direct mapping of the respective matrices’ eigenvectors. Both matrices and the bipartite graph reflect one central idea: modules are connected components with high cohesion. The Laplacian matrix technique, of which the Fiedler vector is of central importance, is illustrated by case studies. An important claim of this paper is that, independently of the modularity matrix- and Laplacian matrix-specific properties, behind these two alternative matrices there is just one unified algebraic theory of software composition — the Linear Software Models — here concerning the application of the matrices’ eigenvectors to software modularity.


2015 ◽  
Vol 24 (1) ◽  
pp. 85-97 ◽  
Author(s):  
Muchou Wang ◽  
Weifeng Pan ◽  
Bo Jiang ◽  
Chenxiang Yuan

AbstractThe original design of a software system is rarely prepared for every new requirement. Software systems should be updated frequently, which is usually accompanied by the decline in software modularity and quality. Although many approaches have been proposed to improve the quality of software, a majority of them are guided by metrics defined on the local properties of software. In this article, we propose to use a global metric borrowed from the network science to detect the moving method refactoring. First, our approach uses a bipartite network to represent classes, features (i.e., methods and fields), and their dependencies. Second, a new metric is introduced to quantify the modularity of a software system as a whole. Finally, a crossover-only evolutionary algorithm that uses the metric as its fitness function is introduced to optimize the class structure of a software system and detect the methods that should be moved. Empirical results on the benchmark Java projects show that our approach can find meaningful methods that should be moved with a high stability. The advantages of our approach are illustrated in comparison with some other approaches, specifically one refactoring approach, namely search-based refactoring approach (SBRA), and two community detection algorithms, namely a graph theoretic clustering algorithm (MCODE) and a fast algorithm for community detection (FG). Our approach provides a new way to do refactoring from the perspective of software structure.


1980 ◽  
Vol 25 (10) ◽  
pp. 841-842
Author(s):  
RONALD W. MARX

Author(s):  
Ashish Sharma ◽  
Nilesh Kumar ◽  
Nikulaa Parachuri ◽  
Sonali Singh ◽  
Francesco Bandello ◽  
...  

2009 ◽  
Vol 28 (8) ◽  
pp. 914-917
Author(s):  
Tadeusz J. Ulrych ◽  
Allan D. Woodbury

Sign in / Sign up

Export Citation Format

Share Document