Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.5555/2337223.2337367acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
Article

How much does unused code matter for maintenance?

Published: 02 June 2012 Publication History

Abstract

Software systems contain unnecessary code. Its maintenance causes unnecessary costs. We present tool-support that employs dynamic analysis of deployed software to detect unused code as an approximation of unnecessary code, and static analysis to reveal its changes during maintenance. We present a case study on maintenance of unused code in an industrial software system over the course of two years. It quantifies the amount of code that is unused, the amount of maintenance activity that went into it and makes the potential benefit of tool support explicit, which informs maintainers that are about to modify unused code.

References

[1]
J. Johnson, "Roi, it's your job," Keynote at XP '02.
[2]
E. Juergens, M. Feilkas, M. Herrmannsdoerfer, F. Deissenboeck, R. Vaas, and K. Prommer, "Feature profiling for evolving systems," in ICPC '11, 2011.
[3]
IEEE, "IEEE standard glossary of software engineering terminology," Standard, 1990.
[4]
D. Yeh and J.-H. Jeng, "An empirical study of the influence of departmentalization and organizational position on software maintenance," J. Softw. Maint. Evol. Res. Pr., 2002.
[5]
H. D. Rombach, B. T. Ulery, and J. D. Valett, "Toward full life cycle control: Adding maintenance measurement to the SEL," J. Syst. Softw., 1992.
[6]
V. Basili, L. Briand, S. Condon, Y.-M. Kim, W. L. Melo, and J. D. Valett, "Understanding and predicting the process of software maintenance release," in ICSE '96, 1996.
[7]
O. Traub, S. Schechter, and M. D. Smith, "Ephemeral instrumentation for lightweight program profiling," School of engineering and Applied Sciences, Harvard University, Tech. Rep., 2000.
[8]
V. Basili, G. Caldiera, and H. Rombach, "The Goal Question Metric Approach," Encyclopedia of Software Engineering, vol. 1, 1994.
[9]
C. Wohlin, P. Runeson, M. Höst, M. C. Ohlsson, B. Regnell, and A. Wesslén, Experimentation in software engineering: An introduction. Kluwer Academic Publishers, 2000.
[10]
D. M. Hilbert, "Large-scale collection of application usage data and user feedback to inform interactive software development," Ph.D. dissertation, University of California, Irvine, 1999.
[11]
A. Orso, D. Liang, M. J. Harrold, and R. Lipton, "Gamma system: Continuous evolution of software after deployment," SIGSOFT Softw. Eng. Notes, vol. 27, no. 4, 2002.
[12]
B. Liblit, A. Aiken, A. X. Zheng, and M. I. Jordan, "Bug isolation via remote program sampling," SIGPLAN Notices '03, vol. 38, no. 5, 2003.
[13]
B. Liblit, M. Naik, A. X. Zheng, A. Aiken, and M. I. Jordan, "Scalable statistical bug isolation," in PLDI '05, 2005.
[14]
S. Elbaum and M. Diep, "Profiling deployed software: Assessing strategies and testing opportunities," IEEE Trans. Softw. Eng., vol. 31, no. 4, 2005.
[15]
M. Haran, A. Karr, M. Last, A. Orso, Alessandro d A. Porter, A. Sanil, and S. Fouche, "Techniques for classifying executions of deployed software to support software engineering tasks," IEEE Trans. Softw. Eng., vol. 33, no. 5, 2007.
[16]
S. L. Graham, P. B. Kessler, and M. K. Mckusick, "Gprof: A call graph execution profiler," in SIGPLAN Notices '82, 1982.
[17]
J. M. Anderson, L. M. Berc, J. Dean, S. Ghemawat, M. R. Henzinger, S.-T. A. Leung, R. L. Sites, M. T. Vandevoorde, C. A. Waldspurger, and W. E. Weihl, "Continuous profiling: Where have all the cycles gone?" ACM Trans. Comput. Syst., vol. 15, no. 4, 1997.
[18]
S. Horwitz, "Identifying the semantic and textual differences between two versions of a program," in PLDI '90, 1990.
[19]
W. Yang, "Identifying syntactic differences between two programs," Softw., Pract. Exper., vol. 21, no. 7, 1991.
[20]
J. E. Grass, "Cdiff: A syntax directed differencer for C++ programs," in UXENIX C++ '92, 1992.
[21]
D. Jackson and D. A. Ladd, "Semantic diff: A tool for summarizing the effects of modifications," in ICSM '94, 1994.
[22]
M. Kim and D. Notkin, "Discovering and representing systematic code changes," in ICSE '09, 2009.
[23]
R. U. J. D. Aho, Alfred V.; Sethi, Compilers - Principles, Techniques and Tools. Addison Wesley, 1986.
[24]
A. Appel, Modern Compiler Implementation in Java. Cambridge University Press, 1998.
[25]
S. K. Debray, W. Evans, R. Muth, and B. De Sutter, "Compiler techniques for code compaction," ACM Trans. Program. Lang. Syst., vol. 22, 2000.

