SatisfyRequirementUsage

SatisfyRequirementUsage is defined in SysML specification on page 397. Excerpt from the machine readable specification:

A SatisfyRequirementUsage is an AssertConstraintUsage that asserts, by default, that a satisfied RequirementUsage is true for a specific satisfyingFeature, or, if isNegated = true, that the RequirementUsage is false. The satisfied RequirementUsage is related to the SatisfyRequirementUsage by a ReferenceSubsetting Relationship.

The following diagram shows the inheritance hierarchy of SatisfyRequirementUsage according to the specification:

// Class: SatisfyRequirementUsage
 digraph {
     SatisfyRequirementUsage [label="SatisfyRequirementUsage (SysML)" shape=plaintext]
     RequirementUsage -> SatisfyRequirementUsage
     AssertConstraintUsage -> SatisfyRequirementUsage
     RequirementUsage [label="RequirementUsage (SysML)" shape=plaintext]
     ConstraintUsage -> RequirementUsage
     AssertConstraintUsage [label="AssertConstraintUsage (SysML)" shape=plaintext]
     ConstraintUsage -> AssertConstraintUsage
     Invariant -> AssertConstraintUsage
     ConstraintUsage [label="ConstraintUsage (SysML)" shape=plaintext]
     OccurrenceUsage -> ConstraintUsage
     BooleanExpression -> ConstraintUsage
     Invariant [label="Invariant (KerML)" shape=plaintext]
     BooleanExpression -> Invariant
     OccurrenceUsage [label="OccurrenceUsage (SysML)" shape=plaintext]
     Usage -> OccurrenceUsage
     BooleanExpression [label="BooleanExpression (KerML)" shape=plaintext]
     Expression -> BooleanExpression
     Usage [label="Usage (SysML)" shape=plaintext]
     Feature -> Usage
     Expression [label="Expression (KerML)" shape=plaintext]
     Step -> Expression
     Feature [label="Feature (KerML)" shape=plaintext]
     Type -> Feature
     Step [label="Step (KerML)" shape=plaintext]
     Feature -> Step
     Type [label="Type (KerML)" shape=plaintext]
     Namespace -> Type
     Namespace [label="Namespace (KerML)" shape=plaintext]
     Element -> Namespace
     Element [label="Element (KerML)" shape=plaintext]
 }

The following table shows all attributes defined for SatisfyRequirementUsage according to the specification together with the documentation from the machine readable specification. Note that in SysIDE API, we use snake case for attribute names instead of Pascal case used in the specification.

Attribute

Documentation from machine readable specification

Attributes defined in SatisfyRequirementUsage:

satisfied_requirement

The RequirementUsage that is satisfied by the satisfyingSubject of this SatisfyRequirementUsage. It is the assertedConstraint of the SatisfyRequirementUsage considered as an AssertConstraintUsage, which must be a RequirementUsage.

satisfying_feature

The Feature that represents the actual subject that is asserted to satisfy the satisfiedRequirement. The satisfyingFeature is bound to the subjectParameter of the SatisfyRequirementUsage.

Attributes defined in RequirementUsage:

actor_parameters

The parameters of this RequirementUsage that represent actors involved in the requirement.

assumed_constraints

The owned ConstraintUsages that represent assumptions of this RequirementUsage, derived as the ownedConstraints of the RequirementConstraintMemberships of the RequirementUsage with kind = assumption.

framed_concerns

The ConcernUsages framed by this RequirementUsage, which are the ownedConcerns of all FramedConcernMemberships of the RequirementUsage.

req_id

An optional modeler-specified identifier for this RequirementUsage (used, e.g., to link it to an original requirement text in some source document), which is the declaredShortName for the RequirementUsage.

required_constraints

The owned ConstraintUsages that represent requirements of this RequirementUsage, which are the ownedConstraints of the RequirementConstraintMemberships of the RequirementUsage with kind = requirement.

requirement_definition

The RequirementDefinition that is the single definition of this RequirementUsage.

stakeholder_parameters

The parameters of this RequirementUsage that represent stakeholders for the requirement.

subject_parameter

The parameter of this RequirementUsage that represents its subject.

texts

An optional textual statement of the requirement represented by this RequirementUsage, derived from the bodies of the documentation of the RequirementUsage.

