Top-down Feature Mining Framework for Software Product Line

Yutian Tang, Hareton Leung


Software product line engineering is regarded as a promising approach to generate tailored software products by referencing shared software artefacts. However, converting software legacy into a product line is extremely difficult, given the complexity, risk of the task and insufficient tool support. To cope with this, in this paper, we proposed a top-down feature-mining framework to facilitate developers extracting code fragments for features concerned. Our work aims to fulfill the following targets: (1) identify features at a fine granularity, (2) locate code fragments for concerned feature hierarchically and consistently, and (3) combine program analysis techniques and feature location strategies to improve mining performance. From our preliminary case studies, the top-down framework can effectively locate features and performs as good as Christians approach and performs better than the topology feature location approach.


  1. Antoniol, G. and Gueheneuc, Y. G. (2006). Feature identification: An epidemiological metaphor. Software Engineering, IEEE Transactions on, 32(9):627-641.
  2. Apel, S., Kastner, C., and Lengauer, C. (2009). Featurehouse: Language- independent, automated software composition.
  3. Benavides, D., Segura, S., and Ruiz-Corts, A. (2010). Automated analysis of feature models 20 years later: A literature review. Information Systems, 35(6):615-636.
  4. Chen, L., Babar, M. A., and Ali, N. (2009). Variability management in software product lines: a systematic review.
  5. Cleary, B., Exton, C., Buckley, J., and English, M. (2009). An empirical analysis of information retrieval based concept location techniques in software comprehension. Empirical Software Engineering, 14(1):93-130.
  6. Cornelissen, B., Zaidman, A., van Deursen, A., Moonen, L., and Koschke, R. (2009). A systematic survey of program comprehension through dynamic analysis. Software Engineering, IEEE Transactions on, 35(5):684- 702.
  7. Dhillon, I., Guan, Y., and Kulis, B. (2005). A fast kernelbased multilevel algorithm for graph clustering. In Proceedings of the eleventh ACM SIGKDD international conference on Knowledge discovery in data mining, pages 629-634. ACM.
  8. Dit, B., Revelle, M., Gethers, M., and Poshyvanyk, D. (2013). Feature location in source code: a taxonomy and survey. Journal of Software: Evolution and Process, 25(1):53-95.
  9. Egyed, A., Binder, G., and Grunbacher, P. (2007). Strada: A tool for scenario-based feature-to-code trace detection and analysis. In Companion to the proceedings of the 29th International Conference on Software Engineering, pages 41-42. IEEE Computer Society.
  10. Eisenberg, A. D. and De Volder, K. Dynamic feature traces: Finding features in unfamiliar code. In Software Maintenance, 2005. ICSM'05. Proceedings of the 21st IEEE International Conference on, pages 337-346. IEEE.
  11. Figueiredo, E., Cacho, N., Sant'Anna, C., Monteiro, M., Kulesza, U., Garcia, A., Soares, S., Ferrari, F., Khan, S., and Dantas, F. (2008). Evolving software product lines with aspects. In Software Engineering, 2008. ICSE'08. ACM/IEEE 30th International Conference on, pages 261-270. IEEE.
  12. Galster, M., Weyns, D., Tofan, D., Michalik, B., and Avgeriou, P. (2013). Variability in software systems-a systematic literature review.
  13. Hill, E., Pollock, L., and Vijay-Shanker, K. Automatically capturing source code context of nl-queries for software maintenance and reuse. In Proceedings of the 31st International Conference on Software Engineering, pages 232-242. IEEE Computer Society.
  14. Kang, K. C., Sugumaran, V., and Park, S. (2009). Applied software product line engineering. CRC press.
  15. Kastner, C., Dreiling, A., and Ostermann, K. (2014). Variability mining: Consistent semiautomatic detection of product-line features.
  16. Laguna, M. A. and Crespo, Y. (2013). A systematic mapping study on software product line evolution: From legacy system reengineering to product line refactoring. Science of Computer Programming, 78(8):1010- 1034.
  17. Lukoit, K., Wilde, N., Stowell, S., and Hennessey, T. Tracegraph: Immediate visual location of software features. In Software Maintenance, 2000. Proceedings. International Conference on, pages 33-39. IEEE.
  18. McMillan, C., Grechanik, M., Poshyvanyk, D., Xie, Q., and Fu, C. Portfolio: finding relevant functions and their usage. In Software Engineering (ICSE), 2011 33rd International Conference on, pages 111-120. IEEE.
  19. Newman, M. E. and Girvan, M. (2004). Finding and evaluating community structure in networks. Physical review E, 69(2):026113.
  20. Poshyvanyk, D., Gueheneuc, Y. G., Marcus, A., Antoniol, G., and Rajlich, V. (2007). Feature location using probabilistic ranking of methods based on execution scenarios and information retrieval. Software Engineering, IEEE Transactions on, 33(6):420-432.
  21. Poshyvanyk, D., Marcus, A., Dong, Y., and Sergeyev, A. (2005). Iriss-a source code exploration tool. In ICSM (Industrial and Tool Volume), pages 69-72.
  22. Poshyvanyk, D., Petrenko, M., Marcus, A., Xie, X., and Liu, D. (2006). Source code exploration with google. In Software Maintenance, 2006. ICSM'06. 22nd IEEE International Conference on, pages 334-338. IEEE.
  23. Robillard, M. P. (2008). Topology analysis of software dependencies. ACM Transactions on Software Engineering and Methodology (TOSEM), 17(4):18.
  24. Robillard, M. P. and Murphy, G. C. (2007). Representing concerns in source code. ACM Transactions on Software Engineering and Methodology (TOSEM), 16(1):3.
  25. Rountev, A., Kagan, S., and Gibas, M. (2004). Static and dynamic analysis of call chains in java. In ACM SIGSOFT Software Engineering Notes, volume 29, pages 1-11. ACM.
  26. Saul, Z. M., Filkov, V., Devanbu, P., and Bird, C. (2007). 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, pages 15-24. ACM.
  27. Savage, T., Revelle, M., and Poshyvanyk, D. (2010). Flat 3: feature location and textual tracing tool. In Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering-Volume 2, pages 255-258. ACM.
  28. Sderberg, E., Ekman, T., Hedin, G., and Magnusson, E. (2013). Extensible intraprocedural flow analysis at the abstract syntax tree level. Science of Computer Programming, 78(10):1809-1827.
  29. Valente, M. T., Borges, V., and Passos, L. (2012). A semiautomatic approach for extracting software product lines. Software Engineering, IEEE Transactions on, 38(4):737-754.
  30. Warr, F. W. and Robillard, M. P. (2007). Suade: Topologybased searches for software investigation. In Proceedings of the 29th international conference on Software Engineering, pages 780-783. IEEE Computer Society.
  31. Wilde, N. and Scully, M. C. (1995). Software reconnaissance: mapping program features to code. Journal of Software Maintenance: Research and Practice, 7(1):49-62.
  32. Wong, W. E., Gokhale, S. S., and Horgan, J. R. (2000). Quantifying the closeness between program components and features. Journal of Systems and Software, 54(2):87-98.

Paper Citation

in Harvard Style

Tang Y. and Leung H. (2015). Top-down Feature Mining Framework for Software Product Line . In Proceedings of the 17th International Conference on Enterprise Information Systems - Volume 2: ICEIS, ISBN 978-989-758-097-0, pages 71-81. DOI: 10.5220/0005370300710081

in Bibtex Style

author={Yutian Tang and Hareton Leung},
title={Top-down Feature Mining Framework for Software Product Line},
booktitle={Proceedings of the 17th International Conference on Enterprise Information Systems - Volume 2: ICEIS,},

in EndNote Style

JO - Proceedings of the 17th International Conference on Enterprise Information Systems - Volume 2: ICEIS,
TI - Top-down Feature Mining Framework for Software Product Line
SN - 978-989-758-097-0
AU - Tang Y.
AU - Leung H.
PY - 2015
SP - 71
EP - 81
DO - 10.5220/0005370300710081