luqingfei@C++

为中华之崛起而崛起!
兼听则明,偏听则暗。

PIM-1:分析系统流程,生成系统用例叙述

 在CIM阶段后,系统分析员已初步生成了系统用例,让相关的决策人员从中挑选出首期开发的系统用例,这也就是首期的系统范围。

 
随后,项目正式进入PIM阶段,也是正式进入分析阶段,系统分析员将针对首期的系统用例详述细节规格,作为正式需求文件的一部分,也作为业务人员与开发人员之间的沟通文件。

 

PIM-1~PIM-4的UML产生结果,将作为需求文件中的一部分,而其余非UML产生的结果,系统分析员视项目规定或以往经验自行产生。

 

在PIM阶段中,系统分析员负责生成PIM-1~PIM-4,至于其余的PIM或PSM,则由其他开发人员负责生成。

 

PIM-1~PIM-4的产生结果如下:

PIM-1:分析系统流程(系统用例叙述)

PIM-2:分析业务规则(状态图)

PIM-3:定义静态结构(类图)

PIM-4:定义操作及方法(序列图)

 

在进入PIM阶段之后,系统分析员将所有系统用例依相关性分成若干组,以组别方式生成该组系统用例涉及的PIM-1~PIM-4产生的结果,随后交给后续的开发人员进行设计,编码及测试。然后逐步生成一组一组的PIM-1~PIM-4产生结果,跟CIM的生成方式不同。

 

 

系统分析员逐步生成PIM的可能情况:

第一阶段,进行CIM-1,生成业务用例

第二阶段,进行CIM-2,生成活动图

第三阶段,进行CIM-3,生成系统用例

第四阶段,决策人员从CIM-3挑选出一些系统用例,作为首期系统范围。接着,系统分析员将挑选出来的系统用例,以其领域知识的相关性分组。

第五阶段,生成第一组系统用例相关的PIM-1~PIM-4分析文件,并交由后续的开发人员进行设计、编码及测试。

第六阶段:依次生成其它组的系统用例相关的PIM-1~PIM-4分析文件,并交由后续的开发人员进行设计、编码及测试。

 

 

PIM-1:系统用例叙述

针对每一个系统用例,系统分析员分析其内部细节,并编写成系统用例叙述(UC Description)。

一份用例叙述格式里头包含多项字段,系统分析员可以从中挑选适用的字段组成自己的用例叙述格式。

 

1、 用例基本数据

     ●用例名称

     ●用例编号

     ●用例简述

     ●用例图

     ●系统

     ●执行者

     ●相关用例

2、 执行流程

     ●主要流程(Basic Flow)

     ● 替代流程(Alternate Flows)

     ● 例外流程(Exception Flows)

3、 条件及规则

     ●启动事件或条件(Triggers)

     ●前置条件(Preconditions)

     ●后置条件(Post conditions on Success)

     ●失败时状态(Status on Failure)

     ●业务规则(Business Rule)

4、 相关文档

     ● 用例叙述的历史版本

     ●UML图

     ●参考画面

     ●其他非UML文档

5、 其他事项

     ●优先性(Priority)

     ●迭代等级(Iteration)

     ●待解决问题(Issues)

     ● 基本假设(Assumptions)

     ●相关人员

     ●特殊需求(Special Requirements)

 

 

相关用例:常见的相关性有两方面,其一是执行用例前必须先行执行过某相关用例,其二是执行用例期间可能驱动其他的包含用例(Inclusion Use Case),或是因条件符合驱动其他的扩展用例(Extension Use Case)。

 

就系统内部而言,各用例在其幕后都是共享同一群对象。也就是说,UC之间自然就具有“共享对象”之关系。但是,由于用例图只呈现系统外观,所以在用例图里看不到这种关系。在外观方面,UC之间有两种关系,分别是“包含”(Include)和“扩展”(Extend)关系。

 

