niem uml profile initial submission

98
NIEM UML Profile Initial Submission

Upload: marshall-garrett

Post on 03-Jan-2016

50 views

Category:

Documents


0 download

DESCRIPTION

NIEM UML Profile Initial Submission. Agenda. NIEM Overview NIEM Technical Concepts NIEM UML Profile Introduction PIM Profile PSM Profile Next Steps and Way Forward. The NIEM FORMULA FOR SUCCESS. Selection based on number of stakeholders and potential for reuse - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: NIEM UML Profile  Initial Submission

NIEM UML Profile Initial Submission

Page 2: NIEM UML Profile  Initial Submission

AGENDA

• NIEM Overview• NIEM Technical Concepts• NIEM UML Profile Introduction• PIM Profile• PSM Profile• Next Steps and Way Forward

Page 3: NIEM UML Profile  Initial Submission

THE NIEM FORMULA FOR SUCCESS

Identification of large scale,

complex processes

Creationof the

standardized exchange

Governance and adoption

of the exchange

• Selection based on number of stakeholders and potential for reuse

• Complexity increases with numbers of entities involved• Benefit increases with numbers of implementations

Page 4: NIEM UML Profile  Initial Submission

WHAT IS NIEM – THE NIEM FRAMEWORK AND PROCESS

Page 5: NIEM UML Profile  Initial Submission

NIEM connects communities of people who share a common need to exchange information in order to advance their missions, and provides a foundation for seamless information

exchange between federal, state, local, and tribal agencies. Much more than a data model, NIEM offers an active user community as well as a technical and support framework.

THE NIEM FRAMEWORK

Support FrameworkTechnical FrameworkCommunity

Formal Governance Processes

Online Repositories

Mission-Oriented Domains

Self-Managing Domain Stewards

Data Model

XML Design Rules

Development Methodology

Predefined Deliverables (IEPD)

Tools for Development and Discovery

Established Training Program

Implementation Support

Help Desk & Knowledge Center

Page 6: NIEM UML Profile  Initial Submission

Translation

Scope-of-NIEM

NIEM intentionally does not address standardizing data inside legacy systems. NIEM serves as a translation layer (providing a common understanding) between and across disparate systems.

STANDARDIZING DATA MOVING ACROSS SYSTEMS

IN

TE

RF

AC

E

LEGACYDATABASES

LEGACYDATABASES

COMMONLY FORMATTED

DATA

IN

TE

RF

AC

E

Page 7: NIEM UML Profile  Initial Submission

THE NIEM DATA MODEL

Data elements are organized into core and domain-specific components

Core components are used by multiple domains and can be described by structure, semantics, and

definition universally

Domain-specific components are

continually updated by subject matter experts that are actual NIEM

participants and industry experts for their particular

domain

NIEM Naming and Design Rules (NDR) specify how each of

these components are defined and utilized

NIEM’s data model is a set of common, controlled, and approved XML data structures and definitions vetted through the Federal, State, Local, Tribal and Private Sectors.

Page 8: NIEM UML Profile  Initial Submission

Repeatable, Reusable Process(Exchange Specification Lifecycle)

Common Language(Data Model Lifecycle)

Built and governed by the business users at Federal, State, Local, Tribal and Private Sectors

THE NIEM LIFECYCLES

Page 9: NIEM UML Profile  Initial Submission

IEPD

– Developed to provide the business, functional, and technical details of the information exchange through predefined artifacts

– Created with a core set of artifacts in a prescribed format and organizational structure to allow for consistency

– Designed to be shared and reused in the development of new information exchanges through publication in IEPD repositories

Page 10: NIEM UML Profile  Initial Submission

IEPD COMPONENTS & REQUIREMENTS

<Exchange_Schema/>

<Extension_Schema/>

<Subset_Schema/>

IEPD IEM

Main Document

Catalog

Change Log

IEPD MPD

NIEM Core Schema(s)

Domain Schema(s)

Sample XML Instance

In order to be NIEM-conformant, the IEPD must adhere to:

1. NIEM Conformance Document

2. NIEM Naming and Design Rules (NDR) v1.3

3. NIEM Model Package Description (MPD) Specification v1.0

Page 11: NIEM UML Profile  Initial Submission

NIEM GOVERNANCE

Page 12: NIEM UML Profile  Initial Submission

