MetaBoss
User Guides
Synopsis
Beginner's Guide
Configuration Guide
Design Studio Guide
Programming Model Guide
Testing Framework Guide
'How To ...' Guides
References
Synopsis
Design Model Reference
Design Model UML Profile
Test Schema Reference
MetaBoss design library
Run-time libraries API
Dev-time libraries API
HatMaker Example
Synopsis
Enterprise Model Description
Enterprise Model Reference
SystemTest Example
WebServices Example
Miscellaneous
About MetaBoss
Quality Assurance
Compatibility Notes
Acknowledgments
Glossary
Change Log
Version 1.4.0001
Built on 15 Dec 2005 22:31:47

UML Profile For MetaBoss Design Model

Index

Overview
MetaBoss to UML Mapping basiscs
UML Profile Reference
UML Profile in XMI


Overview

OMG's UML Specification describes UML Profile as the UML mechanism used to extend UML itself. Although MetaBoss is based on its own Design Meta Model (which consists of specialised Enterprise Modelling Language and corresponding MOF definition), it also provides UML Profile For MetaBoss which allows to use UML to create MetaBoss Design Models. Translation utilities to convert models from UML to MetaBoss and from MetaBoss to UML are also provided. This approach offers a number advantages such as:

  • Designer may use any UML Modelling tool to work with the models and only use MetaBoss for code generation.
  • MetaBoss Design Model can be exported in UML notation and used as an input to any other tool which understands UML.
  • Other numerous benefits directly flowing from the complete openness of the model.

This reference document contains the description of the UML Profile For MetaBoss Design Model as well as the UML Profile itself in XMI format. The UML Profile contains a skeleton UML model with elements of the UML Profile for MetaBoss Design Model (Stereotype and Tag definitions) already created. It can be used to kick start new MetaBoss Design project in the third party UML modelling tool. To do that one would need to create a new UML Model (or UML Project or whatever your tool might call the stand alone unit of work) and then import UML Profile For MetaBoss Design Model XMI file into this newly created model. (Your UML Modelling Tool documentation should explain how to do it).

MetaBoss to UML Mapping basiscs

Each and every MetaBoss Model Element is mapped to the particular type of the UML Model Element. UML Stereotypes are used to 'specialise' generic UML Model Elements. Standard attributes of the UML Elements are used as much as possible. Tag values are attached to UML Model Elements in order to specify additional features which are not explicitly specified in UML. The name of MetaBoss Model Element is mapped to the name of the coresponding UML Model Element. The Description of the MetaBoss Model Element is mapped to the UML Comment which is attached to the corresponding UML Model Element.

UML Profile Reference

This UML Profile reference should be read in conjunction with the Design Model Reference since it merely represents instructions how to represent MetaBoss Design Model elements in UML.

The MetaBoss Design Model elements represented in the UML Model as follows:

