`
taomujian
  • 浏览: 109819 次
  • 性别: Icon_minigender_1
  • 来自: 安徽-合肥
社区版块
存档分类
最新评论

用例分析技术小记(4)--高级用例归档技术

UML 
阅读更多

当我们在迭代细化事件流时,常常会发现系统中的许多用例之间有很多的相似之处,这意味着有很多的重复劳动以及文档的可维护性会降低。为了利用系统中的这些相似之处,我们可以使用一些技术手段,但是绝不能为了方便而牺牲了清楚的描述,我们的最终目的是使文档变得更加的清晰易懂。一些常用的技术包括:包含、扩展、接口和继承。在这里面只有“包含”是最终用户关心的,而其他则是开发人员关心的。

   包含:

      经常我们在写一个功能相近的用例时,会出现很多的复制粘贴,当出现这种情况时我们就可以考虑将相同的部分提取出来作为一个通用的部分。

例如:

 

 

但是有点需要注意的地方就是,被包含的部分并不知道他何时会被那一部分所包含,因此不能依赖任何包含他的用例。另外包含用例本身是不完整的,它必须拥有他所包含的用例以保证完整性。同时一个用例可以包含很多别的用例。  

示例4-3中客户到搜索订单的带箭头的直线表示搜索订单是一个完整的用例,客户可以独立的使用他。

 

扩展:

     扩展一般用于有条件的扩展已有的用例的行为,这是一种在不改变原始用例的情况下增加用例行为的一种方法。
 

继承:

     在用例图中,执行者可以在执行者或者用例之间使用,执行者之间的继承意味着一个执行者可以完成另一个执行者的同样的任务,他也可能补充额外的角色,他以同样的方式与相同的用例进行交互,用例之间的继承意味着一个用例是另一个用例的特殊版本,这个特殊的用例从一个通用的用例中继承行为或者增加行为。(在UML中继承是用泛化关系说明的)
 

上图表示“客户代表”继承自“客户”,“客户”执行的用例,“客户代表”全部可以执行,同时“客户代表”还增加了“运行销售报表”的用例。而“网上订购货物”和“电话订购货物”则继承自用例“订购货物”,“订购货物”可能只是进行了一个简单的描述,而“网上订购货物”和“电话订购货物”则定义详细的事件流。

接口:

     接口是为执行者、用例或者两者准备的,一个接口可以告诉我们希望实体做什么,接口不是执行者或者用例的一部分,他只不过是对怎样与执行者和用例相互作用的一种描述,可以为任何执行者和用例设置多个接口

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics