Skip to main content
Version: Next

Non-Functional Requirements

Version: v3.0.0 Status: Normative (text), Illustrative (diagrams only) Scope: Quality attributes, performance targets, and system constraints that apply across the application Domain: NFR


Statement

The system shall meet quality attribute targets including page load times, operation completion times, concurrent user capacity, and display usability across different browser configurations.

These non-functional requirements establish performance thresholds and usability baselines that all functional domains must satisfy. They define the acceptable response times for user operations, system scalability limits, and display requirements for browser resize and zoom scenarios.


Behavior Overview (Illustrative)

This diagram illustrates the high-level behavior. It does not specify UI layout, styling, or interaction details.


Definitions

TermDefinition
Page Load TimeThe elapsed time from navigation initiation until the screen is fully rendered and interactive
Concurrent SessionAn active authenticated user session performing operations on the system
Reanalysis OperationA computation-intensive operation that reprocesses PCR well data with updated parameters

Functional Requirements

Performance (REQ-NFR-001, REQ-NFR-002, REQ-NFR-003)

FR-NFR-001 Page Load Time

The system shall render all pages and make them interactive within 10 seconds of navigation under normal operating conditions.

Acceptance Criteria:

Load Time Limits:

  • Page load time shall not exceed 10 seconds under normal network conditions
  • Initial data population shall complete within the load time threshold
  • Screen repopulation after data refresh shall complete within the load time threshold

Measurement:

  • Load time shall be measurable via automated testing tools

Exceptions:

  • Specific pages may have stricter load time requirements as documented in their respective domains
  • Progress indicators shall be shown for operations approaching the 10-second threshold

Error Handling:

  • Load time threshold exceeded: The system shall display a progress indicator until loading completes
  • Data fetch timeout: The system shall display an error message and provide retry option

Trace: Source: 3.0.0-Performance (Row 1: Load time), 3.0.0-Runfile List NFR (Row 2-3) | Tests: See scenarios


FR-NFR-002 Reanalysis Operation Time

The system shall complete reanalysis operations within 20 seconds for standard run sizes.

Acceptance Criteria:

Operation Time Limits:

  • Reanalyze action shall complete within 20 seconds for runs up to 100 wells
  • Reanalyze action shall complete within 20 seconds for runs up to 384 wells
  • Edit operations on analyzed data shall complete within 20 seconds
  • Manage results operations shall complete within 20 seconds

Progress Feedback:

  • Progress feedback shall be displayed during reanalysis operations
  • Progress feedback shall show meaningful progress (not indeterminate)
  • Progress bar implementation shall conform to the PROGRESS domain specifications

Scope:

  • This requirement shall apply specifically to the Runfile Report screen operations

Trace: Source: 3.0.0-Performance (Row 2: Reanalyse) | Tests: See scenarios | Related: REQ-PROGRESS


FR-NFR-003 Concurrent User Capacity

The system shall support at least 30 concurrent authenticated user sessions without performance degradation.

Acceptance Criteria:

Capacity Requirements:

  • 30 users shall be able to log in simultaneously
  • All users shall be able to perform standard operations without timeout or failure
  • Page load times shall remain within specified thresholds under concurrent load

Session Management:

  • No session conflicts shall occur between concurrent users

Scalability:

  • The 30 concurrent user threshold shall be treated as a minimum capacity; actual capacity may be higher

Open Questions (Resolved):

IDQuestionResolution
OQ-01What is the target capacity beyond the minimum 30 users?50 concurrent users
OQ-02What graceful degradation behavior is expected when capacity is exceeded?System continues to function (serverless platform) but performance degradation is an accepted consequence

Trace: Source: 3.0.0-Performance (Row 3: Login) | Tests: See scenarios


Usability (REQ-NFR-004, REQ-NFR-005)

FR-NFR-004 Browser Resize Handling

The system shall maintain usability and content accessibility when the browser window is resized.

Acceptance Criteria:

Content Adaptation:

  • Screen content shall adjust to fit new window dimensions
  • Vertical scroll position shall be adjusted to maintain user context
  • No content shall be clipped or hidden inappropriately after resize

Data Display:

  • Tables and data grids shall remain readable at smaller window sizes

Stability:

  • Resize operations shall not cause data loss or navigation disruption

Trace: Source: 3.0.0-Runfile List NFR (Row 4: Resize handling) | Tests: [Pending]


