什么是软件需求?什么是功能需求?

我们的软件产品或者项目,其需求都有三个层级和三个方面。

一、我们首先看需求的三个层次

软件需求包括3个不同的层次――业务需求、用户需求和功能需求。

业务需求 (Business requirement)表示组织或客户高层次的目标。业务需求通常来自项目投资人、购买产品的客户、实际用户的管理者、市场营销部门或产品策划部门。业 务需求描述了组织为什么要开发一个系统,即组织希望达到的目标。使用前景和范围(vision and scope)文档来记录业务需求,这份文档有时也被称作项目轮廓图或市场需求(project charter 或 market requirement)文档。

用户需求 (user requirement)描述的是用户的目标,或用户要求系统必须能完成的任务。用例、场景描述和事件――响应表都是表达用户需求的有效途径。也就是说用户需求描述了用户能使用系统来做些什么。

功能需求 (functional requirement)规定开发人员必须在产品中实现的软件功能,用户利用这些功能来完成任务,满足业务需求。功能需求有时也被称作行为需求 (behavīoral requirement),因为习惯上总是用“应该”对其进行描述:“系统应该发送电子邮件来通知用户已接受其预定”。功能需求描述是开发人员需要实现什 么。注意:用户需求不总是被转变成功能需求。产品特性,所谓特性(feature),是指一组逻辑上相关的功能需求,它们为用户提供某项功能,使业务目标
得以满足。对商业软件而言,特性则是一组能被客户识别,并帮助他决定是否购买的需求,也就是产品说明书中用着重号标明的部分。客户希望得到的产品特性和用 户的任务相关的需求不完全是一回事。一项特性可以包括多个用例,每个用例又要求实现多项功能需求,以便用户能够执行某项任务。

系统需求 (system requirement)用于描述包含有多个子系统的产品(即系统)的顶级需求。系统可以只包含软件系统,也可以既包含软件又包含硬件子系统。人也可以是系统的一部分,因此某些系统功能可能要由人来承担。

业务规则 包 括企业方针、政府条例、工业标准、会计准则和计算方法等。业务规划本身并非软件需求,因为它们不属于任何特定软件系统的范围。然而,业务规则常常会限制谁 能够执行某些特定用例,或者规定系统为符合相关规则必须实现某些特定功能。有时,功能中特定的质量属性(通过功能实现)也源于业务规则。所以,对某些功能 需求进行追溯时,会发现其来源正是一条特定的业务规则。

功能需求记录在软件需求规格说明(SRS)中。SRS完整地描述了软件系统的预期特性。SRS我们一般把它当作文档,其实,SRS还可以是包含需求信息的数据库 或电子表格;或者是存储在商业需求管理工具中的信息;而对于小型项目,甚至可能是一叠索引卡片。开发、测试 、质量保证、项目管理和其他 相关的项目功能都要用到 SRS。

除此之外,对于需求层次,我们还有其它的分法:

组织级需求->业务需求->用户需求->功能需求(有时也叫行为需求)。

       组织级需求: 一 般代表着组织的愿景和目标。对于大的公司,一般是通过资深的咨询顾问和咨询公司得出的,呈现的方式是咨询报告。比如在ITSM或者企业信息化这方面。典型 的组织级的需求是:降低成本、减少库存成本、提升IT服务部门在企业中的价值、通过ISO20000、提高IT服务的效率、提高员工的满意度等。

       业务需求: 是要完组织的使命,达成组织的愿景的各个业务流程和业务单元具有的需求。业务需求服从于组织需求。

       用户需求: 用户级的需求,是在业务级的需求下,各个岗位协作完成业务而具有的需求。我们在软件需求规格说明书中表述的需求其实主要是这一部分需求。

       功能需求: 同样,它代表着产品或者软件需求具备的能力。 一般是管理人员或者产品的市场部门人员负责定义软件的业务需求,以提高公司的运营效率(对信息系统而言)或产品的市场竞争力(对商业软件而言)。所有的用 户需求都必须符合业务需求。需求分析员从用户需求中推导出产品应具备哪些对用户有帮助的功能。开发人员则根据功能需求和非功能需求设计解决方案,在约束条 件的限制范围内实现必需的功能,并达到规定的质量和性能指标。当一项新的特性、用例或功能需求被提出时,需求分析员必须思考一个问题:“它在范围内
