3. 产品线工程与架构复用核心概念

产品线工程(Product Line Engineering, PLE)要解决的根本问题是:如何用一套可管理的资产,高效地派生出多个既有共性又能满足差异需求的产品。SysML 本身并不规定产品线方法,但它提供了足够丰富的建模元素,把共性-可变性分析、特征模型、领域工程、应用工程、平台与派生关系这些概念落到可执行的模型上。理解这些概念在 SysML 语境中的映射,是后续做架构复用建模的前提。

共性-可变性分析:先分清“哪些必须一样、哪些允许不同”

共性-可变性分析(Commonality and Variability Analysis, CVA)是产品线工程的起点。共性指多个产品之间必须保持一致、可被统一复用的部分;可变性指允许在不同产品间产生差异的部分。做 CVA 时,通常先收集一组候选产品的需求与架构描述,再逐条判断每个需求或结构元素属于共性还是可变性,并记录可变性的类型、约束和绑定时机。

可变性常见类型包括:可选(存在或不存在)、多选(从集合中选若干)、单选(从集合中选一个)、参数可变(结构相同但取值不同)。绑定时机则分为设计时、编译时、部署时和运行时。例如某型无人机的电源模块,其“是否配备备用电池”属于可选可变性,绑定时机为设计时;而“巡航速度”属于参数可变,绑定时机为运行时。这些判断直接决定后续在 SysML 中用什么机制表达。

特征模型:用特征与约束描述产品空间

特征模型(Feature Model)把产品线的可变性组织成一棵树:根节点代表产品线,子节点代表特征,边上的标记表示特征之间的关系。常见关系有:必选(mandatory)、可选(optional)、或(or)、异或(alternative)、基数(cardinality)。此外还有跨分支的约束,如 requires(若选 A 则必须选 B)和 excludes(A 与 B 不能同时选)。

在 SysML 中,特征模型通常用块定义图(BDD)表达:根特征是一个块,子特征通过组合关联连接到父特征,关联端的多重性表达可选与多选,泛化表达异或分组,约束块或约束属性表达 requires/excludes。这样特征模型就与需求图、参数图建立了可追溯关系,而不是一张孤立的树。

领域工程与应用工程:资产生产与资产消费

领域工程(Domain Engineering)负责生产可复用资产:领域需求分析、领域架构设计、可变性实现、资产库建设。应用工程(Application Engineering)负责消费这些资产:根据具体产品需求选择特征、绑定可变性、派生具体产品模型。两者是“生产—消费”关系,中间通过平台资产库连接。

在 SysML 语境中,领域工程的产物通常包括:领域需求模型、参考架构(块定义图与内部块图)、可变性模型(特征模型与变体点)、参数模型、接口库。应用工程则通过实例化、特化、绑定参数、选择变体来生成产品模型。关键原则是:应用工程不应修改领域资产,只能通过预定义的变体点进行派生,否则复用就退化为复制。

平台与派生关系:SysML 中的映射机制

平台是领域工程沉淀下来的、带有变体点的架构基线。派生关系描述产品模型如何从平台生成。SysML 中可用的映射机制主要有四类:

  • 泛化/特化:平台块作为父类,产品块作为子类,重定义属性与端口,适合结构差异较小的派生。
  • 实例化:平台块作为类型,产品作为实例,通过实例规格绑定具体值,适合参数可变。
  • 变体点与替换:在平台内部块图中定义变体点端口,产品侧用满足相同接口的块替换,适合模块级可选。
  • 参数绑定:用参数图把平台参数与产品具体值绑定,适合性能、尺寸等连续可变。

下面这张图把上述概念串成一条从领域工程到应用工程的映射链,重点表现特征模型、平台变体点与产品派生之间的对应关系。

产品线工程核心概念在 SysML 中的映射链 领域工程(资产生产) 领域需求模型 需求图 + 共性/可变性标注 特征模型 BDD:根特征→子特征 必选/可选/异或/基数 约束:requires / excludes 参考架构(平台) IBD:变体点端口 参数图:可变参数 接口库:标准端口 资产库 可复用块、接口、约束 SysML 映射机制 泛化 / 特化 平台块→产品块,重定义属性 实例化 平台块→产品实例,绑定值 变体点替换 同接口块替换变体点端口 参数绑定 参数图绑定具体数值 应用工程(资产消费) 产品需求 选择特征、确定取值 特征配置 勾选可选特征 选择异或分支 校验 requires/excludes 产品模型 特化平台块 替换变体点 绑定参数值 产品验证 需求追溯 + 参数校核 应用工程只通过变体点派生,不修改领域资产

一个可执行的映射示例

假设产品线是“巡检无人机”,平台基线包含机体、飞控、电源、任务载荷四个块。特征模型根节点为“巡检无人机”,子特征包括:机体(必选)、飞控(必选)、电源(必选)、任务载荷(可选)、续航模式(异或:标准/长航时)。约束:选择“长航时”则必须选择“大容量电池”变体。

在 SysML 中,平台块 PowerModule 内部块图定义变体点端口 vpBattery,接口为 IBattery。领域工程提供两个满足该接口的块:StdBattery(容量 5000mAh)和 LongEnduranceBattery(容量 10000mAh)。应用工程为“长航时巡检机”派生时,在特征配置中勾选“长航时”,触发约束选择 LongEnduranceBattery,然后在产品块 LongEnduranceUAV 中特化 PowerModule 并把 vpBattery 替换为 LongEnduranceBattery,同时通过参数图把 enduranceTime 绑定为 45min。整个派生过程没有修改平台块本身,只做了特化、替换和绑定。

判断复用是否“干净”的一个实用标准:应用工程侧是否只使用了泛化、实例化、变体点替换、参数绑定这四类操作。如果出现直接修改平台块内部结构,说明变体点设计不充分,应回到领域工程补充可变性。

概念之间的对应关系

产品线概念核心问题SysML 主要载体
共性-可变性分析哪些必须一致、哪些允许不同需求图 + 约束属性 + 变体点标注
特征模型产品空间如何组织与约束块定义图 + 组合关联 + 约束块
领域工程可复用资产如何生产参考架构 IBD + 接口库 + 参数图
应用工程具体产品如何派生特化块 + 实例规格 + 参数绑定
平台与派生平台如何生成产品泛化/实例化/变体点替换/参数绑定