CN105183436A - 软件构件的生成方法和系统 - Google Patents
软件构件的生成方法和系统 Download PDFInfo
- Publication number
- CN105183436A CN105183436A CN201410280082.XA CN201410280082A CN105183436A CN 105183436 A CN105183436 A CN 105183436A CN 201410280082 A CN201410280082 A CN 201410280082A CN 105183436 A CN105183436 A CN 105183436A
- Authority
- CN
- China
- Prior art keywords
- similarity
- function items
- item
- integrated functionality
- items
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种软件构件的生成方法和系统,获取软件预设的各个功能项,依次两两计算各个功能项之间的相似度,并确定相似度最大的功能项,在确定的功能项之间的相似度大于或等于预设的阀值时,将相似度最大的功能项集合成一个集成功能项,且将该集成功能项作为一个功能项与其它功能项进行相似度计算,继续依次两两计算各个功能项之间的相似度,并确定相似度最大的功能项,直至确定的功能项之间的相似度小于预设的阀值,并将各个功能项集成为软件的各个构件。该方案将相似度较大的功能项集成为一个构件,使得构件的可复用性高,避免资源的浪费。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种软件构件的生成方法和系统。
背景技术
基于构件的软件开发(Component-BasedSoftwareDevelopment)被认为是解决软件危机的重要手段,是实现软件复用和软件工业化生产的关键支撑技术。软件开发的产品可以划分到两个空间,一个是需求空间一个是解空间,如何解决好这两个空间产品的复用性是软件复用技术考虑的关键。构件是解空间产品的一阶实体,是实现软件复用的基石。
在基于构件化软件开发的过程中构件的识别是关键的一步,在采用功能项聚合成为构件的过程中,由于无法确定各个功能项之间的内聚性和耦合性,导致生成的构件可复用性较低,造成资源的浪费。
发明内容
本发明的主要目的是提供一种软件构件的生成方法和系统,旨在提高软件构件的可复用性。
本发明提出一种软件构件的生成方法,包括:
S10,获取软件预设的各个功能项;
S20,依次两两计算各个功能项之间的相似度,并确定相似度最大的功能项;
S30,在确定的功能项之间的相似度大于或等于预设的阀值时,将相似度最大的功能项集合成一个集成功能项,且将该集成功能项作为一个功能项与其它功能项进行相似度计算;
S40,继续执行步骤S20,直至确定的功能项之间的相似度小于预设的阀值,将各个功能项分别集成为软件的各个构件;或者,继续执行步骤S20,直至所有相似度大于或等于预设的阀值的功能项集合成为一个集成功能项,将该集成功能项集成为软件的构件。
优选地,所述步骤S20包括:
在进行相似度计算的两个功能项均为单个功能项时,分别获取两个功能项对于不同的业务操作的属性;
根据获取的两个功能项对于不同业务操作的属性,确定两个功能项之间的动态相似度;
确定两个功能项之间的静态关系,并根据预设的静态关系与静态相似度之间的映射关系,确定两个功能项之间的静态相似度;
根据预设的动态相似度以及静态相似度之间的权重,以及确定的动态相似度和静态相似度,计算两个功能项之间的相似度,并确定相似度最大的功能项。
优选地,所述根据获取的两个功能项对于不同业务操作的属性,确定两个功能项之间的动态功能项的步骤包括:
根据获取的两个功能项对于不同业务操作的属性,生成两个功能项对于不同业务操作的属性组合;
根据各个属性组合的数量以及各个属性组合所对应的权重计算两个功能项之间的动态相似度。
优选地,所述步骤S20还包括:
在进行相似度计算的两个功能项中存在集成功能项时,计算两个集成功能项中的各个功能项之间的相似度;或者,计算集成功能项中的各个功能项以及另一单独功能项之间的相似度;
基于计算得到的各个功能项之间的相似度确定集成功能项和单个功能项之间的相似度,或者集成功能项之间的相似度,并确定相似度最大的功能项。
优选地,所述基于计算得到的各个功能项之间的相似度确定集成功能项和单个功能项,或者集成功能项之间的相似度,并确定相似度最大的功能项的步骤包括:
获取两个集成功能项中的各个功能项之间的相似度的最小值,将获取到的最小值作为两个集成功能项之间的相似度;或者,获取集成功能项中的各个功能项以及另一单独功能项之间的相似度的最小值,将获取到的最小值作为集成功能项与另一单独功能项之间的相似度;
确定各个集成功能项之间的相似度,以及集成功能项与单独功能项相似度中,相似度最大的功能项。
优选地,所述基于计算得到的各个功能项之间的相似度确定集成功能项和单个功能项,或者集成功能项之间的相似度,并确定相似度最大的功能项的步骤包括:
获取两个集成功能项中的各个功能项之间的相似度的最大值,将获取到的最大值作为两个集成功能项之间的相似度;或者,获取集成功能项中的各个功能项以及另一单独功能项之间的相似度的最大值,将获取到的最大值作为集成功能项与另一单独功能项之间的相似度;
确定各个集成功能项之间的相似度,以及集成功能项与单独功能项相似度中,相似度最大的功能项。
优选地,所述基于计算得到的各个功能项之间的相似度确定集成功能项和单个功能项,或者集成功能项之间的相似度,并确定相似度最大的功能项的步骤包括:
获取两个集成功能项中的各个功能项之间的相似度的平均值,将获取到的平均值作为两个集成功能项之间的相似度;或者,获取集成功能项中的各个功能项以及另一单独功能项之间的相似度的平均值,将获取到的平均值作为集成功能项与另一单独功能项之间的相似度;
确定各个集成功能项之间的相似度,以及集成功能项与单独功能项相似度中,相似度最大的功能项。
优选地,所述基于计算得到的各个功能项之间的相似度确定集成功能项和单个功能项,或者集成功能项之间的相似度,并确定相似度最大的功能项的步骤包括:
对两个集成功能项中的各个功能项之间的相似度进行加权平均计算,将加权平均计算结果作为两个集成功能项之间的相似度,其中,任意两个功能项之间的相似度的权重系数为两个个功能项分别包含的单个功能项的数量的乘积与两个功能项所在的集成功能项中分别包含的单个功能项的数量的乘积之间的比值;
或者,对集成功能项中的各个功能项以及另一单独功能项之间的相似度进行加权,将加权平均计算结果作为单个功能项与集成功能项之间的相似度,任意两个功能项之间的相似度的权重系数为两个个功能项分别包含的单个功能项的数量的乘积与两个功能项所在的集成功能项中分别包含的单个功能项的数量的乘积之间的比值;
确定各个集成功能项之间的相似度,以及集成功能项与单独功能项相似度中,相似度最大的功能项。
优选地,所述步骤S10之后还包括:
判断待生成构件的数量是否为1;
在待生成构件的数量等于1时,直接将提取的各个功能项集成为软件的构件;
在待生成构件的数量大于1时,执行步骤S20。
本发明还提出一种软件构件的生成系统,包括:
获取模块,用于获取软件预设的各个功能项;
相似度计算模块,用于依次两两计算各个功能项之间的相似度;
确定模块,用于确定相似度最大的功能项;
集合模块,用于在确定的功能项之间的相似度大于或等于预设的阀值时,将相似度最大的功能项集合成一个集成功能项,且将该集成功能项作为一个功能项与其它功能项进行相似度计算;
所述相似度计算模块还用于在集合模块将相似度最大的功能项集合成一个集成功能项之后,继续依次两两计算各个功能项之间的相似度,直至确定模块确定的功能项之间的相似度小于预设的阀值;或者所述相似度计算模块还用于在集合模块将相似度最大的功能项集合成一个集成功能项之后,继续依次两两计算各个功能项之间的相似度,直至所有功能项集成为一个集成功能项;
所述构件生成模块,用于将各个功能项分别集成为软件的各个构件,或者在所有相似度大于或等于预设的阀值的功能项集成为一个集成功能项时,将该集成功能项集成为软件的构件。
优选地,所述相似度计算模块包括:
获取单元,用于在进行相似度计算的两个功能项均为单个功能项时,分别获取两个功能项对于不同的业务操作的属性;
确定单元,用于根据获取的两个功能项对于不同业务操作的属性,确定两个功能项之间的动态相似度,以及确定两个功能项之间的静态关系,并根据预设的静态关系与静态相似度之间的映射关系,确定两个功能项之间的静态相似度;
计算单元,用于根据预设的动态相似度以及静态相似度之间的权重,以及确定的动态相似度和静态相似度,计算两个功能项之间的相似度。
优选地,所述确定单元包括:
生成子单元,用于根据获取的两个功能项对于不同业务操作的属性,生成两个功能项对于不同业务操作的属性组合;
计算子单元,用于根据各个属性组合的数量以及各个属性组合所对应的权重计算两个功能项之间的动态相似度。
优选地,所述计算单元还用于在进行相似度计算的两个功能项中存在集成功能项时,计算两个集成功能项中的各个功能项之间的相似度,或者计算集成功能项中的各个功能项以及另一单独功能项之间的相似度;所述确定单元还用于基于计算得到的各个功能项之间的相似度确定集成功能项和单个功能项之间的相似度,或者集成功能项之间的相似度。
优选地,所述确定单元包括:
处理子单元,用于获取两个集成功能项中的各个功能项之间的相似度的最小值,将获取到的最小值作为两个集成功能项之间的相似度;或者,获取集成功能项中的各个功能项以及另一单独功能项之间的相似度的最小值,将获取到的最小值作为集成功能项与另一单独功能项之间的相似度;
优选地,所述确定单元包括:
处理子单元,用于获取两个集成功能项中的各个功能项之间的相似度的最大值,将获取到的最大值作为两个集成功能项之间的相似度;或者,获取集成功能项中的各个功能项以及另一单独功能项之间的相似度的最大值,将获取到的最大值作为集成功能项与另一单独功能项之间的相似度。
优选地,所述确定单元包括:
处理子单元,用于获取两个集成功能项中的各个功能项之间的相似度的平均值,将获取到的平均值作为两个集成功能项之间的相似度;或者,获取集成功能项中的各个功能项以及另一单独功能项之间的相似度的平均值,将获取到的平均值作为集成功能项与另一单独功能项之间的相似度。
优选地,所述确定单元包括:
处理子单元,用于对两个集成功能项中的各个功能项之间的相似度进行加权平均计算,将加权平均计算结果作为两个集成功能项之间的相似度,其中,任意两个功能项之间的相似度的权重系数为两个功能项分别包含的单个功能项的数量的乘积与两个功能项所在的集成功能项中分别包含的单个功能项的数量的乘积之间的比值;
或者,对集成功能项中的各个功能项以及另一单独功能项之间的相似度进行加权,将加权平均计算结果作为单个功能项与集成功能项之间的相似度,任意两个功能项之间的相似度的权重系数为两个功能项分别包含的单个功能项的数量的乘积与两个功能项所在的集成功能项中分别包含的单个功能项的数量的乘积之间的比值。
优选地,所述确定模块还用于判断待生成构件的数量是否为1;所述构件生成模块还用于在待生成构件的数量等于1时,直接将提取的各个功能项集成为软件的构件;相似度计算模块还用于在待生成构件的数量大于1时,依次两两计算各个功能项之间的相似度。
本发明提出的软件构件的生成方法和系统,获取软件预设的各个功能项,依次两两计算各个功能项之间的相似度,并确定相似度最大的功能项,在确定的功能项之间的相似度大于或等于预设的阀值时,将相似度最大的功能项集合成一个集成功能项,且将该集成功能项作为一个功能项与其它功能项进行相似度计算,继续依次两两计算各个功能项之间的相似度,并确定相似度最大的功能项,直至确定的功能项之间的相似度小于预设的阀值,并将各个功能项集成为软件的各个构件。该方案将相似度较大的功能项集成为一个构件,使得构件的可复用性高,避免资源的浪费。
附图说明
图1为本发明软件构件的生成方法第一实施例的流程示意图;
图2为图1中步骤S20第一实施例的流程示意图;
图3为图1中步骤S20第二实施例的流程示意图;
图4为本发明软件构件的生成方法第二实施例的流程示意图;
图5为本发明软件构件的生成系统较佳实施例的功能模块示意图;
图6为图5中相似度计算模块的具体结构示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
下面结合附图及具体实施例就本发明的技术方案做进一步的说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参照图1,图1为本发明软件构件的生成方法第一实施例的流程示意图。
本实施例提出一种软件构件的生成方法,包括:
S10,获取软件预设的各个功能项;
在本实施例中,系统设计人员根据软件所要实现的功能预设各个对应的功能项,例如铜浮选泡沫图像监控软件(以下将以该铜浮选泡沫图像监控软件进行说明,这里所述的铜浮选泡沫图像监控软件用于基于矿物浮选槽中形成的泡沫图像进行速度以及颜色特征等提取,根据提取的进行速度以及颜色特征有效的选矿,该铜浮选泡沫图像监控软件包括以下功能:a、用户管理;b、泡沫图像的采集、显示和保存;c、泡沫图像的处理及处理结果的保存和直观化标识;d、专家知识库;e、粗选槽泡沫品味预测;d、趋势分析)中功能项可包括的RGB颜色空间计算功能、HIS颜色空间计算功能以及LAB颜色空间计算功能。
S20,依次两两计算各个功能项之间的相似度,并确定相似度最大的功能项;
在本实施例中,有多个功能项时依次按照预设的顺序依次两两计算各个功能项之间的相似度,例如,在有四个功能项A、B、C以及D时,先分别计算功能项A与B、C以及D之间的相似度,然后计算功能项B与功能项C和D之间的相似度,以及功能项C与功能项D之间的相似度,在计算出各个功能项之间的相似度之后,按照计算结果功能项两两进行排序,以确定相似度最大的功能项,该相似度最大的功能项不少于两个,可以为两个也可为多个,在相似度最大的功能项为多个时,可能多个功能项之间的相似度相等且为最大。
S30,在确定的功能项之间的相似度大于或等于预设的阀值时,将相似度最大的功能项集合成一个集成功能项,且将该集成功能项作为一个功能项与其它功能项进行相似度计算;
在本实施例中,该预设的阀值可由软件系统设计人员提前设置,根据设置的阀值将软件分为预设数量的构件。当前有A、B、C、D以及E五个功能项时,分别两两计算各个功能项之间的相似度,在功能项A和C之间的相似度最大时,将功能项A和C集合成一个集合功能项G,此时将集成功能项G作为一个新的功能项与其它功能项之间进行相似度计算,例如依次两两计算功能项G、B、D以及E之间的相似度。
S40,继续执行步骤S20,直至确定的功能项之间的相似度小于预设的阀值,将各个功能项分别集成为软件的各个构件;或者,继续执行步骤S20,直至所有相似度大于或等于预设的阀值的功能项集合成为一个集成功能项,将该集成功能项集成为软件的构件。
在本实施例中,在相似度最大的功能项之间的相似度小于预设的阀值时,不进行功能项的合并,为了保证各个构件中功能项的高内聚性。而由于可能存在每次计算功能项时,相似度最大的功能项之间的相似度均大于等于预设的阀值,此时则需要判断多个功能项是否集成为一个功能项,在多个功能项集成为一个功能项时,停止执行步骤S20,在多个功能项并未集成为一个集成功能项时,继续执行步骤S20。在生成构件后,基于生成的构件进行软件代码的编写。
本实施例提出的软件构件的生成方法,获取软件预设的各个功能项,依次两两计算各个功能项之间的相似度,并确定相似度最大的功能项,在确定的功能项之间的相似度大于或等于预设的阀值时,将相似度最大的功能项集合成一个集成功能项,且将该集成功能项作为一个功能项与其它功能项进行相似度计算,继续依次两两计算各个功能项之间的相似度,并确定相似度最大的功能项,直至确定的功能项之间的相似度小于预设的阀值,并将各个功能项集成为软件的各个构件。该方案将相似度较大的功能项集成为一个构件,使得构件的可复用性高,避免资源的浪费。
具体的,参照图2,步骤S20包括:
步骤S21,在进行相似度计算的两个功能项均为单个功能项时,分别获取两个功能项对于不同的业务操作的属性;
在本实施例中业务操作可为多种,不同的业务操作可由软件系统设计人员进行软件用例分析得出,如表1所示:
表1
在表1中,C表示创建、U表示使用、N表示未使用即空值,业务操作包括BC1、BC2、BC3和BC4四种。本领域技术人员可以理解的时,在本实施例中,业务操作并不局限于上述四种,上述表1仅仅为了说明业务操作与业务属性之间的映射关系的举例说明。例如,铜浮选泡沫图像监控软件中的业务操作可包括颜色提取、速度跟踪、图像分割、纹理分析以及尺寸提取等业务操作。
步骤S22,根据获取的两个功能项对于不同业务操作的属性,确定两个功能项之间的动态相似度;
在本实施例中,步骤S22包括:
步骤S221,根据获取的两个功能项对于不同业务操作的属性,生成两个功能项对于不同业务操作的属性组合;
步骤S222,根据各个属性组合的数量以及各个属性组合所对应的权重计算两个功能项之间的动态相似度。
两个功能项对于不同业务操作的属性组合包括:C-C、C-U(U-C)、U-U、C-N(N-C)、U-N(N-U)以及N-N六种,若六种属性组合对应的权重分别为w1,w2,w3,w4,w5和w6,个数分别是s1,s2,s3,s4,s5和s6,没有该属性组合时,该属性组合所对应的个数为0,则对应的动态相似度RD1(BF1,BF2)的计算公式如公式1所示。
步骤S23,确定两个功能项之间的静态关系,并根据预设的静态关系与静态相似度之间的映射关系,确定两个功能项之间的静态相似度;
在本实施例中,功能项之间的静态关系包括聚合、泛化和实现三种,每个静态关系对应相应的静态相似度,例如聚合、实现以及泛化对应的静态相似度可分别为0.8、0.6以及1.0。
步骤S24,根据预设的动态相似度以及静态相似度之间的权重,以及确定的动态相似度和静态相似度,计算两个功能项之间的相似度。
在本实施例中,在计算得到的动态相似度和静态相似度分别为RD1(BF1,BF2)和静态相似度为RD2(BF1,BF2),且动态相似度以及静态行四度对应的权重为α和β,则两个功能项之间的动态相似度RD(BF1,BF2)的计算如公式2所示。
RD(BF1,BF2)=αRD1(BF1,BF2)+βRD2(BF1,BF2)……公式2。
具体的,参照图3,步骤S20还包括:
步骤S25,在进行相似度计算的两个功能项中存在集成功能项时,计算两个集成功能项中的各个功能项之间的相似度,或者计算集成功能项中的各个功能项以及另一单独功能项之间的相似度;
步骤S26,基于计算得到的各个功能项之间的相似度确定集成功能项和单个功能项之间的相似度,或者集成功能项之间的相似度,并确定相似度最大的功能项。
在进行相似度计算时,若进行相似度计算的两个功能项中存在集成功能项,则计算集成功能项中的各个功能项以及另一集成功能项中的各个功能项之间的相似度,或者计算集成功能项中的各个功能项以及另一单独功能项之间的相似度,上述计算功能项的步骤可通过步骤S21至步骤S24实现。
基于计算得到的各个功能项之间的相似度确定集成功能项之间的相似度有多种方案可实现:
a、所述步骤S26,基于计算得到的各个功能项之间的相似度确定集成功能项和单个功能项之间的相似度,或者集成功能项之间的相似度,并确定相似度最大的功能项包括:
获取两个集成功能项中的各个功能项之间的相似度的最小值,将获取到的最小值作为两个集成功能项之间的相似度;或者,获取集成功能项中的各个功能项以及另一单独功能项之间的相似度的最小值,将获取到的最小值作为集成功能项与另一单独功能项之间的相似度;
确定各个集成功能项之间的相似度,以及集成功能项与单独功能项相似度中,相似度最大的功能项。
例如,计算集成功能项A(A1,A2)以及集成功能项B之间的相似度,则集成功能项A和B之间的相似度为RD(A,B)=min{RD(A1,B),RD(A2,B)},即取RD(A1,B)与RD(A2,B)之间的最小值,若A1和A2为集成功能项,且集成功能A1和A2分别为A1(a1,b1),A2(a2,b2),在集成功能项B包括B1和B2两个功能项时,RD(A1,B)=min{RD(a1,B1),RD(b1,B2),RD(a1,B2),RD(b1,B1)},即取RD(a1,B1),RD(b1,B2),RD(a1,B2)RD(b1,B1)之间的最小值,RD(A2,B)=min{RD(a2,B1),RD(b2,B2),RD(a2,B2),RD(b2,B1)},即取RD(a2,B1),RD(b2,B2),RD(a2,B2)RD(b2,B1)之间的最小值,最终将计算得到的各个功能项之间的相似度中的最小值,作为两个集成功能项之间的相似度;同理,RD(A1,B)=min{RD(A1,B1),RD(A1,B2)},相当于计算单个功能项与集成功能项之间的相似度,此时仅需要取RD(A1,B1)和RD(A1,B2)之间的最小值,则可得到单个功能项与集成功能项之间的相似度。
b、所述步骤S26,基于计算得到的各个功能项之间的相似度确定集成功能项和单个功能项之间的相似度,或者集成功能项之间的相似度,并确定相似度最大的功能项包括:
获取两个集成功能项中的各个功能项之间的相似度的最大值,将获取到的最大值作为两个集成功能项之间的相似度;或者,获取集成功能项中的各个功能项以及另一单独功能项之间的相似度的最大值,将获取到的最大值作为集成功能项与另一单独功能项之间的相似度;
确定各个集成功能项之间的相似度,以及集成功能项与单独功能项相似度中,相似度最大的功能项。
例如,计算集成功能项A(A1,A2)以及集成功能项B之间的相似度,则集成功能项A和B之间的相似度为RD(A,B)=max{(A1,B),RD(A2,B)},即取RD(A1,B)与RD(A2,B)之间的最大值,若A1和A2为集成功能项,且集成功能A1和A2分别为A1(a1,b1),A2(a2,b2),在集成功能项B包括B1和B2两个功能项时,RD(A1,B)=max{RD(a1,B1),RD(b1,B2),RD(a1,B2)RD(b1,B1)},即取RD(a1,B1),RD(b1,B2),RD(a1,B2)RD(b1,B1)之间的最大值,RD(A2,B)=max{RD(a2,B1),RD(b2,B2),RD(a2,B2)RD(b2,B1)},即取RD(a2,B1),RD(b2,B2),RD(a2,B2)RD(b2,B1)之间的最大值,最终将计算得到的各个功能项之间的相似度中的最大值,作为两个集成功能项之间的相似度;同理,RD(A1,B)=max{RD(A1,B1),RD(A1,B2)},相当于计算单个功能项与集成功能项之间的相似度,此时仅需要取RD(A1,B1)和RD(A1,B2)之间的最大值,则可得到单个功能项与集成功能项之间的相似度。
c、所述步骤S26,基于计算得到的各个功能项之间的相似度确定集成功能项和单个功能项之间的相似度,或者集成功能项之间的相似度,并确定相似度最大的功能项包括:
获取两个集成功能项中的各个功能项之间的相似度的平均值,将获取到的平均值作为两个集成功能项之间的相似度;或者,获取集成功能项中的各个功能项以及另一单独功能项之间的相似度的平均值,将获取到的平均值作为集成功能项与另一单独功能项之间的相似度;
确定各个集成功能项之间的相似度,以及集成功能项与单独功能项相似度中,相似度最大的功能项。
例如,计算集成功能项A(A1,A2,……An)以及集成功能项B之间的相似度,则集成功能项A和B之间的相似度为RD(A,B)=RD(A1,B)+RD(A2,B)+…+RD(An,B)/n,在本实施例中n取任何自然数,在集成功能项A包括A1和A2两个功能项,且A1和A2为集成功能项,集成功能A1和A2分别为A1(a1,b1,a3),A2(a2,b2,b3)时,RD(A1,B)=RD(a1,B)+RD(b1,B)+RD(c1,B))/3,即取RD(a1,B)、RD(b1,B)、RD(c1,B)之间的平均值,RD(A2,B)=(RD(a2,B)+RD(b2,B)+RD(c2,B))/3,即取RD(a2,B)、RD(b2,B)、RD(c2,B))之间的平均值,最终将计算得到的各个功能项之间的相似度的平均值,作为两个集成功能项之间的相似度;同理,RD(A1,B)=(RD(A1,B1),RD(A1,B2))/2,相当于计算单个功能项与集成功能项之间的相似度,此时仅需要取RD(A1,B1)和RD(A1,B2)之间的平均值,则可得到单个功能项与集成功能项之间的相似度。
d、所述步骤S26,基于计算得到的各个功能项之间的相似度确定集成功能项和单个功能项之间的相似度,或者集成功能项之间的相似度,并确定相似度最大的功能项包括:
对两个集成功能项中的各个功能项之间的相似度进行加权平均计算,将加权平均计算结果作为两个集成功能项之间的相似度,其中,任意两个功能项之间的相似度的权重系数为两个功能项分别包含的单个功能项的数量的乘积与两个功能项所在的集成功能项中分别包含的单个功能项的数量的乘积之间的比值;或者,对集成功能项中的各个功能项以及另一单独功能项之间的相似度进行加权,将加权平均计算结果作为单个功能项与集成功能项之间的相似度,任意两个功能项之间的相似度的权重系数为两个功能项分别包含的单个功能项的数量的乘积与两个功能项所在的集成功能项中分别包含的单个功能项的数量的乘积之间的比值;
确定各个集成功能项之间的相似度,以及集成功能项与单独功能项相似度中,相似度最大的功能项。
例如,计算集成功能项A(A1,A2)以及集成功能项B(B1,B2)之间的相似度,A1、A2、B1、B2均为集成功能项时,A1(a1、a2……am),A2(b1、b2……bn)、B1(c1、c2……cx)、B2(d1、d2……dy)则集成功能项A和B之间的相似度为RD(A,B)=[R(A,B1)x+R(A,B2)y]/(x+y),而R(A,B1)=[R(A1,B1)m+R(A2,B1)n]/(m+n),R(A,B2)=[R(A1,B2)m+R(A2,B2)n]/(m+n),即RD(A,B)=[R(A1,B1)mx+R(A2,B1)nx+R(A1,B2)my+R(A2,B2)ny]/[(m+n)(x+y)],通过该方式可得到集成功能项之间的相似度;同理,对于单个功能项与集成功能项之间的的相似度计算,如单个功能项为A,集成功能项为B(B1,B2),且B1(c1、c2……cx)、B2(d1、d2……dy),则可通过RD(A,B)=[R(A,B1)x+R(A,B2)y]/(x+y)计算得到单个功能项与集成功能项之间的的相似度。
在本实施例中,优选通过d方案计算集成功能项之间的相似度。
以上所列举出的四种计算集成功能项之间的相似度或者集成功能项与单独功能项之间的相似度的方式仅仅为示例性的,本领域技术人员利用本发明的技术思想,根据其具体需求所提出的其他计算集成功能项之间的相似度或者集成功能项与单独功能项之间的相似度的方式均在本发明的保护范围内,在此不进行一一穷举。
参照图4,提出本发明软件构件的生成方法第二实施例,在本实施例中,步骤S10之后包括:
步骤S50,判断待生成构件的数量是否为1;
步骤S60,在待生成构件的数量等于1时,直接将提取的各个功能项集成为软件的构件;
在在待生成构件的数量大于1时,执行步骤S20。
以该铜浮选泡沫图像监控软件进行说明,阈值选择优选为0.3,例如,功能项“RGB颜色空间”、“LAB颜色空间”、“HIS颜色空间”之间的相似度大于0.3,因此集合成为一个集成功能项,最终由一个构件来实现;功能项“获取图像的熵”和“获取图像的能量”之间的相似度大于0.3,因此集合成一个为一个集成功能项,最终由一个构件来实现;功能项“分水岭分割”和“图像像素定标”之间的相似度大于0.3,因此集合成为一个集成功能项,最终由一个构件来实现;最后,只剩功能项“宏块跟踪”,因此集合成为一个集成功能性,由一个构件来实现。
参照图5,图5为本发明软件构件的生成系统较佳实施例的功能模块示意图。
需要强调的是,对本领域的技术人员来说,图5所示功能模块图仅仅是一个较佳实施例的示例图,本领域的技术人员围绕图5所示的软件构件的生成系统的功能模块,可轻易进行新的功能模块的补充;各功能模块的名称是自定义名称,仅用于辅助理解该软件构件的生成系统的各个程序功能块,不用于限定本发明的技术方案,本发明技术方案的核心是,各自定义名称的功能模块所要达成的功能。
本实施例提出的软件构件的生成系统,包括:
获取模块10,用于获取软件预设的各个功能项;
在本实施例中基于软件所要实现的功能提取对应的功能项,例如铜浮选泡沫图像监控软件中功能项可包括的RGB颜色空间计算功能、HIS颜色空间计算功能以及LAB颜色空间计算功能。
相似度计算模块20,用于依次两两计算各个功能项之间的相似度;
确定模块30,用于确定相似度最大的功能项;
在本实施例中,有多个功能项时依次按照预设的顺序依次两两计算各个功能项之间的相似度,例如,在有四个功能项A、B、C以及D时,先分别计算功能项A与B、C以及D之间的相似度,然后计算功能项B与功能项C和D之间的相似度,以及功能项C与功能项D之间的相似度,在计算出各个功能项之间的相似度之后,按照计算结果功能项两两进行排序,以确定相似度最大的功能项,该相似度最大的功能项不少于两个,可以为两个也可为多个,在相似度最大的功能项为多个时,可能多个功能项之间的相似度相等且为最大。
集成模块40,用于在确定的功能项之间的相似度大于或等于预设的阀值时,将相似度最大的功能项集合成一个集成功能项,且将该集成功能项作为一个功能项与其它功能项进行相似度计算;
在本实施例中,该预设的阀值可由系统设计人员提前设置,根据设置的阀值将软件分为预设数量的构件。当前有A、B、C、D以及E五个功能项时,分别两两计算各个功能项之间的相似度,在功能项A和C之间的相似度最大时,将功能项A和C集合成一个集合功能项G,此时将集成功能项G作为一个新的功能项与其它功能项之间进行相似度计算,例如依次两两计算功能项G、B、D以及E之间的相似度。
所述相似度计算模块20还用于在集合模块将相似度最大的功能项集合成一个集成功能项之后,继续依次两两计算各个功能项之间的相似度,直至确定模块确定的功能项之间的相似度小于预设的阀值;或者所述相似度计算模块还用于在集合模块将相似度最大的功能项集合成一个集成功能项之后,继续依次两两计算各个功能项之间的相似度,直至所有功能项集成为一个集成功能项;
所述构件生成模块50,用于将各个功能项分别集成为软件的各个构件,或者在所有相似度大于或等于预设的阀值的功能项集成为一个集成功能项时,将该集成功能项集成为软件的构件。
在本实施例中,在相似度最大的功能项之间的相似度小于预设的阀值时,不进行功能项的合并,以保证多个功能项最终不会合并为一个集合功能项,同时为了保证各个构件中功能项的高聚合度。而由于可能存在每次计算功能项时,相似度最大的功能项之间的相似度均大于等于预设的阀值,此时则需要判断多个功能项是否集成为一个功能项,在多个功能项集成为一个功能项时,相似度计算模块20停止依次两两计算各个功能项之间的相似度,在多个功能项并未集成为一个功能项时,相似度计算模块20继续依次两两计算各个功能项之间的相似度。在生成构件后,基于生成的构件进行软件代码的编写。
本实施例提出的软件构件的生成系统,获取软件预设的各个功能项,依次两两计算各个功能项之间的相似度,并确定相似度最大的功能项,在确定的功能项之间的相似度大于或等于预设的阀值时,将相似度最大的功能项集合成一个集成功能项,且将该集成功能项作为一个功能项与其它功能项进行相似度计算,继续依次两两计算各个功能项之间的相似度,并确定相似度最大的功能项,直至确定的功能项之间的相似度小于预设的阀值,并将各个功能项集成为软件的各个构件。该方案将相似度较大的功能项集成为一个构件,使得构件的可复用性高,避免资源的浪费。
具体地,参照图6,相似度计算模块20包括:
获取单元21,用于在进行相似度计算的两个功能项均为单个功能项时,分别获取两个功能项对于不同的业务操作的属性;
在本实施例中业务操作可为多种,不同的业务操作可由软件设计人员进行设定,如表1所示,在表1中,C表示创建、U表示使用、N表示未使用即空值,业务操作包括BC1、BC2、BC3和BC4四种。本领域技术人员可以理解的时,在本实施例中,业务操作并不局限于上述四种,上述表1仅仅为了说明业务操作与业务属性之间的映射关系的举例说明。例如,铜浮选泡沫图像监控软件中的业务操作包括颜色提取、速度跟踪、图像分割、纹理分析以及尺寸提取等业务操作。
确定单元22,用于根据获取的两个功能项对于不同业务操作的属性,确定两个功能项之间的动态相似度,以及确定两个功能项之间的静态关系,并根据预设的静态关系与静态相似度之间的映射关系,确定两个功能项之间的静态相似度;
所述确定单元22包括:
生成子单元,用于根据获取的两个功能项对于不同业务操作的属性,生成两个功能项对于不同业务操作的属性组合;
计算子单元,用于根据各个属性组合的数量以及各个属性组合所对应的权重计算两个功能项之间的动态相似度。
两个功能项对于不同业务操作的属性组合包括:C-C、C-U(U-C)、U-U、C-N(N-C)、U-N(N-U)以及N-N六种,若六种属性组合对应的权重分别为w1,w2,w3,w4,w5和w6,个数分别是s1,s2,s3,s4,s5和s6,没有该属性组合时,该属性组合所对应的个数为0,则对应的动态相似度RD1(BF1,BF2)的计算公式如公式1所示。
在本实施例中,功能项之间的静态关系包括聚合、泛化和实现三种,每个静态关系对应相应的静态相似度,例如聚合、实现以及泛化对应的静态相似度可分别为0.8、0.6以及1.0。
计算单元23,用于根据预设的动态相似度以及静态相似度之间的权重,以及确定的动态相似度和静态相似度,计算两个功能项之间的相似度。
在本实施例中,在计算得到的动态相似度和静态相似度分别为RD1(BF1,BF2)和静态相似度为RD2(BF1,BF2),且动态相似度以及静态行四度对应的权重为α和β,则两个功能项之间的动态相似度RD(BF1,BF2)的计算如公式2所示。
RD(BF1,BF2)=αRD1(BF1,BF2)+βRD2(BF1,BF2)……公式2。
在本实施例中,所述计算单元23还用于在进行相似度计算的两个功能项中存在集成功能项时,计算两个集成功能项中的各个功能项之间的相似度,或者计算集成功能项中的各个功能项以及另一单独功能项之间的相似度;所述确定单元22还用于基于计算得到的各个功能项之间的相似度确定集成功能项和单个功能项之间的相似度,或者集成功能项之间的相似度。
在进行相似度计算时,若进行相似度计算的两个功能项中存在集成功能项,则计算集成功能项中的各个功能项以及另一集成功能项中的各个功能项之间的相似度,或者计算集成功能项中的各个功能项以及另一单独功能项之间的相似度,上述计算功能项的步骤可通过上述计算单个功能项之间的相似度的方案实现。
基于计算得到的各个功能项之间的相似度确定集成功能项之间的相似度有多种方案可实现:
a、确定单元22包括:
处理子单元,用于获取两个集成功能项中的各个功能项之间的相似度的最小值,将获取到的最小值作为两个集成功能项之间的相似度;或者,获取集成功能项中的各个功能项以及另一单独功能项之间的相似度的最小值,将获取到的最小值作为集成功能项与另一单独功能项之间的相似度。
例如,计算集成功能项A(A1,A2)以及集成功能项B之间的相似度,则集成功能项A和B之间的相似度为RD(A,B)=min{RD(A1,B),RD(A2,B)},即取RD(A1,B)与RD(A2,B)之间的最小值,若A1和A2为集成功能项,且集成功能A1和A2分别为A1(a1,b1),A2(a2,b2),在集成功能项B包括B1和B2两个功能项时,RD(A1,B)=min{RD(a1,B1),RD(b1,B2),RD(a1,B2),RD(b1,B1)},即取RD(a1,B1),RD(b1,B2),RD(a1,B2)RD(b1,B1)之间的最小值,RD(A2,B)=min{RD(a2,B1),RD(b2,B2),RD(a2,B2),RD(b2,B1)},即取RD(a2,B1),RD(b2,B2),RD(a2,B2)RD(b2,B1)之间的最小值,最终将计算得到的各个功能项之间的相似度中的最小值,作为两个集成功能项之间的相似度;同理,RD(A1,B)=min{RD(A1,B1),RD(A1,B2)},相当于计算单个功能项与集成功能项之间的相似度,此时仅需要取RD(A1,B1)和RD(A1,B2)之间的最小值,则可得到单个功能项与集成功能项之间的相似度。
b、所述确定单元22包括:
处理子单元,用于获取两个集成功能项中的各个功能项之间的相似度的最大值,将获取到的最大值作为两个集成功能项之间的相似度;或者,获取集成功能项中的各个功能项以及另一单独功能项之间的相似度的最大值,将获取到的最大值作为集成功能项与另一单独功能项之间的相似度。
例如,计算集成功能项A(A1,A2)以及集成功能项B之间的相似度,则集成功能项A和B之间的相似度为RD(A,B)=max{(A1,B),RD(A2,B)},即取RD(A1,B)与RD(A2,B)之间的最大值,若A1和A2为集成功能项,且集成功能A1和A2分别为A1(a1,b1),A2(a2,b2),在集成功能项B包括B1和B2两个功能项时,RD(A1,B)=max{RD(a1,B1),RD(b1,B2),RD(a1,B2)RD(b1,B1)},即取RD(a1,B1),RD(b1,B2),RD(a1,B2)RD(b1,B1)之间的最大值,RD(A2,B)=max{RD(a2,B1),RD(b2,B2),RD(a2,B2)RD(b2,B1)},即取RD(a2,B1),RD(b2,B2),RD(a2,B2)RD(b2,B1)之间的最大值,最终将计算得到的各个功能项之间的相似度中的最大值,作为两个集成功能项之间的相似度;同理,RD(A1,B)=max{RD(A1,B1),RD(A1,B2)},相当于计算单个功能项与集成功能项之间的相似度,此时仅需要取RD(A1,B1)和RD(A1,B2)之间的最大值,则可得到单个功能项与集成功能项之间的相似度。
c、所述确定单元22包括:
处理子单元,用于获取两个集成功能项中的各个功能项之间的相似度的平均值,将获取到的平均值作为两个集成功能项之间的相似度;或者,获取集成功能项中的各个功能项以及另一单独功能项之间的相似度的平均值,将获取到的平均值作为集成功能项与另一单独功能项之间的相似度。
例如,计算集成功能项A(A1,A2,……An)以及集成功能项B之间的相似度,则集成功能项A和B之间的相似度为RD(A,B)=RD(A1,B)+RD(A2,B)+…+RD(An,B)/n,在本实施例中n取任何自然数,在集成功能项A包括A1和A2两个功能项,且A1和A2为集成功能项,集成功能A1和A2分别为A1(a1,b1,a3),A2(a2,b2,b3)时,RD(A1,B)=RD(a1,B)+RD(b1,B)+RD(c1,B))/3,即取RD(a1,B)、RD(b1,B)、RD(c1,B)之间的平均值,RD(A2,B)=(RD(a2,B)+RD(b2,B)+RD(c2,B))/3,即取RD(a2,B)、RD(b2,B)、RD(c2,B))之间的平均值,最终将计算得到的各个功能项之间的相似度的平均值,作为两个集成功能项之间的相似度;同理,RD(A1,B)=(RD(A1,B1),RD(A1,B2))/2,相当于计算单个功能项与集成功能项之间的相似度,此时仅需要取RD(A1,B1)和RD(A1,B2)之间的平均值,则可得到单个功能项与集成功能项之间的相似度。
d、所述确定单元22包括:
处理子单元,用于对两个集成功能项中的各个功能项之间的相似度进行加权平均计算,将加权平均计算结果作为两个集成功能项之间的相似度,其中,任意两个功能项之间的相似度的权重系数为两个功能项分别包含的单个功能项的数量的乘积与两个功能项所在的集成功能项中分别包含的单个功能项的数量的乘积之间的比值;
或者,对集成功能项中的各个功能项以及另一单独功能项之间的相似度进行加权,将加权平均计算结果作为单个功能项与集成功能项之间的相似度,任意两个功能项之间的相似度的权重系数为两个功能项分别包含的单个功能项的数量的乘积与两个功能项所在的集成功能项中分别包含的单个功能项的数量的乘积之间的比值。
例如,计算集成功能项A(A1,A2)以及集成功能项B(B1,B2)之间的相似度,A1、A2、B1、B2均为集成功能项时,A1(a1、a2……am),A2(b1、b2……bn)、B1(c1、c2……cx)、B2(d1、d2……dy)则集成功能项A和B之间的相似度为RD(A,B)=[R(A,B1)x+R(A,B2)y]/(x+y),而R(A,B1)=[R(A1,B1)m+R(A2,B1)n]/(m+n),R(A,B2)=[R(A1,B2)m+R(A2,B2)n]/(m+n),即RD(A,B)=[R(A1,B1)mx+R(A2,B1)nx+R(A1,B2)my+R(A2,B2)ny]/[(m+n)(x+y)],通过该方式可得到集成功能项之间的相似度;同理,对于单个功能项与集成功能项之间的的相似度计算,如单个功能项为A,集成功能项为B(B1,B2),且B1(c1、c2……cx)、B2(d1、d2……dy),则可通过RD(A,B)=[R(A,B1)x+R(A,B2)y]/(x+y)计算得到单个功能项与集成功能项之间的的相似度。
在本实施例中,优选通过d方案计算集成功能项之间的相似度。
以上所列举出的四种计算集成功能项之间的相似度或者集成功能项与单独功能项之间的相似度的方式仅仅为示例性的,本领域技术人员利用本发明的技术思想,根据其具体需求所提出的其他计算集成功能项之间的相似度或者集成功能项与单独功能项之间的相似度的方式均在本发明的保护范围内,在此不进行一一穷举。
进一步地,为节省系统开销,所述确定模块30还用于判断待生成构件的数量是否为1;所述构件生成模块还用于在待生成构件的数量等于1时,直接将提取的各个功能项集成为软件的构件;所述相似度计算模块20还用于在待生成构件的数量大于1时,依次两两计算各个功能项之间的相似度。
以该铜浮选泡沫图像监控软件进行说明,阈值选择优选为0.3,例如,功能项“RGB颜色空间”、“LAB颜色空间”、“HIS颜色空间”之间的相似度大于0.3,因此集合成为一个集成功能项,最终由一个构件来实现;功能项“获取图像的熵”和“获取图像的能量”之间的相似度大于0.3,因此集合成一个为一个集成功能项,最终由一个构件来实现;功能项“分水岭分割”和“图像像素定标”之间的相似度大于0.3,因此集合成为一个集成功能项,最终由一个构件来实现;最后,只剩功能项“宏块跟踪”,因此集合成为一个集成功能项,由一个构件来实现。)
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (18)
1.一种软件构件的生成方法,其特征在于,包括:
S10,获取软件预设的各个功能项;
S20,依次两两计算各个功能项之间的相似度,并确定相似度最大的功能项;
S30,在确定的功能项之间的相似度大于或等于预设的阀值时,将相似度最大的功能项集合成一个集成功能项,且将该集成功能项作为一个功能项与其它功能项进行相似度计算;
S40,继续执行步骤S20,直至确定的功能项之间的相似度小于预设的阀值,将各个功能项分别集成为软件的各个构件;或者,继续执行步骤S20,直至所有相似度大于或等于预设的阀值的功能项集合成为一个集成功能项,将该集成功能项集成为软件的构件。
2.根据权利要求1所述的方法,其特征在于,所述步骤S20包括:
在进行相似度计算的两个功能项均为单个功能项时,分别获取两个功能项对于不同的业务操作的属性;
根据获取的两个功能项对于不同业务操作的属性,确定两个功能项之间的动态相似度;
确定两个功能项之间的静态关系,并根据预设的静态关系与静态相似度之间的映射关系,确定两个功能项之间的静态相似度;
根据预设的动态相似度以及静态相似度之间的权重,以及确定的动态相似度和静态相似度,计算两个功能项之间的相似度,并确定相似度最大的功能项。
3.根据权利要求2所述的方法,其特征在于,所述根据获取的两个功能项对于不同业务操作的属性,确定两个功能项之间的动态功能项的步骤包括:
根据获取的两个功能项对于不同业务操作的属性,生成两个功能项对于不同业务操作的属性组合;
根据各个属性组合的数量以及各个属性组合所对应的权重计算两个功能项之间的动态相似度。
4.根据权利要求2或3所述的方法,其特征在于,所述步骤S20还包括:
在进行相似度计算的两个功能项中存在集成功能项时,计算两个集成功能项中的各个功能项之间的相似度;或者,计算集成功能项中的各个功能项以及另一单独功能项之间的相似度;
基于计算得到的各个功能项之间的相似度确定集成功能项和单个功能项之间的相似度,或者集成功能项之间的相似度,并确定相似度最大的功能项。
5.根据权利要求4所述的方法,其特征在于,所述基于计算得到的各个功能项之间的相似度确定集成功能项和单个功能项,或者集成功能项之间的相似度,并确定相似度最大的功能项的步骤包括:
获取两个集成功能项中的各个功能项之间的相似度的最小值,将获取到的最小值作为两个集成功能项之间的相似度;或者,获取集成功能项中的各个功能项以及另一单独功能项之间的相似度的最小值,将获取到的最小值作为集成功能项与另一单独功能项之间的相似度;
确定各个集成功能项之间的相似度,以及集成功能项与单独功能项相似度中,相似度最大的功能项。
6.根据权利要求4所述的方法,其特征在于,所述基于计算得到的各个功能项之间的相似度确定集成功能项和单个功能项,或者集成功能项之间的相似度,并确定相似度最大的功能项的步骤包括:
获取两个集成功能项中的各个功能项之间的相似度的最大值,将获取到的最大值作为两个集成功能项之间的相似度;或者,获取集成功能项中的各个功能项以及另一单独功能项之间的相似度的最大值,将获取到的最大值作为集成功能项与另一单独功能项之间的相似度;
确定各个集成功能项之间的相似度,以及集成功能项与单独功能项相似度中,相似度最大的功能项。
7.根据权利要求4所述的方法,其特征在于,所述基于计算得到的各个功能项之间的相似度确定集成功能项和单个功能项,或者集成功能项之间的相似度,并确定相似度最大的功能项的步骤包括:
获取两个集成功能项中的各个功能项之间的相似度的平均值,将获取到的平均值作为两个集成功能项之间的相似度;或者,获取集成功能项中的各个功能项以及另一单独功能项之间的相似度的平均值,将获取到的平均值作为集成功能项与另一单独功能项之间的相似度;
确定各个集成功能项之间的相似度,以及集成功能项与单独功能项相似度中,相似度最大的功能项。
8.根据权利要求4所述的方法,其特征在于,所述基于计算得到的各个功能项之间的相似度确定集成功能项和单个功能项,或者集成功能项之间的相似度,并确定相似度最大的功能项的步骤包括:
对两个集成功能项中的各个功能项之间的相似度进行加权平均计算,将加权平均计算结果作为两个集成功能项之间的相似度,其中,任意两个功能项之间的相似度的权重系数为两个个功能项分别包含的单个功能项的数量的乘积与两个功能项所在的集成功能项中分别包含的单个功能项的数量的乘积之间的比值;
或者,对集成功能项中的各个功能项以及另一单独功能项之间的相似度进行加权,将加权平均计算结果作为单个功能项与集成功能项之间的相似度,任意两个功能项之间的相似度的权重系数为两个个功能项分别包含的单个功能项的数量的乘积与两个功能项所在的集成功能项中分别包含的单个功能项的数量的乘积之间的比值;
确定各个集成功能项之间的相似度,以及集成功能项与单独功能项相似度中,相似度最大的功能项。
9.根据权利要求1所述的方法,其特征在于,所述步骤S10之后还包括:
判断待生成构件的数量是否为1;
在待生成构件的数量等于1时,直接将提取的各个功能项集成为软件的构件;
在待生成构件的数量大于1时,执行步骤S20。
10.一种软件构件的生成系统,其特征在于,包括:
获取模块,用于获取软件预设的各个功能项;
相似度计算模块,用于依次两两计算各个功能项之间的相似度;
确定模块,用于确定相似度最大的功能项;
集合模块,用于在确定的功能项之间的相似度大于或等于预设的阀值时,将相似度最大的功能项集合成一个集成功能项,且将该集成功能项作为一个功能项与其它功能项进行相似度计算;
所述相似度计算模块还用于在集合模块将相似度最大的功能项集合成一个集成功能项之后,继续依次两两计算各个功能项之间的相似度,直至确定模块确定的功能项之间的相似度小于预设的阀值;或者所述相似度计算模块还用于在集合模块将相似度最大的功能项集合成一个集成功能项之后,继续依次两两计算各个功能项之间的相似度,直至所有功能项集成为一个集成功能项;
所述构件生成模块,用于将各个功能项分别集成为软件的各个构件,或者在所有相似度大于或等于预设的阀值的功能项集成为一个集成功能项时,将该集成功能项集成为软件的构件。
11.根据权利要求10所述的系统,其特征在于,所述相似度计算模块包括:
获取单元,用于在进行相似度计算的两个功能项均为单个功能项时,分别获取两个功能项对于不同的业务操作的属性;
确定单元,用于根据获取的两个功能项对于不同业务操作的属性,确定两个功能项之间的动态相似度,以及确定两个功能项之间的静态关系,并根据预设的静态关系与静态相似度之间的映射关系,确定两个功能项之间的静态相似度;
计算单元,用于根据预设的动态相似度以及静态相似度之间的权重,以及确定的动态相似度和静态相似度,计算两个功能项之间的相似度。
12.根据权利要求11所述的系统,其特征在于,所述确定单元包括:
生成子单元,用于根据获取的两个功能项对于不同业务操作的属性,生成两个功能项对于不同业务操作的属性组合;
计算子单元,用于根据各个属性组合的数量以及各个属性组合所对应的权重计算两个功能项之间的动态相似度。
13.根据权利要求11或12所述的系统,其特征在于,所述计算单元还用于在进行相似度计算的两个功能项中存在集成功能项时,计算两个集成功能项中的各个功能项之间的相似度,或者计算集成功能项中的各个功能项以及另一单独功能项之间的相似度;所述确定单元还用于基于计算得到的各个功能项之间的相似度确定集成功能项和单个功能项之间的相似度,或者集成功能项之间的相似度。
14.根据权利要求13所述的系统,其特征在于,所述确定单元包括:
处理子单元,用于获取两个集成功能项中的各个功能项之间的相似度的最小值,将获取到的最小值作为两个集成功能项之间的相似度;或者,获取集成功能项中的各个功能项以及另一单独功能项之间的相似度的最小值,将获取到的最小值作为集成功能项与另一单独功能项之间的相似度。
15.根据权利要求13所述的系统,其特征在于,所述确定单元包括:
处理子单元,用于获取两个集成功能项中的各个功能项之间的相似度的最大值,将获取到的最大值作为两个集成功能项之间的相似度;或者,获取集成功能项中的各个功能项以及另一单独功能项之间的相似度的最大值,将获取到的最大值作为集成功能项与另一单独功能项之间的相似度。
16.根据权利要求13所述的系统,其特征在于,所述确定单元包括:
处理子单元,用于获取两个集成功能项中的各个功能项之间的相似度的平均值,将获取到的平均值作为两个集成功能项之间的相似度;或者,获取集成功能项中的各个功能项以及另一单独功能项之间的相似度的平均值,将获取到的平均值作为集成功能项与另一单独功能项之间的相似度。
17.根据权利要求13所述的系统,其特征在于,所述确定单元包括:
处理子单元,用于对两个集成功能项中的各个功能项之间的相似度进行加权平均计算,将加权平均计算结果作为两个集成功能项之间的相似度,其中,任意两个功能项之间的相似度的权重系数为两个功能项分别包含的单个功能项的数量的乘积与两个功能项所在的集成功能项中分别包含的单个功能项的数量的乘积之间的比值;
或者,对集成功能项中的各个功能项以及另一单独功能项之间的相似度进行加权,将加权平均计算结果作为单个功能项与集成功能项之间的相似度,任意两个功能项之间的相似度的权重系数为两个功能项分别包含的单个功能项的数量的乘积与两个功能项所在的集成功能项中分别包含的单个功能项的数量的乘积之间的比值。
18.根据权利要求10所述的系统,其特征在于,所述确定模块还用于判断待生成构件的数量是否为1;所述构件生成模块还用于在待生成构件的数量等于1时,直接将提取的各个功能项集成为软件的构件;相似度计算模块还用于在待生成构件的数量大于1时,依次两两计算各个功能项之间的相似度。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410280082.XA CN105183436A (zh) | 2014-06-20 | 2014-06-20 | 软件构件的生成方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410280082.XA CN105183436A (zh) | 2014-06-20 | 2014-06-20 | 软件构件的生成方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105183436A true CN105183436A (zh) | 2015-12-23 |
Family
ID=54905541
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410280082.XA Pending CN105183436A (zh) | 2014-06-20 | 2014-06-20 | 软件构件的生成方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105183436A (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101650729A (zh) * | 2009-09-23 | 2010-02-17 | 北京赛柏科技有限责任公司 | 一种Web服务构件库动态构造方法及其服务检索方法 |
CN102087679A (zh) * | 2011-03-02 | 2011-06-08 | 电子科技大学 | 一种基于构件技术的产品建模方法 |
-
2014
- 2014-06-20 CN CN201410280082.XA patent/CN105183436A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101650729A (zh) * | 2009-09-23 | 2010-02-17 | 北京赛柏科技有限责任公司 | 一种Web服务构件库动态构造方法及其服务检索方法 |
CN102087679A (zh) * | 2011-03-02 | 2011-06-08 | 电子科技大学 | 一种基于构件技术的产品建模方法 |
Non-Patent Citations (2)
Title |
---|
任姚鹏: "基于语义相似度分析的软构件聚类算法研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
刘恒: "铜浮选泡沬图像监控系统的构件化软件设计", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105101180B (zh) | 终端真伪验证方法及装置 | |
CN105631486A (zh) | 图像文字识别方法及装置 | |
CN104391879B (zh) | 层次聚类的方法及装置 | |
CN105142148A (zh) | 终端真伪验证方法及装置 | |
CN109063785A (zh) | 充电桩故障检测方法及终端设备 | |
CN111260220B (zh) | 群控设备识别方法、装置、电子设备和存储介质 | |
CN102737243A (zh) | 获取多幅图像的描述信息的方法及装置与图像匹配方法 | |
CN110009486A (zh) | 一种欺诈检测的方法、系统、设备及计算机可读存储介质 | |
CN112819649B (zh) | 确定台区户变关系的方法及装置 | |
CN111865644A (zh) | 一种计算资源的推荐方法、装置、电子设备及存储介质 | |
CN107341202B (zh) | 业务数据表修正危险度的评估方法、装置及存储介质 | |
CN112614007A (zh) | 充电潜力小区的识别方法和装置 | |
CN102496033B (zh) | 基于mr计算框架的图像sift特征匹配方法 | |
CN116215292A (zh) | 一种充电桩及其充电稳压控制方法 | |
CN103002053B (zh) | 云计算的利润最大化调度方法和系统 | |
CN116993839B (zh) | 编码方式筛选方法、装置、电子设备及存储介质 | |
CN105183436A (zh) | 软件构件的生成方法和系统 | |
CN112113638A (zh) | 水表功能自检装置及方法 | |
CN115912375B (zh) | 低压供电的补偿方法、装置和电子设备 | |
CN111145045A (zh) | 一种考虑VaR的电力大用户柔性负荷评估方法及系统 | |
Chen et al. | Fast spectral clustering of data using sequential matrix compression | |
CN108629356B (zh) | 一种面向用电负荷分类应用的数据存储方法和装置 | |
CN106779186B (zh) | 一种基于不同业态的用能主体的供能规模确定方法及装置 | |
CN109189678A (zh) | 一种网页功能验证方法、计算机可读存储介质及服务器 | |
CN102467741A (zh) | 对图像中的斑状区域进行检测的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20151223 |
|
RJ01 | Rejection of invention patent application after publication |