Journal of Systems Integration, 4, 5-32 (1994) 9 1994 Kluwer Academic Publishers, Boston. Manufactured in The Netherlands. A Framework for Characterization of the Degree of Integration of Software Tools JAMES D. KIPER Systems Analysis Department, Miami University, Oxford, Ohio 45056 JKIPER@JKCUBE. APS. MUOHIO. EDU (Received July 10, 1992; Revised December 14, 1992) Abstract. Software tool integration and integrated environments for software project development, i.e., integrated computer aided software engineering (CASE), have become important mechanisms for producing software in an effective and efficient manner. This article is not a presentation of another such environment or a description of another technique for integration. Rather, it presents a categorization of degrees of tool integration and integra- bility. It is useful to identify the level of integration or integrability before any problems caused by an inappropriate level of integration can be overcome. This categorization is qualified by three parameters: granularity, coherence, and harmony. These parameters can be applied to each component of a typical programming environment, i.e., to a project information base, software development tools, and user interface. Combinations of values of these parameters form a continuum of levels of integration from loose to tight. This research was motivated by the need to understand the levels of integration that are possible and the char- acteristics that facilitate such integration in order to evaluate the level of integration of tools sets and to more effectively integrate new and existing tools into productive environments. The article closes with an application of these parameters to some existing software environments and sets of tools. Key Words: Software tools, integration, softwareenvironment, incrementaltools, integrationcategorization,project information base, case interface. 1. Introduction Software tools of many types have proven their usefulness and even their indispensability to software development over the past thirty years. A tool, in the context of software develop- ment, is a software component that aids the user in performance of the tasks of software construction. This assistance varies from actually automating tasks [2, 11] to giving expert advice [29] or providing data management. These tools enable effective and efficient use of computer and human resources permitting the user to concentrate on creative aspects of project development while allocating the routine tasks to a tool. These tool-automated tasks are often performed with greater accuracy, reliability, and speed than is possible by human effort alone. Software tools have been continually developed and improved as additional portions of the software development process are automated. However, this progress has not kept pace with the rate of increase in the complexity and size of software projects, contributing signif- icantly to the well documented "software crisis" [3, 6]. This continually growing need for more powerful tools can be met in two ways. The most obvious method is the development of new, more powerful, more usable tools with increased functionality. The other solution is to improve the power and usability of tools through integration. The second method, tool integration, is the topic of this article.