Abstract
Both common coupling and pointer variables can exert a deleterious effect on the quality of software. The situation is exacerbated when global variables are assigned to pointer variables, that is, when an alias to a global variable is created. When this occurs, the number of global variables increases, and it becomes considerably harder to compute quality metrics correctly. However, unless aliasing is taken into account, variables may incorrectly appear to be unreferenced (neither defined nor used), or to be used without being defined. These ideas are illustrated by means of a case study of common coupling in the Linux kernel.
Similar content being viewed by others
Notes
This and other references to the Linux source code refer to kernel version 2.4.20, in order to be able to draw comparisons with previous studies, especially (Yu et al., 2004).
In what follows, for brevity we use the informal terminology “fields of task_struct” rather than the more precise “fields of instances of type task_struct.”
More precisely, what has been created is a reference to an existing global variable. From the viewpoint of a programmer, however, the effect is as if a new global variable has been created.
References
Binkley, A.B., Schach, S.R. 1998. Validation of the coupling dependency metric as a predictor of run-time failures and maintenance measures. In: 20th Intl Conf. Softw. Eng. pp. 452–455.
Feitelson, D.G., Adeshiyan, T.O.S., Balasubramanian, D., Etsion, Y., Madl, G., Osses, E.P., Singh, S., Suwanmongkol, K., Xie, M., Schach, S.R. 2007. Fine-grain analysis of common coupling and its application to a Linux case study. J Syst. Softw., to appear.
Hollander, M., Wolfe, D.A. 1973. Nonparametric Statistical Methods. John Wiley & Sons.
Johnson, J., Boucher, K.D., Connors, K., Robinson, J. 2001. Project management: the criteria for success. Softwaremag.com, URL www. softwaremag.com/archive/2001feb/CollaborativeMgt.html.
Jones, C. 1995. Patterns of Software System Failure and Success. Intl Thomson Computer Pr (Sd).
Myers, G. 1974. Reliable Software Through Composite Design. Mason and Lipscomb Publishers.
Offutt, A.J., Harrold, M.J., Kolte, P. 1993. A software metric system for module coupling. J Syst. Softw. 20(3):295–308.
Rilling, J., Klemola, T. 2003. Identifying comprehension bottlenecks using program slicing and cognitive complexity metrics. In: 11th IEEE Intl. Workshop Program Comprehension, pp. 115–124.
Schach, S.R. 2007. Object-Oriented and Classical Software Engineering, 7th edition. McGraw-Hill.
Schach, S.R., Jin, B., Wright, D.R., Heller, G.Z., Offutt, A.J. 2002. Maintainability of the Linux kernel. IEE Proc. Softw. 149(2):18–23.
Schach, S.R., Jin, B., Wright, D.R., Heller, G.Z., Offutt, J. 2003. Quality impacts of clandestine common coupling. Softw Quality J 11:211–218.
Stevens, W.P., Myers, G.J., Constantine, L.L. 1974. Structured design. IBM Syst J 13(2):115–139.
Yourdon, E., Constantine, L.L. 1979. Structured Design: Fundamentals of a Discipline of Computer Program and Systems Design, Englewood Cliffs, NJ: Prentice Hall.
Yu, L., Schach, S.R., Chen, K., Offutt, J. 2004. Categorization of common coupling and its application to the maintainability of the Linux kernel. IEEE Trans Softw Eng 30(10):694–706.
Author information
Authors and Affiliations
Corresponding author
Additional information
D. G. Feitelson: On sabbatical leave from Hebrew University.
Rights and permissions
About this article
Cite this article
Schach, S.R., Adeshiyan, T.O.S., Balasubramanian, D. et al. Common coupling and pointer variables, with application to a Linux case study. Software Qual J 15, 99–113 (2007). https://doi.org/10.1007/s11219-006-9005-0
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11219-006-9005-0