非功能需求是产品必须具备的品质或者它将事情做到了多好,它们可以让产品有吸引力、易于使用、快速、可靠或者安全。通常并不改变产品的功能,功能性需求是让产品工作的需求,非功能需求是为工作赋予特征的需求。所以说,功能性需求和非功能性需求是相辅相成密不可分的。非功能性需求经常被忽略,因为它们不易被发现,发现后不易表达、实现以及测试。其实我们很多时候都将非功能需求不自觉的融入到了功能需求中。软件产品的非功能性需求包括系统的性能、可靠性、兼容性、可维护性、配置、界面、安全性、可扩充性和对技术和对业务的适应性等。

1、观感需求(界面需求):主要描述了对产品外观的期望、情绪和风格。这些需求规定了外观想要达到的目标,它和详细的界面设计还是有区别的,体现的是客户的感觉。作为web服务的一种的网银服务,应该相当重视观感需求,比如网站应该看起来很专业很有权威性、显的很高贵、很精美等。界面需求还包括对控件进行规范和对控件的使用范围进行一个规定等方面的内容。可以考虑借用一个原型来描述。
2、易用性需求:易用性会使产品提高符合用户习惯的能力以及其对使用的期望。它会对用户使用产品的生产效率、错误率以及用户对新产品的接收程度产生很大的影响。
3、执行需求:执行需求是指产品可以在给定的时间或者特定的精确度来执行某些任务,或者在一段时间内的极端状态值。在考虑执行需求时,可以从完成任务的速度、结果的精确度、容量、允许值的范围、单位时间内完成的任务数、资源的使用效率、两次故障间的平均屋故障时间、连续不停机时间等方面入手。它还应该包括对风险的控制内容。
4、操作和环境需求:主要描述产品使用的环境。分为软件环境和硬件环境方面内容。还应包括使用产品时必须要提供的合作软件的内容。
5、可维护性需求:便于后续软件维护、升级等。
6、安全性需求:安全性指产品消除潜在风险的能力和对风险的承受能力。包含、保密性、可靠性和完整性三个子特性。保密性指的是数据不能被授权用户以外的任何人访问的能力。可靠性指的是授权用户可以不受阻止的访问数据、与其它软件的兼容的能力和产品的强壮度。完整性指的是安预期目标完成任务的能力。
7、文化和政策需求:这是一类特殊的需求,由于人的习惯、宗教、语言、禁忌或偏见,可能会导致产品不被接收。
8、满足法律需求:不做违反法规的事。
 
    《系统分析师之路》有如下介绍:

软件产品的非功能性需求包括系统的性能、可靠性、可维护性、可扩充性和对技术和对业务的适应性等。下面对其中的某些指标加以说明。

1、系统的完整性

  指为完成业务需求和系统正常运行本身要求而必须具有的功能,这些功能往往是用户不能提出的。典型的功能有:联机帮助、数据管理、用户管理、软件发布管理、在线升级,等等。

  并不是所有的系统都必须包括以上所有的功能,而是可以根据产品的使用环境和企业的产品发展决策进行挑选。例如,在线升级、软件发布管理适用于具有因特网或内网环境的软件产品;而数据管理对于产生数据存储的产品则是必须的,设计人员不应假设用户同时是一个合格的DBA,而且系统所产生信息的分布、关系,也不是DBA所应该了解的内容。因此,完整的系统应该包括数据备份、恢复、日志管理、垃圾数据清除等基本功能,哪怕这些功能的核心只是一条语句或命令。用户管理功能是另一项必不可少的功能,它定义哪些用户可以以什么样的功能使用系统。好的用户管理功能不仅可以有效控制用户对系统的使用,使系统处于一个安全、负载合理的运行状况,还能提高系统的应用适应性。

