Parts Exploration

The parts exploration (PE) facility allows the user to couch his queries about available software components in terms of his application or domain rather than in terms of specific catalog attributes. This permits more meaningful interaction between the application developer and the component library early in the application development lifecycle, thus enhancing the prospect that significant levels of reuse will be achieved.

A prototype parts exploration system that can accommodate multiple domains simultaneously was developed. This system was used for the CAMP missile operational flight software domain, as well as for a smaller, test domain.

The PE system prompts the user for information about his domain or application, and based on the information obtained, PE will identify potentially applicable reusable components. This information can be presented to the user in either list form or in the form of a system hierarchy tree that the user can traverse until he gets to the lowest level reusable components that comprise the leaf nodes in the tree. Once the user has this list of components, he can obtain detailed information about them from the catalog.

The parts exploration system must be initialized for a given domain before that domain can be supported by the tool. Initialization consists of entering domain-specific information that would generally be obtained during a domain analysis.

Several issues were not addressed in our development of the parts exploration system. For example, the definition of domains, and the treatment of overlapping domains and related domains were not addressed. Although the definition of domains impacts the treatment of overlapping and related domains, this definition was left to the user. In the case of overlapping domains, components may be developed independently for these overlapping domains, and thus the components in the domain intersection are not really in both domains; they are only in the domain for which they were developed. This results in the user not being informed of potentially relevant components that were developed for other domains. A similar situation arises with related domains. For example, missile and aircraft autopilot applications are, at some level, similar. If the user were in the missile operational flight software domain and the system identified the need for an autopilot in his application, he would only be informed of the availability of reusable components for the development of missile autopilots, despite the fact that he might be able to tailor an aircraft autopilot for his application. Another issue that bears further exploration is that of the granularity of the domain information that is needed in order for the PE system to effectively identify relevant components for the user.

Earlier in the CAMP program, a version of PE was prototyped for the missile operational flight software domain using an expert system shell. The current system was developed in Ada running under VAX VMS. The interface is very simple and can accommodate even a VT100-type of terminal. The system itself makes use of reusable components.