Validation Rules
A list of currently implemented validation rules in Syside.
Legend
- The rule has associated configuration options
- The rule applies to KerML
- The rule applies to SysML
Standard
Rules defined in either KerML or SysML specifications.
Name |
Summary |
||
|---|---|---|---|
|
This checks that accept action usages have at least two input parameters, |
|
|
|
This checks that actors are owned by requirements or cases. |
|
|
|
This checks that an |
|
|
|
This checks that assert constraints reference other constraints only. |
|
|
|
This checks that assignment action has a |
|
|
|
This checks that nary associations do not specialize |
|
|
|
This checks that owned ends of associations have exactly one type. |
|
|
|
This checks that concrete associations have at least two related types, i.e. |
|
|
|
This checks that all attribute definition features are referential (non-composite). |
|
|
|
This checks that all attribute usage features are referential (non-composite). |
|
|
|
This checks that |
|
|
|
This checks that binding connectors have exactly two ends. |
|
|
|
This checks that case definitions have at most one owned or inherited objective. |
|
|
|
This checks that case definitions have at most one owned or inherited subject. |
|
|
|
This checks that case definition subjects are the first parameter. |
|
|
|
This checks that case usages have at most one owned or inherited objective. |
|
|
|
This checks that case usages have at most one owned or inherited subject. |
|
|
|
This checks that case usage subjects are the first parameter. |
|
|
|
This checks that classes do not specialize data types, and non-association classes additionally do not specialize associations. |
|
|
|
This checks that multiplicities owned by |
|
|
|
conjugated-port-definition-conjugated-port-definition-is-empty |
This checks that conjugated port definitions themselves have no conjugated port definitions. |
|
|
This checks that conjugated port definitions are owned their original port definitions, and they are conjugated. |
|
|
|
This checks that nary connectors do not specialize |
|
|
|
This checks that concrete connectors have at least two related features, i.e. |
|
|
|
This checks that constructor arguments are bound only once. |
|
|
|
This checks that constructors expressions have no other features other than its |
|
|
|
This checks that constructors arguments are bound to the instantiated type features only, and only once. |
|
|
|
This checks that control nodes are owned by actions. |
|
|
|
This checks that |
|
|
|
This checks that |
|
|
|
This checks that data types do not specialize classes or associations. |
|
|
|
This checks that |
|
|
|
This checks that |
|
|
|
This checks that element filter conditions are predicates, i.e. their expressions return boolean. |
|
|
|
element-filter-membership-condition-is-model-level-evaluable |
This checks that element filter condition expressions are model-level evaluable. |
|
|
This checks that an incomplete element has no implied relationships. |
|
|
|
This checks that event occurrences reference only other occurrences. |
|
|
|
This checks that exhibit state reference other states only. |
|
|
|
This checks that expose are owned by view usages. |
|
|
|
This checks that expressions have at most one owned or inherited result expression membership. |
|
|
|
This checks that expressions have at most one |
|
|
|
This checks that feature chain expressions segments are accessible from the previous segment. |
|
|
|
This checks that all feature chain segments are accessible from the previous segment. |
|
|
|
This checks that features have either no, or two or more owned feature |
|
|
|
This checks that features do not |
|
|
|
This checks that |
|
|
|
This checks that cross features specialize cross features of the redefined features of the crossing features. |
|
|
|
This checks that cross features have the same types as the crossing features. |
|
|
|
This checks that |
|
|
|
This checks that |
|
|
|
This checks that |
|
|
|
This checks that |
|
|
|
This checks that |
|
|
|
This checks that the feature multiplicity has the same featuring types as the owning feature. |
|
|
|
This checks that features have at most one cross subsetting. |
|
|
|
This checks that features have at most one owned reference subsetting. |
|
|
|
This checks that |
|
|
|
This checks that the referent of feature reference expression is a feature. |
|
|
|
This checks that feature directly or indirectly specialize |
|
|
|
This checks that initial feature values are only owned by |
|
|
|
This checks that redefined features have either no feature values, or |
|
|
|
This checks that flow definitions have at most two flow ends. |
|
|
|
This checks that for loops have loop variables. |
|
|
|
This checks that for loops have sequence and body action parameters. |
|
|
|
This checks that functions have at most one owned or inherited result expression membership. |
|
|
|
This checks that functions have at most one |
|
|
|
This checks that for if actions have an argument and then action. |
|
|
|
This checks that top-level imports have |
|
|
|
This checks that include use cases reference other use cases only. |
|
|
|
This checks that instantiation expressions have an instantiated type. |
|
|
|
This checks that invocation expression invoke other |
|
|
|
This checks that invocation arguments are bound only once. |
|
|
|
This checks that owned invocation features are all input features, or a single |
|
|
|
This checks that invocation arguments are bound to the instantiated type input features only, and only once. |
|
|
|
This checks that flow ends have exactly one owned feature. |
|
|
|
This checks that flow ends are owned by flows only. |
|
|
|
This checks that flows owns at most one payload feature. |
|
|
|
This checks that metadata is applied only to elements matching its |
|
|
|
This checks that feature directly or indirectly owned by metadata have no declared names, redefine a single inherited feature, and have no values or model-level evaluable values. |
|
|
|
This checks that metadata features are typed by exactly one metaclass. |
|
|
|
This checks that metadata is typed by a concrete metaclass. |
|
|
|
This checks that multiplicity range bounds expression is an integer. |
|
|
|
This checks that model-level evaluable multiplicity range bounds are non-negative. |
|
|
|
This checks that namespace member names are unambiguous. |
|
|
|
This checks that objectives are always composite. |
|
|
|
This checks that stakeholders are owned by cases. |
|
|
|
This checks that occurrence usages are typed by at most one |
|
|
|
This checks that |
|
|
|
This checks that |
|
|
|
This checks that parameter memberships are owned by |
|
|
|
This checks that part usages are typed by at least one part definition. |
|
|
|
This checks that perform actions reference other actions only. |
|
|
|
This checks that port definitions only own referential (non-composite) usages or other ports. |
|
|
|
This checks that port usages only own referential (non-composite) usages or other ports. |
|
|
|
This checks that directed features are only redefined by features with compatible directions. |
|
|
|
This checks that |
|
|
|
This checks that redefining feature featuring types different to the featuring types of the redefined feature. |
|
|
|
This checks that requirement constraints are always composite. |
|
|
|
This checks that requirement constraints are owned by requirements. |
|
|
|
This checks that requirement definitions have at most one owned or inherited subject. |
|
|
|
This checks that requirement definition subjects are the first parameter. |
|
|
|
This checks that requirement usages have at most one owned or inherited subject. |
|
|
|
This checks that requirement usage subjects are the first parameter. |
|
|
|
This checks that requirement verifications are owned by objectives. |
|
|
|
This checks that result expression memberships are owned by functions or expressions. |
|
|
|
This checks that return parameter memberships are owned by functions or expressions. |
|
|
|
This checks that satisfy requirements reference other requirements only. |
|
|
|
This checks that send actions have a payload and sender. |
|
|
|
This checks that a specialized type is not conjugated. |
|
|
|
This checks that stakeholders are owned by requirements. |
|
|
|
This checks that parallel state definitions have no owned transitions or successions. |
|
|
|
This checks that state definitions own at most one of each |
|
|
|
This checks that state subactions are owned only by states. |
|
|
|
This checks that parallel state usages have no owned transitions or successions. |
|
|
|
This checks that state usages own at most one of each |
|
|
|
This checks that structures do not specialize behaviours. |
|
|
|
This checks that subjects are owned by requirements or cases. |
|
|
|
This checks that |
|
|
|
This checks that subsetted features are accessible from the subsetting features, e.g. through inheritance. |
|
|
|
This checks that unique features are only subsetted by other unique features. |
|
|
|
This checks that |
|
|
|
This checks that |
|
|
|
This checks that transition feature memberships are owned by transitions. |
|
|
|
This checks that |
|
|
|
This checks that transitions have an implicit transition link source, and if they have |
|
|
|
This checks that transitions transition to an action usage. |
|
|
|
This checks that transitions that start not from states have no trigger actions ( |
|
|
|
This checks that |
|
|
|
This checks that |
|
|
|
This checks that |
|
|
|
This checks that types have at most one conjugation relationship. |
|
|
|
This checks that types do not |
|
|
|
This checks that types do not |
|
|
|
This checks that types have either no, or two or more owned |
|
|
|
This checks that types have either no, or two or more owned |
|
|
|
This checks that types have at most one owned |
|
|
|
This checks that types have either no, or two or more owned |
|
|
|
This checks that types directly or indirectly specialize |
|
|
|
This checks that types do not |
|
|
|
This checks that |
|
|
|
This checks that |
|
|
|
This checks that |
|
|
|
This checks that view definitions have at most one owned or inherited view rendering. |
|
|
|
This checks that view renderings are owned by views. |
|
|
|
This checks that view usages have at most one owned or inherited view rendering. |
|
|
|
This checks that while loops have at least an argument and a body action parameters. |
|
Syside
Additional rules implemented in Syside.
Name |
Summary |
||
|---|---|---|---|
|
This checks that all top-level member names are globally unique. |
|
|
|
This checks that imports have an explicit visibility. |
|
|
|
This checks that the second argument to quantity expressions is a measurement unit. |
|
|
|
This checks that user library packages are not marked |
|
|
|
This checks that assigned values conform to the types of the element they are being assigned to. |
|
|
|
This checks that usages are typed by classifiers instead of other features. |
|