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

Slides:



Advertisements
Similar presentations
Profiles Construction Eclipse ECESIS Project Construction of Complex UML Profiles UPM ETSI Telecomunicación Ciudad Universitaria s/n Madrid 28040,
Advertisements

1 CIS224 Software Projects: Software Engineering and Research Methods Lecture 11 Brief introduction to the UML Specification (Based on UML Superstructure.
NIEM UML Profile Initial Submission. AGENDA NIEM Overview NIEM Technical Concepts NIEM UML Profile Introduction PIM Profile PSM Profile Next Steps and.
OMG Architecture Ecosystem SIG Federal CIO Council Data Architecture Subcommittee May 2011 Cory Casanave.
NIEM Healthcare Domain FHIM/S&I Framework Strategy 4/7/2011.
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 7 Data Modeling Using the Entity- Relationship (ER) Model.
UML CASE Tool. ABSTRACT Domain analysis enables identifying families of applications and capturing their terminology in order to assist and guide system.
Ontologies Reasoning Components Agents Simulations An Overview of Model-Driven Engineering and Architecture Jacques Robin.
Sunday, June 28, 2015 Abdelali ZAHI : FALL 2003 : XML Schemas XML Schemas Presented By : Abdelali ZAHI Instructor : Dr H.Haddouti.
1 ECCF Training 2.0 Introduction ECCF Training Working Group January 2011.
Introduction to XML This material is based heavily on the tutorial by the same name at
XML Exchange Development CAM Technology Tutorial – Public Sector NIEM Team, June 2011 CAM Test Model Data Deploy Requirements Build Exchange Generate Dictionary.
1 1 Roadmap to an IEPD What do developers need to do?
NIEM-UML Profile Justin Stekervetz, NIEM PMO
Technical Introduction to NIEM
Model Driven Information Sharing (MDIS)
XP New Perspectives on XML Tutorial 4 1 XML Schema Tutorial – Carey ISBN Working with Namespaces and Schemas.
CSE314 Database Systems Data Modeling Using the Entity- Relationship (ER) Model Doç. Dr. Mehmet Göktürk src: Elmasri & Navanthe 6E Pearson Ed Slide Set.
1 CIM User Group Conference Call december 8th 2005 Using UN/CEFACT Core Component methodology for EIC/TC 57 works and CIM Jean-Luc SANSON Electrical Network.
Faculty of Informatics and Information Technologies Slovak University of Technology Peter Kajsa and Ľubomír Majtás Design.
1 Introduction to Modeling Languages Striving for Engineering Precision in Information Systems Jim Carpenter Bureau of Labor Statistics, and President,
National Institute of Standards and Technology 1 Testing and Validating OAGi NDRs Puja Goyal Salifou Sidi Presented to OAGi April 30 th, 2008.
AGENDA 1.The NIEM Framework What common services, governance models, processes and tools are provided by NIEM? 2.NIEM Specifications & Processes What.
Interoperability Standards for Information Sharing and Safeguarding PM-ISE Slide 1 | Unclassified | Notional | DRAFT.
Business Requirements Using Unified Modeling Language Eric H. Castain, SVP Internet Services Group, Architecture Wells Fargo March 2005.
MDA and QVT  Tom Gullion, Director of Product Management, Together Products.
Profiling Metadata Specifications David Massart, EUN Budapest, Hungary – Nov. 2, 2009.
UN/CEFACT Forum Wednesday, 16 March 2005 Lunch & Learn ATG XML NDR Mark Crawford ATG2 Chair U NITED N ATIONS C ENTRE F OR T RADE F ACILITATION A ND E LECTRONIC.
Introduction to MDA (Model Driven Architecture) CYT.
Web services for Enterprise Collaboration Applying MDA to web services for enterprise collaboration Doc Mars/ Doc webserv/
NIEM-UML Profile 2.1 Introduction and Tool Demonstration TRAINING Presenter Name Organization Date NIEM-UML PROFILE 2.1.
Federal XML Naming and Design Rules and Guidelines Mark Crawford.
Introduction of PRO WG activities Group Name: TP Source: Shingo Fujimoto, FUJITSU, Meeting Date: Agenda Item:
ISO/IEC CD and WD : Core Model and Model Mapping ISO/IEC JTC1/SC32/WG September 2005, Toronto SC32/WG2 Japan (Kanrikogaku Ltd) Masaharu.
University of Southern California Center for Systems and Software Engineering Model-Based Software Engineering Supannika Koolmanojwong Spring 2013.
New Perspectives on XML, 2nd Edition
XML Schema. Why Schema? To define a class of XML documents Serve same purpose as DTD “Instance document" used for XML document conforming to schema.
NIEM Information Exchange Package Documentation (IEPD) Mini Kanwal NIEM Technical Advisor Department of Homeland Security September, 7 th 2006.
Dr. Darius Silingas | No Magic, Inc. Domain-Specific Profiles for Your UML Tool Building DSL Environments with MagicDraw UML.
S&I Integration with NIEM (DRAFT) Standards Development Support June 8, 2011.
Sheet 1XML Technology in E-Commerce 2001Lecture 2 XML Technology in E-Commerce Lecture 2 Logical and Physical Structure, Validity, DTD, XML Schema.
XML 2nd EDITION Tutorial 4 Working With Schemas. XP Schemas A schema is an XML document that defines the content and structure of one or more XML documents.
1 Tutorial 14 Validating Documents with Schemas Exploring the XML Schema Vocabulary.
Tutorial 13 Validating Documents with Schemas
Logical view –show classes and objects Process view –models the executables Implementation view –Files, configuration and versions Deployment view –Physical.
1 ECCF Training 2.0 Introduction ECCF Training Working Group January 2011.
Design Model Lecture p6 T120B pavasario sem.
Common Terminology Services 2 CTS 2 Submission Team Status Update HL7 Vocabulary Working Group May 17, 2011.
Working with XML Schemas ©NIITeXtensible Markup Language/Lesson 3/Slide 1 of 36 Objectives In this lesson, you will learn to: * Declare attributes in an.
Dictionary based interchanges for iSURF -An Interoperability Service Utility for Collaborative Supply Chain Planning across Multiple Domains David Webber.
Leveraging UBL for Developing Justice XML (GJXDM) Reference Documents John Ruegg County of Los Angeles Information Systems Advisory Body GJXDM User Conference.
® A Proposed UML Profile For EXPRESS David Price Seattle ISO STEP Meeting October 2004.
XML Schema Definition (XSD). Definition of a Schema It is a model for describing the structure and content of data The XML Schema was developed as a content.
Chapter 5 System Modeling. What is System modeling? System modeling is the process of developing abstract models of a system, with each model presenting.
XASTRO-2 Presentation CCSDS SAWG th November 2004.
Class Diagrams. Terms and Concepts A class diagram is a diagram that shows a set of classes, interfaces, and collaborations and their relationships.
Ontologies Reasoning Components Agents Simulations An Overview of Model-Driven Engineering and Architecture Jacques Robin.
© 2010 IBM Corporation RESTFul Service Modelling in Rational Software Architect April, 2011.
CHESS Methodology and Tool Federico Ciccozzi MBEES Meeting Sälen, January 2011 January 2011.
Healthcare-oriented Modeling Environment ( HoME ) Managed jointly by: Veterans Health Administration (VHA) IBM modeling-mdt.projects.openhealthtools.org.
Data Modeling Using the Entity- Relationship (ER) Model
Interface Concepts Modeling Core Team
UNIT-IV Designing Classes – Access Layer ‐ Object Storage ‐ Object Interoperability.
Logical Database Design and the Rational Model
Implementing the Surface Transportation Domain
Software Quality Engineering
Data Modeling II XML Schema & JAXB Marc Dumontier May 4, 2004
UML profiles.
An Introduction to Software Architecture
NIEM Tool Strategy Next Steps for Movement
Presentation transcript:

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

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. This was updated for OMG review 3/17/2012. OMG Document Number: gov/ Machine Readable Artifacts: gov/ Our intent is to make minimal enhancements to this specification and ask for a vote-vote at the next meeting

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

INTRODUCTION AND GOALS

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

COLLABORATIVE INNOVATION

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.

NIEM CONFORMANCE

SUPPORT FOR PIM & PSM PERSPECTIVES

NIEM-UML LAYERED ARCHITECTURE

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

NIEM-UML PLATFORM INDEPENDENT MODEL (PIM) BY EXAMPLE

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

NIEM-UML Profiles 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 Includes Transforms Between XML Primitive Types Uses Conforms to User’s UML NIEM Models Generated Based on NIEM-UML Model Libraries Transform Specification Conforms to

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.

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

HIGH-LEVEL INFORMATION MODEL

THIS IS NIEM - REUSE!

MODEL REUSE OF NIEM CORE

REPEAT AS REQUIRED

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

WHAT IS AN ADOPTION? An adoption is a kind of activity We can reuse this from NIEM-Core as well

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

NIEM ASSOCIATIONS Associations Connect Objects – in this case people and contact information

AUGMENTATIONS – PHONE NUMBER ++

COMPLETED HIGH-LEVEL MODEL

ADDING THE IEPD METADATA

CREATE THE IEPD FROM THE MODEL

ALL THE IEPD ARTIFACTS ARE THEN CREATED BY THE MDA AUTOMATION

MDA AUTOMATION ALSO CREATES NIEM CONFORMANT XML SCHEMA true

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

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

NEIM-UML PROFILES

NIEM-UML PROFILE STRUCTURE

COMMON PROFILE 35

PLATFORM INDEPENDENT PROFILE

MODELING NAMESPACES

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

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

RELATIONS BETWEEN NAMESPACES (PIM ONLY) InformationModel (Package) Packages can “use” other packages Packages can > and subset reference packages Supports MPD/IEPD packaging

REPRESENTATION OF COMPLEX TYPES

NIEM OBJECT TYPES NIEM Object Types An object type is represented as a UML class, no stereotype is required. (PIM Only). In a PSM an object type must be stereotyped an > Equivalent

YOUR BASIC “THING” IN XML A data type for a human being. A date a person was born. A combination of names and/or titles by which a person is known. A unique reference to a living person; assigned by the United States Social Security Administration.

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

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

NIEM ASSOCIATIONS NIEM Associations A UML Class stereotyped as an > 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.

NIEM & UML ASSOCIATIONS NIEM 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 > stereotype.

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

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

NIEM AUGMENTATIONS NIEM Augmentations (PIM Only) A generalization can be marked to > an >. Inheriting an augmentation creates an augmentation property.

ADAPTER TYPES Adapter Types An 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]

