SCMLife.com

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 4012|回复: 1

[推荐] Rational Requirements Composer 助力生命周期需求工程活动

[复制链接]
发表于 2013-1-4 09:25:32 | 显示全部楼层 |阅读模式
本帖最后由 技术狂人 于 2013-1-4 09:39 编辑
) J( p/ r) P) S' o$ i
& ]2 f: U4 [( y9 m( i& E. W概述
! G8 `! A, Z/ `% N4 Z+ t近两年与客户的交流过程中,我们越来越多的看到,国内客户对需求工程的意愿和认识都在逐步提升,众多的客户在努力尝试需求工程相关实践,走过许多误区,也欣喜看到许多长足的进步。成果是明显的,我们逐渐认识到需求工程能力的提升不是一朝一夕,能够一蹴而就的事情,但同时仅靠热情和时间的堆积也无法到达成功的彼岸。理论与实际的结合,实践与工具的结合,才是相辅相成,才能够确保一步一个脚印,扎实而坚定的向着需求活动的目标——质量保证而迈进。
0 p. f+ u; N9 P8 v4 TRational Requirements Composer(简称 RRC)是 IBM Rational 基于 Jazz 平台构建的集需求定义与需求管理于一身的需求工程平台。RRC 发展至今已有数载,版本也发展到 4.0.1,无论是从功能性、易用性、可用性上,还是从对需求工程理念的实现和遵从,都已经进入了一个良性发展的成熟期。
$ ]; g  ?: P6 k) ]& b9 |本文首先对需求工程领域相关活动及其概念进行简要阐述,由此引出需要展开的需求活动以及相应目标和目的,进一步映射到 RRC 的使用场景和相关提供的功能。希望借助本文,对围绕需求工程以及 RRC 的生态圈贡献微薄之力,也希望能够帮助读者对需求工程有基本的认识,同时对 RRC 的能力有初步的了解,便于对其进行进一步评估,甚至能够投入使用。
' ~. r9 M0 }7 U: ~, q+ L备注:RRC 是 IBM Rational 协作化的生命周期管理(CLM)整体方案中不可或缺的一部分,CLM 强调的协作不仅体现在团队、流程、人员以及资产之间,同样体现在研发生命周期的不同阶段。需求过程作为研发生命周期所有活动的起源,必然也必须要与开发过程以及质量过程产生密不可分的关联。因此对需求工程以及 RRC 的了解不能仅局限在需求领域,而是应该投射到整个生命周期的各个阶段。有关 CLM 的相关内容,可以参阅 Developer Works 上相关文档。
( u) u/ o. p% Y7 C% K7 l
7 j! z2 G$ T& a2 O8 q+ u

% \" Y" n* @0 W6 Q& n) W需求工程领域活动基本概念简述5 G/ \* E  x* x+ Z; p. ~
需求活动贯穿整个软件 / 系统开发生命周期,是研发活动的源头,同时也是衡量研发结果的唯一标准。正因为需求过程跨度长,涉及的活动多,同时与整个开发生命周期其他活动相互交织,彼此关联,与需求活动相关的概念与名词也层出不穷,有些概念甚至彼此混淆。因而有必要对需求过程中涉及的常见活动以及相关概念进行简要描述,便于统一认识。同时也能够通过一条主线对 RRC 所提供的功能进行串联,有助于提升对 RRC 使用的理解。, T$ q& z) A  J! P
需求工程" d4 g6 \% {/ v
对于整个需求生命周期范围的活动,我们称之为"需求工程",需求工程包括两个阶段:需求定义和需求管理(包括变更管理)。前者更关注需求的衍生,后者更关注需求的实现,如下图所示:
" Z2 I6 w, V9 h" j$ x  M. e8 L; }- L! S. t! A
图 1. 需求工程概念
3 ]' t1 E" I* z
1 e" R0 d4 U. P0 d& J7 ?2 W需求定义阶段
% P3 F% ~0 }3 Z) y简述: p! m, l( k) Q/ S7 ~
需求定义阶段主要关注从不同涉众获取需求,组织人员进行需求分析,定义需求规格说明书,评审并验证对需求的理解,确保对需求达成统一的理解与认识。
) c8 F4 s# B& V  S$ l  c/ x" B传统软件工程,例如瀑布式开发方法假设可以一次性得到完全正确的需求,长期实践证明过于理想化,需求定义事实上是一个不断反复的过程。现代软件开发实践表明,我们很难一次性得到完整并正确的需求,项目的开发总是伴随着需求的不断明确和演化而进行的,而这一过程的关键在于如何有效降低需求不确定性的风险。一个行之有效的方法就是不断迭代地进行需求的开发与验证。. R, d& O$ z; u/ n1 Y& B7 \
同时需求根据涉众、角度以及阶段的不同,又划分了不同的层次:业务需求、用户需求、(软件)系统需求。如下图所示:* N8 e1 d& ~. j) e+ i' d  Q' n: m

