论文部分内容阅读
可靠性设计(Reliability Design, RD)一直是软件工程(Software Engineering, SE)领域一个非常重要和活跃的方向,而随着大规模复杂软件系统(ComplexSoftware Systems,CSS)不断在电力系统、铁路运输、航空航天、国防安全等安全关键领域内的广泛应用,对其可靠性的要求越来越高。论文以复杂软件系统作为研究对象,通过引入问题相关的领域知识和约束条件,围绕着如何针对复杂软件系统进行有效的可靠性设计进行研究,主要涉及到可靠性优化、测试资源分配和软件质量评价三个方面的内容。论文主要工作如下:(1)阐述了复杂软件系统可靠性设计的研究意义,给出可靠性优化、测试资源分配和质量评价三者之间的联系和主要研究目标。对当前相关研究工作进行了调查、分析与总结,指出了目前存在着的和还需要进一步解决的问题。(2)针对多软件系统,构建了多软件系统可靠性的层次模型,定义了软件实用性与可靠性之间的函数关系,并在此基础上建立了一个具有预算约束和考虑实用性最大化的多软件系统可靠性优化模型。针对模型中的参数均是软件系统各组件元素的全局权重,提出一种基于D-S证据理论的组件元素全局权重求解方法。最后,设计了一种具有编码修正的“一维实数编码”差异演化算法(Different Evolution, DE)用于求解多软件系统可靠性优化模型。实验表明,该算法可以在系统设计阶段快速、有效地完成各模块的可靠性分配,使多软件系统可靠性迅速达到近似最优,从而能够在一定程度上推动复杂软件系统可靠性设计水平和设计效率。(3)系统测试是软件开发各个阶段中最消耗时间和资源的阶段,对于复杂软件系统来说,系统可靠性随着测试时间的推进会发生变化,如果再按照最初的方案分配测试资源,可能会造成测试资源的浪费,这时需要分阶段对测试资源进行动态分配。为此,首先构建了考虑可靠性时变的测试资源多目标动态分配模型,该模型以测试时间为约束,以最大化可靠性和最小化测试资源成本为优化目标,然后采用“一维整数向量编码”的DE算法进行求解。对比实验表明,测试资源的动态分配可以大大地节省系统测试资源的消耗,提高复杂软件系统的开发效率。(4)软件质量评价是软件可靠性工程的关键环节,通过引入模糊软集合对软件质量进行综合评价。在评价过程中,考虑各专家的偏好,允许各专家具有不同的个人评价指标集,并利用模糊软集合对各专家的评价信息进行模糊化处理。此方法的关键在于如何利用模糊软集合处理不同专家的不同偏好,并在此基础上对不同专家的评价结果进行信息融合,得到软件质量的综合评价结果。验证实例表明该方法不仅可以灵活地表达专家的主观判断,并且能有效、合理地处理信息的不确定性,符合人的思维判断过程。