rmtoo

Requirements vs Constraints

Understanding the difference between requirements and constraints is fundamental to effective requirements management in rmToo.

Definitions

Requirements

A requirement is a behavior, action, or characteristic specified by other requirements. Requirements define what the system should do.

Constraints

Constraints are limitations on the solution space of a requirement. They define how the system should implement the requirements, or what restrictions apply.

Key Characteristics

Requirements

Constraints

Inheritance Model

Constraints typically inherit from the directly associated requirement to all dependent requirements. This inheritance model ensures that design decisions and limitations propagate through the entire requirement hierarchy.

Example: Digital Thermometer

Let’s consider designing a digital thermometer that must withstand accelerations of 7G.

Master Requirement

Name: Thermometer
Solved by: Display Housing TemperatureSensor Electronics PowerSupply
Constraints: AccelerationMax7G

In this example, the constraint AccelerationMax7G inherits to all components (Display, Housing, TemperatureSensor, Electronics, PowerSupply).

Component with Conflicting Constraint

Name: HousingA
Solved by: ...
Constraints: AccelerationMax5G

This creates a conflict because:

Automatic Conflict Detection

One of rmToo’s goals is the automatic checking of such constraints and detection of possible conflicts. This helps identify:

  1. Inheritance conflicts: When child requirements have constraints that conflict with parent requirements
  2. Component incompatibilities: When existing components don’t meet system-level constraints
  3. Design contradictions: When multiple constraints cannot be satisfied simultaneously

Practical Usage in rmToo

Defining Constraints

In rmToo, constraints are typically defined using the Constraints field in requirement files:

Name: SystemRequirement
Description: The system must meet specific performance criteria
Constraints: 
 - MaxResponseTime2sec
 - MinThroughput100rps
 - MaxMemoryUsage512MB
Solved by: UserInterface DataProcessor NetworkModule

Constraint Verification

rmToo can automatically verify constraints when:

Constraint Inheritance

When a requirement has constraints, all requirements that solve it inherit these constraints unless explicitly overridden.

Best Practices

1. Clear Constraint Definition

2. Hierarchical Constraint Management

3. Conflict Prevention

4. Verifiable Constraints

Implementation in rmToo

Current Status

rmToo provides basic constraint support through:

Future Enhancements

Planned improvements include:

Common Constraint Types

Performance Constraints

Physical Constraints

Regulatory Constraints

Design Constraints

Constraint Documentation

In Requirements Files

Name: WebServerResponse
Description: Web server must respond quickly to user requests
Constraints: MaxResponseTime2sec
Type: requirement
Status: not done

In Constraint Files

Name: MaxResponseTime2sec
Description: Maximum response time of 2 seconds for web requests
Measurement: Response time from request to first byte
Verification: Automated load testing
Units: seconds
Threshold: 2.0

Troubleshooting Constraint Issues

Conflict Resolution

  1. Identify the conflict: Use rmToo’s analysis tools
  2. Analyze the hierarchy: Understand constraint inheritance
  3. Resolve at appropriate level: Modify constraints or requirements
  4. Verify the solution: Check that all constraints are satisfied

Common Problems

Integration with Quality Analytics

rmToo’s analytics modules can help with constraint management:

See Also