百科狗-知识改变命运!
--

和功能性需求相比为什么更难确定哪些系统构件实现了非功能性需求

桃子1年前 (2023-12-05)阅读数 9#综合百科
文章标签需求功能

非功能需求不同于功能需求。

听起来像是一句废话。

但是你能说出它们有哪些不同吗?如果不能,不妨看看下文。

1.非功能需求是跨界需求

一个非功能需求往往与多个功能相关,它是跨界的。正是由于非功能需求所具有的这种横切特性使得它们在分析和实现上的难度都要远高于普通的功能需求。

2.非功能需求更容易让用户不满

当软件交付给用户之后,相比某个功能暂时未能实现,某些非功能需求没有实现会更容易让用户不满。比如运行速度缓慢。没有满足用户对非功能需求的要求更容易导致项目推迟交付甚至被取消。

3.非功能需求对软件架构影响更大

跨界的非功能需求实现起来非常复杂,所以它们通常也会对软件架构有更大的影响。比如,在架构设计时,就不能让一个一个高性能的需求(高运行或处理速率)横跨软件架构中的多个层。由于在软件开发的后期对软件架构修改会占用大量时间,影响项目交付,所以在项

目一开始就要做好非功能需求分析,判断对软件架构的影响程度。

4.非功能需求之间存在相互排斥的可能性更大

非功能需求之间经常互相排斥。比如安全性需求和易用性需求;健壮性需求和性能需求等等。这就是GJB5000A需求开发过程域的专用实践“分析需求以达到平衡”应该解决的问题。

5.非功能需求的描述更需要细节

相比功能需求,非功能需求更需要细节的描述。功能需求描述得不具体的时候,需求分析人员还是能够知道怎么去

实现它;而像“响应时间要尽量快”这样的性能需求描述,需求分析人员是无法判断出它对软件架构有什么影响的,也不知道实现之后的软件是不是满足了需求。

最后,其实本文想说的不是非功能需求和功能需求的区别,而是想让开发人员更加重视非功能需求的分析、设计和实现,能够在项目早期就考虑非功能需求对软件架构、项目进度、测试策略和项目成本的影响。

和功能性需求相比为什么更难确定哪些系统构件实现了非功能性需求

这正是:

需求重视非功能,因其影响超功能

架构进度和成本,用户不满它更重

我们的软件产品或者项目,其需求都有三个层级和三个方面。一、我们首先看需求的三个层次软件需求包括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)限制了开发人员设计和构建系统时的选择范围。约束,在产品的架构设计中,是需要被首先考虑的问题。如果说产品的功能代表了产品的能力,那么产品的质量属性代表了产品的品质,产品的约束代表了产品必须去满足的或者适应的条件!用人说“用户体验”是产品的 灵魂,对于个人级的软件这么说或许很恰当,当对于企业级甚至是行业级的产品,其灵魂有两个:一个是产品带个用户的价值,另一个是产品的品质,简单的说,就 是价值和品质。但其成为一个产品的前提应该是满足约束,否则就不应该设计、开发、进入市场而成为一个垃圾。用户需求 功能需求 区别简单的就是: 用户需求。用户需要在应用系统中实现什么东西,为实现这个目标,需要用户提供的全部的详细的业务说明,业务流程,表格样式等。 功能需求。将用户需求归类分解为计算机可以实现的子系统和功能模块,用设计语言描述和解释用户的需求,以达到可以指导程序设计的目的。

鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com

免责声明:我们致力于保护作者版权,注重分享,当前被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!邮箱:344225443@qq.com)

图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,本着为中国教育事业出一份力,发布内容不收取任何费用也不接任何广告!)