Abstract
Class coupling lies at the heart of object-oriented (OO) programming systems, since most objects need to communicate with other objects in any OO system as part of the system’s functions. Minimisation of coupling in a system is a goal of every software developer, since overly-coupled systems are complex and difficult to maintain. There are various ways of coupling classes in OO systems. However, very little is known about the different forms of coupling and their relationships. In this paper, three data analysis techniques, namely, Bayesian Networks, Association Rules and Clustering were used to identify coupling relationships in three C++ systems. Encouraging results were shown for the Bayesian Network approach, re-inforcing existing knowledge and highlighting new features about the three systems. Results for the other two techniques were disappointing. With association rules, it was clear that only a very general relationship could be discovered from the data. The clustering approach produced inconsistent results, casting doubt on whether such a technique can provide any insight into module discovery when applied to these type of systems.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Agrawal, R.: Fast algorithms for mining association rules. In: Proceedings of the 20th VLDB Conference, Santiago, Chile, pp. 487–499 (1994)
Altman, D.: Practical Statistics for Medical Research. Chapman and Hall, Boca Raton (1997)
Briand, L., Daly, J., Wust, J.: A unified framework for coupling measurement in object-oriented systems. IEEE Transactions on Software Engineering 25(1), 91–121 (1999)
Briand, L., Devanbu, P., Melo, W.: An investigation into coupling measures for C++. In: Proceedings of the 19th International Conference on Software Engineering (ICSE 1997), Boston, USA, pp. 412–421 (1997)
Cooper, G., Herskovitz, E.: A bayesian method for the induction of probabilistic networks from data. Machine Learning 9, 309–347 (1992)
Counsell, S., Loizou, G., Najjar, R., Mannock, K.: On the relationship between encapsulation, inheritance and friends in C++ software. In: Proceedings of International Conference on Software and Systems Engineering and their Applications, ICSSEA 2002, Paris, France, no page numbers (2002)
Counsell, S., Mendes, E., Swift, S.: Comprehension of object-oriented software cohesion: the empirical quagmire. In: Proceedings of the 10th International Workshop on Program Comprehension (IWPC 2002), Paris, France, pp. 33–42 (2002)
Counsell, S., Newson, P.: Use of friends in C++ software: an empirical investigation. Journal of Systems and Software 53, 15–21 (2000)
Friedman, N., Goldszmidt, M.: Building classifiers using bayesian networks. AAAI/IAAI 2, 1277–1284 (1996)
Heckerman, D., Geiger, D., Chickering, D.M.: Learning bayesian networks: The combination of knowledge and statistical data. In: KDD Workshop, pp. 85–96 (1994)
Kellam, P., Liu, X., Martin, N., Orengo, N., Swift, S., Tucker, A.: Comparing, contrasting and combining clusters in viral gene expression data. In: Proceedings of the IDAMAP 2001 Workshop, London, UK, pp. 56–62 (2001)
Lam, W., Bacchus, F.: Learning bayesian belief networks: An approach based on the MDL principle. Computational Intelligence 10, 269–293 (1994)
Mitchell, B.: A Heuristic Search Approach to Solving the Software Clustering Problem, Ph.D. Thesis, Drexel University, Philadelphia, USA (2002)
Pearl, J.: Probabilistic Reasoning in Intelligent Systems: Networks of Plausible Inference. Morgan Kaufmann, San Francisco (1988)
Stroustrup, B.: Adding classes to the C language: An exercise in language evolution. Software – Practice and Experience 13, 139–161 (1983)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2003 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Counsell, S., Liu, X., Najjar, R., Swift, S., Tucker, A. (2003). Applying Intelligent Data Analysis to Coupling Relationships in Object-Oriented Software. In: R. Berthold, M., Lenz, HJ., Bradley, E., Kruse, R., Borgelt, C. (eds) Advances in Intelligent Data Analysis V. IDA 2003. Lecture Notes in Computer Science, vol 2810. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-45231-7_41
Download citation
DOI: https://doi.org/10.1007/978-3-540-45231-7_41
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-40813-0
Online ISBN: 978-3-540-45231-7
eBook Packages: Springer Book Archive