+ All Categories
Home > Documents > NIEM-UML Profile

NIEM-UML Profile

Date post: 24-Feb-2016
Category:
Upload: lynnea
View: 43 times
Download: 0 times
Share this document with a friend
Description:
NIEM-UML Profile. Justin Stekervetz, NIEM PMO Cory Casanave, Model Driven Solutions Mark Kindl, Georgia Tech Research Institute March 2012 OMG Meeting. Current Status. - PowerPoint PPT Presentation
Popular Tags:
88
NIEM-UML PROFILE Justin Stekervetz, NIEM PMO Cory Casanave, Model Driven Solutions Mark Kindl, Georgia Tech Research Institute March 2012 OMG Meeting
Transcript
Page 1: NIEM-UML Profile

NIEM-UML PROFILE

Justin Stekervetz, NIEM PMOCory Casanave, Model Driven Solutions

Mark Kindl, Georgia Tech Research Institute

March 2012 OMG Meeting

Page 2: NIEM-UML Profile

CURRENT STATUS

The “Revised Submission to the UML Profile for NIEM (NIEM-UML)” was delivered to the Object Management Group (OMG) on Monday, February 20th.

This was updated for OMG review 3/17/2012.

• OMG Document Number: gov/2012-03-01• Machine Readable Artifacts: gov/2012-03-02

Our intent is to make minimal enhancements to this specification and ask for a vote-vote at the next meeting

Page 3: NIEM-UML Profile

SUBMISSION CONTENTS

• Submission Introduction• Scope• Conformance• Additional Information (Introduction)• NIEM-UML Modeling Guide• NIEM-UML Profile Reference• NIEM-UML Transformation Reference• NIEM-UML PIM Example• Structured English Mapping Specification• Machine Readable Artifacts

Page 4: NIEM-UML Profile

INTRODUCTION AND GOALS

Page 5: NIEM-UML Profile

REQUIREMENTS

• All mandatory requirements have been met

• Optional Requirements– 6.6.1 RDF – Not addressed– 6.6.2 Use of QVT – Addressed– 6.6.3 Reverse Engineering – Addressed

Page 6: NIEM-UML Profile

COLLABORATIVE INNOVATION

Page 7: NIEM-UML Profile

NIEM-UML GOALS

• Represent the semantics of NIEM while being agnostic of its structural representation

• To leverage standards and standards based tools

• To reduce complexity and lower the barrier for entry

• To facilitate reuse of NIEM models and as a result schemas

• To embrace accepted UML modeling styles and constructs

• To enable use of NIEM-PIM models for use with other standards, technologies and layers

• To support deterministic mapping to and from the NIEM technology layers based on NIEM rules

Clarity: Ensure that a UML representation of a NIEM model produced by one developer can be interpreted as expected by another.

Completeness: Ensure that a developer can produce a UML representation of any NIEM concept, including semantics, XML Schema structure, and metadata.

Practicality: With minimal effort, a developer can employ the profile in current UML development tools to develop a NIEM model.

Page 8: NIEM-UML Profile

NIEM CONFORMANCE

Page 9: NIEM-UML Profile

SUPPORT FOR PIM & PSM PERSPECTIVES

Page 10: NIEM-UML Profile

NIEM-UML LAYERED ARCHITECTURE

Model Packaging Perspective

Platform Specific Perspective

Platform Independent Perspective

PIM Conformance

Point

PSM Conformance

Point

PIMModel

CommonProfile

PSMModel

MPDModel

Specifies

MPD Conformance

Point

Specifies

Imports

Imports

References

References

PIMProfile

PSMProfile

MPDProfile

Applies

Applies

Applies

Specifies

Model Packaging Perspective

Platform Specific Perspective

Platform Independent Perspective

PIM Conformance

Point

PSM Conformance

Point

PIMModel

CommonProfile

PSMModel

MPDModel

Specifies

MPD Conformance

Point

Specifies

Imports

Imports

References

References

PIMProfile

PSMProfile

MPDProfile

Applies

Applies

Applies

Specifies

Page 11: NIEM-UML Profile

CONFORMANCE

• Intended to support tool independence

• Model Conformance Points– NIEM Platform Independent Model (PIM)– NIEM Platform Specific Model (PSM)– NIEM Model Package Description (MPD) Model– NIEM PIM to NIEM PSM Transform– NIEM PSM to NIEM-Conforming XML Schema Transform– NIEM MPD Model to NIEM MPD Artifact Transform– NIEM MPD Artifact to NIEM MPD Model Transform

