1.1 需求问题的提出
对用户要求没有完整正确的认识就匆忙着手编写程序是许多软件开发工程失败的主要原因之一。以下是五个与需求有关的败因:
(1)不完整的需求
(2)缺乏用户参与
(3)不切实际的用户期望
(4)需求变更频繁
(5)提供了不再需要的需求
1.2 不同项目的需求视图
不同的项目存在巨大差异,需从不同角度进行相关的需求分析
1.3 需求的定义
软件需求是指用户对目标软件存在功能、行为、性能、设计约束等方面的期望
需求定义的一些基本原则?
(1)并没有一个清晰、毫无奇异性的“需求”属于存在,真正的“需求”实际上在人们的脑海中。我们需要确保所有项目风险承担着在描述需求的那些名词理解上务必达成共识
(2)定义问题,而不是解决方案
(3)定义系统,而不是项目
(4)却分正式和非正式部分
(5)避免重置
(6)保持每个需求定义的大小在合适的范围内是良好的做法
优秀需求的特性?
完整性、正确性、无歧义性、可行性、有优先级、必要性、可验证性
1.4 需求定义的实践
需求定义任务概述?
需求定义应该从内部寻根和外部溯源同时进行,大体分为找到目标,发现问题,列出可选方案,选出合适方案4个步骤。
问题分析的五步法?
(1)在问题定义上达成共识。
(2)分析问题背后的问题。
(3)确定相关人员和用户。
(4)定义解决方案的界限。
(5)确定加载解决方案上的约束。
需求定义的要素?
问题定义的要素包括:目标、范围、相关人员与用户、相关事实与假定。
1.5 需求的层次和分类
软件需求包括三个不同的层次:
(1)业务需求
(2)用户需求
(3)功能需求
软件需求可以分为:
(1)功能需求
(2)非功能需求
(3)设计约束
1.6 需求在总体方案中的位置
软件的生命周期?
(1)问题定义和可行性研究
(2)制定开发计划
(3)需求捕获
(4)分析
(5)设计
(6)规范
(7)实现
(8)测试
(9)部署
(10)维护
需求与其他软件项目过程的关系?
需求剪短在系统开发的整个生命周期中处于最基础、最重要的位置。只有在需求分析工作做得比较扎实到位,文档经过开发方的充分参与、检验、修改、完善。才能为设计实施迈出坚实的一步。需求活动用于软件项目的初始阶段,它的结果接着用于开发的下一阶段即设计阶段