Modeling, Data Semantics, and Natural Language
By Ken North
Previous columns in this space suggested the use of formal methods and modeling tools, particularly when your projects involve many objects and complex database schemas.
The objective of modeling is to complete a rigorous design with quality checks before you build a physical system. When you use a modeling tool, you create an abstract representation of the real world that defines relationships, structure, rules, and other information. Last month I discussed three types of modeling that will be important technologies in the new millennium. This trinity of modeling techniques includes object modeling, content modeling, and data modeling, using the Unified Modeling Language (UML), the eXtensible Markup Language (XML), and Object-Role Modeling (ORM), respectively. To build some Web applications, you might use two or three modeling techniques. For example, there are e-commerce working groups using UML and XML to create new electronic data interchange (EDI) standards. Developers creating multitier applications might use UML for middle-tier components and ORM to produce database schemas. UML and ORM share concepts such as an object-centric methodology and conceptual modeling, but ORM is a tool for designing databases, not application classes.
Because developing systems is a challenge, the software industry has produced a variety of tools to automate analysis and design. None has gained wider support than the UML adopted by the Object Management Group. The UML is an object-oriented methodology that combines separate work by three well-known experts: Grady Booch, Ivar Jacobson, and Jim Rumbaugh.