NIEM GOVERNING STRUCTURE

NIEM’s governing structure is comprised of Federal, State, Local, Tribal and private organizations

NIEM is jointly managed at an executive level by the Department of Homeland Security (DHS), Department of Justice (DOJ), and Department of Health and Human Services (HHS)

Executive Steering Council

ESC

Executive DirectorDeputy Director

NIEM PMO

NIEM Technical Architecture Committee

NTACNIEM Business

Architecture Committee

NBACNIEM Communications &

Outreach Committee

NC&OC

Page 13: NIEM UML Profile  Initial Submission

WHO STEERS NIEM CURRENTLY?

Founders and Voting Members• Dept of Justice• Dept of Homeland Security• Dept of Health and Human Services

Ex-Officio Members• Global Justice Information

Sharing Initiative• Office of Management and Budget• Program Manager, Information

Sharing Environment• NASCIO

Partners• Terrorist Screening Center• Dept of Defense / Dept of Navy• Dept of State, Consular Affairs (invited)

Page 14: NIEM UML Profile  Initial Submission

UML PROFILE FOR NIEM

• Standardized model representing NIEM packages

• Build upon the scope of the existing profile to include support for MPD development

• Support “model-driven” IEPD development

• The profile will reflect NIEM architectural concepts and restrictions as set forth in the NIEM Naming and Design Rules (NDR) v1.3 and Model Package Description Specification (i.e. we don’t want to accommodate all of XML schema, only what is allowed by the NDR)

• End Goal: A developer (using supporting tools) should be able to generate an equivalent conformant MPD from any UML model that applies the envisioned UML profile properly. Conversely, a developer should be able to create an equivalent profiled UML model from a conformant MPD.

Page 15: NIEM UML Profile  Initial Submission

NIEM TECHNICAL CONCEPTS

Page 16: NIEM UML Profile  Initial Submission

NIEM CONFORMANCE

Page 17: NIEM UML Profile  Initial Submission

NIEM MODEL PACKAGES

Page 18: NIEM UML Profile  Initial Submission

NIEM MODEL PACKAGES

MPD Specification

MPD/IEM

IEPD Domain Update Release EIEM/BIEC

MPD: Model Package Description

IEM: Information Exchange Model

EIEM: Enterprise Information Exchange Model

BIEC: Business Information Exchange Component

Page 19: NIEM UML Profile  Initial Submission

IEM VS. MPDInformation Exchange Model (IEM)• One or more NIEM-conforming

XML schemas that specify the structure, semantics, and relationships of XML objects

• IEM Classes:– Release– Domain Update– Information Exchange Package

Documentation (IEPD)– Enterprise Information Exchange Model

(EIEM)

Model Package Description (MPD)• Compressed archive of files that

contains:– One and only one of the four NIEM IEM

classes– Supporting documentation– Other artifacts

<Exchange_Schema/>

<Extension_Schema/>

<Subset_Schema/>

IEPD IEM

<Exchange_Schema/>

<Extension_Schema/>

<Subset_Schema/>

IEPD IEM

Main Document

Catalog

Change Log

IEPD MPD

Page 20: NIEM UML Profile  Initial Submission

NIEM DOMAIN UPDATE SPECIFICATION

Provides normative rules and non-normative guidance for the packaging, content, and publication of domain updates; dependent on the MPD Specification

Domain updates that are conformant to the NIEM Domain Update Specification must also be conformant to the NIEM Model Package Description Specification

Page 21: NIEM UML Profile  Initial Submission

DOMAIN INDEPENDENCE AND SELF-SERVICE

Domain Independence

• Specifications and processes that decouple a domain from other domains and from Core

• Allows:• Domains to publish

updated content (domain updates) on their own timeline

• IEPD developers to use that new content immediately, without waiting for the next major or minor release

Domain Self-Service

• Development tools and collaboration areas that support domains in building and publishing their own content

• Allows:• Domains to use tools that

assist in content development and management

• NIEM to scale up more easily as the number of domains and the size of the model increase

Page 22: NIEM UML Profile  Initial Submission

DOMAIN UPDATE COMPONENTS & REQUIREMENTS

<Reference_Schema/>

Domain Update IEM

Catalog

Change Log

Domain Update MPD

Quality Assurance/Conformance Reports

In order to be NIEM-conformant, the Domain Update must adhere to:

