he rationale for reengineering is straightforward: new software is expensive to develop, but old software can be costly to maintain and adapt to new uses. The goal of reengineering is to mechanically reuse past development efforts in order to reduce maintenance expense and improve software flexibility. Reengineering is applicable to diverse software such as programming code, databases, and inference logic [2]. This article focuses on the topic of databases and, in particular, relational databases (RDBs).There are various motives for reverse engineering of databases. One may want to migrate among database paradigms: from past hierarchical, network, and relational databases to modern relational and objectoriented databases. A more mundane task would be to migrate between different implementations of a database paradigm, for example, from one vendor's RDB to another's RDB. Reverse engineering can also elucidate poorly documented existing software when the developers are no longer available for advice. We have derived substantial benefit from reverse engineering of vendor software. Reverse engineering provides an unusual source of insight.Object-oriented models provide a natural language for facilitating the reengineering process. An object-oriented model can describe the existing software, the reverse-engineered semantic intent, and the forwardengineered new system. This article adopts the object-modeling technique (OMT) notation for modeling data [7]. Graphical OMT models are intuitive, yet provide a rigorous basis for specifying software. OMT concepts are similar to those in extended entity-relationship modeling.This article makes two major contributions: 1) We propose a more robust process than advanced in the literature. We recognize generalization early in our reverse-engineering process and provide guidelines for coping with design optimizations and unfortunate implementation decisions. Our process emphasizes analysis of candidate keys rather than primary keys. We incorporate three sources for information: schema, observed patterns of data, and our semantic understanding of application intent. 2) We report our experiences with industrial examples. Typical liTipleinentation Strategies for Forward EngineeringReverse-engineering strategies must consider past practices. In our case studies we have seen some surprising design techniques. Often the model or its implementation as a schema was fundamentally flawed or violated good design practice. We found violations of most of the assumptions that are made in existing reverse-engineering methods.Classes. Each class is usually implemented as a table, with a column for each attribute. Unique indexes are usually specified on primary and candidate keys. There are several approaches to constructing a primary 42 May 1994/Vol,37, No,5 I UHICATIOHS OF THB ACM 30 s 2S 20-M
Of the many approaches to relational database design, the Object Modeling Technique (OMT) is particularly effective. A comprehensive explanation and two applications show the semantic improvement of OMT over other approaches.
Several processes have been advanced in the literature for reverse engineering of relational databases. The inputs to these processes are relational tables and available contextual injormation. The output is a model of the underlying logical intent, apart from the implementation artifacts. Most of the existing processes for database reverse engineering are inadequate; they assume too high a quality of input information. The authors of these processes are skilled database designers and they are overly optimistic about the state-of-the-art, as practiced. This paper catalogs odd aspects of relational database designs that we have encountered over the past several years. Many of these database designs are from commercial software products.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.
hi@scite.ai
10624 S. Eastern Ave., Ste. A-614
Henderson, NV 89052, USA
Copyright © 2024 scite LLC. All rights reserved.
Made with 💙 for researchers
Part of the Research Solutions Family.