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