Claude Code Plugins

Community-maintained marketplace

Feedback

FURPS+ model for categorizing and specifying non-functional requirements

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

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+:

  1. Invoke docs-management skill for requirements categorization patterns
  2. Verify FURPS+ extensions via MCP servers
  3. 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+:

  1. Gather Requirements: Collect all known requirements
  2. Categorize: Sort into FURPS+ categories
  3. Identify Gaps: Find missing categories
  4. Quantify: Add measurable targets
  5. Prioritize: Rank by importance and risk
  6. Validate: Review with stakeholders
  7. Track: Monitor implementation progress

References

For detailed guidance:


Last Updated: 2025-12-26