Metamodel Global view. Some sources Object Modeling with UML: Advanced Modeling, Karin Palmkvist,...

Preview:

Citation preview

Metamodel

Global view

Some sources

Object Modeling with UML: Advanced Modeling, Karin Palmkvist, Bran Selic, and Jos Warmer, March 2000

Meta-model Capitalization

A meta-model defines concepts and their relationships thanks to a class diagram.

A meta-model only defines structure (no semantic).

A model is an instance of a meta-model if it respects the structure defined by the meta-model.

The UML meta-model defines the structure that all UML models must have.

+name

Use Case

+name

Actor

+name

System

1

*

+participate

*

*

+super

0..1

+include*

*

*

+extend

0..*

Client

Add Order

PetStore

Buy

Another Example:UML metamodel in the 4

Layer

Points to Ponder Can we create a new version of UML, in

consideration of the following?

M3

M2

M1

M0

Meta-metamodeling abstract language specific paradigm

(e.g., OO) application independent

Metamodeling abstract language specific paradigm (e.g., OO) application specific

process or notation modeling, etc.

Modeling concrete language specific paradigm (e.g., OO) specific model

describes the data needed

Information applied in "real world" specific paradigm (e.g., OO) specific project

MetamodelingArchitecture

Examples

USPM(RUP)

metamodel

MOF standard(OO paradigm)

RUPmodel

UMLstandard

ProjectX

Process

standard

ProjectX

Artifacts

UMLmetamodelstandard

MetaClass, MetaAttribute, MetaOperation

Class, Attribute, Operation, Component

StockShare, owner, askPrice

hacsSoftwareCoShare99, smartie, 11.18

Meta-meta-model

MOF defines the language for defining meta-models

MOF concepts are meta-class, meta-attribute, meta-association, etc.

MOF concepts and their relationships can be defined by a class diagram. This diagram is also a meta-model (called the meta-meta-model)

The meta-meta-model is self defined.

+name

Class

+name

Package

+name+multiplicity

Attribute

Type

1 *

1

*

*

+import

*

*

+super

0..1

1

+type

*

DataType

String Integer Boolean

+name

Association+name+multiplicity

AssociationEnd

1 2

1

* *

-type 1

-name

Operation

+direction

Parameter

1*

1*

Meta-layers Capitalization

MOF

UML

ModèleModèleModèle

Meta-meta-model

UMLUMLMeta-model

Model

Mn+1 defines the structure of Mn

Mn+1 is not an abstraction of Mn

Meta-layer relationships are similar to grammar-layer relationships (BNF, or XML Schema)

Infrastructure: Consolidation of Concepts

NamespaceNamespaceNamespaceNamespace PackagableElementPackagableElementPackagableElementPackagableElement RedefinableElementRedefinableElementRedefinableElementRedefinableElement

ClassifierClassifierClassifierClassifier FeatureFeatureFeatureFeature

Infrastructure: Behavior Harmonization Common semantic base for all behaviors Choice of behavioral formalism driven by application

needs

ClassifierClassifier

. . .. . .ClassClassClassClass UseCaseUseCaseUseCaseUseCase ComponentComponentComponentComponent

BehaviorBehavior0..10..1 0..*0..*

ActionActionActionAction ActivityActivityActivityActivity StatemachineStatemachineStatemachineStatemachineInteractionInteractionInteractionInteraction

Classifier & Class

Common component paradigm

cd component

Component

- kind: ComponentKind = COMPOUND

Port

Part

«enumeration»ComponentKind

+ COMPOUND: + ELEMENTARY: + REPETITIVE:

Vector

factorization::Multiplicity

Connector

*+connector

1

+owner

0..1

+multiplicity

*+part

1+owner

1+type

0..1+multiplicity

*

+port

1

+owner

ComposingAssembling

Encapsulation

Repetition of structural elements

UML2.0 Component

Interface

Class

Component Realization

Classifier

+/provided

*

+/required* *

+abstraction

1

+realization

*

+realizingClassifier1

Port

StructuredClassifier

EncapsulatedClassifier Interface

ConnectableElement StructuralFeature

0..1

+ownedPort

**

+/required

*

* +/provided *

Classifer

StructuredClassifier

NamedElement

ConnectableElement

Property

Connector

0..1

+/part *0..1

+ownedConnector

*

*

+/node

*

0..1

+ownedAttributs

*

:Order

:Product

:Service

:ShopingCart

:BackOrder

:Organization

:Customer

Object Constraint Language

OCL defines the structure of models expressing constraints Invariant, Pre-post conditions

OCL is a meta-model instance of the MOF

OCL is highly coupled with UML

The OCL semantic is defined with models (operation without side effect )

OCL defined a concrete syntax

Capitalization

PropertyCallExp

>

Literal

-1000ModelPropertyCall

amount

Class

+balance

BankAccount{context BankAccount inv: balance > -1000}

Constraint

Expression

ExpressionInOcl OclExpression

ModelElement

* * 1*

**

Action Semantics

AS defines the structure of models expressing sequences of actions

AS was a meta-model and is now completely integrated in UML2.0

AS has no concrete syntax (UML diagram)

The semantic of AS is not formally defined (an RFP is published)

Capitalization

CreateObjectAction WriteStructuralAction

Pin

CallOperationAction

+credit()

+balance

BankAccount

cb

100 10

Template

Model transformation is a template written in a dedicated language

Productivity

PetStore PetStoreEJB

UML EJB

Template

Interpretor

UML2EJBTemplate

Collaboration

Models & Traceability

A model is an abstraction of a system, specifying the system from a certain viewpoint and at a certain level of abstraction

Model & System Hierarchy

Models and subsystems can be combined in a hierarchy:

Stereotype Notation

Recommended