1. NIEM Conformance Document2. NIEM Naming and Design Rules (NDR) v1.33. NIEM Domain Update Specification v1.04. NIEM Model Package Description (MPD) Specification v1.0

Page 23: NIEM UML Profile  Initial Submission

Namespaces provide a mechanism to uniquely identify an item in a distributed environment– Used to prevent “collisions” of types and elements because they

can only be used when referenced through a namespace– Needed when combining information from different sources– Elements with the same name could have different meanings– Abstract to more granular definitions

WHY NAMESPACES?

Namespaces allow for modification of parts of NIEM without impact on the rest of the model

Page 24: NIEM UML Profile  Initial Submission

Prevent “collisions” of types and elements because they can only be used when referenced through a namespace

NIEM is organized by namespace– NIEM-Core– Individual domains (Emergency Management, Immigration,

Intelligence, etc.)– Code table authorities (ATF, DEA, FBI, etc.)– External standards (ANSI/NIST, EDXL, TWPDES, etc.)– XSD proxy and constructs (niem-xsd, appinfo, structures)

NAMESPACES IN NIEM

Page 25: NIEM UML Profile  Initial Submission

Elements within NIEM are not allowed to be of an anonymous type and thus must be declared to be of a specific type; a defined structure for a data object

Specific types are derived from more generic types Type declarations determine the elements that can be contained within a

specific type and the order of those elements within the type All elements contained within a type must refer to a globally defined element

in the namespace Declared types can be:

TYPE DECLARATIONS IN NIEM

Complex Types with Complex Content

Child elements allowed, no character data

Complex Types with Simple Content

No child elements allowed, only character

data

Simple Types with Simple Content

No child elements or attributes allowed

There are no mixed types allowed in NIEMThe attribute mixed cannot equal true (mixed ≠ true)

Page 26: NIEM UML Profile  Initial Submission

Code lists are used to limit the possible values for a data element

CODE LISTS

Code lists:

Can be created using NIEM software tools based on values entered into a spreadsheet template

Can be integrated into a NIEM domain if identified as highly reusable by domain stewards

Can provide value through an increased level of data integrity and a decreased burden for management of code values

Possible Value

Possible Value

Possible Value

Code List

Data Element

Page 27: NIEM UML Profile  Initial Submission

Code lists are actively managed to make certain that they are accurate, current, and continue to follow the NIEM NDR

CODE LIST MANAGEMENT

Each code list has a governing body responsible for its content with authority over the timeline for updates and publication to the code list

Updates to published code lists within NIEM domains are often published in NIEM micro releases

Publication

Namespaces have been established within NIEM to contain related code lists and to designate authority over these code lists (e.g. iso, fips, twpdes, fbi, usps, etc.)

Namespace

Multiple versions of a code list may exist within NIEM to guarantee backward-compatibility

Version

Page 28: NIEM UML Profile  Initial Submission

Metadata types are used to provide descriptive information about data within an XML instance

METADATA TYPES WITHIN NIEM

nc:MetadataType contains several common elements used within exchange metadata. Some examples include:

•nc:LastUpdatedDate•nc:ReportingPersonText•nc:ExpirationDate

Often it is necessary to separate exchange data from auxiliary information that further describes the data; metadata types provide this level of separation

Metadata can be used for searching or categorizing data included within an exchange

DataMetadata

(e.g. Reported Date, Reporting Person)

Page 29: NIEM UML Profile  Initial Submission

WHY USE TYPE AUGMENTATION?

Why use Type Augmentation?– Each domain contains objects that other domains might need to

use– Adding these to an object would typically require making a

specialization– But, if objects are needed from multiple domains, then a

specialization doesn’t work– Cannot extend from multiple base objects

Augmentation is meant to solve this problem by allowing objects from multiple domains to be attached to an object

Augmentation objects explicitly show that data is just attached to an object without making a specialized version of the object

Page 30: NIEM UML Profile  Initial Submission

Augmentation types allow elements from multiple domains to be used in the definition of a new type

TYPE AUGMENTATION IN NIEM

Problem: XML Types are not allowed to extend from more than one base type– This limitation does not allow for elements from different domains to be

included within a single object through extension Problem Mitigation: Use augmentation types, each of which are

specific to a domain, to include elements from different domains to a new declared type

IntelligenceDomain

