Datasheet
16
Part I ✦ An Introduction to UML
UML plays an integral role in the development and use of the MDA approach. UML
is the language used to describe the key standards of MDA, namely UML itself, the
Meta-Object Facility (MOF), and the Common Warehouse Model (CWM). UML is
also used to create the work products of the MDA process, specifically the business
and implementation models.
Model-Driven Architecture (MDA)
Developers usually find that there is a division in most applications between the
business logic and the implementation mechanisms to support that logic. For exam-
ple, selling tickets to a performance is a business practice that could be imple-
mented using any of dozens of technologies and techniques. But no matter how it is
implemented, there are fundamental rules that must hold true. If the rules for con-
ducting the business transaction are bound to specific implementation technolo-
gies, then changes in those technologies require changes to the rules of the
transaction. Such changes incur the risk either of corrupting the transaction or of
causing delays while you untangle the business from the technology. This makes
even changing the application to take advantage of technological advancements a
risk to the business.
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. Defining a
PIM is like defining the job description “bookkeeper”. We can define the purpose,
responsibilities, qualifications, and skills for the job, that is, the PIM, without know-
ing who will actually do the job. The PSM corresponds to hiring someone to do the
job defined by the bookkeeper job description.
This example highlights the power of the MDA approach. I can hire different people
over time. I can even hire multiple people at the same time to perform the book-
keeping duties. I can even take the job description to another company and use it
there. In the same manner, I should be able to take the same PIM and deploy it in
many technologies or even in different businesses.
The division of the two models also supports interoperability. A business function
does not need to know the implementation of another business function in order
to access it. The interface is defined in PIM fashion. The PSM takes care of the
mapping to the implementation. So the calling function is unaffected by changes
to the implementation of the called function. In the bookkeeper example, the
bookkeeper PIM/job description can define an interface to the general ledger.
Where or how the general ledger is implemented is irrelevant. The interface is
always the same. Whether I implement the bookkeeping system at a department
store, software consulting firm, or insurance company, and whether the system
03 526049 Ch01.qxd 8/20/03 11:47 PM Page 16