在软件开发中,很多程序员都将完成需求当作任务目标。但是在验收、代码评审的时候,我们对于程序员来讲,除了能完成外,还有一些其它一些要求条件:例如代码健壮性,可扩展性,性能等等考核指标。

这些其它的条件,其实我们可以理解为非功能性需求。

非功能性需求,我们一般分为以下几个指标:

观感性

简单来说,就是页面的观看舒适度。界面舒适度很大的效果上是来自操作者的反馈。

主要描述了需求外观的期望、情绪和风格。简单点来说就是对页面的视觉感官。

易接受性:色彩是否和当前系统类型一致,例如蓝色偏商务风等。

风格统一性:设计风格是否统一,一看就知道是一个系统的内容,主要考虑人们在多个系统之间进行系统切换的时候,怎样打开多页面不迷失的问题。

易用性

易用性会提高用户习惯的能力和对使用的期望。主要从消费者的生产效率、容错率等方面来考究。

易理解:用户在使用该系统的时候,思维方式和常规人或软件的思维方式一样。例如1+1 结果为2(十进制),而不是10(二进制)

易学习:用户使用该系统所花费的成本是否过高。每个功能是否需要单独学习相关的操作和理解。

易操作:操作和控制该系统是否方便。例如页面排版上,下拉框数据过多的时候,是否有搜索功能等,可以方便快速找到内容。

可执行性

可以理解为执行效率。一般情况下对于可执行性的考核都是从时间维度和空间维度来考量。

时间维度:主要是看运行功能所需的时间。一般使用时间复杂度T(n)来表示。值越大,说明花费的时间越多。

空间维度:主要是看运行功能所需的资源(内存)。一般使用空间复杂度O(n)来表示,和上面一样,值越大,说明使用的内存越大。

可靠性

在规定的时间和条件下,其稳定运行的能力。主要从以下几个方面考量

稳定性:无错运行可以拿到几个9。例如99.99%这种。

容错性:软件在错误的数据和环境下,对于错误的处理能力。

可恢复性:程序在宕机后,多长时间能恢复。

可维护性

程序在上线后,进行修改和跟踪所需要花费的精力。一般从以下几个方面考量

分析性:为跟踪确定bug所花费的精力的长短比例。

扩展性:后续修改代码已有功能所花费的时间的长短比例

测试性:在修改后,验证功能所花费的时间比例。

可移植性

程序从一个环境切换到另外一套环境所需的时间考量

适应性:程序从一个环境切换到另外一个环境下,所需要准备的成本花费比例。例如从window切换到linux。

安装性:在不同环境下安装所花费的成本比例。

替换性:替换其它功能的机会成本

写代码,除了完成需求规定的功能外,还要综合考量在性能、可用性等