Elements

JusticeDomain

Elements

ImmigrationDomain

Elements

New Type

NIEM uses augmentations rather than specializations to support domain-specific properties

Page 31: NIEM UML Profile  Initial Submission

WHY SUBSTITUTION GROUPS?

Some types of information can be represented in multiple ways, for example:

‒ Enumerated Values‒ Date and Time‒ Many entities can be either a Person or an

Organization NIEM uses XML Schema Substitution Groups to allow a

single concept to be represented by multiple elements of different types

Page 32: NIEM UML Profile  Initial Submission

Substitution groups provide flexibility in the allowed data types for a particular element

SUBSTITUTION GROUPS IN NIEM

The data type for an element may not be known until runtime– Substitution groups address this problem by allowing elements of differing data

types to replace a declared element

Substitution groups provide for this flexibility in data representations For example:

– An entity can be represented by either a person or an organization– Criminal charges can be represented by either a number or a string value– Dates can be represented by either just the date or by date/time

Person Organization

Entity

Replaces Replaces

Page 33: NIEM UML Profile  Initial Submission

Explicit substitution forces substitution of an element for an abstract head element

Explicit substitution has the following characteristics:– Substitutable head elements are marked as

abstract=true– Abstract head elements act as placeholders for

substitute elements – Elements intended for substitution must identify the

abstract head element as its substitution group– Abstract head elements are NOT allowed to appear

within the XML instance

EXPLICIT SUBSTITUTION

Page 34: NIEM UML Profile  Initial Submission

Implied substitution provides flexibility in substitution by not requiring replacement of head element

Implied substitution has the following characteristics:– Substitutable head elements are NOT defined as abstract– May or may not be substituted– The element that is doing the substituting has to be of the

same type or derived type of the substitutable element – Substitutable head elements are allowed to appear within

the XML instance

IMPLIED SUBSTITUTION

Page 35: NIEM UML Profile  Initial Submission

NIEM UML PROFILEINTRODUCTION

Page 36: NIEM UML Profile  Initial Submission

NIEM UML PROFILE COMPONENTS

Page 37: NIEM UML Profile  Initial Submission

PIM PROFILE

Page 38: NIEM UML Profile  Initial Submission

THE GOALS FOR THE NIEM PIM PROFILE

• To 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

Page 39: NIEM UML Profile  Initial Submission

THE SCOPE OF THE NIEM PIM PROFILEUML Profiles for NIEM. A set of UML Profiles which provide a complete characterization of the semantics and information content embodied in NIEM. This is divided into two parts:

– The NIEM Vocabulary PIM – a profile for describing a business vocabulary in terms of NIEM concepts

– The NIEM MPD PIM – a profile for describing a MPD (i.e. an IEPD) that uses a NIEM vocabulary augmented with additional metadata to represent an MPD.

Page 40: NIEM UML Profile  Initial Submission

AUXILIARY TYPES AND MODEL LIBRARIES• NIEM Core Model Library – an isomorphic

representation of the NIEM reference namespaces• NIEM Primitive Types Model Library – represents the

NIEM primitive types leveraging the UML Library for XML Primitive Types

• Primitive Type Restrictions – uses a subset of the IMM-XSD profile to express constraints on primitive types

Page 41: NIEM UML Profile  Initial Submission

NIEM-UMLProfiles and Transforms

NIEM-UML Vocabularies

NIEM Vocabulary PIM Profile

NIEM MPD PIM Profile

Vocabulary Model For One or More Exchanges

Platform Independent Model of a Specific MPD

NIEM Core Vocabulary

NIEM Domain Vocabularies

Platform Specific Model of a Specific MPD

A NIEM MPD

NIEM PSM Profile

Existing NIEM NDR and MPD Platform Specifications

Extends &References

Uses

Uses

Includes

Maps Between

Transforms Between

XML Primitive Types

Uses

Conforms to

User’s UML

NIEM Models

Generated

Based onNIEM-UML

NIEM-UML

Model Libraries

Transform Specification

Mapping SpecificationConforms to

Conforms to

Page 42: NIEM UML Profile  Initial Submission

NIEM-UMLProfiles and Transforms

NIEM-UML Vocabularies

NIEM Vocabulary PIM Profile

NIEM MPD PIM Profile

Vocabulary Model For One or More Exchanges

