精华内容
下载资源
问答
  • 软件需求分析——非功能性需求

    万次阅读 多人点赞 2019-05-07 18:28:24
    前言:需求分为功能需求和非功能性需求,常常会因为注重功能需求而忽略了非功能性需求,以下是对常见几类非功能性需求的小小总结,以后再慢慢补充。 非功能性需求 1、定义:软件产品为满足用户业务需求而必须具有...

     前言:需求分为功能需求和非功能性需求,常常会因为注重功能需求而忽略了非功能性需求,以下是对常见几类非功能性需求的小小总结,以后再慢慢补充。

    非功能性需求

    1、定义:软件产品为满足用户业务需求而必须具有且除功能需求以外的特性。

    2、影响:影响着产品是否能够持续稳定并高效的提供服务。

    3、常见类别:

    • 性能需求:响应时间、吞吐量、资源利用率;
    • 安全性:保密性、防泄漏、权限控制、防攻击;
    • 可维护性与可扩展性:模块性、可复用性、易分析性;
    • 可靠性:易恢复性、容错性、成熟性;
    • 易用性:易学习性、易操作性、用户错误防御机制、用户界面美观;
    非功能性需求1.0

     

    展开全文
  • 常见非功能性需求的描述案例

    万次阅读 多人点赞 2018-01-31 14:05:34
    但是在工程实践中,往往客户不会提出非功能性需求,需求人员在描述需求时不知道如何描述,在国际的各种标准中,对非功能性需求定义,但是比较抽象。因此我整理如下常见的非功能性需求的描述案例,供需求人员进行...

     非功能性需求是需求的一个重要组成部分,它影响了系统的架构设计,需要开发人员重点关注。但是在工程实践中,往往客户不会提出非功能性需求,需求人员在描述需求时不知道如何描述,在国际的各种标准中,对非功能性需求有定义,但是比较抽象。因此我整理如下常见的非功能性需求的描述案例,供需求人员进行参考。


    1、性能需求描述案例:

    响应时间:

    在95%的情况下,一般时段响应时间不超过1.5秒,高峰时段不超过4秒。

    定位系统从点击到第一个界面显示出来所需要的时间不得超过300毫秒。

    在网络畅通时,拨号连接GPRS网络所需时间不得超过5秒。

    在网络畅通时,电子地图刷新时间不超过10秒。

    在推荐配置环境下:登录响应时间在2秒内,刷新栏目响应时间在2秒内,刷新条目分页列表响应时间2秒内,打开信息条目响应时间1秒内,刷新部门、人员列表响应时间2秒内。

    在非高峰时间根据编号和名称特定条件进行搜索,可以在3秒内得到搜索结果。

    业务量:

    每日最大成交数3000笔业务。

    平均交易并发数为20,最大交易并发数为50。

    估计用户数为1万人,每天登录用户数为3000左右,网络的带宽为100M带宽。

    系统可以同时满足10,000个用户请求,并为25,000个并发用户提供浏览功能。

    系统容量:

    支持3万用户,支持GB级数据。

    数据库表行数不超过100万行,数据库最大容量不超过1000GB,磁盘空间至少需要40G以上。

    精度:

    定位精度误差不超过80米。

    当通过互联网接入系统的时候,期望在编号和名称搜索时最长查询时间<15秒。

    计算的精确性到小数点后7位。

    资源使用率:

    CPU占用率<=50%。

    内存占用率<=50%。


    2、安全需求描述案例:

    严格权限访问控制,用户在经过身份认证后,只能访问其权限范围内的数据,只能进行其权限范围内的操作。

    不同的用户具有不同的身份和权限,需要在用户身份真实可信的前提下,提供可信的授权管理服务,保护数据不被非法/越权访问和篡改,要确保数据的机密性和完整性。

    提供运行日志管理及安全审计功能,可追踪系统的历史使用情况。

    能经受来自互联网的一般性恶意攻击。如病毒(包括木马)攻击、口令猜测攻击、黑客入侵等。

    至少99%的攻击需要在10秒内检测到。


    3、可靠性需求描述案例:

    对输入有提示,数据有检查,防止数据异常。

    系统健壮性强,应该能处理系统运行过程中出现的各种异常情况,如:人为操作错误、输入非法数据、硬件设备失败等,系统应该能正确的处理,恰当的回避。

    因软件系统的失效而造成不能完成业务的概率要小于5‰。

    要求系统7x24小时运行,全年持续运行故障停运时间累计不能超过10小时。

    系统缺陷率每1,000小时最多发生1次故障。

    在1,000,000次交易中,最多出现1次需要重新启动系统的情况。


    4、兼容性需求描述案例:

    系统应支持IOS,Android , windows操作系统;

    系统应支持Oracle, DB2 数据库系统;

    最多只有5%的系统实现需要具体到特定的操作系统。

    替换关系数据库系统的平均时间不超过2小时,并且保证没有数据丢失。


    5、数据保密需求描述案例:

    网络传递数据应经过加密。需要保证数据在采集、传输和处理过程中不被偷窥、窃取、篡改。业务数据需要在存储时进行加密,确保不可破解。


    6、环境需求描述案例:

     

    硬件

    操作系统及其版本

    应用服务器软件及其版本

    应用软件及其部件

    服务器

    IBM RS6000

    AIX 4.3.3

    IBM HTTP Server、Apache、MS IIS5.0等;

    DB2(7.2 EE以上版本)

    WAS(4.0以上版本)、Web Logic(7.0以上版本)等;

    Oracle EE(9i EE以上版本)

    浏览客户端

    PII 800/64M/2G

    Win98及以上

    IE 5.0以上或Netscape同等版本以上

     

    特殊客户端

    PII 2G/64M/2G

    建议配置Win2000及以上

    IE 5.0以上或Netscape同等版本以上

    MicroStrategy7i客户端


    7、易用性需求描述案例:

    在引入该产品的3个月内,60%的用户应该可以在45秒内用它来完成转账的任务,失败率控制在万分之一以内。

    60%的用户在第一次看见该产品的5秒内,就会意识到这是**银行的网银。

    80%的用户在接受一个2小时的系统介绍培训后,可以在5分钟之内成功预订房间。


    8、可用性需求描述案例:

    有些农村地区网络质量差,带宽小。在网络环境差的条件下保证系统的可用性等。

    在95%的故障中,系统最多需要20秒重启。

    提供数据备份和恢复功能,使得在由于系统的错误或其他原因引起系统的数据丢失或系统的数据被破坏时,能够及时恢复和还原数据(由硬件及第三方软件提供此功能)。


    9 、可测试性需求描述案例:

    一个模块的最大圈复杂度不能超过15。

    交付的系统必须通过单元测试,并且是100%覆盖。

    开发活动必须使用回归测试,并允许在12小时内重新进行完整的测试。


    10、可维护性需求描述案例:

    从接到修改请求后,对于普通修改应在1~2天内完成;对于评估后为重大需求或设计修改应在1周内完成。

    90%的BUG修改时间不超过1个工作日,其他不超过2个工作日。

    代码的圈复杂度必须在10以内。

    任何对象的任何方法都不允许超过200行代码。

    安装新版本必须保持所有的数据库内容和所有个人设置不变。

    产品必须提供可跟踪任何数据库字段的工具。





    展开全文
  • 功能性需求和非功能性需求

    万次阅读 2016-10-10 12:07:35
    需求定义:需求(requirement)就是系统(更广义的说法是项目)必须提供的能力和必须遵从的条件。 需求分类: (1) 在一般使用中,需求... 非功能性需求是指软件产品为满足用户业务需求而必须具有且除功能需求以外的

     

    需求定义:需求(requirement)就是系统(更广义的说法是项目)必须提供的能力和必须遵从的条件。

    需求分类:

    (1) 在一般使用中,需求按照功能性(行为的)和非功能性(其它所有的行为)来分类。

      功能性需求是说有具体的完成内容的需求。

      例如:比如客户登录、邮箱网站的收发收发邮件、论坛网站的发帖留言等。

      非功能性需求是指软件产品为满足用户业务需求而必须具有且除功能需求以外的特性,包括系统的性能、可靠性、可维护性、可扩充性和对技术和对业务的适应性等。

      例如:性能要求:要求系统能满足100个人同时使用,页面反应时间不能超过6秒;

         可靠性: 系统能7×24小时连续运行,年非计划宕机时间不能高于8小时。要求能快速的部署,特别是在系统出现故障时,能够快速的切换到备用机。  

    (2) 在统一过程(UP)中,需求按照“FURPS+”模型进行分类。

      • 功能性(Functional):特性、功能、安全性;
      • 可用性(Usability):人性化因素、帮助、文档;
      • 可靠性(Reliability):故障频率、可恢复性、可预测性;
      • 性能(Performance):响应时间、吞吐量、准确性、有效性、资源利用率;
      • 可支持性(Supportability):适应性、可维护性、国际化、可配置性。

     

    “FURPS+”中的“+”是指一些辅助性的和次要的因素,比如:

     

      • 实现(Implementation):资源限制、语言和工具、硬件等;
      • 接口(Interface);强加于外部系统接口之上的约束;
      • 操作(Operation):对其操作设置的系统管理;
      • 包装(Packaging)例如物理的包装盒;
      • 授权(Legal):许可证或其他方式。

    使用“FURPS+”分类方案(或其他分类方案)作为需求范围的检查列表是有效的,可以避免遗漏系统某些重要方面。

    其中某些需求可以统称为质量属性(quality attribute)、质量需求(quality requirement)或系统的“某属性”。这些需求包括:可用性、可靠性、性能和可支持性

    展开全文
  • 功能性需求,一般是我们显性易见的,就是一般实现了什么功能,提供了什么服务,大体我认为问题中提到,或者我们日常所说的:“看起来复杂不复杂”,基本上都会是针对功能性需求而言的。如果拿google的搜索服务举例来...

    功能性需求,一般是我们显性易见的,就是一般实现了什么功能,提供了什么服务,大体我认为问题中提到,或者我们日常所说的:“看起来复杂不复杂”,基本上都会是针对功能性需求而言的。如果拿google的搜索服务举例来说,那就是:
    提供一个输入框, 提供一个按钮,用户在输入框里输入关键字,按了按钮以后,可以搜索出相应结果。
    功能性需求,会因为不同的网站,不同的软件,不同的业务和使用目的,大相径庭,五花八门,不一而论。

    非功能性需求,以下应用维基百科的定义(虽然有些晦涩和绕口,但是我认为是比较精到和准确的)
    在系统工程及需求工程中,非功能性需求(Non-functional requirement)是指依一些条件判断系统运作情形或其特性,而不是针对系统特定行为的需求。和非功能性需求相对的是功能需求,后者会定义系统特定的行为或功能。非功能性需求也可以视为为了满足客户业务需求而需要符合,但又不在功能需求以外的特性。

    一般会在系统设计(英语:Systems design)中详细列出实现功能需求的计划,而会在系统架构(英语:Systems architecture)中详细列出实现非功能性需求的计划。一般而言,功能需求会定义系统的行为,而非功能性需求会定义系统的特性。

    非功能性需求一般会称为系统的“品质”,有时也会称为“限制”、“品质属性”、“品质目标”、“品质属性”、“品质服务需求”或“非行为性的需求”。有许多非功能性需求的英文都是以“ilitiy”结尾,例如稳定性(stability)及可移植性(portability),因此非功能性需求有时也称为“ilities”。
    非功能性需求可以分为以下的二类:
    运行品质(Execution qualities),可以在系统运作时观察到的品质,例如保安性及易用性等。
    发展品质(Evolution qualities),和软件系统结构及开发过程有关的品质,例如软件可测试性(英语:software testability)、可维护性、可扩展性、可伸缩性(scalability)等

    非功能性需求一般是隐性的,容易被菜鸟程序员,设计师们忽略。非功能性需求不同于功能性需求,它在不同的网站,软件上,拥有一定的共性,就例如@子柳 提到的海量文件存储的问题上,淘宝,腾讯,google都遇到了一样的问题,研发了类似的解决方案(TFS,TFS和GFS)。
    非功能性需求的分类方法较多,并没有业界通行和一致的标准,但是大多数殊途同归,名称/叫法以及分类方法上可能略有差异,但是其含义和指向一般是趋向一致的,我简单介绍一下我一般较多采用的分类:
    性能/容量:性能和容量比较利于理解,包括像需要支持的用户的数量啊(尤其是峰值的并发用户数量),用户能够接受的响应时间啊,数据规模啊(例如@子柳 提到的百万级的惊人数据规模,上亿的文件存储啦等等。这里小小纠正一下@子柳 的一个观点,百万级的数据支撑,还是有一些商业数据库产品可以支持的,TPC-C/TPC-D以及新一代的业界性能测试标准中还有千万级数据规模的测试项目,也有数据库厂商报名参加的,当然,对于淘宝这样的业务模式和实际情况/要求来说,性价比和实用性可能确实就比较低了)
    可靠性/可用性/可复原性: 可靠性之与在规定的一段时间和条件下软件维持其功能服务以及性能水平的能力有关的一组属性(可用性是另外一种说法)。例如说我们要求系统7x24小时运行,全年持续运行故障停运时间累计不能超过10小时等等,都属于这方面的要求。 可复原性与在是发生错误和故障后重建其性能水平并恢复直接受影响数据的能力。例如支付宝需要保证如果在交易提交失败以后,需要保证回滚,不能这头银行的钱没有付成功,那头却显示付款成功或者反之这头银行扣款了,那头在改变交易状态的时候缺因为冗塞或者其他原因导致交易还是未付款状态。
    可维护性/可管理性:包括系统在无人工干预条件下的稳定性,自排错能力,可测试性都属于这个范畴。故障的可排查能力,系统的修正,升级,备份,恢复机制以及方便与否,都属于这个范畴。这通常会极大决定系统的运行维护成本及维护难度。
    安全:包括传输加密,存储加密,可破解性,以及各种未被授权的用户行为如何防范和控制,都是安全范畴,这里的安全不单针对外部普通用户,也针对内部不同级别的权限用户的的控制。小到如何防范和处理用户在输入框里输入特殊字符来获得设计者未曾预料的结果,大到防范外部黑客和内部内鬼。安全很多时候不单依赖技术实现,同时非常依赖相应的制度和审计。
    易用性:好吧,这个话题现在最热了,这可能是非功能性需求中现在唯一被高亮出来,被各种人等都关注,都拿出来说事的一个领域了。易用性设计现在已经上升到了一个新的高度,叫做人机体验,UE设计,虽然现在UE到底是划分在功能性需求还是非功能性需求上,尚有一些争议,但是主流观点(包括我自己)都认为,这是非功能性需求的一个典型部分。
    数据一致性:包括数据的编码和语言,冗余数据的一致性要求(含时间要求)等等。例如为了性能的考虑,数据库整体设计未采用巴斯克范式,而采用了第二或者第三范式的要求来设计,一些信息(例如用户注册信息),可能同时存在于系统的多个地方(例如多个表中),当发生注册信息变更时,如何保证多处地方记录的信息都被修改,以及这个全部修改的时限要求是多少等等都是这个范畴的内容。
    系统/环境 条件及限制:现有的软硬件条件,平台的条件,网络的条件都属于这个范畴。典型的例如很多移动互联网产品,必须要考虑移动网络的带宽条件,终端运算性能和能力,以及其移动网络稳定性等等。
    事实上,从我的经验来看,一般来说,很多软件项目及产品,其在非功能性需求上的成本,难度和工作量,是要超过功能性需求的。在特定的软件领域,例如网站(尤其是淘宝,facebook这样海量用户规模的网站),金融(银行证券),电信领域,其非功能性需求实现的重要性,工作量,技术难度要远远远远大于功能性需求的实现。

    而且,功能性的需求的实现,其实在大多数情况下,更依赖于业务的高手(或者好的产品经理)而不是技术的高手,而非功能性需求的实现,恰恰是挑战技术高手的重要课题。

    一个最典型的极限非功能性需求的例子就是电信的计费系统,其实基本功能很简单,获取通话时长,按照费率公式算个钱出来,但是放到海量的用户,实时的计费要求中来看,这是一个极具技术挑战的活。

    还有一个经典的案例是,中国某地方性银行(注意仅仅是地方性的银行),想要引入一个柜面服务的系统,找到了新家坡的一个厂商,他们在东南亚银行业有很多案例,而且功能设计非常完善合理和先进。但是这家地方性银行引入这个系统以后,2周之内发行了几十万张信用卡,这系统就顶不住崩溃了。这就是典型的功能性需求实现完美,但是非功能性缺陷的例子。

    从我的经验来看,一般来说,非功能性需求中,性能/容量,以及安全的要求,一般是技术挑战最多,内涵最丰富,成本最高,最值得关注的领域,当然,现在易用性(UE)也是一个极度收到重视的领域。

    有志于架构师取向的IT技术人员,非功需求实现的领域,是一个必须关注,必须熟悉的领域。

    而本问题最大的根源在于,只看到了网站功能性需求的部分,而没有注意到非功的部分,对于非专业的IT技术人员来说,这很正常,但是对于IT技术人员来说,是需要认真关注的必修课。


    作者:天光
    链接:https://www.zhihu.com/question/20303645/answer/15588211
    来源:知乎

    展开全文
  • 什么是功能性需求和非功能性需求

    万次阅读 2011-11-02 17:04:08
    需求定义: 需求(requirement)就是系统(更广义的说法是项目)必须提供的能力和必须遵从的条件。 需求分类: (1) 在一般使用中,需求... 非功能性需求是指软件产品为满足用户业务需求而必须具有且除功能需求以
  • 架构设计之非功能性需求

    千次阅读 2019-01-02 13:10:20
    功能性需求什么叫非功能性需求功能性需求为何与架构相关值得注意 什么叫非功能性需求功能性需求包括性能、可修改性、可用性、易用性、复用性、环境要求等,在最初的需求方案分析阶段很容易被忽略,而这些...
  • 软件功能性需求是描述一个系统的行为,与系统的功能性相关. The non-functional requirement  elaborates a performance characteristic  of the system. 软件非功能性需求是详细描述了一个系统的...
  • 常见软件非功能性需求描述案例

    千次阅读 2019-11-08 10:37:33
    但是在工程实践中,往往客户不会提出非功能性需求,需求人员在描述需求时不知道如何描述,在国际的各种标准中,对非功能性需求定义,但是比较抽象。因此我整理如下常见的非功能性需求的描述案例,供需求人员进行...
  • 学习软件设计的非功能性需求

    千次阅读 2009-12-13 10:34:00
    所以说,功能性需求和非功能性需求是相辅相成密不可分的。非功能性需求经常被忽略,因为它们不易被发现,发现后不易表达、实现以及测试。其实我们很多时候都将非功能需求不自觉的融入到了功能需求中。软件产品的
  • 实际上,显性和隐性,功能性和非功能性都是需求的属性类型,功能性需求也可以有显性和隐性之分,非功能性需求也一样有。 至于如何区划分,实际上要看客户是否能明确提出来,而且是否属于功能实现的一部分,有些非...
  • 功能需求的6种类型

    千次阅读 2010-05-27 09:43:00
    如果事先缺乏很好的非功能性需求定义,结果往往是使产品在非功能性需求面前捉襟见肘,甚至淹没功能性需求给用户带来的价值。所谓非功能性需求,是指软件产品为满足用户业务需求而必须具有且除功能需求以外的特性。...
  • 为什么非功能性需求很重要?

    千次阅读 2006-09-14 09:13:00
    在每种情况下,人们只讨论一些技术、解决方案和选项的某些方面,而忽视了一个至关重要的问题:非功能性需求。诚然,功能性是非常重要的。毕竟,如果您不能展示您构建的系统实现了您想要的功能,那么谁会有兴趣呢?...
  • 软件需求定义

    千次阅读 2008-03-13 08:49:00
    对同一项需求,不同的人会有不同的描述,称其为用户需求、软件需求功能需求、系统需求、技术需求、业务需求或产品需求。客户对需求定义,在开发人员看来可能只是高级别的产品概念;而开发人员的需求概念对用户来...
  •  功能性需求是说有具体的完成内容的需求。 例如:比如客户登录、邮箱网站的收发收发邮件、论坛网站的发帖留言等。 非功能性需求是指软件产品为满足用户业务需求而必须具有且除功能需求以外的特性,包括系统的性能...
  • 客户需求、市场需求、产品需求、设计需求、业务需求、内部需求、外部需求、特性、规格、功能需求 --- 需求工程的基本术语说明 需求分析和管理对产品开发成败至关重要,这一点大家都非常清楚,正因如此,相关的管理...
  • 功能安全学习笔记002-功能安全的定义

    万次阅读 多人点赞 2018-04-07 21:52:59
    1,功能安全的定义1.1 本质安全与功能安全为了了解功能安全的概念,先得熟悉下 和“本质安全”和“功能安全”的概念。假如以铁道的路口为例,比较一下基于两种安全概念的避免路口事故的方法。这里避免路口事故就是...
  • 业务需求、用户需求功能需求

    万次阅读 2017-03-06 10:44:42
    一、我们首先看需求的三个层次软件需求包括3个不同的层次――业务需求、用户需求功能需求。 业务需求 (Business requirement)表示组织或客户高层次的目标。业务需求通常来自项目投资人、购买产品的客户、实际...
  • 需求分析与定义(软件工程)

    千次阅读 2012-02-24 11:40:14
    需求分析与定义 1.  软件需求: 软件需求分为三大部分: ...I....功能需求:指系统需要完成那些事情,即向用户提供那些功能。...非功能需求:指产品所具备的品质和属性,比如可靠、扩展、响应时间、
  • 如何定义需求的优先级也是挺能看出产品经理的能力水平的,在上一节已经详细阐述了评估哪些需求该做,哪些需求不该做,对于已经决定要做的需求,这样的需求数量很多,是现在做,还是以后做,不可能在同一时间内全部...
  • 今天部门内部讨论了在提交缺陷时在何种情况下应该注明是【需求不一致】。  提到这个问题,个人认为应该先明确注明【需求不一致】的目的和作用。...用例无法较完整覆盖主体功能点。  2、产品经理和项目
  • 上文中对功能和产品进行了区分。从本文开始,正式开始介绍组成产品的Building Blocks。 本文着重介绍System Architecture Design and General Requirement. 介绍系统架构之前,先简单介绍下ADAS/AD ECU常见的硬件...
  • 文章目录一、可靠定义:二、可靠测试点:1、异常值输入:2、故障植入法:3、稳定测试:4、压力测试:5、恢复测试:6、性能测试:7、易用测试:三、测试用例设计方法SP1:SP2:SP3:SP4: 一、可靠定义:...
  • 软件需求包括3个不同的层次――业务需求、用户需求功能需求。   除此之外,每个系统还有各种非功能需求。   业务需求(Business requirement)表示组织或客户高层次的目标。业务需求通常来自项目投资人、...
  • 如何分析APP功能需求、结构

    千次阅读 2015-10-10 23:24:07
    在完成需求收集(Collect Requirements)后,需要对项目和产品的详细范围进行描述,清晰完整的项目/产品范围说明书有利于制定出具有良好执行的WBS(Work Breakdown Structure),但其更为重要的意义在于科学的构建...
  • IBM 对架构师的职业素质的定义

    千次阅读 2015-11-04 09:06:01
    同时,架构师还需要把业务化的需求转化为技术化的功能性需求及非功能性需求。架构师需要参与软件开发各个阶段,也作为审核人员对详细设计和开发计划进行审查。架构师的技能特点是,具有更高视角,对技术的发展方向...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 583,052
精华内容 233,220
热门标签
关键字:

功能性需求定义