Abstract
Modularity is essential to obtain well-composed software systems from COTS (Commercial Off-The-Shelf) components. But COTS components do not necessarily match the modules of the designed software system. A clear-cut procedure is needed for the choice of the necessary and sufficient components providing the required functionalities. Linear Software Models are rigorous theoretical standards of modularity. These models are proposed as formal criteria for well-composed software systems. The paper lays down theoretical foundations – upon linear independence and reducible matrix concepts – providing precise meanings to familiar software concepts, such as coupling and the single responsibility theorem. The theory uses a Modularity Matrix – linking linearly independent software structors to composable software functionals. The theory has been tested by applying it to small canonical systems and to large software systems found in the literature.
Keywords
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Baldwin, C.Y., Clark, K.B.: Design Rules. The Power of Modularity, vol. I. MIT Press, Cambridge (2000)
Borndorfer, R., Ferreira, C.E., Martin, A.: Decomposing Matrices into Blocks. SIAM J. Optimization 9(1), 236–269 (1998)
Cai, Y., Sullivan, K.J.: Modularity Analysis of Logical Design Models. In: Proc. 21st IEEE/ACM Int. Conf. On Automated Software Eng., ASE 2006, pp. 91–102. Tokyo, Japan (2006)
Clemins, P.J., Ewalt, H.E., Johnson, M.T.: Time-Aligned SVD Analysis for Speaker Identification. In: Proc. ICASSP02 IEEE Int. Conf. Acoustics Speech and Signal Proc., vol. 4, pp. IV-4160 (2002)
Finholt, T.A., Horn, D., Thome, S.: NEESgrid Requirements Traceability Matrix, Technical Report NEESgrid-2003-13, School of Information, University of Michigan, USA (2004)
Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Boston (1995)
Hwang, H., Oh, Y.H.: Another similarity coefficient for the p-median model in group technology. Int. J. Manufacturing Tech. & Management 5, 38–245 (2003)
Kang, B.-K., Bieman, J.M.: A Quantitative Framework for Software Restructuring. J. Softw. Maint. Research & Practice 11(4), 245–284 (1999)
Kaufman, C., Perlman, R., Speciner, M.: Network Security – Private Communication in a Public World. Prentice-Hall, Englewood Cliffs (1997)
Kusiak, A., Huang, C.-C.: Design of Modular Digital Circuits for Testability. IEEE Trans. Components, Packaging and Manufacturing Technology – Part C 20(1), 48–57 (1997)
Martin, R.C.: Agile Software Development: Principles, Patterns and Practices. Prentice Hall, Upper Saddle River (2003)
Mitchell, B.S., Mancoridis, S.: On the Automatic Modularization of Software Systems Using the Bunch Tool. IEEE Trans. Software Engineering 32(3), 193–208 (2006)
Parnas, D.L.: On the Criteria to be Used in Decomposing Systems into Modules. Comm. ACM 15, 1053–1058 (1972)
Riehle, D.: Describing and Composing Patterns Using Role Diagrams. In: Mutzel, K.-U., Frei., H.-P. (eds.) Proc. Ubilab Conf., Universitatsverlag Konstanz, pp. 137–152 (1996)
Rodrigues, N.F., Barbosa, L.S.: Component Identification through program slicing. Electronic Notes in Theoretical Computer Science 160, 291–304 (2006); Proc. Int. Workshop Formal Aspects of Component Software (FACS 2005) (2005)
Rowland, T., Weisstein, E.W.: Block Diagonal Matrix. from MathWorld (2006), http://mathworld.wolfram.com/BlockDiagonalMatrix.html
Sethi, K., Cai, Y., Wong, S., Garcia, A., Sant’Anna, C.: From Retrospect to Prospect: Assessing Modularity and Stability from Software Architecture. In: Proc. European Conf. on Software Architecture, WICSA/ECSA, pp. 269–272 (2009)
Sosa, M.E., Agrawal, A., Eppinger, S.D., Rowles, C.M.: A Network Approach to Define Modularity of Product Components. In: Proc. IDETC/CIE ASME International Design Engineering Technical Conf. & Computers and Information in Engineering Conf., Long Beach, CA, USA, pp. 1–12 (2005)
Sosa, M.E., Eppinger, S.D., Rowles, C.M.: A Network Approach to Define Modularity of Components in Complex Products. ASME Journal of Mechanical Design 129, 1118 (2007)
Steward, D.: The Design Structure System: A Method for Managing the Design of Complex Systems. IEEE Trans. Eng. Manag., EM-29(3), 71–74 (1981)
Ulrich, K.T.: The Role of Product Architecture in the Manufacturing Firm. Res. Policy 24, 419–440 (1995)
Wong, S., Cai, Y., Kim, M., Dalton, M.: Detecting Software Modularity Viola-tions. In: Proc. 33rd Int. Conf. Software Engineering, pp. 411–420 (2011)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2013 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Exman, I. (2013). Linear Software Models Are Theoretical Standards of Modularity. In: Cordeiro, J., Hammoudi, S., van Sinderen, M. (eds) Software and Data Technologies. ICSOFT 2012. Communications in Computer and Information Science, vol 411. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-45404-2_14
Download citation
DOI: https://doi.org/10.1007/978-3-642-45404-2_14
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-45403-5
Online ISBN: 978-3-642-45404-2
eBook Packages: Computer ScienceComputer Science (R0)