Software typically consists of many, interconnected parts. These connections, when chosen well, are key to the software working well but they are also a source of trouble when the software has to be changed, as a change can force further changes to propagate across the connections. Understanding the connections (the dependencies) within a software system is an important step in modifying software—and it can be surprisingly difficult to accomplish.
The work in LSMR has contributed both to deepening our understanding of the difficulties encountered in practice, as well as support the analysis in a number of situations: pragmatic reuse tasks; migrating applications to new API versions; polylingual software systems; and estimating change impact (technical risk estimation).
Publications
Understanding dependency analysis
- Craig Taube-Schock. Patterns of Change: Can Modifiable Software Have High Coupling? PhD thesis. University of Waikato, May 2012.
-
Robert J. Walker, Shreya Rawal, and Jonathan Sillito. Do crosscutting concerns cause modularity problems? In Proceedings of the ACM SIGSOFT International Symposium on Foundations of Software Engineering (SIGSOFT/FSE 2012), Article 49, 11 pages, 2012. doi: 10.1145/2393596.2393654
-
Craig Taube-Schock, Robert J. Walker, and Ian H. Witten. Can we avoid high coupling? In Proceedings of the 2011 European Conference on Object-Oriented Programming (ECOOP 2011), volume 6813 of Lecture Notes in Computer Science, Springer, pages 204–228, 2011. doi: 10.1007/978-3-642-22655-7_10
- Reid Holmes and Robert J. Walker. Task-specific source code dependency investigation. In Proceedings of the 4th IEEE International Workshop on Visualizing Software for Understanding and Analysis (VISSOFT '07), pages 100–107, 2007. doi: 10.1109/VISSOF.2007.4290707
- Gail C. Murphy, Albert Lai, Robert J. Walker, and Martin P. Robillard. Separating features in source code: An exploratory study. In Proceedings of the 23rd International Conference on Software Engineering (ICSE-23), pages 275–284, 2001. doi: 10.1109/ICSE.2001.919101
Pragmatic software reuse (via the Gilligan and Skipper tools)
- Soha Makady. Validating Pragmatic Reuse Tasks. PhD thesis. Department of Computer Science, University of Calgary, January 2015.
- Soha Makady and Robert J. Walker. Validating pragmatic reuse tasks by leveraging existing test suites. Software: Practice & Experience, 43(9):1039–1070, September 2013. doi: 10.1002/spe.2134
- Reid Holmes and Robert J. Walker. Systematizing pragmatic software reuse. ACM Transactions on Software Engineering and Methodology, 21(4):20/1–20/44, November 2012. doi: 10.1145/2377656.2377657
- Reid Holmes. Pragmatic Software Reuse. PhD thesis. Department of Computer Science, University of Calgary, November 2008.
- Reid Holmes and Robert J. Walker. Lightweight, semi-automated enactment of pragmatic-reuse plans. In Proceedings of the International Conference on Software Reuse (ICSR '08) [High Confidence Software Reuse in Large Systems, volume 5030 of Lecture Notes in Computer Science, Springer], pages 330–342, 2008. doi: 10.1007/978-3-540-68073-4_35
- Reid Holmes and Robert J. Walker. Semi-automating pragmatic reuse tasks. In Proceedings of the ACM/IEEE International Conference on Automated Software Engineering (ASE '08), pages 481–482, 2008. Research demonstration track. doi: 10.1109/ASE.2008.81
- Reid Holmes and Robert J. Walker. Supporting the investigation and planning of pragmatic reuse tasks. In Proceedings of the 29th International Conference on Software Engineering (ICSE '07), pages 447–457, 2007. doi: 10.1109/ICSE.2007.83
Migrating applications to new API versions
- Bradley Cossette. Dependency Detection and Migration in Software Systems and Libraries. PhD thesis. Department of Computer Science, University of Calgary, September 2014.
-
Bradley E. Cossette and Robert J. Walker. Seeking the ground truth: A retroactive study on the evolution and migration of software libraries. In Proceedings of the ACM SIGSOFT International Symposium on Foundations of Software Engineering (SIGSOFT/FSE 2012), Article 55, 11 pages, 2012. doi: 10.1145/2393596.2393661
Polylingual software systems (via the DSketch tool)
- Brad Cossette and Robert J. Walker. DSketch: Lightweight, adaptable dependency analysis. In Proceedings of the 2010 ACM SIGSOFT International Symposium on Foundations of Software Engineering (SIGSOFT 2010/FSE-18), pages 297–306, 2010. doi: 10.1145/1882291.1882335
- Bradley Cossette. Lightweight Support for Estimation of Polylingual Dependencies. MSc thesis. Department of Computer Science, University of Calgary, August 2008.
- Brad Cossette and Robert J. Walker. Polylingual dependency analysis using island grammars: A cost versus accuracy evaluation. In Proceedings of the 2007 IEEE International Conference on Software Maintenance (ICSM '07), pages 214–223, 2007. doi: 10.1109/ICSM.2007.4362634
Dependency analysis in the presence of dangling references (via the Trident tool)
- Puneet Kapur. Refactoring References for Library Migration. MSc thesis. Department of Computer Science, University of Calgary, May 2010.
- Puneet Kapur, Brad Cossette, and Robert J. Walker. Refactoring references for library migration. In Proceedings of the 2010 ACM Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA 2010), pages 726–738, 2010. doi: 10.1145/1869459.1869518
Awareness of changes to depended upon APIs.
- Reid Holmes and Robert J. Walker. Customized awareness: Recommending relevant external change events. In Proceedings of the 2010 ACM/IEEE International Conference on Software Engineering (ICSE 2010), pages 465–474, 2010. doi: 10.1145/1806799.1806867
-
Reid Holmes and Robert J. Walker. Developer-specific awareness of external changes. In 2009 Workshop on Socio-technical Congruence at the International Conference on Software Engineering, 2009. 4 pages.
-
Reid Holmes and Robert J. Walker. Promoting developer-specific awareness. In Proceedings of the 2008 International Workshop on Cooperative and Human Aspects of Software Engineering (CHASE '08), International Conference on Software Engineering, pages 61–64, 2008. doi: 10.1145/1370114.1370130
Estimating change impact (via the TRE tool)
- 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