Data Integration Mechanisms
Data integration is a basic need for a CASE environment because individual tools operate on data that are of interest to other tools. For example, many CASE analysis and design tools produce code templates representing the interfaces between system components. These templates are of interest to tools that assist in code generation since they specify an interface between system components that ideally is maintained during the implementation process. Likewise, changes made to these interface descriptions during the implementation process often have an impact on the design of the system as reflected in the analysis and design tool. Many approaches have been developed to facilitate the sharing of data between components of a CASE environment. These approaches differ both in the mechanisms used to provide this support and in the degree of support provided. In this chapter we consider some concepts central to the problem of data integration, discuss the major strategies adopted to provide data integration, and analyze the strengths and weaknesses of these strategies. Finally, we discuss particular mechanisms that reflect these strategies. If environment components are to share data, then two issues must be addressed. First, agreements must be made between components concerning what data are stored, where, and how they are accessed. Second, the components must share a common understanding of the meaning of the data. We refer to the first issue as data persistence, and the second issue as data semantics. These two issues provide the backdrop for our discussion of the principal types of mechanisms for data integration. One type of mechanism focuses on different storage strategies, and the second type of mechanism focuses on semantic agreements. Although we consider each separately, no mechanism exclusively addresses only data persistence or data semantics. In practice, all mechanisms address both data persistence and data semantics to varying degrees. There are two basic strategies that support storage and sharing of persistent data. The first involves data import and export, whereby tools maintain separate databases for their unique data, and sharing is accomplished by some translation from an internal form to an external form to make it available to other tools.