Platform Independent Model of a Specific MPD

NIEM Core Vocabulary

NIEM Domain Vocabularies

Extends &References

Uses

UsesIncludes

XML Primitive Types

User’s UML

NIEM Models

NIEM-UML

Model Libraries

Platform Specific Model a NIEM Model in RDF

A NIEM RDF Schema

RDF Metamodel (ODM)

RDF/S

Maps Between

Uses

Conforms to

Transform Specification

Mapping SpecificationConforms to

Conforms toTransforms Between

Generated

Based onNIEM-UML

IntroduceRDF

Support

Page 43: NIEM UML Profile  Initial Submission

WHAT IS THE NIEM PIM PROFILE• A simplified subset of 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 NEIM-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 44: NIEM UML Profile  Initial Submission

UML SUBSET FOR THE NIEM PIM PROFILE

Metaclass

Packages

Classes, including their names (extended using NIEM stereotypes)

Associations and association classes (extended using NIEM stereotypes)

Association end, names, aggregation kind and cardinality (extended using NIEM stereotypes)

Properties (extended using NIEM stereotypes)

Data Types

Primitive Types

Realizations (extended using NIEM stereotypes)

Generalizations (extended using NIEM stereotypes)

Enumerations

Owned Comments

Dependencies (extended using NIEM stereotypes)

Page 45: NIEM UML Profile  Initial Submission

THE NIEM PIM VOCABULARY PROFILE

Page 46: NIEM UML Profile  Initial Submission

NIEM PROPERTIESNIEM Properties

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

Page 47: NIEM UML Profile  Initial Submission

NIEM PROPERTY REUSENIEM Property Reuse and Subset Schema

UML 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.

Page 48: NIEM UML Profile  Initial Submission

SUBSETTING A REFERENCE VOCABULARY

Subset for a particular exchange

Reference Vocabulary

Page 49: NIEM UML Profile  Initial Submission

NIEM SUBSTITUTION GROUPSNIEM Properties

A 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 50: NIEM UML Profile  Initial Submission

NIEM PRIMITIVE TYPESNIEM Primitive Types

Primitive types are represented as a UML <<Primitive>>. There is a library of XSD data types included as part of the NIEM-PIM, this package is called “XMLPrimitiveTypes” (See Also: 0.2.4.2). Specialized primitive types may subclass this library to enable automatic mapping of the domain types to XML. The NIEM-Core provides a set of these types ready-made.XSD facets may be applied to primitive types to further constrain a representation. The PIM profile includes a set of stereotypes to represent these facets

Page 51: NIEM UML Profile  Initial Submission

REPRESENTATION OF COMPLEX TYPESNIEM Complex Type

Representation in the NIEM-PIM

Object Type

 Class or Data Type – no stereotype is required, Object Type is the default. See also: Representing NIEM Object Types

Role Type

 

Use of <<RoleOf>> association and or generalization referencing the complex signifies that type is a role. See Also:Representing NIEM Roles

Association Type

 

<<Association>> stereotype applied to the complex type or a UML association class. See Also: Representing NIEM Associations

Metadata Type

 

<<Metadata>> stereotype applied to the complex type. See Also: Representing NIEM Metadata

Augmentation Type

 

<<Augmentation>> stereotype applied to the complex type. See Also: Representing NIEM Augmentations

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 52: NIEM UML Profile  Initial Submission

NIEM OBJECT TYPESNIEM Object Types

An object type is represented as a UML class, no stereotype is required.

Alternative:A UML data type may also represent an Object Type.

Page 53: NIEM UML Profile  Initial Submission

YOUR BASIC “THING”<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 54: NIEM UML Profile  Initial Submission

NIEM ROLESNIEM Roles

UML 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 55: NIEM UML Profile  Initial Submission

NIEM ASSOCIATIONSNIEM Associations

A UML Class stereotyped as an <<Association>> 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 56: NIEM UML Profile  Initial Submission

NIEM & UML ASSOCIATIONSNIEM Associations

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 <<Association>> stereotype.

Page 57: NIEM UML Profile  Initial Submission

NIEM CODE LISTSNIEM Code Types

Code types are represented as UML enumerations. Each code value is one value of the enumeration.

Page 58: NIEM UML Profile  Initial Submission

NIEM AUGMENTATIONS

• Alternative 1: A UML Data type may also represent an Augmentation Type

