引言
本文针对分层软件体系结构模式的特征、软件的分层结构信息以及不同层之间的依赖关系,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.