一、什么是软件需求
什么是需求?
简单地说,需求来源于用户的一些“需要”,这些“需要”被分析、确认后形成完整的文档,该文档详细说明了产品“必须或应当”做什么。
什么是软件需求?
软件需求的各种定义
(1)A. Davis认为:软件需求是从软件外部能发现的,软件所具有的,满足于用户的特点、功能及属性等的集合。
(2)I. Sommerville认为:需求是问题信息和系统行为、特性、设计和实现约束的描述的集合。
(3)M. Jackson等人认为:需求是客户希望在问题域内产生的效果。
IEEE软件工程标准术语表(1990)将需求定义为:
(1)用户解决问题或达到目标所需的条件或能力;(用户的角度 )
(2)系统或系统部件要满足合同、标准、规范或其它正式规定文档所需具有的条件或能力。(软件系统的角度)
上述第一项或第二项中定义的条件和能力的文档表达。
不属于需求的内容:
需求规格说明中不包括(除已知约束外的)设计和实现的细节、项目的计划信息,以及测试信息。
二、软件需求的分类
软件需求间的层次关系
目标需求
- 表示组织或客户高层次的目标要求,其限定了项目的范围和项目应达到的目标。
- 通常来自项目投资人、购买产品的客户、实际用户的管理者、市场营销部门或产品策划部门。
- 通常使用前景和范围( vision and scope )文档来记录业务需求。
- 客户:软件为谁服务?目标客户是谁?
- 业务:为何目的?属于哪类业务范畴?
- 特性:区别于其他竞争产品的特性是什么?
- 价值:价值体现在那些方面?
业务需求
- 主要描述软件系统必须完成的任务、实际业务或者工作流程等。
- 用例、场景描述和事件――响应表都是表达用户需求的有效途径。
- 业务需求通常被记录在使用实例中。
一类特殊的业务需求:业务规则
- 业务规则是对某些功能的可执行性或内部执行逻辑的一些限定条件。
功能需求
- 功能需求规定了开发人员必须在产品中实现的软件功能。
- 用户可以使用这些功能来完成业务,满足目标。
- 功能需求通常被记录在需求规格说明书中。
性能需求
- 指实现的软件系统应达到的技术指标,如响应时间、数据精度、可靠性等。
- 性能需求检验起来非常困难,一般应采用一些可度量的特性进行描述。
约束和限制条件
- 系统设计和实现时必须满足的限制条件,对其进行权衡或调整是相当困难的,甚至是不可能的。
外部接口需求
- 描述系统与其所处的外部环境之间如何进行交互。
- 包括:用户接口、硬件接口、需求软件接口、通信接口
三、需求规格说明
定义
需求规格说明是软件所应满足的全部需求,并可以文档的方式完整和精确陈述这些需求。
重要性
需求规格说明是项目相关人员对将要开发的软件系统所达成的共识,是进行系统设计、实现、测试和验收的基本依据,也是整个软件开发过程中最重要的文档。
内容
需求规格说明应精确地描述一个软件系统必须提供的功能和性能,以及所要考虑的约束条件与限制。
编写方法
需求规格说明也可以说是所有软件需求的集成,并使用某种描述语言如自然语言按照规定的书写格式编写的文档。
一个好的需求规格说明应该具有的特征:
- 完整性:每一项需求都必须将所要实现的功能描述清楚;
- 正确性:每一项需求都必须准确地陈述其要开发的功能;
- 可行性:每一项需求都必须是在已知系统和环境的权能和限制范围内可以实施的;
- 必要性:每一项需求都应把客户真正所需要的和最终系统所需遵从的标准记录下来;
- 划分优先级:给每项需求、特性或使用实例分配一个实施优先级以指明它在特定产品中所占的分量;
- 无二义性:对所有需求说明的读者都只能有一个明确统一的解释;
- 可验证性:检查一下每项需求是否能通过设计测试用例或其它的验证方法,如用演示、检测等来确定产品是否确实按需求实现。
四、需求工程
- 需求工程是指应用工程化的方法、技术和规格来开发和管理软件的需求。
- 目的:要获取高质量的软件需求。
任务
- 确定待开发的软件系统的用户类,并获取他们的需求信息。
- 分析用户的需求信息,并按软件需求的类型分类这些需求信息,同时也区别出不是需求的信息。
- 根据软件需求信息建立软件系统的逻辑模型或需求模型,并确认非功能需求和约束条件及限制。
- 根据收集的需求信息和逻辑模型编写需求规格说明及其文档。
- 评审需求规格说明。
- 当需求发生变更时,对需求规格说明及需求变更实施进行管理。
五、其它一些基本概念
用户(user)
- 利用计算机系统所提供的服务的人(们);
- 直接操作计算机系统的人(们),简单地说,就是直接使用软件系统的人(们)。
客户(customer)
- 掌握经费的人(们),通常由他(们)决定软件需求,客户可以是用户,也可以不是用户。
- 正式接收新开发或修改后的硬件和软件系统的某个(些)人或组织。
软件开发人员(supplier)
为客户开发软件系统的人。
项目相关人员(stakeholder)涉众
指与提出和定义软件需求相关的人,其包括所有的用户、客户和软件开发人员。这些人都是软件需求的来源,只是他们站在不同的立场看待将要开发的软件系统。
标签:需求,文档,软件系统,工程,用户,规格,概述,软件 来源: https://www.cnblogs.com/zhulu506/p/14535110.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。