Functional vs Non-Functional Requirements

What is a functional requirement?

What is a non-functional requirement?

Functional

  • When the user enters the information, the system shall send an approval request.
  • The server shall log all changes to existing data.
  • When 24 hours have passed since the last database backup, the server shall automatically back up the database.
  • The local terminal shall automatically print a list of orders every 4 hours.
  • When the local time is 0800, the server shall email a report of open issues to all managers.
  • The system shall only allow managers to view customer banking data.

Non-functional

  • Database security shall meet HIPAA requirements.
  • The layout shall allow users to reach their profile data from any page within 3 clicks.
  • If a user has not changed their password for 56 days, then the system shall require a password change upon login.
  • The system must accommodate a minimum of 3 million concurrent users.
  • All web pages shall load within 4 seconds.
  • The background colour for all screens shall be #fff4b6.
  • System programming shall not use deprecated code.

MSTR Non-functional Requirements

  • Security
  • Compatibility
  • Logging & Error Handling
  • Performance & Scalability
  • Monitoring & Telemetry
  • Internationalization
  • Accessibility

Security

  • Is the client-server communication secured by TLS/HTTPS 
  • Always validate input from untrusted sources
  • Passwords and user ids must be transmitted and stored in a secure manner.
  • Make sure all functionality available to the user is controlled by privileges or other control mechanisms.
  • Verify use of third party components with Security Engineering

Compatibility

  • Forward compatibility
  • Backward compatibility
  • MD compatibility
  • API compatibility

Logging & Error Handling

  • Logging category
    • FATAL
    • Error
    • Warning
    • Trace/Info
  • Clarify the logging requirements in PD design

Performance and Scalability

  • Define performance threshold under load(concurrent users and/or data size)
  • Define performance metrics so they can be monitored by runtime monitoring service
  • Vertical scalability
  • Horizontal scalability

Monitoring & Telemetry

  • Session monitor, Job monitor,
  • Telemetry is data for monitoring plus its transition mechanism

Internationalization

  • Number, time format
  • Data internationalization
  • Metadata internationalization

Accessibility

  • Usually not relevant to server engineering

Reference

https://github.microstrategy.com/pages/kiai/developers-guide/

Title Text

Subtitle

Functional vs Non-functional requirements

By bawu

Functional vs Non-functional requirements

  • 1,025