admin管理员组

文章数量:1532440

2024年6月27日发(作者:)

非功能性需求

1) 什么是非功能性需求

非功能性需求是这样一种需求,它解决“如何使这个系统能在实际环境中运行”。

2) 重要吗?

在设计解决方案的过程中满足功能性需求当然是很重要的。但是,如果没有考虑非功

能性需求,那么这个解决方案则很难取得实效,因为用户可能难以甚至无法使用系统的功

能。

很多非功能需求一般会在底层的基础技术平台去仔细设计和实现。

3) 非功能性需求要考虑那些方面

非功能性的特性一般有这些:

可靠性

只显示系统可以做某些事情是不够的。如果一个系统不能可靠地运行(例如,在加载

时,或者在系统故障时,等等),则它就不能满足客户的需要。

有一些问题应该自问一下:

* 即使硬件出现故障,系统也可以可靠运行吗?

* 复制和故障转移方案是什么?

* 需要手动干预,还是系统可以自动进行故障转移?

* 实现可靠性会对性能造成负面影响吗?

* 实现可靠性的成本有多高?

可靠性需要考虑的一些具体方面是:

安全性:假设攻击者就在外面。如何知道系统用户就是他们所声称的,并只让他们访

问经过授权的功能?如何保护我的系统不受攻击?考虑到网络攻击、机器攻击,甚至从您

自己的系统内部发起的攻击。

事务性:如何设计系统来保存工作单元的 ACID 属性?如果在设计中涉及多个独立的

子系统(Web 服务和 SOA 就是这种情况),则这一点就显得特别重要。不要假设始终可

以进行两阶段提交 (two phase commit)。

可用性

如果用户不能够从他们可用的渠道(例如 Web)方便地访问您的产品,那么它的好

处何在呢?这有时是作为功能性的一部分一起考虑(或者应该在理想的环境下)的,但是

常常被忽视,以致于整个项目处于危险之中。这里需要考虑的一些问题是:

* 您是否为用户带来不适当的负担(例如,需要特殊的浏览器版本)?

本文标签: 系统需求功能性设计需要