"Seegrid will be due for a migration to confluence on the 1st of August. Any update on or after the 1st of August will NOT be migrated"

Checklist for application schemas

Contents

Related pages



This page will provide a checklist to ensure that an application schema formalized in UML is ready for processing using a UML→GML transformation tool, such as FullMoon. Many of these requirements are included in the ModelConformanceTests, which are implemented by the testing module of FullMoon.

The UmlGmlTestModels illustrate most of the patterns that will be used in conformant domain models. For each model, there are links to
  1. XMI serialization
  2. XML Schema and HTML Documentation generated by FullMoon
These provide a convenient illustration of the domain modeling patterns and FullMoon capabilities

Model packaging

  • The model shall be contained in a single package stereotyped «Application Schema»
    • The «Application Schema» package shall be the root of the XMI document exported from the UML tool
    • The «Application Schema» package shall not contain any other «Application Schema» packages, directly or nested deeper
    • other packages may be nested inside the «Application Schema» package
  • A package that contains visible classes may be stereotyped «Leaf»
  • A package stereotyped «Leaf» shall not itself contain any packages
  • Mandatory tagged values on packages are set - see UmlGmlStereotypesAndTaggedValues
    • The «Application Schema» package shall have the following tagged values set
      • targetNamespace , xmlns , xsdDocument
    • Any package that contains visible classes shall have the following tagged values set
      • xsdDocument

Dependencies

  • A package dependency diagram must be included - this reflects the use of classes in one package by classes in another package, and will usually be constructed manually.
    • 'dependency' includes any use of the class in the definition of one of the classes in your domain model;
      e.g. generalization or inheritance parent ; attribute type; association
    • the diagram should show all dependencies between each package in the domain model and its provider packages, both internal and external
      • package dependencies internal to the model should point to «Leaf» packages
      • dependencies on external packages should point to the package that represents the complete, separately maintained, artefact
        • e.g. if the external dependency relates to another «Application Schema», the dependency should point to the «Application Schema»package itself
    • package dependencies should be recorded using UML - - - > dependency association. If available, the «import» stereotype may be applied. See examples in UmlGmlTestModels
  • Each external package must be matched with an entry in a ExternalDependencyConfiguration#Register_of_packages
  • Each external class used in the model must be matched with an entry in a ExternalDependencyConfiguration#Class_mapping_table
    • the classmap must be available to FullMoon via the http protocol

Classes

Class properties

  • Association navigability
    • every association end should have its navigability set
    • each navigable association must carry a roleName else it will not be encoded
    • navigable associations are owned by the source class. You can't add outbound associations to classes you don't own
  • Composition associations shall be used for inbound associations to classes stereotyped «DataType»
  • Attribute types shall be classes visible in the model
    • don't enter the type by typing its name in a text-box, rather you should select it from the menu or drop-down list
  • Mandatory tagged values on properties are set - see UmlGmlStereotypesAndTaggedValues
    • sequenceNumber must be present on every attribute and navigable association-end, and must be unique within the scope of the class that owns them
    • inlineOrByReference may be used to force the encoder to use nested-elements or xlinks only, if desired

XMI format

  • The model shall be serialized using XML v1.1

 
Topic revision: r12 - 15 Oct 2010, UnknownUser
 

Current license: All material on this collaboration platform is licensed under a Creative Commons Attribution 3.0 Australia Licence (CC BY 3.0).