1 / 55

NIEM-UML Profile

NIEM-UML Profile. Justin Stekervetz, NIEM PMO Cory Casanave, Model Driven Solutions Mark Kindl, Georgia Tech Research Institute. Current Status. The “Revised Submission to the UML Profile for NIEM (NIEM-UML)” was delivered to the Object Management Group (OMG) on Monday, February 20 th .

calida
Download Presentation

NIEM-UML Profile

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. NIEM-UML Profile Justin Stekervetz, NIEM PMO Cory Casanave, Model Driven Solutions Mark Kindl, Georgia Tech Research Institute

  2. 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. https://www.niem.gov/industry/Documents/NIEM-UML-Revised-Submission-gov-12-02-01.zip

  3. Collaborative Innovation

  4. NIEM-UML Goals 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. • 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

  5. NIEM Conformance

  6. NIEM-UML Layered Architecture

  7. NIEM-UML Platform Independent Model (PIM) Demo

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

  9. NIEM-UML PIM Models XML Primitive Types NIEM-UML Model Libraries NIEM-UML Profiles and Transforms Uses PIM Profile NIEM Core Model NIEM Domain Model Extends & References PIM Model For One or More Exchanges User’s UML NIEM Models Includes Model Package Description Profile Uses Model of a Specific MPD Conforms to Transforms Between Transform Specification Uses PSM Profile Platform Specific Model of a Specific MPD Generated Based on NIEM-UML Conforms to Transforms Between Transform Specification Conforms to Existing NIEM NDR and MPD Platform Specifications A NIEM MPD

  10. 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. A follow-up presentation and demo can get into the details.

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

  12. High-level information Model

  13. This is NIEM - Reuse! Find what you want to reuse in the reference namespaces All the reference namespaces are already in UML Find what you want to reuse in the reference namespaces NIEM Core

  14. model reuse of NIEM Core Create subsets of these in a subset namespace package – reference the reference classes Find what you want from the reference namespaces – can copy/paste

  15. Repeat as required

  16. Roles of organizations • 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”

  17. What is an Adoption? • An adoption is a kind of activity • We can reuse this from NIEM-Core as well

  18. 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 Property using the code list This is a NIEM code list

  19. NIEM Associations This is a NIEM association between Person and Contact Information Associations Connect Objects – in this case people and contact information

  20. Augmentations – Phone Number ++ Optionally, an augmentation can be restricted to what it “applies to” This is direct extension – not an augmentation Inheriting an augmentation results in a NIEM augmentation property, not XSD extension

  21. Completed High-Level Model

  22. Adding the IEPD Metadata The packages it uses become XML Schema This models the IEPD to be produced

  23. Create the IEPD from the model You then tell your UML and/or MDA tool to make the IEPD

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

  25. 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:elementmaxOccurs="unbounded" minOccurs="1" ref="tns:People"/> <xsd:elementmaxOccurs="unbounded" minOccurs="1" ref="tns:Pets"/> <xsd:elementmaxOccurs="unbounded" minOccurs="1" ref="tns:PetAdoptions"/> <xsd:elementmaxOccurs="unbounded" minOccurs="1" ref="tns:PetAdoptionCenters"/> <xsd:elementmaxOccurs="unbounded" minOccurs="0" ref="tns:Addresses"/> <xsd:elementmaxOccurs="unbounded" minOccurs="0" ref="tns:ContactInformation"/> <xsd:elementmaxOccurs="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

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

  27. How much is there to learn? Note: A Forester report estimated that 71% of software development teams already use UML • NIEM Logical Concepts • Not the XSD and NDR Details • The PIM and Common Profile • The Model Package Description Profile • A UML Tool

  28. NIEM-UML Platform Specific Model (PSM)

  29. NIEM-UML Profile Models

  30. Platform Independent Model

  31. Common Model

  32. Platform Specific Model

  33. Model Package Description Model

  34. (PIM(Common)PSM) + MPD Common PSM PIM MPD

  35. Namespace Stereotype

  36. DataType and Related Stereotypes

  37. DataType and Related Stereotypes

  38. DataType and Related Stereotypes

  39. Class and Related Stereotypes

  40. Class and Related Stereotypes

  41. Backup Slides

  42. NIEM Properties

  43. NIEM Property Reuse

  44. Subsetting a Reference Vocabulary Reference Vocabulary Subset for a particular exchange

  45. NIEM Substitution Groups

  46. NIEM Primitive Types

  47. Representation of Complex Types

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

  49. Your basic “thing” Elements are used in XSD data structures Every element becomes global for reuse ( <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:elementmaxOccurs="1" minOccurs="1" ref="nc:PersonBirthDate"/> <xsd:elementmaxOccurs="1" minOccurs="1" ref="nc:PersonName"/> <xsd:elementmaxOccurs="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>

  50. NIEM Roles NIEM Role Concept

More Related