Advertisement

Springer Nature is making SARS-CoV-2 and COVID-19 research free. View research | View latest news | Sign up for updates

Reflective feature location: knowledge in mind meets information in system

Abstract

Locating code entities relevant to a feature (i.e., feature location) is an important task in software maintenance. Feature location is challenging due to the information gap between the developer’s knowledge about a feature and the feature’s implementation in the system. In this paper, we present a reflective feature location approach ReFLex to bridge this gap. ReFLex automatically computes a reflexion model between the developer’s logical view of a feature and the feature’s implemented view reverse-engineered from the code. It provides interactive reflection support for the developer to refine the logical view and the feature location results such that the logical view and the implemented view converge gradually in an iterative feature location process. We have implemented our approach as an Eclipse plugin and investigated the benefits and challenges in reflective feature location through a user study.

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

References

  1. 1

    Dit B, Revelle M, Gethers M, et al. Feature location in source code: a taxonomy and survey. J Softw Evol Proc, 2013, 25: 53–95

  2. 2

    Biggerstaff T J, Mitbander B G, Webster D E. Program understanding and the concept assignment problem. Commun ACM, 1994, 37: 72–82

  3. 3

    Rajlich V. Software Engineering: the Current Practice. 1st ed. BocaRaton: CRC Press, 2012

  4. 4

    Rajlich V, Wilde N. The role of concepts in program comprehension. In: Proceedings of the 10th International Workshop on Program Comprehension, Paris, 2002. 271–278

  5. 5

    Wilson L A, Petrenko M, Rajlich V. Using concept maps to assist program comprehension and concept location: an empirical study. J Inf Knowl Manag, 2012. 11: 1250018

  6. 6

    Gay G, Haiduc S, Marcus A, et al. On the use of relevance feedback in ir-based concept location. In: Proceedings of the 25th IEEE International Conference on Software Maintenance, Edmonton, 2009. 351–360

  7. 7

    Wang J, Peng X, Xing Z, et al. Improving feature location practice with multi-faceted interactive exploration. In: Proceedings of the 35th International Conference on Software Engineering, San Francisco, 2013. 762–771

  8. 8

    Haiduc S, Bavota G, Marcus A, et al. Automatic query reformulations for text retrieval in software engineering. In: Proceedings of the 35th International Conference on Software Engineering, San Francisco, 2013. 842–851

  9. 9

    Haiduc S, Bavota G, Oliveto R, et al. Automatic query performance assessment during the retrieval of software artifacts. In: Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering, Essen, 2012. 90–99

  10. 10

    Poshyvanyk D, Marcus A. Combining formal concept analysis with information retrieval for concept location in source code. In: Proceedings of the 15th International Conference on Program Comprehension, Banff, 2007. 37–48

  11. 11

    Kruchten P. The 4+ 1 view model of architecture. IEEE Softw, 1995, 12: 42–50

  12. 12

    Murphy G C, Notkin D, Sullivan K J. Software reflexion models: bridging the gap between design and implementation. IEEE Trans Softw Eng, 2001, 27: 364–380

  13. 13

    Lucia A D, Penta M D, Oliveto R, et al. Labeling source code with information retrieval methods: an empirical study. Empir Softw Eng, 2014, 19: 1383–1420

  14. 14

    Blei D M, Ng A Y, Jordan M I. Latent dirichlet allocation. J Mach Learn Res, 2003, 3: 993–1022

  15. 15

    Lucia A D, Oliveto R, Tortora G. IR-based traceability recovery processes: an empirical comparison of “one-shot” and incremental processes. In: Proceedings of the 23rd IEEE/ACM International Conference on Automated Software Engineering. Washington: IEEE Computer Society, 2008. 39–48

  16. 16

    Peng X, Xing Z, Tan X, et al. Improving feature location using structural similarity and iterative graph mapping. J Syst Softw, 2013, 86: 664–676

  17. 17

    Baeza-Yates R, Ribeiro-Neto B. Modern Information Retrieval. 1st ed. New Jersey: Addison Wesley, 1999

  18. 18

    Hayes J H, Dekhtyar A, Sundaram S K. Advancing candidate link generation for requirements tracing: the study of methods. IEEE Trans Software Eng, 2006, 32: 4–19

  19. 19

    Wang J, Peng X, Xing Z, et al. An exploratory study of feature location process: distinct phases, recurring patterns, and elementary actions. In: Proceedings of the IEEE 27th International Conference on Software Maintenance, Williamsburg, 2011. 213–222

  20. 20

    Pawlak R, Monperrus M, Petitprez N, et al. Spoon: a library for implementing analyses and transformations of java source code. Softw Pract Exper, 2015, 46: 1155–1179

  21. 21

    Lucia A D, Fasano F, Oliveto R, et al. Recovering traceability links in software artifact management systems using information retrieval methods. ACM Trans Softw Eng Meth, 2007, 16: 13

  22. 22

    Hayashi S, Sekine K, Saeki M. iFL: an interactive environment for understanding feature implementations. In: Proceedings of the 26th IEEE International Conference on Software Maintenance, Timisoara, 2010. 1–5

  23. 23

    Beck F, Dit B, Velasco-Madden J, et al. Rethinking user interfaces for feature location. In: Proceedings of the IEEE 23rd International Conference on Program Comprehension, Florence, 2015. 151–162

  24. 24

    Kuhn A, Ducasse S, Gîrba T. Semantic clustering: identifying topics in source code. Inform Softw Tech, 2007, 49: 230–243

  25. 25

    Haiduc S, Aponte J, Marcus A. Supporting program comprehension with source code summarization. In: Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering, Cape Town, 2010. 223–226

  26. 26

    Fritz T, Shepherd D C, Kevic K, et al. Developers’ code context models for change tasks. In: Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering, Hong Kong, 2014. 7–18

  27. 27

    Hill E, Pollock L L, Vijay-Shanker K. Exploring the neighborhood with dora to expedite software maintenance. In: Proceedings of the 22nd IEEE/ACM International Conference on Automated Software Engineering, Atlanta, 2007. 14–23

  28. 28

    Robillard M P. Topology analysis of software dependencies. ACM Trans Softw Eng Meth, 2008, 17: 18

  29. 29

    Wang X, Lo D, Cheng J, et al. Matching dependence-related queries in the system dependence graph. In: Proceedings of the 25th IEEE/ACM International Conference on Automated Software Engineering, Antwerp, 2010. 457–466

  30. 30

    McMillan C, Grechanik M, Poshyvanyk D, et al. Portfolio: finding relevant functions and their usage. In: Proceedings of the 33rd International Conference on Software Engineering, Waikiki, 2011. 111–120

  31. 31

    Hill E, Shepherd D, Pollock L L. Exploring the use of concern element role information in feature location evaluation. In: Proceedings of the IEEE 23rd International Conference on Program Comprehension, Florence, 2015. 140–150

  32. 32

    Knodel J, Popescu D. A comparison of static architecture compliance checking approaches. In: Proceedings of the 6th Working IEEE / IFIP Conference on Software Architecture. Washington: IEEE Computer Society, 2007. 12

  33. 33

    Kim T, Kim K, Kim W. An interactive change impact analysis based on an architectural reflexion model approach. In: Proceedings of the 34th Annual IEEE International Computer Software and Applications Conference. Washington: IEEE Computer Society, 2010. 297–302

  34. 34

    Murphy G C, Notkin D. Reengineering with reflexion models: a case study. IEEE Comput, 1997, 30: 29–36

Download references

Acknowledgements

This work was supported by National Basic Research Program of China (973 Program) (Grant No. 2016YFB1000801) and National Natural Science Foundation of China (Grant No. 61370079).

Author information

Correspondence to Xin Peng.

Additional information

Conflict of interest The authors declare that they have no conflict of interest.

Rights and permissions

Reprints and Permissions

About this article

Verify currency and authenticity via CrossMark

Cite this article

Peng, X., Xing, Z., Pan, S. et al. Reflective feature location: knowledge in mind meets information in system. Sci. China Inf. Sci. 60, 072102 (2017). https://doi.org/10.1007/s11432-015-0860-9

Download citation

Keywords

  • feature location
  • information seeking
  • reflexion model