• Alternative 2: Generalizations marked as <<AugmentedBy>> will be mapped to a property with a cardinality of 1 to simulate multiple inheritance in the XSD.

NIEM Augmentations

An Augmentation type is represented as a UML class with the <<Augmentation>> Stereotype. A property typed by an augmentation type may have an <<AppliesTo>> 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 <<AppliesTo>> may be properties of any NIEM object.

Page 59: NIEM UML Profile  Initial Submission

NIEM METADATANIEM Metadata

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

Page 60: NIEM UML Profile  Initial Submission

THE NIEM PIM MPD PROFILE

Page 61: NIEM UML Profile  Initial Submission

EXAMPLE MPD

Page 62: NIEM UML Profile  Initial Submission

• Overlap with PSM• Further abstracting some concepts to be more

platform independent– Augmentations would be modeled differently in RDF– AppliesTo may overlap existing UML capabilities– Can substitution groups use regular subclassing?

• Better layering– Separation of true platform independent concepts from

those that are for support of mapping to/from MPDs

ISSUES TO BE ADDRESSED

Page 63: NIEM UML Profile  Initial Submission

PSM PROFILE

Page 64: NIEM UML Profile  Initial Submission

GOALS OF THE NIEM PSM PROFILE

• 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.

64

Page 65: NIEM UML Profile  Initial Submission

65

UML SUBSET FOR NIEM SCHEMA

Metaclass

Package

DataType

Enumeration

EnumerationLiteral

Class

Property

Generalization

Dependency

A UML Profile consists of a subset of UML and a set of extensions to UML. The subset of UML used in the NIEM PSM Profile to represent NIEM-conforming XML Schemas consists of the above metaclasses.

Page 66: NIEM UML Profile  Initial Submission

66

OVERVIEW OF MAPPING TO NIEM SCHEMA

Metaclass Representation in NIEM-conforming XML Schema

Package schema document

DataType simple type definition

Enumeration simple type definition

EnumerationLiteral

enumeration facet

Class complex type definition

Property element or attribute declaration and use

Generalization derived type definition – base type definition relationship

Dependency other schema component relationship

The extensions to UML consist of a set of stereotypes that derive from this subset. In general, stereotypes extended from the metaclasses at left represent NIEM concepts implemented in XML Schema as specified at right.

Page 67: NIEM UML Profile  Initial Submission

CATEGORIZATION OF MAPPINGS TO NIEM SCHEMAStereotype (Metaclass)

NIEMNamespace (Package) Stereotype

NIEMNamespace

NIEMSimpleType (DataType, Enumeration) and Related Stereotypes

NIEMSimpleType NIEMCodeValue NIEMRestriction

NIEMListItemType NIEMUnionMemberType

NIEMComplexType (Class) and Related Stereotypes

NIEMComplexType NIEMAdapterType NIEMAssociationType

NIEMAugmentationType NIEMMetadataType NIEMObjectType

NIEMSimpleContent NIEMMetadataApplication

NIEMProperty (Property) and Related Stereotypes

NIEMProperty NIEMExternalProperty NIEMAnyProperty

NIEMTopLevel NIEMAugmentationApplication

NIEMChoice NIEMChoiceMemberProperty67

Page 68: NIEM UML Profile  Initial Submission

68

NIEMNAMESPACE STEREOTYPE

NIEMNamespace (Package)

• NIEMNamespace represents a namespace, which is implemented in XML Schema as an XML schema document.

• NIEMNamespace includes the following attributes: definition, isConformant, namespace, and version.

Page 69: NIEM UML Profile  Initial Submission

69

NIEMSIMPLETYPE AND RELATED STEREOTYPES

NIEMSimpleType (DataType) (can also be applied to Enumeration – next slide)

• NIEMSimpleType represents a NIEM type which is implemented in XML Schema as a simple type definition.

• NIEMSimpleType includes the following attributes: definition, fractionDigits, length, maxExclusive, maxInclusive, maxLength, minExclusive, minInclusive, minLength, pattern, totalDigits, and whiteSpace.

Page 70: NIEM UML Profile  Initial Submission

70

NIEMSIMPLETYPE AND RELATED STEREOTYPES

NIEMCodeValue (EnumerationLiteral)

• NIEMCodeValue represents a NIEM code value, which is implemented in XML Schema by an enumeration facet.

