Nothing Special   »   [go: up one dir, main page]

skip to main content
research-article

Categorization of Common Coupling and Its Application to the Maintainability of the Linux Kernel

Published: 01 October 2004 Publication History

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.

References

[1]
P. Brinch Hansen, “The Nucleus of a Multiprogramming System,” Comm. ACM, vol. 4, no. 4, pp. 238-241, 1970.
[2]
T. Härden, “New Approaches to Object Processing in Engineering Databases,” Proc. Int'l Workshop Object-Oriented Database Systems, p. 217, Sept. 1986.
[3]
“Xbox System Software Overview,” www.xbox365.com/stories/xdkcomplete.shtml, 2003.
[4]
L.C. Briand J. Daly V. Porter and J. Wüst, “A Comprehensive Empirical Validation of Design Measures for Object-Oriented Systems,” Proc. Fifth Int'l Software Metrics Symp., pp. 246-257, Nov. 1998.
[5]
D.A. Troy and S.H. Zweben, “Measuring the Quality of Structured Designs,” J. Systems and Software, vol. 2, pp. 112-120, 1981.
[6]
S.R. Schach B. Jin D.R. Wright G.Z. Heller and J. Offutt, “Quality Impacts of Clandestine Common Coupling,” Software Quality J., vol. 11, pp. 211-218, 2003.
[7]
S.R. Schach B. Jin D.R. Wright G.Z. Heller and A.J. Offutt, “Maintainability of the Linux Kernel,” IEE Proc.-Software, vol. 149, no. 2, pp. 18-23, 2002.
[8]
S.R. Schach and J. Offutt, “On the Nonmaintainability of Open-Source Software,” Proc. Second Workshop Open Source Software Eng., pp. 47-49, May 2002.
[9]
J. Offutt, “Open-Source Software: More or Less Secure and Reliable?” Proc. Int'l Symp. Software Reliability Eng. (ISSRE '02), Nov. 2002.
[10]
D. Cooke J. Urban and S. Hamilton, “Unix and Beyond: An Interview with Ken Thompson,” Computer, vol. 32, no. 5, pp. 58-64, 1999.
[11]
W.P. Stevens G.J. Myers and L.L. Constantine, “Structured Design,” IBM Systems J., vol. 13, no. 2, pp. 115-139, 1974.
[12]
M. Page-Jones, The Practical Guide to Structured Systems Design. New York: Yourdon Press, 1980.
[13]
J. Offutt M.J. Harrold and P. Kolte, “A Software Metric System for Module Coupling,” J. Systems and Software, vol. 20, no. 3, pp.nbsp295-308, 1993.
[14]
S.R. Schach, Object-Oriented and Classical Software Engineering, sixth ed. McGraw-Hill, 2005.
[15]
P. Clements R. Kazman and M. Klein, Evaluating Software Architectures: Methods and Case Studies. Addison-Wesley, 2002.
[16]
S. Wang S.R. Schach and G.Z. Heller, “A Case Study in Repeated Maintenance,” J. Software Maintenance and Evolution: Research and Practice, vol. 13,no. 2 pp. 127-141, 2001.
[17]
F.E. Allen and J. Cocke, “A Program Data Flow Analysis Procedure,” Comm. ACM, vol. 19, no. 3, pp. 137-146, 1976.

Cited By

View all
  • (2022)Exploring non-functional coupling in systems of systemsProceedings of the 10th IEEE/ACM International Workshop on Software Engineering for Systems-of-Systems and Software Ecosystems10.1145/3528229.3529383(21-28)Online publication date: 16-May-2022
  • (2014)An approach to testing commercial embedded systemsJournal of Systems and Software10.5555/2747015.274718588:C(207-230)Online publication date: 1-Feb-2014
  • (2012)The Social Order of Open Source Software ProductionInternational Journal of Open Source Software and Processes10.4018/ijossp.20121001014:4(1-15)Online publication date: 1-Oct-2012
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image IEEE Transactions on Software Engineering
IEEE Transactions on Software Engineering  Volume 30, Issue 10
October 2004
74 pages

Publisher

IEEE Press

Publication History

Published: 01 October 2004

Author Tags

  1. 65
  2. Index Terms- Modularity
  3. Linux.
  4. common coupling
  5. definition-use analysis
  6. dependencies
  7. kernel-based software
  8. open-source software

Qualifiers

  • Research-article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 30 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2022)Exploring non-functional coupling in systems of systemsProceedings of the 10th IEEE/ACM International Workshop on Software Engineering for Systems-of-Systems and Software Ecosystems10.1145/3528229.3529383(21-28)Online publication date: 16-May-2022
  • (2014)An approach to testing commercial embedded systemsJournal of Systems and Software10.5555/2747015.274718588:C(207-230)Online publication date: 1-Feb-2014
  • (2012)The Social Order of Open Source Software ProductionInternational Journal of Open Source Software and Processes10.4018/ijossp.20121001014:4(1-15)Online publication date: 1-Oct-2012
  • (2011)Message filters for hardening the Linux kernelSoftware—Practice & Experience10.1002/spe.99741:1(51-62)Online publication date: 1-Jan-2011
  • (2010)Use of a multidimensional approach to study the evolution of software complexityInnovations in Systems and Software Engineering10.1007/s11334-010-0133-06:4(299-310)Online publication date: 1-Dec-2010
  • (2009)Should we try to measure software quality attributes directly?Software Quality Journal10.1007/s11219-008-9071-617:2(203-213)Online publication date: 1-Jun-2009
  • (2009)Multiple-parameter coupling metrics for layered component-based softwareSoftware Quality Journal10.1007/s11219-008-9052-917:1(5-24)Online publication date: 1-Mar-2009
  • (2009)Automated software license analysisAutomated Software Engineering10.1007/s10515-009-0054-z16:3-4(455-490)Online publication date: 1-Dec-2009
  • (2008)A tale of four kernelsProceedings of the 30th international conference on Software engineering10.1145/1368088.1368140(381-390)Online publication date: 15-May-2008
  • (2008)Exploring motivations for contributing to open source initiativesComputers in Human Behavior10.1016/j.chb.2007.09.00724:5(2055-2073)Online publication date: 1-Sep-2008
  • Show More Cited By

View Options

View options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media