Traditional approaches to search place a heavy burden on the developer to know and to specify exactly what they seek.  With an overly specific search, important cases will be missed; with an overly generic search, important cases will be drowned in a sea of noise.  This project seeks techniques for finding a better balance, reducing the burden on the developer by using heuristics that encode knowledge about the tasks being performed.

Software

We have built four tools related to this project: Strathcona (finding relevant examples of API usage); Reverb (finding locations in a project that are similar to a change); Reviver (finding code that is related to a test case); TRE (finding code that is potentially impacted by a change). None of these is publicly released, though they could be made available to collaborators.

Publications

Reviver

  • Mehrdad Nurolahzade GhalejooghiTest Driven Reuse: Improving the Selection of Semantically Relevant Code. PhD thesis. Department of Computer Science, University of Calgary, April 2014.
  • Mehrdad Nurolahzade, Robert J. Walker, and Frank Maurer. An assessment of test-driven reuse: Pitfalls and promises. In Safe and Secure Software Reuse [Proceedings of the International Conference on Software Reuse (ICSR)], volume 7925 of Lecture Notes in Computer Science, pages 65–80, 2013. doi: 10.1007/978-3-642-38977-1_5

Reverb

  • Mark McIntyre. Supporting Repetitive Small-Scale Changes. MSc thesis. Department of Computer Science, University of Calgary, September 2007.
  • Mark McIntyre and Robert J. Walker. Assisting potentially-repetitive small-scale changes via semi-automated heuristic search. In Proceedings of the ACM/IEEE International Conference on Automated Software Engineering, pages 497–500, 2007. doi: 10.1145/1321631.1321718

 TRE

  • Robert J. Walker, Reid Holmes, Ian Hedgeland, Puneet Kapur, and Andrew Smith. A lightweight approach to technical risk estimation via probabilistic impact analysis. In Proceedings of the 3rd International Workshop on Mining Software Repositories (MSR '06), 28th International Conference on Software Engineering, pages 98–104, 2006. doi: 10.1145/1137983.1138008
  • Robert J. Walker, Reid Holmes, Ian Hedgeland, Puneet Kapur, and Andrew Smith. A Lightweight Approach to Technical Risk Estimation via Probabilistic Impact Analysis. Technical report 2006-817-10, Department of Computer Science, University of Calgary, Calgary, Canada, February 2006. 8 pages. doi: 1880/46089

Strathcona

  • Reid Holmes, Robert J. Walker, and Gail C. Murphy. Approximate structural context matching: An approach to recommend relevant examples. IEEE Transactions on Software Engineering, 32(12):952–970, December 2006. doi: 10.1109/TSE. 2006.117
  • Reid Holmes, Robert J. Walker, and Gail C. Murphy. Strathcona example recommendation tool. In Proceedings of the Joint European Software Engineering Conference and ACM SIGSOFT International Symposium on the Foundations of Software Engineering (ESEC/FSE '05), pages 237–240, 2005. doi: 10.1145/1081706.1081744