A software development system or versifying system has a collection of modules
for performing individual development functions such as document editing, keyword
processing, and private-copy management. Each module has an interface compatible
with that of the others, so that modules can be added to or substituted for the
original modules, if the new modules conform to the interface. The architecture
of this system supports the performance of development actions such as document
merging and keyword expansion at any location within the system. The system software
interfaces to a keyword processing subsystem comprising a plurality of expanders
for processing different sets of keywords and a keyword broker for selecting among
the expanders, whereby the client can access resources of the software development
service providers for development services identified using the keywords.