基于分层架构模式识别的软件架构重构技术
刘国明
生成PDF 清样下载 引用

复制成功

导出题录

参考文献( GB/T 7714-2015 ) 复制

刘国明,. 基于分层架构模式识别的软件架构重构技术[J]. 软件工程研究,2023.10. DOI:10.12721/ccn.2023.157099.
摘要:
在软件系统的不断发展中,原有的体系结构往往会出现体系结构的位移和腐蚀现象,导致系统的实际体系结构与原有的体系结构不匹配。此外,在软件更新过程中架构信息的丢失,使得软件的实际架构和设计架构越来越大,增加了系统维护成本,降低了软件质量。分层体系结构模型是目前应用最为广泛的软件体系结构模式之一,这种软件体系结构模型可以降低系统的复杂性,提高系统的可修改性,可重用性,可移植性,减少系统联锁,易于维护。Andreopoulos 等人提出了一种新的聚类算法 MULIsoft, 它结合了目标系统的静态信息和动态信息的操作, 以恢复目标系统的层次结构. 但上述方法识别获得的层次结构和目标系统的层次结构不匹配, 识别精度低.该算法能够将目标系统的数据包结构分解为层次结构,如果对系统结构有周期性依赖,但没有实际的重构实现建议.
关键词: 架构重构分层架构模式架构模式识别重构点定位
DOI:10.12721/ccn.2023.157099
基金资助:

引言

本文针对分层软件体系结构模式的特征、软件的分层结构信息以及不同层之间的依赖关系,1.采用逆向工程方法恢复软件体系结构,并根据分层体系结构的规范识别违反分层体系结构的设计,并根据重构点的建议生成重构点。2. 提出一种形式化的重构点定位方法,使用分层体系结构模式的规则,通过一致性决策准确地找到软件中的重构点;对于三种类型的违规,生成相应的模式重构建议,并将模式重构建议映射到代码级重构建议,以有效地指导软件体系结构重构的开发人员。

1分层架构模式识别方法

1.1代码预处理代

系统架构 代码中独立的信息会严重干扰软件架构模式的识别过程,影响识别的准确性和效率,本文使用通用规则,域规则和自定义规则过滤目标系统的源代码。

1.2软件责任恢复

本文使用三个步骤:代码词汇信息提取,主题提取和组件化,以分析软件实体之间的任务相似程度,并将它们分组以生成代码预设的组件。(1)代码词汇信息提取将预处理的类源代码文件转换为抽象语法树(AST),并通过遍历AST节点提取每个类文件中的词汇信息。由于软件责任的程序单元的分类级别是系统的包级别,因此从每个类文件中提取的单词必须根据相应的包合并,并为每个包生成相应的词汇表文件。(2)代码主题词提取采用分词方法,将词汇文件中的复合词分成独立词,通过词根提取所有单词或词根,然后删除不传达有效信息的单词,消除噪声。

1.3软件层次识别

软件层次识别是基于组件之间结构依赖关系信息的组合来生成完整的组件图,并结合层次结构模型的ILD属性进行层次识别,最终得到目标系统的层次结构。创建类之间的结构依赖关系图。定义类结构的依赖关系图Gcls<clses,Edgecls>包括所有Cles节点和Edgecls类之间的依赖关系.Gcls使用相邻表进行抽象表示,实体类在目标系统i中生成相应的CLSI端点,将所有实体类顶点存储在一维表中,这些顶点作为依赖关系的起点,每个点表示系统中相应的实体类,每个页面表示类对之间的依赖关系。由于创建组件依赖关系图需要有关包之间的结构依赖关系的信息,而类依赖关系图仅包含类之间的关系,因此创建组件依赖关系图还需要为包创建结构依赖关系图。

1.4软件分层架构模式识别结果优化

优化每个级别上的所有类(包括类),遍历层次结构中的所有类,生成类结构所依赖的类列表,然后验证所有依赖类是否满足层次结构要求和它们之间的依赖类型。如果类位于依赖类旁边的上、下两个级别,并且其所属的包是继承的还是实现的,则该包将作为单独的组件移动到下一个级别,并更新组件结构以更好地识别gcl模型.

