热度 7
2015-10-10 13:32
996 次阅读|
0 个评论
1. 产品介绍 pure::variants提供最全面、最灵活的产品线变体管理技术。在软件开发的全生命周期过程中,pure: variants提供功能完备的工具支持,具有优秀的集成和适应能力。它适用于软件开发过程中各个领域的软件生产过程,针对嵌入式软件开发过程的特殊需求,它提供了良好的支持,将开发过程的灵活度与资源的高效使用有机的结合在一起。 2. 技术特点 pure::variants的核心技术是为产品线的开发及实现过程中所必需的成功要素提供良好的工具支持,pure::variants适用于产品开发过程的各个阶段,包括产品的需求、分析、设计、开发实现、测试以及运维。 pure::variants以一种结构化的编程语言为基础,集成诸多扩展模块,具备灵活的扩展能力来满足不同的特定需求。各个模块都可无障碍的与pure::variants进行交互,实现对整个产品线的全局管理视角模式,它可以将产品线不同变体生产开发过程所需时间和空间维度上的需求快速便捷的提供给管理者。 图1 pure::variants集成扩展潜力 pure::variants具有优秀的集成扩展潜力,pure::variants可以便捷的集成到已有的开发过程及环境中(如图1),通过将客户已有的配置管理工具、需求管理工具、模型设计工具及测试管理工具与pure::variants进行集成,形成一个统一的平台方案。以XML为基础的数据交互模式,使得pure::variants可以与任意工具进行即时交互,同时提供将已有软件项目导入的功能,使得投入项目重用的时间较低。 基于灵活的基础架构,pure::variants可以管理产品线所有相关信息,例如文档、源代码、关联关系及测试结果,同时用户可以对这些信息创建不同的视图,这些信息可以通过视图将产品组织架构信息展示给不同角色的人(开发人员、项目经理、销售、用户等)。 综上,可知pure::variants应用型广,集成度高,可扩展性灵活。具有广泛的应用性、高集成度及灵活的可扩展性。 3. pure::variants基础——产品变体的开发 pure::variants平台的基本功能应用于软件产品开发过程的所有阶段。产品线的开发过程分为两个步骤。首先,识别通用的资产;其次,获取来源于产品线中不同产品的特殊资产。 针对产品的开发过程,提出了以下执行顺序原则,从识别通用资产开始: 1. 分析问题域和产品需求 基于内容明确的问题域分析,设计特性模型(参见4.1章节),并梳理产品线中不同产品特性之间的依赖关系。特性模型具有形象化和易于理解的特点。 基于特性模型实际应用经验,丰富并拓展pure::variants特性模型的展现形式。特性模型采用分层的模型结构,支持为不同用户角色(诸如:客户、开发人员、销售等)提供特殊的展现形式。 2. 设计解决方案 软件产品解决方案的设计来源于产品的特性模型及软件系统的其他需求,软件解决方案的基本元素(包括彼此的关联关系、限制条件和需求)可自动从特性模型集成到产品族模型(Family Model)中。 产品族模型(Family Model)由不同层级组成,最顶层由组件组成,每个组件代表着解决方案中一个或多个功能特性,同时也包括软件的逻辑部分内容(类、对象、函数、变量及文档)。 在下一层级,实体要素与上一层的逻辑要素进行关联。实体要素是已经存在的文件,这些文件是基于产品变体知识而创建和执行的。 与以往产品特性模型的基础技术思路所不同,pure::variants分别独立捕捉问题域(特性模型)和解决方案域(以产品族模型Family Model为基础发展变体模型),这使得在一个新的项目中可以更加简化解决方案和特性模型进行的重用过程。 3. 解决方案的实现 根据编程语言及工具,以及使用产生变型的额外可能性,由pure::variants模型提供(例如C++或模式转换器),解决方案得以实现。 图2 使用 pure::variants建立问题的解决域 通过pure::variants技术统一管理前文提及的开发过程中所有的模型和相关信息。pure::variants采用特性模型技术,生产出的软件及产品线易于与之相适应。 pure::variants运用这种灵活性可有效支持面临具体问题时自动生成定制的解决方案。图2 阐明了在所描述的过程中,pure::variants对评估特性模型的支持方式具有怎样的创新性。该过程的主要步骤如下: 1. 决选出有效的组合特性 用户(客户或销售)根据问题域从特性模型中选择相应的特性。通过人工智能方法和工具, pure::variants检查所选特性是否有效(例如,根据依赖关系规则评估),必要时可自动解决依赖关系的冲突。即使面对复杂依赖关系的结构体系时也可以确保高效地生成有效系统。 输出成果就是依照模型开发人员预期的特性组合,描述问题,如何解决。 2. 选择相匹配的解决方案 以选好的特性为基础,运用family model找到合适的解决方案。运用family model中包含的信息,通过每个组件及其逻辑、物理要素来分析特性选择。人工智能方法再次被运用到每个部分的判断过程,判断其是否以及以如何形式存在于解决方案之中。由于深层依赖关系而出现的问题可自动解决或由用户手动解决。如必要,详细策略可根据用户需求而实现。因此,根据最优参数来选择解决方案是可行的,例如,可根据客户成本模型的部分组件来选择方案。 输出成果就是所选解决方案的组件描述。 3. 创建解决方案 定制的软件解决方案由组件描述信息控制的转换过程创建。在此过程中,所有被激活的必需转换模块均按照指定的组件描述执行。 无论是在创建新的产品线时,还是将已有软件产品(重建)集成到产品线开发过程时, pure::variants均可提供有效且便捷的支持。为了这个目的,开发过程不是开始于识别共同资产,而是始于用户逐步构建相关的特性模型及已有软件family model的自动生成。其余步骤类似于上述过程。 4. 通过pure::variants构建产品变体 pure::variants工具链针对软件产品线的开发和部署而设计。支持以上产品线的不同变体的管理和创建。工具以各类模型为基础,这些模型是用来描述产品线的问题域及实现,以及选择特定产品。 特性模型在此作为中心角色。是整个产品线中所有产品的可变性及共通性的表现。与其他基于特性模型的方法相比,pure::variants采用此概念的扩展版本,具体细节在4.1章节进行描述。 一个具体产品线的开发实现由family model进行描述(Component Family Model,CFM),以此可以实现不同组件的实施是与客户要求相匹配,同样,组件与应用的相适应也是CFM模型的一部分内容。顾名思义,CFM模型是特别针对pure::variants技术而开发的,因为已存在的模型语言如UML或SDL与pure::variants技术并不合适,CFM会在4.2章节详细描述。 产品特性的选择是用来描述某一特定产品的,它描述了产品的性能以及性能的价值,并用以创建最终的产品。 图3:pure::variants的转换过程 图3给出 pure::variants创建变体这一过程的概述。一旦产生了不同变体模型,后续的步骤将自动执行。产品线的开发人员负责提供特性模型以及组件的CFM描述。接下来用户选择不同的特征,然后,用户可以人工或通过工具来根据具体应用需求确定必需的产品特性。后续过程分两个步骤执行,首先 pure::variants分析不同的模型,然后通过分析结果产生的结构图进行最终产品定制组件的交付。 pure::variants与其他类似技术的本质区别在于pure::variants中使用的模型仅描述将要做什么,而不是描述应该怎么做,pure::variants仅提供必要的机制。用户可以便捷地根据需要来选择模块对pure::variants进行扩展,因此pure::variants技术既不是受限于某一开发过程,也不是受限于某一开发语言或方法,而是可以与任意开发过程进行集成。这种高灵活度通过pure::variants所使用的两种非常有效的语言组合而实现。 另一重要区别在于系统的配置过程。模型评估和转换定义的构成采用最新算法,为此,编程语言的逻辑结构采用人工智能的方式。搭建产品模型时,工具会自动评估模型的有效性及完整性。第一步是通过特性模型进行验证,然后通过模型的组件进一步对正确性进行验证。由此,工具根据特性模型及组件之间的关联关系自动检测变体模型的正确性。如果出现无法自动解决的问题,工具会进行提示,同时配置过程中断。如果配置的正确性通过验证,会自动生成基于XML的配置文件。 为实现转换过程而开发出XML基础语言-----XMLTrans,通过这一语言对转换过程的一个个执行操作进行描述,每个操作根据上一步操作生成的基本描述而触发,所有的操作都通过转换模块实现。当已定义的转换过程不能满足现状时,用户可以随时定义新的转换过程,同样,新的转换可以直接通过XMLTrans进行描述。如果操作过于复杂,则需要定义特殊的转换模块。为了控制转换过程,XMLTrans和模块都可以通过pure::variants中的信息进行控制(特性模型,所选特性,CFM,资源等)。 4.1 pure::variants 特性模型 特性模型包含产品线的所有产品特性,包括通用的和特定的。产品特性代表提供给用户的一个系统功能及相关的特性描述,某个产品特性的选择依赖于产品特性描述。 特性模型中包含一个个独立的产品特性,产品特性组成了树状结构图,图中的节点就是产品特性,连接线描述了各个产品特性之间的基本关系(必选关系,可选关系,互斥关系,或者关系) 。图4 描述了一个简单的特性模型。 图4:pure::variants特性模型 1. 产品特性赋值 为了描述特性模型的复杂情况,有必要将不同类型的值赋给产品特性,pure::variants工具支持特性模型的各种产品特性赋值,产品特性的赋值可在变体模型搭建及转换时使用。 2. 产品特性的约束 除之前描述的产品特性间的基本关联关系,pure::variants 还可实现产品特性之间更加复杂的约束限制关系,通过逻辑规则及图表显示来进行描述。产品特性间的依赖关系可便捷地通过这种灵活机制进行描述,例如产品特性组合之间的冲突或某一产品特性与其他特性的隐性包含关系。 3. 层级化的特性模型 与其他基于特性模型的技术相比,pure::variants 可使用任意多个特性模型,目前其他产品都只能使用唯一一个特性模型。采用多个特性模型,可以将不同视角下产品线的特性和共性集成在一起。可展示不同层级下的产品特性细节(例如:客户关注很少细节内容,销售关注部分细节,开发人员关注所有细节内容)。根据层级化关联的不同模型,产品特性组合可保持一致性。同时可以此实现将不同产品线组合为新的产品线。为此,需要为已有的特性模型层级增加一个顶层模型,为已有产品线的特性模型创建一个关系图,从而将其集成在一起。 4.2 pure::variants 产品族模型(Family Model) 图5:pure::variants产品族模型 pure::variants 组件模型(产品族模型组件CFM)描述了产品线的内部组件结构及其与产品特性之间的关联关系,以此各个组件都绑定到产品特性之上。pure::variants中,一组功能配置将压缩为一个组件,图5 给出了组件模型的层级化视图。 以下段落将简要介绍CFM所包含的各个要素: 组件 :模型的基本要素就是组件,每个组件拥有一个唯一名称,每个组件至少一个部件,部件由其源元素进一步定义。一个组件封装了用于实现产品线特性的一个或多个产品功能。 部件 :部件是某一组件所包含的已命名的、已分类的元素,至少由一个源元素所定义。部件可以是编程语言的逻辑元素,例如:类,功能或对象。但组件所包含的内外部结构的任何关键元素均可以由一个部件进行描述。同时,部件需描述组件内外部架构所包含的任一关键元素,例如接口、规格说明书、图表等。pure::variants提供一系列预定义的部件类型(如类、对象、标记、变量等)。其他类型的引入需要用户的自定义扩展。 源元素 :源元素实现组件的物理描述。一个源元素是某一类型的条目。类型用于确定通过哪个转换模块来创建部件。例如转换模块包含的最简单操作是将一个目录复制到一个指定的地点,当然也可以像创建一个标识一样的创建一个新的目录,通过引入新的源元素类型可以将新的转换操作集成到转换模块中。 组件模型包含的元素可以用来详细规定约束条件,约束条件用于将组件、部件或源元素关联到产品特性或产品特性组合,以此对实现过程的具体特点进行描述。(例如:某特性组合中两个组件的互斥性) 4.3 模块 pure::variants 通过不同模块将技术灵活的扩展应用,以实现不同的目标,一方面,通过转换模块可以便捷的实现产品创建,另一方面,集成模块可实现与外部过程及工具进行互联,具体如下: 1. 建模及编程语言 标准转换过程 :提供通过基于C/C++及Java的标准产品族模型元素及转换模式,标准转换过程可以为特定客户或项目进行扩展 Simulink 连接器 :可在产品族模型中配置、管理Matlab/Simulink模型 2. 与开发过程相集成 软件配置管理系统转换器 :转换器将已有的配置管理系统与转换过程连接,将变体管理和配置管理集成使用,为开发实现复杂系统的过程提供高效率的协作管理。 需求工程同步 :实现经典需求管理工具与变体管理结合使用,pure::variants特性模型直接与需求管理工具中的需求内容进行链接,以此产品变体的需求文档可以迅速创建。创建的特性模型可以用于软件实现系统配置目的。 5. 产品 根据不同使用场景提供特定产品及技术 5.1 开发版 pure::variants开发版支持软件开发工程师进行设计、开发产品线,支持用户通过pure::variants提供的技术实现软件项目,可以作为开发工具或插件与开发集成使用(例如,Eclipse或Rational Software Architect)。开发版与其他开发工具互补,如CASE工具、编译器及调试器。 5.2 集成版 pure::variants集成版可实现变体管理技术与客户产品的集成。例如:为实现嵌入式操作系统的开发配置,可以沿用制造商基于集成版已实现的操作系统通用配置。 通过使用集成版,客户无需自己开发变体管理过程。集成版的通用设计提供并测试所有必须的基本功能,客户只需调整接口及转换过程。这使得开发周期大幅缩短,并可以保证开发质量。 5.3服务器版 pure::variants服务器版集中管理软件产品线。同时,开发人员或用户无需本地安装pure::variants产品,而是通过网络使用pure::variants定制客户特殊产品配置。就像配置管理通常采用集中管理模式一样,采用服务器版可以降低管理成本。客户可以通过服务器版定制自己的产品方案,客户无需熟知整个产品方案方方面面的细节信息。通过这种方式,可以降低双方的成本。一方面,客户可以清晰的明确自己所需(并为此买单),另一方面,这种方式对于研发部门也很经济。 5.4扩展模块 pure::variants扩展模块提供更多附加功能,扩展模块覆盖软件开发过程的不同领域。例如:扩展模块与软件配置管理系统集成实现版本管理,通过扩展编程语言来支持产品变体创建。 6. 总结 目前,市场的变化日趋复杂,产品的创新周期日趋变短,为保证我们的软件系统在更长生命周期内保有竞争力,就需要我们的软件系统能适应多变的客户需求,相应的解决方案就是产品线工程。基于产品线工程理念,我们不再是开发某一单个产品,而是开发一系列产品从而组成产品线。通过识别共同资产,可有效的在新产品开发中重用成熟资产。为成功的实现产品线工程,工具必需能有效支持从产品设计到产品实现的整个产品开发过程。通过共同资产来管理及实现产品变体管理是一个巨大的技术挑战。为实现以上目的,pure::variants提供了一个高效易用的产品线变体管理工具,帮助我们实现产品线工程及产品线变体管理。 联系帮助: 北京经纬恒润科技有限公司 www.hirain.com 电话:64840808-6006