在DOORS里,链接一开始没定规矩,后面通常不会只是“有点乱”,而是会直接影响追踪、评审、基线和变更判断。IBM官方说明里讲得很清楚,标准链接信息是放在link module里的,而每个link module下面又会按源模块到目标模块拆成不同linkset;同时,正式模块还能定义default linkset pairing和mandatory linkset pairing,用来控制链接到底该落到哪个link module。也就是说,所谓链接规则,核心不是写一条口头规范,而是把链接语义、落点和权限一起固化到模块配置里。
一、DOORS链接规则怎么制定
链接规则定得是否合理,关键不是名字起得多好听,而是能不能让使用者不靠猜也知道“这条链接该怎么建、建到哪、用来说明什么”。DOORS本身已经给了控制抓手,所以规则最好直接贴着工具能力来定,而不是额外再造一套纸面流程。
1、先按关系语义划分link module
比较稳的做法,是一类业务关系对应一个link module,例如需求到设计一类,需求到测试一类,变更影响一类。因为IBM官方已经说明,link module本来就是标准链接的存储载体,里面还能继续建link attributes记录链接用途。这样做的好处是,后面看到link module名称,就能大致知道这条链接为什么存在。
2、再用linkset pairing把出口锁住
若只靠人工选link module,时间一长就容易混用。更合适的做法,是在formal module里先建default linkset pairing,必要时再上mandatory linkset pairing。官方文档明确写到,mandatory pairing会覆盖用户默认link module,而且还能限制只允许向指定目标模块建链接,这一步其实就是把规则从“建议”变成“受控”。
3、链接属性只留少数关键项
IBM官方支持在link module里建link attributes,例如记录为什么创建这条链接。实际落地时,不要把链接属性做得太杂,通常保留关系说明、责任角色、验证状态这类少数关键项就够了。属性一多,录入负担会上来,反而更容易把同一种关系又拆成几种写法。
4、批量建链规则优先统一输入范围
DOORS支持拖拽建链,也支持批量创建链接和Link by Attribute。官方旧版手册里还明确区分了selection to selection、selection to display set、display set to display set这几种批量方式。规则上最好先约定什么时候允许用当前视图批量建链,什么时候必须先筛display set,再建链,不然同一批对象很容易因为视图范围不同而建出两套不一致的链接。
二、DOORS链接类型混用后怎么统一整理
链接类型一旦混用,最忌讳直接边看边删。更稳的顺序,是先盘点,再定标准映射,再迁移,最后复核。因为DOORS的链接不仅影响当前模块显示,还会影响traceability explorer、分析列和后续基线行为,所以整理动作最好一次做成闭环。
1、先盘点现有link module和linkset
第一步不是改,而是把现在到底用了哪些link module、每个link module里有哪些source to target组合先列清楚。官方说明里已经写到,一个link module可能包含多个linkset,而每个linkset对应一组源模块和目标模块。把这张清单列出来,后面你才能判断哪些是真重复,哪些只是同名不同向。
2、先定一张归并表
整理前要先定标准,例如哪几个旧link module统一归到哪一个新link module,哪些名字废弃,哪些关系保留为独立类型。若这一步不先做,后面很容易今天迁一批、明天又改口径,结果比原来更乱。这里最实用的标准,就是按关系语义、源目标模块组合和基线节奏三件事来合并。这个判断是依据IBM对link module、linkset pairing和traceability用途的定义做出的整理顺序。
3、能批量迁就不要逐条手改
如果旧链接能通过对象编号或文本属性重新识别,优先用Link by Attribute重建到统一link module;若只是某一批对象范围清楚,也可以用批量建链和批量删链。IBM官方对这两类入口都给了明确步骤,尤其display set to display set很适合在已过滤视图里成批整理。
4、删旧链接前先留基线
这一步非常重要。IBM关于baseline set的说明里提到,模块建baseline后,链接会随阶段快照一起保留和下沉,用来维持分阶段追踪。因此在大规模整理链接类型前,先给相关模块留一版基线,后面即使发现映射有问题,也还有回溯点,不会把原始追踪链完全冲掉。
三、DOORS链接后期为什么总会失控
很多团队不是不会建链接,而是前面没有把“建链入口”和“复核入口”一起设计出来。结果就是早期还能靠人记,后期模块一多、人员一换,链接规则马上失去约束。DOORS本身已经提供了traceability explorer、suspect links和基线机制,问题通常不在工具不够,而在这些能力没有被纳入日常管理。
1、只定建链动作没定复核动作
如果规则里只有“怎么建”,没有“怎么查”,那混用迟早会回来。官方说明里提到,traceability explorer可以查看当前模块哪些对象有链接并做导航;旧版手册还支持显示suspect link指示列和最近变化。也就是说,整理后的规则最好同时规定谁来定期看traceability,谁来清suspect,而不是只要求大家会拖拽建链。
2、默认link module没统一
IBM旧版手册明确写到,若模块对之间没有default linkset pairing,系统会退回用户默认link module。团队里每个人默认值不一样,最后同一种关系自然会落到不同link module。这个问题表面像使用习惯,实质上是配置口径没有统一。
3、基线前后链接口径没锁
如果阶段切换前不锁链接口径,后面就会出现当前版和基线版说不清谁代表哪种关系。IBM关于baseline set的说明已经说明,链接会随着阶段基线保留下来,所以越到后期,越应该让link module命名、pairing和属性口径稳定,不要阶段中途反复换叫法。
总结
DOORS链接规则怎么制定,DOORS链接类型混用后怎么统一整理,真正有效的办法不是多写几条规范,而是把关系语义放进link module,把出口控制放进linkset pairing,把批量整理放进display set和Link by Attribute,再把基线与suspect复核一起纳入日常流程。这样做以后,链接才不只是“能连上”,而是能长期保持可查、可管、可回溯。
