Tool integration via fine-grained data management
Karen Shannon · 1992
Software development tools have long been used to increase the productivity of software engineers. However, the use of individual, isolated tools offers only a partial solution to the complexity of software development; a more complete solution requires the integration of tools into a software development environment (SDE). This research describes a mechanism to integrate tools in a large scale SDE. SDE tools are integrated by sharing data, hence data structure communication is the key to our approach to tool integration. We focus on large scale SDEs because the increase in the number of tools and the increase in size and complexity of individual tools and shared data complicate the interface among the tools. We focus on line grained data in part because the performance requirements concerning fine grained data are most difficult to meet. We identify four additional characteristics we wish to preserve in large scale SDEs: extensibility or ease of modification, flexibility or ease of configuration, integrity or ease of maintaining consistency, and efficiency at both development and execution time. In general, it is impossible to preserve all characteristics simultaneously. However, our approach exploits different requirements at various points during the development of the SDE. We examine a spectrum of approaches to tool integration incorporating and generalizing those previously proposed by others. Implementation techniques are discussed that allow tools to be moved individually along this spectrum with relative ease as the SDE evolves. Finally, we discuss specific facilities of a meta-environment, a specific environment tailored to the development of SDEs, that allows the SDE developer to precisely control the development tradeoffs of the SDE, and we examine how the runtime system is used to effect integration. We show that it is possible to initially sacrifice SDE execution time efficiency to achieve SDE development time efficiency, extensibility, and flexibility without sacrificing integrity. We also explain how to shift the SDE, with no changes to the source code, to many intermediate points along the coupling spectrum eventually reaching high execution time efficiency at the production stage.