• NIEMCodeValue includes the following attributes: definition.

Page 71: NIEM UML Profile  Initial Submission

71

NIEMSIMPLETYPE AND RELATED STEREOTYPES

Stereotype (Generalization) Relationship

NIEMRestriction (Generalization) from a derived (by restriction) typeto its base type definition

NIEMListItemType (Dependency) from a list simple type definitionto its item type definition

NIEMUnionMemberType (Dependency)

from a union simple type definitionto one of its member type definitions

Page 72: NIEM UML Profile  Initial Submission

72

NIEMCOMPLEXTYPE AND RELATED STEREOTYPES

NIEMComplexType (Class),NIEMAdapterType (NIEMComplexType),NIEMAssociationType (NIEMComplexType), NIEMAugmentationType (NIEMComplexType), NIEMMetadataType (NIEMComplexType),NIEMObjectType (NIEMComplexType)

• NIEMComplexType is the generalization of the other stereotypes.• NIEMAdapterType, NIEMAssociationType, NIEMAugmentationType,

NIEMMetadataType, and NIEMObjectType represent the given class of NIEM type; these are implemented in XML Schema as complex type definitions.

• Stereotypes include the following attributes: definition.

Page 73: NIEM UML Profile  Initial Submission

73

NIEMCOMPLEXTYPE AND RELATED STEREOTYPES

Stereotype (Generalization) Relationship

Generalization from an derived (by extension) typeto its base complex type definition

NIEMSimpleContent (Dependency) from a complex type definitionto its simple content type

NIEMMetadataApplication (Dependency)

from a metadata type definitionto the type definition it applies to

Page 74: NIEM UML Profile  Initial Submission

74

NIEMPROPERTY AND RELATED STEREOTYPES

NIEMProperty (Property)

• NIEMProperty represents a NIEM property, which is implemented in XML Schema as an element or attribute declaration and use.

• NIEMProperty includes the following attributes: definition, kind, nillable, namespace, substitutionGroupName, substitutionGroupNamespace, value.

Page 75: NIEM UML Profile  Initial Submission

75

NIEMPROPERTY AND RELATED STEREOTYPES

NIEMExternalProperty (Property)

• NIEMExternalProperty represents an external component, which is implemented in XML Schema as an element or attribute use.

• NIEMExternalProperty includes the following attributes: kind, namespace.

Page 76: NIEM UML Profile  Initial Submission

76

NIEMPROPERTY AND RELATED STEREOTYPES

NIEMAnyProperty (Property)

• NIEMAnyProperty represents the use of a wildcard, which is implemented in XML Schema as the xsd:any particle.

• Stereotype includes the following attributes: definition, namespace, processContents.

Page 77: NIEM UML Profile  Initial Submission

77

NIEMPROPERTY AND RELATED STEREOTYPES

NIEMTopLevel (Class)

• NIEMTopLevel does not represent any NIEM concept; it exists to permit the user to define a NIEM property that is not the subject of any NIEM type.

Page 78: NIEM UML Profile  Initial Submission

78

NIEMPROPERTY AND RELATED STEREOTYPES

NIEMChoice (Property)

• NIEMChoice represents the use of a choice model group in XML Schema.• NIEMChoice includes the following attributes: definition.

Page 79: NIEM UML Profile  Initial Submission

79

NIEMPROPERTY AND RELATED STEREOTYPES

Stereotype (Generalization) Relationship

NIEMAugmentationApplication (Dependency)

from an augmentation elementto the type definition it applies to

NIEMChoiceMemberProperty (Dependency)

from a choice groupto its member element

Page 80: NIEM UML Profile  Initial Submission

NIEM NUMBERED RELEASESREFERENCE SCHEMAS

Reference Schemas

Page 81: NIEM UML Profile  Initial Submission

INFORMATION EXCHANGE PACKAGE DOCUMENTATION (IEPD)

Subset (of 2.1)

ncfbi

cbrn

mda

itatf

hazmatappinfo

structures

Extension Set

ext1

ext2

ext4

ext3

ExchangeSchema

my_iepd

Constraint Set (of 2.1 ss)

ncfbi

cbrn

mda

itatf

hazmatappinfo

structures

catalog.xml

changelog.xml

master-document.doc

http://my.org/iepd/my-iepd-1.4/d

