Previous | Table of Contents | Next |
Annexes include: A - XMI Serialization and Schema B - Support for Model Driven Architecture
Annex A
(normative)
XMI Serialization and Schema
UML 2.0 models are serialized in XMI according to the rules specified by the MOF 2.0: XMI Mapping Specification.
XMI allows the use of tags to tailor the schemas that are produced and the documents that are produced using XMI. The following
are the tag settings that appear in the UML2 Infrastructure Model for the XMI interchange of UML2 models:
• tag nsURI set to “http://schema.omg.org/spec/UML/2.0/umlL0.xml? for L0
• tag nsURI set to “http://schema.omg.org/spec/UML/2.0/umlLM.xml? for LM
• tag nsPrefix set to “uml? (for both cases)
• no other tags are explicitly set, which means they assume their default values as documented in the MOF 2.0 XMI Mappings Specification.
Annex B
(informative)
Support for Model Driven Architecture
The OMG’s Model Driven Architecture (MDA) initiative is an evolving conceptual architecture for a set of industry-wide technology
specifications that will support a model-driven approach to software development. Although MDA is not itself a technology
specification, it represents an approach and a plan to achieve a set of cohesive set of model-driven technology specifications.
The MDA initiative was initiated after the UML 2.0 RFPs were issued. However, as noted in the OMG’s Executive Overview of
MDA (www.omg.org/mda/executive_overview.htm): “[MDA] is built on the solid foundation of well-established OMG standards, including:
Unified Modeling Language™ (UML™), the ubiquitous modeling notation used and supported by every major company in the software
industry; XML Metadata Interchange (XMI™), the standard for storing and exchanging models using XML; and CORBA™, the most
popular open middleware standard.? Consequently, it is expected that this proposed major revision to UML will play an important
role in furthering the goals of MDA.
The OMG Object Reference Model Subcommittee has produced MDA Guide (the latest version of which is referenced from www.omg.org/mda)
which is the official, commonly agreed upon, definition of MDA. This MDA Guide draft characterizes MDA as follows:
“MDA provides an approach for and enables tools to be provided for:
- specifying a system independently of the platform that supports it,
- specifying platforms or selecting existing platform specifications,
- choosing a particular platform for the system, and
-transforming the system specification into one for the chosen particular platform.?
In addition, this MDA Guide draft and many other MDA documents commonly refer to a “UML family of languages,? which is described
in the MDA Guide as: “Extensions to the UML language [that] will be standardized for specific purposes. Many of these will
be designed specifically for use in MDA.?
The following sections explain how UML 2.0 supports the most prominent concepts in the evolving MDA vision.
• Family of languages: UML is a general purpose language, that is expected to be customized for a wide variety of domains, platforms and methods. Towards that end, this UML 2.0 proposal refines UML 1.x’s Profile mechanism so that it is more robust and flexible, and significantly easier to implement and apply. Consequently, it can be used to customize UML dialects for various domains (e.g., finance, telecommunications, aerospace), platforms (e.g., J2EE, .NET), and methods (e.g., Unified Process, Agile methods). For those whose customization requirements exceed these common anticipated usages, and who want to define their new languages via metamodels, the proposed InfrastructureLibrary is intended to be reused by MOF 2.0. Tools that implement MOF 2.0 will allow users to define entirely new languages via metamodels.
• Specifying platforms: Although UML 1.x provided extremely limited support for modeling Platform Specific Models (PSMs, the complement of PIMs), this specification offers two significant improvements. First, the revised Profile mechanism allows modelers to more efficiently customize UML for target platforms, such as J2EE or .NET. (Examples of J2EE/EJB or .NET/COM micro-profiles can be found in the UML Superstructure Specification.) Secondly, the constructs for specifying component architectures, component containers (execution runtime environments), and computational nodes are significantly enhanced, allowing modelers to fully specify target implementation environments.
• Choosing a particular platform for the system: This is considered a method or approach requirement, rather than a modeling requirement. Consequently, we will not address it here.
• Transforming the system specification into one for a particular platform: This refers to the transformation of a Platform Independent Model into a Platform Specific Model. The UML Superstructure Specification specifies various relationships that can be used to specify the transformation of a PIM to a PSM, including Realization, Refine and Trace. However, the specific manner in which these transformations are used will depend upon the profiles used for the PSMs involved, as well as the method or approach applied to guide the transformation process. Consequently, we will not address it further here.
• Specifying a system independently of the platform that supports it: As was the case with its predecessor, the general purpose UML 2.0 specification is intended to be used with a wide range of software methods. Consequently, it includes support for software methods that distinguish between analysis or logical models, and design or physical models. Since analysis or logical models are typically independent of implementation and platform specifics, they can be considered “Platform Independent Models? (PIMs), consistent with the evolving MDA terminology. Some of the
proposed improvements to UML 2.0 that will make it easier for modelers to specify Platform Independent Models include the ability to model logical as well as physical Classes and Components, consistent with either a class-based or component-based approach.
A
Abstract syntax compliance 3
abstract syntax compliance 3
access 146
acyclic graph 112
acyclical 82
addOnly 34
adorn 56
adorned 112
aggregation 113
alias 140, 142, 144
allFeatures 36
allNamespaces 71
allOwnedElements 74
allOwningPackages 185
allParents 51
ancestor 83
annotatedElement 38, 90, 104
appliedProfile 184
argument 95
arrow 96, 112, 142, 160
solid
for navigation 113
arrow notation 96
arrowhead 112, 142, 146, 165
arrrowhead 165
association 112
association ends 64
association notation 121
association specialization 112
asterisk 26, 63, 66, 172
attribute 96, 117
attribute compartment 96, 120, 136
attributes 64
B
Bag 125
behavioral compatibility 24, 77
BehavioralFeature 30, 31, 32
bestVisibility 88
bidirectionally navigable associations 96
binary association 110, 111, 123
BNF 112
bodyCondition 150, 151, 152
boldface 117, 120
Boolean 60, 99, 138
booleanValue 49, 60
bound 64, 65, 123, 125
braces 42, 112
C
cardinality 65, 180
Changeabilities 33
ChangeabilityKind 34
character set 63, 118, 171
Class 16, 17, 22, 25, 93, 94, 95, 96, 97, 116, 117, 122, 175, 178,
179
Classifier 35, 51, 55, 56, 77, 83
Classifier (as specialized) 50, 82
Classifiers package 35
colon 56
color 113, 158
comma 56, 112, 193
comment 38, 193
Comments package 37
common superclass 44, 91
Common Warehouse Metamodel (CWM) 16
compartment 117, 136
compartment name 36, 120
compliance 3
compliance level 1
composite 112, 123
composite aggregation 113, 116
composite name 73
concrete 83, 182
Concrete syntax compliance 3
conform 85
Conformance 1
conformsTo 85
constant 60, 61
constrainedElement 41, 42
constraint 41, 66, 83, 86, 125, 150
constraint language 22, 24
constraints 117
context 41, 46
contravariance 151, 152
Core 12, 29, 89, 101, 169
Core package 12, 28
covariance 152
D
dashed arrow 142, 146
dashed line 39, 165
DataType 89, 97
default 117, 125, 154
definingFeature 55, 58
derived 125
derived union 32, 36, 71, 76
diagram interchange 3
diamond 112, 113
digit 60, 63
dimmed 158
direct instance 94
DirectedRelationship 79, 104, 141
direction 154
distinguishable 32, 71
double quotes 63, 172
E
Element 38, 39, 91
Element (as specialized) 39
element access 142
element import 142
ElementImport 140, 144
empty name 72
endType 110
Enumeration 133, 135, 136, 137, 162
enumeration 136
Enumeration rules 164
EnumerationLiteral 137, 162
equal sign 56
exception 152
exceptions 95
excludeCollisions 145
expression 23, 41, 46
Expressions package 45
extension 169, 175, 178, 179, 180, 181
ExtensionEnd 182
F
false 60
feature 31, 128
featuringClassifier 37, 128
formalism 21
G
Generalization 51, 88
generalization arrow 112
generalization hierarchy 51, 82
Generalizations between associations 112, 113
Generalizations package 49
getName 141
getNamesOfMember 73, 144
guillemets 36, 117, 120, 193
H
hasVisibilityOf 83
hidden 144
hierarchy 71
hollow triangle 52, 83
I
icon 192
identity 138
image 183
import 88, 142, 146
importedElement 141
importedMember 144
importedPackage 146
importedProfile 191
importingNamespace 141, 146
importMembers 145
includesCardinality 65
infinity 172
inherit 83, 117
inheritableMembers 83
initial 117, 125
initialization 96
inout 154
Instance specification 54
Instance value 57
Instances package 53
instantiated 117, 125
instantiation 64
integer 65, 99, 121, 138, 142
IntegerValue 49, 60, 183
isAbstract 82, 93
isComposite 96
isComputable 49, 59, 60, 61, 62, 63
isConsistentWith 77, 124, 151
isDerived 96, 110
isDistinguishableFrom 32, 71, 73
isMultivalued 65
isNavigable 124
isNull 49, 61
isOrdered 65, 66, 150
isQuery 150
isReadOnly 35, 96, 123, 124
isRedefinitionContextValid 124
isRequired 180
isUnique 65, 110, 125, 150
italics 118
J
Java 41, 175, 176, 190, 191
K
keyword 26, 117, 120
L
language 21, 40
Language Architecture 11
language units 1
line width 113
link 109
literal 49, 97
literalBoolean 59
literalInteger 60
literalNull 61
Literals package 58
literalSpecification 61
literalString 62
literalUnlimitedNatural 63
lowerBound 65, 69
lowerValue 69
M
M2 16
makesVisible 157
maySpecializeType 82
MDA 12, 211
member 72
memberEnd 110
membersAreDistinguishable 72
mergedPackage 159
metaclass 179, 180
metamodelReference 185
Model Driven Architecture 211
MOF 11, 12, 13, 14, 16, 89, 175, 185, 186
multiple inheritance 94
multiplicities 114, 172, 181
Multiplicities package 64
multiplicity 64, 66, 95, 111, 130
MultiplicityElement 64, 66
MultiplicityElement (specialized) 68
MultiplicityExpressions package 67
multivalued 64
mustBeOwned 74, 157
mutually constrained 96
N
name 33, 71, 83, 92, 125
NamedElement 71, 72, 83, 87
NamedElement (as specialized) 87
namespace 70, 143
Namespace (as specialized) 43
UML Infrastructure Specification, v2.0
Namespaces 70
Namespaces diagram 139
Namespaces package 70
natural language 25, 47
navigable 115, 123, 124, 164, 182
navigableOwnedEnd 110
navigation arrows 56, 113
nested namespaces 71
nestedPackage 99
nestingPackage 99
nonprintable characters 172
nonunique 66
note symbol 39, 42
null 61
O
OCL 23, 41, 47, 48, 69, 169, 171
onstraint language 9, 24
opaqueExpression 47, 106, 107
operand 46
operation 42, 117, 150, 154
operation compartment 120
opposite 96, 123
ordered 110, 111, 126, 136, 152
OrderedSet 125
out 154
overriding 72
ownedAttribute 93, 116, 134
ownedComment 39, 105
ownedElement 74
ownedEnd 110
ownedLiteral 98, 136
ownedMember 144, 156
ownedOperation 93, 117, 134
ownedParameter 95, 149
ownedRule 44, 133
ownedStereotype 185
ownedType 156
owner 74
Ownerships package 73
owningAssociation 123
owningInstance 58
P
package 99, 177, 179, 184
package import 141, 145
PackageableElement 132, 141, 144, 156
PackageImport 144, 145
PackageMerge 102, 154, 156, 158, 165
Packages diagram 99, 154
parameter 32, 95, 153, 160
parameter list 153
ParameterDirectionKind 154
parameters 117
plus sign 157
postcondition 42, 150
precondition 150
predefined 41, 169
primitive type 98
PrimitiveTypes 28, 98
printable characters 172
private 88, 157
profile 185
ProfileApplication 190
Profiles 13
Profiles package 175, 177
Property 93, 96, 116
property string 66, 112, 119
public 88, 157
Q
qualified 141
qualifiedName 142, 144, 157
query 151, 152, 164
R
raisedException 95, 149, 150
readOnly 34, 125, 126
rectangle 36, 39, 121, 136, 157
RedefinableElement 117, 122, 123, 127
redefine 125, 126
RedefineableElement 129
redefined 150, 152
redefinedElement 76, 129
redefinedOperation 150
redefinedProperty 123
redefines 111, 119, 126, 152
redefinitionContext 76, 129
redefinitions 75, 119
Redefinitions package 75
reference metamodel 175
relatedElement 79, 105
relationship 79, 103
relationship (directed) 78
Relationships package 78
removeOnly 34
returnResult 151
Root diagram 103
round parentheses 47
run-time extension 137
S
segments 112, 113
self 24, 41
semicircular jog 113
separate target style 52
separator 71
sequence 125
Set 125
shared target style 52, 84
side effect 69
slash 112
slot 55, 57, 81, 94
snapshot 55
solid line 112
solid path 56
solid-outline rectangle 36
source 79, 104
specialized 111
specific 52
specification 41, 54, 55, 132
square brackets 26, 66, 166
state 152
static operation 151
stereotype 179, 192
String 62, 99, 138
stringValue 49, 62
structural compatibility 77
structuralFeature 130
StructuralFeature (as specialized) 34
StructuralFeatures package 80
subset 111, 125
subsettedProperty 123
subsetting 123, 124
subsettingContext 123, 124
substitutable 77, 152
Super package 81
superClass 93
Superstructure 89
symbol 46
T
tab 157
target 79, 104
ternary association 114
tree 113
true 60
tuple 109
Type 100
type 83, 85, 119, 130, 162
type conformance 51
typedElement 86, 127, 131
TypedElements package 84
U
UML 11
underlined name 56
union 126
unique 64, 66, 111, 126
unlimited 63
UnlimitedNatural 49, 99, 138, 172
unlimitedValue 49, 63
unordered 66
unrestricted 34
upper 65, 68, 150
upperBound 65, 69
upperValue 69
V
value 58
ValueSpecification 41, 48, 69
visibilities 86
visibility 86, 87, 125, 141, 156
visibility keyword 117
Visibility package 86
visibility symbol 113
visibilityKind 88
X
XMI 11, 28, 67, 161, 175, 186
XML Metadata Interchange (XMI) 14
UML Infrastructure Specification, v2.0