• Tool Conformance

Page 12: NIEM-UML Profile

NIEM-UML PLATFORM INDEPENDENT MODEL (PIM)

BY EXAMPLE

Page 13: NIEM-UML Profile

WHAT IS THE NIEM PIM PROFILE• A simplified subset of the Unified Modeling Language (UML)

• A set of UML constructs and stereotypes– Extends UML to represent NIEM business concepts

– Business concepts are augmented with NIEM-Platform mapping information

– Enforces NIEM rules by leveraging OCL – a valid NIEM-UML model will produce a valid MPD

• Representations correspond to commonly used UML patterns with well defined mapping to NIEM platform

• Provides a generalized information modeling environment not specific to NIEM schema

• Supports mapping to and from the NIEM platform, supporting and enforcing the NDR and MPD

– E.g. name prefix and suffixes are added as specified by NIEM rules

Page 14: NIEM-UML Profile

NIEM-UMLProfiles and Transforms

NIEM-UML PIM Models

PIM Profile

Model Package Description Profile

PIM Model For One or More Exchanges

Model of a Specific MPD

NIEM Core Model

NIEM Domain Model

Platform Specific Model of a Specific MPD

A NIEM MPD

PSM Profile

Existing NIEM NDR and MPD Platform Specifications

Extends &References

Uses

Uses

Includes

Transforms Between

Transforms Between

XML Primitive Types

Uses

Conforms to

User’s UML

NIEM Models

Generated

Based onNIEM-UML

NIEM-UML

Model Libraries

Transform Specification

Transform Specification Conforms to

Conforms to

Page 15: NIEM-UML Profile

PET ADOPTION EXAMPLE

Data Exchange of adoptions by pet rescue centers

This is a very high-level example, intended to provide a general idea of what a PIM looks like and what it provides.

Page 16: NIEM-UML Profile

INFORMATION TO EXCHANGE• Pet Adoptions• Pets (Being adopted)• People (Adopting)• Pet Adoption Centers (Facilitating Adoptions)• Addresses (Of people and adoption centers)• Contact information (For people and adoption centers)• Associations for contact information related to people

Page 17: NIEM-UML Profile

HIGH-LEVEL INFORMATION MODEL

Page 18: NIEM-UML Profile

THIS IS NIEM - REUSE!

Find what you want to reuse in the reference

namespaces

Find what you want to reuse in the reference

namespaces

All the reference

namespaces are already in

UML

NIEMCore

Page 19: NIEM-UML Profile

Find what you want from the reference namespaces – can

copy/paste

Create subsets of these in a subset

namespace package –

reference the reference classes

MODEL REUSE OF NIEM CORE

Page 20: NIEM-UML Profile

REPEAT AS REQUIRED

Page 21: NIEM-UML Profile

• What is an “Adoption Center”?

• It is a kind of organization

• But perhaps more properly a “role” an organization plays, as they could play other roles as well

• This is one representation of NIEM roles

• In the NIEM PSM, this becomes a property prefixed by “RoleOf”

ROLES OF ORGANIZATIONS

Page 22: NIEM-UML Profile

WHAT IS AN ADOPTION?

• An adoption is a kind of activity

• We can reuse this from NIEM-Core as well

Page 23: NIEM-UML Profile

WHAT KINDS OF PETS ARE ADOPTED?

• PetKind is a NIEM “Code List”

• This can be a used in a property of a pet as well as other places

This is a NIEM code

list

Property using the code list

Page 24: NIEM-UML Profile

NIEM ASSOCIATIONS

Associations Connect Objects – in this case people and contact information

This is a NIEM association between Person and Contact

Information

Page 25: NIEM-UML Profile

AUGMENTATIONS – PHONE NUMBER ++

Inheriting an augmentation

results in a NIEM augmentation

property, not XSD extension

Optionally, an augmentation can

be restricted to what it “applies to”

This is direct extension –

not an augmentation

Page 26: NIEM-UML Profile

COMPLETED HIGH-LEVEL MODEL

Page 27: NIEM-UML Profile

ADDING THE IEPD METADATA

This models the IEPD to be produced

Each packages it uses become XML

Schema

Subset packages automatically subset

a reference model

