非功能性需求是除开功能性需求外需要满足的系统要求,可以理解为系统的质量要求,一般包括性能、安全性、可靠性、可用性、可维护性、完整性、可测试性、有效性等。细分下来有很多,不过前辈们和一些权威机构帮我们做了很好的归类。
       常见的软件质量模型有:

● 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秒”来概括显然不合适。因此不同的项目因条件和要求不同,非功能性需求也有所不同。
       另一个非功能性需求不好调研的原因是它更接近架构设计的范畴,是架构师考虑的事,刚好这些是需求分析师不擅长的,正因为这个不擅长也导致需求分析师经常选择性的忽略这部分内容。
       那么应该如何调研非功能性需求呢?我认为可以从以下几方面出发考虑。
        第一,时刻关注非功能性需求
       在调研业务需求时,要时刻留意功能实现对非功能性指标所带来的影响,并在调研过程中有意识地了解系统运行的相关情况,例如客户提供的硬件设备,用户量,业务量,业务办理频率、峰值等问题。
        第二,让架构师提前参与
       对于一些客户明确提出的关键指标或可预见的问题,如大数据应用的性能问题,或者像可靠性、可用性等问题,需要让架构师提前考虑,在技术上给出解决方案。
        第三,多总结
       在工作中及时总结,记录问题和解决方案,并进行归类整理,在下一个同类的系统或项目时,做到提前考虑。

需求分析师如何做好非功能性需求相关推荐

  1. 影响架构决策的非功能性需求

    英文原文:Non-functional Requirements in Architectural Decision Making 本文由<IEEE Software>杂志首发,现在由In ...

  2. 软件开发的功能性需求和非功能性需求

    功能性需求,一般是我们显性易见的,就是一般实现了什么功能,提供了什么服务,大体我认为问题中提到,或者我们日常所说的:"看起来复杂不复杂",基本上都会是针对功能性需求而言的.如果拿g ...

  3. 当开发人员遇上非功能性需求

    在开发产品时,你是否考虑过关注功能性需求与非功能性需求的工作量?如果没有,那么你可能应该关注下了,本文将告诉你为什么. 作者 | Chris Horsnell 译者 | 梁蕊 责编 | 仲培艺 出品 ...

  4. 什么是功能性需求和非功能性需求

    需求定义: 需求(requirement)就是系统(更广义的说法是项目)必须提供的能力和必须遵从的条件. 需求分类: (1) 在一般使用中,需求按照功能性(行为的)和非功能性(其它所有的行为)来分类. ...

  5. 非功能性需求_更好的开卡,来聊聊非功能性需求

    工作这么几年来,见得最多的场景是 QA 小伙伴满办公室追着开发报 bug,有时候开发会不乐意,"当时可没说要 XXX,要做 XXX." 好像 QA 小伙伴永远比开发多一点心眼,即使 ...

  6. 系统功能性/非功能性需求

    文章目录 1 操作系统的系统需求 1.2 软件系统的需求分析 1.2 操作系统的功能性需求 1.2.1 OS的功能性需求 1.2.1.1 **计算机用户需要的用户命令** 1.2.1.2 **应用软件 ...

  7. 软件开发的非功能性需求

    The functional requirement is describing the behavior of the system as it relates to the system's fu ...

  8. 功能性需求和非功能性需求

    功能需求 (functional requirement规定开发人员必须在产品中实现的软件功能,用户利用这些功能来完成任务,满足业务需求.功能需求有时也被称作行为需求 (behavīoral requ ...

  9. 软件工程之功能性需求和非功能性需求

    早已有了写一个自己博客的想法,但是想自己建立一个网站,但是建成之后却最终用作他途,现在多次想写点东西,写到了本地的文档里面,但是不如博客方便和开放,于是今天就写了第一个博客,就先这么着吧: ) . T ...

  10. 非功能性需求之性能需求分析

    非功能性需求包括性能.可修改性.可用性.易用性.安全性.环境要求等,在最初的需求方案分析阶段很容易被忽略,而这些内容的考虑往往会影响到产品的实现,包括功能架构.操作方式.界面展现.后台处理方式.数据库 ...

最新文章

  1. MySQL_控制台操作_01
  2. 计算机视觉开源库OpenCV添加文字cv2.putText()参数详解
  3. 矩阵模拟问题合集(Leetcode题解-Python语言)
  4. oracle中affirm,2.Oracle Data Guard 参数介绍
  5. [Perl] Python 与 Perl 合并,打造史上最牛语言 Parrot
  6. 小米10首销战绩公布:嘴上说不买身体却很诚实
  7. 通过js滚轮滚动时调用动画_WOW.js在页面滚动时展现动感的元素动画效果
  8. Spring Cloud Config - RSA简介以及使用RSA加密配置文件
  9. Enterprise Architect 中文快速入门
  10. linux 应用程序 死锁,程序死锁了
  11. 题164.pta数据结构题集-04-树7 二叉搜索树的操作集 (30 分)
  12. 计算机系军训口号四句霸气,大一新生军训四句口号霸气押韵
  13. 小程序 怎样判断数据的类型
  14. 自己写的txt分割器
  15. 强大的dex反编译器
  16. STM32的Flash地址空间的数据读取
  17. ICPC训练联盟2021寒假冬令营(6)_2021.01.25_笔记
  18. Ubuntu20.04安装Nvidia驱动——4060显卡(黑屏解决方法)
  19. 台灯照度均匀度多少最好?2022最新护眼灯照度标准值
  20. 我是小小志愿者——国际志愿者日线上宣传活动

热门文章

  1. 升级mojava之后git失效的问题
  2. 2021年中国人工智能市场发展现状
  3. 问卷调查报告html,问卷调查报告格式
  4. 用java实现电脑的usb功能,包括鼠标,键盘
  5. origin将柱状图和折线图画一起
  6. html添加桌面背景图片代码,背景图片加文字代码. 用HTML制作表格
  7. 常用的基础英文字体推荐
  8. 信息学奥赛一本通 1197 山区建小学(区间DP)
  9. 【愚公系列】2022年10月 微信小程序-电商项目-商品详情页面说明和商品导航
  10. 服务器阵列卡装系统蓝屏,电脑开raid做系统蓝屏-电脑开机就蓝屏怎么解决?