精华内容
下载资源
问答
  • 功能性需求非功能性需求

    万次阅读 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的搜索服务举例来说,那就是:
    提供一个输入框, 提供一个按钮,用户在输入框里输入关键字,按了按钮以后,可以搜索出相应结果。
    功能性需求,会因为不同的网站,不同的软件,不同的业务和使用目的,大相径庭,五花八门,不一而论。

    非功能性需求,以下应用维基百科的定义(虽然有些晦涩和绕口,但是我认为是比较精到和准确的)
    在系统工程及需求工程中,非功能性需求(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) 在一般使用中,需求... 非功能性需求是指软件产品为满足用户业务需求而必须具有且除功能需求以

    需求定义:

    需求(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)或系统的“某属性”。这些需求包括:可用性、可靠性、性能和可支持性。

    展开全文
  • 非功能性需求

    千次阅读 2011-11-02 16:18:33
    比如可以利用非功能性需求来指定响应时间,或计算时达到的精确度、产品必须具有的某种特定外观、能被无法阅读的人士使用、遵守使用这类业务的法律。 这些属性的存在并不是因为它们是产品的基本活动,而是因为客户...

    一、简介
    非功能需求是产品必须具备的品质或者它将事情做到了多好,它们可以让产品有吸引力、易于使用、快速、可靠或者安全。比如可以利用非功能性需求来指定响应时间,或计算时达到的精确度、产品必须具有的某种特定外观、能被无法阅读的人士使用、遵守使用这类业务的法律。
    这些属性的存在并不是因为它们是产品的基本活动,而是因为客户希望这些功能性活动以某种方式执行,并达到特定的品质。
    非功能需求通常并不改变产品的功能。一般来说,不管增加多少的质量属性,功能性需求都会保持不变。也有更复杂的情况存在,有时候非功能需求的实现会为产品增加功能(举例:功能的存在是为了让产品具有期望的特征)。功能性需求是让产品工作的需求,非功能需求是为工作赋予特征的需求。所以说,功能性需求和非功能性需求是相辅相成密不可分的。
    非功能性需求经常被忽略,因为它们不易被发现,发现后不易表达、实现以及测试。
    其实我们很多时候都将非功能需求不自觉的融入到了功能需求中
    Ipod播放器的成功在于它的易用性(基本没人仔细学习过它的使用说明书)、性能(硬盘空间很大、电池寿命长、连续播放时间长)、外观(很好看,很酷,能抓住青年人的心里),在市场上同类产品很多并且功能基本类似的情况下,ipod的成功,在于它很好的把握了非功能性需求。
    非功能性需求的分类有很多种,参见国标,它是可以裁减的,不是一成不变的。

    二、非功能需求的感性认识
    我们日常工作时,是通过场景对用例进行理解,从而进一步分解成步骤和相关的业务规则,针对这些步骤和规则,可以确定功能性需求。非功能性需求就不太符合这种方式,因为某些非功能性需求可以直接与一想功能性需求联系起来,某些适用于整个用例,某些则覆盖整个产品,因此我们在获取非功能需求时不要局限在功能的框架下,要适时改变思路。
    下面举个例子,让大家对什么是非功能需求有一个感性上的认识:
    目标:我们要设计一个家庭用的水龙头
    非功能需求:
    A、 水龙头应该外观漂亮,看起来简单不复杂(感观)
    B、 水龙头应该能够让手湿的人使用(易用性)
    C、 转两圈就应该能达到最大的出水量(操作性)
    D、当水温上升到70摄氏度的时候,水龙头能继续使用不烫手(操作性)
    E、 能够让有经验的操作者在4分钟内完成例行的安装和维护(可维护性)
    F、 水龙头没有尖锐的突出点,对幼儿没有伤害(安全性)
    G、开关的转动方向应该符合当地居民的习惯(文化和政策性)
    H、 水龙头符合国家标准(法律法规性)

    三、非功能需求要做哪些事情
    1、观感需求(界面需求):主要描述了对产品外观的期望、情绪和风格。这些需求规定了外观想要达到的目标,它和详细的界面设计还是有区别的,体现的是客户的感觉。作为web服务的一种的网银服务,应该相当重视观感需求,比如网站应该看起来很专业很有权威性、显的很高贵、很精美等。界面需求还包括对控件进行规范和对控件的使用范围进行一个规定等方面的内容。可以考虑借用一个原型来描述。
    2、易用性需求:易用性会使产品提高符合用户习惯的能力以及其对使用的期望。它会对用户使用产品的生产效率、错误率以及用户对新产品的接收程度产生很大的影响。可以描述成“90%的最终用户在第一次使用网银系统时,能在45秒内成功的完成转账交易”等
    3、执行需求:执行需求是指产品可以在给定的时间或者特定的精确度来执行某些任务,或者在一段时间内的极端状态值。在考虑执行需求时,可以从完成任务的速度、结果的精确度、容量、允许值的范围、单位时间内完成的任务数、资源的使用效率、两次故障间的平均屋故障时间、连续不停机时间等方面入手。它还应该包括对风险的控制内容。
    4、操作和环境需求:主要描述产品使用的环境。分为软件环境和硬件环境方面内容。还应包括使用产品时必须要提供的合作软件的内容。
    5、可维护性需求:在这项上,我的理解和理论上有一些偏差,有待讨论,呵呵。
    6、安全性需求:安全性指产品消除潜在风险的能力和对风险的承受能力。包含保密性、可靠性和完整性三个子特性。保密性指的是数据不能被授权用户以外的任何人访问的能力。可靠性指的是授权用户可以不受阻止的访问数据、与其它软件的兼容的能力和产品的强壮度。完整性指的是安预期目标完成任务的能力。
    7、文化和政策需求:这是一类特殊的需求,由于人的习惯、宗教、语言、禁忌或偏见,可能会导致产品不被接收。
    8、法律需求:
    四、非功能需求的验收
    非功能需求的验收和测试是个比较头疼的事情,因为很多项目看上去是无法量化的。但是需求工程里明确说明“不能测量的需求就不是一项真的需求”、“需求都是能测试的”,所以应该尽量为这些非功能需求加上数字标准,从而对其进行量化。
    例如:
    非功能需求:产品具有很高的用户友好度
    验收标准:在引入该产品的3个月内,60%的用户应该可以在45秒内用它来完成转账的任务,失败率控制在万分之一以内。

    界面需求验收标准:60%的用户在第一次看见该产品的5秒内,就会意识到这是民生银行的网银。

    执行需求验收标准:在95%的情况下,一般时段响应时间不超过1。5秒,高峰时段不超过4秒

    注:提出非功能需求,不要提出解决方案,提需求不是做设计。
     

    展开全文
  • 早已有了写一个自己博客的想法,但是想自己建立一个网站,但是建成之后却最终用作他途,现在多次想写点东西,写到了本地的文档里面,但是不如博客方便和开放,于是今天就写了第一个博客,就先这么着吧: ) . The ...
  • 常见非功能性需求的描述案例

    千次阅读 2019-03-31 16:51:37
    常见非功能性需求的描述案例 非功能性需求是需求的一个重要组成部分,它影响了系统的架构设计,需要开发人员重点关注。但是在工程实践中,往往客户不会提出非功能性需求,需求人员在描述需求时不知道如何描述,在...
  • 解惑 功能需求和非功能性需求

    千次阅读 2013-07-31 11:56:22
    功能需求(functional requirement)为一软件工程用语,功能需求定义一个软件系统...功能需求会以非功能性需求(或是质量需求)为其基础,后者会描述设计或实現时的限制条件(例如性能需求、保安性或可靠度等)。 ...
  • 学习软件设计的非功能性需求

    千次阅读 2009-12-13 10:34:00
    所以说,功能性需求非功能性需求是相辅相成密不可分的。非功能性需求经常被忽略,因为它们不易被发现,发现后不易表达、实现以及测试。其实我们很多时候都将功能需求不自觉的融入到了功能需求中。软件产品的
  • 系统设计中的非功能性需求

    万次阅读 2018-01-30 22:19:55
    当程序员的时候更多的注意功能性需求,但是作为一个架构师和程序员的主要区别之一就是要要满足系统的非功能性需求,包括如下: 1、高可扩展性 App或者网站的访问量弹性很大,刚开始的时候访问量可能比较小,随着...
  • 【文档】web系统非功能性需求

    千次阅读 2017-05-05 15:00:40
    软件可靠是软件产品在规定的条件下和规定的时间区间完成规定功能的能力。规定的条件是指直接与软件运行相关的使用该软件的计算机系统的状态和软件的输入条件,或统称为软件运行时的外部输入条件;规定的时间区间...
  • 网上看到相关的东西,感觉很杂,这一点点那一点点,自己从网上和书上总结下便于以后查看。 1. 需求定义:需求(requirement)就是系统(更广义的...2.1. 功能性需求是说有具体的完成内容的需求。 例如: 客户登录...
  • 如何采集非功能性需求 在需求阶段,与功能性需求不同,非功能性需求是需要需求人员主动引导的。因为客户并非计算机专家,除了可用性之外,他们很少会考虑其它的非功能性需求。即使提出,也是很模糊的要求,比如速度...
  • 需求定义:需求(requirement)就是系统(更广义的说法是项目)必须提供的能力和必须遵从的条件。... 非功能性需求是指软件产品为满足用户业务需求而必须具有且除功能需求以外的特性,包括系统的性能、
  • 当开发人员遇上非功能性需求

    千次阅读 2019-01-31 14:55:35
    在开发产品时,你是否考虑过关注功能性需求非功能性需求的工作量?如果没有,那么你可能应该关注下了,本文将告诉你为什么。作者 |Chris Horsnell译者 |梁蕊...
  • 网站功能大全 需求分析

    千次阅读 2008-03-31 10:00:00
    网站所有功能大全上传下载短信息功能财务模块个人空间积分管理推广奖励访问流量统计在线咨询报表导出动态转静态页面(优化提速)留言板智能检索系统会员管理投票功能个人空间 1 文章管理 新建/修改/浏览自已的文章2 ...
  • 购物网站需求分析

    万次阅读 2013-04-03 14:07:26
    ——功能性业务要求 4.1购物网站首页 展示网站总体格局,发挥导航作用。它包含商品购物模块、商品搜索模块、商品后台管理模块、用户管理模块、新闻信息管理模块。以上模块可便于顾客了解购物网站的主要功能,以便...
  • 一般来说,架构除了关注功能性需求外,其实更重要的是要关注非功能性需求,比如,性能,可用性,可伸缩性,可扩展性。而且一旦架构决定下来,一般难以改变,所以要求我架构师从一开始就要设计一个满足性能,可用性,...
  • 如何做网站需求

    千次阅读 2006-04-28 16:58:00
    一个网站项目的确立是建立在各种各样的需求上面的,这种需求往往来自于客户的实际需求或者是出于公司自身发展的需要,其中客户的实际需求也就是说这种交易性质的需求占了绝大部分。面对对网站开发拥有不同知识层面的...
  • 网站开发需求分析

    千次阅读 2008-11-28 14:03:00
    一个网站项目的确立是建立在各种各样的需求上面的,这种需求往往来自于客户的实际需求或者是出于公司自身发展的需要,其中客户的实际需求也就是说这种交易性质的需求占了绝大部分。面对网站开发拥有不同知识层面的...
  • 网站获取微信授权登录功能

    万次阅读 2017-04-20 15:46:34
    网站获取微信授权登录功能
  • 个人博客系统是针对希望个性化使用博客的用户的需求而设计,是可以完成个人博客用户登入、发表、浏览、修改文章以及图片视频、留言、评论甚至个性化设计博客网站页面、排版布局等功能的系统。近年来随着信息技术的...
  • 假如我来架构12306网站(二) - 浅谈系统需求调研

    万次阅读 多人点赞 2013-01-02 11:02:58
    前言: 此文的是续接假如我来架构12306网站(一) - 概论一文,目的是继续探讨整个项目的开发链条,将项目开发中的每个环节都进行一定程度的剖析研究,跟各位同行切磋技艺,共同提高,但毕竟此项目带有虚拟,如有言...
  • 网站需求分析模板

    千次阅读 2005-06-04 16:52:00
    这个过程中也同时包含了对要建立的网站基本功能和模块的确立和策划活动。所以项目小组每个成员、客户甚至是开发方的部门经理(根据项目大小而定)的参与是必要的。而项目的管理者在需求分析中的职责有如下几个方
  • 3. 非功能需求 5 3.1. 性能要求 5 3.1.1. 精度 5 3.1.2. 时间特性要求 6 3.1.3. 输人输出要求 6 3.2. 数据管理能力要求 6 3.3. 安全保密要求 6 3.4. 灵活要求 6 3.5. 其他专门要求 6 4. 运行环境规定 6...
  • 如何分析APP功能需求、结构

    千次阅读 2016-05-08 18:56:28
    如何分析APP功能需求、结构  APP分析过程在项目管理体系PMBOK中归属于项目范围定义(Define Scope)过程。从PMBOK的角度来看,在完成需求收集(Collect Requirements)后,需要对项目和产品的详细...
  • 网站开发的需求分析报告

    千次阅读 2009-06-09 09:15:00
    网站开发的需求分析报告 一个网站项目的确立是建立在各种各样的需求上面的,这种需求往往来自于客户的实际需求或者是出于公司自身发展的需要,其中客户的实际需求也就是说这种交易性质的需求占了绝大部分。...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 268,302
精华内容 107,320
关键字:

网站的非功能性需求