Project|Use Case 和User Story

Use Case(用例)和User Story(用户故事)他们之间究竟有什么联系和区别,还是他们本身就是一个物种的两种不同叫法而已,究竟哪个好或是哪个不好,这些问题的讨论见诸于各大网络文章之中,其实本人当初也有所迷惑,经过大量翻阅各种资料对比分析,算是有所斩获,下面就我所了解认识到的东西做一个分析,不对之处欢迎拍砖。

要了解二者异同,首先来看各自的概念:


Use Case(用例) :在不展现一个系统或子系统内部结构的情况下,对系统或子系统的某个连贯的功能单元的定义和描述。
User Story(用户故事):描述对软件(或系统)用户或客户有价值的功能,只是需求描述,而 不是详细的需求规范。.


从定义上其实可以看出来, Use Case是UML中一个重要的概念,他采用actor和系统交互的方式来描述用户需求,使用了一套逻辑上相对完整的事件流来定义,他包括了名称、描述、主要事件流、扩展流、异常流、前置条件和后置条件等等元素,可见他描述需求是相当详细的,在RUP过程中使用得比较多。User Story描述用户需求则是离客户更近一步,他所使用的描述语言类似于“作为XXXX,我希望xxxxxx”这种方式,例如,作为用户,我希望能够查看订单列表,简单的描述用户需要的东西。而没有定义如何交互等事件流方式,这种需求描述形式是比较抽象的,使用User Story在敏捷项目中使用比较多,当然Use Case 也适合敏捷项目。


因此可以看出,这里并不存在两种方法孰好孰坏的差别,而是说在不同的场景中使用合适的需求描述方式,Use Story更适合比较早期的探索需求阶段,因为他表述起来非常的简单,一个 User Story 只需要几句话就可以完成, 另外一个因素就是 用户需求的细节是非常易变的,而其高层描述却是相对稳定的 , 所以我们可以通过使用 User Story 的方法来从高层确定其需求(包括功能性的和非功能性的),这些单独的Use Story相当于系统中可能要实现的一点,而由我们通过与用户交流所得到的所有 User Story 则构成了一个面,它就是整个系统所需要实现的功能,举个例子, “作为用户,我希望能够查看订单列表”,非常简洁,但是阐述清楚了谁需要什么的需求;而Use Case更适合于需求分析阶段,因为该阶段需要比较详细的、更系统的需求分析,而UseCase能够满足这一切,不过,由于这里需求进行了具体化处理,因此用户可能在变换交互方式的时候,那么对于User Story来讲不会变的东西,而对于Use Case来讲可能就会有所有变更。


【Project|Use Case 和User Story】

最后说一句,合适当前场景的选择才是最好的选择,不要拘泥于这其中的死条款不放才能取得最好的效果。







    推荐阅读