需求分析师如何做好非功能性需求
非功能性需求是除开功能性需求外需要满足的系统要求,可以理解为系统的质量要求,一般包括性能、安全性、可靠性、可用性、可维护性、完整性、可测试性、有效性等。细分下来有很多,不过前辈们和一些权威机构帮我们做了很好的归类。
常见的软件质量模型有:
● Jim McCall 软件质量模型(1977 年)
● Barry W. Boehm 软件质量模型(1978 年)
● FURPS/FURPS+ 软件质量模型
● R. Geoff Dromey 软件质量模型
● ISO/IEC 9126 软件质量模型(1993 年)
● ISO/IEC 25010 软件质量模型(2011 年)
我个人认为IBM的RUP里的“FURPS+”是比较好的方法,可以作为检查表来用,避免需求遗漏;而ISO的软件质量模型当然是最权威的了。下面简单说明一下这两个方法。
1.“FURPS+”模型
● 功能性(Functional):特性、功能、安全性;
● 可用性(Usability):人性化因素、帮助、文档;
● 可靠性(Reliability):故障频率、可恢复性、可预测性;
● 性能(Performance):响应时间、吞吐量、准确性、有效性、资源利用率;
● 可支持性(Supportability):适应性、可维护性、国际化、可配置性。
● “+”是指一些辅助性的和次要的因素,比如:
○ 实现(Implementation):资源限制、语言和工具、硬件等;
○ 接口(Interface);强加于外部系统接口之上的约束;
○ 操作(Operation):对其操作设置的系统管理;
○ 包装(Packaging)例如物理的包装盒;
○ 授权(Legal):许可证或其他方式。
2. ISO/IEC 25010 软件质量模型
在工作中,一般不会全部都考虑到,但一些常用的维度还是要有,如性能、可靠性、可维护性、安全性、可用性等,其中最为重要的无疑是“性能”这一点,效率上无法保障其他的都面谈,因此在功能设计上要时刻考虑对性能带来的影响。
但是对于需求分析师来说,调研非功能性需求比调研功能性需求难很多。其中一个原因是非功能性需求没有放之四海而皆准的通用标准。我们经常在写需规的时候都会复制粘贴一些常见的指标,如:
● 登陆时间≤5秒
● 页面间跳转时间≤3秒
● 精确查询(包括请求服务)响应时间≤1秒
● 模糊查询响应时间≤5秒
● 支持静态用户(注册用户)在50000以上
● 支持动态用户(在线用户)在1500以上
● 支持并发数300以上
但实际上非功能性需求很难做到具体的量化,例如同样是模糊查询,对固定表的某个字段的模糊查询和全省资源库综合查询,其查询的资源都不在一个量级上,因此简单的用一项“模糊查询响应时间≤5秒”来概括显然不合适。因此不同的项目因条件和要求不同,非功能性需求也有所不同。
另一个非功能性需求不好调研的原因是它更接近架构设计的范畴,是架构师考虑的事,刚好这些是需求分析师不擅长的,正因为这个不擅长也导致需求分析师经常选择性的忽略这部分内容。
那么应该如何调研非功能性需求呢?我认为可以从以下几方面出发考虑。
第一,时刻关注非功能性需求
在调研业务需求时,要时刻留意功能实现对非功能性指标所带来的影响,并在调研过程中有意识地了解系统运行的相关情况,例如客户提供的硬件设备,用户量,业务量,业务办理频率、峰值等问题。
第二,让架构师提前参与
对于一些客户明确提出的关键指标或可预见的问题,如大数据应用的性能问题,或者像可靠性、可用性等问题,需要让架构师提前考虑,在技术上给出解决方案。
第三,多总结
在工作中及时总结,记录问题和解决方案,并进行归类整理,在下一个同类的系统或项目时,做到提前考虑。
需求分析师如何做好非功能性需求相关推荐
- 影响架构决策的非功能性需求
英文原文:Non-functional Requirements in Architectural Decision Making 本文由<IEEE Software>杂志首发,现在由In ...
- 软件开发的功能性需求和非功能性需求
功能性需求,一般是我们显性易见的,就是一般实现了什么功能,提供了什么服务,大体我认为问题中提到,或者我们日常所说的:"看起来复杂不复杂",基本上都会是针对功能性需求而言的.如果拿g ...
- 当开发人员遇上非功能性需求
在开发产品时,你是否考虑过关注功能性需求与非功能性需求的工作量?如果没有,那么你可能应该关注下了,本文将告诉你为什么. 作者 | Chris Horsnell 译者 | 梁蕊 责编 | 仲培艺 出品 ...
- 什么是功能性需求和非功能性需求
需求定义: 需求(requirement)就是系统(更广义的说法是项目)必须提供的能力和必须遵从的条件. 需求分类: (1) 在一般使用中,需求按照功能性(行为的)和非功能性(其它所有的行为)来分类. ...
- 非功能性需求_更好的开卡,来聊聊非功能性需求
工作这么几年来,见得最多的场景是 QA 小伙伴满办公室追着开发报 bug,有时候开发会不乐意,"当时可没说要 XXX,要做 XXX." 好像 QA 小伙伴永远比开发多一点心眼,即使 ...
- 系统功能性/非功能性需求
文章目录 1 操作系统的系统需求 1.2 软件系统的需求分析 1.2 操作系统的功能性需求 1.2.1 OS的功能性需求 1.2.1.1 **计算机用户需要的用户命令** 1.2.1.2 **应用软件 ...
- 软件开发的非功能性需求
The functional requirement is describing the behavior of the system as it relates to the system's fu ...
- 功能性需求和非功能性需求
功能需求 (functional requirement规定开发人员必须在产品中实现的软件功能,用户利用这些功能来完成任务,满足业务需求.功能需求有时也被称作行为需求 (behavīoral requ ...
- 软件工程之功能性需求和非功能性需求
早已有了写一个自己博客的想法,但是想自己建立一个网站,但是建成之后却最终用作他途,现在多次想写点东西,写到了本地的文档里面,但是不如博客方便和开放,于是今天就写了第一个博客,就先这么着吧: ) . T ...
- 非功能性需求之性能需求分析
非功能性需求包括性能.可修改性.可用性.易用性.安全性.环境要求等,在最初的需求方案分析阶段很容易被忽略,而这些内容的考虑往往会影响到产品的实现,包括功能架构.操作方式.界面展现.后台处理方式.数据库 ...
最新文章
- MySQL_控制台操作_01
- 计算机视觉开源库OpenCV添加文字cv2.putText()参数详解
- 矩阵模拟问题合集(Leetcode题解-Python语言)
- oracle中affirm,2.Oracle Data Guard 参数介绍
- [Perl] Python 与 Perl 合并,打造史上最牛语言 Parrot
- 小米10首销战绩公布:嘴上说不买身体却很诚实
- 通过js滚轮滚动时调用动画_WOW.js在页面滚动时展现动感的元素动画效果
- Spring Cloud Config - RSA简介以及使用RSA加密配置文件
- Enterprise Architect 中文快速入门
- linux 应用程序 死锁,程序死锁了
- 题164.pta数据结构题集-04-树7 二叉搜索树的操作集 (30 分)
- 计算机系军训口号四句霸气,大一新生军训四句口号霸气押韵
- 小程序 怎样判断数据的类型
- 自己写的txt分割器
- 强大的dex反编译器
- STM32的Flash地址空间的数据读取
- ICPC训练联盟2021寒假冬令营(6)_2021.01.25_笔记
- Ubuntu20.04安装Nvidia驱动——4060显卡(黑屏解决方法)
- 台灯照度均匀度多少最好?2022最新护眼灯照度标准值
- 我是小小志愿者——国际志愿者日线上宣传活动