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

MetaBoss Beginner's Guide

Using Poseidon for UML to model the system

Before we begin

Poseidon for UML is one of many UML modelling tools available today. We have chosen it for our example mainly because its Community Edition is free and because it supports XMI interchange (Please note that we have used Poseidon for UML Community Edition Version 2.2.1). Our use of Poseidon in this example should not be taken as our endorsement of this tool. In addition please note that we do not intend for this chapter to be Poseidon User Guide, so we will keep it short and expect that you already know UML modelling and / or Poseidon.

MetaBoss models can be expressed in UML with use of UML Profile. UML Profile is a specification describing set of allowed Stereotypes and Tagged Values. Stereotypes and Tagged Values are attached to generic UML model elements such as packages and classes in order to precisely describe their meaning.

One notable difference between modelling with MetaBoss Design Studio or with Poseidon is the level of detail designer has to key into the tool. Generic UML tool does not have specific productivity enchancing features such as automatic model validation and model autocompletion. This means that every detail of the design has to be manually entered. It also means that the earliest time when model constraint errors will be discovered is during the code generation and that means that the designer may have to go back to model and fix errors.

Step by step guide

  1. Create the directory where all our work will be located. We use ${metaboss_home}/examples/AlmaMater, where the expression '${metaboss_home}' is a placeholder for the path to the MetaBoss installation directory (eg. c:/MetaBoss_1.0)

  2. Download the latest UML Profile for MetaBoss in XMI from Design Model UML Profile reference page (the download link is at the bottom of the page) and save it somewhere in temporary directory. Note that the profile is just an XMI file. The page you have downloaded the profile from also contains the reference documentation of the MetaBoss UML Profile. You should familiarise yourself with this reference before continuing.

  3. Start Poseidon for UML and open the UML Profile file you have downloaded in the previous step. To do that use 'File->Open Project' menu command, select file type 'XML Metadata Interchange (*.xmi)', navigate to the directory where downloaded profile is and open it.

  4. Use 'File->Save Project As' command from the Poseidon main menu and save project in the ${metaboss_home}/examples/AlmaMater/Model/Poseidon directory. The project file name is 'AlmaMater' and the file type is 'Poseidon 2.x (*.zuml)'. We have now created an empty Poseidon project with MetaBoss UML Profile in it. After this is done, your screen should look something like this:

    Poseidon image after project is created.

    Let's have a look at what is in this empty project. There is one package called 'MetaBoss UML Profile' and it has Stereotype 'profile'. This is the standard UML way to introduce custom profiles into the model. If you look at the contents of this package you will discover that it contains definitions for all MetaBoss Stereotypes and each Stereotype definition in turn contains associated Tag definitions.

  5. Create topmost package (ie. under the 'MetaBoss Enterprise Model'). This package represents the enterprise. The package name is 'AlmaMater' and the package stereotype is 'MetaBoss UML Profile.metaboss.enterprise'.

  6. Create package which represents the CRS system inside the AlmaMater package. The package name is 'CRS' and the package stereotype is 'MetaBoss UML Profile.metaboss.system'.

  7. Create package which represents the Design Library inside the AlmaMater package. The package name is 'DesignLibrary' and the package stereotype is 'MetaBoss UML Profile.metaboss.design library'.

  8. Create package which represents the Data Dictionary inside the Design Library package. The package name is 'Design Library' and the package stereotype is 'MetaBoss UML Profile.metaboss.data dictionary'.

  9. After this is done, your screen should look something like this:

    Poseidon image after a enterprise packages are created.

    Notice how package stereotype is displayed in the dedicated widow at the bottom.

  10. In theory, you will now have to keep going and to model all data types, type templates, entities, structures, messages and services used in the CRS system of the AlmaMater enterprise. Data Types are represented using dedicated UML construct 'DataType'. Most of other model elements are represented using generic UML contructs, such as 'Class' or 'Package' marked with the dedicated stereotype (eg. 'MetaBoss UML Profile.metaboss.entity' for the domain entity). However, we have hit a few roadblocks along the way and do not think that you will be able to succeed with the version of Poseidon we were using (Ver 2.2.1CE). The showstopper problems we have discovered are:

    • Inability to create and maintain UML DataTypes
    • Inability to create and maintain UML Binding relationship, which is required for modelling the relationship between the Data Type and Type Template

    We will complete this chapter when we will find a suitable UML tool to use in this example. For now, you may be luckier with latter version of Poseidon or if you are using some other UML tool.

This area is under construction