eriv

ed

-fro

m

der

ive

d--

fro

m

importsim

po

rts

my_iepd.xml

Page 82: NIEM UML Profile  Initial Submission

82

UML SUBSET FOR MPD

Metaclass

Package

Dependency

A UML Profile consists of a subset of UML and a set of extensions to UML. The subset of UML used in the NIEM PSM Profile to represent MPDs consists of the above metaclasses.

Page 83: NIEM UML Profile  Initial Submission

83

OVERVIEW OF MAPPING TO MPDS

UML Metaclass MPD

Package MPD or XML schema

Dependency MPD-MPD, MPD-XML schema relationships

The extensions to UML consist of a set of stereotypes that derive from this subset. In general, stereotypes extended from the metaclasses at left represent NIEM concepts implemented in MPDs as specified at right.

Page 84: NIEM UML Profile  Initial Submission

84

MODELPACKAGEDESCRIPTION AND RELATED STEREOTYPES

ModelPackageDescription (Package)

• ModelPackageDescription represents a Model Package Description (MPD). Specifically, it represents the information in the catalog.

Stereotype (Generalization) Relationship

ModelPackageDescriptionRelationship (Dependency)

from an MPDto the MPD to which it is related

ModelPackageDescriptionFile (Dependency)

from an MPDto the NIEMNamespace it includes

Page 85: NIEM UML Profile  Initial Submission

MODELPACKAGEDESCRIPTION AND RELATED STEREOTYPES

85

Page 86: NIEM UML Profile  Initial Submission

ADDITIONAL EXAMPLE (NIEMSIMPLETYPE)

86

Page 87: NIEM UML Profile  Initial Submission

ADDITIONAL EXAMPLE (NIEMLISTITEMTYPE)

87

Page 88: NIEM UML Profile  Initial Submission

ADDITIONAL EXAMPLE (NIEMUNIONMEMBERTYPE)

88

Page 89: NIEM UML Profile  Initial Submission

ADDITIONAL EXAMPLE (NIEMCODEVALUE)

89

Page 90: NIEM UML Profile  Initial Submission

ADDITIONAL EXAMPLE (NIEMOBJECTTYPE)

90

Page 91: NIEM UML Profile  Initial Submission

ADDITIONAL EXAMPLE (NIEMSIMPLECONTENT)

91

Page 92: NIEM UML Profile  Initial Submission

ADDITIONAL EXAMPLE (NIEMMETADATAAPPLICATION)

92

Page 93: NIEM UML Profile  Initial Submission

NEXT STEPS AND WAY FORWARD

Page 94: NIEM UML Profile  Initial Submission

• Significant overlap between the PIM and the PSM due to similar goals

• Profile complexity due to the two similar models

• Lack of a profile which is an isomorphic representation of an NIEM IEPD

• Potential challenges with transformations between the PIM and the PSM and between the PSM and an IEPD

Challenges with Current Approach

Page 95: NIEM UML Profile  Initial Submission

Candidate Profile Architecture for Validation

UML Profile For NIEMUML Profile For NIEM

UML subset and NIEM semantic stereotypes

NIEM representational stereotypes

MPD XSD ArtifactsMPD XSD Artifacts

Isomorphic mapping

XSD representational stereotypes

The profile presents a continuum

from a level of abstraction perspective

Ad

din

g stereo

typesA

dd

ing

fea

ture

s

Entry Point for NIEM Business Modelers

Entry Point for NIEM Schema Modelers

Defau

lts

Page 96: NIEM UML Profile  Initial Submission

• Validate the proposed submission architecture: – Perform gap analysis between the overlapping PIM

and PSM concepts – Work together on defining a representation for the

overlapping constructs which defer in representation– Identify where in the profile each of the current PIM

and PSM concepts belongs

• As soon as consensus is reached, work together to implement and document each concept.

• Assemble the final submission

Next Steps

Page 97: NIEM UML Profile  Initial Submission

OBJECTIVES OF COMBINED PROFILE

• Standards Based: To leverage standards and standards based tools

• Simplicity: To reduce complexity and lower the barrier for entry

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

• Agility: To enable the NIEM profile to be used with other standards,

technologies and layers

• Audience: Two entry points for tools and modelers – business and schema

• 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 98: NIEM UML Profile  Initial Submission

QUESTIONS ???