CN108491189B - 一种基于差异比较对设计类图进行评价的方法 - Google Patents

一种基于差异比较对设计类图进行评价的方法 Download PDF

Info

Publication number
CN108491189B
CN108491189B CN201810240204.0A CN201810240204A CN108491189B CN 108491189 B CN108491189 B CN 108491189B CN 201810240204 A CN201810240204 A CN 201810240204A CN 108491189 B CN108491189 B CN 108491189B
Authority
CN
China
Prior art keywords
class diagram
classes
design class
evaluated
similar
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.)
Active
Application number
CN201810240204.0A
Other languages
English (en)
Other versions
CN108491189A (zh
Inventor
文涛
陈小红
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Industrial Control Safety Innovation Technology Co ltd
Original Assignee
East China Normal University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by East China Normal University filed Critical East China Normal University
Priority to CN201810240204.0A priority Critical patent/CN108491189B/zh
Publication of CN108491189A publication Critical patent/CN108491189A/zh
Application granted granted Critical
Publication of CN108491189B publication Critical patent/CN108491189B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种基于差异比较对设计类图进行评价的方法,用于比较不同开发团队针对同一领域的设计类图和标准设计类图的差异,完成对不同设计类图的评价。本发明在对设计类图进行评价时涉及到的操作包括:(1)根据设计类图的元模型,定义评价指标、外部输入和评分公式;(2)以标准设计类图和待评价设计类图对应的XML文档作为输入,根据评价指标从XML文档中抽取用于比较的数据;(3)根据同义词对标准设计类图和待评价设计类图的数据进行差异比较;(4)将差异比较的结果带入评分公式,计算得分,分值越高则待评价设计类图设计得越好。本发明通过对设计类图的比较,在设计阶段就可发现所设计软件在结构上的缺陷,度量了软件的质量。

Description

一种基于差异比较对设计类图进行评价的方法
技术领域
本发明属于软件质量度量技术领域,具体涉及一种使用差异比较对软件开发的设计阶段的中间产物-设计类图进行评价打分,通过分数的高低度量软件设计的好坏的方法。
背景技术
随着软件开发方法的成熟和多样化,软件在各行各业都得到了广泛的应用。行业软件越来越多,质量参差不齐,因此在成本利益最大化的条件下,如何度量一个软件的质量,为使用方选择最适合的软件,为开发方指导进一步的开发,便显得尤为重要。
目前对软件度量的方法很多,比如有从面向对象的角度出发,定义大量度量指标从各方面对软件的质量进行度量;有从软件源代码角度出发,分析代码中的类之间的调用关系、依赖关系、耦合度等完成对软件质量的度量;有从测试角度出发,通过各种测试方法对软件的质量进行度量。但这些度量方法基本都使用在软件开发阶段或者软件完成阶段,在软件的生命周期中,其质量缺陷发现得越早,所付出的代价也就越小,因此有必要在更早的阶段就对其质量进行度量。
设计阶段是软件生命周期的早期阶段,设计类图是该阶段的一个中间产物。它描述了软件的结构、能指导程序员编码实现软件,它包含了软件内部的各种技术性信息。对于一个具体领域的软件而言,往往存在一个标准的设计类图,当开发人员需要设计开发某款软件时,可以将自己设计的设计类图与标准的设计类图进行比较,从而发现自己设计的软件结构是否合理。软件的结构设计是软件质量度量的重要内容,在相同条件下,软件的结构设计越好,其质量也就越好,因此可以使用设计类图来度量软件的质量。
发明内容
本发明的目的是提供一种基于差异比较对设计类图进行评价的方法,对于一个待评价的设计类图,该方法首先定义它的评价指标、外部输入和评分公式;然后以标准设计类图和待评价设计类图的XML文档作为输入,根据评价指标分别抽取用于比较的数据;接着根据同义词对抽取的数据进行比较,找出它们的差异;最后将差异比较结果带入评分公式,计算得分;通过得分的高低反映软件结构设计的合理性和质量的好坏。
实现本发明目的的具体技术方案是:
一种基于差异比较对设计类图进行评价的方法,该方法包括以下具体步骤:
步骤1:定义设计类图的评价指标、外部输入以及评分公式;具体为:
评价指标:一共六个指标,即:完整性、可见性、核心类、关系复杂度、关系正确性、冗余性;其中完整性包含两个小指标:属性完整性、方法完整性,可见性包含两个小指标:属性可见性、方法可见性,关系正确性包含两个小指标:普通关系正确性、多重性关系正确性,冗余性包含三个小指标:类冗余性、属性冗余性及方法冗余性;每个指标的具体含义如下:
(i)完整性:指的是属性完整性和方法完整性;
(ii)可见性:指的是属性和方法的访问修饰符;
(iii)核心类:指的是为完成某一业务必须存在的类;
(iv)关系复杂度:用于衡量类图中所有类与类之间关系的复杂性;
(v)关系正确性:分为普通关系正确性和多重性关系正确性,用于衡量待评价设计类图中的有用类之间的关系的正确性。当待评价设计类图中的某个类能在标准设计类图中找到相似的类时,就称这个类为有用类;
(vi)冗余性:分为类冗余性、属性冗余性和方法冗余性,指的是待评价设计类图中除有用类、有用属性、有用方法外多余的类、属性和方法。当待评价设计类图中的属性、方法在标准设计类图中找到相似的属性、相似的方法使,就分别称它们为有用属性、有用方法;
外部输入:给出核心类、类相似度阈值、权重(为0到1之间的数),其中权重具体包括:
(i)完整性的权重α1、可见性的权重α2、核心类的权重α3、关系复杂度的权重α4、关系正确性的权重α5、冗余性的权重α6,其中
Figure GDA0003090084430000021
(ii)属性完整性的权重αi1、方法完整性的权重αi2,其中αi1i2=1;
(iii)属性可见性的权重αv1、方法可见性的权重αv2,其中αv1v2=1;
(iv)普通关系正确性的权重αvd1、多重性关系正确性的权重αvd2,其中αvd1vd2=1;
(v)类冗余性的权重αr1、属性冗余性的权重αr2、方法冗余性的权重αr3,其中αr1r2r3=1。
评分公式为:
Figure GDA0003090084430000022
其中gintegrity、gvisibility、gcore、gcomplexity、gvalidity、gredundancy分别代表完整性、可见性、核心类、关系复杂度、关系正确性、冗余性的得分。
步骤2:以标准设计类图和待评价设计类图的XML文档作为输入,根据评价指标从XML文档中抽取用于比较的数据;其中,所述抽取用于比较的数据为:类、属性、属性的访问修饰符、方法、方法的访问修饰符、类与类之间的关系。
步骤3:对抽取的数据进行差异比较,当参与比较的两个数据是同义词或者包含相同的关键字时,就认为这两个数据是相似的;如果两个数据是相似的,就认为它们是相同的;具体过程如下:
(ⅰ)比较标准设计类图的类与待评价设计类图的类的差异,当待比较的两个类是同义词或者包含相同的关键字时,就认为它们是相似的;当待比较的两个类不是同义词并且没有包含相同的关键字时,如果这两个类中包含的属性和方法很多都是相同的,并且这两个类在各自的类图中和其它已知的相似类之间的关系结构也很多都是相同的,通过量化这种相似性,只要这个相似性的值不小于外部输入中给定的类相似度阈值,就认为这两个类也是相似的。当待评价设计类图中的某个类与标准设计类图中的某个类是相似的,那就认为这两个类是相同的,同时也认为待评价用例图中的这个类是正确的。记上述两个类的相似性量化值为s,它的具体计算过程如下:
定义相似性量化值为:
Figure GDA0003090084430000031
上述需要比较相似性的两个类,属于标准设计类图的记为C1,属于待评价设计类图的记为C2。C1中的所有属性和方法构成集合AM1,C2中的所有属性和方法构成集合AM2,集合AM为AM1和AM2的交集,AM中的元素为C1和C2中相同名字的属性或者方法。C1在标准设计类图中和其它所有已知相似类的关系构成集合Rel1,C2在待评价设计类图中和其它所有已知相似类的关系构成集合Rel2。对于
Figure GDA0003090084430000032
若ri和ri'中除了C1和C2的名字不同以外,其它内容全部相同,则将(ri,ri')放入集合Rel中。上述公式中nattr=|AM1|、nattr'=|AM2|、nr=|Rel1|、nr'=|Rel|;
(ⅱ)比较标准设计类图的属性与待评价设计类图的属性的差异,属性的比较是以类比较为基础的,只有在两个类是相似的时,才能比较其属性是否相似。当两个属性是同义词或者包含相同的关键字时,就认为它们是相似的。当待评价设计类图中的某个属性与标准设计类图中的某个属性是相似的,那就认为这两个属性是相同的,同时也就认为待评价设计类图中的这个属性是正确的;
(iii)比较标准设计类图的方法与待评价设计类图的方法的差异,方法的比较是以类比较为基础的,只有在两个类是相似的时,才能比较其方法是否相似。当两个方法是同义词或者包含相同的关键字时,就认为它们是相似的。当待评价设计类图中的某个方法与标准设计类图中的某个方法是相似的,那就认为这两个方法是相同的,同时也就认为待评价设计类图中的这个方法是正确的;
(iv)比较标准设计类图的类与类之间的关系与待评价设计类图的类与类之间的关系的差异,类与类之间的关系的差异比较是以类比较为基础的,只有与关系相关的两个类是相似的时,才能比较它们之间的关系是否相似。当两个关系是相同类型的时,就认为它们是相似的。当待评价设计类图中的某个关系和标准设计类图中的某个关系是相似的,那就认为这两个关系是相同的,同时也就认为待评价设计类图中的这个关系是正确的。
步骤4:将差异比较的结果带入评分公式,计算得分,完成对待评价设计类图的评价;具体包括以下步骤:
(i)根据差异比较结果,统计待评价设计类图中正确的属性的个数和标准设计类图中所有属性的个数,统计待评价设计类图中正确的方法的个数和标准设计类图中所有方法的个数,计算完整性得分。具体过程为:
定义完整性的得分为:
Figure GDA0003090084430000041
记标准设计类图中所有属性构成的集合为Attr1,待评价设计类图中所有属性构成的结合为Attr2,两个设计类图中相似的属性构成的集合为Attr=Attr1∩Attr2;标准设计类图中所有方法构成的集合为Met1,待评价设计类图中所有的方法构成的集合为Met2,两个设计类图中相似的方法构成的集合为Met=Met1∩Met2;上式中nattr=|Attr1|、mattr=|Attr|、nmet=|Met1|、mmet=|Met|。
(ii)根据差异比较结果,计算可见性得分。具体过程为:
当待评价设计类图中的某个属性(方法)与标准设计类图中的某个属性(方法)相似时,如果它们的访问修饰符相同,那么就认为待评价设计类图中的该属性(方法)的可见性是正确的。记待评价设计类图和标准设计类图相似并且访问修饰符相同的属性、方法分别构成的集合为VA、VM。定义可见性的得分为:
Figure GDA0003090084430000042
其中nattr=|Attr1|、vattr=|VA|、nmet=|Met1|、vmet=|VM|。
(iii)根据差异比较结果,统计待评价设计类图中正确的类的个数和标准设计类图中所有类的个数,计算核心类得分。具体过程为:
定义核心类的得分为:
Figure GDA0003090084430000051
记用户提供的核心类构成的集合为Core1,一般情况下标准设计类图应该包含所有核心类,待评价设计类图中包含的核心类构成的集合为Core2,因此上式中ncore=|Core1|、mcore=|Core2|分别代表外部输入中的核心类的个数、待评价设计类图中存在的核心类的个数。
(iv)根据差异比较结果,计算关系复杂度得分。具体过程为:
A.将类图映射为一个无向连通图G=(V,E),其中类图中的类映射为V中的点,类与类之间的关系映射为E中的边。记标准设计类图对应的无向连通图为G1=(V1,E1),待评价设计类图对应的无向连通图为G2=(V2,E2)。
B.将为完成某一项业务所需要的类、属性、方法分别定义为有用类、有用属性、有用方法,一般情况下这些类即为标准设计类图中的所有类、所有属性、所有方法,在待评价设计类图中的类、属性、方法,如果能在标准设计类图中找到相似类的类、属性、方法,那么这些类、属性、方法就为待评价设计类图中的有用类、有用属性、有用方法。
C.记待评价设计类图中所有有用类组成的集合为Cu'={cu1',cu2',...,cuk'},这些有用类在标准设计类图中的相似类组成的集合为Cu={cu1,cu2,...,cuk}(cui和cui'是相似类)。对于
Figure GDA0003090084430000052
在G1=(V1,E1)中找到这两个类之间存在的连通路径,记路径的数量为n1,路径构成的集合为P1={p1,p2,...,pn1},其中
Figure GDA0003090084430000053
Figure GDA0003090084430000054
对于
Figure GDA0003090084430000055
在G2=(V2,E2)中找到这两个类之间存在的连通路径,记路径的数量为n2,路径构成的集合为
Figure GDA0003090084430000056
其中
Figure GDA0003090084430000057
当n1>n2时,表明在标准设计类图中的cui和cuj之间能进行通信的路径更多,待评价设计类图中的cui'和cuj'之间路径的设计不合理,缺少部分路径。当n1<n2时,则表明在待评价设计类图中的cui'和cuj'之间设计了过多的通信路径,cui'和cuj'之间存在的关系比cui和cuj之间存在的关系更复杂。
D.记cui'和cuj'之间的复杂度得分为gij,令
Figure GDA0003090084430000061
其中
Figure GDA0003090084430000062
表示
Figure GDA0003090084430000063
的复杂度得分。对于
Figure GDA0003090084430000064
有:
Figure GDA0003090084430000065
其中|pi|表示路径pi中包含的边数。当|pi'|<|pj|时,表明待评价设计类图中的两个类之间进行通信时经过的边数比标准设计类图中与它们相似的两个类之间进行通信时经过的边数还少,这是不合理的。
记待评价设计类图的复杂度得分为gcomplexity,考虑到
Figure GDA0003090084430000066
共存在
Figure GDA0003090084430000067
中组合,因此令:
Figure GDA0003090084430000068
(v)根据差异比较结果,计算关系正确性得分。具体过程为:
关系正确性是相对于标准设计类图而言的。比如待评价设计类图中有A'、B'两个有用类,对应的在标准设计类图中有A、B两个有用类。如果A、B之间的关系为A继承B,同时A'、B'之间的关系也为A'继承B',此时就认为A'、B'之间的关系是正确的,并且和A、B之间的关系是相同的。
当需要比较的两个关系是Association关系(1对1,1对多,多对多)时,此时将关系的正确性分为普通关系正确性和多重性关系正确性。普通关系正确性指的是不考虑多重性的影响,比如A、B之间是Association关系,A'、B'之间也是Association关系,那么在普通关系层面上,A'、B'这个关系就是正确的。多重性关系正确性指的在普通关系正确的基础上,两个关系的多重性也必须相同,比如A、B之间是1对多关系,但是A'、B'之间却是1对1关系,那么在多重性关系层面上,A'、B'这个关系就是错的。
记E=E1∩E2。对于
Figure GDA0003090084430000069
若ei、ei'均为Association关系,并且与ei相关的两个类和与ei'相关的两个类是相似的,那么ei、ei'即为一对在普通关系层面上正确但在多重性关系层面错误的关系,将(ei,ei')作为元素放入集合Eh中。
定义关系正确性的得分为:
Figure GDA0003090084430000071
其中nr=|E1|表示标准设计类图中总的关系个数,mr=|E|表示两个设计类图中相似的关系;hr=|Eh|表示待评价设计类图中在普通关系层面上正确但在多重性关系层面错误的关系的个数。
(vi)根据差异比较结果,计算冗余性得分。具体过程为:
记待评价设计类图中的有用类、有用属性、有用方法构成的集合分别为:Cu、Au、Mu。定义冗余性的得分为:
Figure GDA0003090084430000072
其中nc=|V|、mc=|Cu|、na=|Attr1|、ma=|Au|、nm=|Met1|、mm=|Mu|,分别代表待评价设计类图中类的总数、有用类的个数、属性的总数、有用属性的个数、方法的总数、有用方法的个数。
(vii)将(i)、(ii)、(iii)、(iv)、(v)、(vi)的结果带入评分公式,计算待评价设计类图的总得分。具体过程为:
Figure GDA0003090084430000073
其中gintegrity、gvisibility、gcore、gcomplexity、gvalidity、gredundancy分别代表完整性、可见性、核心类、关系复杂度、关系正确性、冗余性的得分。
软件质量的度量可以从很多维度出发,软件的结构是其中很重要的一个维度,如果一个软件的结构设计不合理,那么它的其它维度做得再好,其质量也会大打折扣。设计类图是软件生命周期的设计阶段的产物,反映了软件的结构的设计情况,能指导程序员编码实现软件,它包含了软件内部的各种技术性信息。
本发明通过将待评价设计类图和标准设计类图进行比较,可以在设计阶段就发现自己设计的软件在结构上的缺陷,从而在一定程度上度量了软件的质量。
附图说明
图1是标准设计类图;
图2是待评价设计类图。
具体实施方式
步骤1:定义设计类图的评价指标、外部输入以及评分公式。
评价指标:一共六个指标,即:完整性、可见性、核心类、关系复杂度、关系正确性、冗余性;其中完整性包含两个小指标:属性完整性、方法完整性,可见性包含两个小指标:属性可见性、方法可见性,关系正确性包含两个小指标:普通关系正确性、多重性关系正确性,冗余性包含三个小指标:类冗余性、属性冗余性及方法冗余性;
外部输入:根据实际情况,需要专家给出核心类、类相似度阈值、权重(为0到1之间的数),其中权重具体包括:
(i)完整性的权重α1、可见性的权重α2、核心类的权重α3、关系复杂度的权重α4、关系正确性的权重α5、冗余性的权重α6,其中
Figure GDA0003090084430000081
(ii)属性完整性的权重αi1、方法完整性的权重αi2,其中αi1i2=1;
(iii)属性可见性的权重αv1、方法可见性的权重αv2,其中αv1v2=1;
(iv)普通关系正确性的权重αvd1、多重性关系正确性的权重αvd2,其中αvd1vd2=1;
(v)类冗余性的权重αr1、属性冗余性的权重αr2、方法冗余性的权重αr3,其中αr1r2r3=1。
评分公式为:
Figure GDA0003090084430000082
其中gintegrity、gvisibility、gcore、gcomplexity、gvalidity、gredundancy分别代表完整性、可见性、核心类、关系复杂度、关系正确性、冗余性的得分。
步骤2:以标准设计类图和待评价设计类图的XML文档作为输入,根据评价指标从XML文档中抽取用于比较的数据。
根据评价指标可知,进行差异比较时需要抽取的信息包括:类、属性、属性的访问修饰符、方法、方法的访问修饰符、类与类之间的关系。
步骤3:对抽取的数据进行差异比较。
·当待比较的两个类属于3种情况(类名是同义词、类名中包含相同的关键字、类名的相似度阈值不小于给定的相似度阈值)中的一种时就认为它们是相似;
·当两个类是相似的,此时对于两个类中的属性或者方法,如果它们是同义词或者包含相同的关键字,那么就认为这两个属性或者方法是相似的;
·当两个属性或者方法是相似的时,如果这两个属性或者方法的访问修饰符相同,那么就认为这两个属性或者方法拥有相同的可见性;
·当待比较的两个类与类之间的关系包含相似的类名,并且关系的类型相同时,就认为这两个关系是相似的。
步骤4:将差异比较的结果带入评分公式,计算得分,完成对待评价设计类图的评价。
(i)根据差异比较结果,统计待评价设计类图中正确的属性的个数和标准设计类图中所有属性的个数,统计待评价设计类图中正确的方法的个数和标准设计类图中所有方法的个数,计算完整性得分。完整性得分公式为:
Figure GDA0003090084430000091
(ii)根据差异比较结果,计算可见性得分。可见性得分公式为:
Figure GDA0003090084430000092
(iii)根据差异比较结果,统计待评价设计类图中正确的类的个数和标准设计类图中所有类的个数,计算核心类得分。核心类得分公式为:
Figure GDA0003090084430000093
(iv)根据差异比较结果,计算关系复杂度得分。关系复杂度得分公式为:
Figure GDA0003090084430000094
(v)根据差异比较结果,计算关系正确性得分。关系正确性得分公式为:
Figure GDA0003090084430000095
(vi)根据差异比较结果,计算冗余性得分。冗余性得分公式为:
Figure GDA0003090084430000096
(vii)将(i)、(ii)、(iii)、(iv)、(v)、(vi)的结果带入评分公式,计算待评价设计类图的总得分。总得分公式为:
Figure GDA0003090084430000097
实施例
为了详细说明设计类图评价的各步骤,本实施例选择火车票订票系统作为示例进行描述。下面结合附图对本发明实施例描述如下:
步骤1:定义用例图的评价指标、外部输入和评分公式
定义总分为1.0分,类相似度阈值为0.8,核心类为订单、车票、付款、退票,六个大指之间的权重相等,同类型的两个小指标之间的权重相等。
步骤2:使用EA软件生成标准设计类图和待评价设计类图的XML文档,根据评价指标抽取用于比较的信息
表1设计类图信息表
Figure GDA0003090084430000101
表2设计类图关系信息表
Figure GDA0003090084430000102
步骤3:对抽取的数据进行差异比较
根据同义词信息,待评价设计类图和标准设计类图对比,其缺少的信息和多余的信息如下:
表3设计类图差异比较结果表
Figure GDA0003090084430000103
Figure GDA0003090084430000111
表4设计类图可见性差异比较结果表
Figure GDA0003090084430000112
表5设计类图普通关系差异比较结果表
Figure GDA0003090084430000113
表6设计类图多重性关系差异比较结果表
多重性关系
缺少 关联关系:订单->付款(1...1)
多余 关联关系:订单->付钱(1...*)
步骤4:将差异比较结果带入评分公式,计算得分,完成对评价用例图的评价根据差异比较结果可知:待评价设计类图在完整性部分的得分为0.72分,在可见性部分的得分为0.58分,在核心类部分的得分为1.0分,在关系复杂度部分的得分为1.0分,在关系正确性部分的得分为0.56分,在冗余性部分的得分为0.84,总分为0.78分。
以上过程表明待评价设计类图中缺少部分属性,拥有外部输入中要求的全部核心类,有用类之间的关系也并不复杂,但可见性得分较低,有用类之间的关系正确性不高,并且存在一定的冗余。说明该软件设计的架构,存在基本的业务实体,不同业务实体间的调用关系并不复杂,但在代码层面上,它对外暴露了过多的属性和方法,并且存在一定的冗余,同时有的业务实体缺少必要的业务属性,并且不同业务实体间调用的方式存在一定的问题。最终得分为0.78分,说明软件质量一般,还有较大的改进空间。

