Reuse-Conducive Development Environments

Yunwen Ye, Gerhard Fischer
2005 Automated Software Engineering : An International Journal  
Despite its well-recognized benefits, software reuse has not met its expected success due to technical, cognitive, and social difficulties. We have systematically analyzed the reuse problem (especially the cognitive and social difficulties faced by software developers who reuse) from a multidimensional perspective, drawing on our long-term research on information retrieval, human-computer interaction, and knowledge-based systems. Based on this analysis, we propose the concept of reuse-conducive
more » ... development environments, which encourage and enable software developers to reuse through the smooth integration of reuse repository systems and development environments. We have designed, implemented, and evaluated CodeBroker-a reuse-conducive development environment-that autonomously locates and delivers task-relevant and personalized components into the current software development environment. Empirical evaluations of CodeBroker have shown that the system is effective in promoting reuse by enabling software developers to reuse components unknown to them, reducing the difficulties in locating components, and augmenting the programming capability of software developers. KEYWORDS Software reuse; reuse-conducive environments; high-functionality applications; information delivery; relevance to the task-at-hand; personalization; location, comprehension, and modification model; latent semantic analysis; centralized and decentralized development of reuse repositories; seeding, evolutionary growth, and reseeding model; CodeBroker 2.1 Cognitive Issues in Reuse ______________________________________________________ 2.2 Information Retrieval and Reuse _______________________________________________ 2.3 Knowledge-Based Systems and Reuse ___________________________________________ CODEBROKER: DELIVERING TASK-RELEVANT AND PERSONALIZED COMPONENTS _____________________________________________________________ 3.1 Overview of the CodeBroker System ___________________________________________ 3.2 Locating Task-Relevant Components ___________________________________________ 3.3 Supporting Retrieval-by-Reformulation ________________________________________ 3.4 Creating and Using Discourse Models __________________________________________ 3.5 Delivering Personalized Components ___________________________________________ 4. EVALUATION _________________________________________________________ 4.1 Recall and Precision _________________________________________________________ 4.2 The Structure of the Experiments ______________________________________________ 4.3 Findings of Experiments______________________________________________________ 5. DISCUSSION__________________________________________________________ 6. EVOLUTIONARY CONSTRUCTION OF REUSE REPOSITORIES _____________ 6.1 The Centralized Paradigm ____________________________________________________ 6.2 The Decentralized, Evolutionary Paradigm ______________________________________ 6.3 A Comparison of the Two Paradigms___________________________________________
doi:10.1007/s10515-005-6206-x fatcat:nhyedap4hrabpp7q5c6oix6gaq