Many academic disciplines have general theories, which apply across the discipline and underlie much of its research. Examples include the Big Bang theory (cosmology), Maxwell's equations (electrodynamics), the theories of the cell and evolution (biology), the theory of supply and demand (economics), and the general theory of crime (criminology). Software engineering, in contrast, has no widely-accepted general theory. Consequently, the SEMAT Initiative organized a workshop to encourage development of general theory in software engineering. Workshop participants reached broad consensus that software engineering would benefit from better theoretical foundations, which require diverse theoretical approaches, consensus on a primary dependent variable and better instrumentation and descriptive research.
A multiparty protocol for distributed quantum clock synchronization has been claimed to provide universal limits on the clock accuracy, viz., that accuracy monotonically decreases with the number n of party members. But this is only true for synchronization when one limits oneself to W states. This work shows that the usage of Z (Symmetric Dicke) states, a generalization of W states, results in improved accuracy, having a maximum when n/2 of its members have their qubits with a |1 eigenstate.
Modularity — the decoupling of software units — is essential for composition of real software systems from ready-made components. But for a long time one lacked a formal theory of modularity. Recently we have been developing Linear Software Models as rigorous theoretical modularity standards based upon plain Linear Algebra. By these models, decoupling means just linear independence, within a modularity matrix. This paper applies Linear Software Models to software systems, obtaining three consequences: (1) besides decoupling, various informal notions of software engineering, such as software modules, cohesion, and single responsibility, have for the first time a well-defined formal counterpart; (2) canonical building blocks like Software Design Patterns strictly obey the Linear Software Models; (3) larger software systems obey bordered Linear Models, allowing precise location and visualization of residual coupling. The latter consequences are demonstrated by case studies of software systems from the literature. The applicability of the Linear Software Models is quantitatively shown to scale well with system size, for the given case studies.
Modularity Matrices for software systems can be put in block-diagonal form, where blocks are higher-level software modules, in a hierarchy of modules. But the exact module boundaries are often blurred by the uncertainty whether given matrix elements are module members or outliers. This paper provides an algorithm to determine module sizes. As a consequence the algorithm also decides which matrix elements are outliers. Matrix elements are weighted by their Affinity — an exponential function of the off-diagonality. The module size is given by the positive consecutive elements of the eigenvectors corresponding to the largest eigenvalues of this weighted symmetrized Modularity Matrix. By means of case studies, we illustrate the idea that outliers not only indicate the need for system redesign, but explicitly point out to problematic design spots. This work extends the applicability of linear algebra spectral methods to Modularity Matrices, at higher software abstraction levels than previously shown.
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.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.
hi@scite.ai
10624 S. Eastern Ave., Ste. A-614
Henderson, NV 89052, USA
Copyright © 2024 scite LLC. All rights reserved.
Made with 💙 for researchers
Part of the Research Solutions Family.