@TECHREPORT{R-95-38, PSURL = {/publications/cgi-bin/tr-fetch.pl?r-95-38+ps}, NUMBER = {R-95-38}, INSTITUTION = ida, ADDRESS = idaaddr, YEAR = {1995}, AUTHOR = {Johansson, Olof}, TITLE = {Using an Extended ER-Model Based Data Dictionary to Automatically Generate Product Modeling Systems}, ABSTRACTURL = {/publications/cgi-bin/tr-fetch.pl?r-95-38+abstr}, ABSTRACT = {A product modeling system (PMS) is a computer integrated development environment for a specific class of advanced products. A well integrated PMS consists of a product model database which is interfaced with CAD-applications that support graphical design of various engineering models. For power plant design, there are functional models, mechanical models, electrical models etc. This paper describes a successful approach to manage the development of a product modeling system for power plant design. The key idea is to store a high-level PMS design specification in the form of an extended entity relationship model in a data dictionary. Most of the source code for the PMS implementation is then generated automatically, using SQL-based source code generators which are easy to develop. Our PMS-development system generates product model database schemas and user interfaces. It also generates high-level database schema related interface modules in the native application development language of a CAD-system. Through these, a CAD application developer has a high-level access to the object structures in the product model database. Using the described approach, we have developed a power plant PMS which is in production at the turbine manufacturer ABB STAL and the power plant engineering company ABB Carbon. The data dictionary design and SQL-based code generation technique seems to be generally applicable and has been used for generating source code implementations in C++, LISP, SQL, and various textual form description languages. The architecture of our PMS-development system is described together with the data dictionary schema and examples of generated source code. We estimate that this software engineering approach reduces systems development costs about 5 - 10 times. NOTE: This version of the report has a few important updates compared to the original paper! See page 17 for details.}