Abstract
In this research, we investigate the role of common coupling in evolving software systems. It can be argued that most software developers understand that the use of global data has many harmful side-effects, and thus should be avoided. We are therefore interested in the answer to the following question: if global data does exist within a software project, how does global data usage evolve over a software project’s lifetime? Perhaps the constant refactoring and perfective maintenance eliminates global data usage, or conversely, perhaps the constant addition of features and rapid development introduce an increasing reliance on global data? We are also interested in identifying if global data usage patterns are useful as a software metric that is indicative of an interesting or significant event in the software’s lifetime.
The focus of this research is twofold: first to develop an effective and automatic technique for studying global data usage over the lifetime of large software systems and secondly, to leverage this technique in a case-study of global data usage for several large and evolving software systems in an effort to reach answers to these questions.
This research was supported in part by a Natural Sciences and Engineering Research Council of Canada Strategic grant.
Chapter PDF
Similar content being viewed by others
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
References
Vim, F.A.Q.: Available at: http://vimdoc.sourceforge.net/vimfaq.html
Briand, L.C., Daly, J., Porter, V., Wüst, J.: A comprehensive empirical validation of design measures for object-oriented systems. In: METRICS 1998: Proceedings of the 5th International Symposium on Software Metrics, Washington, DC, USA, p. 246. IEEE Computer Society, Los Alamitos (1998)
2Brooks Jr., F.P.: No silver bullet - essence and accidents of software engineering. IEEE Computer 20(4), 10–19 (1987)
Fischer, M., Oberleitner, J., Ratzinger, J., Gall, H.: Mininig evolution data of a product family. In: MSR 2005: Proceedings of the International Workshop on Mining Software Repositories (May 2005)
Guckes, S.: Vim history - release dates of user versions and developer versions. Available at: http://www.vmunix.com/vim/hist.html
Hunt, A., Thomas, D.: The pragmatic programmer: from journeyman to master. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA (1999)
Kernighan, B.W., Ritchie, D.M.: The C Programming Language. Prentice-Hall, Englewood Cliffs, New Jersey (1978)
Magid, J.: Historic linux archive. Available at: http://www.ibiblio.org/pub/historic-linux/ftp-archives/sunsite.unc.edu/Sep-29-1996/apps/editors/vi/
McConnell, S.: Code complete: a practical handbook of software construction, 2nd edn. Microsoft Press, Redmond, WA, USA (2004)
Nakakoji, K., Yamamoto, Y., Nishinaka, Y., Kishida, K., Ye, Y.: Evolution patterns of open-source software systems and communities. In: IWPSE 2002: Proceedings of the International Workshop on Principles of Software Evolution, pp. 76–85. ACM Press, New York (2002)
Offutt, A.J., Harrold, M.J., Kolte, P.: A software metric system for module coupling. J. Syst. Softw. 20(3), 295–308 (1993)
Parnas, D.L.: Software aging. In: ICSE 1994: Proceedings of the 16th International Conference on Software Engineering, pp. 279–287. IEEE Computer Society Press, Los Alamitos (1994)
Pinzger, M., Fischer, M., Gall, H.: Towards an integrated view on architecture and its evolution. Electronic Notes in Theoretical Computer Science 127(3), 183–196 (2005)
PostgreSQL Global Development Group. PostgreSQL 8.0.0 Documentation (2005)
Presser, L., White, J.R.: Linkers and loaders. ACM Comput. Surv. 4(3), 149–167 (1972)
Schach, S.R., Jin, B., Wright, D.R., Heller, G.Z., Offutt, J.: Quality impacts of clandestine common coupling. Software Quality Control 11(3), 211–218 (2003)
Schach, S.R., Offutt, A.J.: On the nonmaintainability of open-source software position paper. In: 2nd Workshop on Open Source Software Engineering (May 2002)
Stevens, W.P., Myers, G.J., Constantine, L.L.: Structured design. IBM Systems J. 13(2), 115–139 (1974)
Stroustrup, B.: The C++ Programming Language. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA (2000)
Yu, L., Schach, S.R., Chen, K., Offutt, J.: Categorization of common coupling and its application to the maintainability of the linux kernel. IEEE Trans. Software Eng. 30(10), 694–706 (2004)
Zimmermann, T., Weissgerber, P., Diehl, S., Zeller, A.: Mining version histories to guide software changes. In: ICSE 2004: Proceedings of the 26th International Conference on Software Engineering, Washington, DC, USA, pp. 563–572. IEEE Computer Society, Los Alamitos (2004)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2006 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Ruffell, F.P., Selby, J.W.A. (2006). The Pervasiveness of Global Data in Evolving Software Systems. In: Baresi, L., Heckel, R. (eds) Fundamental Approaches to Software Engineering. FASE 2006. Lecture Notes in Computer Science, vol 3922. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11693017_30
Download citation
DOI: https://doi.org/10.1007/11693017_30
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-33093-6
Online ISBN: 978-3-540-33094-3
eBook Packages: Computer ScienceComputer Science (R0)