本发明涉及计算机技术领域,尤其涉及一种功能模块的加载方法及计算机可读存储介质。
背景技术:
在空调用户习惯分析系统软件设计中,需要对功能模块进行模块拆分。通常拆分方式是基于软件开发者与需求方的。
然而,需求方是开发者与查询系统的使用者之间沟通的桥梁,往往需求方和查询系统的使用者的想法无法完全达成一致。此时,自然而然就导致了软件设计的过程中由于与系统使用者的交流的缺失带来的功能模块的不合理拆分,从而最终影响了系统使用者的体验。
技术实现要素:
本发明要解决的技术问题是:现有技术中功能模块的拆分方式是基于软件开发者与需求方的,而需求方和查询系统的使用者的想法无法完全达成一致,从而在软件设计的过程中由于与系统使用者的交流的缺失而带来的功能模块的不合理拆,从而最终影响了系统使用者的体验。
为解决上述技术问题,本发明提供了一种功能模块的加载方法及计算机可读存储介质。
根据本发明的一个方面,提供了一种功能模块的加载方法,其包括:
获取步骤,获取在预设时间段内系统的各个功能模块被查询的历史查询数据;
权重确定步骤,根据所述历史查询数据,确定各个功能模块的查询权重;
判断步骤,基于查询权重判断各个功能模块是否满足预设的拆分条件;
拆分步骤,在判断出满足所述拆分条件的情况下,根据各个功能模块的查询权重确定待拆分的功能模块,对所述待拆分的功能模块进行拆分,并确定拆分后的功能模块的查询权重;
重复步骤,重复执行所述判断步骤和所述拆分模块,直到所述系统当前的功能模块不满足所述拆分条件为止;
加载步骤,加载所述系统当前的所有功能模块。
优选的是,所述权重确定步骤,包括:
针对系统的每个功能模块,分别执行以下步骤:
根据所述历史查询数据,确定该功能模块被查询时所使用的查询关键词以及各个查询关键词的查询次数;
根据查询关键词及其查询次数,得到该功能模块的总查询次数;
根据该功能模块的总查询次数和该功能模块的初始权重,确定该功能模块的查询权重。
优选的是,所述功能模块的初始权重被设定为满足:所述功能模块的逻辑需求越复杂,该功能模块的初始权重越大。
优选的是,根据功能模块的总查询次数和所述功能模块的初始权重,确定所述功能模块的查询权重,包括:
将所述功能模块的总查询次数与所述功能模块的初始权重的乘积,确定为所述功能模块的查询权重。
优选的是,所述预设的拆分条件为,所述系统的所有功能模块的查询权重中,最大查询权重大于或者等于最小查询权重与调整系数的乘积。
优选的是,所述调整系数被设定为满足:系统允许包括的功能模块数量越多所述调整系数越小;和/或,所述系统要求的功能模块耦合度越低所述调整系数越小。
优选的是,所述调整系数是手动设定的。
优选的是,在所述系统的开发周期小于一个月的情况下,将所述调整系数的取值范围设定为4-6;在所述系统的开发周期大于或者等于一个月的情况下,将所述调整系数的取值范围设定为2-3。
优选的是,所述拆分步骤,包括:
在判断出满足所述拆分条件的情况下,将具有最大查询权重的功能模块确定为所述待拆分的功能模块,并将该待拆分的功能模块拆分为查询权重大致相同的多个功能模块。
根据本发明的另一个方面,提供了一种计算机可读存储介质,其中存储有计算机程序,所述计算机程序被处理器执行时实现上述功能模块的加载方法。
与现有技术相比,上述方案中的一个或多个实施例可以具有如下优点或有益效果:
应用本发明的功能模块的加载方法,根据历史查询数据进行功能模块的拆分,相对于传统功能模块拆分办法提高了软件开发者与查询系统用户的交互性,增强了查询系统用户体验和程序设计的科学性。
附图说明
通过结合附图阅读下文示例性实施例的详细描述可更好地理解本公开的范围。其中所包括的附图是:
图1示出了本发明实施例功能模块的加载方法的流程示意图;
图2示出了本发明实施例中确定功能模块的查询权重的方法的流程示意图;
图3示出了本发明实施例中功能模块拆分实例图;
图4示出了本发明实施例中功能模块的拆分方法的流程示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,以下将结合附图及实施例来详细说明本发明的实施方法,借此对本发明如何应用技术手段来解决技术问题,并达成技术效果的实现过程能充分理解并据以实施。
现有技术的功能模块的拆分方式是基于软件开发者与需求方的,而需求方和查询系统的使用者的想法无法完全达成一致,从而在软件设计的过程中由于与系统使用者的交流的缺失而带来的功能模块的不合理拆,从而最终影响了系统使用者的体验。
为解决上述技术问题,本发明实施例提供了一种功能模块的加载方法。
实施例一
图1示出了本发明实施例功能模块的加载方法的流程示意图。如图1所示,本实施例的功能模块的加载方法主要包括步骤s101至步骤s105。
在步骤s101中,获取在预设时间段内系统的各个功能模块被查询的历史查询数据。这里,历史查询数据为用户体验反馈系统收集的用户查询习惯数据。
在步骤s102中,根据历史查询数据,确定各个功能模块的查询权重。
具体地,参照图2,确定各个功能模块的查询权重的方法主要包括步骤s1021至步骤s1023。
在步骤1021中,根据历史查询数据,确定用户查询当前功能模块时使用的查询关键词以及用户使用每个查询关键词进行查询的查询次数。
在步骤s1022中,根据查询关键词及其查询次数,得到该功能模块的总查询次数。这里,将当前功能模块对应的所有查询关键词的查询次数相加,即得到了当前功能模块的总查询次数。
在步骤s1023中,根据当前功能模块的总查询次数和当前功能模块的初始权重,确定该功能模块的查询权重。具体地,将功能模块的总查询次数与功能模块的初始权重的乘积,确定为功能模块的查询权重。这里,各个功能模块的初始权重为人为设定,设定的原则是:当前功能模块的逻辑需求越复杂,该功能模块的初始权重越大。
在步骤s103中,基于查询权重判断各个功能模块是否满足预设的拆分条件。
具体地,预设的拆分条件为:系统的所有功能模块的查询权重中,最大查询权重大于或者等于最小查询权重与调整系数的乘积。
这里,在本发明一优选的实施例中,调整系数可以被设定为满足:系统允许包括的功能模块数量越多调整系数越小(即系统允许包括的功能模块数量越少调整系数越大);和/或,系统要求的功能模块耦合度越低调整系数越小(系统要求的功能模块耦合度越高调整系数越大)。在本发明另一优选的实施例中,调整系数是手动设定的:在系统的开发周期小于一个月的情况下,将调整系数的取值范围设定为4-6;在系统的开发周期大于或者等于一个月的情况下,将调整系数的取值范围设定为2-3。
在步骤s104中,在判断出满足拆分条件的情况下,根据各个功能模块的查询权重确定待拆分的功能模块,对待拆分的功能模块进行拆分,并确定拆分后的功能模块的查询权重。这里,可将具有最大查询权重的功能模块确定为待拆分的功能模块,并将该待拆分的功能模块拆分为查询权重大致相同的多个功能模块。随后,重复执行步骤s103和步骤s104,直到系统当前的功能模块不满足拆分条件为止。
在步骤s105中,在判断出系统当前的功能模块不满足拆分条件的情况下,将系统当前的每个功能分别封装为一个独立的模块,并加载系统当前的所有功能模块。
应用本实施例的功能模块的加载方法,根据功能特性与查询频次等用户行为习惯进行功能模块拆分,查询频次如果达到预定值则将此功能拆分成单一模块。相对于传统功能模块拆分办法提高了软件开发者与查询系统用户的交互性,增强了查询系统用户体验和程序设计的科学性。此外,本实施例采集系统用户查询关键词,根据关键词查询频次计算功能模块的查询权重,超过阈值的模块以查询系统用户查询关键词为基本单元进行再拆分,查询权重达到阈值则将此功能拆分成单一模块。
实施例二
下面结合基于家用空调用户使用习惯的可视化分析系统这一具体应用场景对本实施例进行详细说明。
本实施例的功能模块的加载方法如下。
步骤1,数据采集系统接收用户空调回传数据,根据空调运行状态,故障原因等不同数据类型大致拆分功能模块,如拆分成运行参数模块、内机故障模块、外机故障模块等,根据逻辑需求设定这些模块的初始权重w1(也称为基础权重),如逻辑需求复杂的模块加大权重值。
步骤2,用户体验反馈系统收集用户的反馈数据,通过分析程序根据特征提取关键词,如空调开机时长、空调制热常选范围、内机高压保护故障等,统计关键词出现频次f1,出现频次高则代表空调用户的查询频次也会相应提高。
步骤3,在步骤2的基础上,设定关键词查询频次f2等于关键词出现频次,即f2=f1。
步骤4,在步骤1和步骤3的基础上,计算各模块查询频次f,如果功能模块中包含关键词数量为n,则将这n个关键词查询频次累加计算该功能模块总查询频次f。根据各个模块查询频次计算查询权重w,w=w1*f。
步骤5,判断功能模块是否需要重新拆分。首先设定可根据分析模型动态调整的倍率参数(即调整系数)x,此参数可根据功能模块数量限制以及耦合度要求进行调整。调整过程:(1)系统允许的模块增多,x减小;允许的模块减少,x增大。(2)系统要求模块耦合度低,x减小;要求耦合度高,x增大。如果最大的模块权重大于最小模块权重的x倍,即max(w)>=x*min(w),参考现有数据分析系统模块之间的差异设定x默认范围为[4-6],此时拆分的模块数量便于界面展示,则认为模块分配不合理导致权重倾斜,需要重新调整。
在本发明一优选的实施例中,根据分析模型调整的倍率参数x替代成软件开发者手动设定值,这样简化了根据功能模块数量限制以及耦合度要求进行调整的计算流程,降低了复杂度。但是会影响功能模块拆分的科学性,也较难根据业务需求选择最优方案。手动设定需要考虑模块可能的数量不能太多,开发周期少于一个月的小系统可以设定[4-6],开发周期更长的大系统可以设定为[2-3]。
步骤6,在步骤5的基础上,如果模块需要重新调整,则按照权重进行再拆分。首先拆分最大权重的模块,抽取关键词,以关键词为基本单元(每个关键词对应一个基本单元,功能模块包括多个基本单元,基本单元不可拆分)尽可能使拆分后的两个模块权重相等。
步骤7,依次判断当前最大模块是否满足步骤5的拆分条件,如果满足则按照步骤6进行再拆分;如果不满足则说明模块划分合理无需调整。
步骤8,在判断没有需要拆分的模块时,加载系统当前的所有模块。
下面参照图3和图4举例说明数据分析系统的拆分方法。
数据分析系统根据业务模块拆分成三个模块:功能模块1、功能模块2和功能模块3。分析程序根据用户历史查询数据,提取了每个功能模块的关键词,涉及的关键词包括:斜线填充的椭圆形代表的第一关键词、以圆点填充的椭圆形代表的第二关键词和以网格填充的椭圆形代表的第三关键词。
参照图3,与功能模块1关联的查询关键词有3个,两个第一关键词和一个第三关键词,功能模块1的查询频次为1*1 2*2=5,在功能模块1的初始权重为1的情况下,功能模块1的查询权重为1*(1*1 2*2)=5。
类似地,与功能模块2关联的查询关键词有2个,一个第一关键词和一个第二关键词,功能模块2的查询频次为2*1 4*1=6,在功能模块2的初始权重为1的情况下,功能模块2的查询权重为1*(2*1 4*1)=6。与功能模块3关联的查询关键词有1个,一个第三关键词,功能模块3的查询频次为1*1=1,在功能模块3的初始权重为1的情况下,功能模块3的查询权重为1*(1*1)=1。
假设拆分条件为max(模块)>=5*min(模块),这里,调整系数为5。很显然,查询权重最大的功能模块为功能模块2(查询权重为6),查询权重最小的功能模块为功能模块3(查询权重为1),满足拆分条件6>=5*1,将待拆分功能模块确定为功能模块2。将功能模块2拆分为功能模块2.1和功能模块2.2,其中,功能模块2.1仅包括一个对应第一关键词的基本单元,功能模块2.2仅包括一个对应第二关键词的基本单元,功能模块2.1的查询权重为1*2=2,功能模块2.2的查询权重为1*4=4。此时系统当前的功能模块包括功能模块1、功能模块2.1、功能模块2.2和功能模块3,再次判断出仍满足拆分条件5>=5*1,于是再拆分功能模块1。将功能模块1拆分为功能模块1.1和功能模块1.2,其中,功能模块1.1包括一个对应第一关键词的基本单元和一个对应第三关键词的基本单元,功能模块1.2仅包括一个对应第一关键词的基本单元,功能模块1.1的查询权重为1*(1*2 1*1)=3,功能模块1.2的查询权重为1*(1*2)=2。此时系统当前的功能模块包括功能模块1.1、功能模块1.2、功能模块2.1、功能模块2.2和功能模块3,很显然此时不再满足预设的拆分条件。随后加载系统当前的功能模块1.1、1.2、2.1、2.2和3即可。
应用本实施例的功能模块的加载方法,根据功能特性与查询频次等用户行为习惯进行功能模块拆分,查询频次如果达到预定值则将此功能拆分成单一模块。相对于传统功能模块拆分办法提高了软件开发者与查询系统用户的交互性,增强了查询系统用户体验和程序设计的科学性。此外,本实施例采集系统用户查询关键词,根据关键词查询频次计算功能模块的查询权重,超过阈值的模块以查询系统用户查询关键词为基本单元进行再拆分,查询权重达到阈值则将此功能拆分成单一模块。
实施例三
本实施例提供了一种计算机可读存储介质。本实施例的计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如上述实施例或实施例二的功能模块的加载方法。
应用本实施例,根据功能特性与查询频次等用户行为习惯进行功能模块拆分,查询频次如果达到预定值则将此功能拆分成单一模块。相对于传统功能模块拆分办法提高了软件开发者与查询系统用户的交互性,增强了查询系统用户体验和程序设计的科学性。此外,本实施例采集系统用户查询关键词,根据关键词查询频次计算功能模块的查询权重,超过阈值的模块以查询系统用户查询关键词为基本单元进行再拆分,查询权重达到阈值则将此功能拆分成单一模块。
虽然本发明所公开的实施方式如上,但所述的内容只是为了便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属技术领域内的技术人员,在不脱离本发明所公开的精神和范围的前提下,可以在实施的形式上及细节上作任何的修改与变化,但本发明的保护范围,仍须以所附的权利要求书所界定的范围为准。
1.一种功能模块的加载方法,其特征在于,包括:
获取步骤,获取在预设时间段内系统的各个功能模块被查询的历史查询数据;
权重确定步骤,根据所述历史查询数据,确定各个功能模块的查询权重;
判断步骤,基于查询权重判断各个功能模块是否满足预设的拆分条件;
拆分步骤,在判断出满足所述拆分条件的情况下,根据各个功能模块的查询权重确定待拆分的功能模块,对所述待拆分的功能模块进行拆分,并确定拆分后的功能模块的查询权重;
重复步骤,重复执行所述判断步骤和所述拆分模块,直到所述系统当前的功能模块不满足所述拆分条件为止;
加载步骤,加载所述系统当前的所有功能模块。
2.根据权利要求1所述的加载方法,其特征在于,所述权重确定步骤,包括:
针对系统的每个功能模块,分别执行以下步骤:
根据所述历史查询数据,确定该功能模块被查询时所使用的查询关键词以及各个查询关键词的查询次数;
根据查询关键词及其查询次数,得到该功能模块的总查询次数;
根据该功能模块的总查询次数和该功能模块的初始权重,确定该功能模块的查询权重。
3.根据权利要求2所述的加载方法,其特征在于,所述功能模块的初始权重被设定为满足:所述功能模块的逻辑需求越复杂,该功能模块的初始权重越大。
4.根据权利要求3所述的加载方法,其特征在于,根据功能模块的总查询次数和所述功能模块的初始权重,确定所述功能模块的查询权重,包括:
将所述功能模块的总查询次数与所述功能模块的初始权重的乘积,确定为所述功能模块的查询权重。
5.根据权利要求1所述的加载方法,其特征在于,所述预设的拆分条件为,所述系统的所有功能模块的查询权重中,最大查询权重大于或者等于最小查询权重与调整系数的乘积。
6.根据权利要求5所述的加载方法,其特征在于,所述调整系数被设定为满足:系统允许包括的功能模块数量越多所述调整系数越小;和/或,所述系统要求的功能模块耦合度越低所述调整系数越小。
7.根据权利要求5所述的加载方法,其特征在于,所述调整系数是手动设定的。
8.根据权利要求7所述的加载方法,其特征在于,在所述系统的开发周期小于一个月的情况下,将所述调整系数的取值范围设定为4-6;在所述系统的开发周期大于或者等于一个月的情况下,将所述调整系数的取值范围设定为2-3。
9.根据权利要求1至8中任一项所述的加载方法,其特征在于,所述拆分步骤,包括:
在判断出满足所述拆分条件的情况下,将具有最大查询权重的功能模块确定为所述待拆分的功能模块,并将该待拆分的功能模块拆分为查询权重大致相同的多个功能模块。
10.一种计算机可读存储介质,其特征在于,其中存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至9中任一项所述的功能模块的加载方法。
技术总结