2基于模式识别结果的分层软件架构重构

重构建议生成

本文档基于自上而下的原则,设计了体系结构重新配置和代码重新配置。此外,在层次结构中,PAA将添加到“改建点位置”步骤中的“跳过”集合中。为了使目标系统符合在层级模式下使用的标准,它们建议将与PA相关的页面中断为内部类别档案上的PB相依性,因此将将PA与PB分离的重新规划建议对映至程式码层级,并建立消除四个类别{C1→C5,C3→C4,C3→C5,C2→C4}之间的从属边的重新规划建议体系结构重构根据三种层次结构违规分为两种类型:中断和修改包的内部接口.

3架构重构工具的关键技术

3.1信息提取

“信息提取的主题是,实际的体系结构隐藏在原始数据中,包括系统源代码、编译文件、配置文件和测试用例,其中,在体系结构重组过程中,信息提取技术的源代码可以最直接地分为静态和动态分析,您应该选择提取的信息技术,并且可以根据需要使用设计模型分析工具、文件和可执行文件提取更多信息,例如,包含模块或文件的文件系统依赖信息可能不会在源代码中投影。

3.2模式识别

在Sartipi和kontogiannis 52的研究中,基于模式识别的模式识别方法是基于模式识别的软件体系结构重构技术的主要自动化方法之一,它通过抽象的方式来检测通用的结构和模式,并简化了对这些结构的视图替换,从而使工程师能够快速发现和理解这些结构和模式,从而缩短了系统识别体系结构重构模式所需的时间,这是一种通用的数学方法—概念形状分析(FCA)。

结束语

本文设计了一种基于层次结构模式识别的软件体系结构重构技术,该技术能够利用代码术语信息恢复软件职责,使用类结构模式生成依赖于组件结构的图,并根据模式识别结果重构点位置和重构建议,最后通过实验分析,验证了该技术在模式识别、重构点识别和设计重构等方面要优于传统方法。帮助软件开发人员识别软件体系结构方案、放置改建点和生成重新配置建议,以帮助开发人员实施体系结构重新配置、改善系统违规情况并提高软件质量.

参考文献

[1]于丽.基于敏捷开发模式的软件架构设计[J].电脑知识与技术,2015,11(06):91-92+94.

[2]赖红,何岭松.动态可重构虚拟仪器技术[J].仪表技术与传感器,2012,No.349(02):25-27.

[3]王伟明,董黎刚,诸葛斌.开放可重构路由器协议标准及软件架构技术方案探讨[J].信息工程大学学报,2009,10(01):7-11.

[4]符凯.软件架构重构技术的研究与实现[D].西北大学,2007.

[5]智永锋.基于通用框架ICETIP应用集成平台研究及实现[D].西北工业大学,2006.

》在线投稿系统

*文章题目:
*作者姓名:
*电子邮箱:
*通讯地址:
*联系方式:

  备      注:

*上传稿件:

支持上传.doc,.docx,.pdf,.txt,.wps文件

投稿须知:

1、审稿结果将于1~7个工作日以邮件告知,请注意查收(包含录用通知书、审稿意见、知网CNKI查重报告)。

2、提交投稿后,若7个工作日之内未接到录用通知,则说明该文章未被录用,请另投他刊。

3、凡投寄本刊稿件,如在内容上有侵权行为或不妥之处,均应文责自负。本刊有权对来稿进行文字编辑、加工和修改,如不同意,请附说明,以便妥善处理。

4、多作者文稿署名时须征得其他作者同意,排好先后次序,通知用稿后不再改动。

5、凡投往本刊稿件一经录用发表,其版权归本刊所有。

6、本刊已全文录入中国知网、万方、维普等数据库,如作者不同意被收录,请提前申明,未申明者,本刊一律视为同意被收录。

7、请勿一稿多投。