- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
摘要
摘要
在软件系统设计阶段,设计人员往往会选择复用已有的架构模式进行软件系统的架构设计,尤其是
应用最为广泛的分层架构模式。分层模式将系统实体组织为层次结构以实现系统的关注点分离,合理运
用分层模式可以提升软件系统的一系列质量属性。然而,随着软件系统不断演进,原始设计的分层架构经
常出现架构偏移与腐蚀,导致系统的实际架构与原始架构不一致。甚至,在软件的非系统性或临时性修改
过程中,引入违背分层模式设计原则的代码实现,严重威胁了软件系统的质量。此外,在软件系统的持续
演进过程中常常伴随着架构文档的丢失与不及时更新,种种方面导致重构这类系统的代价不断增长,最
终导致软件系统无法保持持续的演进。为了缓解这类问题,利用系统源代码逆向获取软件系统的实际分
层架构并进行及时重构就显得尤为重要。
本文从分层架构模式识别与架构重构两个角度出发,对相关研究进行了系统分析,归纳了现有识别
方法与重构研究的不足,并总结了分层架构模式的相关特征以及使用原则。在此基础上,提出了基于软件
职和结构的分层架构模式识别方法以及基于模式识别结果的架构重构方法,主要工作如下:
在现有识别方法基础上进行改进与扩展,引入了代码过滤处理、识别结果优化以及可视化步骤,同
时设计了基于源代码AST 树的信息提取方式,从而生成了一套完整的分层架构模式识别方法。
总结了分层架构模式应用规范相关的三项原则,引入了三种对应的分层违规的形式化定义,在此基
础上设计了基于分层模式识别结果的架构重构方法,能够实现自动化的重构点定位并生成对应的重
构方案。
按照本文提出的模式识别及重构方法,设计并实现了原型工具LARRT (Layered Architecture Recovery
and Refactoring Tool )。
通过开源软件的模式识别实验发现,本文所述的分层架构模式识别方法具有更好的精度,即模式识
别结果更接近目标系统的实际分层架构,因而识别得到的系统分层架构能够有效帮助理解系统的现有状
态,降低设计开发人员理解系统的难度。基于开源软件识别结果的架构重构实验发现,本文提出的架构重
构方法能够发现软件系统中真实存在的问题,自动化生成的重构方案在一定程度上能够有效指导设计开
发人员进行重构实施。
关键词:分层架构模式;分层架构识别;软件职责;架构重构;
I
Abstract
Abstract
Software designers tend to reuse the existing architectural patterns to guide the process of architecture design
during the software design phase, especially the widely adopted layered pattern. The layered pattern is often used
to construct the system entities into a hierarchy structure to separate concerns of the system, and the rational use
of layered pattern could promote a series of quality properties. However, the layered architecture of the system
tends to be inconsistent with the initial design due to architectural drift and erosion. Moreover, the layering
violations could be introduced as the system undergoes unsystematic and ad-hoc modifications
原创力文档


文档评论(0)