论文部分内容阅读
随着移动计算、普适计算和Web Service等新兴技术的迅速发展,尤其是在Internet成为主流的软件开发环境后,动态软件架构(DynamicSoftware Architecture,DSA)的研究已引起了研究者们的广泛关注。动态软件架构的核心理念是实现软件系统在运行时刻进行动态更新,使软件系统能够按需扩展,从而通过对软件系统体系结构的动态改变来指导并实现软件的动态演化。
DSA不仅能减少系统开发的费用和风险,还能增强用户自定义性和可扩展性。优缺点共存是所有高新技术发展之初的共同特点,当前的DSA技术也毫不例外。其分析和设计主要针对系统的功能组件、忽略系统的横切特性,从而造成代码交织和分散,导致关注点在软件动态演化中难以分离,进而给软件的扩展和后期维护带来了诸多不便,限制了动态软件架构技术的进一步发展。因此,降低软件模块间的耦合度、增强用户自定义性和可扩展性、减少动态演化的难度和成本显得尤为必要。
为解决上述问题,本文首先利用面向方面软件开发(Aspect-OrientedSoftware Development,AOSD)思想,在传统软件架构的基础上,通过添加方面机制,从水平方向上将核心关注点和横切关注点进行分离,并对分离后的横切关注点进行模块化,进而实现了软件架构中模块间的弱耦合性。其次,以当前的动态软件架构技术研究为基石,引入反射机制,在垂直方向上进行关注分离,在层与层之间实现因果关联。在此基础之上设计出了支持动态演化、反射式的面向方面动态软件架构(Reflective basedAspect-Oriented Dynamic Software Architecture,RAODSA)模型。该模型利用“方面”机制可以解决代码交织和分散问题,并能较好地支持系统的动态演化,从而弥补当前动态软件架构技术在处理横切公共需求上的劣势。
基于上述的研究工作,以网络图书销售系统为应用实例,进行仿真实验。RAODSA模型,一方面利用关注点分离原则在架构层次对关注点进行分离,使系统保持一个清晰的结构的同时,在降低系统的耦合度、增加系统的复用性和可扩展性等方面存在着一定的优势;另一方面AOSD和反射技术的引入,有助于软件动态演化的实现。