Supporting Component-Based Software Development

with Active Component Repository Systems

 

The Problem

Reuse of software components can improve both the quality and productivity of software development. Before software components are reused, however they must be located. Locating of software components is supported by component repository systems. Current component repository systems fall short in supporting programmers who make no attempt to reuse because they do not know the existence of reusable components or perceive reuse is too costly.

The Solution

This research proposes a conceptual framework for the design of active component repository systems, a new kind of repository systems equipped with active information delivery mechanism. Active component repository systems treat reuse as an integral part of programming and support the modeless transition between reuse and programming because they can be integrated with current programming environments; and through this integration, their active information delivery mechanism delivers task-relevant and user-specific components without being given explicit reuse queries to help programmers reuse unknown components and to reduce the cost of reuse.

The System: CodeBroker


An active component repository system, CodeBroker, has been developed to support Java programmers. CodeBroker consists of three cooperative software agents: Listener, Fetcher and Presenter. Listener runs continuously in the background of Emacs and extracts reuse queries autonomously from doc comments and signatures. Fetcher retrieves components matching the reuse queries. Presenter presents those retrieved components in the programming environment after it has removed those components already known to the programmer based on his or her user model.

For example, in the above figure, the first component in the delivery buffer can be directly reused by the programmer to implement his or her task that is indicated in the doc comment---Create a random number between two limits.


[HOME]     [Dissertation]