Analyzing Error-Prone System Structure
IEEE Transactions on Software Engineering
A software metric system for module coupling
Journal of Systems and Software - Special issue on the Oregon Metric Workshop
A Validation of Object-Oriented Design Metrics as Quality Indicators
IEEE Transactions on Software Engineering
An intelligent tool for re-engineering software modularity
ICSE '91 Proceedings of the 13th international conference on Software engineering
Proceedings of the 20th international conference on Software engineering
Linux as a case study: its extracted software architecture
Proceedings of the 21st international conference on Software engineering
Coupling and control flow measures in practice
Journal of Systems and Software
On the criteria to be used in decomposing systems into modules
Communications of the ACM
The structure of the “THE”-multiprogramming system
Communications of the ACM
An empirical study of operating systems errors
SOSP '01 Proceedings of the eighteenth ACM symposium on Operating systems principles
Software Development: Fashioning the Baroque
Software Development: Fashioning the Baroque
The Cathedral and the Bazaar
The Multics kernel design project
SOSP '77 Proceedings of the sixth ACM symposium on Operating systems principles
Using Coupling Measurement for Impact Analysis in Object-Oriented Systems
ICSM '99 Proceedings of the IEEE International Conference on Software Maintenance
Architectural Repair of Open Source Software
IWPC '00 Proceedings of the 8th International Workshop on Program Comprehension
Identifying Comprehension Bottlenecks Using Program Slicing and Cognitive Complexity Metrics
IWPC '03 Proceedings of the 11th IEEE International Workshop on Program Comprehension
Effects of Pointers on Data Dependences
IWPC '01 Proceedings of the 9th International Workshop on Program Comprehension
Quality Impacts of Clandestine Common Coupling
Software Quality Control
An Empirical Study of Open-Source and Closed-Source Software Products
IEEE Transactions on Software Engineering
Characterization of the Impact of Faulty Drivers on the Robustness of the Linux Kernel
DSN '04 Proceedings of the 2004 International Conference on Dependable Systems and Networks
Categorization of Common Coupling and Its Application to the Maintainability of the Linux Kernel
IEEE Transactions on Software Engineering
Understanding The Linux Kernel
Understanding The Linux Kernel
Journal of Systems and Software
Object-Oriented and Classical Software Engineering
Object-Oriented and Classical Software Engineering
Common coupling and pointer variables, with application to a Linux case study
Software Quality Control
Hi-index | 0.00 |
Common coupling (sharing global variables across modules) is widely accepted as a measure of software quality and maintainability; a low level of common coupling is necessary (but not sufficient) to ensure maintainability. But when the global variables in question are large multi-field data structures, one must decide whether to consider such data structures as single units, or examine each of their fields individually. We explore this issue by re-analyzing a case study based on the Linux operating system. We determine the common coupling at the level of granularity of the component fields of large, complex data structures, rather than at the level of the data structures themselves, as in previous work. We claim that this is the appropriate level of analysis based on how such data structures are used in practice, and also that such a study is required due to concern that coarse-grained analysis leads to false coupling. We find that, for this case study, the granularity does not have a decisive effect on the results. In particular, our results for coupling based on individual fields are similar in spirit to the results reported previously (by others) based on using complete data structures. In both cases, the coupling indicates that the system kernel is vulnerable to modifications in peripheral modules of the system.