2、系统的可扩充性与可维护性

  指系统对技术和业务需求变化的支持能力。当技术变化或业务变化时,不可避免将带来系统的改变―不仅要进行设计实现的修改,甚至要进行产品定义的修改。好的软件设计应在系统构架上考虑能以尽量少的代价适应这种变化。常用的技术方法有面向对象的分析与设计以及设计模式。

3、技术适应性与应用适应性

  系统的适应性与系统的可扩充性和可维护性的概念相似,也表现产品的一种应变能力,但适应性强调的是在不进行系统设计的修改的前提下对技术与应用需求的适应能力。软件产品的适应性通常表现为产品的可配置能力。好的产品设计可能要考虑到运行条件的变化,包括技术条件(网络条件、硬件条件、软件系统平台条件等)的变化和应用方式的变化,如在具体应用中界面的变化、功能的剪裁、不同用户的职责分配和组合等。

  对以上重要的非功能性需求进行逐一分析后,就可以开始进行产品功能设计了。实际上,非功能性需求定义将反映到系统的功能设计中,表现为系统的架构。下一节中将会描述怎样实现系统的适应性

学习软件设计的非功能性需求相关推荐

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

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

  2. 架构设计之非功能性需求

    非功能性需求 什么叫非功能性需求 非功能性需求为何与架构相关 值得注意 什么叫非功能性需求 非功能性需求包括性能.可修改性.可用性.易用性.复用性.环境要求等,在最初的需求方案分析阶段很容易被忽略,而 ...

  3. 软件设计——质量属性(非功能性需求)

    当你在收集需求的时候 人们会很乐意给你一个愿望清单,写满了他们想要软件系统所完成的事,也有完善的方法以用户故事.用例.传统的需求规格书.验收标准等形式来捕捉这些功能需求 但是那些讨厌的非功能性需求呢? ...

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

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

  5. 非功能性需求设计:常见的质量属性有哪些?

    1. 性能 如:单位时间内完成的工作量的度量: 必须满足的截止期限 主要有3个响应度量 (1)吞吐量:应用程序在单位时间内必须执行的工作量: (2)响应时间:应用程序处理一个请求的延迟时间: (3)死 ...

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

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

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

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

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

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

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

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

最新文章

  1. MySQL 通配符学习小结
  2. tombstone问题分析
  3. ArcGIS 10.6 Data Interoperability Tools的安装与使用(附安装包下载)
  4. aws lambda_四处奔走:初学者遇到AWS Lambda
  5. java中各种数据类型的使用
  6. HTTP 错误 500.19 - Internal Server Error 无法访问请求的页面,因为该页的相关配置数据无效...
  7. CreateFile和WriteFile
  8. 考勤系统 服务器管理,zktime5.0考勤管理系统
  9. eMMC的使用寿命分析
  10. speedoffice使用方法-word怎么快速分页呢
  11. Android Studio接谷歌原生登录
  12. 1741. Communication Fiend(dp)
  13. 企业微信开发(一)常见问题收集及解决方案
  14. html表格里面怎么合并单元格的快捷键,excel合并单元格快捷键是什么
  15. 还有100天高考的和前任开始的
  16. 教程详解|在酷雷曼系统中如何编辑设置沙盘呢?
  17. newman执行测试_newman执行postman脚本
  18. 前端基础(不定期更新)
  19. 【股票量化选取】做要给堡垒型的股票漏斗
  20. 【Excel】+自动生成图表

热门文章

  1. 利用Python的PIL、PyMuPDF库为图片和PDF文件去水印
  2. Python基础 VS Golang基础
  3. 【51单片机】电子时钟带秒表
  4. 销售困局:客户既要好的又嫌贵如何破局
  5. TDK | CeraLink 电容器快速切换逆变器的革新
  6. 阿里、京东等互联网大厂的面试经验分享
  7. FCS(Frame Check Sequence)
  8. 钢铁业新项目的盈亏平衡点
  9. 电视不支持AirPlay镜像怎么办?苹果iPhone手机投屏三种方法
  10. 【踩坑系列】mysql 修改root密码失败