Attributes defined in AssertConstraintUsage:

asserted_constraint

The ConstraintUsage to be performed by the AssertConstraintUsage. It is the referenceFeature of the ownedReferenceSubsetting for the AssertConstraintUsage, if there is one, and, otherwise, the AssertConstraintUsage itself.

Attributes defined in ConstraintUsage:

constraint_definition

The (single) Predicate that is the type of this ConstraintUsage. Nominally, this will be a ConstraintDefinition, but other kinds of Predicates are also allowed, to permit use of Predicates from the Kernel Model Libraries.

Attributes defined in Invariant:

is_negated

Whether this Invariant is asserted to be false rather than true.

Attributes defined in OccurrenceUsage:

individual_definition

The at most one occurrenceDefinition that has isIndividual = true.

is_individual

Whether this OccurrenceUsage represents the usage of the specific individual (or portion of it) represented by its individualDefinition.

occurrence_definitions

The Classes that are the types of this OccurrenceUsage. Nominally, these are OccurrenceDefinitions, but other kinds of kernel Classes are also allowed, to permit use of Classes from the Kernel Model Libraries.

portion_kind

The kind of (temporal) portion of the life of the occurrenceDefinition represented by this OccurrenceUsage, if it is so restricted.

Attributes defined in BooleanExpression:

predicate

The Predicate that types the Expression.

The Predicate that types this BooleanExpression.

Attributes defined in Usage:

definitions

The Classifiers that are the types of this Usage. Nominally, these are Definitions, but other kinds of Kernel Classifiers are also allowed, to permit use of Classifiers from the Kernel Model Libraries.

directed_usages

The usages of this Usage that are directedFeatures.

is_reference

Whether this Usage is a referential Usage, that is, it has isComposite = false.

is_variation

Whether this Usage is for a variation point or not. If true, then all the memberships of the Usage must be VariantMemberships.

nested_actions

The ActionUsages that are nestedUsages of this Usage.

nested_allocations

The AllocationUsages that are nestedUsages of this Usage.

nested_analysis_cases

The AnalysisCaseUsages that are nestedUsages of this Usage.

nested_attributes

The code>AttributeUsages that are nestedUsages of this Usage.

nested_calculations

The CalculationUsage that are nestedUsages of this Usage.

nested_cases

The CaseUsages that are nestedUsages of this Usage.

nested_concerns

The ConcernUsages that are nestedUsages of this Usage.

nested_connections

The ConnectorAsUsages that are nestedUsages of this Usage. Note that this list includes BindingConnectorAsUsages, SuccessionAsUsages, and FlowConnectionUsages because these are ConnectorAsUsages even though they are not ConnectionUsages.

nested_constraints

The ConstraintUsages that are nestedUsages of this Usage.

nested_enumerations

The code>EnumerationUsages that are nestedUsages of this Usage.

nested_flows

The code>FlowConnectionUsages that are nestedUsages of this Usage.

nested_interfaces

The InterfaceUsages that are nestedUsages of this Usage.

nested_items

The ItemUsages that are nestedUsages of this Usage.

nested_metadata

The MetadataUsages that are nestedUsages of this of this Usage.

nested_occurrences

The OccurrenceUsages that are nestedUsages of this Usage.

nested_parts

The PartUsages that are nestedUsages of this Usage.

nested_ports

The PortUsages that are nestedUsages of this Usage.

nested_references

The ReferenceUsages that are nestedUsages of this Usage.

nested_renderings

The RenderingUsages that are nestedUsages of this Usage.

nested_requirements

The RequirementUsages that are nestedUsages of this Usage.

nested_states

The StateUsages that are nestedUsages of this Usage.

nested_transitions

The TransitionUsages that are nestedUsages of this Usage.

nested_usages

The Usages that are ownedFeatures of this Usage.

nested_use_cases

The UseCaseUsages that are nestedUsages of this Usage.

nested_verification_cases

The VerificationCaseUsages that are nestedUsages of this Usage.

nested_views

The ViewUsages that are nestedUsages of this Usage.

nested_viewpoints

The ViewpointUsages that are nestedUsages of this Usage.

owning_definition

The Definition that owns this Usage (if any).

owning_usage

The Usage in which this Usage is nested (if any).

usages

The Usages that are features of this Usage (not necessarily owned).

