肖卓宇,何 锫,徐运标,陈 果,郭 杰,黄 俊
(1.湖南工业职业技术学院信息工程学院,湖南 长沙 410208;2.广州大学计算机科学与网络工程学院,广东 广州 510006;3.湖南工业职业技术学院机械工程学院,湖南 长沙 410208)
Erich等[1]提出了3类共计23种经典设计模式,并被广泛应用于软件设计。设计模式挖掘有助于理解、维护和重构大中型复杂软件系统,能有效减少软件项目研发成本,缩短软件系统研发周期,故在逆向工程领域有着重要的意义[2,3]。为此,众多国内外学者的研究工作围绕设计模式挖掘展开[4 - 6]。
Chihada等[7,8]将C4.5、SVM等机器学习算法引入到设计模式挖掘领域。Yu等[9]关注了结构型设计模式特征序列。肖卓宇等[10]提出了基于可视化文法约束的设计模式识别方法。Mayvan等[11]基于图论原理,并通过多阶段语义约束实现设计模式挖掘。Petterson等[12]提出设计模式变体是影响工具挖掘有效性的重要因素。文献[13]总结了8种标准Bridge设计模式演化后的典型变体。文献[14]依据GOF(Gang Of Four)设计模式分类原则,分3类总结了4种结构型Proxy设计模式变体、4种行为型Command设计模式变体和7种创建型Factory Method设计模式变体。文献[11,12,15]初步归纳了设计模式变体的普遍性规则,并对设计模式演化后的变体挖掘及其主要影响因素进行了前期研究。文献[16]基于谓词逻辑对设计模式进行了描述。

Figure 1 Steps of variant mining of design pattern with clue constraint
总体而言,目前研究工作对设计模式变体的关注比较缺乏,尚未形成全面、清晰的认识。主要问题归纳为以下3点:
(1)缺乏对设计模式变体的进一步研究。
(2)设计模式案例库缺乏对设计模式变体挖掘的支持。……