软件体系结构反模式的检测与消除技术研究

来源 :北京大学 | 被引量 : 0次 | 上传用户:linxiao13421
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
如何构建高质量的软件系统一直以来都是软件工程领域的一个核心问题。尤其是软件系统进入到维护演化阶段,随着系统不断地修改,会不可避免地渐渐变得复杂、难以理解。另一方面,近些年来随着软件系统的复杂性不断提高,以及网构软件、云计算等新技术的出现,系统中软件实体的交互变得越来越灵活,运行环境也千变万化。这些变化趋势使得构建并维护一个高质量的大型软件系统变得更加具有挑战性。  “软件模式(software pattern)”是应对软件复杂性、提高软件质量的一种有效方法。模式作为一种对经验的总结,针对软件开发过程中一些反复出现、且具有共性的问题给出了良好的解决方案。近些年来,已经有大量的研究工作总结了各种各样的软件模式,例如面向对象的设计模式、软件体系结构模式等。作为与对模式研究的一个自然延伸——“反模式(anti-pattern)”,从1998年正式在软件工程领域被提出之后,受到了学术界与产业界的广泛关注。反模式,概括而言就是针对软件系统中,经常出现、但对系统产生不良影响的软件设计的经验总结。由于架构师或开发人员的经验不足、或对模式的不当理解、亦或项目的进度压力等各种原因,都会导致软件系统中反复出现一些类似的不良设计,即反模式。本文从软件体系结构的角度,探讨了软件系统中的反模式以及其检测、消除技术。  通过总结现有工作,我们发现现阶段的研究大多仅侧重于如何支持建模反模式而忽视了如何自动地执行检测,而支持自动检测的工作又大多仅针对某一类具体的反模式(如体系结构设计反模式、面向对象设计的反模式、代码实现中的反模式等),另外对于反模式的检测与消除两部分的工作目前也缺乏有效的结合。由于系统开发的复杂性,通过手动的方式很难获得对运行时系统的一个完整理解,包括其结构以及整个系统的行为,并且找到系统中存在的反模式,是不现实的。这不仅开销过大,也难免遗漏掉一些反模式实例。因此,我们认为有必要提供一种自动化的方式对运行时系统进行反模式的检测与消除。  针对现有研究工作存在的问题,本文从①运行时软件体系结构RSA的信息整合、②基于模型的反模式检测、以及③反模式的消除,三个方面对反模式的关键技术进行研究,提出了一种通用的反模式检测与消除方法,并实现了支撑工具的原型。  本文的主要贡献以及特色包括如下几点:  在反模式检测的输入方面,本文选用信息丰富的运行时体系结构模型。  由于现有工作或是从静态的体系结构设计以及代码入手,或是通过分析系统运行记录以及性能检测入手,缺乏一种全面的信息来源。本文基于本研究小组的已有研究工作,通过模型融合构造出一个信息丰富的运行时体系结构模型。该模型中不仅可以获得系统的结构信息(包括构件、连接子等),还可以获得系统的各种行为信息(包括构件之间交互记录等),此外还可以获得系统部署的计算资源相关的信息(包括计算节点的CPU、内存、带宽等)。通过把该模型作为输入,本文采用标准模型转换语言QVT对模型进行反模式检测与消除。  在反模式检测方面,本文提出了一种系统化的反模式分类方式。  为了支持更多的反模式,本文根据反模式的本质以及特点,参照MDA的分层方式把反模式分为:PIM层的体系结构反模式、PSM层的体系结构反模式、以及计算资源相关的反模式。并通过模型转换技术,实现运行时系统模型的从PSM到PIM的转换,以实现三类反模式的自动检测。针对每一类反模式,本文利用QVT过程式描述方法,预定义了一组典型的反模式检测代码。此外,在工具的支持下,我们还允许维护人员或反模式专家定义更多的反模式。  在反模式消除方面,本文提出了一种完整的反模式检测及消除方法。  由于目前的研究大多缺乏对反模式检测结果与反模式消除的有效地衔接,因此对于反模式检测结果不能有效消除。而本文的方法针对不同类别的反模式,分别采用不同的手段给予不同程度的消除支持。
其他文献
信度网被认为是目前最有竞争力的一种不确定知识的表达方式,它以结点表示状态,以有向边表示结点间的相互依赖关系,用条件概率表(CPT)表达结点间依赖关系的强弱.基于这样的独
当前,宇航产品研制任务密度高、研制周期不断缩短,如何提高产品设计效率、保证设计质量成为亟待解决的问题。宇航产品设计过程对知识高度依赖,设计人员需要准确、及时、高效的获
近年来,随着科研项目规模的不断扩大,科研领域产生的数据量急剧膨胀。这预示着科研正在步入大数据时代。大数据科研为当前的科学计算提出了一个新的挑战:处理和分析这些数据需
近年米,以IPTV为代表的视频类业务越来越受到电信运营商的重视,移动终端视频类业务也愈加普及,不断改变人们的生活方式。在这个以用户为中心的时代,用户是否满意是视频业务提
学位
嵌入式技术随着后PC时代的到来得到了迅猛的发展,人才缺口较大。《嵌入式系统》是一门实践性很强的课程,其实验设备更新换代快、投入大,一些高校无力提供足够的实验设备。而
一直以来,如何快速地从空间数据中提取更加丰富和有用的信息,为人们有效地管理和利用空间数据提供信息决策参考是空间分析研究人员的目标。随着全球范围测量精度的不断提高,
因特网的迅猛发展使大规模的数据共享成为了可能,随之而来的还有数据爆炸式增长所导致的信息过载问题。推荐系统便是在这样的情况下应运而生,它的出现使用户潜在感兴趣的信息能
从移动Ad Hoc网络演变而来的无线Mesh网络(Wireless Mesh Network,WMN)是一种多跳的无线网格架构网络。具有大容量、高速率、宽覆盖和快速部署等优势,同时又能很好的融合多种异
随着软件规模的不断增大和日益复杂,软件危机已经变得越来越严重。解决这个问题的最有效的方法是软件复用。近年来RUP(Rational Unified Process软件统一开发过程)已经被广泛