增量式软件产品线关键技术研究软件复用技术已经被认同为提高软件开发效率和质量的有效途径。近年来,软件产品线作为一种系统化的软件复用方式得到了广泛的关注。软件产品线着眼于特定领域,将领域共性和可变性构建为领域核心资产,特定的软件产品以预先规定的方式基于核心资产开发,避免了大量的重复劳动,从而提高软件生产力。问题空间和解空间的断层是软件开发的一个重要难题,具体到软件产品线,开发活动面向一系列的软件产品集合,需要对产品的共性和可变性进行有效的分析和管理,问题空间的可变性和解空间的复杂组织形式使得断层问题更为突出。面向特征的软件产品线工程利用特征作为桥梁连接问题空问和解空间,这种方式在产品线需求分析层取得了良好效果。此外,增量式思想逐渐萌芽,试图以组合开发方式提高产品线的敏捷性,克服传统集成式的封闭性和缺失柔性。结合特征和增量式思想,我们将特征视为增量在产品线需求层的一种具体形式,提出在产品线全生命周期系统化的贯彻增量思想,以增量组合的方式研究产品线技术。本文对增量式软件产品线关键技术进行了深入的研究,将增量思想系统地推广到产品线生命周期的各主要阶段,试图从分析到设计再到实现都能贯彻一致的增量组合方式以弥补断层。从产品线需求分析、产品线体系结构、工件求精和协同支撑平台等方面逐步展开研究。本文的研究工作主要包括以下几个方面:1)显式定义了特征模型形式化语义与Alloy规约。形式化的定义了特征、特征模型、配置、产品和产品线等概念,同时定义了这些概念之间的关联与语义约束。为了复用语义和自动化特征模型分析与检查,将形式化语义编码为Alloy规约,利用非专有的工具AlloyAnalyzer可以有效的进行自动化模型检查。严格的形式化语义使得特征模型的一致性和有效性得到保证。2)提出特征增量FI概念。着眼于同一产品线中不同产品之间的宏观特征差异,增强产品线分析的粒度以及从需求到产品设计的可跟踪性。详细分析了组合性、依赖性等特征增量间的依赖关系,同时给出CCs组合原则指导特征增量的言癫⒈苊獬逋弧2捎没?逐步识别出特征等基本单元及特征增量,指导软件产品线实践活动。3)提出体系结构增量层SAIL概念。针对需求概念与实际可变点的尺寸不匹配问题,体系结构增量层以一种增量模块化的方式对设计知识进行识别、抽象以及结构化。借助范畴论这一数学工具,定义了增量式产品线体系结构的形式化语义,指明了各种概念的含义以及概念间的语义关联。范畴论支持图形化建模,有利于对体系结构的建模、理解和跟踪。给出基于角色的派生方式,以角色为中心从产品线体系结构派生出具体产品的体系结构。4)设计了一致的增量式大规模产品线工件求精策略。将一个特征对应的所有工件的变更组织成一个工件切片,使得特征和工件的对应关系明确化。当为产品增加新特性或扩大产品线边界时,可以设计或修改相应的工件切片,将变更限制在一定的范围内,增强了产品线的可理解性和可演化性。给出基于本体的工件元模型,据此对工件切片中的多种类型的工件采取一致的求精策略,相比传统的面向对象方式,增量组合方式更符合高内聚、低耦合原则。5)设计了支持产品线协同开发的CASDE支撑平台。基于活动理论分析了产品线开发活动模型,强调了在开发活动中协同的重要性。基于对开发活动关键元素的分析,提出CASDE平台体系结构。该体系结构以过程为中心,并充分考虑了上下文模型,并具有良好的工具集成性。详细讨论了CASDE对活动理论三层框架的支持。基于CASDE平台,设计和开发了需求建模、体系结构设计、工件求精管理和产品配置管理等工具原型。