01.01.2015 Views

UML Weekend Crash Course™ - To Parent Directory

UML Weekend Crash Course™ - To Parent Directory

UML Weekend Crash Course™ - To Parent Directory

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Session 1—What Is the <strong>UML</strong> 7<br />

Table 1-1<br />

The <strong>UML</strong> Four-layer Metamodel Architecture<br />

Layer Description Example<br />

metametamodel Defines the language for Defines the concepts MetaClass,<br />

specifying metamodels. MetaAttribute, MetaOperation, and<br />

so on.<br />

metamodel Defines the language for Defines the concepts Class,<br />

specifying a model.<br />

Attribute, Operation, Component,<br />

and so on.<br />

model Defines the language to use Defines the concepts Order,<br />

to describe a subject domain. Shipment, Product, Product ID,<br />

Buy(), and so on.<br />

user objects Defines specific subject Defines Order #74653, Shipment<br />

domain information.<br />

#87649, the product “CD-ROM<br />

435”, the price $50.00, and so on.<br />

Starting from the bottom and working up, the user object layer is where you find a diagram,<br />

like a Sequence diagram or Object diagram, populated with the facts from the problem domain<br />

like Order #74653 that contains a line item for “CD-ROM 435” with a price of $50.00. The diagram<br />

is built following the rules defined by the next layer above it, the model layer.<br />

The model layer fully explains the classes that describe the subject domain objects, for<br />

example, classes like Order, Shipment, and Product. It tells you what an Order looks like, the<br />

fields it contains, the operations it can perform, and so on, without ever telling you about<br />

any particular Order. These class definitions conform to the rules specified in the next layer<br />

above, the metamodel (2M) layer.<br />

The metamodel (2M) layer defines what a class is so that the model layer knows how to<br />

describe the Order class. It defines a class as a concept having attributes, operations, and<br />

associations. It defines an attribute as having a name, a data type, a default value, and constraints.<br />

These definitions in turn conform to the specifications of the metametamodel (3M).<br />

The metametamodel (3M) layer is the realm of the philosophers and practitioners of the<br />

black arts who determine what makes up a language. Nearly all the definitions at this layer<br />

are abstract, that is, they are more like templates that can be used to build a wide variety<br />

of concrete concepts.<br />

In case I managed to scare you just now, relax, all you really need to know is the metamodel.<br />

That is what this entire course is about, defining the diagrams and the elements<br />

used to construct them. Once you understand the diagrams defined by the metamodel layer,<br />

you will get enough practice building the model and user object layers to become quite<br />

comfortable.<br />

The organization of the metamodel<br />

The metamodel is a bit complex, so it helps to organize the elements into packages. A package<br />

is basically the <strong>UML</strong> version of a directory, a place to put things. At the first level you

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!