variants

The Usages which represent the variants of this Usage as a variation point Usage, if isVariation = true. If isVariation = false, then there must be no variants.

variant_memberships

The ownedMemberships of this Usage that are VariantMemberships. If isVariation = true, then this must be all memberships of the Usage. If isVariation = false, then variantMembershipmust be empty.

Attributes defined in Expression:

function

The Function that types this Expression.

This is the Function that types the Expression.

is_model_level_evaluable

Whether this Expression meets the constraints necessary to be evaluated at model level, that is, using metadata within the model.

result

An output parameter of the Expression whose value is the result of the Expression. The result of an Expression is either inherited from its function or it is related to the Expression via a ReturnParameterMembership, in which case it redefines the result parameter of its function.

Attributes defined in Feature:

cross_feature

The second chainingFeature of the crossedFeature of the ownedCrossSubsetting of this Feature, if it has one. Semantically, the values of the crossFeature of an end Feature must include all values of the end Feature obtained when navigating from values of the other end Features of the same owningType.

direction

Indicates how values of this Feature are determined or used (as specified for the FeatureDirectionKind).

end_owning_type

The Type that is related to this Feature by an EndFeatureMembership in which the Feature is an ownedMemberFeature.

feature_target

The last of the chainingFeatures of this Feature, if it has any. Otherwise, this Feature itself.

featuring_types

Types that feature this Feature, such that any instance in the domain of the Feature must be classified by all of these Types, including at least all the featuringTypes of its typeFeaturings. If the Feature is chained, then the featuringTypes of the first Feature in the chain are also featuringTypes of the chained Feature.

is_composite

Whether the Feature is a composite feature of its featuringType. If so, the values of the Feature cannot exist after its featuring instance no longer does.

is_derived

Whether the values of this Feature can always be computed from the values of other Features.

is_end

Whether or not this Feature is an end Feature. An end Feature always has multiplicity 1, mapping each of its domain instances to a single co-domain instance. However, it may have a crossFeature, in which case values of the crossFeature must be the same as those found by navigation across instances of the owningType from values of other end Features to values of this Feature. If the owningType has n end Features, then the multiplicity, ordering, and uniqueness declared for the crossFeature of any one of these end Features constrains the cardinality, ordering, and uniqueness of the collection of values of that Feature reached by navigation when the values of the other n-1 end Features are held fixed.

is_nonunique

is_ordered

Whether an order exists for the values of this Feature or not.

is_portion

Whether the values of this Feature are contained in the space and time of instances of the domain of the Feature and represent the same thing as those instances.

is_read_only

Whether the values of this Feature can change over the lifetime of an instance of the domain.

is_unique

Whether or not values for this Feature must have no duplicates or not.

owned_cross_subsetting

The one ownedSubsetting of this Feature, if any, that is a CrossSubsetting}, for which the Feature is the crossingFeature.

owned_feature_chainings

The ownedRelationships of this Feature that are FeatureChainings, for which the Feature will be the featureChained.

owned_feature_invertings

The ownedRelationships of this Feature that are FeatureInvertings and for which the Feature is the featureInverted.

owned_redefinitions

The ownedSubsettings of this Feature that are Redefinitions, for which the Feature is the redefiningFeature.

owned_reference_subsetting

The one ownedSubsetting of this Feature, if any, that is a ReferenceSubsetting, for which the Feature is the referencingFeature.

owned_subsettings

The ownedSpecializations of this Feature that are Subsettings, for which the Feature is the subsettingFeature.

owned_type_featurings

The ownedRelationships of this Feature that are TypeFeaturings and for which the Feature is the featureOfType.

owned_typings

The ownedSpecializations of this Feature that are FeatureTypings, for which the Feature is the typedFeature.

owning_feature_membership

The FeatureMembership that owns this Feature as an ownedMemberFeature, determining its owningType.

owning_type

The Type that is the owningType of the owningFeatureMembership of this Feature.

types

Types that restrict the values of this Feature, such that the values must be instances of all the types. The types of a Feature are derived from its typings and the types of its subsettings. If the Feature is chained, then the types of the last Feature in the chain are also types of the chained Feature.

Attributes defined in Step:

behaviors

The Behaviors that type this Step.

parameters