Cited By

View all
  • (2021)An Exploratory Study on Dead Methods in Open-source Java Desktop ApplicationsProceedings of the 15th ACM / IEEE International Symposium on Empirical Software Engineering and Measurement (ESEM)10.1145/3475716.3475773(1-11)Online publication date: 11-Oct-2021
  • (2019)Recommending unnecessary source code based on static analysisProceedings of the 41st International Conference on Software Engineering: Companion Proceedings10.1109/ICSE-Companion.2019.00111(274-275)Online publication date: 25-May-2019
  • (2018)How slim will my system be?Proceedings of the 26th Conference on Program Comprehension10.1145/3196321.3196353(352-360)Online publication date: 28-May-2018
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
ICSE '12: Proceedings of the 34th International Conference on Software Engineering
June 2012
1657 pages
ISBN:9781467310673

Sponsors

Publisher

IEEE Press

Publication History

Published: 02 June 2012

Check for updates

Qualifiers

  • Article

Conference

ICSE '12
Sponsor:

Acceptance Rates

Overall Acceptance Rate 276 of 1,856 submissions, 15%

Upcoming Conference

ICSE 2025

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)2
  • Downloads (Last 6 weeks)0
Reflects downloads up to 15 Oct 2024

Other Metrics

Citations

Cited By

View all
  • (2021)An Exploratory Study on Dead Methods in Open-source Java Desktop ApplicationsProceedings of the 15th ACM / IEEE International Symposium on Empirical Software Engineering and Measurement (ESEM)10.1145/3475716.3475773(1-11)Online publication date: 11-Oct-2021
  • (2019)Recommending unnecessary source code based on static analysisProceedings of the 41st International Conference on Software Engineering: Companion Proceedings10.1109/ICSE-Companion.2019.00111(274-275)Online publication date: 25-May-2019
  • (2018)How slim will my system be?Proceedings of the 26th Conference on Program Comprehension10.1145/3196321.3196353(352-360)Online publication date: 28-May-2018
  • (2016)Detection Techniques of Dead Code: Systematic Literature ReviewProceedings of the XII Brazilian Symposium on Information Systems on Brazilian Symposium on Information Systems: Information Systems in the Cloud Computing Era - Volume 110.5555/3021955.3021998(255-262)Online publication date: 17-May-2016
  • (2015)Hidden truths in dead software pathsProceedings of the 2015 10th Joint Meeting on Foundations of Software Engineering10.1145/2786805.2786865(474-484)Online publication date: 30-Aug-2015
  • (2014)Selecting manual regression test cases automatically using trace link recovery and change coverageProceedings of the 9th International Workshop on Automation of Software Test10.1145/2593501.2593506(29-35)Online publication date: 31-May-2014
  • (2013)Did we test our changes?Proceedings of the 8th International Workshop on Automation of Software Test10.5555/2662413.2662437(107-110)Online publication date: 18-May-2013

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media