论文部分内容阅读
众所周知,软件不可避免地持续演化已经是不争的事实。而演化的挑战不仅是演化什么和如何演化,还包括软件生命周期中相关工作制品的同步演化,也就是软件演化的维护和管理。面向特征的软件开发过程中,针对大规模多定制的软件系统,主要基于特征模型描述和管理客户多样化和特殊化的需求。特征作为驱动该过程的主要内容,软件演化从一开始就体现在特征的演化上。因此,采取适当策略,有效实施和管理特征以及特征模型的演化至关重要。 分析和支持特征的演化,不仅需要保持特征模型与其他工作制品的同步演化,还需要考虑如何规划定制产品减少项目的风险。具体涉及三个方面的问题:1)如何定义特征模型的元模型,将演化分析所需的特征属性、特征关联关系抽象为模型要素;2)如何基于特征模型分析软件演化,包括,分析特征变更的“涟漪”效应、发现共性和可变性变化以及保持模型配置一致性;3)如何规划定制产品,平衡客户和开发商的利益矛盾。上述问题已有研究中,特征模型元模型方面多以支持特征的按需组合为目标,不断增强特征模型在配置上的表达能力,但对演化分析提供的支持尚有不足。特征模型的演化分析方面,当前研究主要集中在需求层面,仅通过特征模型进行共性和可变性建模。由于特征变更在建模过程中存在“涟漪”效应,会导致新的共性和可变性演化。定制产品规划方面,当前的分析方法仅仅从客户或者开发机构单一方面考虑,无法在客户满意度和工作量/收益之间进行平衡,分析结果难以为实际项目提供决策支持。 针对上述问题,本文从特征模型元模型、特征模型演化和定制产品组合分析三个方面展开研究,分析软件特征演化并提出相应的支持方法。主要贡献如下: (1)提出了一种特征模型元模型扩展方法。通过补充特征的属性和关联关系类型增强特征模型在设计等方面的表达能力,支持特征演化的分析。同时,基于扩展元模型定义了特征模型元操作,实现对特征演化更为精确的描述和刻画。 (2)提出了一种基于特征模型的软件演化分析方法。根据不同客户提出的特征变更请求,从特征变更影响定位、共性抽取和模型修剪、配置冲突消解三个方面综合分析特征模型的变化,可以发现潜在的特征变更,挖掘可复用特征,保证模型配置的一致性。 (3)提出共性和可复用特征精细化提取方法。该方法进一步研究了共性和可复用特征分析和抽取,归纳了典型场景和操作,提出了三种精细化模式,通过特征语义解析深入挖掘可复用特征。在提高复用效率同时保持特征模型配置和产品功能不变。 (4)提出了一种基于价值的定制产品组合分析方法。通过客户聚类获取不同的产品组合方案,从客户满意度和产品工作量两个方面构建了产品组合价值评价准则,对产品组合进行优选,实现了客户需求与产品收益的平衡,为实际项目的产品规划提供决策参考。 (5)应用研究。针对本文提出方法设计并实现了原型工具,选择两个典型软件系统进行案例研究。分析结果验证了方法的可用性和有效性。