Abstract
It is well-known that maintenance and evolution represent important stages in the lifecycle of any software system (about 66% from the total cost of the software systems development). That is why in this paper we are focusing on the problem of automating an essential activity that appears in the maintenance and evolution of software systems: the problem of identifying refactorings that would improve the structure of the system. Refactoring is the process of improving the design of software systems, by improving their internal structure, without altering the external behavior of the code. The aim of this paper is to introduce a new clustering algorithm, CASYR (Clustering Algorithm for Software Systems Restructuring), that can be used for improving software systems design, by identifying the appropriate refactorings. The proposed approach can be useful for assisting software engineers in their daily work of refactoring software systems. We evaluate our approach on a real software system and we also provide a comparison with previous approaches.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Fowler, M.: Refactoring: Improving the Design of Existing Code. Addison-Wesley Longman Publishing Co., Inc., Boston (1999)
Brown, W.J., Malveau, R.C., Hays, W., McCormick, I., Mowbray, T.J.: AntiPatterns: refactoring software, architectures, and projects in crisis. John Wiley & Sons, Inc., New York (1998)
Czibula, I., Serban, G.: Improving systems design using a clustering approach. International Journal of Computer Science and Network Security 6, 40–49 (2006)
Han, J.: Data Mining: Concepts and Techniques. Morgan Kaufmann Publishers Inc., San Francisco (2005)
Jain, A.K., Murty, M.N., Flynn, P.J.: Data clustering: a review. ACM Computing Surveys 31, 264–323 (1999)
Simon, F., Loffler, S., Lewerentz, C.: Distance based cohesion measuring. In: Proceedings of the 2nd European Software Measurement Conference (FESMA), Technologisch Instituut Amsterdam, pp. 69–83 (1999)
Bieman, J.M., Kang, B.K.: Measuring design-level cohesion. Software Engineering 24, 111–124 (1998)
Serban, G., Czibula, I.: On evaluating software systems design. Studia Universitatis “Babes-Bolyai”, Informatica LII, 55–66 (2007)
Simon, F., Steinbrückner, F., Lewerentz, C.: Metrics based refactoring. In: CSMR 2001: Proceedings of the Fifth European Conference on Software Maintenance and Reengineering, pp. 30–38. IEEE Computer Society, Washington, DC, USA (2001)
(Digital Imaging and Communications in Medicine), http://medical.nema.org/
(Health Level 7), http://www.hl7.org/
(ObjectWeb: Open Source Middleware), http://asm.objectweb.org/
DeMarco, T.: Structured analysis and system specification, pp. 529–560 (2002)
van Deursen, A., Moonen, L., van den Bergh, A., Kok, G.: Refactoring test code, 92–95 (2001)
Xing, Z., Stroulia, E.: Refactoring detection based on umldiff change-facts queries. WCRE, 263–274 (2006)
Dudzikan, T., Wlodka, J.: Tool-supported dicovery and refactoring of structural weakness. Master’s thesis, TU Berlin, Germany (2002)
Tahvildari, L., Kontogiannis, K.: A metric-based approach to enhance design quality through meta-pattern transformations. In: CSMR 2003: Proceedings of the Seventh European Conference on Software Maintenance and Reengineering, pp. 183–192. IEEE Computer Society, Washington, DC, USA (2003)
Xu, X., Lung, C.H., Zaman, M., Srinivasan, A.: Program restructuring through clustering techniques. In: SCAM 2004: Proceedings of the Source Code Analysis and Manipulation, Fourth IEEE International Workshop on (SCAM 2004), pp. 75–84. IEEE Computer Society, Washington, DC, USA (2004)
Lung, C.H.: Software architecture recovery and restructuring through clustering techniques. In: ISAW 1998: Proceedings of the third international workshop on Software architecture, pp. 101–104. ACM Press, New York (1998)
Seng, O., Stammel, J., Burkhart, D.: Search-based determination of refactorings for improving the class structure of object-oriented systems. In: GECCO 2006: Proceedings of the 8th annual conference on Genetic and evolutionary computation, pp. 1909–1916. ACM Press, New York (2006)
Gamma, E. (JHotDraw Project), http://sourceforge.net/projects/jhotdraw
Mitchell, T.M.: Machine Learning. McGraw-Hill, New York (1997)
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 2008 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Şerban, G., Czibula, IG. (2008). Object-Oriented Software Systems Restructuring through Clustering. In: Rutkowski, L., Tadeusiewicz, R., Zadeh, L.A., Zurada, J.M. (eds) Artificial Intelligence and Soft Computing – ICAISC 2008. ICAISC 2008. Lecture Notes in Computer Science(), vol 5097. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-69731-2_67
Download citation
DOI: https://doi.org/10.1007/978-3-540-69731-2_67
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-69572-1
Online ISBN: 978-3-540-69731-2
eBook Packages: Computer ScienceComputer Science (R0)