MetaBoss Model Element UML Model Element UML Model Stereotype Additional mapping notes
Enterprise Model Model metaboss.model Represented by the Model which is the top most element of every model. More...
Enterprise Packagemetaboss.enterprise Represented by the Package in the Model. More...
System Package metaboss.system Located anywhere within the Package which represents Enterprise. More...
Servicemodule Package metaboss.servicemodule Located anywhere within the Package which represents System. More...
Structure Class metaboss.structure Located anywhere within the Package which represents Servicemodule. More...
StructureField Attribute none Feature of the Class which represents Structure. Type must point to DataType or Class which represents Structure. More...
Message Class metaboss.message Located anywhere within the Package which represents Servicemodule. More...
MessageField Attribute none Feature of the Class which represents Message. Type must point to DataType. More...
Service Class metaboss.service Located anywhere within the Package which represents Servicemodule. More...
Operation Operation metaboss.operation Feature of the Class which represents Service. More...
OperationInputField Parameter metaboss.parameter Contained in the Operation. Kind attribute must be set to "in". Type must point to either DataType or Class which represents Structure. More...
OperationOutputField Parameter metaboss.parameter Contained in the Operation. Kind attribute must be set to "return". Type must point to either DataType or Class which represents Structure. More...
OperationOutputMessage Parameter metaboss.parameter Contained in the Operation. Kind attribute must be set to "return". Type must point to Class which represents Message. More...
DesignLibrary Package metaboss.design library One per Enterprise. Located in the Package which represents Enterprise. More...
DataDictionary Package metaboss.data dictionary One per System and one in the DesignLibrary. Located in the Package which represents System or DesignLibrary. More...
Namespace Package none All Packages in the tree of Packages under the Package which represents DataDictionary. More...
DataType DataType none Located anywhere under the Package which represents DataDictionary (ie. directly under it or in any descendant Package which represents a Namespace). More...
Property DataValue metaboss.argument Referenced from within Binding, which in turn is contained in the DataType realised via TypeTemplate. More...
TypeTemplate Class metaboss.type template Located anywhere under the Package which represents DataDictionary (ie. directly under it or in any descendant Package which represents a Namespace). More...
Domain Package metaboss.domain Located in the Package which represents System. More...
Entity Class metaboss.entity Located in the Package which represents Domain. More...
Attribute Attribute metaboss.entity attribute Feature of the Class which represents Entity. Type must point to DataType. More...
Association Association none Located in the Package which represents Domain. More...
AssociationRole AssociationEnd metaboss.association role Exactly two AssociationEnds contained in the Association. Type must point to the Class which represents an Entity. More...
Selector Operation metaboss.entity selector Feature of the Class which represents Entity. More...
SelectorInputField Parameter metaboss.parameter Contained in the Operation which represents Selector. Kind attribute must be set to "in". Type must point to DataType. More...
StateMachine StateMachine none References the UML Class which represents the entity this state machine is for. More...

