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
Link To Document :
بازگشت