Supporting the Investigation and Planning of Pragmatic Reuse Tasks

Software reuse has long been promoted as a means to increase developer productivity; however, reusing source code is difficult in practice and tends to be performed in an ad hoc manner. This is problematic because poor decisions can be made either to attempt an unwise, overly complex reuse task, or to avoid a reuse task that would have saved time and effort. This paper describes a lightweight tool that supports the investigation and planning of pragmatic reuse tasks. The tool helps developers to identify the dependencies from the source code they wish to reuse, and to decide how to deal with those dependencies. Questions about pragmatic reuse are evaluated through a survey of industrial developers. The tool is evaluated through the planning and execution of reuse tasks by industrial developers.

[1]  Martin P. Robillard,et al.  Automatic generation of suggestions for program investigation , 2005, ESEC/FSE-13.

[2]  Miryung Kim,et al.  Program element matching for multi-version program analyses , 2006, MSR '06.

[3]  Charles W. Krueger,et al.  Software reuse , 1992, CSUR.

[4]  David Garlan,et al.  Architectural Mismatch: Why Reuse Is So Hard , 1995, IEEE Softw..

[5]  Victor R. Basili,et al.  Identifying and qualifying reusable software components , 1991, Computer.

[6]  Gail C. Murphy,et al.  ActiveAspect: presenting crosscutting structure , 2005, ACM SIGSOFT Softw. Eng. Notes.

[7]  Richard W. Selby,et al.  Enabling reuse-based software development of large-scale systems , 2005, IEEE Transactions on Software Engineering.

[8]  J. J. Whelan,et al.  5th international conference on software engineering , 1981, SOEN.

[9]  Amir Michail Browsing and searching source code of applications written using a GUI framework , 2002, ICSE '02.

[10]  Giuseppe Visaggio,et al.  Extracting Reusable Funtions by Flow Graph-Based Program Slicing , 1997, IEEE Trans. Software Eng..

[11]  Václav Rajlich,et al.  Case study of feature location using dependence graph , 2000, Proceedings IWPC 2000. 8th International Workshop on Program Comprehension.

[12]  William B. Frakes,et al.  Software reuse research: status and future , 2005, IEEE Transactions on Software Engineering.

[13]  Martin P. Robillard,et al.  Concern graphs: finding and describing concerns using structural program dependencies , 2002, Proceedings of the 24th International Conference on Software Engineering. ICSE 2002.

[14]  Chad Saunders,et al.  Cognitive heuristics in software engineering applying and extending anchoring and adjustment to artifact reuse , 2004, IEEE Transactions on Software Engineering.

[15]  Miryung Kim,et al.  An empirical study of code clone genealogies , 2005, ESEC/FSE-13.

[16]  Christopher J. Fox,et al.  Sixteen questions about software reuse , 1995, CACM.