In more detail:

  • Enterprise Model
    Represented by the UML Model which is the top most element of every model. Must have stereotype 'metaboss.model'. No attributes or tags are used at the moment.

  • Enterprise
    Represented by the UML Package located anywhere in the model. Must have stereotype 'metaboss.enterprise'. No attributes or tags ,apart from the standard 'Name' and 'Description', are used at the moment.

  • System
    Represented by the UML Package located anywhere under the Package which represents Enterprise. Must have stereotype 'metaboss.system'. No attributes or tags ,apart from the standard 'Name' and 'Description', are used at the moment.

  • Servicemodule
    Represented by the UML Package located anywhere under the Package which represents System. Must have stereotype 'metaboss.servicemodule'. No attributes or tags ,apart from the standard 'Name' and 'Description', are used at the moment.

  • Structure
    Represented by the UML Class located anywhere under the Package which represents Servicemodule. Must have stereotype 'metaboss.structure'. No attributes or tags ,apart from the standard 'Name' and 'Description', are used at the moment.

  • StructureField
    Represented by the Attribute of the UML Class which represents the Structure. No stereotype required. The type of this Attribute must point to DataType or Class which represents Structure. No other attributes or tags ,apart from the standard 'Name' and 'Description', are used at the moment.

  • Message
    Represented by the UML Class located anywhere under the Package which represents Servicemodule. Must have stereotype 'metaboss.message'.

    Following special attributes and tag values are used:

    • metaboss.message.default text
      This single tag value contains the default message text which may include references to the message fields.

    • metaboss.message.type
      This single tag value contains either 'Information', 'Warning', 'Error' or 'Failure' string.

    No other attributes or tags ,apart from the standard 'Name' and 'Description', are used at the moment.

  • MessageField
    Represented by the Attribute of the UML Class which represents the Message. No stereotype required. The type of this Attribute must point to DataType. No other attributes or tags ,apart from the standard 'Name' and 'Description', are used at the moment.

  • Service
    Represented by the UML Class located anywhere under the Package which represents Servicemodule. Must have stereotype 'metaboss.service'. No attributes or tags ,apart from the standard 'Name' and 'Description', are used at the moment.

  • Operation
    Represented by the Operation of the UML Class which represents the Service. Must have stereotype 'metaboss.operation'.

    Following special attributes and tag values are used:

    • IsQuery
      This standard UML Operation attribute directly maps to the MetaBoss Operation attribute with the same name.

    • metaboss.operation.transaction policy
      This single tag value contains either 'Never', 'NotSupported', 'Supported', 'Required', 'RequiredNew' or 'Mandatory' string.

    No other attributes or tags ,apart from the standard 'Name' and 'Description', are used at the moment.

  • OperationInputField
    Represented by the UML Parameter contained in the corresponding UML Operation. Must have stereotype 'metaboss.parameter'. The type of this Parameter must point to DataType or Class which represents Structure.

    Following special attributes and tag values are used:

    • Kind
      This standard UML Operation attribute must be set to "in".

    • metaboss.parameter.is array
      This single tag value contains 'true' if the parameter is array or 'false' if it is not. Default value is 'false'.

    No other attributes or tags ,apart from the standard 'Name' and 'Description', are used at the moment.

  • OperationOutputField
    Represented by the UML Parameter contained in the corresponding UML Operation. Must have stereotype 'metaboss.parameter'. The type of this Parameter must point to DataType or Class which represents Structure.

    Following special attributes and tag values are used:

    • Kind
      This standard UML Operation attribute must be set to "return".

    • metaboss.parameter.is array
      This single tag value contains 'true' if the parameter is array or 'false' if it is not. Default value is 'false'.

    No other attributes or tags ,apart from the standard 'Name' and 'Description', are used at the moment.

  • OperationOutputMessage
    Represented by the UML Parameter contained in the corresponding UML Operation. Must have stereotype 'metaboss.parameter'. The type of this Parameter must point to Class which represents Message.

    Following special attributes and tag values are used:

    • Kind
      This standard UML Operation attribute must be set to "return".

    • metaboss.parameter.is array
      This single tag value contains 'true' if the parameter is array or 'false' if it is not. Default value is 'false'.

    No other attributes or tags ,apart from the standard 'Name' and 'Description', are used at the moment.

  • DesignLibrary
    Represented by the UML Package located anywhere under the Package which represents Enterprise. There should only be one DesignLibrary per Enterprise. Must have stereotype 'metaboss.design library'. No attributes or tags ,apart from the standard 'Name' and 'Description', are used at the moment.

  • DataDictionary
    Represented by the UML Package located anywhere under the Package which represents System or DesignLibrary. There should only be one DataDictionary per DesignLibrary or System. Must have stereotype 'metaboss.data dictionary'. No attributes or tags ,apart from the standard 'Name' and 'Description', are used at the moment.

  • Namespace
    Represented by the UML Package located anywhere under the Package which represents DataDictionary. Whole hierarchy of Packages under the DataDictionary is transdalated intothe hierarchy of Namespaces. No stereotype required. No attributes or tags ,apart from the standard 'Name' and 'Description', are used at the moment.

  • DataType
    Represented by the UML DataType located anywhere in the Package which represents DataDictionary or Namespace. No stereotype required. No attributes or tags ,apart from the standard 'Name' and 'Description', are used at the moment. If DataType is realised with use of the TypeTemplate then it has to be a part of UML Binding dependency with the UML Class which represents the TypeTemplate on the other side.

  • Property
    Represented by the composition of the UML TemplateArgument and the UML DataValue located inside DataType's template binding defintion. No stereotype required. No attributes or tags ,apart from the standard 'Name' and 'Description', are used at the moment. The Name of the UML DataValue is mapped to the Key of the TypeTemplateProperty (not a Name !). This means that the name is 'flattened'. For example, the UML DataValue Name 'Value[3].Name' refers to the Property 'Name', which is a child of the Property 'Value', which is a third elemnt in array of 'Value' properties defined for the DataType.

  • TypeTemplate
    Represented by the UML Class located anywhere in the Package which represents DataDictionary or Namespace. Must have stereotype 'metaboss.type template'. No attributes or tags ,apart from the standard 'Name' and 'Description', are used at the moment. The TypeTemplateParameter Descriptors are represented as the UML TemplateParameter definitions contained by the UML Class which represents Type Template.

  • Domain
    Represented by the UML Package located anywhere under the Package which represents System. Must have stereotype 'metaboss.domain'. No attributes or tags ,apart from the standard 'Name' and 'Description', are used at the moment.

  • Entity
    Represented by the UML Class located in the Package which represents Domain. Must have stereotype 'metaboss.entity'.

    Following special attributes and tag values are used:

    • Abstract
      This standard UML Class attribute directly maps to the MetaBoss Entity attribute with the same name. Default is 'false'.

    • Leaf
      This standard UML Class attribute directly maps to the MetaBoss Entity attribute with the name 'Final'. Default is 'false'.

    • metaboss.entity.plural name
      This single tag value contains string with the plural name of the entity. For example for the 'Policy' Entity the plural name would be 'Policies'.

    • metaboss.entity.type
      This single tag value contains either 'CardFile' or 'LogFile' string. Default is 'CardFile'.

    • metaboss.entity.primary key element
      This tag may appear zero or more times. Each instance of it contains the name of Attribute or Reference which is a part of the Primary Key for this entity.

    No other attributes or tags ,apart from the standard 'Name' and 'Description', are used at the moment.

  • Attribute
    Represented by the Attribute of the UML Class which represents the Entity. Must have stereotype 'metaboss.entity attribute'. The type of the Attribute must point to DataType.

    Following special attributes and tag values are used:

    • derived
      This standard UML tag value contains 'true' if the definition of this attribute is derived from some other elements of the model. MetaBoss does not process attributes where this tag is set to 'true'. Default is 'false'. This tag may, for example, be used to show automatically generated attributes like InstanceId or VersionId in order to improve clarity of the model.

    • metaboss.entity attribute.type
      This single tag value contains either 'Mandatory', 'Optional', 'CreateStamp' or 'UpdateStamp' string. Default is 'Optional'.

    • metaboss.entity attribute.is used for ordering
      This single tag value contains 'true' if the attribute can be used to order the entity and 'false' if it is not. Default value is 'false'.

    No other attributes or tags ,apart from the standard 'Name' and 'Description', are used at the moment.

  • Association
    Represented by the UML Association located in the Package which represents Domain. No stereotype is required. No attributes or tags ,apart from the standard 'Name' and 'Description', are used at the moment.

  • AssociationRole
    Represented by the UML AssociationEnd contained inside UML Association. Must have stereotype 'metaboss.association role'. The AssociationEnd must point to the UML Class representing the Entity in Role. The UML Multiplicity element contained inside UML Association End is mapped directly to the MetaBoss Association Role Cardinality type.

    Following special attributes and tag values are used:

    • aggregation
      This standard attribute can have values 'none', 'aggregation' or 'composition' which are mapped directly to the MetaBoss Aggregation types.

    • metaboss.association role.plural name
      This single tag value contains string with the plural name of the role. For example for the 'Client' Role the plural name would be 'Clients'.

    No other attributes or tags ,apart from the standard 'Name' and 'Description', are used at the moment.

  • Selector
    Represented by the Operation of the UML Class which represents the Entity. Must have stereotype 'metaboss.entity selector'.

    Following special attributes and tag values are used:

    • derived
      This standard UML tag value contains 'true' if the definition of this selector is derived from some other elements of the model. MetaBoss does not process selectors where this tag is set to 'true'. Default is 'false'. This tag may, for example, be used to show automatically generated selectors (such as 'selectEntitiesInState' etc...) in order to improve clarity of the model.

    • metaboss.entity selector.cardinality
      This single tag value contains either 'ZeroOrOne' or 'ZeroToMany' string and is mapped directly to the MetaBoss Selector cardinality attribute. Default is 'ZeroToMany'.

    • metaboss.entity selector.default sql query
      This single tag value contains the selection expression in the default SQL format and is mapped directly to the MetaBoss TextOfSqlSelect Selector attribute.

    No other attributes or tags ,apart from the standard 'Name' and 'Description', are used at the moment.

  • SelectorInputField
    Represented by the UML Parameter contained in the corresponding UML Operation which represent the Selector. No stereotype is required. The type of this Parameter must point to DataType.

    Following special attributes and tag values are used:

    • Kind
      This standard UML Operation attribute must be set to "in".

    • metaboss.parameter.is array
      This single tag value contains 'true' if the parameter is array or 'false' if it is not. Default value is 'false'.

    No other attributes or tags ,apart from the standard 'Name' and 'Description', are used at the moment.

  • StateMachine
    Represented by the UML StateMachine associated with the UML Class which represents the Entity. No stereotype is required. The UML State Machine model is mapped to the MetaBoss Entity State Machine model. No attributes or tags ,apart from the standard 'Name' and 'Description', are used at the moment.

UML Profile in XMI

Current and previous versions of the UML Profile For MetaBoss Design Model are provided below.

Current version (1.0)