Linear Software Models is a systematic effort to formulate a theory of software systems neatly based upon standard mathematics, viz. linear algebra. It has appeared in a series of papers dealing with various aspects of the theory. But one was lacking a single source for its key ideas. This paper concisely distills foundational ideas and results obtained within Linear Software Models. First and foremost we claim that one must have a deep comprehension of the theory of software - the aim of this effort - before embarking into theory and practice of software engineering. The Modularity Matrix is the central algebraic structure of the software theory: it is the source of quantitative modularity criteria; it displays high cohesion, i.e. high sparsity; a Standard Modularity Matrix is defined - square and block-diagonal - enabling designs comparison for any software systems in a Software Design Laboratory. It triggers formulation of novel open questions waiting for resolution.
['Iaakov Exman']
Linear Software Models: Key Ideas