FR-NFR-005 Zoom Level Usability

The system shall display optimally at 80% browser zoom level on standard laptop displays.

Acceptance Criteria:

Display Quality:

  • All UI elements shall remain legible at 80% zoom
  • No horizontal scrolling shall be required at 80% zoom on standard laptop displays (1920x1080)
  • Layout integrity shall be maintained at 80% zoom level

Interactivity:

  • Interactive elements shall remain operable at 80% zoom

Flexibility:

  • Users shall be able to adjust zoom level based on preference and display size; 80% is the design target

Trace: Source: 3.0.0-UI (Row 1) | Tests: [Pending]


Configuration Options

OptionDefaultDescriptionAffects
--[REVIEW REQUIRED: No configurable parameters were identified in the source material. Verify if performance thresholds should be configurable per deployment.]-

Assumptions

  • Network connectivity is within normal operating parameters (latency, bandwidth)
  • Client browsers are modern evergreen browsers (Chrome, Firefox, Edge, Safari)
  • Server infrastructure meets minimum deployment specifications
  • Load testing environment accurately simulates production conditions
  • Standard laptop display resolution is 1920x1080 or similar (for REQ-NFR-005)

UI Notes (Illustrative)

FR-NFR-001 UI Specifications

  • Progress indicators should provide visual feedback for operations approaching load time threshold
  • Loading states should be visually distinct from interactive states

FR-NFR-002 UI Specifications

  • Progress bar should be displayed during reanalysis operations
  • Progress bar should show determinate progress (percentage or stage) rather than indeterminate spinner

Implementation (Illustrative)

Non-functional requirements are architectural/cross-cutting concerns. Backend implementation anchors focus on infrastructure middleware and support classes that enable the performance and scalability targets.

ComponentTypePathRequirementsNotes
HandlerExceptioncode/app/Exceptions/Handler.phpREQ-NFR-001, REQ-NFR-003Global error/timeout handling
RateLimitMiddlewarecode/app/Http/Middleware/RateLimit.phpREQ-NFR-003Request throttling protection
TrustProxiesMiddlewarecode/app/Http/Middleware/TrustProxies.phpREQ-NFR-003Load balancer integration
SetSecurityHeadersMiddlewarecode/app/Http/Middleware/SetSecurityHeaders.phpREQ-NFR-001Response headers, charset
RunAnalyseProgressSupportcode/app/Support/RunAnalyseProgress.phpREQ-NFR-002Reanalysis progress tracking

Architecture Notes

NFRs are primarily enforced through:

  1. Infrastructure Layer (REQ-NFR-001, REQ-NFR-003)

    • AWS Lambda auto-scaling for concurrent user capacity
    • Aurora Serverless for database scalability
    • CloudFront CDN for page load optimization
    • ElastiCache for session/progress caching
  2. Middleware Layer (REQ-NFR-001, REQ-NFR-003)

    • Rate limiting prevents request flooding
    • Proxy trust enables proper load balancer integration
    • Security headers ensure proper content rendering
  3. Progress Tracking (REQ-NFR-002)

    • RunAnalyseProgress tracks reanalysis percentage via cache
    • RunAnalyseProgressUpdated broadcasts real-time progress via Pusher
    • Progress bar UI shows determinate percentage during operations
  4. Frontend Layer (REQ-NFR-004, REQ-NFR-005)

    • Browser resize and zoom requirements are primarily CSS/JS concerns
    • No backend anchors; responsive design implementation in Vue.js components

Traceability Matrix

RequirementTitleVerificationImplementationTest CasesStatus
REQ-NFR-001Page Load TimeTestHandler.php, SetSecurityHeaders.phpGI-625fee1dcb80cd86d84e0e6bDraft
REQ-NFR-002Reanalysis Operation TimeTestRunAnalyseProgress.phpGI-6261112f4766b258147fab9a, GI-626105d9cb80cd86d8ef03bdDraft
REQ-NFR-003Concurrent User CapacityTestRateLimit.php, TrustProxies.php, Handler.phpGI-Suite-61ae61d4abf75b1d770a3297Draft
REQ-NFR-004Browser Resize HandlingTest(Frontend CSS/JS)[Pending]Draft
REQ-NFR-005Zoom Level UsabilityTest(Frontend CSS/JS)[Pending]Draft

