健康需求是指什么(重新认识非功能性需求)
作者最近在看《需求工程-基础、原理和技术》中,对“非功能性需求”这一概念有了新的认识,发现自己对“非功能性需求”有很多误区,想想自己编写需求规格说明书时使用过的“非功能性需求”,现在想起来不知道对开发人员造成了多少困扰。接下来,我们一起看看“非功能性需求”是什么?会带来什么影响?如何去避免它?
其实,“非功能性需求”这词的应用,并没有对错之分;在很多实践或很多书籍中,都经常看到。结合作者经历来说,工作中也经常使用功能性需求和非功能性需求来进行区分需求,但看到该书中解释后,让我重新认识它。仔细分析或回想这些所谓的非功能性需求,大概可以分成两类:
非功能性需求分类
① 不明确的功能需求:非功能性需求很多时候都是在描述一个不明确的功能性需求;
② 质量需求:所谓的非功能性需求还可能是描述质量需求。
因此,它要么是一个明确的功能性需求,要么是一个质量需求。非功能性需求经常掩盖了不明确的功能性需求,并导致了对所期望的系统属性多种不同的解读或误读。强烈建议不要使用“非功能性需求”。结合课本中一个实例,它的需求是这样描述“系统应该是安全的”。
R12:系统应该是安全的,可能有人就有以下疑问:
|
R12:系统应该是安全的 ,如果精化或细化如下需求,是否就更好了: R12.1:每个用户使用系统之前必须先使用用户名和密码登录系统; R12.2:系统应隔4周,提醒用户更改密码; R12.3:用户修改密码时,确认新密码至少包含8个字符并同时含有数字和字母; |
因此,我们强烈建议在书写规范说明的时候,避免这类“非功能性”需求,建议进行仔细的检查系统存在的“非功能性”需求的地方。
如何处理这类“非功能性需求”呢?答案是不要偷懒,要细化、精化,要明确。这本书的作者也给了如下建议:
- 避免这类“非功能性”需求出现在需求规格说明书中;
- 相反,要对功能性需求和质量需求进行区分;
- 非功能性需求中通常隐藏着不明确的功能性需求;
- 只有很少一部分所谓的非功能性需求是质量需求;
- 对每个“非功能性”需求,检查是否表示某个不明确的功能性需求,如果是则对其进行充分精化。
文档化、明确的需求是执行所有其他开发活动的基础,因此对任何开发项目而言都是根本性的。
希望对大家有所帮助,欢迎大家讨论学习!
,免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com