练习 1.3:定义体系结构控制规则
该练习假设您已经完成了练习 1.1:导入需要的资源。在练习 1.3 中,您首先阅读用户场景。然后,您担任用户场景中描述的软件设计人员角色,并使用您在练习 1.1 中导入的项目来完成练习。
用户场景
要防止无关依赖关系,设计人员想要放置一个安全防护机制,以确保不在应用程序中引入任何无关依赖关系。为此,他从提供的向导创建规则。如果实用程序包变得依赖于应用程序包,该规则就会向他发出警报。
创建规则之后,设计人员运行代码复审(通过将它应用于代码库)。发现结果将显示应用程序中的所有无关依赖关系。
练习
在此练习中,您执行以下任务:
- 基于提供的向导定义规则。
- 验证您的用户定义的规则被添加到“结构化分析”代码复审。
- 运行“结构化分析”代码复审。
- 查看不遵守该规则的条件的代码复审发现结果。
定义规则
要基于提供的向导定义体系结构控制规则:
- 在“代码复审”视图中的工具栏上,单击管理规则图标
。

- 在“首选项”窗口中单击新建规则。打开“新建代码复审规则”向导。
“新建代码复审规则”向导(如下一个屏幕捕获所示)引导您完成一些步骤来定义您自己的规则。在此练习中,您将设计一个体系结构控制规则,来在两个组件之间引入依赖关系时向您发出警报。
- 在“体系结构控制”规则列表中,单击引入组件 [依赖关系]。注意,当您选择此选项时,列表下面的文本告诉您使用此模板可禁止两个组件之间存在依赖关系。单击下一步。

- 在基本属性下,接受以一定的问题严重性级别将规则放在结构化分析类别中的缺省值。

- 在特定属性下,为规则指定独立组件和依赖组件:
- 独立组件:workspace\StructuralAnalysis\src\com.ibm.r2a.rules.rsa.examples.architecturalcontrol\IndependentComponent.java
- 依赖组件:workspace\StructuralAnalysis\src\com.ibm.r2a.rules.rsa.examples.architecturalcontrol\DependentComponent.java。
- 单击完成。
看到您的规则被添加到代码复审中
- 定义规则之后,会显示首选项窗口。在选择代码复审列表中,单击完整代码复审(如果它尚未成为选定的代码复审)。这显示所有代码复审类别。
- 展开结构化分析文件夹,看到您刚刚创建的规则。
- 单击该规则来查看您为它设置的属性,如以下屏幕捕获所示:

选择仅应用您的规则的代码复审
要仅为您的规则运行代码复审,请清除列表中除了结构化分析文件夹之外的所有文件夹,如前一个屏幕捕获所示。单击确定。
选择要复审的代码库
要选择工作区作为要复审的代码库:
- 在“代码复审”视图中的工具栏上,单击复审图标(
)> 复审工作区。
运行代码复审
当选择要复审的代码库后,代码复审就开始运行。您可以通过检查视图右下角中的进度条,来跟踪它的状态。
查看代码复审的发现结果
代码复审完成后,发现结果会显示在“代码复审”视图中,如以下屏幕捕获所示。在选项卡下面,统计信息行显示复审摘要。

- 展开结构化分析文件夹,查看它包含的发现结果。

- 双击第三个发现结果,在编辑器中查看它的源代码,如以下屏幕捕获所示:

您已经完成“练习 1.3:定义体系结构控制规则”。
发挥用户定义的规则的强大作用
通过创建您自己的规则,您放置定制的安全防护机制来监视您的设计的实施。您可以采取以下措施:
- 为规则指定条件。
- 给规则指定严重性级别:问题、警告或建议。
- 仅对您的规则运行代码复审。
总结练习 1.3
您已经完成“练习 2:定义体系结构控制规则”。在这个练习中,您执行了以下任务:
- 基于提供的向导定义了规则。
- 验证了您的用户定义的规则被添加到“结构化分析”代码复审。
- 运行了“结构化分析”代码复审。
- 查看了不遵守该规则的条件的代码复审发现结果。
现在您可以开始练习 1.4:解决结构化问题。