陈 艳,叶宏杰,陈 伟
1(中国电子科技集团公司第十五研究所,北京 100083)
2(中国科学院大学,北京 100049)
3(中国科学院 软件研究所,北京 100190)
当前软件系统更加趋于具有高可配置性(high configurability)的特点,目标在于提升系统的灵活性和可变性,使开发人员和系统管理人员能够在不修改程序代码的前提下通过改变配置来控制系统的行为以及改变系统的特性.软件配置是指以用户需求和软件的功能、结构及主要特性等为依据,选择和确定相关硬件、软件和固件的型号、版本及数量,规划软件放置位置和关联关系,设置软件系统相关参数值等;狭义上的软件配置主要指对软件系统配置参数取值的设置[1].
随着信息技术与互联网技术的发展,软件系统(尤其是网络分布式系统)的规模和复杂度不断提升,其在功能和非功能方面特性的设置和定制化往往是通过对配置项的不同取值来实现的,由此也使得复杂系统的配置项数量越来越多、复杂程度越来越高.
但是,大量配置参数在提高系统灵活性的同时也为应用的配置正确性带来困难[1],为系统后续运行的可靠性、可用性、易用性以及系统性能等服务质量带来极大挑战,具体包括:
(1)大量配置项给用户的使用和操作带来困难和干扰.不恰当的、数量过多的配置项设计,以及缺少系统的、详细的配置参数使用说明,会使用户难以理解配置项与系统特性之间的关联性,因此也很难通过正确调节配置来使系统达到……