Home > Archives > 跨功能需求(CFR)

跨功能需求(CFR)

Publish:

大部分同学很容易忽视业务需求之外的一些需求,我们称之为跨功能需求(Cross-Functional Requirements, CFR),有时也常被称为非功能需求(Non-Functional Requirements,NFR)。

CFR 描述
可扩展性 Extensibility 是否需要组件化? 是否需要提供一个插件功能,由谁来实施?
可移植性 Portability 是否有迁移到另一个数据库产品或操作系统的必要性?
可安装性和可部署性 Installability & Deployment 需要提供什么样的基础设施? 需要什么样的安装便利性? 需要支持持续交付吗? 如何回滚或升级版本?
兼容性 Compatibility 需要与哪些其他系统集成? 需要遵循哪些其他行业标准? 是否需要考虑现有数据格式?
可集成性和互操作性 Integratability &Interoperability 是否需要提供API 或库供其他系统使用?版本管理和升级策略是什么?
可复用性 Leveragability & Reuse 是否能够复用企业现有组件/ 库,或者当前组件/ 库是否将被重用?
可伸缩性 Scalability 如何根据不断变化的用户量来提高吞吐量? 如何对此进行测试?
版本化和升级策略 Versioning and upgrades 版本化策略是什么? 如何跟踪内部/ 外部的版本? 有没有向后兼容的限制?
可访问性Accessibility 支持有特殊需要的用户(如读屏)
本地化和国际化 Localisation & Internationalisation 对静态/ 操作数据是否有多语言支持? 日期/ 时间/ 货币? 转换和翻译?
可用性和用户体验 Usability and user experience 用户体验对这个系统有多重要,在这个过程中会如何运作? 是否有公司的用户体验准则要遵循? 我们是否需要考虑不同的设备/ 屏幕尺寸?
分布性Distributability 人们是否能够在特定区域使用该系统,而不会因为地点或距离而受到阻碍? 它能在没有互联网接入的情况下运行吗? 如何同步信息?
帮助与支持 Help & Support 需要什么程度的用户文档? 是否需要建立一个教程,提供视频或提供一个帮助和支持团队? 是否需要为培训做计划?
可配置性 Configurability 用户或管理员可以配置功能吗? 如何进行配置管理(如文件、用户界面、API 等)?
支持性 Supportability 确定用户/ 操作支持的级别,以及将如何支持它们?
归档 Archiving 归档什么信息? 何时归档? 如何归档? 谁/ 如何访问这些归档信息?
可用性 Availability 是否有可用性目标要求? 需要什么架构来满足这些要求? 是否有特定的日子(如黑色星期五)需要这些? CAP(一致性、可用性、分区容忍度)。
容量 Capacity 是否有任何特定的存储要求? 是否有高峰负荷的考虑? 需要由系统处理的数据量是多少? 有多少用户将同时使用该系统?
连续性 Continuity 是否考虑灾难恢复计划?
数据完整性和一致性 Data Integrity and Consistency 是否需要数据校验、日志追踪或提供数据恢复机制?
可维护性 Maintainability 最大的可容忍停机时间(RTO/ 恢复时间目标)是什么? 是否有预定停机时间的通知要求? 错误页面如何处理?
监控 Monitoring 是否有现有的工具和基础设施? 应该衡量哪些业务/ 技术指标? 如何进行监测? 哪些类型的警报是必要的?
多环境支持 Multiple Environment Support 理想情况下需要多少/ 哪些环境? 如何配置和管理这些环境?
性能 Performance 吞吐量/ 响应时间要求是什么? 需要有计划地进行性能测试吗? 是否需要考虑异步场景?
弹性和容错性 Resilience & Fault Tolerance 如果某些外部依赖失效/ 不可用,系统将如何降级?
可靠性 Reliability 不可靠的成本是什么? 需要多少成本来保证可靠?
可审计性 Auditability 哪些操作应该被跟踪? 必须满足哪些法律或监管要求?
认证 Authentication 如何鉴别用户身份? 应该遵循什么标准或使用哪些现有的认证系统?
授权 Authorisation 哪些角色和权限是必要的,他们需要访问哪些功能或数据? 谁来维护权限,如何维护和应用权限?
法律合规性 Legal Compliance 对数据/ 系统或软件交付过程是否有法律限制? 对发布过程是否有任何限制?
数据隐私 Data Privacy 哪些数据应该被加密? 哪些数据对终端用户和操作人员可见/ 隐藏? 开发/ 测试过程中能否使用生产数据?或者如何做生产数据脱敏处理?
安全性 Security 需要为安全审计或渗透测试制定哪些流程? 企业的安全准则是什么? 是否有SSL 或VPN 要求?

参考:

Tech Lead电子书03023-电子书版

声明: 本文采用 BY-NC-SA 授权。转载请注明转自: Ding Bao Guo