软件工程标准词汇表中对“需求”的定义:
- 用户为了解决问题或实现目标所需具备的条件或能力;
- 系统或系统组件为达到合同、标准、规范或其他正式文档中所规定的要求而需要具备的条件或能力;
- 对前两项中的条件或能力的文档化表述。
统一软件开发过程(Rational Unified Process,RUP)中对“需求”的定义:描述了系统必须满足的情况或提供的能力,由客户直接提出,也可以出自合同、标准、规范或其他正式文档。
经济学中对“需求”的定义:指人们在欲望驱动下的一种有条件的、可行的、最优的选择,这种选择使欲望达到有限的最大满足。
其实无论是软件行业对“需求”的定义,还是经济学中的抽象定义,都可以将“需求”理解成“软件能为用户做什么或者解决什么问题”。
需求采集
需求采集的目的是获取用户的原始需求,为需求分析工作提供基础,其工作成果是《软件用户需求说明书》。需求采集一般由熟悉用户所从事工作的资深人员进行,需求采集人员需要了解用户希望软件系统在哪些方面为其提供帮助、解决哪些问题。
在进行需求采集前,需求采集人员需要做一些准备工作,比如了解软件系统服务的行业情况、用户所处的组织结构,准备相关业务资料,列出需要询问的问题。
需求分析
需求分析是对采集到的原始需求进行分析、整理、辨别和归纳,最终形成系统的、明确的软件需求,其工作成果是《软件需求规格说明书》。
需求采集和需求分析并不是明确划分先后顺序的两个阶段性工作,而是近乎同时进行的。在需求工作开始阶段,主要是需求采集工作,而需求分析工作占据的比例偏少,但是随着需求采集到的原始需求越来越多,需求分析工作也越来越多。
需求建模
创建RQM
新建RQM操作流程:
图2中第一行是需求文档视图窗口的操作工具栏,下文简称工具栏,第二行是表头行 1,下面各行是内容行。
编辑RQM
编辑需求模型主要包括添加需求、编辑需求属性、添加子需求、提高或降低需求层级、删除需求、修改显示列、创建用户、创建用户组、创建术语库以及创建业务规则功能。
1.添加一级需求
- 单击工具栏的第二个按钮[Insert an Object]
- 单击需求文档视图窗的空白区
- 按 Ctrl+I 组合键
新添加的需求具有默认的需求ID、需求描述和需求代码。
2.编辑需求属性
- 直接在需求文档窗口的编辑区域编辑主要属性
- 双击需要编辑的需求行打开编辑需求属性窗口
- 选中需要编辑的需求行单击工具栏的第一个按钮[Properties]打开编辑需求属性窗口
- 选中需要编辑的需求行按 Alt+Enter 组合键打开编辑需求属性窗口
从图3中可以看出,编辑需求属性窗口包括的选项卡包括:
- General:通用信息,用于设置需求的一般信息
- Parent:需求的父需求名称,如果需求为一级需求,则显示需求模型的名称
- Title ID:需求ID,需求的层级编号,自动生成,不可编辑
- Title:需求名称
- Code:需求代码,一般使用英文、数字加符号表示,与后期的具体设计有关
- Description:需求描述,可以用工具辅助完成富文本
- Keywords:需求关键词
- Detail:详细信息,用于设置需求的优先级和风险等级等信息
- Comment:需求的简要说明
- Stereotype:语义的扩展说明
- Type:需求类型,包括Undefined(未定义)、Design(设计)、Functional(功能)和Technical(技术)4种需求类型
- Status:需求状态,包括Draft(草稿)、Defined(已定义)、Verified(已校验)、To be reviewed(待评审)和Approved(已评审)5种状态
- Priority:需求优先级,每0.5一个刻度,从1到5,数值越大,表示需求优先级越高
- Selected:表示需求是否包含在工程中,选中表示包含,否则表示不包含
- Risk:需求风险级别,包括Undefined(未定义)、Low(低)、Medium(中)和High(高)4种
- Verification:需求测试级别,包括Undefined(未定义)、Automate Testing(自动测试)、Demonstration(演示)、Manual Testing(手工测试)和Mixed(混合测试)5种
- Traceability Links:追踪链接,设置该需求链接的设计对象和外部文件,以便为当前需求提供更详细的依据和参考
- User Allocations:用户或用户组分配,设置当前需求指定的某个用户或用户组
- 单击按钮[Add Object]选择要设置的用户或用户组
- 修改Type列值设置用户所需完成的工作,包括Undefined(未定义)、Development(开发)、Documentation(文档)、Design(设计)和Quality(质量)5种
- Related Glossary Terms:关联的术语库,用于设置当前需求的专用术语
- Notes:需求描述,设置当前需求的文字或公式化描述,与General中的Description同步
3.添加子需求
- 选中某个需求后,单击工具栏上的按钮[Insert an Sub-Object]按钮
- 选中某个需求后,按 Ctrl+Shift+I 组合键
可使用父需求的打开、关闭按钮打开或者关闭子需求,其他同添加一级需求。
4.提高或降低需求层级
通过工具栏上的按钮[Promote]或[Demote]将需求层级提高或降低一级,对应的组合键为 Ctrl+’+’ 和 Ctrl+’-’。
5.删除需求
通过工具栏上的按钮[Delete]或按Delete键删除选中的需求,若被删除需求下有子需求,则子需求会被关联删除。
6.修改显示列
若想修改需求文档视图编辑区域的显示列,可单击工具栏的按钮[Customize Columns and Filter]或者按 Ctrl+U 组合键,弹出显示列设置窗口进行勾选。
7.创建用户
首先要明确的是这里提到的“用户”是指与需求有关的人员,即需求分析师、系统分析师、开发人员和测试人员等,而不是提出需求的客户。
在菜单栏选择Model→Users菜单项,打开用户管理窗口,如图6所示,在用户列表区域之际添加用户,或者单击按钮[Add a row]添加用户。
8.创建用户组
用户组是指对用户按特性进行分类,将相同特性的用户组成用户组。
创建方式类同创建用户,在菜单栏选择Model→Groups菜单项,打开用户组管理窗口。不同的是,在用户组属性窗口的Group User选项卡界面可以设置当前用户组的用户。
9.创建术语库
术语用于表示某一专业的特殊概念,例如电力行业中的杆塔、餐饮行业中的团购等,术语库是术语的集合。
创建方式类同创建用户,在菜单栏选择Model→Glossary Terms菜单项,打开术语库管理窗口。
10.创建业务规则
业务规则(Business Rules)是满足业务需求的一些规则、约束,可以将客户的要求、内部准则和规范等作为业务规则,如组织编码、分类代码的规则等。
在菜单栏选择Model→Extensions菜单项,打开扩展模型定义管理窗口,并添加一条“业务规则”的定义。
启用业务规则的操作:
此时菜单栏Model下可看到多出Business Rules选择项,选择该选择项可以打开业务规则管理窗口,编辑所需的业务规则2。
管理RQM
1.设置模型选项
在菜单栏选择Tools→Model Options菜单项,打开模型选项设置对话框,如图9所示。
Model Settings节点
该节点设置模型的基本属性:
- Name/Code case sensitive:设置模型中对象名称和代码是否区分大小写,选中表示区分,否则表示不区分
- External Shortcut Properties:
翻译为外部快捷方式属性,暂时未发现用途,了解后回来更正
Requirements Fonts节点
该节点用于设置模型字体:
- Text:设置需求文本和各个标题级别
- Font:设置字体
- Font Style:设置字形
- Size:设置字号
- Color:设置文字颜色
- Effects:设置文字效果,Strikeout表示删除线,Underline表示下划线
Naming Convention节点
该节点设置命名约定,也可对 不同类别 分别设置:
- Display:设置显示内容,Name表示设置模型图形中对象的名称,Code表示设置模型图形中对象的代码,Enable name/code conversions表示对象名称和对象代码可相互转换
- Name/Code:设置模型对象名称/对象代码的命名约定。
- Naming:指定名称模板,可以通过按钮[…]设置名称模板
- Maximum length:设置最大长度
- Character case:设置大小写约定
- Uppercase:全部字符大写
- Lowercase:全部字符小写
- Mixed case:混合使用
- Title case:首字母大写
- UpperCamelCase:大驼峰拼写法
- LowerCamelCase:小驼峰拼写法
- Valid characters:设定有效字符,选中All valid表示全部有效,不选中可以自行维护
- Invalid:设定无效字符,选中No accents表示没有强调
- Default character:设定默认字符
- Name To Code/Code To Name:设置模型对象名称到代码/模型对象代码到名称的转换约定
2.设置RQM属性
在菜单栏选择Model→Model Properties菜单项,打开模型属性设置窗口,如图10所示。
General选项卡
定义需求的通用信息:
- Name:需求模型名称
- Code:需求模型代码
- Comment:需求模型注释信息
- File name:需求模型路径,未保存之前,此项显示为空
- Author:文档作者
- Version:文档版本
- Default view:默认的需求文档视图
- Keywords:关键字
Detail选项卡
定义完成项目需求的工作量,单位可设置为天或小时,可保留一位小数
Traceability Links选项卡
设置RQM连接的设计对象和外部文件,以帮助用户更好地理解需求
Notes选项卡
设置需求描述,支持富文本编辑
- Description:表示需求属性的文字描述
- Annotation:表示需求属性的公式化描述
3.导出需求模型
在菜单栏选择Report→Reports菜单项,打开报表列表对话框,单击对话框中按钮[New Report],打开新建报表对话框,如图11所示。
- Report name:报表名称
- Language:报表语言
- Report template:报表模板
- Use legacy Report Editor:使用传统的编辑器
单击按钮[OK]确认后,打开报表属性设置窗口,如图12所示,左侧为所有可选的报表导出项,右侧为已选择的报表导出项,导出项的格式可以自行修改,然后单击主窗体工具栏的RTF图标按钮[Generates report in RTF format],将需求模型导出为RTF文档。