作者:张克强    作者微博:张克强-敏捷307

序列图,也称时序图、顺序图,英文名Sequence Diagram。在雅各布森用例分析方法中鼓励使用各类图形来表达,但恰恰没有明确提到序列图。而科伯恩用例分析方法以结构化/半结构化文本用例为中心,强调基于目标的文本格式,对UML各类图所提甚少。

在RUP和OOAD中,UML序列图的最基本定位是用于识别类与类之间的信息传递,是识别类的方法的最佳场合。它是在得到用例之后初步识别了类之后发挥巨大作用的。序列图是交互图(interaction diagram)的一种,能够转换成协助图(Communication Diagram)。利用序列图的设置,能够精确定义类及类的方法,进而生成源代码。

在潘加宇的《软件方法》[7]中比较了活动图和序列图,推崇使用序列图来表达业务,称之为业务序列图,然后基于业务序列图来识别系统用例(区别于业务用例,即是本文所称用例)。可以发现当处理多个业务角色时,序列图确实拥有与活动图相当的表现力。

那么,序列图如果用在用例规约中,将是什么景象?

图片来源于网络

可以看到序列图表达的内容与基本流文字是一样的,更加直观,但显然的需要更多时间,而且并不能充分说明交互细节,毕竟在图片上不适宜打上密密麻麻的字。更关键的上述这幅图中有“银行主机”,这就超出了单个用例的范畴。

总的来说,序列图不是用例的标准配置,在用例规约中使用序列图可以更好的呈现事件流,但其将花费更多时间,如果在单个用例内再考虑其它角色和其它用例,那么所费时间更多,而且有可能与前期业务分析重复,也有可能与后续设计分析重复。

在编写有效用例一书中,明确指出在用例规约中画序列图是不合适的。

更多相关文章

需求用例分析之一:异常流
需求用例分析之二:级别设置
需求用例分析之三:补充规约

需求用例分析之四:业务规则

需求用例分析之五:业务用例之Rational系

需求用例分析之六:业务用例之科伯恩系

需求用例分析之七:业务用例之小结

需求用例分析之八:用例颗粒度

需求用例分析之九:序列图相关推荐

  1. 需求用例分析之七:业务用例之小结

    作者:张克强    作者微博:张克强-敏捷307 RUP虽然对于业务对象建模进行了详细的说明,但其本身并没有把业务对象建模(领域模型).业务用例作为必须的工件.Rational系方法把业务用例作为需求 ...

  2. 需求用例分析之一:异常流

    问题的引出 备选流,又称备选事件流,英文是Alternative Flow.在RUP和UML中,备选流的解释如下:备选事件流包括与正常行为相关的可选或异常特征的行为,同时也包括正常行为的各种变形.您可 ...

  3. 苍狼敏捷需求用例分析方法简介并讲义下载

    作者:张克强    作者微博:张克强-敏捷307 用例分析方法已经有不短的历史,发展出了多种用例分析方法.笔者花费了大量时间,对用例分析的各个方面进行实践和分析,得到如下系列文章: 需求用例分析之一: ...

  4. 需求用例分析之八:用例颗粒度

    作者:张克强    作者微博:张克强-敏捷307 RUP系的考虑 在RUP中,没有对用例的颗粒度给出清晰的指导.2004年Rational 中国区技术销售经理 傅纯一发表一文<用例建模指南> ...

  5. 需求用例分析之二:级别设置

    在<编写有效用例>(阿莱斯特-科伯恩著,以下用科伯恩用例来指代)一书中,赋予了用例不同的级别,科伯恩形象的设定了如下级别:海平面.云朵.风筝.蛤等等. 科伯恩建议用例级别分为多个个目标层次 ...

  6. 需求用例分析之四:业务规则

    作者:张克强 作者微博:张克强-敏捷307 在雅各布森用例分析方法和科伯恩用例分析方法中用例本身其实都没有"业务规则"的属性.但是业界使用中常常会给用例加上这个属性,这是为什么呢? ...

  7. 需求用例分析之三:补充规约

    补充规约在RUP中是记录那些在用例模型的用例中不容易体现出来的系统需求.这些需求包括: § 法律法规方面的需求和应用标准. § 要建立的系统质量属性,包括可用性需求.可靠性需求.性能需求和可支持性需求 ...

  8. 需求用例分析之备选流

    #用例分析#之备选流 alternative flow-这是用例方法中最混淆之处,无论中文还是英文,都出现许多不同的理解和不同的做法.问题在于备选流字面意思模糊,可以是可选的不同做法,也可以说异常,也 ...

  9. 需求用例分析之六:业务用例之科伯恩系

    作者:张克强    作者微博:张克强-敏捷307 来自于科伯恩<编写有效用例>对业务用例的说明 在<使用 UML 进行业务建模:理解业务用例与系统用例的相似和不同之处>中分析科 ...

最新文章

  1. 13. python 类
  2. java温度计的实现_echart 之实现温度计
  3. 华为鸿蒙一再延期,华为P50再次延期,鸿蒙系统正式版加持,有望与新平板一同登场...
  4. 2019-03-11-算法-进化(搜索二维矩阵II)
  5. 无需写try/catch,也能正常处理异常
  6. java 富文本框_java-富文本(wangEditor框架)的使用教程
  7. python切片读取数据_在Python中读取、切片和重组数据文件blockbyblock
  8. 我可以在目录中放入多少个文件?
  9. php fseek函数,php fseek函数怎么用 - fseek
  10. fgo升级经验计算机,命运冠位指定FGO升级所需经验值介绍
  11. 软件测试人员每天的工作日常
  12. 简述软件工程、软件开发方法、软件开发工具相关概念及之间的关系
  13. wintel联盟即将崩盘,微软联合芯片企业开发ARM架构芯片
  14. python爬虫开发 urlparse、parse_qs、urlencode、quote、unquote、urljoin 用法总结
  15. 用python写一个简单的名片管理系统
  16. android v2签名机制,APK签名机制之——V2签名机制详解
  17. Java前叉夹器_大器晚成 SRAM S-900直装夹器评测
  18. Oracle 11g如何清理数据库的历史日志详解
  19. 如何选择合适的无线网桥
  20. 32种EMC标准电路分享-电路接口防护-标准参考电路

热门文章

  1. php创建压缩文件 保存路径,通过php生成zip压缩文件,支持文件和压缩包路径查找...
  2. spring 获取cookies_springMVC操作cookie和session
  3. php静态方法场景,深入介绍PHP中的static的修饰方法和yield的使用场景
  4. tomcat 多人登录cpu占用过多_服务器被植入木马,CPU飙升200%
  5. python绘制k线图的步骤_Python使用PyQtGraph绘制股票行情K线图
  6. 2021高考杭二中成绩查询,浙江高中成绩排名2021,浙江中考分数线排行榜
  7. oracle查询grant信息,Oracle学习笔记(四)
  8. oracle 日期排序_日期居然用字符串保存?我笑了
  9. mysql+主从复制重做_XtraBackup实现MySQL不停机重做主从复制
  10. table取tr对象 vue_javascript的DOM对象终极总结:你必看的js面向对象