4. 复用单元识别与领域分析
在上一章中,我们已经明确了产品线建模的核心目标:用一套可配置的架构资产覆盖一族产品的变与不变。但真正落地时,第一个绕不开的问题就是——到底哪些东西可以复用?复用单元识别与领域分析,就是回答这个问题的系统性方法。它不是简单地“把相似的东西挑出来”,而是从现有产品族中提取可复用资产、识别共性边界、划分领域范围,并最终形成领域用例与领域字典,为后续的可配置架构设计提供输入。
一、复用单元的三个层次
复用单元并非只有“代码模块”一种形态。在SysML驱动的产品线工程中,复用单元通常分布在三个层次上:
- 需求层复用单元:在多个产品中反复出现的功能需求、性能约束或接口要求。例如某系列无人机的“续航时间≥45min”“图传距离≥10km”等需求,在多个型号中重复出现,只是参数取值不同。
- 架构层复用单元:跨产品共享的结构、接口、行为模式。例如“动力子系统—飞控子系统—任务载荷子系统”的分解结构,以及它们之间的供电接口、数据总线接口。
- 实现层复用单元:具体的参数化模块、库、配置项。例如电机选型库、电池配置表、通信协议栈。
识别复用单元时,需要同时在这三个层次上扫描,而不是只盯着实现层。很多团队一开始只关注代码复用,结果发现需求层和架构层的共性没有被固化,导致每个型号仍然要重新做一遍架构设计。
二、从产品族中提取可复用资产
提取可复用资产的基本操作是横向比对:把同一产品族中已经存在的多个型号放在一起,逐项比较它们的需求、结构、接口和参数。比对的结果通常分为三类:
- 完全共性:所有型号中完全一致的部分。例如某系列产品的“电源开关逻辑”在所有型号中完全相同,可以直接固化为核心资产。
- 参数化共性:结构相同但参数取值不同。例如“电池容量”在不同型号中分别为5000mAh、8000mAh、12000mAh,但电池的接口、安装方式、充放电逻辑完全一致。这类资产应建模为带变异点的可配置单元。
- 可选/变异:只在部分型号中出现,或存在多种实现方式。例如“是否配备避障雷达”只在高端型号中出现,应建模为可选特征。
实际操作中,可以用一张产品—特性矩阵来辅助判断。矩阵的行是产品型号,列是候选复用单元,单元格填写“必选/可选/参数化/不适用”。当某一列在所有行中都是“必选”时,它就是强共性;当某一列出现“可选”或“参数化”时,它就是一个变异点候选。
三、识别共性边界与划分领域范围
共性边界回答的是:哪些共性应该被固化到产品线核心资产中,哪些应该留给具体产品自行实现?边界划得太宽,核心资产会变得臃肿且难以维护;边界划得太窄,复用收益又不足以抵消产品线建设的成本。
一个实用的判断依据是变化频率与变化影响范围。如果某个共性在所有产品中几乎不变,且变更时影响面很大,就应该纳入核心资产并严格管控;如果某个共性虽然存在,但不同产品经常需要独立调整,且调整不影响其他产品,就应该把它划到领域边界之外,作为产品特有部分。
领域范围划分则是在共性边界的基础上,把整个产品族拆分为若干个领域。每个领域是一组高内聚、低耦合的复用单元集合,拥有自己的领域模型、领域用例和领域字典。例如一个无人机产品族可以划分为“飞行控制领域”“动力能源领域”“任务载荷领域”“地面站领域”。领域之间通过明确定义的接口交互,领域内部则尽量保持稳定。
四、形成领域用例
领域用例描述的是某个领域对外提供的可观察行为,它站在领域边界上,而不是站在具体产品型号上。例如“飞行控制领域”的领域用例可以包括“接收导航指令并控制姿态”“上报飞行状态”“执行返航逻辑”等。这些用例在所有型号中都是稳定的,只是触发条件和参数阈值可能不同。
编写领域用例时,建议采用“参与者—领域—目标”的三元组格式。参与者可以是外部系统(如地面站)、也可以是其他领域(如任务载荷领域)。目标则用一句可验证的话描述,例如“在收到返航指令后30秒内将飞行器引导至起飞点上方10米范围内”。这样的描述既保留了领域行为的共性,又为后续的参数化留出了空间。
五、建立领域字典
领域字典是领域分析的核心交付物,它把领域内所有关键术语、参数、接口和约束集中定义,确保不同团队、不同型号对同一概念的理解一致。一个完整的领域字典条目通常包含:
| 字段 | 说明 | 示例 |
|---|---|---|
| 术语名称 | 领域内唯一标识 | 最大续航时间 |
| 定义 | 精确的语义描述 | 从起飞到电量降至20%的持续时间 |
| 单位 | 物理单位或量纲 | min |
| 取值范围 | 允许的取值区间 | 25~90 |
| 变异点 | 是否随型号变化 | 是 |
| 关联领域 | 所属领域 | 动力能源领域 |
| 约束 | 与其他参数的关系 | ≤ 电池容量 / 平均功耗 × 60 |
领域字典不是一次性文档,而是随着产品线演进持续维护的活资产。每当新增一个型号或调整一个参数,都应该先检查领域字典中是否已有对应条目,避免重复定义和语义漂移。
六、从识别到落地的关键检查点
完成一轮复用单元识别与领域分析后,可以用以下问题做自检:
- 是否每个复用单元都能追溯到至少两个现有型号中的具体需求或结构?
- 共性边界是否明确区分了“核心资产”与“产品特有部分”?
- 每个领域是否有清晰的对外接口和独立的领域用例?
- 领域字典中的参数是否标注了变异点和约束关系?
- 领域之间的依赖是否尽可能少,且通过明确定义的接口交互?
这些问题不需要全部回答“是”才能继续,但它们能帮助团队发现领域分析中的薄弱环节。复用单元识别与领域分析的质量,直接决定了后续可配置架构的稳定性和复用收益。把这一步做扎实,后面的变异点建模和配置规则设计才会水到渠成。