本文关注于基于文档的需求,比如用例需求规约。基于数据库的需求可能需要不同的并行开发策略。
IBM® Rational® RequisitePro® 文件必须以 Microsoft® Word® 格式存储(而不是以 Rational RequisitePro 格式存储),而且包含的需求绝对不能包含有层级(父-子)关系。
本文描述的场景使用 Rational RequisitePro 7.1.0 版本与 Microsoft Office 2003 进行了测试,并是在 Microsoft® Windows® XP Service Pack 2 上运行。如果您想进一步了解基本的思想与技术,那么您最好创建一个测试环境,因为如果数据没有得到合适的处理的话,那么有些不当的操作将有可能使数据受到不可恢复的毁坏。
Rational RequisitePro 没有提供像 IBM® Rational® ClearCase® 那样的分支和合并机制。在 ClearCase 中存储 RequisitePro 格式的文件,并想从 ClearCase 的分支和合并功能中获得的便利并不能解决这个问题,因为 ClearCase-Microsoft Word 合并管理器并没有考虑存储在 RequisitePro 数据库内的嵌入需求。
唯一的解决方法是使用本地的 Rational RequisitePro 功能,并创建 RequisitePro 文件与需求的单独实例。有了这些单独的实例,团队就可以独立地工作,然后将后面进行的变更组合到一起。附加的需求属性可以帮助您管理需求从哪里分支以及合并到哪里。原始需求与分支需求之间的追溯关系,可以帮助您对其他团队对需求所做的变更能保持一致。
Microsoft Word 自身包含了文件的比较与合并功能,并且可以用于合并一个文件的不同版本。
对于 Microsoft Word 而言,即使文件的扩展名不是 .doc 的话(例如,对于用例规约则是.ucs),也会有什么不同。但是,Word 并不会使用 Rational RequisitePro 的格式来存储文件。
为了增加 Rational RequisitePro 对于分支或者合并场景的支持力度,您需要向每一种需求类型添加两个附加的属性,分支或者合并操作会影响到这些需求类型。
并发开发的项目通常根据团队或者版本来进行组织。项目的组织结构也可以在 RequisitePro 中的包结构中来反映。在本例中,我们将会根据版本,R10 和 R11 来组织结构,如图 3 所示,“在包结构中反映项目的组织结构”。
为一个 Rational RequisitePro 文件建立分支
为了让这个例子尽可能的简单,在 R10 发布包中只有一个用例规约。R11 分支可以分支于 R10 版本(对于产品即将到来的 1.1 版本,编辑用例需求)。用例规约只包含有两个需求(参见图 4,“RequisitePro 数据库中的启动情形”,与图 5,“RequisitePro 文件的启动情形”):
图 4. RequisitePro 数据库中的启动情形
图 5. RequisitePro 文件的启动情形
按照以下的方法,来将 R11 版本中已存在的 Rational RequisitePro 文件分支:
图 6. 分支 – 导入文件 1,Withdraw Cash R10.DOC
注意:RequisitePro 文件的名字在每一个项目中必须是独一无二的。
在导入文件之后,原始 Rational RequisitePro 文件会有一个一模一样的拷贝(如图 11,“分支 – 被分支的文件及需求”所示,包含标记的需求),而 R11 发布包含有它自己的 RequisitePro 文件(参见图 12,“分支:R10 的 R11 分支”)。
注意,在文件的导入期间,已经创建了新的需求。新创建的需求并不是原始需求的拷贝,而是应用默认值的新实例。检查一下,原始的需求是否拥有需要为需求的拷贝输入的默认值。
R11 发布版本现在还包含了一个单独的需求文档及其需求。这些需求可以单独进行编辑,而不用考虑原始的需求文档与需求。
在这个简单的例子中,很容易追踪原始的和分支的需求。在拥有数百或者数千需求的实际项目中,您需要一个工具以仔细查看。
可以使用的另一种机制,就是创建原始需求与分支需求之间的追溯关系(图 13,“通过追溯关系来追踪原始的和已分支的需求”)。这起到两个目的:
其中有一条很小的限制条件,那就是追溯的关系不允许是闭环的。因此,您必须要么记录分支要么记录合并关系。
另一种机制就是使用其他的属性来管理分支或者合并。您可以通过向标为“来自于”和“合并至”的需求类型添加一条文本属性,来记录需求的状态。不能进入来自于则意味着它是一个原始的需求。不能进入合并至则意味着分支的需求尚未得到合并(参见图 14,“使用属性以管理分支/合并”)。
如果一个已存在的文件被分支了,那么它会在一定程度上得到更改。这种更改可能一处变更、添加或者删除。我们将会向您展示怎样对分支的需求文档执行这三种变更操作,并完成合并过程,这样您就可以看一下怎样将这些操作集合到原始的需求文档中。用例标题上会有一点的变动:需求 UC4 被删除了,而添加了需求 UC5(图 15,“对已分支的需求文档所做的修改”)。
在从 Microsoft Word 菜单中应用变更之后,我们会选择 RequisitePro > Document Save 以提交对数据库所做的变更。
现在,将这些变更合并到原始的需求文档之中。首先,您需要创建一个临时文件。
通过双击书签来进行导航。就算没有 RequisitePro 文件,需求文档中每一个需求都仍然会有一个书签。在这个需求文档的例子中,我们有两个书签。一个是用于已编辑过的需求的。另一个是用于已添加需求的(图 17,“已添加的需求的书签”)。
您可以将编辑过的临时文件合并到原始的文件之中。
差异可以通过接受或者拒绝变更来得到解决。基本上,您需要考虑三种不同的场景(图 20,“合并原始和已分支的文件”)。
需求会同时呈现在原始和分支后的文件中。如果您想要将对分支需求所做的变更转移到原始的需求中,那么原始的书签必须还保留在原始的文件中。在解决这些不同点之后,拒绝所有引用格式变更或者用例删除的变更。您只需要接受对书签内文本所做的编辑操作(如果您想要让变更回到原始处的话,如果不是的话,就拒绝它们)。
需求会呈现在原始的文件中,但是会从分支的文件中删除。如果您想要删除原始文件中的需求,那么您可以接受与该部分相关的所有变更。如果您并不想这样做,那么就完全地拒绝它。
需求并没有呈现在原始的文件中,而是添加到分支了的文件中。如果您想要在原始的文件中添加需求,那么您可以接受与该部分相关的所有变更。如果您并不想这样做,就完全地拒绝它。
出于这个例子的考虑,我们想要对原始的文件执行编辑操作、输出操作。因此,在接受和拒绝变更之后,合并结果如图 21,“在 Microsoft Word 中合并后的结果”所示。
重要提示:
Rational RequisitePro 并没有参与到合并的过程中,所以只有当您 RequisitePro 中打开原始文件之后,RequisitePro 才会检测到所做的变更。
图 21. 在 Microsoft Word 中合并后的结果
在更新过程中,RequisitePro 会检测到一个属于分支文件中的需求的书签。对于任意给定的需求 RequisitePro 需要一个单独的位置,所以您可以做一个选择,要么从其他的文件中剪切和粘贴,又或者创建一个拷贝。记住需求文本与属性值有一个完整的拷贝。
对于这个例子,创建一个拷贝以避免从 R11 版本中取出所有的需求(图 24,“Requirement Found 视图以及 RequisitePro 内的选项”)。
图 24. Requirement Found 视图以及 RequisitePro 内的选项
R10 需求文档中的最终合并结果如图 25 所示,“Rational RequisitePro 中的合并结果”。
注意:
如果存在有被编辑过的需求,属性值并不会像对添加的需求那样得到自动的复制。相反,属性值需要由人手动检查和修改。在最后一步中,改变分支的属性以反映合并操作已被执行的信息(图 26,“根据属性显示合并的状态”)。
一个精巧的视图组合,过滤所有可疑的链接(发生过变更的)以及属性(尚未执行的合并操作的),对哪些需求有差异以及哪些需求需要合并提供了一个清晰的理解。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/14780873/viewspace-630785/ ,如需转载,请注明出处,否则将追究法律责任。