Claims (1)

1.一种基于差异比较对设计类图进行评价的方法,其特征在于,该方法包括以下具体步骤:
步骤1:定义设计类图的评价指标、外部输入以及评分公式;
步骤2:以标准设计类图和待评价设计类图的XML文档作为输入,根据评价指标从XML文档中抽取用于比较的数据;
步骤3:对抽取的数据进行差异比较;
步骤4:将差异比较的结果带入评分公式,计算得分,完成对待评价设计类图的评价;其中:
步骤1中,所述设计类图的评价指标、外部输入以及评分公式具体为:
评价指标:为六个指标,即:完整性、可见性、核心类、关系复杂度、关系正确性及冗余性;其中,所述完整性包括:属性完整性和方法完整性;可见性包括:属性可见性和方法可见性;关系正确性包括:普通关系正确性和多重性关系正确性;冗余性包括:类冗余性、属性冗余性及方法冗余性;
外部输入:给出核心类、类相似度阈值、权重;所述权重为0到1之间的数;其中,权重具体包括:
(i)完整性的权重α1、可见性的权重α2、核心类的权重α3、关系复杂度的权重α4、关系正确性的权重α5、冗余性的权重α6,其中
Figure FDA0003090084420000011
(ii)属性完整性的权重αi1、方法完整性的权重αi2,其中αi1i2=1;
(iii)属性可见性的权重αv1、方法可见性的权重αv2,其中αv1v2=1;
(iv)普通关系正确性的权重αvd1、多重性关系正确性的权重αvd2,其中αvd1vd2=1;
(v)类冗余性的权重αr1、属性冗余性的权重αr2、方法冗余性的权重αr3,其中αr1r2r3=1;
评分公式为:
Figure FDA0003090084420000012
其中gintegrity、gvisibility、gcore、gcomplexity、gvalidity、gredundancy分别代表完整性、可见性、核心类、关系复杂度、关系正确性、冗余性的得分;
步骤2中,所述抽取用于比较的数据为:类、属性、属性的访问修饰符、方法、方法的访问修饰符、类与类之间的关系;
步骤3中,所述对抽取的数据进行差异比较,当参与比较的两个数据是同义词或者包含相同的关键字时,就认为这两个数据是相似的;如果两个数据是相似的,就认为它们是相同的;具体过程如下:
(ⅰ)比较标准设计类图的类与待评价设计类图的类的差异,当待比较的两个类是同义词或者包含相同的关键字时,就认为它们是相似的;当待比较的两个类不是同义词并且没有包含相同的关键字时,如果这两个类中包含的属性和方法很多都是相同的,并且这两个类在各自的类图中和其它已知的相似类之间的关系结构也很多都是相同的,通过量化这种相似性,只要这个相似性的值不小于外部输入中给定的类相似度阈值,就认为这两个类也是相似的;当待评价设计类图中的某个类与标准设计类图中的某个类是相似的,那就认为这两个类是相同的,同时也认为待评价设计类图中的这个类是正确的;
(ⅱ)比较标准设计类图的属性与待评价设计类图的属性的差异,属性的比较是以类比较为基础的,只有在两个类是相似的时,才能比较其属性是否相似;当两个属性是同义词或者包含相同的关键字时,就认为它们是相似的;当待评价设计类图中的某个属性与标准设计类图中的某个属性是相似的,那就认为这两个属性是相同的,同时也就认为待评价设计类图中的这个属性是正确的;
(iii)比较标准设计类图的方法与待评价设计类图的方法的差异,方法的比较是以类比较为基础的,只有在两个类是相似的时,才能比较其方法是否相似;当两个方法是同义词或者包含相同的关键字时,就认为它们是相似的;当待评价设计类图中的某个方法与标准设计类图中的某个方法是相似的,那就认为这两个方法是相同的,同时也就认为待评价设计类图中的这个方法是正确的;
(iv)比较标准设计类图的类与类之间的关系与待评价设计类图的类与类之间的关系的差异,类与类之间的关系的差异比较是以类比较为基础的,只有与关系相关的两个类是相似的时,才能比较它们之间的关系是否相似;当两个关系是相同类型的时,就认为它们是相似的;当待评价设计类图中的某个关系和标准设计类图中的某个关系是相似的,那就认为这两个关系是相同的,同时也就认为待评价设计类图中的这个关系是正确的;
所述步骤4具体包括以下步骤:
(i)根据差异比较结果,计算完整性得分;得分公式为:
Figure FDA0003090084420000021
其中mattr、mmet分别为相似属性个数、相似方法个数,nattr、nmet分别为标准设计类图中所有属性个数、所有方法个数;
(ii)根据差异比较结果,计算可见性得分;得分公式为:
Figure FDA0003090084420000031
其中vattr、vmet分别为相似并且访问修饰符相同的属性个数、相似并且访问修饰符相同的方法个数;
(iii)根据差异比较结果,计算核心类得分;得分公式为:
Figure FDA0003090084420000032
其中mcore、ncore分别为待评价设计类图中核心类的个数、外部输入中核心类的个数;
(iv)根据差异比较结果,计算关系复杂度得分;具体过程为:
A.将类图映射为一个无向连通图G=(V,E),其中类图中的类映射为V中的点,类与类之间的关系映射为E中的边;记标准设计类图对应的无向连通图为G1=(V1,E1),待评价设计类图对应的无向连通图为G2=(V2,E2);
B.将为完成某一项业务所需要的类、属性、方法分别定义为有用类、有用属性、有用方法,这些类即为标准设计类图中的所有类、所有属性、所有方法,在待评价设计类图中的类、属性、方法,如果能在标准设计类图中找到相似类的类、属性、方法,那么这些类、属性、方法就为待评价设计类图中的有用类、有用属性、有用方法;
C.记待评价设计类图中所有有用类组成的集合为Cu'={cu1',cu2',...,cuk'},这些有用类在标准设计类图中的相似类组成的集合为Cu={cu1,cu2,...,cuk}而cui和cui'是相似类;对于
Figure FDA0003090084420000033
cuj∈Cu(i≠j),在G1=(V1,E1)中找到这两个类之间存在的连通路径,记路径的数量为n1,路径构成的集合为
Figure FDA0003090084420000034
其中pi={<cui,c1>,<c1,c2>,...,<cm,cuj>},ci∈V1
Figure FDA0003090084420000035
对于
Figure FDA0003090084420000036
cuj'∈Cu'(i≠j),在G2=(V2,E2)中找到这两个类之间存在的连通路径,记路径的数量为n2,路径构成的集合为
Figure FDA0003090084420000037
其中pi'={<cui',c1'>,<c1',c2'>,...,<cm',cuj'>},ci'∈V2
Figure FDA0003090084420000038
当n1>n2时,表明在标准设计类图中的cui和cuj之间能进行通信的路径更多,待评价设计类图中的cui'和cuj'之间路径的设计不合理,缺少部分路径;当n1<n2时,则表明在待评价设计类图中的cui'和cuj'之间设计了过多的通信路径,cui'和cuj'之间存在的关系比cui和cuj之间存在的关系更复杂;
D.记cui'和cuj'之间的复杂度得分为gij,令
Figure FDA0003090084420000041
其中gpi表示
Figure FDA0003090084420000042
的复杂度得分;对于
Figure FDA0003090084420000043
有:
Figure FDA0003090084420000044
其中|pi|表示路径pi中包含的边数;当|pi'|<|pj|时,表明待评价设计类图中的两个类之间进行通信时经过的边数比标准设计类图中与它们相似的两个类之间进行通信时经过的边数还少,这是不合理的;
记待评价设计类图的复杂度得分为gcomplexity,考虑到
Figure FDA0003090084420000045
cuj'∈Cu'(i≠j)共存在
Figure FDA0003090084420000046
中组合,因此令:
Figure FDA0003090084420000047
假设待评价设计类图中有k个类能在标准设计类图中找到相似类,
Figure FDA0003090084420000048
代表任意两个相似类进行组合得到组合个数;将标准设计类图和待评价设计类图分别看成两个无向图G1、G2,其中类为图中的节点,类与类之间的关系为图中的边;gij表示待评价设计类图中的第i、j两个类在G1中分别作为起点和终点的路径长度,与它们的相似类在G2分别作为起点和终点的路径长度的比值;
(v)根据差异比较结果,计算关系正确性得分;得分公式为:
Figure FDA0003090084420000051
其中nr表示标准设计类图中所有关系的个数,mr表示相似关系的个数,hr表示待评价设计类图中在普通关系层面上正确但在多重性关系层面错误的关系的个数;
(vi)根据差异比较结果,计算冗余性得分;得分公式为:
Figure FDA0003090084420000052
其中nc、na、nm分别代表待评价类图中所有类的个数、所有属性的个数、所有方法的个数,mc、mattr、mmet分别代表待评价设计类图中相似类的个数、相似属性的个数、相似方法的个数;
(vii)将(i)~(vi)的结果带入评分公式,计算待评价设计类图的总得分。
CN201810240204.0A 2018-03-22 2018-03-22 一种基于差异比较对设计类图进行评价的方法 Active CN108491189B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810240204.0A CN108491189B (zh) 2018-03-22 2018-03-22 一种基于差异比较对设计类图进行评价的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810240204.0A CN108491189B (zh) 2018-03-22 2018-03-22 一种基于差异比较对设计类图进行评价的方法

