luqingfei@C++

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

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

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

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

 

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

 

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

 

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 阅读(788) 评论(0)  编辑 收藏 引用 所属分类: 软件工程


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


导航

<2009年2月>
25262728293031
1234567
891011121314
15161718192021
22232425262728
1234567

统计

留言簿(6)

随笔分类(109)

随笔档案(105)

Blogers

Game

Life

NodeJs

Python

Useful Webs

大牛

搜索

积分与排名

最新评论

阅读排行榜

评论排行榜