第一章 需求概述
一.需求问题的提出
需求的好坏直接关系到软件的成功与否。客户提出的需求时软件系统的源头,它定义了软件系统的意图和目的。
长时间以来仍然存在着软件开发的失败其主要原因归咎于需求的不准确性。
下面具体给出五个与需求有关的败因描述:
1.不完整的需求。
2.缺乏用户参与。
3.不切实际的用户期望。
4.需求变更频繁。
5.提供了不再需要的需求。
二、不同项目的需求视图
不同的软件项目具有不同的特点,不同的项目需求也各不相同。本章主要讲信息系统的需求视图、嵌入式系统的需求视图和软件产品的需求视图三个方面。
三、需求的定义
1.定义:软件需求是指用户对目标软件系统在功能、行为、性能、设计约束等方面的期望。
2.需求定义的一些基本原则:
(1).并没有一个清晰、毫无歧义性的“需求”术语存在,真正的“需求”实际上在人们的脑海中。
(2).定义问题,而不是解决方案。
(3).定义系统,而不是项目。
(4).区分正式和非正式部分。
(5).避免重置。
(6).保持每个需求定义的大小在合适的范围内是良好的做法。
3.优秀需求的特性:
(1).完整性 (2)正确性 (3)无歧义性 (4)可行性 (5)有优先级 (6)必要性 (7)可验证性
四、需求定义的实践
这里主要给出了需求定义实践时应注意的事项和使用的技巧:
(1)需求定义任务概述:内部寻根和外部溯源,需求定义、制作项目提案时分为以下四个步骤:目标、问题、可选方案和建议方案。
(2)问题分析五步法:在问题定义上达成共识、分析问题背后的问题、确定相关人员和用户、定义解决方案的界限和确定加在解决方案上的约束。
(3)需求定义的要素:目标、范围、相关人员与用户、相关事实与假定。
(4)需求定义的范围:通常需求定义的范围时通过程序分解结构给出。
五.需求的层次和分类
1.软件需求的层次:
(1)业务需求:业务需求代表了需求链中最高层的抽象,它为软件系统定义了项目视图和范围,反映了企业/组织对软件系统的高层次目标要求。
(2)用户需求:用户需求是指描述的是用户视野软件需要完成什么任务、怎么完成的需求,用户需求还具有两个特点,零散和存在矛盾。
(3)功能需求:功能需求需要对用户需求进行分析、提炼、整理,从而整理出更加精确的需求说明。
2.软件需求的分类:
(1)功能需求:功能需求定义了开发人员必须实现的软件功能,使得用户能完成他们的任务,从而满足业务需求。
(2)非功能需求:作为功能需求补充的非功能需求,它描述了系统展现给用户的行为和执行的操作,它包括外部界面的具体细节、性能要求及质量属性。
(3)设计约束:所谓设计约束是指对开发人员在软件产品设计和构造上的限制,产品必须遵从的标准、规范和合约
六.需求在总体方案中的位置
1.软件的生命周期:
软件的系统开发、运行、维护所实施的全部过程为软件生命周期。
大体可分为以下几点:
(1).问题定义和可行性研究 (2)制定开发计划 (3)需求捕获 (4)分析 (5)设计 (6)规范 (7)实现 (8)测试 (9)部署 (10)维护
2.需求与其他软件项目过程的关系:
需求阶段在系统开发的整个生命周期中处于最基础、最重要的位置。需求是软件项目的核心所在,它为其他许多技术、管理活动奠定了基础。
本章总结:需求分析在软件开发过程中起着非常重要的作用,它关乎着软件开发的成功与失败,为软件的开发奠定了非常重要的基础,是不可忽视的一个过程。

浙公网安备 33010602011771号