The concept of component-based application development dates to the structured development revolution of the 1970's. At that time, developers attempted to maximize code reuse via reusable models. However, the structured paradigm does not provide a mechanism for building entire systems from pre-built components nor does it effectively describe a method for reusing models early in the life cycle.
Object oriented design and development techniques then emerged with promises of reuse. Generally, however, the greatest reuse is still achieved with the use of the software components developed later in the life cycle.
Every development methodology comes with a paradigm invisibly attached. The assumptions and expectations of its practitioners are largely a product of familiarity with specific tools and techniques. An Object-Oriented analyst, never leaves home without an extensive class library. And the use of a class library encourages a view of software development as "design by exception" - Reuse by default.
The conventional data modeler approaches problems with an entirely different paradigm. Typically this results in the "blank slate" approach - entities are modeled one at a time, starting from scratch. Every model is assumed to be unique. With experience, lots of it, the data modeler gradually comes to a deeper realization. Certain patterns begin to look familiar, regardless of organization or industry. Almost subconsciously, a collection of reusable constructs is amassed. Then, with little apparent effort, the experience analyst "comes up with" business model constructs that amaze novices. Effectively the expert data modeler has changed paradigms and is applying an object-oriented approach to data modeling. Having pattern awareness is like being armed with an object class library.
Visible's Universal Data Model attempts to fulfill the ideal of total model reuse through familiar objects and patterns. The key to this approach is to consider a model as constructed of reusable component; i.e., object classes. Every model contains fairly common object classes developed over and over again in different guises. By raising the level of abstraction we are able to generalize about the object classes and their relationships within a single model - thus, the Visible Universal Data Model.
Click here to: Download a copy of this paper in Adobe Acrobat Reader (.pdf) file format.