Publications (2)

Publication Number Publication Date
CN108491189A CN108491189A (zh) 2018-09-04
CN108491189B true CN108491189B (zh) 2021-07-27

Family

ID=63319216

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810240204.0A Active CN108491189B (zh) 2018-03-22 2018-03-22 一种基于差异比较对设计类图进行评价的方法

Country Status (1)

Country Link
CN (1) CN108491189B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108469949B (zh) * 2018-03-22 2021-07-27 华东师范大学 一种基于差异比较对分析类图进行评价的方法
CN112184660A (zh) * 2020-09-25 2021-01-05 大方众智创意广告(珠海)有限公司 设计图像评价方法、装置及电子设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103279631A (zh) * 2013-06-27 2013-09-04 南京大学 设计模式制导的爪哇代码评审方法
CN105468510A (zh) * 2014-09-05 2016-04-06 北京畅游天下网络技术有限公司 对软件质量进行评估与追踪的方法和系统
CN105468512A (zh) * 2014-09-05 2016-04-06 北京畅游天下网络技术有限公司 一种对软件质量进行评估的方法和系统
CN107102948A (zh) * 2017-05-19 2017-08-29 青岛大学 一种基于uml的软件架构复杂性度量方法
CN108469949A (zh) * 2018-03-22 2018-08-31 华东师范大学 一种基于差异比较对分析类图进行评价的方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7647581B2 (en) * 2004-06-30 2010-01-12 International Business Machines Corporation Evaluating java objects across different virtual machine vendors

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103279631A (zh) * 2013-06-27 2013-09-04 南京大学 设计模式制导的爪哇代码评审方法
CN105468510A (zh) * 2014-09-05 2016-04-06 北京畅游天下网络技术有限公司 对软件质量进行评估与追踪的方法和系统
CN105468512A (zh) * 2014-09-05 2016-04-06 北京畅游天下网络技术有限公司 一种对软件质量进行评估的方法和系统
CN107102948A (zh) * 2017-05-19 2017-08-29 青岛大学 一种基于uml的软件架构复杂性度量方法
CN108469949A (zh) * 2018-03-22 2018-08-31 华东师范大学 一种基于差异比较对分析类图进行评价的方法

