赞
踩
The functional requirement is describing the behavior of the system as it relates to the system's functionality.
软件功能性需求是描述一个系统的行为,与系统的功能性相关.
The non-functional requirement elaborates a performance characteristic of the system.
软件非功能性需求是详细描述了一个系统的性能特点.
功能需求是指提供了什么服务,实现了什么功能。
系统必须做什么?与系统设计相关,必须描述出来系统的必要的行为,
这些行为来自于用户和公司规则,必须包含系统的简要说明,系统的总结,系统的理论,这些信息用来帮助读者知道为什么这些需求被用到,
并且追踪系统的开发过程。
非功能性需求
系统应该做成什么样 与系统架构相关
非功能需求是指效果怎么样,性质怎么样。
举个例子:
软件主页有一个按钮,点进去就是历史记录.---功能需求.
软件使用的内存不超过10Mb.-------非功能需求.
非功能性需求一般是隐性的,容易被菜鸟程序员,设计师们忽略。非功能性需求不同于功能性需求,它在不同的网站,软件上,拥有一定的共性,就例如 提到的海量文件存储的问题上,淘宝,腾讯,google都遇到了一样的问题,研发了类似的解决方案(TFS,TFS和GFS)。
非功能性需求的分类方法较多,并没有业界通行和一致的标准,但是大多数殊途同归,名称/叫法以及分类方法上可能略有差异,但是其含义和指向一般是趋向一致的,我简单介绍一下我一般较多采用的分类:
事实上,从我的经验来看,一般来说,很多软件项目及产品,其在非功能性需求上的成本,难度和工作量,是要超过功能性需求的。在特定的软件领域,例如网站(尤其是淘宝,facebook这样海量用户规模的网站),金融(银行证券),电信领域,其非功能性需求实现的重要性,工作量,技术难度要远远远远大于功能性需求的实现。
而且,功能性的需求的实现,其实在大多数情况下,更依赖于业务的高手(或者好的产品经理)而不是技术的高手,而非功能性需求的实现,恰恰是挑战技术高手的重要课题。
一个最典型的极限非功能性需求的例子就是电信的计费系统,其实基本功能很简单,获取通话时长,按照费率公式算个钱出来,但是放到海量的用户,实时的计费要求中来看,这是一个极具技术挑战的活。
还有一个经典的案例是,中国某地方性银行(注意仅仅是地方性的银行),想要引入一个柜面服务的系统,找到了新家坡的一个厂商,他们在东南亚银行业有很多案例,而且功能设计非常完善合理和先进。但是这家地方性银行引入这个系统以后,2周之内发行了几十万张信用卡,这系统就顶不住崩溃了。这就是典型的功能性需求实现完美,但是非功能性缺陷的例子。
从我的经验来看,一般来说,非功能性需求中,性能/容量,以及安全的要求,一般是技术挑战最多,内涵最丰富,成本最高,最值得关注的领域,当然,现在易用性(UE)也是一个极度收到重视的领域。
有志于架构师取向的IT技术人员,非功需求实现的领域,是一个必须关注,必须熟悉的领域。
而本问题最大的根源在于,只看到了网站功能性需求的部分,而没有注意到非功的部分,对于非专业的IT技术人员来说,这很正常,但是对于IT技术人员来说,是需要认真关注的必修课。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。