Reuse Planning and Enactment
The unanticipated reuse of large-scale software features remains an elusive goal of software engineering. In this project, we are taking a pragmatic approach to tackling the issue. The work builds atop Strathcona, IConJava, and Martin Robillard’s feature identification approach.
The goal of this project is to help developers reuse source code that wasn’t intended to be reused. The approach we are taking is to help developers identify and manage architectural mismatch between a feature they wish to reuse and the system they wish to reuse it within. We are focusing on providing developers tools to identify structural dependencies a feature has on its context and enabling them to deal these dependencies as necessary to complete their task.
A benefit of our approach is that it provides developers a single point from which they can expore source code to be reused and create a plan that they can then use to determine whether or not to complete the reuse task and if so help them carry it out.
Currently, we are focusing on the feature identification aspect of this approach, future work includes supporting the migration of a feature from its original context to the developers task space.
Publications
Reid Holmes and Robert J. Walker. Lightweight, Semi-Automated Enactment of Pragmatic-Reuse Plans. In Proceedings of the 10th International Conference on Software Reuse (Beijing, China, May 23, 2008). ICSR ‘08. 330-342.
Reid Holmes and Robert J. Walker. Supporting task-specific source code dependency investigation. In Proceedings of the 4th IEEE International Workshop on Visualizing Software for Understanding and Analysis (Banff, Ab, Canada. June 26, 2007). VISSOFT ‘07. 100-108.
Reid Holmes and Robert J. Walker. Supporting the investigation and planning of pragmatic reuse tasks. In Proceedings of the International Conference on Software Engineering (Minneapolis, MN, USA. May 25, 2007). ICSE ‘07. ACM Press, New York, NY, 447-457.
Reid Holmes. Unanticipated reuse of large-scale software features. In Proceedings of the International Conference on Software Engineering, pp. 961-–964, 2006. Doctoral symposium.