Also Published As

Publication number Publication date
CN108491189A (zh) 2018-09-04

Similar Documents

Publication Publication Date Title
Qin et al. Towards an ontology-supported case-based reasoning approach for computer-aided tolerance specification
CN110928764B (zh) 移动应用众包测试报告自动化评估方法及计算机存储介质
KR101607178B1 (ko) 데이터 조작 수행, 데이터 품질 측정, 또는 데이터 요소 결합을 위한 방법, 시스템, 및 컴퓨터 프로그램을 저장하는 컴퓨터 판독 가능한 매체
CN102160066A (zh) 特别适用于专利文献的搜索引擎和方法
CN108491189B (zh) 一种基于差异比较对设计类图进行评价的方法
CN111899090B (zh) 企业关联风险预警方法及系统
CN110728422A (zh) 用于施工项目的建筑信息模型、方法、装置和结算系统
CN109346168A (zh) 一种确定数据相关性的方法及装置
Hryhoruk et al. An approach to design a composite index of economic development and identifying the bounds of its levels
KR101404113B1 (ko) 상세임상모델의 질 평가도구, 평가도구 개발 방법 및 그 평가 방법
Mudde et al. Introduction: rational data choice
CN114741482A (zh) 基于招标信息的中标信息匹配方法、系统、设备及介质
CN113052411A (zh) 数据产品质量评价方法及装置
CN108469949B (zh) 一种基于差异比较对分析类图进行评价的方法
Oppenheim et al. Citation counts and the Research Assessment Exercise, part VI: Unit of assessment 67 (music).
CN106776757A (zh) 用户完成网银操作的指示方法及装置
Tsai et al. Combining AHP and GRA Model for Evaluation Property-Liability Insurance Companies to Rank.
JP2005309674A (ja) 含有化学物質調査データ評価システム
CN111145906B (zh) 项目判定方法、相关设备及可读存储介质
Walker Compared to What? Does Benford's Law Really Detect Corporate Fraud?
CN108509183B (zh) 一种基于差异比较对用例图进行评价的方法
US20230196485A1 (en) After-repair value (&#34;arv&#34;) estimator for real estate properties
CN116342300B (zh) 一种保险理赔人员特征分析方法、装置和设备
CN110109921B (zh) 基于事件相似度的事件日志与过程模型校准方法
Zhuo Real estate price prediction method for small and medium-sized cities based on data mining

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20220831

Address after: 7th Floor, Building 6, Lane 600, Yunling West Road, Putuo District, Shanghai, 200940

Patentee after: Shanghai Industrial Control Safety Innovation Technology Co.,Ltd.

Address before: 200241 No. 500, Dongchuan Road, Shanghai, Minhang District

Patentee before: EAST CHINA NORMAL University

TR01 Transfer of patent right