Skip to main content

An Efficient Graph-Search Algorithm for Full Link Application Suggestion

  • Conference paper
  • First Online:
Computer Supported Cooperative Work and Social Computing (ChineseCSCW 2018)

Part of the book series: Communications in Computer and Information Science ((CCIS,volume 917))

  • 807 Accesses

Abstract

One common issue in reusing an existing library is that there is often a requirement to write a full link application that can instantiate a required destination class type according to an object of a given source class type. Recently, various code suggestion methods have been proposed to help programmers to address this issue by striving to recommend much more (good recall) and correct (good precision) solutions. However, for most of current methods, it is very difficult to balance the recall ratio and precision. Thus, a practical code suggestion method is expected to make trade-off between these two terms. In this study, a novel graph-search algorithm for efficient code suggestion is introduced to address the above issue. Our method obtain better experimental effect compared to the most related studies.

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 EPUB and 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

Notes

  1. 1.

    To avoid the flood of downcast, the method invoking sequences that contain downcast with small frequency will not recommended to users by our system. In the future work, the strategy to handle downcast codes proposed in the paper of [3] can be used to refine the DQA graph.

  2. 2.

    RPT is a inverted index table which is used to store the optQoS for each input/precondition and its optimal provider.

References

  1. Bajracharya, S., Ossher, J., Lopes, C.: Sourcerer: an infrastructure for large-scale collection and analysis of open-source code. Sci. Comput. Program. 79(79), 241–259 (2014)

    Article  Google Scholar 

  2. Bruch, M., Schäfer, T., Mezini, M.: FrUiT: IDE support for framework understanding. In: Proceedings of the 2006 OOPSLA Workshop on Eclipse Technology eXchange. pp. 55–59. Eclipse 2006. ACM, New York (2006). https://doi.org/10.1145/1188835.1188847

  3. Feng, Y., Martins, R., Wang, Y., Dillig, I., Reps, T.W.: Component-based synthesis for complex APIs. In: ACM SIGPLAN Symposium on Principles of Programming Languages, pp. 599–612 (2017)

    Google Scholar 

  4. Fowkes, J., Chanthirasegaran, P., Ranca, R., Allamanis, M., Lapata, M., Sutton, C.: TASSAL: autofolding for source code summarization. In: IEEE/ACM International Conference on Software Engineering Companion, pp. 649–652 (2017)

    Google Scholar 

  5. Henderson, T.A.D., Podgurski, A.: Sampling code clones from program dependence graphs with GRAPLE. In: International Workshop on Software Analytics, pp. 47–53 (2016)

    Google Scholar 

  6. Maalej, W., Tiarks, R., Roehm, T., Koschke, R.: On the comprehension of program comprehension. ACM Trans. Softw. Eng. Methodol. 23(4), 1–37 (2014)

    Article  Google Scholar 

  7. Matsumoto, Y.: A software factory: an overall approach to software production. In: Software Reusability, pp. 155–178. IEEE Computer Society, March 1987

    Google Scholar 

  8. Mojica, I.J., Adams, B., Nagappan, M., Dienst, S., Berger, T., Hassan, A.E.: A large-scale empirical study on software reuse in mobile apps. IEEE Softw. 31(2), 78–86 (2014)

    Article  Google Scholar 

  9. Nguyen, A.T., Nguyen, T.N.: Graph-based statistical language model for code. In: IEEE/ACM IEEE International Conference on Software Engineering, pp. 858–868 (2015)

    Google Scholar 

  10. Nguyen, A.T., Nguyen, T.D., Phan, H.D., Nguyen, T.N.: A deep neural network language model with contexts for source code. In: IEEE International Conference on Software Analysis, Evolution and Reengineering, pp. 323–334 (2018)

    Google Scholar 

  11. Nguyen, H.A., Dyer, R., Nguyen, T.N., Rajan, H.: Mining preconditions of APIs in large-scale code corpus. In: ACM SIGSOFT International Symposium on Foundations of Software Engineering, pp. 166–177 (2014)

    Google Scholar 

  12. Nguyen, T., Nguyen, H., Pham, N., Al-Kofahi, J., Nguyen, T.: Graph-based mining of multiple object usage patterns. In: Proceedings of the the 7th Joint Meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on The Foundations of Software Engineering. ESEC-FSE 2009, pp. 383–392. ACM (2009)

    Google Scholar 

  13. Osera, P.M., Zdancewic, S.: Type-and-example-directed program synthesis. In: ACM SIGPLAN Notices, vol. 50, no. 6, pp. 619–630 (2015)

    Google Scholar 

  14. Saul, Z., Filkov, V., Devanbu, P., Bird, C.: Recommending random walks. In: Proceedings of the the 6th Joint Meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on The Foundations of Software Engineering, pp. 15–24. ACM (2007)

    Google Scholar 

  15. Sirres, R., et al.: Augmenting and structuring user queries to support efficient free-form code search. Empir. Softw. Eng. 1, 1–33 (2017)

    Google Scholar 

  16. Uddin, G., Dagenais, B., Robillard, M.: Analyzing temporal API usage patterns. In: 2011 26th IEEE/ACM International Conference on Automated Software Engineering (ASE), pp. 456–459. IEEE (2011)

    Google Scholar 

  17. Ye, Y.: Supporting component-based software development with active component repository systems. Ph.D. thesis, University of Colorado (2001)

    Google Scholar 

Download references

Acknowledgment

The work is financially supported in part by the Project of Science and Technology of State Grid (No. SG[2017]179), Natural Science Foundation of Shandong Province, China (ZR2016FB13), National Natural Science Foundation of China (61602286) and a Project of Shandong Province Higher Educational Science and Technology Program (J16LN09).

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Chen Lyu .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2019 Springer Nature Singapore Pte Ltd.

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Zhang, H. et al. (2019). An Efficient Graph-Search Algorithm for Full Link Application Suggestion. In: Sun, Y., Lu, T., Xie, X., Gao, L., Fan, H. (eds) Computer Supported Cooperative Work and Social Computing. ChineseCSCW 2018. Communications in Computer and Information Science, vol 917. Springer, Singapore. https://doi.org/10.1007/978-981-13-3044-5_41

Download citation

  • DOI: https://doi.org/10.1007/978-981-13-3044-5_41

  • Published:

  • Publisher Name: Springer, Singapore

  • Print ISBN: 978-981-13-3043-8

  • Online ISBN: 978-981-13-3044-5

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics