How to model the Core Model of STEPLIB¶
Overview¶
This page uses a simple example to describe how to model the the Domain Model using SysML in MagicDraw 18.4.
Todo
text for this section
Step by Step guide¶
Todo
the step-by-step for this section
The modelling steps are:
Preparation¶
Important
Prerequists
This assumes that the environment is already set up. See Getting Started - MagicDraw for more details
Step 1 (to do)¶
Video¶
Todo
the step-by-step for this section
Add Validation Constraints¶
The video shows creating a validation constraint on a template. The example is using the Domain Model but it is equally applicable to the other layers.
Todo
text of this section
Add descrition - it is suggested that this is the same as the “Validation Rule - Error Message”. If more description is needed see How to format descriptions for details
Tip
Add the constraint from the specification window (rather than from the containment tree) as this will automatically set the “Constrained Element” property
Tip
Some Examples
Check that one property value does not equal another property value (Parent[1] Child[1]):
self.Parent <> self.Child
Check for simple circularities in single elements (InheritsFrom[0..1]):
self.InheritsFrom <> self
Check for simple circularities in a collection (InOrganization[0..*]):
self.InOrganization->excludes(self)
Check that a property value is not also in a property collection (Element[0..*] BreakdownOf[1]):
self.Element->forAll(e | self.BreakdownOf <> e) [Note: syntax error if try to use self.Element->excludes(self.BreakdownOf)]
Check that two collections of property values are mutually exclusive (Manages[0..*] Inputs[0..*]):
self.Manages->forAll(m | self.Inputs->forAll(i | i <> m))
Tip
If the constraint is an “un-computable constraints that cannot, or cannot reasonably, be written in OCL” then the Specification Language should be set to “English”. The constaint is then known as an “Informal Proposition” and will appear as such in the documentation.
For details on validating against the constraints see How to model constraints for use in validation
Adding Query-like services¶
Todo
text of this section
Current thinking (To Be Agreed) is that the “query-like” services are modelled as operations on the template.
These should then have constraints defined using OCL
C-R-U-D-like services are covered in Core Model Services.
Section author: Judith Crockford (AP243)