2009年6月17日星期三

功能驱动与用例驱动(关于用例、用户故事和特征的解释)

软件开发过程中,描述并分析需求会同时采用不同的角度和方式。例如功能分析和场景分析。

其中功能分析是指描述系统所应该具有的功能。场景分析是指在特定场景中用户的操作步骤以及系统给出的相应的反应。

功能分析文档所列出的清单一般会叫做“软件需求”或者“系统特征”。

场景分析文档所列出的内容一般就是“用例文档”

由此可见,RUP中所使用的用例驱动开发,XP中所使用的用户故事驱动开发以及特征驱动开发,表面上看起来是以其分割粒度的不同进行排列下来的。其实我们可以看出,用户故事和特征都是从功能分析的角度对系统的需求进行的描述。其与RUP所说的用例驱动完全使用了不同的分析方法。

这样我们就可以更好的理解XX驱动开发之间的区别在那里。

下面是功能驱动与用例驱动之间的对比表格:

功能驱动

用例驱动

  1. 当你有许多未密切相关的不同功能时,工作会进行得比较好。
  2. 让你可以较快想客户展示可运作的程序代码
  3. 是非常功能性驱动的。采用此方式,你不会忘记任何功能。
  4. 对具有许多未连接功能性片段的系统,进行的特别好。
  1. 当你的应用程序有许多流程与场景,而不是个别的功能性片段时,进行得比较好。
  2. 让你在每个开发阶段可以向客户展示较大的功能性片段。
  3. 是非常以用户为中心的。采用此方式,你将为用户使用此系统的所有方式编写程序代码。
  4. 对交易式系统(系统以冗长、复杂的流程定义而成),进行的特别好。

在实际需求分析的过程中,两种分析方式相辅相成,都有其独到的贡献,最好能够结合使用。

我理解,互联网类型的项目更适合功能驱动开发,而企业业务系统类型的项目更适合用例驱动的开发。

没有评论: