Advertisement

Conceptual Software Design: Modularity Matrix as Source of Conceptual Integrity

  • Iaakov ExmanEmail author
Conference paper
Part of the Communications in Computer and Information Science book series (CCIS, volume 914)

Abstract

Conceptual Software Design is of utmost importance for software development due to its focus on the Conceptual Integrity of software systems. However, in order to turn it into actual standard practice in software design, a precise mathematical representation of Conceptual Design is necessary. This paper claims that Linear Software Models – by means of their basic algebraic structures, the Modularity Matrix or its corresponding Laplacian Matrix – guarantee Conceptual Integrity of the software system they represent. This is argued by first offering a concise Plausibility Path with a few formal steps towards Conceptual Integrity in terms of the Modularity Matrix. These steps clarify the role of the Modularity Matrix, both as a facilitator and as a formal source of the software modules’ Conceptual Integrity. Then, the paper characterizes Conceptual Integrity as an intensive property of the software system. Finally, application in practice is demonstrated by providing explicit formulas to compute Conceptual Integrity principles, viz. propriety and orthogonality.

Keywords

Conceptual Software Design Conceptual integrity Linear Software Models Modularity Matrix Laplacian matrix Modularity Lattice Abstract Domain Conceptualization Propriety Orthogonality 

References

  1. 1.
    Baldwin, C.Y., Clark, K.B.: Design Rules, Volume I. The Power of Modularity. MIT Press, Cambridge (2000)CrossRefGoogle Scholar
  2. 2.
    Beynon, W.M., Boyatt, R.C., Chan, Z.E., Intuition in software development revisited. In: Proceedings of the 20th Annual Psychology of Programming Interest Group Conference, UK. Lancaster University (2008)Google Scholar
  3. 3.
    Brooks, F.P.: The Mythical Man-Month – Essays in Software Engineering, Anniversary edn. Addison-Wesley, Boston (1995)Google Scholar
  4. 4.
    Brooks, F.P.: The Design of Design: Essays from a Computer Scientist. Addison-Wesley, Boston (2010)Google Scholar
  5. 5.
    Buzaglo, M.: The Logic of Concept Expansion. Cambridge University Press, Cambridge (2002)zbMATHGoogle Scholar
  6. 6.
    Clements, P., Kazman, R., Klein, M.: Evaluating Software Architecture: Methods and Case Studies. Addison-Wesley, Boston (2001)Google Scholar
  7. 7.
    De Rosso, S.P., Jackson, D.: What’s wrong with git? A conceptual design analysis. In: Proceedings of Onward! Conference, pp. 37–51. ACM (2013). http://dx.doi.org/10.1145/2509578.2509584
  8. 8.
    De Rosso, S.P., Jackson, D.: Purposes, concepts, misfits, and a redesign of git. In: Proceedings of OOPSLA 2016, Conference, pp. 292–310. ACM (2016). http://dx.doi.org/10.1145/2983990.2984018
  9. 9.
    Exman, I.: Linear software models. In: Proceedings of GTSE 1st SEMAT Workshop on a General Theory of Software Engineering. KTH Royal Institute of Technology, Stockholm, Sweden, (2012). http://semat.org/wp-content/uploads/2012/10/GTSE_2012_Proceedings.pdf
  10. 10.
    Exman, I.: Linear software models, video presentation of paper [9] (2012). http://www.youtube.com/watch?v=EJfzArH8-ls
  11. 11.
    Exman, I.: Linear software models: standard modularity highlights residual coupling. Int. J. Softw. Eng. Knowl. Eng. 24, 183–210 (2014).  https://doi.org/10.1142/S0218194014500089CrossRefGoogle Scholar
  12. 12.
    Exman, I., Speicher, D.: Linear software models: equivalence of modularity matrix to its modularity lattice. In: Proceedings of 10th ICSOFT International Conference on Software Technology, ScitePress, Portugal, pp. 109–116 (2015).  https://doi.org/10.5220/0005557701090116
  13. 13.
    Exman, I.: Linear software models: decoupled modules from modularity matrix eigenvectors. Int. J. Softw. Eng. Knowl. Eng. 25(8), 1395–1426 (2015).  https://doi.org/10.1142/S0218194015500308CrossRefGoogle Scholar
  14. 14.
    Exman, I., Sakhnini, R.: Linear software models: modularity analysis by the Laplacian matrix. In: Proceedings of ICSOFT 2016 11th International Joint Conference on Software Technologies, vol. 2, pp. 100–108 (2016).  https://doi.org/10.5220/0005985601000108
  15. 15.
    Exman, I.: The modularity matrix as a source of software conceptual integrity. In: Proc. SKY’2016 7th International Workshop on Software Knowledge, ScitePress, Portugal, pp. 27–35 (2016).  https://doi.org/10.5220/0006098300270035
  16. 16.
    Exman, I., Katz, P.: Conceptual software design: algebraic axioms for conceptual integrity. In: Proc. SEKE 2017, 29th International Conference on Software Engineering and Knowledge Engineering, pp. 155–160 (2017). http://dx.doi.org/10.18293/SEKE2017-148
  17. 17.
    Exman, I., Sakhnini, R.: Linear software models: bipartite isomorphism between Laplacian eigenvectors and modularity matrix eigenvectors. Int. J. Softw. Eng. Knowl. Eng. 28(7), 897–935 (2018).  https://doi.org/10.1142/S0218194018400107CrossRefGoogle Scholar
  18. 18.
    Gabriel, R.P.: Designed as designer. In: Essay Track, ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages and Applications, Montreal, Canada (2007). http://dreamsongs.com/DesignedAsDesigner.html
  19. 19.
    Ganter, B., Wille, R.: Formal Concept Analysis: Mathematical Foundations. Springer, Berlin (1998).  https://doi.org/10.1007/978-3-642-59830-2CrossRefzbMATHGoogle Scholar
  20. 20.
    Ganter, B., Stumme, G., Wille, R.: Formal Concept Analysis - Foundations and Applications. Springer, Berlin (2005).  https://doi.org/10.1007/978-3-540-31881-1CrossRefzbMATHGoogle Scholar
  21. 21.
    Jackson, D.: Conceptual design of software: a research agenda. CSAIL Technical report, MIT-CSAIL-TR-2013–020 (2013). http://dspace.mit.edu/bitstream/handle/1721.1/79826/MIT-CSAIL-TR-2013-020.pdf?sequence=2
  22. 22.
    Jackson, D.: Towards a theory of conceptual design for software. In: Proceedings Onward! 2015 ACM International Symposium on New Ideas, New Paradigms and Reflections on Programming & Software, pp. 282–296 (2015).  https://doi.org/10.1145/2814228.2814248
  23. 23.
    Kazman, R.: Tool support for architecture analysis and design. In: ISAW 96 Proceedings of 2nd International Software Architecture Workshop, pp. 94–97. ACM, New York (1996).  https://doi.org/10.1145/243327.243618
  24. 24.
    Kazman, R., Carriere, S.J.: Playing detective: reconstructing software architecture from available evidence. Technical report CMU/SEI-97-TR-010, Software Engineering Institute, Carnegie Mellon University, Pittsburgh (1997)Google Scholar
  25. 25.
    Krone, M., Snelting, G.: On the inference of configuration structures from source code. In: Proceedings of ICSE-16 16th International Conference on Software Engineering (1994).  https://doi.org/10.1109/icse.1994.296765
  26. 26.
    Lakatos, I.: Proofs and Refutations: The Logic of Mathematical Discovery. Cambridge University Press, Cambridge (1976)CrossRefGoogle Scholar
  27. 27.
    Liskov, B.: Keynote address - data abstraction and hierarchy. ACM SIGPLAN Not. 23(5), 17–34 (1988).  https://doi.org/10.1145/62139.62141CrossRefGoogle Scholar
  28. 28.
    Rovetto, R.: The shape of shapes: an ontological exploration. In: Proceedings of SHAPES 1.0 1st Interdisciplinary Workshop on Shapes, Karlsruhe (2011)Google Scholar
  29. 29.
    Weisstein, E.W.: “Normalized vector” from MathWorld–a wolfram web resource (2018). http://mathworld.wolfram.com/NormalizedVector.html

Copyright information

© Springer Nature Switzerland AG 2019

Authors and Affiliations

  1. 1.The Jerusalem College of Engineering – AzrieliJerusalemIsrael

Personalised recommendations