Systematizing Pragmatic Software Reuse

被引:52
作者
Holmes, Reid [1 ]
Walker, Robert J. [2 ]
机构
[1] Univ Waterloo, David R Cheriton Sch Comp Sci, Waterloo, ON N2L 3G1, Canada
[2] Univ Calgary, Dept Comp Sci, Calgary, AB T2N 1N4, Canada
基金
加拿大自然科学与工程研究理事会;
关键词
Human Factors; Experimentation; Algorithms; Reliability; Languages; Software reuse; white box reuse; pragmatic software reuse; source code investigation; lightweight process and tooling; low commitment; planning; pragmatic-reuse plans; pragmatic-reuse plan enactment; Gilligan; STRUCTURAL CONTEXT; COMPREHENSION; MAINTENANCE; QUESTIONS;
D O I
10.1145/2377656.2377657
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Many software reuse tasks involve reusing source code that was not designed in a manner conducive to those tasks, requiring that ad hoc modifications be applied. Such pragmatic reuse tasks are a reality in disciplined industrial practice; they arise for a variety of organizational and technical reasons. To investigate a pragmatic reuse task, a developer must navigate through, and reason about, source code dependencies in order to identify program elements that are relevant to the task and to decide how those elements should be reused. The developer must then convert his mental model of the task into a set of actions that he can perform. These steps are poorly supported by modern development tools and practices. We provide a model for the process involved in performing a pragmatic reuse task, including the need to capture (mentally or otherwise) the developer's decisions about how each program element should be treated: this is a pragmatic-reuse plan. We provide partial support for this model via a tool suite, called Gilligan; other parts of the model are supported via standard IDE tools. Using a pragmatic-reuse plan, Gilligan can semiautomatically transform the selected source code from its originating system and integrate it into the developer's system. We have evaluated Gilligan through a series of case studies and experiments (each involving industrial developers) using a variety of source systems and tasks; we report in particular on a previously unpublished, formal experiment. The results show that pragmatic-reuse plans are a robust metaphor for capturing pragmatic reuse intent and that, relative to standard IDE tools, Gilligan can (1) significantly decrease the time that developers require to perform pragmatic reuse tasks, (2) increase the likelihood that developers will successfully complete pragmatic reuse tasks, (3) decrease the time required by developers to identify infeasible reuse tasks, and (4) improve developers' sense of their ability to manage the risk in such tasks.
引用
收藏
页数:44
相关论文
共 103 条
[1]  
[Anonymous], P IFIP TC13 INT C HU
[2]  
[Anonymous], P WORKSH EMP STUD PR
[3]  
[Anonymous], THESIS U CALGARY
[4]  
[Anonymous], 1994, Qualitative data analysis, DOI DOI 10.1080/0140528790010406
[5]  
[Anonymous], BUG 36967 ENABLE ECL
[6]  
[Anonymous], 2006, P 2006 INT WORKSH MI, DOI DOI 10.1145/1137983.1137999
[7]  
[Anonymous], 1986, ESP 86
[8]  
[Anonymous], ECLIPSE RICH CLIENT
[9]  
[Anonymous], PHILOS T ROYAL SOC A
[10]  
Baxter I. D., 2002, P INT WORKSH PRINC S, P48, DOI DOI 10.1145/512035.512047