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.
- B. Aktemur and S. Kamin. A comparative study of techniques to write customizable libraries. In SAC, 2009. Google Scholar
Digital Library
- S. Apel and C. Kastner. An overview of feature-oriented software development. Journal Of Object Technology, 2009.Google Scholar
Cross Ref
- S. Apel, C. Kastner, and C. Lengauer. FEATUREHOUSE: Language-independent, automated software composition. ICSE, 2009. URL http://fosd.de/fh. Google Scholar
Digital Library
- R. S. Arnold. Software Change Impact Analysis. IEEE Computer Society Press, Los Alamitos, CA, USA, 1996. ISBN 0818673842. Google Scholar
Digital Library
- P. F. Baldi, C. V. Lopes, E. J. Linstead, and S. K. Bajracharya. A theory of aspects as latent topics. In OOPSLA, 2008. Google Scholar
Digital Library
- S. Bhattacharya, M. G. Nanda, K. Gopinath, and M. Gupta. Reuse recycle to debloat software. In ECOOP, 2011. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- W. Binder, J. Hulaas, P. Moret, and A. Villaz. Platform-independent proling in a virtual execution environment. Software Practice and Experience, 2009. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- S. Blackburn and et al. The DaCapo benchmarks: Java benchmarking development and analysis. In OOPSLA, 2006. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- M. K. Das, S. Bhattacharya, C. Bhattacharyya, and K. Gopinath. Subtle topic models and discovering subtly manifested software concerns automatically. In ICML, 2013.Google Scholar
- 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 Scholar
Cross Ref
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- M. Gethers, B. Dit, H. Kagdi, and D. Poshyvanyk. Integrated impact analysis for managing software changes. In ICSE, 2012. Google Scholar
Digital Library
- M. Harman, N. Gold, R. Hierons, and D. Binkley. Code extraction algorithms which unify slicing and concept assignment. In WCRE, 2002. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- C. Kästner, A. Dreiling, and K. Ostermann. Variability mining with leadt. Technical report, 2011.Google Scholar
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C. Lopes, J. M. Loingtier, and J. Irwin. Aspect-oriented programming. In ECOOP. SpringerVerlag, 1997.Google Scholar
Cross Ref
- C. H. P. Kim, C. Kästner, and D. S. Batory. On the modularity of feature interactions. In GPCE, 2008. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- C. H. P. Kim, D. S. Batory, and S. Khurshid. Reducing combinatorics in testing product lines. In AOSD, 2011. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
- J. Liu, D. Batory, and C. Lengauer. Feature oriented refactoring of legacy applications. ICSE, 2006. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- N. Mitchell and G. Sevitsky. The causes of bloat, the limits of health. In OOPSLA, 2007. Google Scholar
Digital Library
- N. Mitchell, G. Sevitsky, and H. Srinivasan. Modeling runtime behaviour in framework based applications. In ECOOP, 2006. Google Scholar
Digital Library
- N. Mitchell, E. Schonberg, and G. Sevitsky. Four trends leading to java runtime bloat. IEEE Software, 27(1), 2010. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- M. G. Nanda and S. Sinha. Accurate interprocedural null-dereference analysis for Java. In ICSE, 2009. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- C. Prehofer. Feature-oriented programming: A fresh look at objects. In ECOOP, 1997.Google Scholar
- M. Revelle, B. Dit, and D. Poshyvanyk. Using data fusion and web mining to support feature location in software. ICPC, 2010. Google Scholar
Digital Library
- M. P. Robillard. Topology analysis of software dependencies. ACM TOSEM, Aug. 2008. Google Scholar
Digital Library
- M. P. Robillard and G. C. Murphy. Representing concerns in source code. ACM Trans. Softw. Eng. Methodol., 16(1), Feb. 2007. Google Scholar
Digital Library
- T. Savage, M. Revelle, and D. Poshyvanyk. Flat3: Feature location and textual tracing tool. ICSE, 2010. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- Standard Performance Evaluation Corporation. http://www.specbench.org.Google Scholar
- T. Tourwe and K. Mens. Mining aspectual views using formal concept analysis. In SCAM'04, 2004. Google Scholar
Digital Library
- G. Xu and A. Rountev. Detecting inefficiently-used containers to avoid bloat. In PLDI, 2010. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- G. Xu, N. Mitchell, M. Arnold, A. Rountev, E. Schonberg, and G. Sevitsky. Finding low-utility data structures. In PLDI, 2010. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- C. Zhang and H.-A. Jacobsen. Efficiently mining crosscutting concerns through random walks. In AOSD, 2007. Google Scholar
Digital Library
- 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 Scholar
Digital Library
Index Terms
Combining concern input with program analysis for bloat detection
Recommendations
Combining concern input with program analysis for bloat detection
OOPSLA '13: Proceedings of the 2013 ACM SIGPLAN international conference on Object oriented programming systems languages & applicationsFramework 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 ...
Bloat-aware GP-based methods with bloat quantification
AbstractGenetic programming (GP) solves optimization problems by simulating the evolution procedure in nature. It has a serious problem termed as bloat, which can cost memory, hamper effective breeding and slow down the evolution process. However, there ...
Operator equalisation for bloat free genetic programming and a survey of bloat control methods
Bloat can be defined as an excess of code growth without a corresponding improvement in fitness. This problem has been one of the most intensively studied subjects since the beginnings of Genetic Programming. This paper begins by briefly reviewing the ...







Comments