Existing NIEM-Core is subset, not copied

into IEPD

Page 28: NIEM-UML Profile

CREATE THE IEPD FROM THE MODEL

You then tell your UML and/or MDA tool to make the

IEPD

Page 29: NIEM-UML Profile

ALL THE IEPD ARTIFACTS ARE THEN CREATED BY THE MDA AUTOMATION

Given a model that satisfies the NIEM-UML

profile a valid and complete IEPD is

guaranteed to come out.

Page 30: NIEM-UML Profile

MDA AUTOMATION ALSO CREATES NIEM CONFORMANT XML SCHEMA

<?xml version="1.0" encoding="UTF-8"?><xsd:schema xmlns:Q1="http://www.modeldriven.org/niem/examples/PetAdoptionExtension" xmlns:i="http://niem.gov/niem/appinfo/2.0" xmlns:nc="http://niem.gov/niem/niem-core/2.0" xmlns:niem-xsd="http://niem.gov/niem/proxy/xsd/2.0" xmlns:s="http://niem.gov/niem/structures/2.0" xmlns:tns="http://www.modeldriven.org/niem/examples/PetAdoptionExchange" xmlns:xsd="http://www.w3.org/2001/XMLSchema" attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://www.modeldriven.org/niem/examples/PetAdoptionExchange" version="&quot;1&quot;"> <xsd:import namespace="http://niem.gov/niem/appinfo/2.1" schemaLocation="../../../.././niem/appinfo/2.1/appinfo.xsd"/> <xsd:import namespace="http://niem.gov/niem/structures/2.0" schemaLocation="../../../.././niem/structures/2.0/structures.xsd"/> <xsd:import namespace="http://www.modeldriven.org/niem/examples/PetAdoptionExtension" schemaLocation="../../../.././XMLschemas/niem/examples/PetAdoptionExtension/examples.xsd"/> <xsd:import namespace="http://www.modeldriven.org/niem/examples/PetAdoptionExchange" schemaLocation="../../../.././XMLschemas/niem/examples/PetAdoptionExchange/examples.xsd"/> <xsd:import namespace="http://niem.gov/niem/appinfo/2.0" schemaLocation="../../../.././niem/appinfo/2.0/appinfo.xsd"/> <xsd:import namespace="http://niem.gov/niem/proxy/xsd/2.0" schemaLocation="../../../.././niem/proxy/xsd/2.0/xsd.xsd"/> <xsd:import namespace="http://niem.gov/niem/niem-core/2.0" schemaLocation="../../../.././XMLschemas/niem/niem-core/2.0/niem-core.xsd"/> <xsd:complexType abstract="false" name="PetAdoptionExchangeType"> <xsd:annotation> <xsd:appinfo> <i:Base i:name="Object" i:namespace="http://niem.gov/niem/structures/2.0"/> </xsd:appinfo> </xsd:annotation> <xsd:complexContent> <xsd:extension base="s:ComplexObjectType"> <xsd:sequence> <xsd:element maxOccurs="unbounded" minOccurs="1" ref="tns:People"/> <xsd:element maxOccurs="unbounded" minOccurs="1" ref="tns:Pets"/> <xsd:element maxOccurs="unbounded" minOccurs="1" ref="tns:PetAdoptions"/> <xsd:element maxOccurs="unbounded" minOccurs="1" ref="tns:PetAdoptionCenters"/> <xsd:element maxOccurs="unbounded" minOccurs="0" ref="tns:Addresses"/> <xsd:element maxOccurs="unbounded" minOccurs="0" ref="tns:ContactInformation"/> <xsd:element maxOccurs="unbounded" minOccurs="0" ref="tns:PersonContactInformationAssociations"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:element abstract="false" name="People" nillable="false" type="nc:PersonType"/> <xsd:element abstract="false" name="Pets" nillable="false" type="Q1:PetType"/> <xsd:element abstract="false" name="PetAdoptions" nillable="false" type="Q1:PetAdoptionType"/> <xsd:element abstract="false" name="PetAdoptionCenters" nillable="false"/> <xsd:element abstract="false" name="Addresses" nillable="false" type="nc:AddressType"/> <xsd:element abstract="false" name="ContactInformation" nillable="false" type="nc:ContactInformationType"/> <xsd:element abstract="false" name="PersonContactInformationAssociations" nillable="false" type="nc:PersonContactInformationAssociationType"/> <xsd:annotation> <xsd:appinfo> <i:ConformantIndicator>true</i:ConformantIndicator> </xsd:appinfo> </xsd:annotation></xsd:schema>