吗?”。如果答案是肯定的,则该需求属于需求规格说明,反之则不属于。但答案也许是“不在,但应该在”,这时必须由业务需求的负责人或投资管理人来决定: 是否扩大项目范围以容纳新的需求。这是一个可能影响项目进度和预算的商业决策。

二、需求的三个方面

除了功能需求外,SRS中还包含非功能需求,包括性能指标和对质量属性的描述。

质量属性 (quality attribute)对产品的功能描述作了补充,它从不同方面描述了产品的各种特性。这些特性包括可用性、可移植性、完整性、效率和健壮性,它们对用户或 开发人员都很重要。其他的非功能需求包括系统与外部世界的外部界面,以及对设计与实现的约束。还有一项称为可用性(usability)的质量属性,它规 定了业务需求中“有效”(efficiently)一词的含义。

约束 (constraint)限制了开发人员设计和构建系统时的选择范围。约束,在产品的架构设计中,是需要被首先考虑的问题。

如果说产品的功能代表了产品的能力,那么产品的质量属性代表了产品的品质,产品的约束代表了产品必须去满足的或者适应的条件!用人说“用户体验”是产品的 灵魂,对于个人级的软件这么说或许很恰当,当对于企业级甚至是行业级的产品,其灵魂有两个:一个是产品带个用户的价值,另一个是产品的品质,简单的说,就 是价值和品质。但其成为一个产品的前提应该是满足约束,否则就不应该设计、开发、进入市场而成为一个垃圾。

用户需求 功能需求 区别

       简单的就是:

用户需求。用户需要在应用系统中实现什么东西,为实现这个目标,需要用户提供的全部的详细的业务说明,业务流程,表格样式等。

功能需求。将用户需求归类分解为计算机可以实现的子系统和功能模块,用设计语言描述和解释用户的需求,以达到可以指导程序设计的目的。

时间: 2024-10-13 04:46:53

什么是软件需求?什么是功能需求?的相关文章

软件需求1

1.软件需求分为三个层次:业务需求.用户需求和功能需求. 其中,业务需求处于软件需求的最高层次,反应了客户对软件系统最高层次的要求.业务需求从项目的投资人.购买商品的用户.实际用户的管理员等人那里收集,描述了组织为什么要开发这个软件系统. 用户需求处于软件需求的中间层次,描述了用户使用软件需要完成的任务. 功能需求处于软件需求的最低层次,是根据用户需求来考虑.功能需求是软件开发人员根据用户需求写出的软件产品必须实现的软件功能,用户通过这些功能来完成任务. 2.软件需求有三类:功能需求.非功能需求

软件需求模式 读书笔记三

通过这一个月的阅读,我终于读完了<软件需求模模式>这本书,前两个读书笔记已经把这本书的几种模式介绍了,之前有基础需求模式,信息需求模式,数据实体需求模式,用户功能需求模式.这次介绍的是性能需求模式,适应性需求模式,访问控制需求模式和商业需求模式. 性能需求模式包括五种的性能的需求模式:影响时间(系统需要多少时间完成一个请求).动态容量(系统能够同时处理多少件事).吞吐量(系统处理时间的速率).静态容量(系统可以保存多少某种类型烦的实体)和可用性(什么时候系统对用户是可用的,以及多么可靠). 当

让你提前认识软件开发(50):软件需求

第3部分 软件研发工作总结 软件需求 软件工程师的工作职责是什么?一句话,就是完成软件需求.大家每天都接触到的软件,都是从软件需求一步步进化而来的.那么,软件需求是什么?如何完成需求?在完成需求的过程中我们要注意哪些问题呢?本文将为你解答这些问题. 1. 什么是软件需求? 通俗地讲,软件需求是指要求软件开发工程师完成的软件的功能.例如,如果要求一个软件具备文件处理的能力,要求一个WEB页面具备显示客户信息的能力,要求一款手机具备指纹识别的能力,等等,这些要求都是软件需求. 用较为专业一点的术语来

