描述系统的边界:首先得出用例图,每一个用例都对应系统一系列动作。序列最初是用文本(形式的或非形式的)的方式描述,例如:图4.1这样的描述精确性较差,不标准。在UML里,直观的,标准的和面向对象的方式是:交互和交互图,活动图(Activity diagram),状态机图(State machine diagram)。——描述软件系统的动态行为。
一无所有 回复于:2002-11-21 14:46:55
交互图分为两种:序列图,协同图。它们在语义上是等价的,意味着可以互相转换。序列图强调的是为实现此行为系统在时序方面的特性;协同图强调系统在结构方面的特性。
在考察一个系统的对象的交互时,通常从序列图开始,然后将序列图转换为协同图,以分析系统在结构方面应该具备的特点。
用软件实现图4.1 指定的动态行为。首先考虑系统外部和系统打交道的对象。已经在图4.1中标识。系统作用者:“用户”和“显示窗口”,将这两个外部对象描绘在交互图上(图4.2),之后,十分自然地,也是“面向对象”地考虑在系统中应该如何设置担负不同职责的软件“角色”。它们共同完成这一任务。这如同当人们需要互相协同来完成某一工作时,需要进行分工一样。这样的“角色”,在UML中,被称为对象。
一无所有 回复于:2002-11-21 14:50:26
(图4.2)
一无所有 回复于:2002-11-21 14:52:33
[这个贴子最后由一无所有在 2002/11/21 02:54pm 编辑]
具有相同的结构和行为的所有对象,被抽象为类。这是UML中典型的“类”/“实例”两分法。在UML中,对象和类使用相同的图符(矩形)来标识,为了区分对象和类,在对象的名字下面用下划线以示区别。系统作用者是类的变体(stereotype)。在交互图里,当变体以对象出现时,将保持此变体的图符。
在前面的用例中,用户和系统的交互,可以分为三个连续执行的动作:1、用户在位图区域内按下鼠标左键;2、保持左键按下拖动鼠标;3、释放鼠标左键。这三个动作构成了系统作用者和系统的联系,每一动作都相当于向系统发出了一个命令,系统必须在内部执行相应的操作,以正确响应这命令。这命令,在UML里被称为消息(message)。消息在对象间传递,用于启动目标对象内部的某些操作。在考虑系统内部对象的设置时,出于系统“外壳”与系统内核的区分,专设一个对象用于接收用户传来的鼠标消息,这就是“接收鼠标消息”这一对象的用途。这对象收到操作系统传来鼠标消息后,把它传给为“浏览位图”这个工具专设的对象“处理鼠标消息”,它把由操作系统传来的无特定语义的鼠标消息,解释为“浏览位图”赋予它们的语义,并发送消息给bmpviewer的系统内核里的对象(系统数据),进行具体的执行。
一无所有 回复于:2002-11-21 14:57:45
在UML里,对象指的是某一种抽象的坚实存在,它是封装了状态和行为的具有明确边界和身份的实体。具有相同的结构和行为的对象, 在UML里被称为类。因此,对象应该和某一类相对应。UML里,对象使用与其对应的类一样的图符。为了使对象的图符和类的图符相区别,图符中对象的名字下面加有下划线(图4.3)。对象的名字在对象的名字后面标上此对象的实现类的名字。对象名和类名之间用冒号分开。对象名可以缺失,只写此对象对应的实现类的名字,表示它是此类的一个对象。只标记类而不标记对象名的对象称为匿名对象(anonymous object)。标记名字的对象称为记名对象(named object)。
一无所有 回复于:2002-11-21 15:03:04
消息:对象间的互相合作与交流表现为一个对象以某种方式启动另一个对象的活动。这种交流在UML里被定义为消息。消息是对对象间的一种信息的通讯的描述,此信息期望在通讯完成之后,某一活动会随之发生。消息相当于向目标对象发送了一条命令,此命令启动了目标对象的一个动作。动作一般通过函数调用(call)启动。但也可以通过其它方式。
| 论坛热门帖子: | [lch203] 写得蛮好的linux学习笔记(10-21) [黑马制造] 学习java的30个目标(10-19) [笑傲股林] 做测试半年了,有点迷茫,应该再学些什么提高自己的测试水平和测试能力呢?(10-19) [udp8589] 大家用google的来吱一声? 用百度的~~也来报道下?(10-18) [沂偌掳兆] 本人总结的一些认为C++比较经典的书籍,希望对大家有用(10-18) |
| TAG标签: | 交互 软件 对象 消息 一个 系统 序列 发送 可以 顺序 |
注册
个人空间
