欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

基于 UML 的需求分析和系统设计实施用例

最编程 2024-04-01 18:37:42
...

实现用例的目的在于保证系统的设计可以满足用户的功能性需求,在实现用例的过程中,应该利用Jacobson所分类的三种分析类:

  • 控制对象(Control Object)     :控制对象包装了一个或多个用例的功能性需求,属于功能性对象,而且这个功能与用例有相当密切的关系。
  • 实体对象(Entity Object)        :实体对象管理了信息及其衍生资源的存取,是属于系统本质面的概念性对象,这类对象并不会随着用例的增多而有所变动。
  • 边界对象(Boundary Object)  :边界对象是属于与外部桥接的对象,这类对象将与外部直接接轨,直接受到外部的限制。(注意:这里的“对象”并非指类的实例那种对象)

 

1)勾勒用例的控制对象

①  针对每个用例提供一个“控制对象”
②  明确这个控制对象的责任(Responsibility)是什么
      从“主执行者”在正常流的叙述中出现的次数来决定系统要提供几个服务;
      再从每一个“对话块”中,“系统”当主语的最后一句话,找出这个责任的名称。
③  明确这个服务的输入输出
      判断这个服务中,是否需要“主执行者”提供什么信息,而“系统”又需要回复主执行者什么信息
④  进入到服务内部,审视服务的实现方式
      在控制对象的内部,每一个以“系统”当主语的叙述都可以独立成一个新的功能函数;
      只是该功能函数并非是提供给主执行者的,因此是一个“私有”的函数,只提供给控制对象使用。

 

勾勒用例的控制对象示例过程

针对前面用例图中的第一个用例“产生请购需求(RFP)”,我们可以提供一个“产生请购需求(RFP)控制对象”。

 

“产生请购需求(RFP)”的“正常流”叙述:

(1) ERP系统提供[年度物料采购计划]给系统。
(2) 系统根据[BR1]产生[厂商询价推荐名单]。
(3) 系统依照[厂商询价推荐名单]请通知系统将[物料请购需求]传给名单上的厂商。

 

分析过程如下:

从(1)得知“主执行者”是:ERP系统;

“主执行者”总共出现了1次,也就是所只有一个“对话块”,所以系统要提供1个服务;

“对话块”中“系统”当主语的最后一句(3),可得知系统所需提供的服务是:产生厂商询价推荐名单;

从(1)可知服务的输入是:年度物料采购计划;

从(3)可知服务的输出是:厂商询价推荐名单;

从(2)可知服务内部必须完成的第一件事:根据[BR1]产生[厂商询价推荐名单];

从(3)可知服务内部必须完成的第二件事:依照[厂商询价推荐名单]请通知系统将[物料请购需求]传给名单上的厂商;

所以从上面两步可知控制对象内部需要两个“私有函数”。

 

★ 控制对象的类图示例http://yunzhu.iteye.com


2)针对控制对象绘制序列图

前面探讨了如何找出信息系统中所需的控制对象,但这样仍然不够,因为前面并没有完整描述出究竟对象与对象之间是如何通力协作,来满足用例所描述的用户需求。因此,必须要使用序列图来说明这个交互过程。

 

在绘制序列图时,可以采用两阶段序列图绘制法:

① 把信息系统当黑箱,利用用例叙述找出系统所应负责的服务。

     这个步骤可以先绘制一个序列图,然后把用例叙述放在该序列图的右方(这样便于对比),然后参照用例图,把相对应的用例转换为一个叫做“系统”的对象。

② 把黑箱打开,加入找出的分析对象,并把系统所需实现的责任分配给适当的对象。

     把上个步骤得到的“黑箱”序列图中的“系统”换成实际的控制对象,并且依据找出的控制对象的责任,看看是否一致,这样就完成了序列图的设计了。

 

★ 控制对象的“黑箱”序列图示例

针对上面的产生请购需求的控制对象,根据步骤①,把信息系统当作一个“黑箱”,便可得到以下序列图:http://yunzhu.iteye.com


3)找出用例的实体对象

可 以通过Peter Coad的“交易模式”找出用例的实体对象,这个模式的假设是:当发现企业所关心的问题领域存在必须要记录的某些事件时,这代表着这个事件是一个交易。而 系统设计人员可以从交易出发,依次去找出与这些交易相关的企业概念(人、地、物),如此就可以迅速地得出这个企业的概念模型。

总之,实体对象主要是根据对于问题领域的理解来找出问题领域中的重要概念,对于实体对象的分析,无论是对于进行“实体关系图的”的数据库设计,或是利用“对象模型”做的“结构分析”来说,都是相当重要的设计准则。

实体对象属于领域模型的重要概念,将在下一节“建立领域模型”中重点讲解。

 

4)系统设计阶段的开发流程

①  通过对用例的理解以及对用例叙述的分析,找出系统的控制对象及其操作。

②  通过与领域专家的访谈过程,找出系统的实体对象以及重要熟悉。

③  设计人员利用两阶段绘制的序列图,验证前述的控制对象及操作的正确性。

 

前面通过三种分析类实现用例的方式,会从用例出发分别找出控制对象、实体对象和边界对象,在找出这些“对象”(这里的对象并非指类的实现,而是指一种分析类)之后,便可以建立完整的“领域模型”了。

 

推荐阅读