两个用例之间可以有“包含”关系,用以表示某一个用例的对话流程中,包含着另一个用例的对话流程。一旦出现数个用例都有部分相同的对话流程时,将相同的流程记录在另一个用户中;前者称为“基用例”(Base UC),后者称为“包含用例”(Inclusion UC)。

 

如此一来,这些基用例就可以共享包含用例了。

简言之,包含关系是来自于抽象(Abstraction),即从数个不同的用例之中,抽离出共同的部分,而成为可以重用的用例。

 

两个用例之间还可以有“扩展”关系,用以表示某一个用例的对话流程,可能会依条件临时插入另一个用例的对话流程中。前者称为“扩展用例”(Extension UC),后者称为“基用例”(Base UC)。

 

简言之,扩展关系来自于用例内执行活动的过程分为主要过程(Main Course)及可选择性过程(Alternative Course)。

 

 

执行流程

主要流程:这是用例叙述最核心的部分,其记载了整个用例正常的执行过程。

替代流程:一个用例叙述里面,通常会包含一段主要流程,同时可以包含数段替代流程。

例外流程:用例执行失败的情况。

 

用例成功执行的过程中,正常流程就是主要流程,期间出现的小插曲就是替代流程。但是,例外流程处理的是,用例执行失败的情况。

 

 

条件及规则

启动事件或条件:记录启动用例的重要事件或条件。

前置条件:这是执行用例之前的检验,唯有在满足某些重要条件时,才会执行该用例,以确保用例可以正确执行。

后置条件:相对于前置条件,后置条件代表用例执行完毕时,可以通过后置条件自行检验是否执行成功。

失败时状态:记录用例执行失败时的状态。

业务规则:重要的业务规则或计算公式都要记录下来。

 

业务人员在执行业务流程时,会使用到许多重要的业务规则或计算公式,这些也都是系统必须遵守的条件及规则,所以必须记录下来。

 

 

相关文档

由于用例驱动(Use Case Driven)是当今软件开发的基础模型,所以用例叙述常作为系统开发文件的汇集点,同它链接到相关的文档。

 

用例叙述的历史版本:用例改版时,用例叙述也跟着同步改版。用例叙述是参与人员的智慧成果,也是业务组织的重要资产。所以如果有需要保留用例叙述的历史版本时,可以在现行版本里多加一个字段,以链接旧有的历史版本及改版说明。

 

UML图:跟该用例相关的业务用例图、活动图、系统用例图、状态图、类图或序列图,等等。

参考画面:有时候附上画面设计的图片,让阅读者可以对该用例有更具体的想象。

其他非UML文档:例如会议记录、表设计等。

 

 

其他事项

优先性:替用例标示其重要度或优先性,可以协助订定开发用例的顺序,越重要的越优先开发。

迭代等级:替用例标示其细致度或迭代等级,方便开发人员经过多次迭代的过程逐步定义出用例的细节。

待解决问题:在用例分析与开发期间,可能会出现还没有定论的问题,这时候通过用例叙述把问题记录起来,方便指派负责人员以及日后查阅。

基本假设:如果该用例是基于某个基本假设而设计出来的,记下这个重要的基本假设。

相关人员:每一份用例叙述都涉及几种不同身份的相关人员,包括制作者、阅读者和审核者,等等。

特殊需求:跟该用例相关的非功能性需求等特殊需求,都可以记录在这个字段中。

 

 

 

posted on 2009-04-10 15:15 luqingfei 阅读(884) 评论(0)  编辑 收藏 引用 所属分类: 软件工程

导航

<2010年8月>
日一二三四五六
25262728293031
1234567
891011121314
15161718192021
22232425262728
2930311234

统计

留言簿(6)

随笔分类(109)

随笔档案(105)

Blogers

Game

Life

NodeJs

Python

Useful Webs

大牛

搜索

积分与排名

最新评论

阅读排行榜

评论排行榜