Skip to main content

Identifying Mandatory Code for Framework Use via a Single Application Trace

  • Conference paper
ECOOP 2014 – Object-Oriented Programming (ECOOP 2014)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 8586))

Included in the following conference series:

Abstract

Application frameworks allow application developers to effectively reuse both designs and implementations which frequently appear in their intended domains. However, when using a framework with large scale APIs, its usage to implement an application-specific behavior tends to be complicated. Thus, in practice, application developers use existing sample application code as references for their development, but the task to locate the parts which are related to their application usually becomes a burden. To address this problem, in this paper, we characterize the problem as a kind of dynamic flow analysis problem, and based on the characterization, we present a method to automatically identify the mandatory code for the framework use using only a single sample application’s trace. We have conducted case studies with several real-world frameworks to validate our method and the results indicate that the method is suitable to extract the mandatory framework usage.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Ko, A., Myers, B., Aung, H.: Six learning barriers in end-user programming systems. In: Proceedings of the 2004 IEEE Symposium on Visual Languages Human Centric Computing (VLHCC 2004), pp. 199–206 (2004)

    Google Scholar 

  2. Fairbanks, G.: Software engineering environment support for frameworks A position paper. In: Proceedings of the ICSE 2004 Workshop on Directions in Software Engineering Environments (WoDiSEE 2004), pp. 70–73 (2004)

    Google Scholar 

  3. Fowler, M.: Inversion of control containers and the dependency injection pattern (2004), http://www.martinfowler.com/articles/injection.html#FormsOfDependencyInjection

  4. Holmes, R., Murphy, G.C.: Using structural context to recommend source code examples. In: Proceedings of ICSE, pp. 117–125 (2005)

    Google Scholar 

  5. Heydarnoori, A., Czarnecki, K., Bartolomei, T.T.: Supporting framework use via automatically extracted concept-implementation templates. In: Drossopoulou, S. (ed.) ECOOP 2009. LNCS, vol. 5653, pp. 344–368. Springer, Heidelberg (2009)

    Chapter  Google Scholar 

  6. Monperrus, M., Bruch, M., Mezini, M.: Detecting missing method calls in object-oriented software. In: D’Hondt, T. (ed.) ECOOP 2010. LNCS, vol. 6183, pp. 2–25. Springer, Heidelberg (2010)

    Chapter  Google Scholar 

  7. Generative Software Development Lab.: FUDA supporting material, http://gsd.uwaterloo.ca/tse-fuda

  8. Salah, M.: An environment for comprehending the behavior of software systems, Ph.D. dissertation, Drexel University (2005)

    Google Scholar 

  9. Lienhard, A., Gîrba, T., Wang, J.: Practical object-oriented back-in-time debugging. In: Vitek, J. (ed.) ECOOP 2008. LNCS, vol. 5142, pp. 592–615. Springer, Heidelberg (2008)

    Chapter  Google Scholar 

  10. Software Design and Verification Lab.: ECOOP 2014 artifacts page, http://nitta-lab-www.is.konan-u.ac.jp/ECOOP2014

  11. Michail, A.: Data mining library reuse patterns using generalized association rules. In: Proceedings of ICSE, pp. 167–176 (2000)

    Google Scholar 

  12. Ye, Y., Fischer, G.: Supporting reuse by delivering task-relevant and personalized information. In: Proceedings of ICSE, pp. 513–523 (2002)

    Google Scholar 

  13. Zhong, H., Xie, T., Zhang, L., Pei, J., Mei, H.: MAPO: Mining and recommending API usage patterns. In: Drossopoulou, S. (ed.) ECOOP 2009. LNCS, vol. 5653, pp. 318–343. Springer, Heidelberg (2009)

    Chapter  Google Scholar 

  14. Buse, R.P.L., Weimer, W.: Synthesizing API usage examples. In: Proceedings of ICSE, pp. 782–792 (2012)

    Google Scholar 

  15. Uddin, G., Dagenais, B., Robillard, M.P.: Temporal analysis of API usage concepts. In: Proceedings of ICSE, pp. 804–814 (2012)

    Google Scholar 

  16. Mandelin, D., Xu, L., Bodík, R., Kimelman, D.: Jungloid mining: helping to navigate the API jungle. In: Proceedings of PLDI, pp. 48–61 (2005)

    Google Scholar 

  17. Sahavechaphan, N., Claypool, K.: XSnippet: mining for sample code. In: Proceedings of OOPSLA, pp. 413–430 (2006)

    Google Scholar 

  18. Thummalapenta, A., Xie, T.: PARSEWeb: A programmer assistant for reusing open source code on the web. In: Proceedings of ASE, pp. 204–213 (2007)

    Google Scholar 

  19. Li, Z., Zhou, Y.: PR-Miner: automatically extracting implicit programming rules and detecting violations in large software code. In: Proceedings of ESEC/FSE, pp. 306–315 (2005)

    Google Scholar 

  20. Wasylkowski, A., Zeller, A., Lindig, C.: Detecting object usage anomalies. In: Proceedings of ESEC/FSE, pp. 35–44 (2007)

    Google Scholar 

  21. Sridharan, M., Fink, S.J., Bodík, R.: Thin slicing. In: Proceedings of PLDI, pp. 112–122 (2007)

    Google Scholar 

  22. Salah, M., Denton, T., Mancoridis, S., Shokoufandeh, A., Vokolos, F.I.: Scenariographer: A tool for reverse engineering class usage scenarios from method invocation sequences. In: Proceedings of ICSM, pp. 155–164 (2005)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2014 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Nitta, N., Kume, I., Takemura, Y. (2014). Identifying Mandatory Code for Framework Use via a Single Application Trace. In: Jones, R. (eds) ECOOP 2014 – Object-Oriented Programming. ECOOP 2014. Lecture Notes in Computer Science, vol 8586. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-662-44202-9_24

Download citation

  • DOI: https://doi.org/10.1007/978-3-662-44202-9_24

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-662-44201-2

  • Online ISBN: 978-3-662-44202-9

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics