论文部分内容阅读
由于软件系统需求的密集性和多样性特征越发明显,对系统本身的复杂性和时效性要求越来越高,迫使组织的开发效率和效力不断受到挑战。软件产品线(SPL)技术通过开发和维护一组共享资产来创建一系列功能相似的产品,实现了在产品多样性需求条件下控制产品开发的质量、复杂度和交付时间。尽管采用SPL开发的组织逐年增多,但真正能长期从SPL中稳定获益的却并不多见,因为采用SPL开发呈现在客户端的功能不会改善,关键在于通过大规模复用以追求成本有效性的提升。随着优化技术引入复用资产选择,在一定程度上解决了成本有效性开发的问题,但复用资产选择只是SPL开发过程中最底层的活动,未能支持整个SPL的优化。同时作为描述SPL不同情境下开发成本的有效手段,复用模式的研究目前仍局限于组织、架构等高层次抽象问题,缺乏对底层实施阶段的探究。因而,研究面向SPL实施过程的复用模式及其优化选择方法不仅是SPL理论的重要研究内容,而且对于指导和保证SPL有效开发具有重要的应用价值。作为国家杰出青年科学基金(70625001)、国家创新研究群体科学基金(70721001)和中央高校基本科研业务费资助项目(N090604004)的重要组成部分,本文以SPL开发为研究背景,在深入研究SPL实施过程中不同来源资产的复用模式基础上,着重进行了资产复用模式的优化选择模型及其启发式求解算法的研究。本文首先针对目前高层次抽象的复用模式研究与底层实施的优化方法之间的鸿沟,所导致的未能实现资产和SPL协同考虑的问题,提出一种面向SPL的复用模式分析模型与选择方法。以分析领域工程和应用工程阶段中资产的循环为切入点,通过描述资产在SPL内部的演化方向,设计一个四元组形式化描述资产在SPL内部状态,以此分析出可改变资产状态的九项活动,并将其抽象成定义良好且具有可观测性的操作。在此基础上归纳出面向SPL的六种典型复用模式,以此提供一个涵盖SPL全部实施活动的系统化分析模型,为此后的SPL复用模式优化选择研究提供基本框架。第四章针对现有优化模型在领域实施阶段未协同考虑开发成本和可靠性的问题,对复用模式成本与可靠性间的非线性关系进行研究,建立一个双目标0-1整数规划模型,为SPL决策者提供满足系统需求情况下考虑成本最小和可靠性最高的复用模式选择方法。同时,根据模型特点设计三阶段启发式算法求解全部有效解集,前两阶段确定支持有效解集、第三阶段得到非支持有效解集。最后,根据组织的不同需求,设计基于偏好值的决策和基于预算的决策两种复用模式选择机制,使SPL决策者可以在交互式环境中平衡两个目标下,从有效解集中选择出最适合的方案。第五章针对复用模式选择所涉及的领域测试代价问题,本文首次提出了边际测试效用值的概念,用于动态估算单位测试对整个SPL的可靠性(故障率)的改善,以此提供量化领域测试阶段代价(工时)的方法。并借助于SPL中核心资产所带有的易测试性信息,基于贝叶斯理论给出边际测试效用值的数学表达式,在此基础上,提出考虑领域测试代价的复用模式选择方法,解决在满足可获得预算、开发周期以及系统可靠性需求约束下的SPL质量最优问题。第六章应用上一章提出的边际测试效用值的概念,利用单位测试成本估计值的研究,提出在考虑系统需求和可靠性需求下,领域实施和领域测试总成本最优的复用模式选择模型。并根据问题的非线性和带强约束特点,设计拉格朗日启发式分解算法将原问题划分为两层:上层是根据SPL系统需求的复用模式选择子问题;下层是在满足SPL可靠性的测试计划设计子问题。实现在领域实施阶段即考虑领域测试对SPL总成本带来的影响,最终确定权衡考虑两个阶段下的全局最优解,在提供最优复用模式的同时,也为SPL各资产测试计划的设计提供参考。最后通过进行多种规模的算例实验和对拉格朗日乘子的灵敏度分析,验证提出的算法的有效性。第七章针对此前优化研究中仅考虑核心资产开发部门的局限,将研究视角提高到包括产品开发部门在内的整个组织层面,通过进一步将备选产品作为决策变量引入资产复用模式优化选择模型,立足于解决从资产选择、封装、适配、核心资产及产品平台设计,到为领域市场选择最佳产品组合这一复杂过程的资源优化配置问题,提供满足领域功能与质量需求且成本最优的产品开发策略和资产复用模式。同时根据问题特点,将原问题分解成为用以描述产品开发策略子问题的带权重的集覆盖问题和描述复用模式选择子问题的背包问题,通过设计启发式算法实现协同考虑两个子问题的求解。并以邮件系统产品线的开发实例阐明在SPL实施中利用该方法配置各参数、建立模型以及模型求解的全过程。