Java 建模: UML 工作簿:第 2 部分
Java 建模: UML 工作簿:第 2 部分 | 英文原文 | |||
序列图中的条件逻辑 Granville Miller (rmiller@togethersoft.com)
我在介绍性专栏中曾经解释过,序列图用于描述系统随时间而产生的内部行为。因为系统行为是对象相互之间发送消息的结果,因此序列图绘制了那些消息在对象之间移动时的路线。归根结底,序列图就是交互图。在前一部分中,尽管我们描述了无数交互,但只创建了一个相当简单的图。这次,我们将做进一步的研究,看看 UML 指定的序列图的两种形态。这两种形态是常规和实例。让我们从每种形态的正确应用开始。 序列图的两种类型 常规形态的序列图描述初始刺激因素所产生的类交互。常规形态则记述了初始刺激因素能够产生的一切交互。成功和失败条件与循环、条件和分支一样,都是这种图的组成部分。 常规序列图在水平轴方向上的每个框中只包含一个类名,如图 1 所示。它的含义是,交互背后的对象是匿名的,该类的任何对象都可以参与到交互中。因此,必须为所有路径明确建模。在常规序列图中,对象 A 必须向对象 B 发送模型中的一条消息。 图 1. 常规序列图 序列图的第二种形态是实例形态。实例序列图描述了两个实例之间可能发生的单一消息交换。这样的图将在水平轴方向的框中包含一个变量名及其类类型,如图 2 所示。这种形态不包括常规形态中常见的循环、条件和分支。在系统中实际的控制流程中,在交互过程中所进行的某些断言可能为假。如果发现断言为假,实例序列图中的所有消息都为空,这种情形将不出现。实例序列图描述了可能发生也可能不发生的单一情形。 图 2. 实例序列图 实例序列图最适合于在软件开发生命周期的分析阶段对个别方案建模。常规序列图可以为包含多个方案的整个用例建模。其它一些类型的活动 -- 例如为子系统或框架与其各个部分之间使用的协议建模 -- 可以使用任何一种形态,这取决于组件在软件开发生命周期中所处的位置。与实例形态相比,常规形态更接近于在最终产品中出现的实际代码。 我们在前一专栏中使用的是常规形态,并将在此继续研究这种形态。这一次,我们将探究条件逻辑在常规序列图中所扮演的角色,通过它来让您了解有关 UML 表示的更多知识。 清单 1. 带有条件表达式的方法
在分析阶段,您不是很关心细节,因此图只需要表明存款为正数。在常规序列图中,条件作为带有消息名的保护机制出现,位于水平调用箭头上方。这些保护条件用方括号括起,放在消息名的左侧,如图 3 所示。 图 3. 在分析期间添加的条件 上述方法和序列图之间的关系在图 4 中显现得更为清楚,我们在图 4 中看到了在设计阶段可能用到的更明确的图。当然没有显示全部方法:缺少了 else 子句。不过,图中消息箭头的语义规定只能在条件有效时发送消息。 图 4. 更明确的条件 可以通过在
在序列图中,迭代是通过水平箭头上消息名之前的星号 (*) 来表示的。如果迭代的次数已知并且固定 -- 这种情况非常少见 -- 这个数字出现在星号后面的方括号中。因为大多数 图 5. for 循环序列图 绘制 清单 3. while 循环
我们的 图 6. 结束语 在阅读这些文章时,您应该把精力集中在发展模型语义的直观理解上。随着看到越来越多的序列图并开始创建自己的序列图,您会发现许多序列图依赖于条件逻辑和图表上下文来说明图所表示的是 必须还是可能的系统视图。随着我们深入到更加复杂的图表绘制技术,及早学习如何识别和使用这种差别将对您今后有所帮助。 除了探讨序列图绘制中必须和可能行为的重要性以外,我还向您介绍了如何在图中表示条件和迭代。既然您已经知道如何绘制
|
转载于:https://www.cnblogs.com/voyage/archive/2004/07/04/21007.html
Java 建模: UML 工作簿:第 2 部分相关推荐
- Java 建模:UML 工作簿,第 1 部分
Java 建模:UML 工作簿,第 1 部分 英文原文 内容: 关于序列图 关于示例应用程序 入门 添加参与者 连接各点 建立某个活动的图 表示时间流逝 下一步 参考资料 关于作者 对本文的评价 相关 ...
- Java 保护Excel 工作簿和工作表
出于安全原因,你可能需要保护整个工作簿或工作表. 有时,你甚至可能还需要保护某个工作表,但却保留指定的单元格进行编辑. 本文将介绍如何使用Free Spire.XLS for Java来实现这些操作. ...
- java操作Excel的poi 遍历一个工作簿
遍历一个工作簿 package com.java.poi;import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hs ...
- java对两个表进行排序_Excel工作簿中多个worksheet工作表,如何对工作表进行排序?...
案例:如下图所示,一个Excel文件中,包含了多个工作表,有1-雷哥office,2-雷哥office...... 但是,我们发现工作表的顺序是比较混乱的,为了方便管理,如何对工作表进行排序呢? 方法 ...
- java使用POI5.0生成简易Excel工作簿的一种方法
先贴一下poi相关jar包的链接 https://poi.apache.org/download.html#POI-5.0.0 官网地址 <!-- https://mvnrepository.c ...
- Java 下载 Excel模板时,报修正 Excel在“xxx.xlsx”中发现不可读取的内容。是否恢复此工作薄的内容?如果信任此工作簿的来源,请点击是
代码如下: /*** 下载导入应用模板** @return*/@ResponseBody@RequestMapping(method = RequestMethod.GET)public Respon ...
- java 导出表格打包zip文件下载_POI多个工作簿导出表格打包ZIP下载
首先获得workbook集合对象 public static void zipFiles(List srcfile, File zipfile,String fileName) { try { Zip ...
- Java与UML交互图
Java与UML交互图 前面我们主要讨论的是UML类图,下面我们要讨论的是另一种UML图--交互图(Interaction Diagram).交互图描述的是一组对象之间的交互过程,或者说,这里我们实际 ...
- Java 建模:子整体软件开发
Java 建模:子整体软件开发 英文原文 内容: 灵活软件开发 过程是第一位吗? 子整体(holon) 子整体软件 开发 培训模型 没有安全网的软件开发 过程?什么过程? 结论 参考资料 关于作者 对 ...
最新文章
- rman备份中的%参数详解
- 局部变量java6_java字节码-几种字符串局部变量用法的区别
- python爬虫可视化界面_python爬虫---垃圾分类可视化界面
- Android SDK下载失败-Android SDK Manager国内无法更新的解决方案
- django-无刷新ajax请求的试验
- 传智播客 c#_播客#46:Alexander Kallaway
- java xmpp openfire_java应用之openfire入门篇
- python常用函数年初大总结
- 算法测试例子特殊输入形式
- 2016 - 1 -17 GCD学习总结
- 【粉丝福利,免费送书】SQL编程思想
- 20200229小白自学Python之路00
- Oblog 4.5-4.6 accessmssql getshell 0day
- 云和人工智烈日当头,华为HPC解决方案如何应对?
- php实训心得体会doc,php实训报告心得体会php实训报告心得体会
- https证书安装部署 https证书怎么安装
- MCAL-GTM之时钟管理CMU
- iOS开发~WKWebView白屏适配
- 数据库连接超时的处理
- 中国英语市场营销分析与竞争形势调研报告2022版
热门文章
- hashtable是线程安全的吗_Java程序猿必知:线程安全ConcurrentHashMap和Hashtable有啥区别...
- 百度图神经网络——论文节点比赛baseline代码注解
- 黑苹果cpu架构???_自研桌面CPU,苹果对英特尔发“分手信”
- 八皇后时间复杂度_九章算法 | N皇后问题
- python编程案例教程第四章_Python编程入门-第四章 流程控制 -学习笔记
- linux xargs命令选项,使用xargs命令在Linux中执行多个操作 | MOS86
- TeeChart Pro VCL/FMX教程(六):使用系列(二)
- 数据遍历打印得小列子
- node访问oracledb的环境搭建
- ICE专题:实战分布式的Hello Word 【原创】