java非功能性需求兼容性的考虑方法 什么叫非功能需求_可执行

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

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

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

java非功能性需求兼容性的考虑方法 什么叫非功能需求_可执行_02

 

观感性

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

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

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

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

易用性

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

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

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

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

可执行性

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

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

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

可靠性

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

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

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

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

可维护性

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

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

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

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

可移植性

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

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

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

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

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