Understanding Unified Modeling Language (UML)
UML is the de-facto standard for modeling Object Oriented software.
UML allows software engineers to document models in a way that supports scalability. UML modeling raises the level of abstraction throughout the analysis and design process. UML modeling facilitates the creation of modular designs resulting in components and component libraries that expedite development.
The UML architecture is based on the Meta-Object Facility (MOF). The MOF defines the foundation for creating modeling languages used for object modeling (UML), and for data modeling (Common Warehouse Model or CWM). The MOF defines standard formats for the key elements of a model so that they can be stored in a common repository and exchanged between modeling tools and languages. XML Metadata Interchange (XMI) provides a method of sharing modeling elements between modeling tool vendors and between repositories.
UML models can be precise enough to generate code or even the entire application.
It is imperative that a software engineer understands how UML fits into the much larger plan by the Object Management Group (OMG) to standardize systems development with Model-Driven Architecture (MDA).
Goal of UML
“One of the primary goals of UML is to advance the state of the industry by enabling object visual modeling tool interoperability. However, to enable meaningful exchange of model information between tools, agreement on semantics and notation is required. “(Source: OMG Unified Modeling LanguageTM (OMG UML), Infrastructure http://www.omg.org/spec/UML/ )
Model Driven Architecture
MDA separates business and application logic from underlying platform technology.
Model-Driven Architecture (MDA) separates the two fundamental elements of an application into two distinct models. The platform-independent model (PIM) defines business functionality and behavior, the essence of the system apart from implementation technologies. The platform-specific model (PSM) maps the PIM to a specific technology without altering the PIM. That last phrase is critical.
Meta-Object Facility (MOF)
The Meta-Object Facility (MOF) is at the heart of the MDA strategy along with the UML, CWM, CORBA, and XMI.
Common Warehouse Metamodel (CWM)
Like UML, CWM is a language derived from the MOF. CWM provides the mapping from MDA PIMs to database schemas. CWM covers the full life cycle of designing, building, and managing data warehouse applications and supports management of the life cycle
XML Metadata Interchange (XMI)
At its simplest level, XMI defines a mapping from UML to XML
• The Meta Object Facility (MOF) defines a common meta-language for building other languages.
• UML defines a meta-language, derived from the MOF, for describing object-oriented systems.
• The Common Warehouse Metamodel defines a meta-language, derived from the MOF, for describing data warehousing and related systems.
• XML Metadata Interchange defines the means to share models derived from the MOF.
The Four Layer Metamodel Architecture
1. Layer: Meta-metamodel (M3)
Description: The infrastructure for a metamodeling architecture. Defines the language for specifying metamodels.
2. Layer: Metamodel (M2)
Description: An instance of a meta-metamodel. Defines the language for specifying a model.
3. Layer: Model (M1)
Description: An instance of a metamodel. Defines a language to describe an information domain.
4. Layer: User object (user data) (MO)
Description: An instance of a model. Defines the values of a specific domain.
Pender, T. (2003). UML Bible, Wiley Publishing, Indianapolis, Indiana.
Object Management Group, Unified Modeling Language Specifications, Url: http://www.omg.org/spec/UML/