The parameters of this Step, which are defined as its directedFeatures, whose values are passed into and/or out of a performance of the Step.

Attributes defined in Type:

differencing_types

The interpretations of a Type with differencingTypes are asserted to be those of the first of those Types, but not including those of the remaining Types. For example, a Classifier might be the difference of a Classifier for people and another for people of a particular nationality, leaving people who are not of that nationality. Similarly, a feature of people might be the difference between a feature for their children and a Classifier for people of a particular sex, identifying their children not of that sex (because the interpretations of the children Feature that identify those of that sex are also interpretations of the Classifier for that sex).

directed_features

The features of this Type that have a non-null direction.

end_features

All features of this Type with isEnd = true.

features

The ownedMemberFeatures of the featureMemberships of this Type.

feature_memberships

The FeatureMemberships for features of this Type, which include all ownedFeatureMemberships and those inheritedMemberships that are FeatureMemberships (but does not include any importedMemberships).

inherited_features

All the memberFeatures of the inheritedMemberships of this Type that are FeatureMemberships.

inherited_memberships

All Memberships inherited by this Type via Specialization or Conjugation. These are included in the derived union for the memberships of the Type.

inputs

All features related to this Type by FeatureMemberships that have direction in or inout.

intersecting_types

The interpretations of a Type with intersectingTypes are asserted to be those in common among the intersectingTypes, which are the Types derived from the intersectingType of the ownedIntersectings of this Type. For example, a Classifier might be an intersection of Classifiers for people of a particular sex and of a particular nationality. Similarly, a feature for people’s children of a particular sex might be the intersection of a Feature for their children and a Classifier for people of that sex (because the interpretations of the children Feature that identify those of that sex are also interpretations of the Classifier for that sex).

is_abstract

Indicates whether instances of this Type must also be instances of at least one of its specialized Types.

is_conjugated

Indicates whether this Type has an ownedConjugator.

is_sufficient

Whether all things that meet the classification conditions of this Type must be classified by the Type.

(A Type gives conditions that must be met by whatever it classifies, but when isSufficient is false, things may meet those conditions but still not be classified by the Type. For example, a Type Car that is not sufficient could require everything it classifies to have four wheels, but not all four wheeled things would classify as cars. However, if the Type Car were sufficient, it would classify all four-wheeled things.)

multiplicity

An ownedMember of this Type that is a Multiplicity, which constraints the cardinality of the Type. If there is no such ownedMember, then the cardinality of this Type is constrained by all the Multiplicity constraints applicable to any direct supertypes.

outputs

All features related to this Type by FeatureMemberships that have direction out or inout.

owned_conjugator

A Conjugation owned by this Type for which the Type is the originalType.

owned_differencings

The ownedRelationships of this Type that are Differencings, having this Type as their typeDifferenced.

owned_disjoinings

The ownedRelationships of this Type that are Disjoinings, for which the Type is the typeDisjoined Type.

owned_end_features

All endFeatures of this Type that are ownedFeatures.

owned_features

The ownedMemberFeatures of the ownedFeatureMemberships of this Type.

owned_feature_memberships

The ownedMemberships of this Type that are FeatureMemberships, for which the Type is the owningType. Each such FeatureMembership identifies an ownedFeature of the Type.

owned_intersectings

The ownedRelationships of this Type that are Intersectings, have the Type as their typeIntersected.

owned_specializations

The ownedRelationships of this Type that are Specializations, for which the Type is the specific Type.

owned_unionings

The ownedRelationships of this Type that are Unionings, having the Type as their typeUnioned.

unioning_types

The interpretations of a Type with unioningTypes are asserted to be the same as those of all the unioningTypes together, which are the Types derived from the unioningType of the ownedUnionings of this Type. For example, a Classifier for people might be the union of Classifiers for all the sexes. Similarly, a feature for people’s children might be the union of features dividing them in the same ways as people in general.

Attributes defined in Namespace:

members

The set of all member Elements of this Namespace, which are the memberElements of all memberships of the Namespace.

memberships

All Memberships in this Namespace, including (at least) the union of ownedMemberships and importedMemberships.

owned_imports

The ownedRelationships of this Namespace that are Imports, for which the Namespace is the importOwningNamespace.

owned_members

The owned members of this Namespace, which are the ownedMemberElements of the ownedMemberships of the Namespace.

