论文部分内容阅读
变化性是软件的基本属性之一。特别是当前大量的软件运行于因特网这样一个开放的、动态的和多变的环境之中,面对的是硬件资源和客户需求的频繁变化,从而导致软件的变化性和复杂性进一步增强。由于具有持续可用性的优点,动态演化已成为软件工程研究的热点。
软件系统的演化通常是对功能进行更新,与基于构件的演化相比,基于类、方法等元素的细粒度更新操作有着对软件无需更新部分影响较小、软硬件系统要求不高和操作灵活等优点。因此,在细粒度软件动态演化层面上引入面向方面编程(Aspect-orientedProgramming,AOP)思想。通过使用AOP技术将可能分散于多个类中的更新操作模块化,封装成方面。在系统运行时,用关注点向演化系统中注入更新代码,从而不改变系统的结构,实现了以非侵入方式对软件进行动态演化。
本文提出了一种面向方面的细粒度软件动态演化方案,同时给出了动态演化的规则,并通过制定更新策略来保证系统演化前后的一致性和安全性。在此基础上,设计了一个基于方面的细粒度软件动态演化平台FDESA(Fine-grained Software DynamicEvolution System based on Aspect),并实现了其原型系统。从而在理论和实践两个方面阐释了基于方面的软件动态演化的实现机制。最后,通过实验验证了本文提出的动态演化方案以及FDESA平台的正确性与有效性。