在需求评审的过程里,状态、优先级、验证的方式,还有负责的部门这几项,通常都是需要从一组固定选项里来选的,不能让大家随便填。用经典版DOORS的Formal Module来管理需求时,枚举属性就很适合用来限制这种填写范围,打个比方,可以把需求状态限定为“草稿”、“评审中”、“已确认”和“已关闭”这几种。DOORS里面的属性,是由属性类型、属性定义和属性值这三部分组成的,枚举的那些选项应该先在属性类型里面配置好,然后通过属性定义绑定到模块或者对象上去,这样后面用起来才不会乱。
一、怎么设置属性的枚举值
在动手设置枚举值之前,要先确保当前模块是用独占编辑模式打开的,只读模式和共享编辑模式都改不了属性类型,另外当前这个账号还得有修改模块和修改属性类型的权限。
1、先创建一个枚举类型的属性类型
在模块窗口里面,顺着【Edit】→【Types】点进去,点一下【New】来新建一个类型。把类型的名称填好,比如可以叫Requirement_Status,然后在Base type那一栏里选择【Enumeration】。接着在下面的枚举值区域,把需要用到的选项一个一个加进去,比如依次添上“草稿”、“评审中”、“已确认”和“已关闭”这几种。按照DOORS官方帮助里的说明,Enumeration其实就是预先定义好的一组可选值。
2、接着建立对应的属性定义
进入【Edit】→【Attributes】这个菜单,点【New】新建一条属性。把属性名称填上,比如叫“需求状态”,然后在类型那一栏选中刚才建好的Requirement_Status这个类型。接下来要根据使用范围来选,到底是把它设成对象属性、模块属性,还是两种都同时用上。对象属性是用来给每一条需求单独填写的,模块属性则更适合记录整份文档本身的状态信息。
3、批量填写枚举值
回到模块的主界面,把需要修改的那些对象选中,右键进到【Properties】→【Attributes】里面,找到“需求状态”这一条,然后点【View/Edit】。在弹出的窗口里把新值选好之后,可以把它应用到当前这一个对象上,也可以应用到所有已选中的对象,或者当前视图里显示出来的全部对象。如果这条枚举属性支持多选,那还可以分别去控制是新增勾选的项,还是把之前勾选过的项去掉,操作起来比较灵活。
二、枚举项修改完之后怎么同步
修改完枚举项以后,要先分清楚是只在当前这一个模块里更新,还是需要把变更同步到好几个模块里面去,因为这两种情况的处理方式是不一样的。
1、同一个模块里的修改会自动更新
打开【Edit】→【Types】,在类型列表里找到刚才那个枚举类型,点一下【Edit】进去修改。如果只是把原来某个旧值的显示名称替换成了新值,DOORS会自动去把原来用到这个值的属性记录全部同步更新过来。但如果是要删除掉某一个枚举项,那原来用到这一项的属性值就会被系统直接改成默认值;要是又没有设置过默认值,那这个字段就会变成空值。
2、在删除枚举项之前要先设好默认值
举个例子,假如准备把“待确认”这个状态从列表里删掉,那事先就要想清楚,原来那些标着“待确认”的记录到底应该自动转成“草稿”还是“评审中”,然后再去检查这个属性定义里的默认值有没有设定好。千万不要什么准备工作都没做,就直接把枚举项给删掉了,这样可能会导致一大批需求的状态字段悄悄变成空值,后面再想判断它们原来的状态就很难了。
3、多个模块之间需要逐个去核对
DOORS虽然有功能可以把属性类型或者属性定义导入到当前模块里来,但这恰恰说明,不同模块里那些同名的类型,并不能看作是全库实时的联动关系,改了其中一个,另一个不会自动跟着变。如果团队需要共用一套枚举规则,比较建议的做法是,先在一个模板模块里把规则维护好,然后把新的定义导入到各个目标模块里面去;要是模块的数量比较多,那就可以用经过验证的DXL脚本来做批量的处理,这样更保险一些。
三、枚举项修改完之后怎么检查
当同步操作全部做完以后,不能只看一眼下拉列表里的选项对了就觉得没问题了,还得把已经存在的对象、历史的变更记录,还有最后导出来的结果都检查一遍,才能确认修改没有留下什么隐患。
1、先筛选一下旧值和空值
进入【Tools】→【Filter】→【Define】这个路径,按照刚才改过的那个目标属性,建一个筛选条件,专门把还遗留着旧枚举值,或者已经变成空值的对象找出来,看看是不是所有的旧值都已经按要求转换好了,有没有因为哪一步操作不小心遗留下来的遗漏。
2、再查看一下模块的历史记录
进入跟模块属性相关的历史记录页面,把属性创建、编辑和删除的这些操作记录翻出来看一看。DOORS会把属性的每一次变更都登记在模块历史里面,而且还能按用户和日期去筛选,这样就能查清楚到底是哪次操作导致了某个值的丢失,或者帮着确认一遍同步操作是不是已经真的执行到位了。
3、把常用的视图和报表重新保存一遍
枚举项调整过之后,最好把平时经常打开的那几个视图重新打开一次,看看列的颜色标记和显示内容有没有出现异常,同时也别忘了重新导出一次报表。因为枚举属性常常会被拿来当作列颜色编码的依据,旧的枚举值一旦被删掉以后,原来设好的那些颜色显示规则,很可能就不再生效了,这部分也要一起复核一遍才行。
总结
关于DOORS里面怎么去设置属性的枚举值,以及属性枚举项在修改之后要怎么去同步,整个操作顺序大致可以概括成:先在【Edit】→【Types】里面把枚举类型和具体选项创建好,再通过【Edit】→【Attributes】把它定义成一条模块或对象能用的属性。在同一个模块里面替换或者删除枚举项的时候,DOORS会根据默认值设置去处理掉已有的属性值;但到了多个模块之间,这种修改还是得逐个模块去同步或者导入。等修改和同步都做完以后,还要记得用筛选功能扫一遍旧值和空值,查一遍模块历史记录,再把常用视图和报表重新检查一次,这样才能防止状态字段在不知不觉中出现遗漏和错误。
