1 / 88

NIEM-UML Profile

NIEM-UML Profile. Justin Stekervetz, NIEM PMO Cory Casanave, Model Driven Solutions Mark Kindl, Georgia Tech Research Institute March 2012 OMG Meeting. Current Status.

lynnea
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 March 2012 OMG Meeting

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

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

  4. Introduction and Goals

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

  6. Collaborative Innovation

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

  8. NIEM Conformance

  9. Support for PIM & PSM Perspectives

  10. NIEM-UML Layered Architecture

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

  12. NIEM-UML Platform Independent Model (PIM)By Example

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

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

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

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

  17. High-level information Model

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

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

  20. Repeat as required

  21. 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”

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

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

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

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

  26. Completed High-Level Model

  27. Adding the IEPD Metadata Each packages it uses become XML Schema This models the IEPD to be produced Subset packages automatically subset a reference model Existing NIEM-Core is subset, not copied into IEPD

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

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

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

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

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

  33. NEIM-UML Profiles

  34. NIEM-UML Profile Structure

  35. Common Profile

  36. Platform Independent Profile

  37. Modeling Namespaces

  38. Namespaces

  39. Information Models (PIM Only)

  40. Relations between namespaces (PIM Only)

  41. Representation of Complex Types

  42. NIEM Object Types PIM Only Equivalent

  43. Your basic “thing” in XML 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>

  44. NIEM Roles NIEM Role Concept

  45. NEIM Roles

  46. NIEM Associations

  47. NIEM & UML Associations

  48. NIEM Metadata

  49. NIEM Augmentations

  50. NIEM Augmentations Subclassing an augmentation turns into a augmentation property.

More Related