owned_memberships

The ownedRelationships of this Namespace that are Memberships, for which the Namespace is the membershipOwningNamespace.

Attributes defined in Element:

declared_name

The declared name of this Element.

declared_short_name

An optional alternative name for the Element that is intended to be shorter or in some way more succinct than its primary name. It may act as a modeler-specified identifier for the Element, though it is then the responsibility of the modeler to maintain the uniqueness of this identifier within a model or relative to some other context.

documentation

The Documentation owned by this Element.

element_id

The globally unique identifier for this Element. This is intended to be set by tooling, and it must not change during the lifetime of the Element.

is_implied_included

Whether all necessary implied Relationships have been included in the ownedRelationships of this Element. This property may be true, even if there are not actually any ownedRelationships with isImplied = true, meaning that no such Relationships are actually implied for this Element. However, if it is false, then ownedRelationships may not contain any implied Relationships. That is, either all required implied Relationships must be included, or none of them.

is_library_element

Whether this Element is contained in the ownership tree of a library model.

name

The name to be used for this Element during name resolution within its owningNamespace. This is derived using the effectiveName() operation. By default, it is the same as the declaredName, but this is overridden for certain kinds of Elements to compute a name even when the declaredName is null.

owned_annotations

The ownedRelationships of this Element that are Annotations, for which this Element is the annotatedElement.

owned_elements

The Elements owned by this Element, derived as the ownedRelatedElements of the ownedRelationships of this Element.

owned_relationships

The Relationships for which this Element is the owningRelatedElement.

owner

The owner of this Element, derived as the owningRelatedElement of the owningRelationship of this Element, if any.

owning_membership

The owningRelationship of this Element, if that Relationship is a Membership.

owning_namespace

The Namespace that owns this Element, which is the membershipOwningNamespace of the owningMembership of this Element, if any.

owning_relationship

The Relationship for which this Element is an ownedRelatedElement, if any.

qualified_name

The full ownership-qualified name of this Element, represented in a form that is valid according to the KerML textual concrete syntax for qualified names (including use of unrestricted name notation and escaped characters, as necessary). The qualifiedName is null if this Element has no owningNamespace or if there is not a complete ownership chain of named Namespaces from a root Namespace to this Element.

short_name

The short name to be used for this Element during name resolution within its owningNamespace. This is derived using the effectiveShortName() operation. By default, it is the same as the declaredShortName, but this is overridden for certain kinds of Elements to compute a shortName even when the declaredName is null.

textual_representations

The TextualRepresentations that annotate this Element.

The following table lists SysIDE specific attributes available for class SatisfyRequirementUsage:

class SatisfyRequirementUsage
__cpp_name__: str = 'syside::sysml::SatisfyRequirementUsage'
STD: tuple[type[syside.SatisfyRequirementUsage], ...] = ()
property satisfied_requirement: syside.RequirementUsage | None
property satisfying_feature: syside.Feature | None
property satisfaction_subject_member: syside.SatisfactionSubjectAccessor
property satisfaction_subject: syside.ReferenceUsage | None
property is_negated: bool
property asserted_constraint: syside.ConstraintUsage | None
property requirement_definition: syside.RequirementDefinition | None
property req_id: str | None
property texts: syside.LazyIterator[str]
property subject_parameter: syside.Usage | None
property actor_parameters: syside.LazyIterator[syside.PartUsage]
property stakeholder_parameters: syside.LazyIterator[syside.PartUsage]
property assumed_constraints: syside.LazyIterator[syside.ConstraintUsage]
property required_constraints: syside.LazyIterator[syside.ConstraintUsage]
property framed_concerns: syside.LazyIterator[syside.ConcernUsage]
property constraint_definition: syside.ConstraintDefinition | syside.Predicate | None
property behaviors: syside.LazyIterator[syside.Behavior | syside.ActionDefinition]
property owned_parameters: syside.LazyIterator[syside.Feature]
property parameters: syside.LazyIterator[syside.Feature]
property is_model_level_evaluable: bool
property function: syside.CalculationDefinition | syside.Function | None
property result: syside.Feature | None
property predicate: syside.Predicate | syside.ConstraintDefinition | None
property result_expression: syside.Expression | None
property result_expression_member: syside.ResultExpressionAccessor