本申请涉及计算机软件设计,尤其涉及一种基于大数据的软件模块划分方法及系统。
背景技术:
1、在软件数据处理领域,常常需要根据功能设计不同的软件模块,而后基于软件模块设计具体的硬件或者软件系统等。而在软件模块的设计和划分中,一个功能模块需要尽可能集合多个子功能元素,即可以实现尽量多的子功能。且子功能元素之间的耦合需要尽可能地少,避免一个子功能元素的故障导致更多的子功能元素(或者更多的功能模块的故障)。而一些软件的划分算法又过于紧密复杂,在应用于高精度的系统层面时,其效益较高,但却难以应用于一些简单化的应用场景下的系统划分。而采用简单的算法,又难以将简单化的系统的功能模块划分到尽可能优。
技术实现思路
1、本申请实施例提供一种基于大数据的软件模块划分方法及系统,可以快速对简易的系统进行功能模块划分,且划分效益较高,实现了较高的划分性价比。
2、为达到上述目的,本申请的实施例采用如下技术方案:
3、第一方面,提供了一种基于大数据的软件模块划分方法,该方法包括:
4、根据软件的实现功能,生成对应数量的多个子功能元素;
5、根据多个子功能元素之间的接口调用关系,得到功能关系矩阵;
6、为不同类型的所述子功能元素设定不同的权重值,根据所述权重值对所述功能关系矩阵进行分级;
7、根据分级后的所述功能关系矩阵,将一个或多个所述子功能元素划分为一个功能模块以得到多个功能模块;每个所述功能模块中包括所有分级对应的所述子功能元素。
8、在本申请实施例中,根据接口调用关系,可以得到不同的子功能元素之间对应的调用关联,根据调用关联确定功能关系矩阵。而后,可以对每个子功能元素设定对应的权重,该权重即对应着不同的分级,分级越高的子功能元素,对应的权重越高。越高的权重,代表着该子功能元素相关的接口关系越多、功能事物重要性越大等等。根据分级的权重、接口关系等等,可以对多个子功能模块进行聚类,最终得到聚类后的多个功能模块。通过划分出的功能模块对软件和/或硬件进行设计。
9、在一种可能的实施方式中,在一个所述功能模块中,不同级之间的子功能元素之间的接口数量最少。
10、在一种可能的实施方式中,所述将一个或多个所述子功能元素划分为一个功能模块以得到多个功能模块,包括:
11、计算每一个所述子功能元素的失效概率;根据分级后的所述功能关系矩阵,以及每个所述子功能元素的失效概率,将一个或多个所述子功能元素划分为一个所述功能模块以得到多个所述功能模块。
12、在一种可能的实施方式中,在一个所述功能模块中,不同级之间的所述子功能元素之间的总失效概率最低。
13、在一种可能的实施方式中,所述不同类型包括事物类型,关联深度、关联次数。
14、在一种可能的实施方式中,所述根据多个子功能元素之间的接口调用关系,得到功能关系矩阵,包括:
15、在每个所述子功能元素对应的代码的起始位置处和终结位置处分别设置起始接口点和终止接口点;根据所述起始接口点和所述终止接口点获取每个所述子功能元素之间对应的接口调用关系,得到所述功能关系矩阵。
16、在一种可能的实施方式中,采用马尔可夫聚类方法对所述子功能元素进行聚类分析,以得到多个所述功能模块。
17、在一种可能的实施方式中,对所述聚类分析进行结果优化;所述结果优化采用遗传算法或爬山算法。
18、第二方面,本申请实施例还提供了一种基于大数据的软件模块划分系统,该基于大数据的软件模块划分系统包括子功能生成模块、接口调用查询模块、矩阵分级模块和划分模块;其中,
19、所述子功能生成模块用于,根据设定需求生成子功能集合;所述子功能集合中包括多个子功能元素;每个所述子功能元素对应需要实现的一种软件功能;
20、所述接口调用查询模块用于,在每个所述子功能元素对应的代码的起始位置处和终结位置处分别设置起始接口点和终止接口点;根据所述起始接口点和所述终止接口点获取每个所述子功能元素之间对应的接口调用关系,得到所述功能关系矩阵;
21、所述矩阵分级模块用于,为不同类型的所述子功能元素设定不同的权重值,根据所述权重值对所述功能关系矩阵进行分级;
22、所述划分模块用于,根据所述接口调用关系、每个所述子功能元素的失效概率和每个所述子功能元素的事务类型中的至少一个参数,将分级后的所述功能关系矩阵划分为多个功能模块。
23、第三方面,本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质包括指令,当所述指令在如第二方面所记载的基于大数据的软件模块划分系统上运行时,使得所述系统执行如第一方面所记载的基于大数据的软件模块划分方法。
24、关于第二方面和第三方面的有益效果,可以参考第一方面的有益效果,故不再赘述。
1.一种基于大数据的软件模块划分方法,其特征在于,包括:
2.一种基于大数据的软件模块划分系统,其特征在于,包括子功能生成模块、接口调用查询模块、矩阵分级模块和划分模块;其中,
3.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括指令,当所述指令在如权利要求2所述的基于大数据的软件模块划分系统上运行时,使得所述系统执行如权利要求1所述的基于大数据的软件模块划分方法。