skip to main content
research-article

Combining concern input with program analysis for bloat detection

Published:29 October 2013Publication History
Skip Abstract Section

Abstract

Framework based software tends to get bloated by accumulating optional features (or concerns) just-in-case they are needed. The good news is that such feature bloat need not always cause runtime execution bloat. The bad news is that often enough, only a few statements from an optional concern may cause execution bloat that may result in as much as 50% runtime overhead.

We present a novel technique to analyze the connection between optional concerns and the potential sources of execution bloat induced by them. Our analysis automatically answers questions such as (1) whether a given set of optional concerns could lead to execution bloat and (2) which particular statements are the likely sources of bloat when those concerns are not required. The technique combines coarse grain concern input from an external source with a fine-grained static analysis. Our experimental evaluation highlights the effectiveness of such concern augmented program analysis in execution bloat assessment of ten programs.

References

  1. B. Aktemur and S. Kamin. A comparative study of techniques to write customizable libraries. In SAC, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. S. Apel and C. Kastner. An overview of feature-oriented software development. Journal Of Object Technology, 2009.Google ScholarGoogle ScholarCross RefCross Ref
  3. S. Apel, C. Kastner, and C. Lengauer. FEATUREHOUSE: Language-independent, automated software composition. ICSE, 2009. URL http://fosd.de/fh. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. R. S. Arnold. Software Change Impact Analysis. IEEE Computer Society Press, Los Alamitos, CA, USA, 1996. ISBN 0818673842. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. P. F. Baldi, C. V. Lopes, E. J. Linstead, and S. K. Bajracharya. A theory of aspects as latent topics. In OOPSLA, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. S. Bhattacharya, M. G. Nanda, K. Gopinath, and M. Gupta. Reuse recycle to debloat software. In ECOOP, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. T. J. Biggerstaff, B. G. Mitbander, and D. Webster. The concept assignment problem in program understanding. In ICSE '93, pages 482--498, Los Alamitos, CA, USA, 1993. IEEE Computer Society Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. W. Binder, J. Hulaas, P. Moret, and A. Villaz. Platform-independent proling in a virtual execution environment. Software Practice and Experience, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. D. Binkley, G. Gold, M. Harman, Z. Li, and K. Mahdavi. An empirical study of the relationship between the concepts expressed in source code and dependence. volume 81. The Journal of Systems and Software, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. S. Blackburn and et al. The DaCapo benchmarks: Java benchmarking development and analysis. In OOPSLA, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. E. Bodden, M. Mezini, C. Brabrand, T. Tolêdo, M. Ribeiro, and P. Borba. Spllift - statically analyzing software product lines in minutes instead of years. In PLDI'13, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. B. Cornelissen, A. Zaidman, A. Van Deursen, L. Moonen, and R. Koschke. A systematic survey of program comprehension through dynamic analysis. volume 99. IEEE TSE, Apr. 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. M. K. Das, S. Bhattacharya, C. Bhattacharyya, and K. Gopinath. Subtle topic models and discovering subtly manifested software concerns automatically. In ICML, 2013.Google ScholarGoogle Scholar
  14. B. Dit, M. Revelle, M. Gethers, and D. Poshyvanyk. Feature location in source code: a taxonomy and survey. Journal of Software: Evolution and Process, 25(1):53--95, 2013. ISSN 2047-7481.Google ScholarGoogle ScholarCross RefCross Ref
  15. B. Dufour, B. G. Ryder, and G. Sevitsky. A scalable technique for characterizing the usage of temporaries in framework-intensive java applications. In SIGSOFT '08/FSE-16, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. M. Eaddy, A. V. Aho, G. Antoniol, and Y. G. Guhneuc. Cerberus: Tracing requirements to source code using information retrieval, dynamic analysis, and program analysis. ICPC, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. M. Gethers, B. Dit, H. Kagdi, and D. Poshyvanyk. Integrated impact analysis for managing software changes. In ICSE, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. M. Harman, N. Gold, R. Hierons, and D. Binkley. Code extraction algorithms which unify slicing and concept assignment. In WCRE, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. C. Kästner and S. Apel. Type-checking software product lines - a formal approach. In ASE'07, Los Alamitos, CA, 2008. URL http://wwwiti.cs.uni-magdeburg.de/itidb/research/cide. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. C. Kästner, A. Dreiling, and K. Ostermann. Variability mining with leadt. Technical report, 2011.Google ScholarGoogle Scholar
  21. C. Kästner, S. Apel, T. Thüm, and G. Saake. Type checking annotation-based product lines. ACM Trans. Softw. Eng. Methodol., 21(3), 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. A. Kellens, K. Mens, P. Tonella, and D. D. Informatique. A survey of automated code-level aspect mining techniques. In In Transactions on Aspect Oriented Software Development, pages 145--164, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C. Lopes, J. M. Loingtier, and J. Irwin. Aspect-oriented programming. In ECOOP. SpringerVerlag, 1997.Google ScholarGoogle ScholarCross RefCross Ref
  24. C. H. P. Kim, C. Kästner, and D. S. Batory. On the modularity of feature interactions. In GPCE, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. C. H. P. Kim, E. Bodden, D. Batory, and S. Khurshid. Reducing configurations to monitor in a software product line. In 1st International Conference on Runtime Verification (RV), volume 6418 of LNCS, pages 285--299. Springer, Nov. 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. C. H. P. Kim, D. S. Batory, and S. Khurshid. Reducing combinatorics in testing product lines. In AOSD, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. M. Kim, S. Sinha, C. Gorg, H. Shah, M. J. Harrold, and M. G. Nanda. Automated bug neighborhood analysis for identifying incomplete bug fixes. In ICST, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. B. Li, X. Sun, H. Leung, and S. Zhang. A survey of code-based change impact analysis techniques. Software Testing, Verification and Reliability, Apr. 2012.Google ScholarGoogle Scholar
  29. J. Liu, D. Batory, and C. Lengauer. Feature oriented refactoring of legacy applications. ICSE, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. M. Marin, A. V. Deursen, and L. Moonen. Identifying cross-cutting concerns using fan-in analysis. TOSEM, 17:3:1--3:37, December 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. N. Mitchell and G. Sevitsky. The causes of bloat, the limits of health. In OOPSLA, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. N. Mitchell, G. Sevitsky, and H. Srinivasan. Modeling runtime behaviour in framework based applications. In ECOOP, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. N. Mitchell, E. Schonberg, and G. Sevitsky. Four trends leading to java runtime bloat. IEEE Software, 27(1), 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. A. Nanda and M. G. Nanda. Gaining insight into programs that analyze programs: by visualizing the analyzed program. In ONWARDS, Companion to OOPSLA, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. M. G. Nanda and S. Sinha. Accurate interprocedural null-dereference analysis for Java. In ICSE, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. M. G. Nanda, S. Mani, V. S. Sinha, and S. Sinha. Demystifying model transformations: An approach based on automated rule inference. In OOPSLA, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. K. Pohl, G. Böckle, and F. J. v. d. Linden. Software Product Line Engineering: Foundations, Principles and Techniques. Springer-Verlag New York, Inc., Secaucus, NJ, USA, 2005. ISBN 3540243720. Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. C. Prehofer. Feature-oriented programming: A fresh look at objects. In ECOOP, 1997.Google ScholarGoogle Scholar
  39. M. Revelle, B. Dit, and D. Poshyvanyk. Using data fusion and web mining to support feature location in software. ICPC, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. M. P. Robillard. Topology analysis of software dependencies. ACM TOSEM, Aug. 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. M. P. Robillard and G. C. Murphy. Representing concerns in source code. ACM Trans. Softw. Eng. Methodol., 16(1), Feb. 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. T. Savage, M. Revelle, and D. Poshyvanyk. Flat3: Feature location and textual tracing tool. ICSE, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  43. D. Shepherd, L. Pollock, and T. Tourwé. Using language clues to discover crosscutting concerns. In Proceedings of the 2005 workshop on Modeling and analysis of concerns in software, MACS '05. ACM, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  44. D. Shepherd, Z. P. Fry, E. Hill, L. Pollock, and K. Vijay-Shanker. Using natural language program analysis to locate and understand action-oriented concerns. In AOSD, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  45. N. Siegmund, S. Kolesnikov, C. Kastner, S. Apel, D. Batory, M. Rosenmuller, and G. Saake. Predicting performance via automated feature-interaction detection. In ICSE, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  46. Standard Performance Evaluation Corporation. http://www.specbench.org.Google ScholarGoogle Scholar
  47. T. Tourwe and K. Mens. Mining aspectual views using formal concept analysis. In SCAM'04, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  48. G. Xu and A. Rountev. Detecting inefficiently-used containers to avoid bloat. In PLDI, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  49. G. Xu, M. Arnold, N. Mitchell, A. Rountev, and G. Sevitsky. Go with the flow: profiling copies to find runtime bloat. In PLDI, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  50. G. Xu, N. Mitchell, M. Arnold, A. Rountev, E. Schonberg, and G. Sevitsky. Finding low-utility data structures. In PLDI, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  51. G. Xu, N. Mitchell, M. Arnold, A. Rountev, and G. Sevitsky. Software bloat analysis: Finding, removing, and preventing performance problems in modern large-scale object-oriented applications. In FoSER, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  52. C. Zhang and H.-A. Jacobsen. Efficiently mining crosscutting concerns through random walks. In AOSD, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  53. W. Zhao, L. Zhang, Y. Liu, J. Sun, and F. Yang. Sniafl: Towards a static non-interactive approach to feature location. volume 15. ACM TOSEM, April 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Combining concern input with program analysis for bloat detection

        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 SIGPLAN Notices
          ACM SIGPLAN Notices  Volume 48, Issue 10
          OOPSLA '13
          October 2013
          867 pages
          ISSN:0362-1340
          EISSN:1558-1160
          DOI:10.1145/2544173
          Issue’s Table of Contents
          • cover image ACM Conferences
            OOPSLA '13: Proceedings of the 2013 ACM SIGPLAN international conference on Object oriented programming systems languages & applications
            October 2013
            904 pages
            ISBN:9781450323741
            DOI:10.1145/2509136

          Copyright © 2013 ACM

          Publisher

          Association for Computing Machinery

          New York, NY, United States

          Publication History

          • Published: 29 October 2013

          Check for updates

          Qualifiers

          • research-article

        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!