软件开发中的非功能需求类型相关推荐

  1. 测试自动化金字塔在软件开发中是如何使用的?

    测试自动化金字塔,是一个指南,指导您进行什么类型的测试以及每种测试的数量.测试自动化金字塔有助于创建更高效的测试,并导致向客户发布更可靠的软件. 测试自动化金字塔的好处 测试自动化的大部分好处显而易见 ...

  2. 软件开发中会使用到的图

    文章目录 软件开发中会用到的图 一.背景 二.图为了解决什么问题 三.不同流程中适合运用的图 四.实际的运用 五.结语 软件工程中的各种图 软件工程用的15种图 数据关系流图怎么画?这款软件教你轻松绘 ...

  3. 软件开发中常见知识总结

    最近在准备软件开发的笔试面试,复(yu)习(xi)了一些在软件开发中的常见知识.为了给自己攒点RP,故与大家分享一二. 软件开发需要准备的比较多,主要分为编程语言,数据结构和算法,计算机网络,计算机操 ...

  4. 建模语言UML在软件开发中的应用

      建模语言 UML 在软件开发中的应用 摘要:UML( Unified Modeling Language)是建立系统模型和分析业务处理流程强有力的工具,它能够帮助软件开发人员从不同角度描述系统,使 ...

  5. 软件开发中的详细设计

    传统软件开发中的详细设计: 模块内的数据结构进行设计.比如模块中类.结构体的设计 对数据结构进行物体设计.比如数据库表的设计,文件存储的设计,文件存储目录的设计 每个模块进行详细算法设计.比如每个方法 ...

  6. 人工智能技术在软件开发中的应用

    人工智能技术的不断发展和成熟,使得它在软件开发中的应用越来越广泛.人工智能技术的应用可以帮助软件开发人员提高效率.降低成本.增强软件的功能性和可靠性.在本文中,我们将探讨人工智能技术在软件开发中的应用 ...

  7. 对软件开发中uml建模的理解和图形整理(一)

    由于uml(统一建模语言)在开发中经常会用到,特别是在软件开发中的OOAD阶段,因此要理解和使用uml显得尤为重要.在uml开始之前,咱先回顾一个OOAD.OOP的主要特征. OOAD:根据面向对象的 ...

  8. 低代码/无代码平台在软件开发中的应用

    随着技术的不断发展,软件开发也在不断地进步.低代码/无代码平台已经成为软件开发的一个新的趋势.在这篇文章中,我们将深入探讨低代码/无代码平台在软件开发中的应用,包括它们的优势.如何选择合适的平台以及如 ...

  9. 浅谈软件开发中的假设条件

    翻开第一篇聊假设条件的博客,发现已经快2年了.那篇主要涉及了点架构方面假设条件的东西,不是很全,今天开一篇聊一下软件开发中的假设条件.如果把假设条件限定在架构方面,稍显冷门.但如果将其扩展到整个软件开 ...

  10. 软件工程中的系统文献映射研究实例-软件开发中的假设条件与哪些软件制品关联(第四部分)

    之前的博客详细描述了软件工程中的系统文献映射研究方法.这里接着给出一个我曾经做过的工作作为例子,以更直观地展示这种研究类型.该研究的背景信息这里不再赘述. 这篇博客主要介绍第三个研究问题的结果,即软件 ...

最新文章

  1. 科普丨机器学习和人类学习的区别到底是什么?
  2. texlive环境运行WinEdt系统找不到指定的文件
  3. eclipse build path 以及 clean(转)
  4. 【数据结构】KMP算法(c语言)
  5. 碎片化学前端,促进技术提升,我推荐这些
  6. 前端学习(2604):增加响应头可以获取数据
  7. MSDN WebCast网站全新改版
  8. html 动物特效,分享9款用HTML5/CSS3制作的动物人物动画,
  9. MySQL数据库张素青答案_MySQL数据库技术与应用
  10. Thinkphp6快速入门一
  11. 微信app用户及市场调研
  12. 陶哲轩实分析 习题6.3.3
  13. 群晖(synology)日历与IPhone日历同步
  14. CAD中的dxf文件解析(一):准备工作
  15. Windows10开机进不了BIOS的解决办法
  16. APP乱查征信?小心你的隐私被卖了!
  17. 没有 XXX 的手册页条目问题解决
  18. 低代码开发Paas平台时代来了
  19. 北京航空航天大学公开课:应用数学分析 笔记:微积分发展史,牛顿,莱布尼茨,拉格朗日,欧拉,柯西,黎曼
  20. php 获取带宽,php使用网络攻击占用超大带宽的,解决方案[转]

热门文章

  1. 【实用软件工程】知识点
  2. java电影_java电影视频点播网
  3. Wifidog 认证
  4. XMPP tigase 8.0 与 strophe.js 测试Web聊天服务/即时通信
  5. hls ask 调制
  6. 4x4矩阵键盘工作原理及扫描程序_4*4 矩阵键盘工作原理
  7. 2022高教社杯全国大学生数学建模竞赛B题解析(更新完结)
  8. C++轻量级Json解析工具—TinyJson
  9. 服务器总线协议_第一章----I2C总线协议入门
  10. Springboot整合Drools规则引擎