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