用户需求和软件需求的区别

一些刚实施GJB5000A组织的开发人员,不是很理解软件研制任务书和软件需求规格说明的区别。这里再次解读下这个问题。

软件研制任务书就是用户需求,而用户需求是从用户的角度,用用户熟悉的语言进行描述。软件需求规格说明就是软件需求,而软件需求是从开发人员的角度,用开发人员的术语对软件的功能和性能进行的描述。

除了描述角度不同之外,用户需求和软件需求还有以下不同点:

  • 编写者不同

用户需求是由用户编写(比如软件外包中甲方提供的技术协议或软件研制任务书)或者由用户阐述开发方的需求分析人员编写(大多数信息化系统的用户需求开发都是这种模式),再或者是由系统设计师编写(多数军软开发的模式)。

软件需求不像用户需求那么复杂,都是由开发方的软件需求分析人员编写。

  • 获取来源不同

用户自己编写的用户需求来源于用户的业务领域经验,客户阐述开发方的需求分析人员编写的用户需求来源于用户提供的各种资料以及开发方对用户的需求访谈记录,系统设计师编写的用户需求来源于系统方案。

软件需求是则是来源于用户需求以及其他利益相关方比如开发方管理部门所附加的需求。

  • 对应的测试级别不同

用户需求对应验收测试或确认测试,是编写验收测试或确认测试的用例的主要依据。

软件需求对应配置项测试,用以验证软件实现是否正确,是编写软件配置项测试的用例的主要依据。

  • 可裁剪性不同

用户需求文档不一定是必须的。比如,用户需求可以合并到产品的需求文档中。实际上,修订中的GJB438C就准备去掉软件研制任务书的要求。

而软件需求的文档(即软件需求规格说明)则是必须的。

  • 需求文档的主要内容不同

分析方法 用户需求内容 软件需求内容
结构化分析方法 系统的目标、系统的范围、系统的运行环境、系统的使用场景、系统结构图、业务流程图、功能性需求、非功能性需求、其他约束 功能性需求、非功能性需求、产品的分解结构、产品构建的需求、产品的外部结构需求、产品构建之间的接口、需求的优先级与分类、系统的数据视图、系统的处理流程、系统的设计约束
面向对象分析 系统的目标、系统的范围、系统的使用场景、业务用例、系统用例、非功能性需求、其他因素 系统的目标与范围、业务用例图、业务用例描述、系统用例图、系统用例描述、对用例的补充性说明、领域模型、系统的设计约束
  • 描述的详细程度不同

用户需求的描述中最重要的是要把软件系统的目标与范围描述清楚。

软件需求的描述则要更详细一些,软件的需求描述必须要可实现、可测试。

这正是:

两种需求大不同,开发人员要分清

每个需求都做好,开发障碍全扫清

参考书目:术以载道:软件过程改进实践指南,作者:任甲林,出版社:人民邮电出版社

作者简介:王小双,长期从事GJB5000推广、实施、评价、改进的工作,创建《软件工程之思》微信公众号,一直在《软件工程之思》分享GJB5000、CMMI、软件工程的知识和感悟。现致力于GJB5000咨询以及软件过程改进、软件工程能力提升的研究工作。

用户需求和软件需求的区别》来自互联网,仅为收藏学习,如侵权请联系删除。本文URL:http://www.hashtobe.com/3304.html