Skip to main content

Advertisement

Common coupling as a measure of reuse effort in kernel-based software with case studies on the creation of MkLinux and Darwin

Abstract

An obstacle to software reuse is the large number of major modifications that frequently have to be made as a consequence of dependencies within the reused software components. In this paper, common coupling is categorized and used as a measure of the dependencies between software components. We compared common coupling in three operating systems, Linux, FreeBSD, and Mach, and related it to the reuse effort of these systems. The measure is evaluated by studying the creation of two operating systems, MkLinux which is based on the reuse of Linux and Mach, and Darwin which is based on the reuse of FreeBSD and Mach. We conclude that the way that common coupling is implemented in Linux kernel induces large dependencies between software components, which required more effort in order to be reused to produce MkLinux, while the common coupling implemented in the Mach and FreeBSD kernels induces few dependencies between software components, which required less effort in order to be reused to produce Darwin.

Reference

  1. [1]

    D. E. Perry, H. P. Siy, H. P. and L. G. Votta. Parallel changes in large-scale software development: an observational case study. ACM Transactions on Software Engineering and Methodology, 10(3): 308–337, 2001.

  2. [2]

    K. J. Sullivan and J. C. Knight. Experience assessing an architectural approach to large-scale systematic reuse. In Proceedings of the Eighteenth International Conference on Software Engineering (ICSE-18), Berlin, pp. 220–229, 1996.

  3. [3]

    W. B. Frakes and S. Isoda. Success factors of systematic reuse. IEEE Software, 11(5): 14–19, 1994.

  4. [4]

    P. B. Hansen. The nucleus of a multiprogramming system. Communications of the ACM, 4(4): 238–241, 1970.

  5. [5]

    T. Härden. New approaches to object processing in engineering databases. In Proceedings of International Workshop on Object-Oriented Database Systems, pp. 217, 1986.

  6. [6]

    W. P. Stevens, G. J. Myers and L. L. Constantine. Structured design. IBM Systems Journals, 13(2): 115–139, 1974.

  7. [7]

    S. R. Schach, B. Jin, D. R. Wright, G. Z. Heller and J. Offutt. Quality impacts of clandestine common coupling. Software Quality Journal, 11(3): 211–218, 2003.

  8. [8]

    L. Yu, S. R. Schach, K. Chen and J. Offutt. Categorization of common coupling and its application to the maintainability of the Linux kernel. IEEE Transactions on Software Engineering, 30(10): 694–706, 2004

  9. [9]

    J. Offutt, M. J. Harrold and P. Kolte. A software metric system for module coupling. Journal of System and Software, 20(3): 295–308, 1993.

  10. [10]

    MkLinux.org. http://www.mklinux.org/, 2007

  11. [11]

    MkLinux News. http://www.mklinux.org/info/index.html, 2007

  12. [12]

    Apple Computer. Mac OS X hits stores this weekend. http://www.apple.com/pr/library/2001/mar/21osxs tore.html, 2001

  13. [13]

    J. West. How open is open enough? Modeling proprietary and open source platform strategies. Research Policy, 32(7): 1259–1285, 2003.

  14. [14]

    Kernelthread. What is Mac OS X. http://www.kernelthread.com/mac/osx/arch_xnu.ht ml, 2005.

  15. [15]

    L. Yu, S. R. Schach, K. Chen, G. Z. Heller and J. Offutt. Maintainability of the kernels of opensource operating systems: A comparison of Linux to FreeBSD, NetBSD, and OpenBSD. Journal of Systems and Software, 79(6): 807–815, 2006

  16. [16]

    G. Caldiera and V. R. Basili. Identifying and qualifying reusable software components. IEEE Computer, 24(2): 61–70, 1991.

Download references

Author information

Additional information

The initial version of this paper appers in the 19th International Conference on Software Engineering and Knowledge Engineering.

Rights and permissions

Reprints and Permissions

About this article

Cite this article

Yu, L. Common coupling as a measure of reuse effort in kernel-based software with case studies on the creation of MkLinux and Darwin. J Braz Comp Soc 14, 45–55 (2008). https://doi.org/10.1007/BF03192551

Download citation

Keywords

  • Reuse
  • common coupling
  • kernel-based software
  • MkLinux
  • Darwin