Not Intended to Be

Read

Page 31: NIEM-UML Profile

AS PART OF THIS PROCESS

• The model is fully validated with “OCL Constraints” for NIEM Rules

• The produced PSM is also validated• Many NIEM rules are taken care of automatically in the

transformation rules such as Naming and Global elements

• The resulting IEPD is either valid or any problems noted (how being tool dependent)

• There are still a few subjective NDR Rules that can’t be tested by the automation

Page 32: NIEM-UML Profile

HOW MUCH IS THERE TO LEARN?

• NIEM Logical Concepts– Not the XSD and NDR Details

• The PIM and Common Profile• The Model Package Description Profile• A UML Tool

Note: A Forester report estimated that 71% of software development teams already use UML

Page 33: NIEM-UML Profile

NEIM-UML PROFILES

Page 34: NIEM-UML Profile

NIEM-UML PROFILE STRUCTURE

Page 35: NIEM-UML Profile

COMMON PROFILE

35

Page 36: NIEM-UML Profile

PLATFORM INDEPENDENT PROFILE

Page 37: NIEM-UML Profile

MODELING NAMESPACES

Page 38: NIEM-UML Profile

38

NAMESPACES

Namespace (Package)• Namespace represents a namespace, which is implemented in XML

Schema as a “schema” schema component. • Namespace includes the following attributes: isConformant, namespace, and

version.

Page 39: NIEM-UML Profile

39

INFORMATION MODELS (PIM ONLY)InformationModel (Package)• Extends Namespace for the PIM• Adds “default purpose”

Page 40: NIEM-UML Profile

RELATIONS BETWEEN NAMESPACES (PIM ONLY)InformationModel (Package)• Packages can “use” other

packages• Packages can <<Reference>>

and subset reference packages• Supports MPD/IEPD packaging

Page 41: NIEM-UML Profile

REPRESENTATION OF COMPLEX TYPESNIEM Complex Type Representation in the NIEM-PIM

Object Type

 Class – no stereotype is required, Object Type is the default.

Role Type

 Use of <<RoleOf>> association and or <<RolePlaydBy>> generalization referencing the complex signifies that type is a role.

Association Type

 <<Association>> stereotype applied to the complex type or a UML association class.

Metadata Type

 <<Metadata>> stereotype applied to the complex type.

Augmentation Type

 <<Augmentation>> stereotype applied to the complex type.

Adapter Type

 

<<Adapter>> stereotype applied to the complex type. The initial version of the PIM does not include adapter types, these will be added in the final specification.

Page 42: NIEM-UML Profile

NIEM OBJECT TYPESNIEM Object TypesAn object type is represented as a UML class, no stereotype is required. (PIM Only). In a PSM an object type must be stereotyped an <<ObjectType>>

PIM Only

Equivalent

Page 43: NIEM-UML Profile

YOUR BASIC “THING” IN XML<xsd:complexType name="PersonType"><xsd:annotation><xsd:appinfo><i:Base i:name="Object" i:namespace="http://niem.gov/niem/structures/2.0"/></xsd:appinfo><xsd:documentation>A data type for a human being.</xsd:documentation></xsd:annotation><xsd:complexContent><xsd:extension base="s:ComplexObjectType"><xsd:sequence><xsd:element maxOccurs="1" minOccurs="1" ref="nc:PersonBirthDate"/><xsd:element maxOccurs="1" minOccurs="1" ref="nc:PersonName"/><xsd:element maxOccurs="1" minOccurs="1" ref="nc:PersonSSNIdentification"/></xsd:sequence></xsd:extension></xsd:complexContent></xsd:complexType>

<xsd:element name="PersonBirthDate" nillable="false" type="nc:DateType"><xsd:annotation><xsd:documentation>A date a person was born.</xsd:documentation></xsd:annotation></xsd:element>

<xsd:element name="PersonName" nillable="false" type="nc:PersonNameType"><xsd:annotation><xsd:documentation>A combination of names and/or titles by which a person is known.</xsd:documentation></xsd:annotation></xsd:element>

<xsd:element name="PersonSSNIdentification" nillable="false" type="nc:IdentificationType"><xsd:annotation><xsd:documentation>A unique reference to a living person; assigned by the United States Social Security Administration.</xsd:documentation></xsd:annotation></xsd:element>

