需求就是系统必须符合的条件或能力。
软件需求的 FURPS+ 模型:
- 功能性(Funtionality):特性、功能和安全性
- 易用性(Usability):用户友好,软件使用起来简单易上手
- 可靠性(Reliability):软件无故障执行一段时间的概率,相关指标有故障频率、可恢复性、可预见性、准确性、平均失效间隔时间(MTBF)
- 性能(Performance):速度、效率、可用性、准确性、吞吐量、响应时间、资源使用情况
- 可支持性(Supportability):系统测试、安装、扩展、移植、本地化等工作所需的工作量大小
其中,URPS 合称为非功能需求,或软件质量属性,FURPS+ 的 + 是一些补充需求,例如:
- 设计约束:指不允许有一个以上设计选项的需求,例如必须采用某种算法、某种数据库系统等
- 实现需求:规定了系统的编码或构建,如所需标准、编程语言、数据库完整性策略、资源限制和操作环境等
- 接口需求:规定了系统必须与之交互的外部软件或硬件,及这种交互所采用的格式、时间等约束
- 物理需求:规定了系统必须具备的物理特征,可用来代表硬件要求,例如物理网络配置要求
需求的三个层次:
- 项目干系人需求:即原始需求
- 前景文档:即概要需求
- 软件需求规约:即正式的详细软件需求
单个需求规格说明应具有的特性:
- 完整性
- 正确性
- 可行性
- 必要性
- 划分优先级
- 无二义性
- 可验证性
多个需求规格说明应具有的特性:
- 完整性
- 一致性
- 可修改性
- 可跟踪性
需求工程的 5 个阶段:
- 需求获取
- 需求分析
- 需求定义
- 需求验证
- 需求管理
需求分析建模的原则:
- 必须描述并理解问题的信息域
- 必须确定软件所要实现的功能
- 必须描述软件的行为(作为外部事件的结果)
- 描述信息、功能和行为的模型必须以一种能提示分层(或者分级)细节的方式分解开来,即必须对复杂问题做分解
- 分析任务应该从本质信息转向实现细节
需求验证手段:需求评审、原型确认
原型确认根据目的划分:
- 水平原型确认:水平原型也称行为原型,例如用户界面原型
- 垂直原型确认:也称结构化原型或概念验证,相比水平原型,除了导航功能,还实现了部分应用功能。垂直原型更多用于设计验证而不是需求开发
原型确认根据用途划分:
- 抛弃型原型确认
- 演进型原型确认