论文部分内容阅读
随着计算机的不断发展和应用范围的不断扩大,应用在其上的软件系统也由于运行环境和自身特点变的越来越不可信,而人们对软件系统的依赖程度却越来越高,因此形成了用户对软件高可信需求与软件可信性得不到保障之间的矛盾。受到传统软件体系结构的限制,当前软件不能主动感知运行环境及自身行为状态,更多地依赖于人工配置,对环境的适应能力明显不足,难以满足人们对软件高可信性的要求。人们希望所使用的软件是一种灵活的,具有自我配置能力的软件,同时能明确了解自己所使用软件是否可信,可信程度是多少等问题。目前,利用自律计算(Autonomic Computing,AC)来解决“以技术管理技术”已经成为未来的发展趋势。在此背景下,本文借鉴自律计算中自配置(Self-configuration)思想,通过在软件系统中添加部分自律属性使软件具有感知自身和周围的环境的能力,实时动态地调整软件配置,智能地适应环境变化并能指导未来的自主决策,从而提高软件可信性。本文首先从软件架构这一宏观角度出发,结合自律计算中自配置思想,提出基于自配置的软件可信性增长模型,为后续工作奠定基础;为了对平衡信息处理能力和系统性能之间的矛盾,提出面向软件可信性分析的信息感知方法,为可信性度量和演化分析提供数据支持;从软件动作拟合的观点出发对软件可信性进行度量,为软件可信性是否增长或增长程度提供有力的支撑;最后以软件可信性的保持和增长为最终目标,进行软件可信演化和分析的研究。本文从体系架构、信息感知、可信性度量到可信性演化分析,构建了一条保障软件可信增长的有效途径,以满足用户对软件高可信性的需求。主要研究内容如下:首先,针对现有软件可信性较低与用户对软件可信性期望较高之间的矛盾,提出基于自配置的软件可信性增长模型。考虑到软件运行环境和自身结构的复杂性,结合自配置思想,将软件进行自律化处理,使软件具有部分自我管理能力。在此基础上设计软件自配置策略,以软件可信性为导向,对软件进行自配置动作。通过仿真实验证明了本方法理论上的合理性,通过实测实验说明将模型运用到实际环境中,软件可信性将有较高的提升。其次,对于具有自配置能力的软件来说,需要获取运行期的大量数据才能保证对外界环境和自身状态的感知,从而确保自配置行为的正确性。在数据收集后,哪些可以用来为可信性度量和演化分析提供高效且低代价的数据基础成为信息感知的研究重点。针对后续章节的研究内容,通过建立软件系统信息感知框架约束软件中信息采集过程,提出一种面向软件可信性分析的信息感知方法,对软件系统中自律单元(Autonomic Element,AE)收集信息过程进行建模,然后在不降低AE收集信息质量的情况下尽量减少收集信息所带来的代价,保证软件系统的高效运行。实验结果表明,在软件运行过程中添加面向软件可信性分析的信息感知方法,在保持一定运行代价基础上,能有效提高AE信息收集的性能。再次,传统软件可信性度量方法偏重于可信属性研究,因此带来的软件可信性属性多维、定义不统一等缺点,针对此问题,提出基于Pi演算的软件可信性度量方法。从软件行为学角度出发,将软件行为分解成为串联或并联的动作集合。根据软件设计之初对软件的要求定义软件可信行为,并将其组合成为软件可信行为路径,构建软件可信行为路径图。通过度量软件可信行为与软件实际运行行为的拟合度来度量软件的可信性。通过单个动作实验证明本方法的有效性;通过实测实验证明,在同等情况下与通过属性反映软件可信程度的传统度量方法相比,本方法更加实时、有效。最后,由于软件发生自配置后,软件自身必然会发生演化,如果对演化不进行控制,轻则不能保证用户对软件的高可信性需求,重则甚至会导致软件崩溃。针对这种问题,提出一种考虑历史数据的软件演化方法,将软件可信性作为约束软件演化的因素,保证软件演化后仍能满足用户对软件高可信属性的需求;同时建立考虑历史数据的软件演化分析方法,通过可视化手段记录软件演化过程并分析软件在演化过程中存在的问题。实验结果表明,考虑历史数据的软件演化方法能有效地保持和增长软件可信性,使软件可信性达到有条件的非降,能够为软件自配置和演化提供有效的指导。