MODELING SIMPLE TYPES

DATATYPE AND RELATED ELEMENTS 53 DataType (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

DATATYPE AND RELATED ELEMENTS PrimitiveType (UML) Represents XML types and subtypes of them.

DATATYPE AND RELATED ELEMENTS 55 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.

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

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

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 58

MODELING PROPERTIES

NIEM PROPERTIES NIEM Properties Non-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..

NIEM PROPERTY REUSE NIEM 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 > 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 >. Property holders are a NIEM-PIM Stereotype specificity to hold properties not owned by a class in the namespace (top level properties).ReferencesPropertyHolder

SUBSETTING A REFERENCE VOCABULARY (PIM ONLY)

NIEM SUBSTITUTION GROUPS NIEM 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 > since the containing class is not consequential, it is simple a holder for the group of substitutable properties.PropertyHolder

PLATFORM SPECIFIC PROFILE

PIM(COMMON)PSM + MPD PSM PIM Commo n PIM PS M MPD

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

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.

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

SEQUENCEID (PROPERTY) Indicates an attribute use for which the attribute declaration is structures:sequenceID.

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.

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

MODEL PACKAGE DESCRIPTION PROFILE

MODEL PACKAGE DESCRIPTION MODEL

PET ADOPTION MPD (PSM)

PET ADOPTION EXCHANGE (PSM)

PET ADOPTION EXTENSION (PSM)

NIEM REFERENCE VOCABULARIES Core (NIEM Core) Reference (Combined) common.ansi_d20 common.apco common.atf common.cbrncl common.census common.dea common.dod_jcs-pub2.0-misc common.edxl-cap common.edxl-de common.edxl-have common.edxl common.fbi common.fips_10-4 common.fips_5-2 common.fips_6-4 common.geospatial common.have-codes common.hazmat common.icism common.iso_3166 common.iso_4217 common.iso_639-3 common.itis common.lasd common.mmucc_2 common.mn_offense common.nga common.nlets common.nonauthoritative-code common.post-canada common.sar common.twpdes common.ucr common.unece_rec20-misc common.usps_states common.ut_offender-tracking-misc core domains.emergencyManagement domains.familyServices domains.infrastructureProtection domains.intelligence domains.jxdm domains.maritime domains.screening external.cap external.de external.have external.ogc

STRUCTURED ENGLISH MAPPING SPECIFICATION EXAMPLES

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

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

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.

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

MAPPING EXAMPLE

mapping uml::Comment::XSDAnnotation_AttributeGroupDefinition(in xsdContainer : xsd::XSDConcreteComponent ) : result : xsd::XSDAnnotation when{self.isStereotypeApplied(this.XsdAnnotationStereotype).and(xsdContai ner.oclIsKindOf(XSDAttributeGroupDefinition));} { xsdContainer.oclAsType(XSDAttributeGroupDefinition).annotation:=result; self.XSDAnnotation(result); } QVT EXAMPLE

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)

ADDITIONAL SUPPORT Additional support files are located on Tool specific files Examples –Examples reverse engineered from existing IEDPs –Pet example

QUESTIONS AND COMMENTS