Software Conceptual Integrity: Deconstruction, Then Reconstruction

11/10/2018
by   Iaakov Exman, et al.
0

Conceptual Integrity is the most important consideration for software system design, as stated by Frederick Brooks. Brooks also suggested that Conceptual Integrity can be attained by means of design principles, such as Propriety, and Orthogonality. However, Brooks' principles have not been formalized, posing obstacles to their application in practice, and to a deeper comprehension of Conceptual Integrity. This paper has three goals: first, to achieve deeper comprehension of Conceptual Integrity by deconstructing it into two phases, viz. Conceptualization and Modularization, iteratively applied during software system design; second, to show that the algebraic Linear Software Models already provide the hitherto lacking formalization of Brooks' design principles, which surprisingly belong mainly to the Modularization phase; third, to reconstruct Conceptualization and Modularization, preserving the desirable tension between: a- phases separation, each with its own specific formal manipulation techniques; b- precise transition between these phases, consisting of explicit mutual relationships. The tension stems from the Modularity Matrix linking two very different kinds of entities - system concepts and abstract mathematical constructs - as seldom linked before. The paper motivates the two software design phases, illustrating Conceptualization with examples, and characterizing Modularization by its more mature mathematical theory.

READ FULL TEXT

Please sign up or login with your details

Forgot password? Click here to reset