Microsoft.Modeling Namespace

The Microsoft.Modeling namespace contains classes that are used to develop Spec Explorer models.

There are three major categories of types in this namespace.

  • The attribute classes, which declare rule methods, accepting state conditions, type bindings, and so on. Spec Explorer uses these attributes to find modeling elements. These include the RuleAttribute, AcceptingStateConditionAttribute, and TypeBindingAttribute attributes.

  • The value types defined by Spec Explorer, which include collections and compound values. These value types support various modeling features in Spec Explorer, such as state identification and parameter expansion. To benefit from these features, use the Spec Explorer defined collections instead of standard .Net Framework collections, both for action parameters and for state variables. These include the CompoundValue, Map, and MapContainer classes.

  • Classes that contain helper methods to control various aspects of model behavior, such as parameter expansion, condition checking, requirement capture, and so on. These include the Combination, Condition, and Requirement classes.

Classes

Class Description
AcceptingModeAttribute Defines a set of mode tags that identifies an accepting mode set of the model program.
AcceptingStateConditionAttribute Indicates that a parameter-free method or Boolean property is an accepting state condition.
AxiomaticMethodAttribute This API supports the exploration infrastructure and is not intended to be used directly from your code.
Choice Models non-determinism, and allows a rule to generate more than one step from a state.
Combination Provides methods for controlling how Spec Explorer produces value or parameter combinations.
CompoundValue Defines a value type that is suitable for use as an action parameter.
Condition Provides conditions that can control the exploration of a rule, such as whether the rule is enabled and which parameter values can be generated for the rule.
DomainAttribute Specifies a domain for a rule method parameter.
ErrorModeAttribute Defines a set of mode tags that identifies an error mode set of the model program.
FeatureAttribute Indicates that a class belongs to a named feature.
InitialModeAttribute Defines a set of mode tags that is assigned to the initial state of the model program.
LogicalOperations Provides methods that perform common logic operations and that have a control flow that does not depend on the operators. These methods do not create a branch in the execution flow and are suitable for building up constraints in enabling conditions and in parameter constraints.
Map Contains a map, which is an unordered collection mapping keys to elements. Map values are immutable. See MapContainer for a mutable version of Map.
MapContainer Contains a map. A MapContainer wraps a map value, to provide a mutable version of Map. The Map type itself is immutable. See Map for more details on the Map type.
ModelingAssemblyAttribute Indicates that an assembly contains modeling constructs and should be scanned for them. By default, only the main project assembly is scanned for modeling constructs. Apply this attribute to modeling assemblies that are intended to be referenced.
Probability Indicates that Spec Explorer should make a stochastic choice during model exploration.
ProbeAttribute Marks the target method or property as a state probe. State probes provide state information that can be accessed when examining exploration results for the model.
Requirement Allows a requirement to be marked as captured at a point in a model program.
RuleAttribute Indicates that a method, constructor, or property is a rule for a model program and associates the rule with an action invocation.
Sequence Specifies a Sequence, an ordered collection of elements similar to a list but immutable. See SequenceContainer for a mutable version of sequences.
SequenceContainer Contains a Sequence. A SequenceContainer wraps a Sequence, providing a mutable version of Sequence.
SequenceGroup A Sequence Group for given key.
Set Contains a set, an unordered collection of elements without repetitions. Set values are immutable. See SetContainer for a mutable version of sets.
SetContainer Contains a Set. A SetContainer wraps a set value, to provide a mutable version of Set. See Set for more details on the Set type.
SetGroup A Set Group of Key K.
StateFilterAttribute Indicates that parameterless method or property is a state filter.
StateInvariantAttribute Indicates that a Boolean property, field, or parameter-free method is a state invariant.
TypeBindingAttribute Binds a model type to a target type. Target types are those used in an implementation or adapter.
Untracked Attribute indicates the value stored in this field should be excluded from model state.
Value in an untracked field is stored in a global place so retrieving the field value from different states will result in same value, and altering field value will reflect to all states.
Untracked fields won't affect state identification. Obsolete.

Enumerations

Enumeration Description
CombinationStrategy Specifies a strategy for generating parameter combinations.
ParameterExpansionPoint Indicates when during exploration Spec Explorer performs parameter expansion for a rule.