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

UML Automation Improvements

Contents

Introduction

This page is a place to collect and prioritise ideas about how the UML modelling environment (eg Enterprise Architect) can be improved to support modelling using the HollowWorld and underlying ISO idioms.

An Enterprise Architect plugin is being developed by CSIRO Land & Water - the status of tools against each issue is noted where development has commenced.

This page might be replaced by a JIRA or TRAC system that shows high-level enhancement requests smile

Create package dependencies automatically

Package dependencies need to be explicitly modelled, and should be diagramatically exposed, however this information is redundant - since the dependencies are inherent in class relationships that span package boundaries.

Possible "Ideal" solution

  • Add package import dependency diagram automatically for each «ApplicationSchema» package
  • Add new package import dependency automatically to diagram when a dependency is generated during class modelling
  • Provide regenerate option to delete and create new diagram from underlying dependencies

Implemented solution

  • Generate when add-in function manually invoked against selected ApplicationSchema package

Status: completed, in beta test See: https://www.seegrid.csiro.au/twiki/bin/view/AppSchemas/HollowWorldHelperPlugin#Generate_Package_Dependencies_Di

Create class context diagrams automatically

Create a context diagram for each class in a package, following ISO best practices.

Implemented solution

  • Generate when add-in function manually invovked against selected ApplicationSchema package
  • Diagrams named "Context diagram: "
  • generation skipped if an existing diagram with the naming convention, to avoid overwriting manually constructed
  • diagram notes (from other diagrams) linked to class included by default
  • layed out with superclasses above, sub classes below and related classes and notes in columns on either side.

Status: completed, in beta test See https://www.seegrid.csiro.au/twiki/bin/view/AppSchemas/HollowWorldHelperPlugin#Generate_Class_Context_Diagram

Create diagram images when saving controlled packages to SVN

The export tools provide for creating the set of diagram images, but this is disabled when checking in a package. This means that a manual process is required to create documentation from the saved model package in the SVN repository, using manually exported diagrams from EA saved by some out-of-band process.

Proposed Solution

  • Generate diagrams automatically and save into svn at the same time as the XMI
  • Make this the default behaviour for an «ApplicationSchema» (or a global default for HollowWorld, or VersionControl ?)

Status: not started

Create sequenceNumber tags automatically

The ISO modelling idiom required attributes and associations be decorated witha sequenceNumber tag to enforce consistent ordering of properties in implementations.

Possible "ideal" Solution

  • Generate sequenceNumber tags and a dialog to assign a value when a new association is created.
  • renumber automatically on attribute creation (using display order) or deletion or attribute or association.

Implemented Solution

Status: completed: in beta test see https://www.seegrid.csiro.au/twiki/bin/view/AppSchemas/HollowWorldHelperPlugin#Assign_sequenceNumber_tagged_val

Register model packages and tag them with external identifiers

If a model package is to be used by an external system, or artefacts derived from it, it will be necessary to advertise a persistent identifier for each component. For example, a Feature Type Catalog will provide a more granular means of referencing elements in an application schema. Generating a FTC from a model automatically requires keeping such identifiers persistent. Model GUIDs are not safe, so it will be necessary to tag the ApplicationSchema with an identifier, which will act as a namespace for model elements.

Proposed Solution

  • When putting an ApplicationSchema under version control, assign an identifier. This should be done as a precursor to the SVN check-in, so that the tag does not need to be retrofiited, or injected into the SVN controlled XMI document. Upon any model export (in any form), or check out, the latest SVN controlled XMI would be automatically loaded if such a tag is not present.

Migrate package dependencies

When a package is published, then a new version is published, for example the O&M model piublished by OGC is superceded by an almost identical model published by ISO, all dependent applicationn schemas that wish to change to the new version need to recreate, association by association, relationships with the new object IDs in the new package.

The proposal is to create a tool that would perform package name + class name matching, and updated dependencies in client packages from one version to another.

Pre-condition: A model with package B dependent on package A.1, a package A.2 superceding A.1, and A.1, A.2 and B loaded. Package B with write access. Post-condition: A model with package B dependent on package A.2. Package B has a metadata tag specifying the operation and whether the mapping was complete or required human intervention.

Discussion and Use Cases:

ModelManagementUseCases

status: In development.

(Meta-)Model conformance tests

In order for a model to be 'implementable' as a GML conformant XML Schema, the UML Class model must conform to the UML profile described in ISO 19136 (GML 3.2) Annex E. FullMoon has a conformance test module which tests conformance of a model exported from EA - see http://projects.arcs.org.au/trac/fullmoon/wiki/ModelConformanceTests. The modeler's experience would be enhanced if some or all of these tests were running inside the modeling environment.

Implemented Solution

  • run conformance tests for package using add-in function

Status: completed - in alpha test See https://www.seegrid.csiro.au/twiki/bin/view/AppSchemas/HollowWorldHelperPlugin#ISO19100_Conformance_Checker

Class definition diagram

Create a class diagram which shows definitions of class and each attribute.

Create Object Model template

we want to create object models containing test cases for models. Using the profiling mechanisms being explored, it is sensible to create stubs for an entire application schema

Object Model conformance testing

Object models may contain relationships not described by the class model (check if this is inherent in UML or a bug!), but we want to check and enforce consistency between object models and class models.

Possible Product Enhancement Requests

Please suggest, and if registered with vendor place a link to the issue tracking system provided if possible

Enterprise Architect (SparxSystems)

Show source package of attribute types

* Recently upgraded to version 7.5 and realised that this has been implemented smile Now shows a tree view of types from available packages.* PT

When selecting types for attributes it isn't possible to determine in what package the type has been defined (without going out and searching for it). Sometimes there may be types that have the same name, but are from different packages so it's impossible to tell which one to use.

Proposed solution

  • Show the source package along side the type in the attribute list, similar to the way it is done for imported classes. e.g. Metadata::ObservationMetadata.
  • Allow the user to designate a default

Choose a set of model libraries and use defined types as defaults

At the moment, there are three paradigms in play when choosing a data type (setting it for an attribute) - choosing from the drop down list (fully populated, with a need to dive in further to get partial identification of package (leaf node of package hierarchy by non-unique name) - typing a name in and producing a data type reference that wont resolve or defining a namespace in the root of a model, which wont work if you dont have write access and is buried under 'source code engineering. These are all error prone or unworkbale.

Proposed solution

The user should define (and the model remember) a worket set of model libraries. By deafult data types in drop downs etc should be limited to the set of data types defined in these (ideally organised by grouping using a set of stereotypes defined in the UML profile). This list should also indicate the namespace. One possibility would be to have a list where the user can order by name, package+name or stereotype+name

Detect changes to subversion controlled packages

On model load, it is necessary to manually check the status of controlled packages.

Proposed Solution

Check SVN status of version controlled packages in background on model load.

Detect Version control configuration names

If you load a package using version control that loads other packages, it only successfully follows the links if the included packages used the same version control name as the top level package. This is not visible when you load it though. It lives in the XMI:

so when you make an arbitrary choice of name from the version control settings you break this.

Options

  • on import detect package has a version control tag and offer to set it up using the same name - i.e. rename the SVN configuration to match
  • allow GetPackage to be used without a SVN configuration in place, and when the users chooses one then detect the name it requires.

Show object and attributes notes on mouseovers

EA shows the first few words of descriptions on class object mouseovers. To be useful this needs to provide, at least as an option that can be set for a model, to show the first full paragraph or complete note, and also to work for properties (attributes, operations and associations)

 
Topic revision: r17 - 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).