skip to main content
research-article
Free Access

Efficient Identification of Linchpin Vertices in Dependence Clusters

Published:01 July 2013Publication History
Skip Abstract Section

Abstract

Several authors have found evidence of large dependence clusters in the source code of a diverse range of systems, domains, and programming languages. This raises the question of how we might efficiently locate the fragments of code that give rise to large dependence clusters. We introduce an algorithm for the identification of linchpin vertices, which hold together large dependence clusters, and prove correctness properties for the algorithm’s primary innovations. We also report the results of an empirical study concerning the reduction in analysis time that our algorithm yields over its predecessor using a collection of 38 programs containing almost half a million lines of code. Our empirical findings indicate improvements of almost two orders of magnitude, making it possible to process larger programs for which it would have previously been impractical.

References

  1. Acharya, M. and Robinson, B. 2011. Practical change impact analysis based on static program slicing for industrial software systems. In Proceedings of the 33rd International Conference on Software Engineering (ICSE’11). R. N. Taylor, H. Gall, and N. Medvidovic Eds., ACM, 746--755. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Andersen, L. O. 1994. Program analysis and specialization for the C programming language. Ph.D. thesis, (DIKU report 94/19) DIKU, University of Copenhagen.Google ScholarGoogle Scholar
  3. Balmas, F. 2002. Using dependence graphs as a support to document programs. In Proceedings of the 2nd IEEE International Workshop on Source Code Analysis and Manipulation. IEEE, 145--154. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Beszédes, Á., Gergely, T., Jász, J., Toth, G., Gyimóthy, T., and Rajlich, V. 2007. Computation of static execute after relation with applications to software maintenance. In Proceedings of the 23rd IEEE International Conference on Software Maintenance (ICSM’07). IEEE, 295--304.Google ScholarGoogle Scholar
  5. Binkley, D. and Harman, M. 2005. Locating dependence clusters and dependence pollution. In Proceedings of the 21st IEEE International Conference on Software Maintenance. IEEE, 177--186. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Binkley, D. and Harman, M. 2009. Identifying ‘linchpin vertices’ that cause large dependence clusters. In Proceedings of the 9th International Working Conference on Source Code Analysis and Manipulation (SCAM’09). IEEE. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Binkley, D., Gold, N., Harman, M., Li, Z., Mahdavi, K., and Wegener, J. 2008. Dependence anti patterns. In Proceedings of the 4th International ERCIM Workshop on Software Evolution and Evolvability (Evol’08). 25--34.Google ScholarGoogle Scholar
  8. Binkley, D., Harman, M., Hassoun, Y., Islam, S., and Li, Z. 2009. Assessing the impact of global variables on program dependence and dependence clusters. J. Syst. Software 83, 1, 96--107. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Binkley, D. W. 1993. Precise executable interprocedural slices. ACM Lett. Program. Lang. Syst. 3, 1--4, 31--45. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Binkley, D. W. 2007. Source code analysis: A road map. In Future of Software Engineering 2007, L. Briand and A. Wolf Eds., IEEE, 104--119. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Black, S., Counsell, S., Hall, T., and Wernick, P. 2006. Using program slicing to identify faults in software. In Beyond Program Slicing, D. W. Binkley, M. Harman, and J. Krinke Eds., Dagstuhl Seminar Proceedings, Number 05451, Internationales Begegnungs- und Forschungszentrum für Informatik (IBFI), Schloss Dagstuhl, Germany.Google ScholarGoogle Scholar
  12. Black, S., Counsell, S., Hall, T., and Bowes, D. 2009. Fault analysis in OSS based on program slicing metrics. In Proceedings of the EUROMICRO Conference on Software Engineering and Advanced Applications. IEEE, 3--10. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Black, S. E. 2001. Computing ripple effect for software maintenance. J. Softw. Maintenance Evol. Res. Pract. 13, 263--279. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Deng, Y., Kothari, S., and Namara, Y. 2001. Program slice browser. In Proceedings of the 9th IEEE International Workshop on Program Comprenhesion. IEEE, 50--59. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Eberle, W. and Holder, L. 2009. Graph-based approaches to insider threat detection. In Proceedings of the 5th Annual Workshop on Cyber Security and Information Intelligence Research Cyber Security and Information Intelligence Challenges and Strategies (CSIIRW’09). Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Eisenbarth, T., Koschke, R., and Simon, D. 2003. Locating features in source code. IEEE Trans. Software Eng. 29, 3. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Fahndrich, M., Foster, J. S., Su, Z., and Aiken, A. 1998. Partial online cycle elimination in inclusion constraint graphs. In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation. ACM, 85--96. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Gallagher, K. B. and Lyle, J. R. 1991. Using program slicing in software maintenance. IEEE Trans. Software Eng. 17, 8, 751--761. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Grammatech Inc. 2002. The codesurfer slicing system.Google ScholarGoogle Scholar
  20. Hajnal, Á. and Forgács, I. 2012. A demand-driven approach to slicing legacy COBOL systems. J. Softw. Maintenance Evol. Res. Pract. 24, 1, 67--82. Wiley Online Library. DOI:10.1002/smr.533.Google ScholarGoogle ScholarCross RefCross Ref
  21. Harman, M., Binkley, D., Gallagher, K., Gold, N., and Krinke, J. 2009. Dependence clusters in source code. ACM Trans. Program. Lang. Syst. 32, 1, Article 1. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Horwitz, S., Reps, T., and Binkley, D. W. 1990. Interprocedural slicing using dependence graphs. ACM Trans. Program. Lang. Syst. 12, 1, 26--61. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Islam, S., Krinke, J., and Binkley, D. 2010a. Dependence cluster visualization. In Proceedings of the 5th International Symposium on Software Visualization (SOFTVIS’10). ACM, 53--60. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Islam, S., Krinke, J., Binkley, D., and Harman, M. 2010b. Coherent dependence clusters. In Proceedings of the 9th ACM SIGPLAN-SIGSOFT Workshop on Program Analysis for Software Tools and Engineering (PASTE’10). ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Korel, B. and Laski, J. 1988. Dynamic program slicing. Inf. Process. Lett. 29, 3, 155--163. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Lin, S. and Chlupsky, H. 2003. Unsupervised link discovery in multi-relational data via rarity analysis. In Proceedings of the IEEE ICDM Conference on Data Mining. 171--178. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Madey, G., Freeh, V., Tynan, R., and Hoffman, C. 2003. An analysis of open source software development using social network theory and agent-based modeling. In Proceedings of the Arrowhead Conference on Human Complex Systems.Google ScholarGoogle Scholar
  28. Mitchell, B. S. and Mancoridis, S. 2006. On the automatic modularization of software systems using the bunch tool. IEEE Trans. Software Eng. 32, 3, 193--208. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Praditwong, K., Harman, M., and Yao, X. 2011. Software module clustering as a multi-objective search problem. IEEE Trans. Software Eng. 37, 2, 264--282. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Rattigan, M. and Jensen, D. 2005. The case for anomalous link discovery. ACM SIGKDD Expl. News 7, 2. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Reps, T. and Yang, W. 1988. The semantics of program slicing. Tech. rep. 777, University of Wisconsin.Google ScholarGoogle Scholar
  32. Reps, T. and Rosay, G. 1995. Precise interprocedural chopping. In Proceedings of the 3rd ACM SIGSOFT Symposium on the Foundations of Software Engineering (SIGSOFT’95). G. E. Kaiser Ed., ACM Press, 41--52. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. Reps, T., Horwitz, S., and Sagiv, M. 1995. Precise interprocedural dataflow analysis via graph reachability. In Proceedings of the ACM Symposium on Principles of Programming Languages. 49--61. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. Savernik, L. 2007. Entwicklung eines automatischen Verfahrens zur Auflösung statischer zyklischer Abhängigkeiten in Softwaresystemen (in German). In Software Engineering 2007 - Beiträge zu den Workshops, Fachtagung des GIFachbereichs Softwaretechnik, W.-G. Bleek, H. Schwentner, and H. Züllighoven Eds., LNI Series, vol. 106. GI, 357--360.Google ScholarGoogle Scholar
  35. Sharir, M. and Pnueli, A. 1981. Two Approaches to Interprocedural Data Flow Analysis. Prentice-Hall, Englewood Cliffs, NJ.Google ScholarGoogle Scholar
  36. Szegedi, A., Gergely, T., Beszédes, Á., Gyimóthy, T., and Tóth, G. 2007. Verifying the concept of union slices on Java programs. In Proceedings of the 11th European Conference on Software Maintenance and Reengineering (CSMR’07). 233--242. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. Tonella, P. 2003. Using a concept lattice of decomposition slices for program understanding and impact analysis. IEEE Trans. Software Eng. 29, 6, 495--509. Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. Weiser, M. 1984. Program slicing. IEEE Trans. Software Eng. 10, 4, 352--357. Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. Yong, S. H., Horwitz, S., and Reps, T. 1999. Pointer analysis for programs with structures and casting. In Proceedings of the SIGPLAN Conference on Programming Language Design and Implementation. 91--103. Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. Yoo, S., Harman, M., Tonella, P., and Susi, A. 2009. Clustering test cases to achieve effective and scalable prioritisation incorporating expert knowledge. In Proceedings of the ACM International Conference on Software Testing and Analysis (ISSTA’09). 201--212. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Efficient Identification of Linchpin Vertices in Dependence Clusters

                    Recommendations

                    Comments

                    Login options

                    Check if you have access through your login credentials or your institution to get full access on this article.

                    Sign in

                    Full Access

                    • Published in

                      cover image ACM Transactions on Programming Languages and Systems
                      ACM Transactions on Programming Languages and Systems  Volume 35, Issue 2
                      July 2013
                      136 pages
                      ISSN:0164-0925
                      EISSN:1558-4593
                      DOI:10.1145/2491522
                      Issue’s Table of Contents

                      Copyright © 2013 ACM

                      Publisher

                      Association for Computing Machinery

                      New York, NY, United States

                      Publication History

                      • Published: 1 July 2013
                      • Accepted: 1 April 2013
                      • Revised: 1 November 2012
                      • Received: 1 February 2012
                      Published in toplas Volume 35, Issue 2

                      Permissions

                      Request permissions about this article.

                      Request Permissions

                      Check for updates

                      Qualifiers

                      • research-article
                      • Research
                      • Refereed

                    PDF Format

                    View or Download as a PDF file.

                    PDF

                    eReader

                    View online with eReader.

                    eReader
                    About Cookies On This Site

                    We use cookies to ensure that we give you the best experience on our website.

                    Learn more

                    Got it!