Developing software engineering tools is a difficult task, and the environm
ents in which these tools are deployed continually evolve as software devel
opers' processes, tools and tool sets evolve. To more effectively develop s
uch evolvable environments, we have been using component-based approaches t
o build and integrate a range of software development tools, including CASE
and workflow tools, file servers and versioning systems, and a variety of
reusable software agents. We describe the rationale for a component-based a
pproach to developing such tools, the architecture and support tools we hav
e used some resultant tools and tool facilities we have developed, and summ
arise the possible future research directions in this area. (C) 2000 Elsevi
er Science B.V. All rights reserved.