| name | furps-analysis |
| description | FURPS+ model for categorizing and specifying non-functional requirements |
| allowed-tools | Read, Glob, Grep, Write, Edit |
FURPS+ Analysis Skill
When to Use This Skill
Use this skill when:
- Furps Analysis tasks - Working on furps+ model for categorizing and specifying non-functional requirements
- Planning or design - Need guidance on Furps Analysis approaches
- Best practices - Want to follow established patterns and standards
Overview
Apply the FURPS+ model to systematically categorize and specify non-functional requirements.
MANDATORY: Documentation-First Approach
Before applying FURPS+:
- Invoke
docs-managementskill for requirements categorization patterns - Verify FURPS+ extensions via MCP servers
- Base all guidance on Hewlett-Packard/Rational FURPS+ methodology
FURPS+ Model Overview
FURPS+ Categories:
┌─────────────────────────────────────────────────────────────────────────────┐
│ FURPS (Core) │
├──────────────┬──────────────┬──────────────┬──────────────┬────────────────┤
│ Functionality│ Usability │ Reliability │ Performance │ Supportability │
├──────────────┼──────────────┼──────────────┼──────────────┼────────────────┤
│ • Features │ • Aesthetics │ • Frequency │ • Speed │ • Testability │
│ • Capabilities│ • Consistency│ • Recoverabil│ • Efficiency │ • Extensibility│
│ • Security │ • Documentation│ ity │ • Throughput │ • Adaptability │
│ │ • Accessibility│ • Accuracy │ • Resource │ • Maintainability│
│ │ │ │ Usage │ • Compatibility│
│ │ │ │ │ • Configurability│
│ │ │ │ │ • Serviceability│
│ │ │ │ │ • Installability│
│ │ │ │ │ • Localizability│
└──────────────┴──────────────┴──────────────┴──────────────┴────────────────┘
┌─────────────────────────────────────────────────────────────────────────────┐
│ + (Plus Categories) │
├─────────────────┬─────────────────┬─────────────────┬───────────────────────┤
│ Design │ Implementation │ Interface │ Physical │
│ Constraints │ Constraints │ Requirements │ Constraints │
├─────────────────┼─────────────────┼─────────────────┼───────────────────────┤
│ • Architecture │ • Standards │ • External APIs │ • Hardware │
│ • Patterns │ • Languages │ • Protocols │ • Deployment │
│ • Frameworks │ • Tools │ • Data formats │ • Network │
│ • Reuse │ • Libraries │ • Legacy │ • Environmental │
└─────────────────┴─────────────────┴─────────────────┴───────────────────────┘
Category Definitions
F - Functionality
Requirements that specify capabilities the system must have.
## Functionality Requirements
### Feature Sets
| ID | Feature | Description | Priority |
|----|---------|-------------|----------|
| F-001 | Order Management | Create, update, cancel orders | Must Have |
| F-002 | Payment Processing | Accept credit cards, PayPal | Must Have |
| F-003 | Reporting | Generate sales reports | Should Have |
### Security Requirements
| ID | Requirement | Rationale |
|----|-------------|-----------|
| F-SEC-001 | All passwords hashed with bcrypt | Protect credentials |
| F-SEC-002 | MFA for admin accounts | Prevent unauthorized access |
| F-SEC-003 | Encrypt PII at rest | Compliance (GDPR) |
### Audit/Logging
| ID | Requirement | Retention |
|----|-------------|-----------|
| F-AUD-001 | Log all authentication attempts | 90 days |
| F-AUD-002 | Log all data modifications | 7 years |
U - Usability
Requirements affecting user experience and accessibility.
## Usability Requirements
### Aesthetics
| ID | Requirement | Metric |
|----|-------------|--------|
| U-001 | Consistent branding across UI | Brand guidelines compliance |
| U-002 | Modern, clean interface | User satisfaction >4.0/5.0 |
### Accessibility
| ID | Requirement | Standard |
|----|-------------|----------|
| U-ACC-001 | WCAG 2.1 Level AA compliance | All public pages |
| U-ACC-002 | Keyboard navigation | All interactive elements |
| U-ACC-003 | Screen reader support | ARIA labels complete |
### Learnability
| ID | Requirement | Metric |
|----|-------------|--------|
| U-LRN-001 | New users productive within 1 hour | 80% complete basic tasks |
| U-LRN-002 | Contextual help available | Every form has help text |
| U-LRN-003 | Onboarding tour | First login experience |
### Error Handling
| ID | Requirement | Metric |
|----|-------------|--------|
| U-ERR-001 | Friendly error messages | No stack traces shown |
| U-ERR-002 | Recovery suggestions | All errors suggest action |
R - Reliability
Requirements for system dependability and fault handling.
## Reliability Requirements
### Availability
| ID | Requirement | Target | Measurement |
|----|-------------|--------|-------------|
| R-AVL-001 | System availability | 99.9% | Monthly uptime |
| R-AVL-002 | Planned maintenance window | 2 hours/month | Off-peak only |
| R-AVL-003 | Degraded mode operation | Critical functions available | During partial outage |
### Fault Tolerance
| ID | Requirement | Scenario |
|----|-------------|----------|
| R-FLT-001 | Database failover | <30 seconds |
| R-FLT-002 | Service restart | <60 seconds |
| R-FLT-003 | Queue backpressure | 10,000 messages buffered |
### Recoverability
| ID | Requirement | Target |
|----|-------------|--------|
| R-RCV-001 | Recovery Time Objective (RTO) | <1 hour |
| R-RCV-002 | Recovery Point Objective (RPO) | <15 minutes |
| R-RCV-003 | Backup frequency | Every 6 hours |
| R-RCV-004 | Disaster recovery test | Quarterly |
### Data Integrity
| ID | Requirement | Approach |
|----|-------------|----------|
| R-INT-001 | Transaction consistency | ACID guarantees |
| R-INT-002 | Data validation | Schema validation on input |
| R-INT-003 | Corruption detection | Checksums on critical data |
P - Performance
Requirements for speed, efficiency, and capacity.
## Performance Requirements
### Response Time
| ID | Operation | Target | Measurement |
|----|-----------|--------|-------------|
| P-RSP-001 | Page load | <2 seconds | Time to interactive |
| P-RSP-002 | API response | <100ms (p95) | Server processing |
| P-RSP-003 | Search results | <500ms | Complex queries |
| P-RSP-004 | Report generation | <10 seconds | Monthly reports |
### Throughput
| ID | Requirement | Target | Sustained |
|----|-------------|--------|-----------|
| P-THR-001 | API requests | 1,000 req/sec | Normal load |
| P-THR-002 | Order processing | 100 orders/sec | Peak periods |
| P-THR-003 | Message processing | 10,000 msg/sec | Async queues |
### Resource Utilization
| ID | Resource | Limit | Condition |
|----|----------|-------|-----------|
| P-RES-001 | CPU utilization | <70% | Normal load |
| P-RES-002 | Memory usage | <80% | All pods |
| P-RES-003 | Database connections | <500 | Connection pool |
| P-RES-004 | Storage growth | <10GB/month | Data retention |
### Scalability
| ID | Dimension | Requirement |
|----|-----------|-------------|
| P-SCL-001 | Horizontal scaling | Add nodes without downtime |
| P-SCL-002 | User capacity | 100,000 concurrent users |
| P-SCL-003 | Data volume | 1TB without degradation |
S - Supportability
Requirements for maintenance, operations, and evolution.
## Supportability Requirements
### Testability
| ID | Requirement | Target |
|----|-------------|--------|
| S-TST-001 | Unit test coverage | >80% |
| S-TST-002 | Integration test coverage | All API endpoints |
| S-TST-003 | E2E test coverage | Critical user journeys |
| S-TST-004 | Test execution time | <10 minutes (CI) |
### Maintainability
| ID | Requirement | Approach |
|----|-------------|----------|
| S-MNT-001 | Code quality | Automated linting |
| S-MNT-002 | Documentation | API docs auto-generated |
| S-MNT-003 | Dependency updates | Monthly review |
| S-MNT-004 | Technical debt | <10% backlog |
### Configurability
| ID | Requirement | Scope |
|----|-------------|-------|
| S-CFG-001 | Feature flags | All new features |
| S-CFG-002 | Environment config | External configuration |
| S-CFG-003 | Runtime tuning | Without deployment |
### Observability
| ID | Requirement | Tool |
|----|-------------|------|
| S-OBS-001 | Centralized logging | Application Insights |
| S-OBS-002 | Distributed tracing | OpenTelemetry |
| S-OBS-003 | Metrics dashboards | Grafana |
| S-OBS-004 | Alerting | PagerDuty |
### Installability
| ID | Requirement | Method |
|----|-------------|--------|
| S-INS-001 | Automated deployment | CI/CD pipeline |
| S-INS-002 | Zero-downtime deploy | Blue-green or rolling |
| S-INS-003 | Rollback capability | <5 minutes |
Plus Categories (+)
Design Constraints
## Design Constraints
| ID | Constraint | Rationale |
|----|------------|-----------|
| DC-001 | Microservices architecture | Scalability, team autonomy |
| DC-002 | Event-driven communication | Loose coupling |
| DC-003 | Domain-Driven Design | Complex domain handling |
| DC-004 | CQRS for read-heavy services | Performance optimization |
Implementation Constraints
## Implementation Constraints
| ID | Constraint | Requirement |
|----|------------|-------------|
| IC-001 | Language: C# (.NET 10) | Team expertise |
| IC-002 | Cloud: Azure | Enterprise agreement |
| IC-003 | Database: PostgreSQL | Open source, capabilities |
| IC-004 | Message broker: Azure Service Bus | Azure integration |
| IC-005 | Coding standards | Microsoft C# conventions |
Interface Requirements
## Interface Requirements
| ID | Interface | Protocol | Format |
|----|-----------|----------|--------|
| IR-001 | Payment gateway | REST/HTTPS | JSON |
| IR-002 | Shipping provider | SOAP | XML |
| IR-003 | Analytics platform | REST | JSON |
| IR-004 | Legacy ERP | File transfer | CSV |
| IR-005 | Mobile app | REST/gRPC | JSON/Protobuf |
Physical Constraints
## Physical Constraints
| ID | Constraint | Specification |
|----|------------|---------------|
| PC-001 | Cloud regions | US East, West Europe |
| PC-002 | Network bandwidth | 1Gbps minimum |
| PC-003 | Storage type | SSD for databases |
| PC-004 | Container runtime | Kubernetes (AKS) |
| PC-005 | Minimum instances | 3 (high availability) |
C# Implementation
// FURPS+ Requirements Model
public sealed record FurpsRequirements
{
public FunctionalityRequirements Functionality { get; init; }
public UsabilityRequirements Usability { get; init; }
public ReliabilityRequirements Reliability { get; init; }
public PerformanceRequirements Performance { get; init; }
public SupportabilityRequirements Supportability { get; init; }
public PlusConstraints Constraints { get; init; }
}
public sealed record FunctionalityRequirements
{
public IReadOnlyList<Feature> Features { get; init; }
public SecurityRequirements Security { get; init; }
public AuditRequirements Audit { get; init; }
}
public sealed record PerformanceRequirements
{
public ResponseTimeTargets ResponseTime { get; init; }
public ThroughputTargets Throughput { get; init; }
public ResourceLimits Resources { get; init; }
public ScalabilityTargets Scalability { get; init; }
}
public sealed record ResponseTimeTargets(
TimeSpan PageLoadTarget,
TimeSpan ApiResponseP95,
TimeSpan SearchResultTarget);
public sealed record ReliabilityRequirements
{
public AvailabilityTarget Availability { get; init; }
public FaultToleranceRequirements FaultTolerance { get; init; }
public RecoveryRequirements Recovery { get; init; }
}
public sealed record RecoveryRequirements(
TimeSpan RecoveryTimeObjective,
TimeSpan RecoveryPointObjective,
TimeSpan BackupFrequency);
public sealed record PlusConstraints
{
public IReadOnlyList<DesignConstraint> Design { get; init; }
public IReadOnlyList<ImplementationConstraint> Implementation { get; init; }
public IReadOnlyList<InterfaceRequirement> Interfaces { get; init; }
public IReadOnlyList<PhysicalConstraint> Physical { get; init; }
}
FURPS+ vs ISO 25010 Mapping
| FURPS+ | ISO 25010 Equivalent |
|---|---|
| Functionality | Functional Suitability |
| Usability | Interaction Capability |
| Reliability | Reliability |
| Performance | Performance Efficiency |
| Supportability | Maintainability + Flexibility |
| Design Constraints | (Architecture decisions) |
| Implementation | (Technology choices) |
| Interface | Compatibility |
| Physical | (Infrastructure) |
Workflow
When applying FURPS+:
- Gather Requirements: Collect all known requirements
- Categorize: Sort into FURPS+ categories
- Identify Gaps: Find missing categories
- Quantify: Add measurable targets
- Prioritize: Rank by importance and risk
- Validate: Review with stakeholders
- Track: Monitor implementation progress
References
For detailed guidance:
Last Updated: 2025-12-26