The recent interest in carrying out software engineering in a distributed manner could lead to a future increase in the contracting of software engineers, grouped into flexible, distributed software teams. One of the implications will be a requirement for more customizable software engineering environments to meet the diverse requirements of different projects. This paper examines customizability issues and suggests the use of component-based systems to achieve a high degree of customizability. A component model for software tools is presented in which tool components are characterized by the services they provide, require and optionally can use. Implementations of early prototypes, using JavaBeans components and employing the JavaBeans Activation Framework, are presented. The integration of legacy tools into the model is explored, and two mechanisms are presented: adapters encapsulate access to tools implemented in Java, and wrappers integrate other external tools.
['Robert P. Biuk-Aghai']
Customizable software engineering environments for flexible distributed software teams