Every element becomes global for

reuse (

Elements are used in XSD

data structures

Page 44: NIEM-UML Profile

NIEM ROLESNIEM RolesUML also has the capability to represent roles in their simpler form as UML association ends (The names on the ends of lines in a class diagram) or properties. To represent roles that are complex types a class or data type is used.

NIEM Role Concept

Page 45: NIEM-UML Profile

NEIM ROLESRolePlayedByWhere a role represents an optional extension to an object type a <<RolePlayedBy>> stereotype of generalization may be used – maps to a NIEM RoleOf property.

Page 46: NIEM-UML Profile

NIEM ASSOCIATIONSNIEM Associations

A UML Class stereotyped as an <<AssociationType>> represents a NIEM association using the rules of complex types. Each end of the NIEM association is represented as an independent UML association (an association line in a class diagram). The end is named on the related object side of the UML association and the cardinality of this relation will be the number of such objects that can participate in each association, this cardinality is usually one.

Page 47: NIEM-UML Profile

NIEM & UML ASSOCIATIONSNIEM Associations (PIM Only)

Alternative:As UML includes a first-class concept of association classes, A NIEM association may also be represented as a UML association class (Line with a class attached by a dotted line), optionally having the <<AssociationType>> stereotype.

Page 48: NIEM-UML Profile

NIEM METADATANIEM MetadataA Metadata type is represented as a UML class with the <<MetaDataType>> Stereotype. A Metadata type may have a <<MetadataApplication>> dependency which restricts the class of objects the metadata may be applied to. Metadata without a <<MetadataApplication>> may be applied to any NIEM object.

Page 49: NIEM-UML Profile

NIEM AUGMENTATIONSNIEM AugmentationsAn Augmentation type is represented as a UML class with the <<AugmentationType>> Stereotype. A property typed by an augmentation type may have an <<AugmentationApplication>> dependency which restricts the class of objects that may contain a property typed by an augmentation (this is sometimes called the properties “domain”). Properties without an <<AugmentationApplication>> may be properties of any NIEM object.

Page 50: NIEM-UML Profile

NIEM AUGMENTATIONSNIEM Augmentations (PIM Only)A generalization can be marked to <<Augments>> an <<AugmentationType>>.Inheriting an augmentation creates an augmentation property.

Subclassing an augmentation turns into

a augmentation property.

Page 51: NIEM-UML Profile

ADAPTER TYPES

Adapter TypesAn adapter type is a NIEM object type that adapts external models for use within NIEM. An adapter type creates a new class of object that embodies a single concept composed of external elements. [NIEM-NDR 7.7]

Page 52: NIEM-UML Profile

MODELING SIMPLE TYPES

Page 53: NIEM-UML Profile

53

DATATYPE AND RELATED ELEMENTSDataType (UML)• DataTypes represents a simple type, which is implemented in XML Schema

as a simple type definition component.• PrimitiveType and Enumeration are kinds of DataTypes• ValueRestriction, Union, and List stereotypes may be applied to DataType• Realization or Generalization may relate DataTypes

Page 54: NIEM-UML Profile

DATATYPE AND RELATED ELEMENTS

PrimitiveType (UML)• Represents XML types and subtypes of them.

Page 55: NIEM-UML Profile

55

DATATYPE AND RELATED ELEMENTS

ValueRestriction (DataType)• ValueRestriction represents the facets of a simple type, which are

implemented in XML Schema as the facets property of a simple type definition component.

Page 56: NIEM-UML Profile

NIEM CODE LISTSNIEM Code TypesCode types are represented as UML enumerations. Each code value is one value of the enumeration. An enumeration may <<Realize>> another DataType to indicate restriction.

Page 57: NIEM-UML Profile

57

DATATYPE AND RELATED STEREOTYPES

Union (DataType)• Union represents a union simple type, represented in XML Schema as a

simple type definition component for which the variety property is “union”.

Page 58: NIEM-UML Profile

58

DATATYPE AND RELATED STEREOTYPES

List (DataType)• List represents a list simple type, represented in XML Schema as a simple

type definition component for which the variety property is “list”.• A single property with an arbitrary name indicates the type of the list

Page 59: NIEM-UML Profile

MODELING PROPERTIES

Page 60: NIEM-UML Profile

NIEM PROPERTIESNIEM PropertiesNon-reference properties:Properties are represented as properties of UML classes or as ends of associations. Information from the UML property or association end definition includes the name, type and cardinality..

PIM Only

Page 61: NIEM-UML Profile

NIEM PROPERTY REUSENIEM Property Reuse and Subset SchemaUML has no notion of properties independent of any class and the normal way to handle this in UML is to define classes, perhaps abstract, that are inherited. To be consistent with UML all properties are defined within a class (or data type). The <<References>> stereotype of realization is used to import properties from one class to another (perhaps in another name-space) to provide for the property reuse that is a principle of NIEM. The defining class can be complex type, an abstract type or a <<PropertyHolder>>. Property holders are a NIEM-PIM Stereotype specificity to hold properties not owned by a class in the namespace (top level properties).

Page 62: NIEM-UML Profile

SUBSETTING A REFERENCE VOCABULARY (PIM ONLY)

Subset for a particular exchange

Reference Vocabulary

<<Reference>>

Page 63: NIEM-UML Profile

NIEM SUBSTITUTION GROUPSNIEM PropertiesA substitution group is represented by UML property subsetting. A property that subsets another will be substitutable for the base property. All subset properties within a name space are normally grouped together into a single class with the name of the base property combined with the suffix “SubstitutionGroup” (Current implementation is generating “PropertyHolder”). Substitution groups are also declared as a <<PropertyHolder>> since the containing class is not consequential, it is simple a holder for the group of substitutable properties.

Page 64: NIEM-UML Profile

PLATFORM SPECIFIC PROFILE

Page 65: NIEM-UML Profile

PIM(COMMON)PSM + MPD

PSM

PIM Common

PIM PSM

MPD

Page 66: NIEM-UML Profile

PLATFORM SPECIFIC PROFILE

Page 67: NIEM-UML Profile

XSDREPRESENTATIONRESTRICTION (DATATYPE)

Indicates that the facets property of the XML Schema simple type definition includes a whiteSpace component.• whiteSpace attribute: value of the whiteSpace

component.

Page 68: NIEM-UML Profile

XSDPROPERTY(PROPERTY)Indicates the implementation of a NIEM property: whether it is an element or attribute declaration, its value constraint property, and its nillable property.• kind attribute: whether an element or attribute declaration.• fixed attribute: the value of the value constraint property.• nillable: the value of the nillable property.

Page 69: NIEM-UML Profile

XSDDECLARATION (REALIZATION)

Indicates the element or attribute declaration of an element or attribute use.• client: the element or attribute use• supplier: the element or attribute declaration

Page 70: NIEM-UML Profile

SEQUENCEID(PROPERTY)

Indicates an attribute use for which the attribute declaration is structures:sequenceID.

Page 71: NIEM-UML Profile

XSDANYPROPERTY(PROPERTY)

Indicates a XML Schema wildcard.• processContents attribute: the value

of the process contents property.• valueNamespace attribute: the value

of the namespace constraint property.

Page 72: NIEM-UML Profile

XSDSIMPLECONTENT(REALIZATION)

Indicates the the content type property of a complex type definition.• client: the complex type definition• supplier: the content type of the complex type

definition, a simple type definition

Page 73: NIEM-UML Profile

MODEL PACKAGE DESCRIPTION PROFILE

Page 74: NIEM-UML Profile

MODEL PACKAGE DESCRIPTION MODEL

Page 75: NIEM-UML Profile

PET ADOPTION MPD (PSM)

Page 76: NIEM-UML Profile

PET ADOPTION EXCHANGE (PSM)

Page 77: NIEM-UML Profile

PET ADOPTION EXTENSION (PSM)

Page 78: NIEM-UML Profile

NIEM REFERENCE VOCABULARIES

Core (NIEM Core)Reference (Combined)common.ansi_d20common.apcocommon.atfcommon.cbrnclcommon.censuscommon.deacommon.dod_jcs-pub2.0-misccommon.edxl-capcommon.edxl-decommon.edxl-havecommon.edxlcommon.fbicommon.fips_10-4common.fips_5-2common.fips_6-4

common.geospatialcommon.have-codescommon.hazmatcommon.icismcommon.iso_3166common.iso_4217common.iso_639-3common.itiscommon.lasdcommon.mmucc_2common.mn_offensecommon.ngacommon.nletscommon.nonauthoritative-codecommon.post-canadacommon.sarcommon.twpdes

common.ucrcommon.unece_rec20-misccommon.usps_statescommon.ut_offender-tracking-misccoredomains.emergencyManagementdomains.familyServicesdomains.infrastructureProtectiondomains.intelligencedomains.jxdmdomains.maritimedomains.screeningexternal.capexternal.deexternal.haveexternal.ogc

Page 79: NIEM-UML Profile

STRUCTURED ENGLISH MAPPING SPECIFICATION

EXAMPLES

Page 80: NIEM-UML Profile

MAPPING FOR AN UNSTEREOTYPED CATEGORY 1 {UML:DATATYPE}A mapping shall exist between a {schema:atomic simple type definition} and an unstereotyped Category 1 {uml:DataType} if and only if each of the following is true:

1. The rule "Mapping for a Categorized {uml:DataType}" must hold.

2. (variety property) The value of the variety property must be "atomic".

3. (primitive type definition property) The value of the primitive type definition property of the {schema:atomic simple type definition} must be the value of the primitive type definition property of the base type definition property of the {schema:atomic simple type definition}.

4. (facets property) A mapping must exist between the explicit members of the facets property of the {schema:atomic simple type definition} and the facet set for the {uml:DataType}.

5. (base type definition property) A mapping must exist between the base type definition property of the {schema:atomic simple type definition} and the supplier {uml:NamedElement} of the {stereotype:Restriction} for which the {uml:DataType} is the client {uml:NamedElement}.

Page 81: NIEM-UML Profile

MAPPING FOR A CATEGORIZED {UML:DATATYPE}

A mapping shall exist between a {schema:simple type definition} and a categorized {uml:DataType} only if each of the following is true:

1. (name property) The value of the name property of the {schema:simple type definition} must equal the value of the name attribute of the {uml:DataType}.

2. (target namespace property) The value of the target namespace property must equal the value of the targetNamespace attribute of the {stereotype:Namespace} that is the namespace of the {uml:DataType}.

3. (final property) The value of the final property of the {schema:simple type definition} must be the empty set.

4. (annotation property) A mapping must exist between the documentation for the {schema:simple type definition} and the documentation for the {uml:DataType}.

Page 82: NIEM-UML Profile

MAPPING FOR A {STEREOTYPE:DOCUMENTATION}

A mapping shall exist between the documentation for a {schema:component} and the documentation for a {uml:Element} if and only if exactly one of the following is true:

1. (annotation property) The documentation for a {schema:component} is present, the documentation for a {uml:Element} is present, and the character information items of the documentation for the {schema:component} equal the value of the body attribute of the documentation for the {uml:Element}.

2. (annotation property) The documentation for a {schema:component} is absent and the documentation for a {uml:Element} is absent.

Page 83: NIEM-UML Profile

QVT MAPPINGS

• Transforms from PIM->PSM• Transforms from PSM->MPD Artifacts

– XML Schema, catalog and other required artifacts

• Transforms from MPD Artifacts->NIEM-UML PIM

Page 84: NIEM-UML Profile

MAPPING EXAMPLE

Page 85: NIEM-UML Profile

• mapping uml::Comment::XSDAnnotation_AttributeGroupDefinition(in xsdContainer : xsd::XSDConcreteComponent ) : result : xsd::XSDAnnotation when{self.isStereotypeApplied(this.XsdAnnotationStereotype).and(xsdContainer.oclIsKindOf(XSDAttributeGroupDefinition));}

{

xsdContainer.oclAsType(XSDAttributeGroupDefinition).annotation:=result;self.XSDAnnotation(result);

}

QVT EXAMPLE

Page 86: NIEM-UML Profile

MACHINE READABLE ARTIFACTS

• Normative NIEM-UML Profiles• QVT for UML -> XSD• QVT for XSD->UML• Reference Vocabularies in NIEM-UML

– Currently in one file– Final will have these separated for each reference

namespace• XML Primitive Types• “Pet” and other examples (to be included with final)

Page 87: NIEM-UML Profile

ADDITIONAL SUPPORT

• Additional support files are located on www.niem-uml.org

• Tool specific files• Examples

– Examples reverse engineered from existing IEDPs

– Pet example

Page 88: NIEM-UML Profile

QUESTIONS AND COMMENTS


Recommended