Requirement Class
Allows a requirement to be marked as captured at a point in a model program.
Namespace: Microsoft.Modeling
Assembly: Microsoft.Xrt.Runtime (in Microsoft.Xrt.Runtime.dll)
Usage
'Usage
Syntax
'Declaration
public static class Requirement
Example
The following example uses the Capture, AssumeCaptured, and IsTrue methods to indicate when a specific requirement is captured by the AddJob
action.
static SetContainer<int> activeJobIds = new SetContainer<int>();
/// <summary>Models a request to add a job to the queue.</summary>
/// <param name="jobId">The job identifier.</param>
/// <param name="jobName">The job name.</param>
/// <returns>true if the job was successfully added; otherwise, false.
/// </returns>
[Rule]
static bool AddJob(int jobId, string jobName)
{
// Requirement 1: Job identifiers MUST be greater than zero.
// Requirement 2: Active jobs MUST have a unique identifier.
// Requirement 3: Job identifier MUST be encrypted with SHA-01.
Condition.IsTrue(jobId > 0, "req-01");
bool success = !activeJobIds.Contains(jobId);
if (success)
{
activeJobIds.Add(jobId);
Requirement.Capture("req-02");
}
// This requirement can be only validated by the adapter.
Requirement.AssumeCaptured("req-03");
return success;
}
Remarks
To indicate that a model captures a requirement, insert a call to the Capture or AssumeCaptured method at a point in the model program where the model has validated the requirement. When Spec Explorer encounters a capture method during exploration, it adds the requirement to the set of captured requirements for the step that is being explored.
We recommend that you use a requirement identifier in the requirement parameter in calls to the Capture or AssumeCaptured method, instead of a requirement description. The Condition.IsTrue(Boolean,String) method is equivalent to the combination of the Condition.IsTrue(Boolean) and Capture methods
The set of requirements captured by a step is the set of unique requirements captured in the transition that are not already captured in the transition's source state. In Exploration Graph Viewer, the step browser displays the requirements captured by a step. To have Exploration Graph Viewer include captured requirements as part of step labels, create a view definition for which DisplayRequirements is set to true.
Spec Explorer makes requirement capture available at test time. If a step captures a set of requirements, when a test validates the step on or against the system under test, the test logs the captured requirements.
To define a behavior in Cord script based on capturing requirements, use the requirement coverage construct, RequirementCoverageConstruct.
Inheritance Hierarchy
System.Object
Microsoft.Modeling.Requirement
Thread Safety
Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.
Platforms
Development Platforms
Microsoft Windows 7, Microsoft Windows Vista, Microsoft Windows XP SP2 or later, Microsoft Windows Server 2008, Microsoft Windows Server 2003
Change History
See Also
Reference
Requirement Members
Microsoft.Modeling Namespace
Condition.IsTrue Method (Boolean, String)