随着互联网的不断发展,越来越多的app软件出现在我们的周边,但是同质化竞争环境下,一些非核心的周边服务需求就成为了抢用户的重点,而今天我们就一起来了解一下,非功能性需求都要满足哪些条件才能开发。
效率
效率,关注点是业务量与资源容量的占比,以及业务流量的合理分配,对这一块提出的要求是宜尽量贴近适应实际的生产需求,并且具备应对业务量的变化(快速增长或者下降)的能力,不宜资源闲置浪费或因为资源调度的不灵活造成的生产影响,这两点开起来似乎有些矛盾,不过那是放在姿态的资源分配上,如果采用动态的资源分配方法,那么就像三维看二维一样,是有合理的解决途径的。关于效率的需求在开发和运维过程中都存在,并且是一个动态的需求;
兼容性
兼容性,软件之间是否能够正确地交互和共享信息。兼容性对于软件的意义取决于开发小组用什么来定义,以及软件运行的系统要求的兼容性级别。兼容性包括向后和向前兼容:向后兼容是指可以使用软件的以前版本。向前兼容是指可以使用软件的未来版本。在特定的时间内,可能存在多个版本同时存在的情况,并因此诞生出新的用户需求,如易用性需求,通俗来说就是用户体验;
易用性
易用性,是非功能需求里面火的一个话题,也是能体现软件是否按“用户就是上帝”的态度来设计的评判标准之一,易用性是与一组规定或者潜在的用户为使用其软件所需做的努力和对这样的使用所作的评价有关的一组属性。具体包括:易理解性、易学习性、易操作性等。这类非功能需求是与UI/UE设计有着直接关系的,也就是说这类属性会关联到具体的技术性功能需求,也因此,UE到底是划分在功能性需求还是非功能性需求上,尚有一些争议,但是主流观点都认为,这是非功能性需求的一个典型部分;
安全性
安全性,包括传输加密,存储加密,可破解性,以及各种未被授权的用户行为如何防范和控制等,这里的安全不单针对外部普通用户,也针对内部不同级别的权限用户的的控制,不单指服务端,也包括传输通道,客户端,细到精巧的技术渗透如慢速撞库,粗到混合流量的DDoS攻击,都需要考虑在内,在生活中我们做任何事情都需要安全感,在信息世界中这种需要更被放大了许多。在安全性的考虑上,需要综合考虑架构层、网络层和应用层的安全,还有一个非常重要的因素就是安全的ROI,这里不单单指投入的金钱,更指投入的资源,因为,往往安全性和易用性可能是成反比的,所以,灵活适用是安全的一个重要前提;
可靠性
可靠性,在规定的一段时间和条件下软件维持其性能水平的能力有关的一组属性。具体包括:
成熟性
与有软件故障引起失效的频度有关的软件属性。
容错性
与在软件故障或违反指定接口的情况下维持规定的性能水平的能力有关的软件属性。如离线录入支持等。
易恢复性
与在是小发生后重建其性能水平并恢复直接受影响数据的能力,以及为达到此目的所需时间和努力有关的软件属性。如表单数据自动保存等。
这类非功能需求通常是全局的,他除了与系统运行环境、平台选择、代码质量相关之外,还会涉及部分技术性功能需求,他别是容错性、易恢复性的实现都需要一些具体的功能来支持;
可维护性
可维护性,维护性是指与进行指定的修改所需的努力有关的一组属性。具体包括:
易分析性
与为诊断缺陷或者失效原因及为判定待修改的部分所需努力有关的软件属性。如日志记录系统等。
易改变性
与进行修改排除错误或者适应环境变化所需努力有关的软件属性。
稳定性
与修改所造成的未预料结果的风险有关的软件属性。
易测试性
与确认已修改软件所需的努力有关的软件属性。