论文部分内容阅读
近年来,由于软件开发的规模和复杂度日益提升,传统的软件开发方式已难以应对在需求频繁变更的环境下进行软件开发的实际需求。在软件工程领域引入软件产品线技术,可以帮助实现软件产品的大规模定制生产。在基于软件产品线的软件开发过程中,通常使用领域特征树模型组织领域的通用性部分和可变性部分以实现软件大规模的复用。虽然目前已有多种构建领域特征树模型的方法,但是在软件产品线的演化过程中这些方法仍具有一定的局限性:首先通过这些方法构建的领域特征树模型难以在演化过程中维护自身的一致性;其次由于缺少核心资产之间、领域特征树模型和应用需求之间的追溯关系,导致难以定位软件产品线在演化过程中由变更引起的不一致范围;最后由于核心资产中的需求文档和代码是使用自然语言编写的,因此对需求文档的语法和语义难以实现精确分析,同时需求文档和代码间的追溯关系大多是隐性的,即在需求文档和代码中没有明确的关联性标识,主要原因是需求文档和代码分别处于不同的抽象层面,以不同的方式来描述所要解决的问题及其求解方法。为了解决这些问题,本文提出了一种在构建领域特征树模型的同时建立核心资产之间、以及领域特征树模型与具体应用产品之间的追溯关系的方法,并在隐含语义索引的基础上,提出了基于类继承关系的代码类簇和代码词段分类两种改进方式,以提高需求文档和代码间追溯关系的查全率和查准率。首先,基于传统领域特征树模型,本文提出一个支持软件产品线演化的领域特征树模型并对其结构进行形式化描述,并总结出多条维护一致性的约束规则,用于对领域特征树模型自身在演化过程中的一致性验证。其次,基于上述领域特征树模型,本文提出一种在构建领域特征树模型的同时为需求和领域特征建立追溯关系的方法,该方法首先将一系列属于相同领域的应用需求转化为应用特征树模型并建立需求和特征之间的追溯关系,接着将这些应用特征树模型合并为一个描述领域的特征模型并且建立它们之间的追溯关系,最后通过以上两个追溯关系获得领域需求并且实现其与领域特征模型的相互追溯。然后,使用隐含语义索引获取核心资产中需求文档和代码之间追溯关系,并在隐含语义索引的基础上引入需求文档和代码的特点,提出了基于类继承关系的代码类簇和代码词段分类两种改进方式,以提高信息检索的查准率。最后,通过劳动力市场监测软件产品线的案例验证本文提出的方法的可行性和有效性。