• DocumentCode
    1122784
  • Title

    Categorization of common coupling and its application to the maintainability of the Linux kernel

  • Author

    Yu, Liguo ; Schach, Stephen R. ; Chen, Kai ; Offutt, Jeff

  • Author_Institution
    Dept. of Comput. Sci., Tennessee Technol. Univ., Cookeville, TN, USA
  • Volume
    30
  • Issue
    10
  • fYear
    2004
  • Firstpage
    694
  • Lastpage
    706
  • Abstract
    Data coupling between modules, especially common coupling, has long been considered a source of concern in software design, but the issue is somewhat more complicated for products that are comprised of kernel modules together with optional nonkernel modules. This paper presents a refined categorization of common coupling based on definitions and uses between kernel and nonkernel modules and applies the categorization to a case study. Common coupling is usually avoided when possible because of the potential for introducing risky dependencies among software modules. The relative risk of these dependencies is strongly related to the specific definition-use relationships. In a previous paper, we presented results from a longitudinal analysis of multiple versions of the open-source operating system Linux. This paper applies the new common coupling categorization to version 2.4.20 of Linux, counting the number of instances of common coupling between each of the 26 kernel modules and all the other nonkernel modules. We also categorize each coupling in terms of the definition-use relationships. Results show that the Linux kernel contains a large number of common couplings of all types, raising a concern about the long-term maintainability of Linux.
  • Keywords
    Unix; operating system kernels; public domain software; software maintenance; software metrics; software reliability; software reusability; Linux kernel; common coupling categorization; data coupling; definition-use analysis; kernel based software; open source software; software design; software modules; Application software; Computer Society; Computer architecture; Database systems; Kernel; Linux; Open source software; Operating systems; Software design; System software; 65; Index Terms- Modularity; Linux.; common coupling; definition-use analysis; dependencies; kernel-based software; open-source software;
  • fLanguage
    English
  • Journal_Title
    Software Engineering, IEEE Transactions on
  • Publisher
    ieee
  • ISSN
    0098-5589
  • Type

    jour

  • DOI
    10.1109/TSE.2004.58
  • Filename
    1339279