软件开发中的非功能需求类型
在软件开发中,很多程序员都将完成需求当作任务目标。但是在验收、代码评审的时候,我们对于程序员来讲,除了能完成外,还有一些其它一些要求条件:例如代码健壮性,可扩展性,性能等等考核指标。
这些其它的条件,其实我们可以理解为非功能性需求。
非功能性需求,我们一般分为以下几个指标:
观感性
简单来说,就是页面的观看舒适度。界面舒适度很大的效果上是来自操作者的反馈。
主要描述了需求外观的期望、情绪和风格。简单点来说就是对页面的视觉感官。
易接受性:色彩是否和当前系统类型一致,例如蓝色偏商务风等。
风格统一性:设计风格是否统一,一看就知道是一个系统的内容,主要考虑人们在多个系统之间进行系统切换的时候,怎样打开多页面不迷失的问题。
易用性
易用性会提高用户习惯的能力和对使用的期望。主要从消费者的生产效率、容错率等方面来考究。
易理解:用户在使用该系统的时候,思维方式和常规人或软件的思维方式一样。例如1+1 结果为2(十进制),而不是10(二进制)
易学习:用户使用该系统所花费的成本是否过高。每个功能是否需要单独学习相关的操作和理解。
易操作:操作和控制该系统是否方便。例如页面排版上,下拉框数据过多的时候,是否有搜索功能等,可以方便快速找到内容。
可执行性
可以理解为执行效率。一般情况下对于可执行性的考核都是从时间维度和空间维度来考量。
时间维度:主要是看运行功能所需的时间。一般使用时间复杂度T(n)来表示。值越大,说明花费的时间越多。
空间维度:主要是看运行功能所需的资源(内存)。一般使用空间复杂度O(n)来表示,和上面一样,值越大,说明使用的内存越大。
可靠性
在规定的时间和条件下,其稳定运行的能力。主要从以下几个方面考量
稳定性:无错运行可以拿到几个9。例如99.99%这种。
容错性:软件在错误的数据和环境下,对于错误的处理能力。
可恢复性:程序在宕机后,多长时间能恢复。
可维护性
程序在上线后,进行修改和跟踪所需要花费的精力。一般从以下几个方面考量
分析性:为跟踪确定bug所花费的精力的长短比例。
扩展性:后续修改代码已有功能所花费的时间的长短比例
测试性:在修改后,验证功能所花费的时间比例。
可移植性
程序从一个环境切换到另外一套环境所需的时间考量
适应性:程序从一个环境切换到另外一个环境下,所需要准备的成本花费比例。例如从window切换到linux。
安装性:在不同环境下安装所花费的成本比例。
替换性:替换其它功能的机会成本
写代码,除了完成需求规定的功能外,还要综合考量在性能、可用性等
软件开发中的非功能需求类型相关推荐
- 测试自动化金字塔在软件开发中是如何使用的?
测试自动化金字塔,是一个指南,指导您进行什么类型的测试以及每种测试的数量.测试自动化金字塔有助于创建更高效的测试,并导致向客户发布更可靠的软件. 测试自动化金字塔的好处 测试自动化的大部分好处显而易见 ...
- 软件开发中会使用到的图
文章目录 软件开发中会用到的图 一.背景 二.图为了解决什么问题 三.不同流程中适合运用的图 四.实际的运用 五.结语 软件工程中的各种图 软件工程用的15种图 数据关系流图怎么画?这款软件教你轻松绘 ...
- 软件开发中常见知识总结
最近在准备软件开发的笔试面试,复(yu)习(xi)了一些在软件开发中的常见知识.为了给自己攒点RP,故与大家分享一二. 软件开发需要准备的比较多,主要分为编程语言,数据结构和算法,计算机网络,计算机操 ...
- 建模语言UML在软件开发中的应用
建模语言 UML 在软件开发中的应用 摘要:UML( Unified Modeling Language)是建立系统模型和分析业务处理流程强有力的工具,它能够帮助软件开发人员从不同角度描述系统,使 ...
- 软件开发中的详细设计
传统软件开发中的详细设计: 模块内的数据结构进行设计.比如模块中类.结构体的设计 对数据结构进行物体设计.比如数据库表的设计,文件存储的设计,文件存储目录的设计 每个模块进行详细算法设计.比如每个方法 ...
- 人工智能技术在软件开发中的应用
人工智能技术的不断发展和成熟,使得它在软件开发中的应用越来越广泛.人工智能技术的应用可以帮助软件开发人员提高效率.降低成本.增强软件的功能性和可靠性.在本文中,我们将探讨人工智能技术在软件开发中的应用 ...
- 对软件开发中uml建模的理解和图形整理(一)
由于uml(统一建模语言)在开发中经常会用到,特别是在软件开发中的OOAD阶段,因此要理解和使用uml显得尤为重要.在uml开始之前,咱先回顾一个OOAD.OOP的主要特征. OOAD:根据面向对象的 ...
- 低代码/无代码平台在软件开发中的应用
随着技术的不断发展,软件开发也在不断地进步.低代码/无代码平台已经成为软件开发的一个新的趋势.在这篇文章中,我们将深入探讨低代码/无代码平台在软件开发中的应用,包括它们的优势.如何选择合适的平台以及如 ...
- 浅谈软件开发中的假设条件
翻开第一篇聊假设条件的博客,发现已经快2年了.那篇主要涉及了点架构方面假设条件的东西,不是很全,今天开一篇聊一下软件开发中的假设条件.如果把假设条件限定在架构方面,稍显冷门.但如果将其扩展到整个软件开 ...
- 软件工程中的系统文献映射研究实例-软件开发中的假设条件与哪些软件制品关联(第四部分)
之前的博客详细描述了软件工程中的系统文献映射研究方法.这里接着给出一个我曾经做过的工作作为例子,以更直观地展示这种研究类型.该研究的背景信息这里不再赘述. 这篇博客主要介绍第三个研究问题的结果,即软件 ...
最新文章
- 科普丨机器学习和人类学习的区别到底是什么?
- texlive环境运行WinEdt系统找不到指定的文件
- eclipse build path 以及 clean(转)
- 【数据结构】KMP算法(c语言)
- 碎片化学前端,促进技术提升,我推荐这些
- 前端学习(2604):增加响应头可以获取数据
- MSDN WebCast网站全新改版
- html 动物特效,分享9款用HTML5/CSS3制作的动物人物动画,
- MySQL数据库张素青答案_MySQL数据库技术与应用
- Thinkphp6快速入门一
- 微信app用户及市场调研
- 陶哲轩实分析 习题6.3.3
- 群晖(synology)日历与IPhone日历同步
- CAD中的dxf文件解析(一):准备工作
- Windows10开机进不了BIOS的解决办法
- APP乱查征信?小心你的隐私被卖了!
- 没有 XXX 的手册页条目问题解决
- 低代码开发Paas平台时代来了
- 北京航空航天大学公开课:应用数学分析 笔记:微积分发展史,牛顿,莱布尼茨,拉格朗日,欧拉,柯西,黎曼
- php 获取带宽,php使用网络攻击占用超大带宽的,解决方案[转]