Notes

  • Ghost Inspector is used for automated performance testing validation
  • Performance requirements should be validated under both normal and peak load conditions
  • The 10-second page load threshold is an industry-standard usability guideline
  • The 80% zoom requirement addresses usability on common laptop configurations where users often reduce zoom to see more content

Open Questions

IDQuestionSourceOwnerDate Raised
-No open questions. OQ-01 and OQ-02 from REQ-NFR-003 have been resolved (see requirement).---

Acceptance Tests

Test: REQ-NFR-001

Back to requirement

Test: Standard page loads within threshold

Given: User is authenticated
And: Network conditions are normal
When: User navigates to any application page
Then: The page shall be fully rendered and interactive within 10 seconds

Test: Data refresh completes within threshold

Given: User is on a data display page
When: User triggers a data refresh
Then: The refreshed data shall be displayed within 10 seconds

Test: REQ-NFR-002

Back to requirement

Test: Reanalysis completes for 100-well run

Given: User is on the Runfile Report screen
And: A run with 100 wells is loaded
When: User initiates reanalysis
Then: The reanalysis shall complete within 20 seconds
And: Progress feedback shall be displayed during operation

Test: Reanalysis completes for 384-well run

Given: User is on the Runfile Report screen
And: A run with 384 wells is loaded
When: User initiates reanalysis
Then: The reanalysis shall complete within 20 seconds
And: Progress feedback shall be displayed during operation

Test: REQ-NFR-003

Back to requirement

Test: System supports 30 concurrent users

Given: 30 users are logged in simultaneously
When: All users perform standard operations
Then: No user shall experience timeout or failure
And: Page load times shall remain within specified thresholds
And: No session conflicts shall occur

Test: REQ-NFR-004

Back to requirement

Test: Content reflows on window resize

Given: User is viewing an application page
When: User resizes the browser window
Then: Screen content shall adjust to fit new dimensions
And: Scroll position context shall be maintained
And: No content shall be inappropriately clipped

Test: REQ-NFR-005

Back to requirement

Test: Application displays correctly at 80% zoom

Given: User is using a standard laptop display (1920x1080)
And: Browser zoom is set to 80%
When: User navigates to any application page
Then: All UI elements shall be legible
And: No horizontal scrolling shall be required
And: All interactive elements shall be operable

Design DocumentRelevant Sections
SDD ArchitectureAWS Lambda auto-scaling, Aurora Serverless scalability, Amazon ElastiCache performance optimization
SDD Deployment OperationsVapor serverless deployment architecture supporting concurrent user capacity

Appendix: Process Artifacts

Completion Checklist

  • All requirements are capability-level (describe behavior, not UI)
  • Requirement variants consolidated (no requirement explosion)
  • UI details are fully demoted to Illustrative section
  • Configuration options are not encoded as requirements
  • Acceptance criteria describe behavior, not UI mechanics
  • Every requirement has acceptance criteria and source traceability
  • Error handling addressed for I/O, validation, and external system requirements
  • Open questions documented with owners assigned
  • Consolidations documented in Reviewer Notes with reversibility info
  • Module can survive a full UI redesign unchanged
  • Refinements folded into acceptance criteria
  • Traceability matrix is complete

Reviewer Notes

No Consolidation Required

The five requirements in this domain represent distinct quality attributes:

RequirementQuality AttributeConsolidation Status
REQ-NFR-001Performance (Load Time)Standalone
REQ-NFR-002Performance (Operation Time)Standalone
REQ-NFR-003Scalability (Capacity)Standalone
REQ-NFR-004Usability (Responsiveness)Standalone
REQ-NFR-005Usability (Accessibility)Standalone

Rationale: Each requirement addresses a unique system quality attribute. No requirement explosion pattern was detected - these are not variants of a single capability.

Source Preservation

All 5 source requirements have been preserved without consolidation:

  • Source: output/srs/nfr.md
  • Original count: 5 requirements
  • Converted count: 5 requirements

Refinements Folded into Acceptance Criteria

All refinements have been incorporated as acceptance criteria within their respective requirements:

  • REQ-NFR-001: RF-01 and RF-02 folded into AC exceptions group
  • REQ-NFR-002: RF-01 and RF-02 folded into AC progress feedback and scope groups
  • REQ-NFR-003: RF-01 folded into AC scalability group
  • REQ-NFR-005: RF-01 folded into AC flexibility group

Reversibility: Source file preserved at output/srs/nfr.md