. [  _+ g: o! @: D  ]) I图 2. 需求定义的不同层次$ q0 A3 w* O# O( X/ V

; D  t( h3 ~7 b4 `# P: S其中业务需求是整个需求活动的源头,它阐明产品的高层次概念和将发布产品的主要业务内容。业务需求说明客户、企业以及想从该系统获利的风险承担者或从系统中取得结果的用户所要求的目标。业务需求为后继工作建立了一个指导性的框架。其它任何内容都应遵从业务需求的规定。需要注意的是业务需求并不能为开发人员提供许多开发所需的细节说明。
& {# y6 P8 f+ X& s8 d用户需求是从使用产品的用户处收集,用户能说清楚要使用该产品完成什么任务和一些非功能性的特性,而这些特性会对使用户很好接收和使用具有该特点的产品是重要的。- E* o$ M3 T8 N. h+ Y: q
系统需求则是用户需求到软件系统层面的映射,描述了软件系统所应具有的外部行为," M( M8 A2 U$ U' c9 }1 K. V
分析方法
; v6 e0 Z/ w9 Z; t" r7 M8 s& Z4 [5 a% P由上图可以看出,业务需求属于业务领域,更为宏观。业务需求通常来自于风险承担者,而用户需求则应来自产品的真正使用、操作者,用户需求与系统需求则属于解决方案领域。
4 p% ~9 G' K2 w! _" v正是由于需求有不同的层次、分属不同的领域、涉众人群有所区别,看待问题和分析问题的角度和方法也不尽相同。
9 @% U* Y% e" |" x/ x在业务领域,我们通常通过业务流程来梳理描述业务需求,一张简单的示意图就可以用来描绘出用户的业务活动,输入输出数据,起始、中止以及判决条件等。编制业务流程有助于明确产品的使用实例和功能需求。
2 s# I9 t! B0 U由于在业务领域有可能涉及到不同行业,不同的行业、不同的业务领域会有不同的术语。同时业务领域活动是后续分析、实现与验证的输入,需要与整个研发生命周期涉及到的不同团队形形色色不同人员进行沟通;因而定义一套统一的术语表有助于统一认识,减少误解。术语表有时也称为数据字典。
: G: n* w4 n& t4 `3 u在用户需求层面,我们通常可以采用用例模型辅助进行需求分析,同时在这个阶段,除了功能性需求,我们还可以整理出非功能性需求。非功能需求包括产品必须遵从的标准、规范和合约;外部界面的具体细节;性能要求;设计或实现的约束条件及质量属性。9 y2 t% g+ ?# ^/ v3 \) s
从系统角度我们可以通过多种方式使需求分析人员、设计人员,甚至开发人员、测试人员与需求干系人进行交流。通常我们建议开发领域人员能够尽可能的与用户进行沟通,尤其是敏捷开发更是强调用户的参与,用户如果能够在开发过程中,尤其是需求分析阶段更多的介入,能够有效提升团队对于需求的理解,避免由于信息的缺失或误解造成损失。9 b6 N& v: A/ C: Z7 B
需求的信息,除了需求的内容以外,还包括例如优先级、必要性、来源、状态、负责人等信息,通常称为需求的属性。同时需求的层级之间,不同的需求之间会有关联关系,例如父子关系、追踪关系、依赖关系等,关联关系的维护和梳理同样有助于对需求的认识和理解。
7 q7 K: G* F  ^. v' g2 h在系统需求领域我们有例如故事板、草图、UI 设定、界面流程等多种方式对需求进行深入分析,同时通过这些手段与用户进行交流。诸如故事板、草图、UI 设定等图形化的方式更有助于双方对需求点达成一致,更加直观,能够有效的规避语言文字在理解上的二义性。# n. t; r3 c) T3 d5 c4 f3 W2 S1 V. Z
需求管理
5 v7 f  R: L! n3 u/ B7 x# M需求管理阶段关注"建立并维护在软件工程中同客户达成的契约"(SEI),负责对需求进行组织和记录,并在发生变化时对它们进行评审与追踪,维护和追踪状态,对需求进行版本管理。
) K8 y, Z- w/ c: `- K9 e$ V. W- t如果说需求定义阶段是关注于哪些是"正确的事情",则需求管理阶段关注在如何"正确的做事情"。
) C& ~* d8 d3 E. n& A' @" o* q需求管理模型1 X/ V7 H5 ^7 u. f
如前面所述,需求是分不同层次和类型的,像下面的"需求金字塔"所示,不同层次的需求和同一层次的需求之间都可以建立追踪关系:
5 q3 f- O! ?4 n3 o; p( n
+ a5 h1 j: g1 C/ Q图 3. 需求管理模型
& p* ?$ t3 c( `# B7 d
4 ~; b( w! [/ v. P$ e为了建立一个真正满足客户需求的系统,项目团队首先必须确定系统要解决的问题。然后,团队必须确定涉众,从中获得业务和用户需要,对其进行描述,并区分它们的优先级。从这一组高层期望或需求出发,对产品或系统特性集达成一致意见。而后,由产品特性来抽取软件需求,在 IBM Rational 的需求管理模型中,软件需求是以用例模型的方式来描述。从测试的角度来看,测试项一定来自于软件需求,即软件需求中确定了哪些需求项,测试就要根据这些需求项来制定和实现。$ g8 I; O/ N$ k" t& U
结构化与条目化
* H* e& ^* j9 a# k; T2 }从上面可以看到,多角度、多层面、多阶段的描述需求对用户和开发人员都极为重要,这也正是需求的结构化管理的必要性。同时,在不同层面的需求进行拆分映射时,需求的粒度是衡量需求质量的重要标准,这是需求的条目化的范畴。在结构化和条目化的基础上,建立起需求之间的关联,建立起需求与设计、开发以及测试之间的关联,包括活动及产物,是进行需求管理活动,例如覆盖率分析、影响分析、来源分析、需求变更管理等不可或缺的基础。4 F. q- T- \8 A: }
有了上面对需求工程的基本概念以及活动的概述作为基础,我们下面来看看这些概念是如何映射到 RRC 中相关的能力,同时可以了解如何在 RRC 中进行完整的软件需求管理活动。
) Z3 @. [: v% [0 Z2 ^
2 Q( R1 f# H  n: }  h

) Z: `' H; @( T需求的集中管理+ T3 U- t  \# Q0 ]- i- i
集中管控所有产品 / 项目的需求一方面是产品经理 / 项目经理的职能所在,另一方面也是需求工程的提出的最基本的要求:在客户和项目团队,以及在项目团队内部对项目交付建立统一的认识。RRC 是一个基于数据库的工具,通过直观、文档风格的用户界面为并发用户提供统一的、可定制的视图,来显示最新的需求信息以及其它由需求分析演化而来的项目信息。在数据库中,客户可以同时存储、访问和管理多个项目的需求信息及其衍生的项目其他文档。
* a6 H( z1 H3 K7 h/ M同时,集中管控能够有效保证需求的安全。高级用户可以被允许访问多个项目的数据,而特定用户可以被限制仅仅能够访问某个项目,或者项目中的某些文档,或者是文档中的某些需求条目。完善的访问控制是 RRC 能得到广泛应用的重要前提。
+ U! V* g" U6 m0 V' ]" f& e% {
0 m$ P# x0 N- `1 c2 @9 ^- I图 4. RRC 提供集中的需求管理
8 y, l2 m' v  C$ l9 P0 X6 N, z+ W
跨部门、管理多项目的需求信息
6 {+ W4 m0 M' C9 N% P4 b# R0 G% S随着企业规模的增长,跨部门、管理多产品 / 项目线的需求信息的要求也日益增长。RRC 可以按照项目或产品线来组织整个需求管理库,但信息的流动和操作并不局限在一个项目或产品线内部。这是为企业级需求管理工具的重要特性:用户可以同时参与和管理多个项目,允许在多个项目需求条目之间建立关联。通过这些关联,用户可以记录和洞察项目或产品之间的相互依赖和作用,这些关联关系将在企业级解决方案层次的需求管理上具有重要作用。RRC 中对需求的管理更多偏重在内容管理,因此虽然 RRC 中需求库冠以项目区域的概念,但实际上我们可以根据不同需要,灵活的以系统或项目为单位组织相关需求,甚至可以在一个项目区域中管理整个企业层面所有需求。  \5 U8 c' L% V. D) {0 H, T


7 @* R% b3 {+ N7 s: i& Y, o+ V& V$ l
多方位的需求定义与捕获能力+ a, v) _: [* G+ q
实现有效的需求工程,第一步就要解决需求的定义问题。项目的干系人众多:客户、业务部门、开发人员、维护人员等等,造成了需求的来源众多,而且渠道多样:开会收集的、市场调研的、电话沟通的、电子邮件交流的等等。但由于缺乏必要的系统平台,于是各种各样的需求就四散在各处,难免造成需求的遗漏,更无从进行有效的管理。RRC 提供了术语及词汇表维护、业务流程建模、用户界面草图、场景描述、故事板和富文本格式的需求规格,有效解决了需求的定义和确认过程中的各种问题。
' d! N$ E" p% N6 z. @: o7 N作为需求分析人员,首先需要和客户沟通,尽量全面的收集需求,并把它们记录到工具中。在 RRC 中,需求分析人员可以通过如下 6 种方式捕获需求。; I& X# M6 ~& G2 ?# Y- _
  R! M/ l7 C0 B7 M3 j: _
图 5. 多方位的需求定义和捕获能力5 c6 f& {- q9 N$ K& v% M7 n' t
0 W, b$ w! N  t  N, c
原始需求导入/ U* r0 }1 ~- v/ f+ q& ^
将各类原始需求(年度需求计划、突发需求等)引入的需求管理系统中,作为整个需求管理流程的入口。RRC 作为需求分析和追踪工具,具备丰富的数据导入和导出以及报告、打印功能,包括 Word、RTF、CSV、文本等格式,并且支持标准化的方式确定需求项,支持文本、图形、表格、OLE 对象等各种数据形式,从而保证现有数据的完整性。6 a$ b$ m, U- Z  k8 w( w2 o
在新的 RRC 4.0.1 版本中,新增加了模块的功能,可以方便的将文档形式的需求直接导入形成富文本形式的工件,同时根据导入时设置的规则,工具可以自动的对文档进行条目化拆分。这样,即保留了原文档的完整展现方式,又可以通过条目化的形式便于后续的需求分拆与合并。模块方式类似 Word+Excel 风格,存放的内容都是以条目化的方式存在,可以建立与其他需求、开发任务、测试任务、需求变更等的关联。支持打基线、可以直接与开发测试计划进行关联。0 }& ~- T( K: N$ g; [6 W

  r  E) T" q  \3 i: b/ U* _' w+ J图 6. 模块视图7 N* o  `9 f# C; \
5 a- u( y  f7 G$ D; G/ R
导入后的原始需求,可以经需求分析之后,建立起原始需求和系统需求的关联关系,从而确保各种需求得到分析和实现。% J% S8 O% \$ R7 U& ~
需求的拆分与合并是需求分析过程必不可少的环节,操作的便利性以及合理性直接决定了需求存储结构的良莠。IBM 平台支持对需求内容的管理,包括内容的编辑、修改和维护,以及内容之间的关联,例如链接、内嵌、术语引用等。8 w: ]& J  X+ @. ^7 N
- Z' R7 }, D( i% u9 j) K8 f" n
图 7. 需求拆分与合并- T( N' k( W6 G" y+ l5 K
# T  p! k7 B3 W5 g
如上的内容编辑界面,可以选择插入图片或独立的工件,如果将多个子需求插入,则实现了需求的合并,将合并后的需求作为条目进行后续的追逐。. B% Q. \- ~; v' w
也可以由大的父条目进行拆分,拆分生成多个子条目,子条目与父条目可以是链接关系,子条目也可以直接嵌入到父条目,这样保证阅读父条目时,子条目的内容会直接显示出来,同时子条目的变化也能同步到父条目。) {( B& d3 B1 J) N1 k
RRC 还可以设置需求标准模板,对进入系统的需求进行规范化,并可通过追踪视图,可便捷地对需求的满足性进行分析,从而确保需求的规范管理。
; c+ l. V3 X+ n定义和维护术语表
- B. y. B% m- ?6 ^& Z+ iRRC 提供了术语和词汇表的定义、同义词关联、缩略语对等以及状态等级等功能,同时通过方便的超链接功能使词汇表的履历与项目需求的定义保持动态的一致。并且可以通过标签(Tag)功能对术语和词汇表进行维护和查询。0 ?5 ^* o( A; {
通过业务建模了解业务需求& K) |; b: n, ]: O& {( z) R- O+ p
RRC 提供基于 Business Process Modeling Notation (BPMN) 2.0 的子集符号协助客户业务人员和开发人员创建和优化业务流程。( L$ Q$ T- Q7 h; N6 K) v

2 i' z' k2 Q5 g, i图 8. 业务流程图5 E. s* \: \, J% N

* o. v. Y  l5 S  R( F9 ^9 V5 p8 R用例建模,描述软件的功能需求
* K, u$ C# d4 \- l9 HRRC 以基于用例 (Use Cases) 的需求组织方式和及其灵活的超链功能,将最初的基于富文本 (Rich Text) 的需求描述按照客户的业务流程逐步细化,并结合以原型、词汇术语的有机组合,最终以立体的方式展现客户的软件需求规格。
+ f4 T/ _! m4 ^  p2 \3 g8 p7 R$ }
图 9. 用例建模; y" B6 i$ S0 j
9 ^3 c$ w5 K- s; T+ V7 c; E* N
图形化原型,便于沟通* A# y9 \! {( ?' l7 C  `
RRC 提供了故事板、草图、UI 设定、界面流程等多种图形化的手段,为开发客户原型提供了便捷,同时可以将用户与开发团队拉到同一条水平线上,便于使用户对需求设计原型有一个直观的概念,及时调整误差。1 ]1 f. A1 z  p; d: j8 Y
& l' }' z8 Y; I* |
图 10. 故事板与界面流程
( u/ [* O" I& J/ l8 A( H& t! D; ~. {  _1 A5 L) X
需求管理和需求追踪能力6 z- S/ A& k* D* L5 }
- J, a+ [+ y; n" O% Q
计划层面的追踪
# |0 [. g& C' q, @当需求收集、分析完毕后,在 RRC 中存储和展现的,便是经过结构化和条目化梳理的内容。此时我们需要由 RRC 中保存的需求,与开发团队、测试团队沟通,生成相应的开发计划以及测试计划,或者与现存的相关计划建立关联。在 RRC 中,我们使用需求集合(Requirements Collections)对需求进行归类,它是指将某些具有共同意义的需求,比如产品第一个版本包含的所有需求。需求集合需要与开发计划、测试计划保持一致,也就是我们所说的高层计划保持一致。
6 `, r  D5 E$ H; Y% w, y8 K在 IBM Rational 的协作化的生命周期管理(CLM)中,开发管理主要在 RTC 中进行,质量管理是在 RQM 中进行,这两部分并非本文的关注内容,因此不在此详述。感兴趣的朋友可以参阅 Developer Works 上相关文档。
  S3 m: [6 S2 c5 w* G& w. b7 k; u& L! p$ @
图 11. 需求集合与开发计划、测试计划的关联视图
# h7 S- h7 o3 t; D6 L2 T
* L, e) S% \: g当需求集合、开发计划和测试计划都生成好后,就可以建立关联。如下图所示,点击图标,我们可以看到多种链接关系,可以选择关联到哪一个开发计划或者测试计划上。" `. i7 z) z  o! j
9 x& ~* ?7 u& Z( N
图 12. 需求集合与开发计划、测试计划的关联操作7 b0 S2 Q* G% l& t- o# I

& E$ e2 q( U6 R( P: K" {& y2 ]0 N+ O" F( b% K0 R
图 13. CLM 提供生命周期的追踪
: `' g6 D. q( M3 F8 A( v/ G5 `$ T  i! @9 `7 H
执行层面的追踪' i5 @- F  p! E+ z5 I. v
在确认了某一个需求集合已经和开发计划、测试计划关联上之后,需求人员接下来要做的,是要确保需求集合中的每一条需求,都有开发人员在开发,都有测试人员在测试。展示了需求到开发任务、测试活动的追踪关系,每条需求由哪个开发任务实现,由哪个测试活动测试一目了然。如果没有协作平台展现这种关联,我们极有可能遗漏重要需求。如下图所示,点击打开相应的开发计划,选择"链接"选项卡,发现"2012-10 需求排期"在实现需求集合列表下。点击下拉箭头打开需求列表,发现新增的两条系统需求显示"不由任何计划项实现",表示目前没有任务对相应需求进行实现。鼠标放置在相应系统需求左侧的按钮图标上,显示"根据需求创建工作项",点击。
) |$ j" @( F' R6 k1 D' m# z2 n0 k( [3 T: n5 c% U0 h1 s" X- B
图 14. 需求执行层面的追踪
/ H% ~( l* {. b
% m& X" G; s# w5 {$ b: k一旦所有的需求都和开发任务、测试活动关联后,需求人员就已经做到了需求的任务覆盖率和测试覆盖率均为 100%。
( W; X2 U) l, _* L. G3 ~同时在 RRC 中打开任意需求工件,查看链接信息,点击"链接浏览器",将打开以当前工件为根的树状跟踪,通过跟踪树,可以进行例如当前需求的影响度分析、生命周期追踪关系、依赖 / 关联关系分析等,为需求管理提供良好支持。' `' o2 S8 }# k0 y* |' ?' }+ Y' w

3 [2 x  g4 {( ^8 s图 15. 需求跟踪树6 [, N2 u. {% G9 U9 }5 O. |
5 _9 _) m8 y9 W9 C, g6 G) K

9 g5 Y& l) Q# b7 w% o) X  y8 f
. K* o9 v* s- h5 z$ h3 A6 o! i
有效地组织管理需求
4 u, `# U6 J$ k! N0 v% @需求分解0 U3 \5 H/ A$ y, k3 p7 H& t+ r; X" B
需求分解包含 2 个层面的含义:
0 C5 ]1 t0 U$ \2 y. A- T4 G
  • 一个用户需求可能是基于多个系统的同时更新来实现的,因此要将用户需求分解成对不同系统的需求;
  • 对同一个系统,一个用户需求也可能是基于多个系统需求来实现的。因此也存在需求分解工作。8 _8 g5 ]9 I+ J0 N) b+ ?9 |  Q
需求分解,不仅要将一个用户需求对应到一个或多个系统需求,而且还要实现用户需求到系统需求的转换。这是两种不同的语言:用户需求是面向业务人员,面向客户的;而系统需求是面向技术人员,基于应用系统的语言。在需求分解过程中,要实现此 2 种语言的转换。最终将来自于市场的业务描述,转换为设计开发人员能理解的要求,分解成可执行的任务。
% t2 A4 N" A; @$ W- [借助于 RRC 能够将:( B( L2 X6 a3 ]
  • 需求条目化:单一需求描述单一功能,消除歧义;
  • 需求分级分解:单一用户需求分解成清晰,可执行的系统需求。
    ; Y2 S' L0 `- o  o

/ Z/ K! p+ t* G0 w' I图 16. 需求树状关系
4 d( {( P3 Y* `# x7 c' f8 V0 Y1 R1 ^* z7 B% M8 G
建立需求项的跟踪关系- n6 U5 z$ X5 K/ f) G
RRC 中将映射关系直接显示在文档中使得对映射关系的追踪不必脱离文档而能够直接即时操作完成。/ A0 i' u9 }1 c
  • 通过 RRC 可以建立各个分解需求项之间的关系,快速而简洁的操作建立它们之间的映射(关联)关系。从而在修改和变化某一个需求时,可以迅速定位该需求会关联的到哪些需求项,不会有需求变更的漏查和漏执行;
  • RRC 能够有若干种不同的方式分析和观看映射关系,其中最有效的方式是在一个视图上显示所有从用户需求到系统需求(或测试活动)的映射关系(通过一个表单的显示方式),从而找出系统需求满足用户需求(或测试活动)的覆盖关系(即每一用户需求项都映射到至少一个系统需求项)和覆盖率,或从系统需求项(或测试活动)到用户需求的覆盖关系(即每一个系统需求都是用来满足至少一个用户需求的),如下图所示:
    % ]& c; Z/ t$ X2 Z
3 i  N# C5 X# y! M2 ]+ b
图 17. 需求追踪关系1 ^8 T8 w) |  W& U

. F3 g' L% ^2 @3 O6 \1 s& Z基于需求的注释和讨论
2 n) T, b5 n- L1 l5 WIBM 平台对需求内容的管理还体现在,需求分析等相关人员可以直接针对需求内容添加注释以及发起讨论,相关信息将直接与需求内容保持关联,保证其他人员在阅读时可以了解需求背后的过程,提供更完整的需求信息。同时,界面的展现方式又便于阅读,注释和讨论信息不会干扰阅读的过程。0 P% P" |( T! P8 T" }* o8 ?
' R! p/ d* E7 [* B+ B  F$ T' s5 O. \+ ]
图 18. 需求讨论
. ~+ C' v' }: F, v5 _, V% I. H- C; M" w, L( G0 {) k
需求文档的权限管理
. Q1 W# t& ^7 M4 C/ |1 y此外,在管理需求文档资料时,RRC 中设定了严格的文档访问权限,该权限能够控制只有被授权的用户才能对其进行修改和更新。RRC 的访问权限能够应用在需求库的各层结构。
+ g9 M0 I# I# m& s$ C需求锁- `0 a) ?( J9 C& U  A8 o
当需求分析人员对需求进行编辑时,系统会自动加锁防止内容冲突,也可以主动加锁以防止其他人对需求进行修改。加锁者可以主动释放需求锁定,管理员(可配置权限)可以强制解锁。1 s% A8 t4 T+ @  Q2 Y

: {% l, I2 \# B* G, }  D图 19. 需求加锁
: U% H6 C# x! W6 `
; u8 m6 J* \+ z- f$ V
; c; i8 }0 @" c* n" b' w- Z' r

# V. H- ^# ?; }* X  h* f需求的评审2 `) S/ f# M) r6 e7 B! e
需求的确认以及需求变更需要走评审流程,根据类型由不同角色人员参与评审,例如业务部门、产品经理、开发经理、测试主管等。
2 i9 S8 p3 Q& U- X! o评审可以走正式的评审流程,组织评审会议,可以将评审会议的决议作为附件形式添加变更申请,也可以作为会议纪要保存,同样可以建立评审申请与会议纪要的链接,以便于追踪评审决议过程。: J5 ~, g) _/ n8 G* L% k, U
评审也可以简单的基于工具提供的评审流程进行,添加适当人员作为评审人员,评审人员将收到邮件通知(需配置邮件服务器)并且在登录系统时有信息提示待评审条目。只有全部评审人员都评审通过后才能交由开发部门进行实施,评审的过程都有详细历史记录。
$ [& r; A4 [0 ^! l/ [" s
8 j' y/ }- w8 ~/ Q( {, }8 V  B: V: o图 20. 需求评审3 C1 q) |6 e) `# F9 w

/ C" }+ T# Q. ?5 b: M相关评审人员有义务评估需求内容、变更内容、优先级等条目的合理性,并给出评审建议,所有评审的过程或会议纪要均保持有历史记录,便于问题追溯。可以基于评审发起讨论,提交注释和建议,查看相关评审状态,以及查看一次评审中多条内容各自状态,如下图所示。
/ m4 I" b- e' m0 D& I# c6 {' i5 V, O' a. V
图 21. 需求评审状态信息
9 J7 G& c7 `% c+ _9 f- @( v5 H
' T5 s6 R' J6 U' T: W* m* i; Z2 ?需求的变更是不可避免的,为了能够更好的理解需求,我们需要知道每个需求的变更过程(何时,变成什么,被谁改变)。RRC 能够帮助用户自动完成需求变更的记录,对于每条需求都记录了它变化的历史。
2 F  u; D4 E5 H  f有些项目的时间很长,如何评价和估量某个变更对整个系统及其若干子系统的影响,是非常关键的。如果给定需求发生变化,它将带来哪些影响,这个影响可能改变设计 , 也可能会影响对应的测试活动。
6 E. _; q8 z% G) J' B在做出决定是否接收该需求的变更之前,RRC 将通过如前面所示的需求跟踪视图等报告或报表来帮助相关责任人分析需求的关联关系和影响程度,以此来评估需求变化给整个系统及其若干子系统带来的影响和影响的程度。0 i- M* t$ }, R" ?2 S3 U
引入 RRC 的突出优势就是帮助项目面对各种变更。变更理由可能是客户、设计或者业务的变化,也可能是具体需求或者规格的变化。RRC 的引入将极大帮助项目资产的管理。RRC 中可以记录此间由需求而产生的功能需求、测试变化等等,更重要的是记录怎样把高层用户需求转换为下层的需求信息及其项目中的其他由需求驱动而来的产出物。这样,项目各方都能了解各个信息之间的关系。只有有力地保障贯穿整个项目的信息跟踪性,清楚了解需求及其产出物的关系,我们才能全面把握项目活动的成果,轻松应对各种可能的变更,准确地进行变更的影响分析。2 Q- T& X4 e' A# I. I

- r  S+ ?2 H; o% [9 d5 m, E

& k6 G! [. N! j7 b9 \6 _: z需求版本与基线管理+ _5 _. R$ i/ w# P0 N) T
需求文档评审的结束,标示着项目管理的一个里程碑,该控制的主要活动包括:: G( U+ E$ h* p0 ]* X: t
  • 需求文档入库管理
  • 建立里程碑基线& @7 y( C) O; r1 V: ^" D
RRC 的版本管理功能可以帮助将文档入库管理,并可建立基线。RRC 的基线提供审核功能,通过电子签名来确保基线的有效审核。RRC 的基线功能提供两个纬度的管理:模块基线和项目快照,可确保项目成果的一致性。RRC 中的需求基线与快照的组合能够建立起整个项目的多层次的需求结构。; v  |+ b( z5 i* M+ ~6 U

: V7 f/ B& _) A0 H图 22. 两条需求集合基线之间的差异( V% ^6 j0 Y6 J" i+ a3 `
1 a1 }: E$ u  }! u; K' V! _7 t
同时,每一条需求工件,无论是需求条目、文件还是集合、模块,都会保存完整的历史修改记录,便于查证。可以按日期查看所有修改记录,可以查看具体修改内容,鼠标悬停可以查看内容预览。点击某一条记录,可以在界面右上角选择恢复记录,实现记录的回滚。
9 f. P, W6 K/ V: r/ l
1 r, Z8 I; M: Q8 z1 b图 23. 需求修改历史记录
+ ~+ Y3 a  X* e& U: o  j# v5 a1 I7 j# k/ n3 K8 y

5 f2 f; D2 v4 L; E7 J. Y
! n( J2 X% M& E
需求模板与属性配置
5 f5 U5 ~6 S' k8 `2 h+ P$ z, [IBM 的需求管理平台内置了业界通用的需求模板,可以有效的指导企业进行需求管理活动,点击 RRC 界面右上方齿轮形状图标,选择管理项目属性,在模板选项卡中可以查看项目模板、工件模板,涵盖了传统需求模板、敏捷开发需求模板等。用户可以新建、上载模板,也可以从现有项目导入模板,便于实现需求管理的持续提升和传承。+ O0 h7 |# D8 B8 B; S

. V, b  u* w' D5 D, \) h9 s图 24. 需求项目模板6 G  ]4 a, ?8 s

+ ?' y5 y" _( J3 h4 |
" d, i8 n5 Y! F3 u0 a( `5 y图 25. 需求工件模板$ L7 O4 N( q; d" l* A  D( S
9 t( J5 q% o3 F' y
选择工件类型、工件属性、属性数据类型等选项卡,可以查看和编辑工件类型、工件包含的属性以及属性的数据类型等信息,界面友好,操作灵活。便于根据企业需要定制适合自身的需求管理模型。
" l& g, B5 Y" F4 c7 F; R& h2 @9 Y/ D0 F: ~1 x
图 26. 需求工件类型定制5 D8 q4 t0 T" J2 o5 L  q: {
( u$ ], u% c8 q6 }7 N3 w) b

1 k4 y2 V* U( ^' X. x0 o图 27. 需求工件属性及数据类型定制
+ ]- T* _7 O0 M0 O3 O3 i' t  y: P) A0 B( ^/ O3 z


% l* N2 x# Q( j) X3 i# _# g7 `% Y4 i. Z! T+ X, F
总结) n6 K' B6 U' g
需求的能力,直接关系到后续活动直至最终产出物的质量。在笔者看来,需求工程活动,如果不是第一重要的研发过程活动,也应该是第二件需要重视和提升的能力。Rational Requirements Composer 提供了企业级的需求工程平台,在国际和国内众多客户得到越来越多的应用,希望读者通过本文能够对其有简单的了解,并开启需求工程乃至整个软件工程的奇幻之旅。
' q( v$ A' a1 p' M  k7 n8 S) W9 O* [0 A2 q4 V

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
 楼主| 发表于 2013-1-4 09:27:03 | 显示全部楼层
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|无图版|SCMLife.com ( 京ICP备06056490号-1 )

GMT+8, 2018-4-21 14:36 , Processed in 0.084853 second(s), 9 queries , Gzip On, MemCache On.

Powered by SCMLife X3.4 Licensed

© 2001-2017 JoyShare.

快速回复 返回顶部 返回列表