3.3 建立RQM
建立RQM可以采用下面几种形式:
● 新建RQM
● 从已有RQM生成新的RQM
● 从其他模型导入生成RQM
● 从Word文档导入生成RQM
新建RQM以及从已有RQM生成新的RQM的方法在3.3.1节中叙述;从其他模型导入生成RQM以及从Word文档导入生成RQM的方法在3.7节中讲解。
3.3.1 创建RQM
创建RQM实质上就是创建一个结构化的文档,例如功能规范,测试计划,经营目标等。在需求文档视图中,每行代表一个需求,每个需求可以分成多个层次。具体创建步骤如下:
1.新建RQM
选择File→New菜单项或鼠标右键单击Workspace→New→Requirement Model,打开新建模型窗口,如图3.2所示。
图3.2 新建模型窗口
在Model type中选择Requirements Model,在Diagram中单击Requirements Document View,然后在Model name文本框中输入模型名称,单击OK按钮,即可打开需求文档视图,如图3.3所示,在该窗口中可以建立需求项目。
图3.3 需求文档视图窗口
2.设置RQM的模型选项
RQM模型选项主要设置RQM模型名称、代码等属性。具体的设置方法如下:
(1)选择Tools→Model Options菜单项,打开模型选项设置窗口,如图3.4所示。
图3.4 模型选项设置窗口
在模型选项设置窗口中包括Model Settings(模型设置)、Requirements Fonts(需求字体)、Naming Convention(命名约定)三个节点,各节点的含义如下:
① 模型设置
● All Objects:表示全部对象。若选中Name/Code case sensitive,则表示RQM中的对象名称和代码区分大小写;否则表示不区分。
● External Shortcut Properties:表示外部快捷方式的属性。若选中All,表示设置全部,选中Name/Code,表示只设置名称和代码。
● Default按钮:表示修复到默认设置。
● Set As Default按钮:表示把当前设置确定为默认设置。
② 需求字体
在图3.4的Category节点中选择Requirements Fonts子节点,打开需求文档字体设置窗口,如图3.5所示,用于设置需求模型中文本及各级标题的字体显示。
图3.5 需求文档字体设置窗口
其中各参数含义如下:
● Text:表示需求文本及各级标题。
● Font:用于设置Text选择框中所选内容的字体。
● Font style:用于设置Text选择框中所选内容的字形。
● Size:用于设置Text选择框中所选内容的字号。
● Color:用于设置Text选择框中所选内容的颜色。
● Effects:用于设置Text选择框中所选内容的显示效果。
Strikeout:用于设置文字中间显示删除线。
Underline:用于设置文字下划线。
● Preview:用于显示上述设置的效果。
● Default按钮:表示修复到默认设置。
● Set As Default按钮:表示把当前设置确定为默认设置。
(2)命名约定的设置
在图3.4的Category节点中选择Naming Convention子节点,打开命名约定设置窗口,如图3.6所示,用于设置每种对象的命名约定。在Naming Convention节点下的设置对所有对象有效,在其子节点中的设置仅对指定对象有效。
图3.6 命名约定设置窗口
其中,各参数含义如下:
● Enable glossary for autocompletion and compliance checking:设置模型中术语完整性和有效性的自动检查。
● Display:用于设置显示内容。
Name:表示模型图形中会显示对象名称。
Code:表示模型图形中会显示对象代码。
Enable name/code conversions:表示对象名称和代码可以相互转换。
● Name/Code标签:设置模型对象名称/代码的命名约定。
● Naming template:命名模板。
● Maximum length:最大长度。
● Character case:字符的大小写约定。其中UPPERCASE代表全部大写,lowercase代表全部小写,Mixed CASE代表混合使用,Title Case代表标题大写。
● Valid characters:设定有效字符。其中ALL valid代表全部有效。
● Invalid characters:设定无效字符。其中No accents代表没有强调。
● Default characters:设定默认字符。
● Name To Code/Code To Name标签:设置模型对象名称到代码/对象代码到名称的转换约定。
● Conversion script:设定转化的具体约定。
● Conversion table:用于选择转化表。
● Default按钮:表示修复到默认设置。
● Set As Default按钮:表示把当前设置确定为默认设置。
3.3.2 设置RQM属性
打开RQM模型,选择Model→Model Properties菜单项,或者双击浏览器窗口中的RQM模型,或者鼠标右键单击浏览器窗口中的RQM模型,在快捷菜单中选择Properties,均可进入RQM的属性设置窗口,如图3.7所示。
图3.7 RQM属性设置窗口(General选项卡)
General选项卡用于定义需求的通用信息,其中各项参数含义如下:
● Name:RQM的名称。
● Code:RQM的代码。
● Comment:注释。
● File name:当RQM保存之后,用于显示该RQM存放路径及名称。如果文件从未保存,此项为空。
● Author:作者。
● Version:版本。
● Default view:默认视图。
● Keywords:关键字。
Detail选项卡用于设置完成项目所需的工作量(Workload),工作量用天或小时表示,且保留一位小数,如0.5天、1.0天,5.5小时、10.0小时等。Workload 1、2、3、4分别表示该RQM交给第一、第二、第三、第四个人或团队完成这项工作所用的工作量。RQM中可以包含多个子需求,RQM所需的总工作量等于所有子需求工作量之和。因此,在为每个子需求定义了工作量后,系统会自动显示汇总的工作量。通常Workload 1、2、3、4是只读的。
Requirement Traceability Links选项卡用于设置与RQM连接的设计对象和外部文件。设计对象或外部文件帮助用户进一步理解RQM。使用工具栏中Add Links to Design Objects工具或Add Link to External File工具,可以增加连接的设计对象或外部文件。
Notes选项卡包含Description和Annotation两个标签。Description标签是需求属性的文字描述,Annotation标签是需求属性的公式化描述。
在图3.7中单击More>>按钮,还会出现Related Diagrams、Dependencies、Traceability Links和Version Info选项卡,分别用于描述需求的相关图信息、依赖信息、可追溯链接信息及版本信息。
3.3.3 编辑模型视图
在新建RQM时系统会自动建立一个模型视图(View),接下来就要对该视图进行编辑以建立需求模型。
1.添加需求
打开需求文档视图窗口,单击工具栏中Insert a Row工具或单击需求文档视图的空白区,可添加新的需求。以“进销存系统”的需求为例,添加部分需求后的视图窗口如图3.8所示。
图3.8 添加部分需求后的视图窗口
在需求文档视图窗口中除了Title ID栏之外,每栏都处于可编辑状态,可根据设计的需要进行编辑。如果添加的某个需求不再需要了,选中该行后单击工具栏中即可删除;或单击鼠标右键,从弹出的快捷方式中选择Edit→Delete,也可进行删除。
2.编辑需求属性
双击需求视图中Title ID左边的箭头区域或单击工具栏中Properties工具或单击鼠标右键,在弹出的快捷菜单中选择Properties,即可进入属性编辑窗口,如图3.9所示。
图3.9 需求属性编辑窗口(General选项卡)
在图3.9中可以设置需求的描述信息,比如标题(Title)、需求描述(Description)、优先级(Priority)、风险(Risk)、状态(Status)、工作量(Workload)等详细内容。
(1)General选项卡
General选项卡用于设置属性的一般信息,各选项含义如下:
● Parent表示需求的父需求名称,如果需求为顶层需求,则显示需求模型的名称。
● Title ID表示需求的ID号,通常为需求的层次编号,如1、2.1、2.1.1等。
● Title表示需求的名称,为了形象明了可以使用中文。
● Code表示需求的代码,和后期的具体设计有关,如用于编码设计,一般多用英文加数字形式表示。
● Description表示需求的描述,可以使用Description选项区中的工具辅助完成相应的编辑工作。
(2)Detail选项卡
Detail选项卡主要用于设置需求的优先级、风险等属性,如图3.10所示。
图3.10 需求属性编辑窗口(Detail选项卡)
Detail选项卡中各选项含义如下:
● Comment表示需求的简要说明。
● Stereotype表示语义扩展说明。
● Type表示需求的类型,包括Undefined(未定义)、Design(设计)、Functional(功能)、Technical(技术)。
● Status表示需求的状态,包括Draft(草稿)、Defined(定义)、Verified(已校验)、To be reviewed(待审)、Approved(已审)。
● Priority表示需求的优先级,可以从下拉列表框中选择或输入一个带小数点的正值,如1.2、2.5等,数值越大代表优先级越高。
● Selected复选框表示需求是否包含在该工程中。
● Risk表示完成需求的风险级别,包括Undefined(未定义)、Low(低)、Medium(中)、High(高)。
● Verification表示需求的测试级别,包括Undefined(未定义)、Automate Testing(自动测试)、Demonstration(演示)、Manual Testing(人工测试)、Mixed(混合测试)。
● Workload表示将该需求指派给开发团队或成员所需要的工作量。
(3)Requirement Traceability Links
Requirement Traceability Links选项卡用于进一步扩大需求的范围,为当前需求提供更详细的依据及参考,如图3.11所示。
图3.11 需求属性编辑窗口(Traceability Links选项卡)
使用工具栏中Add Links to Design Objects工具可以把设计对象链接到当前需求上(详细操作见3.7.2节)、Add Link to External File工具可以把外部文件链接到当前需求上,Add Links to Other Requirements工具可以把同一个模型中的其他需求链接到当前需求上。在图3.11中显示的是将外部文件“功能需求注意事项.doc”链接到当前需求,链接完成后默认的连接类型为“未定义”,可以通过Link Type来改变链接类型,目的是为了清晰知道链接当前文件的作用。链接类型包括Undefined(未定义)、Specification document(说明文档)、Test object(测试对象)、Design object(设计对象)和Development planning(发展规划)五种。
(4)User Allocation选项卡
User Allocation选项卡主要用于把需求指定到某个用户/用户组上(此操作要求首先要建立好用户/用户组,用户/用户组的创建见3.4节)。具体定义过程如下:
① 单击工具栏中Add Objects工具,打开用户/用户组选择窗口,从中选择指定的用户/用户组,如图3.12所示。
图3.12 选择用户/用户组
② 选择完毕,单击OK按钮,退回User Allocation选项卡,通过修改Type列选项为该用户/用户组设定完成的工作,如图3.13所示。
图3.13 需求属性编辑窗口(User Allocation选项卡)
Type列的选项具体有Undefined(未定义)、Design(设计)、Development(开发)、Documentation(文档)和Quality(质量)五种。这里指定“杨丽”完成当前需求的文档工作。
(5)Related Glossary Terms选项卡
Related Glossary Terms选项卡用来为当前需求添加专业术语。添加专业术语的方式有两种,一种方式是使用工具栏中Add Objects工具,在已建立好的专业术语库(专业术语库的创建见3.5节)中选择,如图3.14所示。另一种方式是使用工具栏中Create an Object工具,在当前需求中直接添加专业术语,如图3.15所示,这时所添加的专业术语会自动添加到专业术语库中。
图3.14 专业术语库
图3.15 添加专业术语
添加了专业术语的Related Glossary Terms选项卡如图3.16所示。
图3.16 需求属性编辑窗口(Related Glossary Terms选项卡)
(6)Notes选项卡
Notes选项卡主要用于需求属性的文字和公式化描述。使用窗口中的工具可以编辑这两个属性的内容,如图3.17所示。
图3.17 需求属性编辑窗口(Notes选项卡)
(7)其他选项卡
除了上述六种选项卡外,还有Traceability Links、Dependencies和Version Info三种选项卡。单击需求属性编辑窗口中的More>>按钮,可看见全部的需求属性选项卡。其中,Traceability Links选项卡用于说明所有模型对象之间存在的可追溯的关系,它只是一个说明性的关系,系统不提供对这种关系的任何检查。Dependencies选项卡用于显示内部依赖,内部依赖存储在模型的内部。当产生一个对象的外部快捷方式或把一个业务规则附加到一个对象上时,在模型对象之间就产生了一个依赖连接,这样的依赖包括内部依赖和外部依赖两种,外部依赖存在于模型之间。Version Info选项卡用于显示建立或修改当前需求的用户、时间等信息,这些信息由系统自动提供。
3.细化需求
细化需求,即分层细化,对各需求模块做更为细致的划分,这样与层次化的文档完全吻合。细化需求的方法有两种,这里以“功能需求”的设计为例进行说明。
方法一:在需求文档视图中,选中“功能需求”,单击工具栏中Insert a Sub-Object工具,这样就在“功能需求”中插入了一个子需求对象。
方法二:在浏览器窗口中找到Requirements目录,鼠标右键单击“功能需求”,从弹出的快捷菜单中选择New→Requirement即可。
反复进行方法一/方法二操作,完成插入子需求对象工作,同时对新插入的子需求对象进行详细的内容编辑,方法同前。同样地也可以对各子需求对象继续使用方法一/方法二添加子需求对象的下一级子需求对象,完成进一步的细化工作,部分细化的结果如图3.18所示。
图3.18 部分细化的结果
细化工作是指针对某一个需求及子需求进行相关的属性设置,例如定义工作完成的时间、将工作分配给某一个用户/用户组完成,是否连接外部对象及外部文件等,具体操作方法见3.3.2节。
在图3.18中,如果要提升或降低某子需求对象的需求层次,可以通过工具栏中的Promote工具和Demote工具调整子需求对象的层次。