TY - JOUR
T1 - Fine-grain analysis of common coupling and its application to a Linux case study
AU - Feitelson, Dror G.
AU - Adeshiyan, Tokunbo O.S.
AU - Balasubramanian, Daniel
AU - Etsion, Yoav
AU - Madl, Gabor
AU - Osses, Esteban P.
AU - Singh, Sameer
AU - Suwanmongkol, Karlkim
AU - Xie, Minhui
AU - Schach, Stephen R.
PY - 2007/8
Y1 - 2007/8
N2 - 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.
AB - 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.
KW - Common coupling
KW - Data structures
KW - Definition-use analysis
KW - Fine-grain analysis
KW - Kernel-based software
KW - Linux case study
UR - http://www.scopus.com/inward/record.url?scp=33846825620&partnerID=8YFLogxK
U2 - 10.1016/j.jss.2006.12.550
DO - 10.1016/j.jss.2006.12.550
M3 - ???researchoutput.researchoutputtypes.contributiontojournal.article???
AN - SCOPUS:33846825620
SN - 0164-1212
VL - 80
SP - 1239
EP - 1255
JO - Journal of Systems and Software
JF - Journal of Systems and Software
IS - 8
ER -