Abstract
Software module clustering is the problem of automatically partitioning the structure of a software system using low-level dependencies in the source code to understand and improve the system’s architecture. Munch, a clustering tool based on search-based software engineering techniques, was used to modularise a unique dataset of sequential source code software versions. This paper employs a seeding technique, based on results from previous modularisations, to improve the effectiveness and efficiency of the procedure. In order to reduce the running time further, a statistic for controlling the number of iterations of the modularisation based on the similarities between time adjacent graphs is introduced. We examine the convergence of the heuristic search technique and estimate and evaluate a number of stopping criterion. The paper reports the results of extensive experiments conducted on our comprehensive time-series dataset and provides evidence to support our proposed techniques.
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
Altman, D.G.: Practical Statistics for Medical research. Chapman and Hall (1997)
Arzoky, M., Swift, S., Tucker, A., Cain, J.: Munch: An Efficient Modularisation Strategy to Assess the Degree of Refactoring on Sequential Source Code Checkings. In: IEEE Fourth International Conference on Software Testing, Verification and Validation Workshops, pp. 422–429 (2011)
Arzoky, M., Swift, S., Tucker, A., Cain, J.: A Seeded Search for the Modularisation of Sequential Software Versions. Journal of Object Technology 11(2), 6:1–6:27
Cain, J., Counsell, S., Swift, S., Tucker, A.: An Application of Intelligent Data Analysis Techniques to a Large Software Engineering Dataset. In: Adams, N.M., Robardet, C., Siebes, A., Boulicaut, J.-F. (eds.) IDA 2009. LNCS, vol. 5772, pp. 261–272. Springer, Heidelberg (2009)
Chen, Y., Sanghavi, S., Xu, H.: Clustering sparse graphs. Advances in Neural Information Processing Systems (2012)
Chidamber, S.R., Kemerer, C.F.: A metrics suite for object oriented design. IEEE Trans, Software Eng. 20(6), 476–493 (1994)
Constantine, L.L., Yourdon, E.: Structured Design. Prentice Hall (1979)
Doval, D., Mancoridis, S., Mitchell, B.S.: Automatic clustering of software systems using a genetic algorithm. In: IEEE Proceedings STEP 1999 Software Technology and Engineering Practice, pp. 73–81 (1999)
Harman, M., Hierons, R., Proctor, M.: A new representation and crossover operator for search based optimization of software modularization. In: Proc. Genetic and Evolutionary Computation Conference, pp. 1351–1358. Morgan Kaufmann Publishers (2002)
Harman, M., Mansouri, S.A., Zhang, Y.: Search-based software engineering: Trends, techniques and applications. ACM Computing Surveys (CSUR) 45(1), 11 (2012)
Harman, M., Swift, S., Mahdavi, K.: An empirical study of the robustness of two module clustering fitness functions. In: Genetic and Evolutionary Computation Conference (GECCO 2005), Washington, DC, USA, pp. 1029–1036 (2005)
Mancoridis, S., Mitchell, B.S., Rorres, C., Chen, Y., Gansner, E.R.: Using automatic clustering to produce high-level system organizations of source code. In: International Workshop on Program Comprehension (IWPC 1998), pp. 45–53. IEEE Computer Society Press, Los Alamitos (1998)
Mancoridis, S., Traverso, M.: Using Heuristic Search Techniques to Extract Design Abstractions from Source Code. In: Proc. Genetic and Evolutionary Computation Conference (GECCO 2002). Morgan Kaufmann Publishers (2002)
Mardia, K.V., Kent, J.T., Bibby, J.M.: Multivariate Analysis (Probability and Mathematical Statistics). Academic Press Inc. (1979)
Michalewicz, Z., Fogel, D.B.: How to Solve It: Modern Heuristics. Springer (2000)
Mitchell, B.S.: A Heuristic Search Approach to Solving the Software Clustering Problem, PhD Thesis, Drexel, University, Philadelphia, PA (2002)
Praditwong, K., Harman, M., Yao, X.: Software Module Clustering as a Multi–Objective Search Problem. IEEE Transactions on Software Engineering 37(2), 264–282 (2011)
Sommerville, I.: Software Engineering, 5th edn. Addison-Wesley (1995)
Tucker, A., Swift, S., Liu, X.: Variable Grouping in multivariate time series via correlation. IEEE Transactions on Systems, Man, and Cybernetics, Part B: Cybernetics 31(2), 235–245 (2001)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2014 Springer International Publishing Switzerland
About this paper
Cite this paper
Arzoky, M., Swift, S., Counsell, S., Cain, J. (2014). An Approach to Controlling the Runtime for Search Based Modularisation of Sequential Source Code Check-ins. In: Blockeel, H., van Leeuwen, M., Vinciotti, V. (eds) Advances in Intelligent Data Analysis XIII. IDA 2014. Lecture Notes in Computer Science, vol 8819. Springer, Cham. https://doi.org/10.1007/978-3-319-12571-8_3
Download citation
DOI: https://doi.org/10.1007/978-3-319-12571-8_3
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-12570-1
Online ISBN: 978-3-319-12571-8
eBook Packages: Computer ScienceComputer Science (R0)