Press "Enter" to skip to content

非功能性需求

cheney 0
非功能性需求是用来描述一个系统本身的属性,而不是系统的某些具体行为。它和功能性需求是相辅相成的。功能性需求一般由产品设计来定义,而非功能性需求往往是由系统架构来定义。
总体来说,功能性需求描述了系统(产品)做什么;非功能性需求描述了系统(产品基于的系统)是什么。

功能性需求的书写一般为“系统/产品应该可以做到…[需求]”, 用来描述系统某一部分/组件的某个动作以期待得到某些特定的结果。类似于软件工程中执行一个函数,输入经过流程和控制得到输出一样。这“黑盒”内的流程和控制,就是开发人员需要针对功能性需求的描述去实现的。
相比之下,非功能性需求的书写一般为“系统应该是/具备…[需求]”。它描述了一系列系统应该具备的属性,从而以支持系统的持续和稳定。非功能性需求往往关系到开发性项目的成败。
非功能性需求有时被看作“质量属性”。而从质量出发,非功能性需求可以被拆分成两部分
  • 执行质量,例如安全性,可用性。这些都是可以在操作系统或产品中被用户直接感知的
  • 演进质量,例如可测性,可维护性,可扩展性。这些都是需要系统的静态架构设计中考虑的
一个例子,
一个系统需要按特定要求将数据库中的某些的数据呈现给用户,这是一个功能性需求。需要多么频繁的更新此项数据,这是一个非功能性需求。如果这个要求是实时的,那么系统架构需要确保有效的网络带宽,和系统对频繁变更的支持。
另外的一些非功能性需求参考,
  • Accessibility
  • Auditability and control
  • Availability (see service level agreement)
  • Backup
  • Capacity, current and forecast
  • Certification
  • Compliance
  • Compliance to Privacy Laws
  • Configuration management
  • Dependency on other parties
  • Deployment
  • Documentation
  • Disaster recovery
  • Efficiency (resource consumption for given load)
  • Effectiveness (resulting performance in relation to effort)
  • Emotional factors (like fun or absorbing or has “Wow! Factor”)
  • Environmental protection
  • Escrow
  • Exploitability
  • Extensibility (adding features, and carry-forward of customizations at next major version upgrade)
  • Failure management
  • Fault tolerance (e.g. Operational System Monitoring, Measuring, and Management)
  • Legal and licensing issues or patent-infringement-avoidability
  • Inter-operability
  • Maintainability (e.g. Mean Time To Repair – MTTR)
  • Modifiability
  • Network topology
  • Open source
  • Operability
  • Performance / response time (performance engineering)
  • Platform compatibility
  • Price
  • Privacy
  • Portability
  • Quality (e.g. faults discovered, faults delivered, fault removal efficacy)
  • Readability
  • Reliability (e.g. Mean Time Between/To Failures – MTBF/MTTF )
  • Reporting
  • Resilience
  • Resource constraints (processor speed, memory, disk space, network bandwidth, etc.)
  • Response time
  • Reusability
  • Robustness
  • Safety or Factor of safety
  • Scalability (horizontal, vertical)
  • Security (cyber and physical)
  • Software, tools, standards etc. Compatibility
  • Stability
  • Supportability
  • Testability
  • Throughput
  • Transparency
  • Usability (Human Factors) by target user community

发表评论

电子邮件地址不会被公开。 必填项已用*标注