软件需求包括3个不同的层次――业务需求、用户需求和功能需求。
除此之外,每个系统还有各种非功能需求。
业务需求(Business requirement)表示组织或客户高层次的目标。业务需求通常来自项目投资人、购买产品的客户、实际用户的管理者、市场营销部门或产品策划部门。业务需求描述了组织为什么要开发一个系统,即组织希望达到的目标。使用前景和范围(vision and scope)文档来记录业务需求,这份文档有时也被称作项目轮廓图或市场需求(project charter 或 market requirement)文档。
用户需求(user requirement)描述的是用户的目标,或用户要求系统必须能完成的任务。用例、场景描述和事件――响应表都是表达用户需求的有效途径。也就是说用户需求描述了用户能使用系统来做些什么。
功能需求(functional requirement)规定开发人员必须在产品中实现的软件功能,用户利用这些功能来完成任务,满足业务需求。功能需求有时也被称作行为需求(behavīoral requirement),因为习惯上总是用“应该”对其进行描述:“系统应该发送电子邮件来通知用户已接受其预定”。功能需求描述是开发人员需要实现什么。
系统需求(system requirement)用于描述包含多个子系统的产品(即系统)的顶级需求。系统可以只包含软件系统,也可以既包含软件又包含硬件子系统。人也可以是系统的一部分,因此某些系统功能可能要由人来承担。
业务规则包括企业方针、政府条例、工业标准、会计准则和计算方法等。业务规划本身并非软件需求,因为它们不属于任何特定软件系统的范围。然而,业务规则常常会限制谁能够执行某些特定用例,或者规定系统为符合相关规则必须实现某些特定功能。有时,功能中特定的质量属性(通过功能实现)也源于业务规则。所以,对某些功能需求进行追溯时,会发现其来源正是一条特定的业务规则。
功能需求记录在软件需求规格说明(SRS)中。SRS完整地描述了软件系统的预期特性。SRS我们一般把它当作文档,其实,SRS还可以是包含需求信息的数据库或电子表格;或者是存储在商业需求管理工具中的信息;而对于小型项目,甚至可能是一叠索引卡片。开发、测试、质量保证、项目管理和其他相关的项目功能都要用到 SRS。
除了功能需求外,SRS中还包含非功能需求,包括性能指标和对质量属性的描述。
质量属性(quality attribute)对产品的功能描述作了补充,它从不同方面描述了产品的各种特性。这些特性包括可用性、可移植性、完整性、效率和健壮性,它们对用户或开发人员都很重要。其他的非功能需求包括系统与外部世界的外部界面,以及对设计与实现的约束。
约束(constraint)限制了开发人员设计和构建系统时的选择范围。
产品特性。所谓特性(feature),是指一组逻辑上相关的功能需求,它们为用户提供某项功能,使业务目标得以满足。对商业软件而言,特性则是一组能被客户识别,并帮助他决定是否购买的需求,也就是产品说明书中用着重号标明的部分。客户希望得到的产品特性和用户的任务相关的需求不完全是一回事。一项特性可以包括多个用例,每个用例又要求实现多项功能需求,以便用户能够执行某项任务。
还有一项称为可用性(usability)的质量属性,它规定了业务需求中“有效”(efficiently)一词的含义。
管理人员或市场营销人员负责定义软件的业务需求,以提高公司的运营效率(对信息系统而言)或产品的市场竞争力(对商业软件而言)。所有的用户需求都必须符合业务需求。需求分析员从用户需求中推导出产品应具备哪些对用户有帮助的功能。开发人员则根据功能需求和非功能需求设计解决方案,在约束条件的限制范围内实现必需的功能,并达到规定的质量和性能指标。
当一项新的特性、用例或功能需求被提出时,需求分析员必须思考一个问题:“它在范围内吗?”。如果答案是肯定的,则该需求属于需求规格说明,反之则不属于。但答案也许是“不在,但应该在”,这时必须由业务需求的负责人或投资管理人来决定:是否扩大项目范围以容纳新的需求。这是一个可能影响项目进度和预算的商业决策。
不属于需求的内容
需求规格说明中不包括(除已知约束外的)设计和实现的细节、项目的计划信息,以及测试信息(Leffingwell 和 Widrig 2000)。把这些内容与需求分开,就可以把需求活动的注意力集中到了解开发小组需要开发的产品特性上。项目中通常还包括其他类型的需求,如开发环境需求,进度或预算限制,帮助新用户跟上进度的培训需求,或者发布产品使其转入支持环境的需求。这些都属于项目需求而不是产品需求,因此不属于软件需求的讨论范围。
分享到:
相关推荐
软件需求包括3个不同的层次 - 业务需求、用户需求和功能需求
一软件需求包括3个不同的层次――业务需求、用户需求和功能需求。业务需求(Businessrequirement)表示组织或客户高层次的目标。业务需求通常来自项目投资人、购买产品的客户、实际用户的管理者、市场营销部门或产品...
软件需求分析是软件开发生命周期中不可或缺的一部分,它对于确保软件产品的质量和用户满意度至关重要。通过遵循上述策略,可以有效地减少项目风险,提高开发效率,最终交付符合用户期望的高质量软件产品。
首先,需求分为多个层次和类别,其中包括业务需求、功能需求、用户需求、用例和场景、特性等。业务需求表达了组织目标和条件,通常由高层管理制定,是项目存在的根本原因。功能需求则描述了软件应提供的具体功能,...
6.1 通过业务需求确定项目视图 45 6.2 项目视图和范围的文档 46 6.3 关联图 50 6.4 把注意力始终集中在项目的范围上 51 第7章 寻找客户的需求 52 7.1 需求的来源 52 7.2 用户类 53 7.3 寻找用户代表 54 7.4 产品的...
业务需求关注组织或客户的高层次目标,用户需求描述用户期望系统完成的任务,功能需求规定软件应实现的具体功能,而非功能性需求则涵盖性能、界面、约束等其他方面。 需求工程包含需求开发和需求管理两个阶段。需求...
1. **业务需求**:反映组织或客户对软件高层次的目标要求。 2. **用户需求**:描述用户使用产品必须完成的任务。 3. **功能需求**:定义软件必须具备的功能,使用户可以完成任务。 4. **非功能性需求**:涉及软件的...
一个成功的软件项目始于明确、详尽的需求分析,它为后续的设计、开发和测试提供了清晰的方向,减少了项目风险,提高了软件的质量和用户满意度。因此,投入时间和精力在需求分析阶段是非常必要的,它对于软件开发的...
软件需求工程范例文档概述 软件需求工程是软件开发过程中的关键...本文档提供了一个软件需求工程的前景与范围文档范例,涵盖了业务需求、高层解决方案和项目前景三个方面,为软件开发团队提供了一个详细的指导手册。
- 业务需求:概述高层次的业务目标和软件项目要解决的问题。 - 用户需求:具体描述不同用户群体的需求,可能包括用户故事或用例。 - 系统需求:详细描述软件系统必须满足的功能和性能标准。 - 数据需求:描述系统...
需求通常分为业务需求、用户需求和系统需求三个层次。业务需求反映组织或用户的高层次目标;用户需求描述用户希望系统能执行的任务;系统需求则是对实现用户需求的具体技术规格的描述。 4. **软件需求的三种类型**...
软件需求可以分为四种类型:业务需求、用户需求、功能需求和非功能需求。业务需求是指客户对系统的高层次的目标要求。用户需求是指用户使用产品必须要完成的任务。功能需求是指开发人员必须实现的软件功能,使得用户...
这一阶段的目标是明确软件应该做什么,即确定功能需求、非功能需求和用户需求。功能需求描述了系统必须提供的具体功能,而非功能需求则关注系统的性能、可靠性、安全性等方面。用户需求则是从最终用户的角度出发,...
功能需求通常被分为三个层次:业务需求、用户需求和系统需求。业务需求是从企业或组织的角度出发,描述了软件系统应该提供的价值和服务;用户需求是从最终用户的视角出发,描述了他们期望从软件系统获得的功能和服务...
- 目的是满足业务需求和用户需求。 4. **非功能需求**: - 包括性能要求、设计约束、质量属性等。 - 对软件的表现形式、操作流程等方面的要求。 #### 六、需求文档的作用 - **指导开发**:为开发团队提供明确...
需求可以分为业务需求、用户需求、功能需求和非功能需求四个层次。业务需求是组织或客户对系统、产品高层次的目标。用户需求是描述了用户要求系统、产品必须能完成的任务。功能需求是描述子系统包含的需求,实现的...