软件体系结构中状态方面的编织研究

来源 :山东大学 | 被引量 : 0次 | 上传用户:huangyp2002
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
作为控制软件复杂性、提高软件系统质量、支持软件开发和复用的重要手段之一,软件体系结构(software architecture)自提出以来,日益受到软件研究者和实践者的广泛关注,并发展成为软件工程的一个重要研究领域。通过对系统进行的组件式分解,软件体系结构实现了对软件系统构建初期面临功能关注点的有效分离。然而,软件体系结构面临的许多表示非功能需求和质量要求的关注点大都表现出横切特征,它们的实现横跨系统的多个组件,从而降低了软件的可重用性,造成系统在演进和维护上的极大困难。这种关注点被称为横切关注点(crosscutting concerns)。为了应对横切关注点引起的各种问题,面向方面的软件体系结构设计(Aspect-Oriented Software Architecture Design)将方面(aspects)机制引入到软件体系结构的设计中,用方面对横切关注点进行封装表示,通过方面的模块化处理,促进系统的可追踪性、可理解性和可维护性。当前,面向方面的软件体系结构设计已经成为软件工程领域中的一个研究热点。然而,软件体系结构中的诸如安全、业务规则、可用性、可靠性、可维护性等许多横切关注点呈现依赖于系统运行历史的特性。为了对这种历史敏感的横切关注点进行封装,方面需要带有状态。带有状态的方面称为状态方面(stateful aspects),它通过状态记录系统的执行历史,并根据所处的状态来决定是否执行相应的横切关注点行为。编织(weaving)是实现方面和系统其余模块组合的方式,一直以来都是面向方面领域一个基本和重要的课题。它不但需要根据方面所提供的信息,在系统中寻找恰当的织入位置,并确定方面行为与织入点行为之间的操作时序,还需要检测和处理编织中可能遇到的方面冲突。而状态的引入,使得状态方面的编织面临比常规方面编织更多复杂的问题。为了对系统面临的历史敏感横切关注点进行模块化封装,需要将状态方面引入到软件体系结构设计中。而当前的面向方面软件体系结构设计方法并没有提供支持该概念的表示机制,也没有提供有效的编织状态方面的方法。基于上述背景,本文在吸取当前面向方面的软件体系结构设计和状态方面编程等相关研究成果的基础上,对软件体系结构中状态方面的编织问题展开深入研究,形成了一套完整的形式化的编织方法,并开发了原型工具和通过实例对该方法进行了应用和验证。本文的主要研究内容包括:1.软件体系结构状态方面的形式化建模研究。为了在软件体系结构中实现对状态方面的表示,对基本系统的语义、支持状态的切点模型、通知模型以及状态方面的定义等展开研究。基本系统的语义描述系统执行的完整行为,切点模型描述状态方面对基本系统执行历史的关注,描述状态方面在何处编织(where),而通知模型描述状态方面所封装的横切关注点的行为(what)以及这些行为在何时(when)触发。2.状态方面编织的语义和策略研究。由于现有研究缺乏形式化的编织语义,也缺乏支持状态方面编织的方法,因此对软件体系结构状态方面的编织语义和策略展开研究。在语义方面,对方面编织运算的结构化操作语义SOS (structural operational semantics)和编织中语法层的方面交互问题进行了研究,并考查了编织运算的特性。在策略方面,对关联的确定方法、切点的判断算法和具体的编织算法进行了研究,并开发了原型工具和实例对其进行了实现和应用。3.状态方面编织的校验和分析研究。方面交互是方面编织中的一个重要问题,其检测和处理对于增强系统的安全性和可靠性有非常重要的意义。首先研究了系统属性层次上的语义方面交互的定义及其校验方法,然后研究了编织影响的分析和推理方法,并在原型工具上进行了实现和验证。本文工作的主要贡献体现在:1.将LTS引入系统执行语义的表示,并在对LTS适当扩展的基础上,建立了描述状态方面的切点模型和通知模型,从而解决了状态方面在软件体系结构中的表示问题,为软件体系结构状态方面的编织提供了依据。2.在对LTS的并发组合(‖)进行扩展的基础上,提出了组合运算(“∝”),并以此为基础建立了状态方面的关联点确定方法。与同类方法相比,该方法不需要引入额外的同步动作,从而避免了由此引起的组合状态数过多的问题。3.将状态方面的编织定义为在基本系统、切点和通知之间的组合运算(“(?)”),并建立了该运算的操作语义以及支持该语义的具体编织策略。这是一个形式化的语义,基于它可以开展对为编织前后系统行为的理解、分析和推理。4.针对传统方法无法分析状态方面的编织影响以及缺乏形式化分析方法所带来的难以推理的问题,提出了一种状态方面的编织影响分析方法。它引入LTS之间的弱模拟等价关系作为衡量状态方面编织对一个待分析模式的影响的标准,从而使得编织的分析和推理变得容易。
其他文献
医疗挂号费作为一项医疗服务收费项目被各大医院广泛采用,但其法律性质却鲜有人去研究,这造成了人们对挂号费性质的误解和增加了医患关系的紧张程度。本文拟从挂号费的定义界定
为了适应时代的发展,专业基础课的《机械制造与材料基础》的教学目标不再仅仅是掌握经典理论。随着卓越工程师的提出,了解新兴技术,有效解决生产实践问题,成为培养适应形势变化的
职业院校在药学教学中,要注重提升学生综合技能和职业素质。通过建立和应用模拟药房,有效满足药学教学需求。与此同时,模拟药房作为技能实训的重要场所,应对其进行正确运用,
2014年5月16日晚,在泸州医学院城北学术报告厅,上海社科院刘长秋副研究员应邀为泸州医学院师生带来了一场题为"生命法学,是什么?为什么?"的学术讲座。此次讲座由泸州医学院四川医
目的:通过诊断腰椎间盘突出症,物理检查应注意事项的论述,研究腰椎间盘突出症诊断治疗新方法;方法:要有整体观念,要有全面检查排除干扰;结论:腰椎间盘突出症物理检查很重要,防止主观片
医疗纠纷第三方调解机构的生命在于其公信力。该公信力既体现在作为非营利性组织应当具备的八个方面,同时更体现在法律地位中立、调解人员专业化、调解依据特别是赔偿的项目和
2014年2月底,习近平总书记在对京津冀三地调研和思考的基础上,主持召开座谈会,确定把京津冀协同发展上升为重大国家战略。京津冀发展因注入了前所未有的“国家动力”而备受关切
以某地跨座式单轨旅游交通示范线工程新大车辆段出入线接轨方案为例,对出入线接轨的方案进行综合比选,确定最优推荐方案。以此说明在城市规划、既有构筑物、线位走向、车辆段
数学课程对于大部分学生而言都是一门较为困难的学科,由于数学课程过于理性化、抽象化、逻辑化,很多学生在学习数学科目时都遇到了很多的困难,加之教师教学方法的不恰当导致
近年来,面向Agent的软件工程成为软件工程领域和人工智能领域研究的热点之一。多Agent系统,由多个智能Agent组成,Agent拥有自己的知识特征,具有自主行为,能够彼此交互,互相协