基于矩阵积分评估的设计模式检测研究-肖卓宇.pdf
《基于矩阵积分评估的设计模式检测研究-肖卓宇.pdf》由会员分享,可在线阅读,更多相关《基于矩阵积分评估的设计模式检测研究-肖卓宇.pdf(6页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、小型微型计算机系统 2016年7月第7期Jj哪al of ctlinese computer systemsV0137 No7 2016=:=: =:= :=:=:=:=:=:=基于矩阵积分评估的设计模式检测研究肖卓宇1,黎妍2,何锫3,陈俊旭11(中南林业科技大学涉外学院,长沙410200)2(湖南高速公路管理局,长沙410209)3(广州大学计算机科学与教育软件学院,广州510006)Email:xzyxzy0770126com摘要:设计模式识别是软件复用的一项重要工作,而设计模式实例检测有利于软件系统的理解与维护,为解决设计模式检测中软件系统与设计模式间匹配的精确性问题,并降低检测的复杂
2、度,提出一种基于图形顶点之间矩阵积分的评估方法,形式化了软件系统和设计模式的矩阵表示,利用逆向工程中的大类图拆分方法对初始信息进行修饰,将其结果转换为基于图形的邻接矩阵表示形式,再依据矩阵积分规则对之进行计算,得出MatrixG船de积分评估表示形式的匹配结果,并通过多个开源项目验证了该方法的准确率与有效性,与其他检测算法的结果比较,说明了本文方法值得进一步研究关键词:设计模式;逆向工程;设计模式识别;图形匹配;邻接矩阵;矩阵积分中图分类号:哪ll 文献标识码:A 文章编号:1000-1220(2016)071428舶R蝴rch仰Mat血G瑚de EVal明廿on B嬲ed on D商舯Pat
3、tem DetecU蚰)江A0动uoyul,U Y觚2,髓Pei3。C眦N Junxul。(Forc谵n C01Iege 0f C朗n锄Soutll UlliVers时ofForesy柚d 1鼬noIog)r。Ch柚gsha410200。a血a)2 I Hun锄珏ghways A(1IniIIis撕0n,ch锄gslla 410209。QIina)3 I SchD01 of C嘲putcr SciccEducalion SofMa佗Gu柚gzhou UIlivers时,Gu锄g曲伽510006,China)Abst耐:DesigII pat【em identification is锄ilnp咖
4、t element of many solu曲ns of Sof细are Reuse。However,detec60n of desi弘pat-tem installces is Very imp(n锄t蚰d helpfIll for software understanding and maintenanceHence,iIl ordcr to solVe me matclling accuracy problem between so脚afe system ar屺design pattem,feducing me complexi哆of tI虻idendfication,This pape
5、r p芏esents a novelmethod fbr design panem detecdon based on m砌x gmde evaluadon of nle dif!fbfence bc怕,am me vertexThe fbnnaliza吐on of matrixsoftware system and design pattem陀prescn倒jon。Mo(Iifkadon of tlle pre蛐afy mfor堇11ation bad on decomposi60n class diagramsgenerated by fe邺egille嘶ng a190dmm is des
6、igll酣,Ikn。tlle results、ill be咖slated into a gmph based feI珊s伽on of nle adjacency man奴。caIculated in accord锄ce、itll吐Ie rules of ma砸x擎ade,it wm be台孤s内f嘲into M曲蔽Gfade托pfesent娟on resultbased matrix。Finally。eValualion on叩en-soule pmjects demons锄ed me accumcy卸d tIle ef丘ciency of Ille pmposed memod,wllichi
7、s compared to omer well一虹own a190fi岫ns。indica妊d也at this a蔓gorimm more feseaKh of u如g ma城x鲫e ev如ation is needed1【ey唧ordIs:design肼吡em;reVerse engiIlring;design pattem idend丘cadon;graph matclling;a由acency m撕x;m矧x grade1 引 言设计模式为软件项目研发提供可复用、可理解的解决方案,而被广大面向对象的程序设计者推崇设计模式表示了一个高层次的抽象,并涉及软件复用的有效知识,因此,应用设计模式
8、研发的软件项目存在大量的可复用信息此外,设计模式检测的结果是软件系统再工程的一个重要支持,这为系统研发者理解、维护、修饰软件系统带来了便利而自动检测设计模式的方式相对传统的手工方式无论是效率还是实用性上都是一个质的飞跃,这对软件系统再工程是有意义的目前众多研究者在设计模式检测技术、方法及工具等方面做了大量的工作1,文献3使用了抽象的建筑思维语言来记录设计模式的选择,但其主体的描述和代码分离,以至于很难被自动检测,文献4使用语义分析对结构型及行为型设计模式进行识别,遵循命名的约定,并对类与方法对应的角色进行注释,从而减少检测结果的假阳性率文献5提出对设计模式中主要角色的特征进行注释,该方法侧重了
9、类结构,但对类关系的检测缺乏约束机制文献6中允许开发者依据源码,通过面向方面的Java注释来对所开发软件进行不同设计模式的选择,提出了切点的概念,对类所承担不同职责的角色进行了细化文献7,8借助视觉语言分析技术来映射每个设计模式的图形表示形式,该方法有其可视化的优点,具有很好的精度,但仅限于结构型模式,针对创建型与行为型模式的效果不收稿日期:2015旬5拟收修改稿日期:2015狮JD2基金项目:国家自然科学基金项目(61170199)资助;广东省自然科学基金项目(2015A030313501)资助;湖南省教育厅重点基金项目(11A004)资助;湖南省大学生研究性学习和创新性实验计划项目(湘教通
10、201584号197)资助;中南林业科技大学教学改革项目(201509)资助 作者简介:肖卓字。男,1979年生,硕士,副教授,高级工程师,CCF会员,研究方向为软件复用、逆向工程、人工智能;黎妍。女,1983年生,工程师,研究方向为软件复用;何锫。男,1963年生,博士,教授,研究方向为软件理论、演化计算;陈俊旭,男,1995年生,本科,研究方向为软件复用万方数据7期 肖卓宇等:基于矩阵积分评估的设计模式检测研究 1429一_一_够理想文献9,10提出了一种设计模式逆向工程的评估框架,侧重设计模式检测技术及相关工具的研究,并将不同的方法与工具进行了比较,但较少涉及精确度等参数的评估文献11基
11、于度量的方法计算程序相关的指标来识别设计模式,依据源码的不同表示,使用不同的技术来比较每个设计模式的定义与源码指标的度量值文献12使用不同参数来评估设计模式识别的准确性,讨论了影响设计模式检测结果准确性的各种因素,并专注于真阳性、假阴性等参数的微观分析文献13提出了一种细粒度Fsco佗参数来进行设计模式识别的精确性评估文献14运用邻接矩阵对设计模式进行自动识别文献15通过评估不同图形之间子图的相似性来取代顶点相似性综上所述,这些设计模式检测方法或多或少存在如下问题:1)待匹配的信息未进行修饰,而导致匹配过程成本过高2)软件系统与设计模式匹配的形式过于抽象,导致自动匹配程度不高3)软件系统与设计
12、模式进行匹配时,缺乏一个合理的评估尺度为此,提出了一种基于矩阵积分评估的设计模式检测方法,主要思路是将软件系统中的类与方法等特征信息抽取后,通过文献16中提出的逆向工程中的大类图拆分方法进行修饰,之后将其拆分结果表示为基于图形的邻接矩阵表示形式,通过文中制定的规则将之转换为Ma血Gradc形式,并通过开源项目对本文方法的有效性进行了实验与评估2基于图形与邻接矩阵的设计模式表示21设计模式与系统表示的形式化描述定义1类与类之间关系定义:类与类之间的关系函数表示为:R。:仇瑚弧s尺。(G,q):弛站xa伽R(cj。C,)=g删棚,傩舳渤|册,口gg嘲蛳其中cl,q E cz删,nE1,2,R。(c
13、j,C:f)中n的取值为1,2,3时分别对应参与者类cI与C:f之间的泛化generati、关联硒soc虹岫on、聚合aggrcg撕关系,文中主要以这3种关系进行说明定义2类之间关系函数值定义:设计模式中所有参与者之闻的关系被映射成函数值“1”或者“O” R。(cf,cf):啪抛r其中舭,O,1,当NIImI埘为O时,表示设计模式中参与者类之间不存在任何关系;当Number为1时,表示参与者类之间存在定义1中的某种关系定义3系统矩阵定义:待匹配的软件系统中参与者类之间的关系被定义为一个矩阵缸打抚置。=(Ai)。A毛=R(G,C!f),ci,G Ecz黜li,jm,其中m表示参与者类的个数定义4
14、设计模式中所有的参与者类被定义为其设计模式类,并表示为设计模式中类的集合Vp Ep口船m,Czc琊(p)其中pattern=C(Impos沁,adap嘧,b咖ge,表示为23个基于GOF的经典设计模式定义5设计模式矩阵的定义:设计模式中类之间的关系定义为一个矩阵缸打讧P。=(A毛)。A玎=R。(cf,C!f),cj,C!cz鲫(p),li,jm,m表示参与者类的个数22设计模式表示的实例说明将图l中Cc蚰pos沁模式的参与者Cc啦p蛐t、L七曩f、c鲫lpos蛔分别对应图2中的节点l、2、3。图1中kaf、comp沁与C0mp如t之间存在泛化关系,此外,c咖posite与c彻1p姗t间存在聚合
15、关系图lFig1依据定义l,可以得出尺。(ci,G)=generali,aggrega曲n,其中蜀(cI,c2)与蜀(c。,c3)=gene脚,R(c。,c3):aggregation图l中泛化关系对应的关联矩阵g吾 图l中聚合关系对应的 关联矩阵Ma仃ix P3阳o-01o o olJ】 o o J、 ,O竺塑竺竺 OMa仃ix P2、 ,图2 composite模式关系映射的邻接矩阵形式Fig2 M柏奴of C伽pos他pat嘧n诧ladon m印ping依据定义2,先考虑参与者之间的泛化关系,由图2可以看出R。(C。,c2)与R。(c。,c3)存在泛化关系,即R-(c-,c2)=1,R。
16、(c。,c3)=1,而其余参与者类之间不存在泛化关系,皆表示为R。(c。,q)=o,其中(cj,q)薯(c,c2),(c,G);此外R,(c。,c3)存在聚合关系,即R。(c。,c3)=1,而其余参与者类之间不存在聚合关系,皆表示为R,(cj,q)=o,其中(cj,c)薯(G,G),参与者之间的关联关系不存在,故表示为R:(C;,G)=O依据定义4并结合定义l与定义2结果,由于图l中的C伽ll瑚沁设计模式有C明lp(腿斌、k时、C伽1pos沁三个类参与者,可见定义5中的m为3,故最终的矩阵形式表示为一个3奉3的矩阵,l如慨一Pl、l砌电一P2、肘曲呶一P3分别对应图2中的设计模式泛化、关联、聚
17、合矩阵这样的邻接矩阵可以以稀疏矩阵的形式减少系统与设计模式之间匹配的复杂度,并在一定程度上检测出其他方法不能挖掘的实例n小叫叫X畦00OaM0,J,-_-_-_万方数据-430 尘型竺翌兰竺塾墨竺 竺!竺3积分矩阵评估概念31积分矩阵理论在文献17中提出了一种基于不同图形顶点之间迭代的相似性公式,详见公式(1)可理解为存在两个图形G1与G2,文中G1代表需要匹配的软件系统图,M。表示软件系统的矩阵表示形式;G2表示设计模式图,M,表示设计模式的矩阵表示形式G1中的顶点数为n1,G2中的顶点数为以而矩阵积分MG(Ma仃ix Grade)定义为一个n1112的矩阵,Mo表示一个联系矩阵,其值都为1
18、,例如:M。为nl+n1的矩阵,M一为112木皿的矩阵,在执行公式(1)时,M。可以表示为一个n1t 112的矩阵,其值皆为1,另外l。表示范数1鹏c坼川=横等鬻箍酱羰本文为了获得所有软件系统与设计模式的图形匹配信息,需要取得图形中所有关系矩阵(如:泛化,关联,聚合等)提供的信息公式(2)中嬲,(埤,呱)表示待匹配软件系统S与设计模式P匹配时存在的n种关系,其中i为l,2,3分别对应泛化、聚合、关联,文中主要以这3种关系为例进行说明ADD(坼,慨)表示图中所有关系矩阵的鹏。(坼,帆)值之和其中泛化、聚合、关联矩阵对应的值可分别表示为:瞄I(九尸,锄5)、崛(AggP,A船5)、瞄3(A船户,A
19、驰s)而矩阵积分鹏(坼,慨)的取值在O,1之间ADD(嗨,魄)=MGt(M,织) (2)公式(3)中胁fmGr口如(尸,r)表示最终的矩阵积分评估值,T表示测试用例,P代表设计模式,而Nl、N2Nn对应设计模式角色1、角色2、角色n涉及的矩阵数量,依据公式(2),并应用一个基于n书n对角矩阵的仿射变换机制来实现最终的矩阵积分值其中矩阵每个对角线元素(i,i)表示为1Ni,il,nf扣。肘af,缸G融(P,r)=ADD(尸,丁)Io o I(3)l忐j32矩阵积分评估原刚在实际的模式检测过程中,可能出现一个类对应多个设计模式中的角色,这种情况极易造成软件需求与实现的差异因此,31节公式(3)的胁
20、fmGm如(尸,丁)值中较高的积分较适合作为一个设计模式角色的候选者为避免一个类对应多个角色的问题,文中提出了一个矩阵角色积分评估阈值的概念,考虑到矩阵角色积分评估阈值太低时,几乎任何结构都可以匹配设计模式;反之,当阈值过高,一些设计模式很难被检测文中给出的阈值为O6,大于该阈值即可作为一个设计模式角色的候选者如果多个角色矩阵积分皆大于O6,再选择积分最高者作为最优匹配结果,表示为真阳性TP(1me posidve);否则,表示检测失败33用铆分析图3的测试用例Testl中存在A1与B1两个节点,并且两个节点(Al,B1)之间分别存在泛化与聚合关系而测试用例Te蛇中(A2,B2)与(A2,C2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 矩阵 积分 评估 设计 模式 检测 研究 肖卓宇
限制150内