软件需求模式阅读笔记04

今天开始阅读<软件需求模式>的第7.8章,其中第7章主要讲的是数据实体需求模式,主要是数据处理的一些需求模式,而第8章讲的是用户功能需求模式,主要是介绍了如何应对用户的一些需求. 第7章数据实体需求模式,系统的开发者常常是以轻视,随意的态度对待信息,没有规则定义什么时候数据可以被删除,对丢失数据很松懈--而本章就是通过引入一种方案把所有的实体分为几个固定种类,增加秩序性和一致性. 活实体需求模式,它用来定义一种实体,它的信息需要保存,并且具有预期寿命.但是不能将它应用于系统配置的实体:而应该使

项目中的软件需求说明书的访谈部分

博主的项目小组上周已进入正途,上周在小组讨论下,作出了软件需求说明书功能描述的大概模块,并且确定了项目的目标和范围——针对大学生市场. 根据目标需求,我们设计出了调查问卷,便于了解用户需求以及市场需求. 调查问卷的链接如下:http://www.sojump.com/jq/7476545.aspx 下一步,我们将根据调查结果,进一步完善功能需求,再者完成我们的需求说明书.

课后作业--1:《软件需求与分析》博文读后感

阅读链接地址:http://blog.csdn.net/yqmfly/article/details/7679781 通过阅读博客相关知识,使得我们懂得软件需求分析的质量对软件开发的影响是深远的.全局性的,高质量需求对软件开发往往起到事半功倍的效果,所谓“磨刀不误砍柴功”.软件需求分析用软件工程的定义来讲,它就是深入描述软件的功能和性能,确定软件设计的限制和软件同其它系统元素的接口细节,定义软件的其它有效性需求. 研发人员要将需求按重要程度进行分级,是必不可少的步骤.需求分类好了,自然就可以在以

《软件需求》读书笔记3

<软件需求>读书笔记之三 需求来源.需求收集方法 软件需求可以来自方方面面,这取决于所开发产品的性质和开发环境.需从不同用户代表和来源收集需求,这说明了需求工程是以相互交流为核心的性质.下面是几个软件需求的典型来源. 1). 访问并与有潜力的用户探讨为找出新软件产品的用户需求,最直截了当的方法是询问他们. 2). 把对目前的或竞争产品的描述写成文档 文档可以描述一种所必须遵循的标准或产品所必须遵循的政府或工业规则. 3). 系统需求规格说明 一个包含软.硬件的产品需要一个高档次的系统需求规格说

《软件需求》读书笔记2

<软件需求>读书笔记之二 三.需求管理方法以及常用需求管理工具管理需求. 需求层次 1. 软件需求层次: 层次 内容描述 呈现方式 业务需求 组织机构或客户对系统.产品高层次的目标要求. 项目视图与范围文档中予以说明 用户需求 用户使用产品必须要完成的任务 Use Case 功能需求 必须实现的软件功能 需求规格说明文档中功能需求说明 非功能需求 系统展现给用户的行为和执行的操作等,包括产品必须遵从的标准.规范和合约:外部界面的具体细节:性能要求:设计或实现的约束条件及质量属性. 需求规格说明

软件需求三个层次

软件需求分为三个层次:业务需求.用户需求和功能需求. 1.业务需求(Why):反映了组织机构或客户对系统.产品的高层次的目标追求,定义了项目的远景和范围,即确定了项目的发展方向.功能范围.目标客户及价值来源.会形成一份"远景与范围文档". 2.用户需求(What):描述用户用该产品可以完成哪些任务.一般使用自然语言和直观图形相结合的方式来描述,但是要注意避免描述得过于模糊,也不必考虑具体实现.会形成一份"用例文档". 3.功能需求(How):指出开发人员应该实现哪些