需求文档在迭代多次之后,仅仅通过文件名来分辨哪一处内容被修改过,已经相当困难。为了更好地梳理变更情况,我们就需要掌握两个关键操作:一是怎样用DOORS去比对两个模块,二是比对结束后如何把差异的结果导出来。这里以IBM Engineering Requirements Management DOORS的桌面版本作为说明对象。通常,对于两份各自独立的模块,可以借助模块比对向导来处理;而针对同一个模块的不同冻结快照,采用基线比较会更合适一些。这两种情形最好不要混杂在一起操作。
一、DOORS怎么比较两个模块
DOORS具备对两份正式模块进行比对的能力,能够识别出哪些对象是新增的、哪些被删除了、发生了移动,以及哪些在内容上被修改过。由于比对向导会把当前已经打开的模块默认看作较新的版本,因此在动手之前,务必要先核实好模块的打开顺序,以免新旧关系颠倒。
1、准备新旧模块
把旧模块提前留存下来,然后将客户更新过的需求导入到一个新建的模块里。接着打开这个较新的模块,并切到独占编辑模式下进行操作。千万不能直接把旧模块覆盖掉,不然在做比对的时候就会失去一个明确的参照基准。
2、建立比较视图
在新打开的模块里单独创建一个视图,保持主列不被移除,同时把那些需要逐项核对的属性也添加进去,比如对象编号、需求当前的状态、责任人以及验证的方式等。比对向导能在新模块里直接生成对应的差异列,但视图中的主列一定要完整保留下来,不能漏掉。
3、运行模块比较
依次点开菜单里的【Tools】→【Compare Modules】,在弹出的对话框里选定刚才准备好的旧模块,然后顺着向导的指引一步步完成设定。整个比对流程既可以标记出那些完全未变的对象,也能把内容有改动、位置被挪动,以及编辑与移动同时发生的条目一一辨认出来。此外,还可以通过调整文本相似度的参数,来适应那些内容已经发生较大变化的需求条目,让匹配更准确。
4、检查未匹配对象
比对结束之后,系统能够把那些没有匹配上的对象单独筛选出来。对于新模块中出现的未匹配项,一般要重点核查它们是否属于真正新增的需求;而旧模块中的未匹配项,则要去确认是不是应该被删除的旧内容。有少量内容变动过大的对象也可能被归到未匹配的范围里,这时候就需要人工判断,到底是手动建立链接还是直接将其移除了。
二、DOORS模块差异结果怎么导出
当模块比对工作结束以后,所有的差异信息就会显示在新模块中一个专门的比对列里。新增添的内容会带上蓝色的下划线,而被删除的部分则用红色的删除线加以标识,就连那些纯文本上的编辑改动也会在同一个列中体现出来。需要注意的是,这个列是一个由Layout DXL动态生成的列,每次刷新页面的时候它都会重新计算一次。
1、先保存比较视图
在核对完比对结果之后,先把之前设置的各种筛选条件关掉,恢复到能够看到全部差异标记的状态。随后将当前这个视图保存下来,免得下次再打开模块时又要重新配置各列的布局。如果比对结果需要交付给其他人,比较稳妥的做法是至少把对象编号、主列以及差异列这三项保留在视图里。
2、导出CSV或TSV
导出为CSV或TSV格式时,可以走【File】→【Export】→【Spreadsheet】这条路径,选择导出当前视图,并将格式设定为CSV或TSV,然后指定好存放的位置。DOORS能够把当前视图或者指定的属性以表格文件的形式输出,每一条需求对象都对应生成一行记录。
3、需要直接查看时导出Excel
如果希望导出的内容可以直接用Excel打开查看,那就进到【File】→【Export】→【Microsoft Office】→【Excel】,在设好相应的导出选项后点击【Export】。系统会自动把当前视图里的内容加载到Excel里。不过需要注意,用这种方式导出的数据不会保留富文本格式,一些特殊的字符也可能丢失。
4、需要保留差异标记时改用文档格式
如果报告要求必须保留红色删除线和蓝色下划线这类修改痕迹,就不要再只选CSV或表格导出了。因为表格文件会把富文本格式丢掉,更适合用来做清单式的管理;而当需要把修改痕迹完整地展示出来时,则应当把当前视图导出为Word或RTF格式,这样在评审归档时就能清晰地体现出每一处变动。
三、DOORS模块比较前还要检查什么
模块比对功能可以明显提升排查效率,但它始终不能完全取代人工的复查。当待比对的这两个模块在章节结构上差异过大时,自动匹配的效果就会打折扣。
1、检查标题层级
DOORS在比对时采用的是近似匹配的机制,一般当两个模块大致有四分之三的标题结构能够保持相互对应的时候,匹配的结果就会比较稳定。要是章节的先后顺序被打乱得很厉害,就要额外多投入一些人工去复核那些可能对不齐的地方。
2、检查富文本内容
另外,模块比对功能处理的只是纯文本内容,那些嵌入在需求里的图片、OLE对象以及富文本格式等,并不会被纳入到比对结果的差异范围中去。因此,只要需求里夹带了表格、图片或者附件,就还需要单独把这些内容的异同核对一遍。
3、同一模块优先使用基线
假如我们要比较的是同一个模块在不同里程碑上的变化,那么就应该优先去使用基线比较的方式,依次点开【File】→【Baseline】→【Compare】即可。基线属于只读的快照版本,能够把某个时间点上模块的状态固定下来,专门用来查看主列文本的改动以及对象的增删情况。
总结
总结来说,当我们要在DOORS里对两个独立的模块进行比对时,核心路径就是利用【Tools】→【Compare Modules】操作,先在新模块中生成差异列,然后逐一审视那些新增、删除、移动和被编辑过的内容。对差异结果做整理时,可以先保存好当前的视图,再将其导出为CSV、TSV或Excel文件。如果要完整保留红线和蓝色下划线这类修改印记,则需要改成Word或RTF格式。在比对开始前就把模块的结构、主列和相关的属性列规整好,这样产出的结果才更方便用于需求评审和版本的归档管理。
