什么是非功能性需求?非功能性需求包括哪些方面?非功能性需求它是指信息系统中能够保证系统可靠性,性能,可扩展性要求等方面的相应需求的要素。一般我们不会在用户的业务需求中明确的把它提出来,它是需要分析人员根据当时实际的业务需要进行调研总结和归纳,接下来我们为大家介绍一下非功能性需求包括什么,可以从以下几个方面进行分析。
一性能方面:
1、响应时间:分日常交互类、日常查询类、批量交易分别考虑。
日常交易指传统的大厅交互业务,如纳税申报、发票销售等,以及一次完成多笔业务处理的交易,如批量扣款等,日常交互类业务具有较高的响应要求。 查询类业务如登记资料查询、申报数据查询等。查询业务由于受到查询的复杂程度、查询的数据量大小等因素的影响,需要根据具体情况而定,给出一个参考范围。
批处理业务如会计核算等业务处理,该类业务处理复杂、操作数据量大、处理时间长。响应时间指标包括:平均响应时间参考值(秒)、峰值响应时间参考值(秒)。
2、用户数:用户数要考虑用户数的增长情况,有以下指标:总用户数、峰值在线用户数、峰值并发用户数、平均在线用户数、平均并发用户数。
3、吞吐量:系统交易量的估算。指标有年交易笔数(笔/年)、高峰期交易笔数(笔/天)。
4、数据存储量:每年的数据存储容量(G)及未来几年该数量的预期(增长)值。指标包括累计存储容量(G)、年增长(G)。
二、系统可靠性:一般是窗口业务应在从星期一到星期五的所有工作日的工作时间是可以使用的;其它业务应满足7×24小时可以使用。
三、可扩展性:可实现负载均衡;日后若信息量较大,则系统可相应增加服务器实现扩展。所谓非功能性需求,是指软件产品为满足用户业务需求而必须具有且除功能需求以外的特性。软件产品的非功能性需求包括系统的性能、可靠性、可维护性、可扩充性和对技术和对业务的适应性等。下面对其中的某些指标加以说明。在这里可以看到非功能性需求涉及的范围很广,软件产品本身不是孤立存在的,还涉及到诸多外在环境的影响。非功能性需求必须考虑软件既要可用,又要易用。
对于非功能性需求描述的困难在于很难像功能性需求那样,可以通过结构化和量化的词语来描述清楚,在描述这类需求时候我们经常采用软件性能要好,查询要在多少时间内出结果,软件健壮性要好等较模糊的描述词语。这类描述词语都是脱离了软件的执行环境,人和相关的场景的描述,因此信息很难体现到软件架构设计和具体的实现中。我们在架构设计中关注的安全,系统开发框架,并发和性能,异常日志等不是凭空产生出来的,而是来源于我们对非功能性需求的分析。
一个软件系统必须完整,因此不仅仅包括了可执行的程序,还包括了在线帮助,数据和用户管理,日志异常查询,自动升级等相关功能特征。这些需求不仅仅是为了满足用户的需要,也是为了我们后续维护和监控系统的需要。
系统的可靠性,可维护性和适应性是密不可分的。当系统出现故障和用户出现错误的操作后是否支持恢复,当用户在使用过程中遇到错误的时候是否可以立即定位问题,但业务场景和逻辑发生变化的时候系统是否支持,当网络不稳定或使用中异常中断的情况下系统是否都有相应的容错措施,这些都是需要在非功能性需求中考虑到的问题。
易用性也是我们在开发非功能性需求中必须要考虑到的问题,易用性同时还涉及到美工和UI界面,人机工程,交互式设计,心理学,用户行为模式等多方面的知识。易用性的三原则就是易见,易学和易用或者叫为发现,易懂,效率。易见就是各种功能操作不要藏得太深,用户很容易找到他们期望进行的各种操作;易学需要软件系统通过在线帮助,导航,向导等各种方式保证软件是可自学习的;易用的重点则在软件在熟练使用后应该可以更快的进行各项操作。这三者相互间也存在冲突,需要平衡,而平衡的一个重点就是真正的做到以用户为中心进行设计,需要去细分场景和用户。
对于非功能性需求的描述,在描述过程中必须要强调到人,业务场景,环境等各方面的内容。强调的目的就是要说明非功能性需求不是无限度的,任何一项非功能性需求的实现往往会付出更大的研发人力成本和硬件网络成本。
以上我们为大家分享了什么是非功能性需求?非功能性需求包括哪些方面?如果您还想继续了解相关内容,请您及时关注中培教育。