期刊问答网 论文发表 期刊发表 期刊问答
  • 回答数

    1

  • 浏览数

    215

yu0252
首页 > 期刊问答网 > 期刊问答 > uml论文总结

1个回答 默认排序1
  • 默认排序
  • 按时间排序

lukeyv

已采纳
这位朋友你好,我找到了,只是正规的论文不能够复制的所以你在百渡网页里打上这样的字 uml filestype:pdf你一定能够找到的我以我的人格保证UML指南指南指南指南顺序图顺序图顺序图顺序图 Robert C Martin Engineering Notebook 04 翻译杨健 在上一期的专栏里我描述了UML的协作图协作图允许设计者确定在一个协作中对象间传递消息的顺序这种图的风格相对于消息的顺序更注重对象间的关系 在这一期里我们将讨论UML的顺序图顺序图装载了和协作图同样的信息但注重的是消息的顺序而不是对象间的关系 回顾蜂窝电话回顾蜂窝电话回顾蜂窝电话回顾蜂窝电话 下面是上期的蜂窝电话例子的最终协作图见图 1 数字:按钮发送:按钮:发送按钮适配器:数字按钮适配器:拨号器:发声器:蜂窝式无线电话台显示:CR显示显示:拨号显示1按钮按下1数字代码1显示数字代码2发出声音2按钮按下1发送1连接1占用图 1蜂窝电话的协作图 与这个模型相对应的顺序图显示在图2中图2的内容很好理解尤其在我们将它和图1对照时让我们跟踪这些特性 首先现在有两个顺序图第一个捕获当数字键被按下时发生的一系列事件第二个捕获当用户按发送键呼叫时发生的事件在每一个图的顶部我们看到表示对象的矩形就象在协作图中一样对象名被加下划线以便和它们的类相区分对象名也被一个冒号将其和类名分开一些对象象拨号器没有特别的对象名因此冒号作为类名的前缀而没有对象名在它前面 每个对象向下生出一条虚线被称为生命线这些线定义了图的时间轴按常规时间延向下方向流逝1生命线描述了它们所联系的对象将存在多久在图2中我们不能看到生命线的整个长度它们从图的最顶部延伸过图的最低部这暗示了图中描述的对象存在于图开始之前也仍存在于图结束之后 生命线之间的箭头表示正在对象间传递的消息顺序号象上一期所显示的是允许的但并不需要结束箭头的白色窄条被称为激活它们显示一个响应消息的方法的执行期这些方法暗含了激活结束后返回到调用者2 在第一个顺序图中围绕消息组的大矩形定义了一个迭代这迭代的循环条件被显示在矩形的底部 数字:按钮:数字按钮适配器:拨号器显示:拨号显示:发声器对每一个数字按钮按下数字代码显示数字代码发出声音发送:按钮:发送按钮适配器:拨号器:蜂窝式无线电话台显示:CR显示发送按钮按下连接pno占用图2 蜂窝电话的顺序图 花些时间观察图1和图2你将会亲自证明它们表示了相同的信息然而两者的形式是根本不同的顺序图占据了更多的空间但更容易进行规则系统地跟随协作图显示整个协作在一个密集的图中但规则系统有一定的模糊使用哪一种图依赖于你想强调的信息有时候你想显示一个协作的黏着性又有时候你想显示规则系统的流动性 对象的建立和删除对象的建立和删除对象的建立和删除对象的建立和删除 图3显示了在顺序图中我们如何描述建立和删除一个对象下面我们看一下蜂窝式无线电话台对象建立一个连接对象在响应一个连接消息时建立被一个终止于对象框的箭头所标示删除同样被一个终止与对象生命线的末端X处的箭头所标示 1 UML也允许在图的边上提示让时间向右延续然而这是很少有的情况 2 这样的返回能被一个无标注的箭头所显示从激活的底部返回调用者的生命线在异步消息的情况下一个激活的结束不隐含一个返回 这记号是非常直观的连接对象的生命期是显而易见的象这样一些事物是很难在协作图中表示清楚的 异步消息和并行 注意一下图3中一些箭头的头部是不完整的这半箭头标注了异步消息异步消息是一种在接收对象中产生一条新执行线后就立即返回的消息3连接消息例如立即返回到蜂窝式无线电话台对象然而你能看到在连接对象的生命线上的激活框那么连接方法仍在继续执行这连接方法正在一个分离的线程中执行这演示了顺序图具有显示并发多线程交互的能力在协作图中描述这种信息就要笨拙的多 :拨号器:蜂窝式无线电话台:连接连接pno创建对象连接pno连接建立结束断开连接连接断开对象销毁图 3 连接和断开连接 竞争条件 有并行的地方就可能存在竞争条件竞争条件出现在一个单线程或对象收到来至两个竞争源的消息如果处理不好参与对象可能被弄糊涂考虑图 4 我们又看到两个顺序图在这两个图中为了清晰已将激活框忽略4第一个图显示了正常的事件过程当一个蜂窝电话收到一个呼叫蜂窝式无线电话台对象检测收到的呼叫并响铃同时也告诉拨号器对象有一个呼叫正过来这使得拨号器对象处在一个特殊的状态当拨号器对象处在这特殊状态时按下发送按钮那么拨号器对象向蜂窝式无线电话台对象发应答消息因此呼叫被连接 3 事实上并不需要产生新的线程所需要的是接收对象在一个分离的线程中执行方法这线程可能存在于异步消息到来之前而仅仅是等待着做一些事 4 UML允许设计者根据判断进行这样的忽略 为什么需要特殊状态回头看一下图1你能看到拨号器对象能接收发送消息在用户输入电话号码后因此有两种情况哪一种情况下拨号器接收发送消息一是当呼叫时还有当应答时当呼叫时拨号器送连接消息到蜂窝式无线电话台当应答时拨号器送应答消息到蜂窝式无线电话台 这第二个顺序图显示了竞争条件在这种情况用户正在拨号一个呼叫进入蜂窝式无线电话台对象正在这时用户按下了发送按钮发出一个呼叫这进入的呼叫消息和连接消息交叉而过消息的交叉显示了竞争 当一个消息向下倾斜象这两个一样表示在消息的发送和消息的接收之间有一段时间差在系统中消息通过网络很显然消息需要时间来传递或在队列中等待被接收在多线程应用中对象间的消息经常被转换成消息对象等待在队列中因此大量的时间可能化在消息的发送队列和它们的最终接收和执行中 明显的如果蜂窝式无线电话台对象不曾被写下期望事件的返回它将被搞糊涂有可能设计蜂窝式无线电话台对象的状态机的工程师不曾期望到一个连接消息将被接收在它刚刚送出收到呼叫消息后 :发送按钮适配器:拨号器:蜂窝式无线电话台:响铃器发送收到呼叫应答响铃:发送按钮适配器:拨号器:蜂窝式无线电话台:响铃器发送收到呼叫连接号码响铃图 4 竞争条件在拨号和应答之间 象这样的竞争条件是一种重要的错误来源在并发系统中调试它们可能是非常困难因为它们依赖几个事件的精确定时这些问题导致间歇的不可解释和不可重复的崩溃这是所有时实软件工程师的祸端带倾斜箭头的顺序图5是一种很好的工具用来发现哪里会出现竞争条件 结论 5 这样的图也常被称为消息顺序图 很显然顺序图有很都优点它们清楚的描述了事件的顺序显示了什么时候对象被建立和销毁在表示并发操作上也很优秀而更重要的是捕获竞争条件然而虽然有很多优点它们也不是完美的工具它们太占空间并且也不能很好的表示协作对象间的相互关系尽管顺序图是强有力的我仍然认为密集而洁简的协作图更令人愉快因此作为一个个人品味的问题我仅在需要顺序图的地方使用顺序图

uml论文总结

238 评论(13)

相关问答