文章目录
- 项目案例
- 软件需求管理的基本概念
- 什么是软件需求?
- 关于软件需求的注意事项
- 软件需求的重要性
- 软件需求开发
- 软件需求工程的产生
- 什么是软件需求开发?
- 软件需求开发的任务
- 软件需求开发的过程
- 步骤1:收集和获取软件需求
- 步骤2:软件需求建模
- 步骤3:文档化软件需求
- 步骤4:软件需求验证
- 软件需求管理
- 需求管理的目标
- 需求管理的原则
- 需求管理活动
- 需求变更管理
- 需求跟踪
项目案例
软件需求管理的基本概念
什么是软件需求?
待开发软件产品的目标用户对该软件产品的功能、性能、设计约束和其它方面的期望和要求,即就是用户希望软件能做什么事情,完成什么样的功能,达到什么性能。
关于软件需求的注意事项
软件需求关注用户的期望、要求和需要,不是解决方案
要区分what和How
例如,要采用什么算法,不是用户需求
并不是所有方面的要求都是软件需求
功能、性能、设计约束、时间进度等
例如,重量、软件大小等不是用户需求
并不是所有用户的期望和要求都是软件需求
用户需求必须中肯,有意义
例如,记录图书的厚度等不是用户需求
软件需求的重要性
- 软件开发的基础和前提
- 制定软件开发计划的基础
- 最终目标软件系统验收的标准
软件需求开发
软件需求工程的产生
形成于80年代中期,90年代以后取得很大的发展。
需求工程是指应用已证实有效的技术、方法进行需求分析,确定客户需求,帮助分析人员理解问题,并定义目标系统的所有外部特征的一门学科。
它通过合适的工具和记号系统地描述待开发系统及其行为特征和相关约束,形成需求文档,并对用户不断变化的需求演进给予支持。
什么是软件需求开发?
需求开发是指从用户处获得需求、形成与用户需求相一致的、可供阅读的软件需求规格说明书的过程。
软件需求开发的任务
通过对应用问题及其环境的理解和分析,准确、一致和完全地刻划用户需求,并达成一致,形成软件需求规格说明书SRS
软件需求开发的过程
步骤1:收集和获取软件需求
步骤2:软件需求建模
需求建模的方法:
- 用例分析方法
- 原型分析方法
- 结构化分析方法
步骤3:文档化软件需求
- 任务
根据软件需求初步描述和软件需求模型,撰写软件需求规格说明书(SRS)。 - 需求规格说明书的编制是为了使用户和软件开发者双方对该软件的初始规定有一个共同的理解,使之成为整个开发工作的基础。
步骤4:软件需求验证
- 目的
由多方(客户代表和开发人员共同参与)对软件需求规格说明书进行评审,分析需求的正确性,完整性以及可行性等等,确保需求说明准确、无二义性并完整地表达系统功能以及必要的质量特性。
软件需求管理
需求管理的目标
需求管理的目的是在客户和处理客户需求的软件项目组之间建立对客户需求的共同理解。具体来说,需求管理的目标有二个:
(1) 使软件需求受控,并建立供软件工程和管理使用的需求基线。
需求变更控制和版本控制
(2) 使软件计划、产品和活动与软件需求保持一致。
需求跟踪
需求管理的原则
- 需求一定要分类管理:目标性、业务需求和操作性
- 需求必须分优先级:需求过多、需要裁剪
- 需求必须文档化:记录,避免忽略重要需求
- 需求一旦变化,就必须对需求变更的影响进行评估
- 需求管理必须与需求工程的其他活动紧密整合
需求管理活动
- 需求管理规划:
需求识别、变更管理过程、需求跟踪和自动化工具 - 需求管理是一个对系统需求变更了解和控制的过程。需求管理的过程是与其他需求工程过程相互关联的。初始需求导出的同时就启动了需求管理规划,一旦形成了需求文档的草稿版本,需求管理活动就开始了。
需求变更管理
- 需求变更的原因
(1) 在项目的早期所有的问题不可能被完全定义,软件需求是不完全的,注定了需求需要变更。
(2) 随着软件项目的进行,软件开发人员对问题的理解会发生变化,这些变化也要反馈到需求中去。
(3) 不同类型的用户的需求可能是冲突的或是矛盾的,最后的系统需求是它们之间的一个妥协。这种妥协的程度在项目进行过程中有可能发生改变,从而导致系统需求的改变。
(4) 系统购买者或系统最终用户很少是同一人,有的系统客户对系统提出的一些需求可能和最终用户需求不一致。
需求跟踪
-
需求跟踪的必要性
(1)进行需求跟踪的目的是建立和维护从用户需求开始到测试之间的一致性与完整性,确保所有的实现都以用户需求为基础,而实现的需求也全部覆盖了预期的需求,同时确保所有的输出与用户需求的符合性。
(2)跟踪能力信息使得变更影响分析十分便利,有利于确认和评估实现某个建议的需求变更所必须的工作。
(3)软件工程重视过程能力。 -
需求跟踪有两种方式,正向跟踪和逆向跟踪:
(1) 正向跟踪以用户需求为切入点,检查用户需求说明书或需求规格说明中的每个需求是否都能在后继工作产品中找到对应点。
(2) 逆向跟踪检查设计文档、代码、测试用例等工作产品是否都能在需求规格说明中找到出处。 -
需求跟踪的作用
(1)在需求验证中的作用
(2)有助于需求变更影响分析
(3)便于需求的维护
(4)便于测试时找出问题所在
(5)便于项目跟踪
(6)减小项目的风险
(7)简化了系统的再设计
(8)易于软件重用