IntroductionThe term meta-data typically denotes "data describing other data," or descriptive information associated with a particular artifact. Beyond pure description, meta-data can serve to specify the structure, behavior, and configuration of many software systems, completely or in part. Furthermore, such configuration meta-data can often be cast in tabular forms that obey the conventions of relational databases. Examples of systems and system components that fit this paradigm include:• Relational databases, whose schemas are archetypes of tabular configuration meta-data; • Domain-targeted application-generator systems (for example, domain model meta-data 1 ); • Finite-state machines and protocols; • Graph structures; • File and transmission formats and software transducers for these formats; • Reconfigurable assemblages of parameterized software components and their installers; and • Families of procedures derived from a common template (for example, procedures written in some database-stored procedure languages lacking modern abstraction facilities). Configuration meta-data are relevant to several lifecycle stages of a software system.• At design time, system behavior can be analyzed by automated meta-data audit tools (for example, protocol validators and dependency analyzers). Meta-data can be orders of magnitude easier and faster to analyze than a similar volume of procedural code.• At build time, meta-data can drive code generators.• At install time, meta-data can control the configuration of system components and guide the process of updating from a previous system version or can make platform-specific adjustments.• At run time, a system (for example, a multilingual graphical user interface [GUI]) can interpret meta-data to configure itself. For our purposes, the distinction between metadata and ordinary data is their use in specifying a system configuration, not the time at which they are being interpreted. From this point on, all references to meta-data shall mean configuration meta-data.Using meta-data to represent system configuration can enhance clarity and maintainability, provided a suitable environment exists to display, edit, and analyze such meta-data. Fortunately, end-user tools developed for relational databases (for example, query generators, graphical front ends, and report generators) can service meta-data development environments, since relational databases are natural hosts for tabular data.Numerous commercial software design tools have been based upon tabular meta-data, especially in the database field. These include both simple data dictionaries for capturing annotated, searchable database schemas and complex system frameworks for configuring entire data-based systems from parameterized software components. Contemporary examples of such systems include Computer Associates' PLATINUM Erwin, 2 Sybase's PowerDesigner,* 3 and the Oracle* Change Management Pack. 4 Unfortunately, no such tool addresses the task of maintaining and upgrading high-volume production data-based systems efficien...