当前位置:文档之家› 电梯简易UML图

电梯简易UML图

电梯简易UML图
电梯简易UML图

一、 面向对象技术概述

软件危机:

1.软件开发过程中出现的难题:复杂程度高、研制周期长、正确性难以保证

2.表现形式:需求不明确、变更过多,开发进度难以控制;软件成本增加,但质量差;维护困难

3.原因:需求不充分,无计划性;开发过程不规范;软件无评测手段

4.解决途径:加强软件开发过程管理;推广使用开发软件的成功技术、方法和工具

软件开发的现状:

1.软件工程学科不断发展

2.软件危机依然存在

3.中小型软件开发较为成熟,大型的仍存在问题

常用软件开发方法:

1.瀑布模型

2.快速原型

3.螺旋模型

软件工程的目的:

在规定的时间、规定的费用内开发出满足用户需求的(低错误率,易用,可维护,课重用,可移植)高质量软件系统。

软件与硬件的区别:

1.产品需求

2. 生产方式

3. 表现形式

4. 维护方式

软件复杂性原因:

1.现有硬件系统体系结构造成的

2.软件开发很难描述软件的本质规律和特征

3.软件系统中各元素之间的关系具有不确定性

4.软件需求的不断变化

5.软件生命周期中需要适应不同硬件环境

基本方法:

1.分解,“分而治之”

2.抽象,抽取本质特征(过程抽象,和数据抽象)

3.模块化,高内聚,低耦合

4.信息隐藏

结构化VS面向对象

面向对象的优点

1.易于理解,直接模拟问题空间中的对象属性和行为

2.稳定性较高、适应性好(用较稳定的把不稳定的包起来)

3.可靠性高,灵活性好,可复用

封装提供两种保护:

1.保护对象,防止直接访问对象内部细节

2.保护客户,防止对象实现部分的变化影响客户对象

消息是类与类之间通信的桥梁,包括:

1.同步消息,请求者需要等待响应者返回

2.异步消息,请求者不需要等待响应者返回,发出消息后可以继续自己的工作

二、 UML概述

Unified Modeling Language:

1.U: 统一各种表示有差别的建模方法,并集其所长。

2.M: 模型从全局上把握系统的全貌机器部件之间的关系

3.L: 是面向对象的建模语言

UML是一个通用的、可视化的建模语言标准,可以用来可视化、描述、构造、和文档化软件系统的各种工作

UML的特点:

1.统一的标准

2.面向对象

3.可视化

4.独立于开发过程,可适用于不同软件过程

5.概念明确,表示简洁,结构清晰,容易学习掌握

UML构成:

构造块,UML规则,公共机制

构造块:建模元素,模型主体,包括事物,关系,图

a.事物:

(1)结构事物:类、接口、用例、组件、节点等

(2)行为事物:交互、状态机

(3)分组事物:把语义上相关的建模元素分组为内聚单元

(4)注解事物:捕获特殊信息

b.关系

(1)关联 对象间的一组链接

(2)依赖 事物的改变引起依赖事物的语义改变

(3)泛化一个元素以另外一个元素的特化,而且可以取代更一般的元素

c.图

1234为结构,其中12为静态图,34为实现图

56789为行为,其中56为交互图,78为行为图,9为用例图

注:各种图见UML概述PPT

UML中的4+1视图

三、 用例与用例图

组成元素:

1.参与者,用例,表示关系的连接线

2.参与者与用例的关系:一根线表示

3.用例之间的关系:包含、扩展、泛化

用例的建模过程:

a.获取原始需求

b.识别参与者

c.识别用例

d.识别用例之间的关系

e.描述脚本

f.构建用例图

g.用例描述

a.获取原始需求:

技巧:实地观察,用户指导,原型制作等

b.识别参与者:

指系统之外,透过系统边界与系统进行有意义交互的事物,参与者的确定代表系统边界的确定,就知道哪些外部对象在与系统交互

参与者不仅可以由人承担,也可以是其他系统,设备,时间等

技巧:参与者使用功能、改变系统数据、获取系统信息、利用系统完成日常任务、维护管理系统并保

证其资产运行、与系统交互、利用系统产生的结果、或者为时间、气温等外部条件

参与者的泛化:表示一个一般性参与者(父参与者)与一个更为特殊的参与者(子参与者)之间的联

系,子参与者继承父参与者的行为和含义并且增加自己的特有的行为和含义。

c.识别用例:

要点:可观测(用例止于系统边界,不考虑系统内部对该功能的实现方式)、用例是有意义的目标、由系统执行、由参与者观测(用户观点,而不是功能)、注意用例粒度

用例命名:

(状语)动词+(定语)宾语

用例粒度:

粒度过细,把步骤当做用例,把系统活动当做用例,忽略了用户的目的。

用力获取:

参与者的任务,参与者需要了解,修改系统什么信息,参与者是否需要把系统外部的变化通知系统,参与者是否希望系统把异常情况通知自己。

d.用例间的关系:

泛化:子用例继承父用例的行为和含义,子用例可以增加新的行为和含义覆盖父用例中的行为和含义。

包含:(指向包含用例)基用例包含了包含用例的行为,一定执行包含用例。当用例出现重复描述时可用。

扩展:(指向基用例)基用例提供扩展点,扩展用例只能在扩展点上增加新的行为,不一定执行扩展用例,在特殊情况执行。当行为中某种变异发生时通过扩展用例加以控制。

e.脚本:

指一条单一路径,用来显示用例中的某种特殊情况。每个用例有一系列脚本,一个主要脚本和几个次要脚本。相对于主要脚本,次要脚本描述了执行路径中的异常或可选择的情况

f.构建用例图

g.用例描述

指对一个用例的功能进行的文字描述,是参与者与系统交互动作序列的说明。内容有:用例目标,如

何启动用例,参与者与用例之间的消息如何传递,其他路径,用例结束后的状态,其他内容。

易犯错误:只有系统行为或者参与者行为,设定了对用户界面的要求,过于冗长等

前置、后置条件:

1.前置条件:在用例开始前系统的状态,例如某些用例依赖于其他用例。

2.后置条件:在用例执行后系统的状态,有助于识别漏掉的用例。

描述要点:

1.只写“可观测”的人话

2.主动语句

3.必须以参与者或者系统作为主语

4.不涉及界面细节

5.分支和循环

四、 类图和对象图

类图描述了系统中的类机器相互之间的各种关系,其本质是反映了系统中包含的各种对象类型以及对相见的各种静态关系。

1.类的抽象层次:

(1)概念层:描述应用领域的概念

(2)说明层:描述软件的借口部分

(3)实现层:提供类的细节

2.类的属性

#visibility: Boolean[0..1] = false

派生属性:由其他关联类属性计算得到的属性,在名字前加“/”

3.类之间的关系

a.关联: 双向关联(在两个方向上都有导航),角色可以互逆

单项关联(只在一个方向上存在导航)

自反关联,N元关联等

关联名:描述关联的作用

关联角色:关联的两端可以以某种角色参与关联,不注明角色即以类名作为角色名

角色的多重性:非负正数的一个子集来表示,若上界大于1,则称为多值角色

约束:写在{}括号内

契约设计:核心是一个永真的逻辑公式断言。一旦为假则存在错误。解决LSP原则的一种途径。

三种断言:

(1) 前置条件:描述操作前满足的条件

(2) 后置条件:描述操作后满足的条件

(3) 不变式:所有实例,无论执行前后都恒为真

要求:

(1) 类的不变式和后置条件必须适用于所有子类

(2) 子类只可以减弱前置条件

(3) 子类只可以加强后置条件

关联类:为关联设置一些属性、操作及其他特征。两个类之间只能有一个关联类的实例。

限定关联:在关联的一方添加限定符,明确地标识在关联的另一方出现的多个对象中的每一个对象

(所有对象满足限定符要求),是为了显示关联的查找接口。

目的:降低另一端的多重性,同时限定关联的重数是在限定符内容的重数。

聚集:特殊关联,表示类之间的整体与部分的关系

组合:特殊聚集,强调整体和部分具有相同生命期,同生同亡

b.泛化

指一般元素和特殊元素之间的分类关系。

(1) 概念层,表示类与子类的关系

(2) 说明层,表示子类的接口必须包括父类接口中的每一个元素

(3) 实现层,用继承或者授权来实现

继承机制:

(1) 一个父类的任何子类都必须具有父类的所有行为。这种行为一致性要求类中的操作在语法和语义上一致。

(2) 语义上的一致指父类中的所有属性和操作都完全适用于子类对象,且子类对象必须可以替换基类对象。

(3) 子类重载父类操作时,必须保证仍提供相同的服务,可以更多更具体。

授权技术:把原来属于A类的行为和操作转交给B类(基类)来完成。B类成为A类不可分割的一个

组成部分。B类是A类的私有成员。

c.依赖:

修改元素X会导致另一个元素Y的改变,则Y依赖于X。

(1) Y是X的数据成员

(2) Y是X的形式参数

(3) Y是X的返回类型(消息发送者或接受者)

(4) Y是X的局部变量

4.抽象类和接口

抽象类(斜体):不能被直接实例化的类,可以含有属性和某些方法的具体实现。

接口:不带实现的类,只规定类的外部特性。可通过抽象类描述,用户声明接口。与继承不同,必须实现接口中规定的所有操作。

5.版型

版型是建模人员在已有的构造块上派生出新的构造块,这些新的构造块扩展已有的构造块的语义,与特定问题相关。

版型VS约束:

(1) 都可以为模型元素增加语义

(2) 约束侧重于限制

(3) 版型侧重于分类

6.多值分类和动态分类

多值分类:

一个对象可以用几个类来描述,且这些类之间没有继承关系。允许将按不同标准定义的类进行组合,

指派一个类。

注意:(1) 按同一种标准划分的子类,彼此是互斥的

(2) {complete}表示分类后得到的子类是个全集。这意味着父类的任何实例都必须是这

个(全集)分类中某个子类的一个实例。

动态分类:

允许在同类的子类集中,动态的改变对象所属的类。

7.边界类,实体类,控制类

(1) 边界类:

通过用例图可以确定边界类,每个Actor和Use case至少需要一个边界类。但多个Actor启动同一

Use case时可以使用同一边界类

(2) 实体类:

保存要放进持久存储体的信息.

(3) 控制类:

负责管理或控制其他类工作的类。每个用例通常有一个控制类,控制用例中的事件顺序,可共

用。

8.构造类图

寻找类的方法:

(1) 名词确定候选类

(2) CRC方法:class,responsibility,collaboration

(3) 根据边界类,控制类,实体类的划分帮助发现类

(4) 参考设计模型确定类

(5) 根据软件开发过程的指导寻找类,如RUP

注意点:

(1) 不要试图使用所有符号

(2) 不要过早陷入细节,根据阶段、层次逐步细化

(3) 构造完成后要将模型与问题对照验证其是否合理

步骤:

(1)研究分析问题领域,确定系统需求,方便在领域中找设计模式

(2)确定类,明确含义和职责,属性和操作

(3)确定类之间的关系

(4)调整和细化类、类之间的关系

(5)绘制类图并增加相应说明

OO设计原则:

(1) OCP:

在扩展性方面应该是开放的,在更改性方面是封闭的。在扩张时不需要对模块的源代码进行修

改。设计时尽量使用接口进行封闭,采用抽象机制和多态技术。

关键在于抽象,抽象可以预见了可能的所有扩展(闭),可以随时导出新的类(开) (2) LSP:

子类不能添加任何父类没有的附加约束,子类对象必须可以替换基类对象。抽象出共同部分,由

抽象类继承。

(3) DIP:

高层模块不应该依赖于低层模块。二者应该依赖于抽象。细节应该依赖于抽象。针对接口编程,

不是针对实现而编程。

(4) ISP:

客户不应该依赖于用不到的方法,只给每个客户所需的接口,且客户仅仅知道要用的接口。

注意点:

(1) 遵守OO设计原则

(2) 不同类中相似方法的名称应相同

(3) 遵守已有的习惯

(4) 减少消息模式的数目,且消息具有一致性,便于理解

(5) 类的职责要明确,不要提供太多的服务,且应能从类名推断其用途

(6) 泛化结构的深度要适当

(7) 一个方法不要包含太多功能

9.对象图表示一组对象及它们之间的关系,是类图的实例化,是系统详细状态在某一时刻的快照。(使用有

限,用于表达数据结构的示例,了解系统在某个特定时刻的具体情况)。

对象名:格式为“对象名:类名”,这两个部分是可选的,如果包含了类名,则加上“:”。为了和类名区

分,必须加下划线区分。

属性:由于对象是一个具体事物,因此所有属性值必须确定,通常在属性后列出其值。

五、 包

1.类是构造整个系统的基本构造块,但对于庞大系统,成百上千的类大大超出了人们可处理的复杂度。

由于分解是软件开发中控制软件复杂性的重要手段,且在OO方法中,需要考虑如何把相关的类放在

一起,因此,引入“包”这种分组事物构造块。

2.包是一个容器,用于组织模型中的相关元素以便更容易理解。是维护和控制系统总体结构的重要建模

工具。包中可以包含很多建模元素:类,接口,构件,结点,用例,包等。

3.命名:

第三、第四个为路径包名System包,Web包和UI包,包的嵌套层数不应过多。

4.如果包中的任意两个类之间存在依赖关系,则这两个包之间可以存在依赖关系

(1)<>:说明提供者包(箭头所指包)的命名空间被添加至客户包的命名空间中,客户包中的

元素也能访问提供者包的所有公共元素

(2)<>:只提供包中元素,不将命名空间合并。

两者表示的含义相同,<>很少使用,大多数情况使用<>

5.子包继承了父包中public和protected的元素

Client可以访问:+OrderForm、‐Order、+OrderRules

Rule可以访问:+OrderRules、+Window、+Form

GUI可以访问:+Window、+Form、#EventHander

6.设计包的原则:

(1) REP(重用等价原则):把类放入包中时,应考虑把包作为可重用的单元。

(2) CCP(共同闭包原则):把需要同时改变的类放入同一个包中。

(3) CRP(共同重用原则):不会一起使用的类不放在同一个包中。

(4) ADP(非循环依赖原则):包之间的依赖关系不要形成循环。

六、 顺序图与协作图

1.交互图:描述对象之间以及对象与参与者之间的动态协作关系以及协作过程中行为次序的图形文档。

作用:通常用于描述一个用例的行为,显示该用例中所涉及的对象及对象之间消息传递情况。

类型:顺序图,协作图

2.顺序图:用来描述为了完成确定事物,对象之间按照时间消息交互的顺序关系。

(1) 样式与元素

A.对象的三种命名

B.生命线:是对象图标向下延伸的虚线,表示对象生存时间

消亡点(X号表示):表示撤销该对象。

C.控制焦点(激活期):用生命线上的小矩形表示。在这个时间段内,对象执行相应操作。

D.消息:对象之间传递的信息。

(2) 对象的创建与撤销

A.对象在创建消息之后才能存在,对象的生命线也是在该创建消息之后才存在。

如果对象是在交互的过程中创建的,那么它应当位于图的中间部分。如果对象位于时序图的顶

部,说明在交互开始之前该对象已经存在了。

B.撤销对象

在对象生命终止点放置X号,表示撤销该对象。通常是对删除或取消消息的回应。

(3) 消息

A.调用消息:消息的发送者把控制传递给消息的接受者,等待接受者返回或放弃控制。

调用消息必有一个与之配对的返回消息,但可以不用画出。

B.异步消息:消息的发送者把控制传递给消息的接受者,然后继续自己的工作,不等待接受者返回或放

弃控制。

调用消息和异步消息的不同点,左边为调用消息,右边为异步消息。

C. 返回消息:表示从过程调用返回,若果是过成功消息返回,则不用画出;如果是非过程消息,则必

须画出。(用虚线的异步消息表示,一般指向左边)。

D.组织消息:消息的发送者传递消息给接受者,如果接受者无法立即接受,则发送者放弃该消息。

E. 超时消息:消息的发送者发出消息给接收者并按指定时间等待,若接收者无法在指定时间内接收,

则发送者放弃该消息。

F. 语法格式:

[前置消息列表][警戒条件][消息顺序号][返回值:=]消息名称([参数列表])

[x<0] 4 index:=find(n)

3.建立顺序图的步骤

(1) 从用例中识别交互过程

(2) 识别参与交互过程的对象

(3) 为每个对象设置生命线,设别交互过程中对象的创建和删除

(4) 从引发这个交互过程的初始消息开始,在生命线之间自顶向下依次画出随后的各个消息

(5) 如果需要说明时间约束,则在消息旁边加上约束条件

(6) 如果需要,可以为每个消息设置前置条件和后置条件

4.协作图:用来描述系统的行为是如何由系统成分协作实现的图

(1) 样式和元素

A.主动对象:是有一方法可以自动气动执行,框加粗(普通对象不用加粗)

左图为主动对象,右图为多对象,同属一个类的多个对象集合。

B.链和消息:连接对象的线段,以及对象之间传递的信息。

一个链上可有多个消息。链上可以由角色名、导航、链的两端的聚集关系。但没有多重性说明。

5.建立协作图步骤

(1) 确定用例的交互过程

(2) 识别参与交互过程的对象

(3) 如果需要,为每个对象设置初始特性

(4) 确定对象之间的链,及沿着链的消息

(5) 从引发该交互过程的初始消息开始,将每个消息附到相应的链上

(6) 如果需要说明时间约束,则在消息旁边加上约束说明

(7) 如果需要,可以为每个消息设置前置条件和后置条件

6.顺序图与协作图的比较

(1) 相同点

A.直观地规定了发送对象和接受对象的责任。

B.描述系统中对象之间的动态关系。

C.两种图的语义是等价的,可以从一种形式的图转换成另一种形式的图,而不丢失任何信息。

(2) 不同点

A.顺序图强调消息的时间顺序;协作图强调参与交互的对象的组织结构

B.顺序图可以直观反映对象的创建/激活/撤销;协作图一般不能

C.协作图能反映动作路径,消息必须有顺序号;顺序图没有

7.常见问题

(1) 在顺序图中表示消息的循环发送:1 *[i:=1…n]:Message()

(2) 在顺序图中表示发送条件:

A.在消息上加上境界条件:[x<0] 1:Message(x)

B.在消息名字前加上条件子句:1 [x>y]: Message(x)

C.使用文字说明

D.分成多个顺序图

(3) 在顺序图中表示时间约束:用约束来表示

(4) 在顺序图中表示递归:

左图为直接递归,右图为间接递归

(5) 顺序图中对象如何确定,与类图是否同时生产并交互修改

顺序图中的对象的确定需要参考类图,类图中的类的确定也需要参考顺序图,二者互相补充、互相协

调。

在分析阶段,顺序图中的消息名可能只是一个说明,而在设计阶段,顺序图的消息名被细化,最后对应

到类图中的方法。

(6) 如果对象具有多态性,发送对象不可能事先知道目标对象所属的类,则在交互图中如何确定目标对象所

述的类?

目标对象应是形成多态的继承关系中的祖先类。

(7) 在交互图中表示广播消息

(8) 在协作图中表示创建对象

8.小结

(1) 交互图适用于条件判断和循环不太多的时序过程

(2) 主要在一个用力中,描述对象协同工作的行为

(3) 描述跨越多个用例的单个对象的行为,应使用状态图

(4) 描述跨越多个用例或多线程的复杂行为,应使用活动图

七、 状态图和活动图

1.状态机和状态图

状态机是展示状态与状态转化的图,重点在于描述状态之间的控制流。可以对一个对象的生命周期建模。

状态图用于描述一个对象在其生存周期见的动态行为,表现一个对象所经历的状态序列,引起状态转移的event,以及因状态转移而伴随的action。所描述的对象往往有多个属性,应在具有如下特性的属性上建模:

(1)属性拥有较少的可能取值

(2)属性在这些值之间的转移有一定的限制

2.状态图的基本概念

核心元素:

(1) 状态(state):圆角矩形表示(初态和终态例外)

状态是在对象的生命期中的某 外条件或状态。在此期间对象将满足某些条件、执行某些活动或等待某

些事件。

组成部分:

A.状态名:唯一、允许匿名、放置在状态图标的顶部

B.进入/退出动作:表示进入/退出该状态索要立刻执行的动作。

进入动作用”entry/动作”表示,退出动作用”exit/动作”表示

C.内部转移:一个状态在响应一个事件时,若只执行一个动作且不产生任何状态转移,则在状态内

用“event/动作”及文字说明进行描述

D.活动:状态内可以带有“do/活动名”活动

E.延迟事件:一种特殊事件,该事件不会触发状态的转移,当对象处于该状态时时间不会丢失,但

会被延迟执行

F.类型:

初态,终态,中间状态

组合状态:包含子状态。子状态:嵌套在另一个状态中的状态

子状态间的or关系:任意时刻只能到达一个子状态

子状态间的and关系:一个对象的状态时每个并发段中歌曲一个状态的组合

G.历史状态:伪状态,目的是记住从组合状态中退出时所处的子状态,当再次进入组合状态时,可

以直接进入这个子状态,而不是再从组合状态的初态开始

浅历史状态(shallow):只记住最外层组合状态的历史

深历史状态(deep):可以记住任何任何深度的组合状态的历史

(2) 转移(transition):状态之间包含一些文字描述的有向箭头线

转移表示对象将在第一个状态执行一定的动作,并在某个特定事件发生且满足某个特定的警戒条件时进

入第二个状态

A.格式:event(x)[警戒条件]/action

没有标明印发转移的事件:状态中的活动一旦完成,转移立刻发生

没有标明境界条件:事件一旦发生,转移必将发生

B.从一个状态出发的几个转移之间应该是互斥的。

左边为事件不同;右边为时间相同但警戒条件互斥

C.转移中的事件:事件是对一个在实践和空间上占有一定位置的有意义的事情的详细说明。

a.调用事件:对操作的调用。涉及两个以上对象,可为同步调用,也可异步调用

b.变化事件:时间依赖特定属性值的布尔表达式所表示条件的满足来触发状态的转换

警戒条件与变化事件的区别:

境界条件只是在引起转换的事件触发时和事件接收者对事件进行处理时被赋值一次;而变化

事件则可以被多次赋值直至条件为真,触发转换

c.时间事件:满足某一时间表达式即触发事件。有绝对时间和相对时间之分

d.信号事件:对象(发送者和接收者可为同一对象)接收到某信号的事件。信号是对象之间异

步发送/接收的,可以形成泛化关系。与调用事件相似,区别在于异步和同步。

D.一次状态转换的动作执行顺序

a.离开动作

b.转移动作

c.进入动作

d.状态内活动

3.绘制状态图步骤

(1)寻找对象主要的状态

(2)确定引起状态转换的事件

(3)确定转换进行时对象执行的相应动作

(4)细化状态内的活动与转换,用复合状态来展开细节

4.状态图应用说明

(1)对对象生命周期建模:主要描述对象能够响应的事件

(2)对反应型对象建模:对象可能处于稳定状态,从一个状态到另一个状态的转换所需触发条件,以及每个状态

改变时发生的动作

5.活动图概述

活动图是对系统动态方面建模的主要形式之一,描述需要做的活动以及执行活动的顺序。可用于描述具体的工作流程(用例分析时涉及多个用例的流程描述)或计算过程。

活动图是一种标书过程机理、业务过程以及工作流的技术。用来对业务过程、工作流、用例实现、程序实现来建模。

UML2.0,除去了“活动图是状态图的一种特例”这一规定

6.活动图基本概念

(1) 初始节点和活动终点:实心圆表示初始节点,圆圈内加实心圆表示活动终点

并不一定要定义活动终点。活动终点表示所有被触发的活动都执行完毕,没有待执行的活动 (2) 活动节点:表示一个活动

(3) 动作状态:执行原子的、不可中断的动作;不能有入口/出口动作,内部转移

(4) 活动状态:可以分解、被中断;可有入口/出口动作,内部转移

(5) 转换:当一个活动结束时,控制流马上传递给下一个活动节点,用箭头线表示

(6) 分支与警戒条件:分支用菱形表示,有一个进入转换和一个或多个离开转换,每个离开转换都有一个境界条件,用来表示满足什么条件时执行转换

(7) 合并条件:合并用菱形表示,有多个进入转化和一个出口转换,直走一条控制路径,无需同步。

(8) 分叉与汇合:都用加粗的水平线表示。分叉用于将控制流分为两个或多个并发运行的分支,每个分叉可以有一个进入转换和多个出口转化;汇合用于同步这些并发分支,达到共同完成一项事务的目的。每个

汇合可以有多个进入转化和一个出口转换

(9) 泳道:将活动用实线分成一些纵向的区域。每个区域代表特定类、人或部门的一个责任区。区分了负责活动的对象,明确地表示了哪些活动是由哪些对象进行 。泳道和类不是一一对应的关系 (10) 对象流:动作状态或者活动状态与对象之间的依赖关系,表示动作使用对象或者动作对对象的影响。

特点:一个对象可以由多个动作操纵;一个动作输出的对象可以作为另一个动作输入的对象;同一个对

象可以多次出现,每次出现表明该对象正处于对象生存期的不同时间点

用例活动图的组合

组合的活动图可以显示跨越多个用例的行为,显示相互联系的行为的整体。组合的活动图可以有多个起点,表示系统可以对多个外部事件做出不同的反应。

7.分解活动

(1) 一个活动可以分为若干个子活动,这些子活动本身可以组成一个活动图

(2) 一个不含内嵌套活动的活动称为简单活动;一个嵌套若干活动的活动称为组合活动,组合活动有自己的名字和相应的子活动图

(3) 子活动图必须提供一个起始点,同时,当高层活动输出很多触发事件时,应有相同个数的结束点

8.绘制活动图:直观易懂,与流程图相近;能读懂活动图,就能画出活动图

(1) 首先决定是否采用泳道:主要根据活动图中是否要体现抽活动的不同实施者

(2) 尽量使用分支、汇合等基本建模元素来描述活动控制流程

(3) 如需要,假如对象流以及对象的状态变化

(4) 建模关键是表示出控制流,其他建模元素都是围绕这一宗旨所进行的补充

9.活动图、状态图、流程图区别

(1)活动图与状态图

A.活动图着重表现从一个活动到另一个活动的控制流;状态图着重描述从对象的一个状态到另一个状态的

流程。

B.活动图是状态图的变形,它根据对象状态的变化捕捉动作(所完成的工作和活动)和它们的结果,表示

各个动作及其之间的关系。

C.与状态图不同,活动图中动作状态之间的迁移不是靠事件触发,当动作状态中的活动完成时迁移被触

发。

D.活动图中事件只能附加到开始点到第一个动作之间的迁移。同时还可有条件判定。条件判定符号可以有

多个携带条件的输出迁移,当某一个条件为真,迁移触发。

(2)活动图与流程图

活动图能够表示并发活动的情况,而流程图一般用来表示穿行过程。活动图功能包含了流程图。

10.小结

在以下情况下使用活动图:

(1) 对用例进行分析

(2) 分析多个用例的工作流

(3) 处理多线程

在以下情况一般不使用活动图

(1) 显示对象间合作(协作图)

(2) 显示对象在其生命周期内的运转情况(时序图)

11.动态建模中四种图的运用

(1) 不要对系统的每个类画状态图(太费精力,所以画出关心的某些类的行为)

(2) 为帮助理解类而画它的状态图,状态图描述跨越多个用例的单个对象的行为,而不适合描述多个对象间的行为合作

(3) 常将状态图和其他技术(顺序、协作、活动图)组合使用

(4) 顺序图和协作图适合描述单个用力中多对象的行为。顺序图突出对象间交互的顺序;协作图的布局方法可以更清楚地表示出对象之间静态的连接关系。

(5) 当行为较为简单时,顺序图和协作图是最好的选择,但当行为变复杂时,两种图失去其清晰度

(6) 显示跨越多用例或多线程的复杂行为,考虑使用活动图

(7) 顺序图和协作图仅适合描述对象之间的合作关系,而不适合对行为进行精确定义

(8) 描述多用例的单个对象的行为,应使用状态图

八、 构件图与部署图

1.概述

实现图显示系统实现时的一些特性,包括构件图和配置图。构件图显示代码本身的逻辑结构;配置图显示系统运行时刻的结构。

2.构件图概述

构件是系统中遵从一组接口且提供其实现的物理的、可替换的部分。每个构件体现了系统设计中特定类的实现。

构件图显示一组构件以及它们之间的相互关系,包括编译、链接或执行时构件之间的依赖关系。

构件图是对OO系统物理方面建模的2个图之一。

3.构建类型

(1) 部署构件:是构成一个可执行系统的充要构件,如:动态链接库、可执行文件、COM+、CORBA及企业级JavaBeans、动态Web页、数据库表等

(2) 工作产品构件:主要是开发过程的产物,包括创建实施构件的源代码文件及数据文件。这些构件可以产生部署构件。

(3) 执行构件:作为一个正在执行的系统的结果而被创建的

4.构件图元素

(1) 构件

Rose中的扩展构件

UML统一建模语言-实验报告2-活动图及状态图

《UML技术》课程实验报告 专业: 班级: 学号: 姓名: 日期: 2013 年 10 月 11 日

一、实验题目 活动图及状态图 二、实验目的 1.熟悉活动图的基本功能和使用方法。 2.掌握如何使用建模工具绘制活动图方法。 三、实验内容及原理 通过前面内容的学习,完成了对TJKD图书馆的图书馆管理系统的需求的初步分析,得出系统的用例图和相应的活动态。通过这两类图我们可以初步了解系统的业务处理过程,但对业务处理过程的处理状态间转换了解仍不够,这不利于设计人员对系统业务的进一步理解,而状态图能从对象的动态行为的角度去描述系统的业务活动。因此,指派你运用本节所学的状态图,完成如下任务: 1. 完成图书业务模块中还书用例的状态图。 1.业务分析:由前面章节对图书馆管理系统中的还书主要业务的描述和分析可知,还书业务的动态行为是由:空闲(idle)、图书查找(finding)、还书(reversion)、失败(Failure)、归还成功(Success)5种状态及激活相互转换的事件。 2.绘制状态图:请您根据分析运用UML绘制还书用例的状态图。 分析: 还书的状态图,还书的主要业务都是由管理员来完成,首先管理员必须先登录系统,并通过验证后,便可以进行下一步的操作,查找该书的相关信息,如存在,则进行还书操作,如不存在该信息,则给出提示信息; 四、实验步骤 第一个 (1)在用例图中,找到删除的用例,在删除用例上单击右键,在弹出的快捷菜单中选“New”,Rose 工具也会弹出一个菜单,选”Activity Diagram”,选中后单击,便可以新建好一个活动图。 (2)新建好活动图后,双击删除的活动图,然后把在左边的工具栏内点击“Swinlane“,在右边的图添加一个泳道,并命名为administrator.按照此步骤,再添加另一个泳道,并命名为SystemTool (3)接着在左边的工具上选取开始点,并在administrator的泳道上添加;添加完开始结点后,再来为此活动图添加活动,在左边的工具栏上选中Activity这个图标,在administrator这边的泳道上添加一个活动,命名为登录(login),再在开始结点和活动登录(login)之间添加活动关系 (4)完成步骤(2)后,登录输入需要对输入的信息进行验证,则在图中添加一个验证框结束(5)验证后,下一步的操作是查询需要删除的记录,添加一个活动,命名为delete (6)最后,在删除后,系统会返回操作结果给操作者;删除成功或删除失败系统都会有信息返回给操作者。 (7)根据分析设计情况,进一步添加或细化活动图 第二个 (1)在用例图中的还书(revesion)用例,单击右键,新建一个状态图,命名为revesion状态图,(2)双击“receivesion”状态图,展开后,在左边的工具栏上选取一个实心圆点,此结点为开始结点;当还书的时候,操作者先要询问系统的状态,如果系统忙,操作者则必需等待,因此,得到系统的两种状态

UML类图活动UseCase图状态机图

一、类图主要构成元素 1.类(Classes) 类包含3个组成部分。第一个是Java中定义的类名。第二个是属性(attributes)。第三个是该类提供的方法。 属性和操作之前可附加一个可见性修饰符。加号(+)表示具有公共可见性。减号(-)表示私有可见性。#号表示受保护的可见性。省略这些修饰符表示具有package(包)级别的可见性。如果属性或操作具有下划线,表明它是静态的。在操作中,可同时列出它接受的参数,以及返回类型,如下图所示: 2.包(Package) UML类图中包是一种常规用途的组合机制。UML中的一个包直接对应于Java中的一个包。在Java中,一个包可能含有其他包、类或者同时含有这两者。进行建模时,你通常拥有逻辑性的包,它主要用于对你的模型进行组织。你还会拥有物理性的包,它直接转换成系统中的Java包。每个包的名称对这个包进行了惟一性的标识。 3.接口(Interface) 接口是一系列操作的集合,它指定了一个类所提供的服务。它直接对应于Java中的一个接口类型。接口既可用下面的那个图标来表示(上面一个圆圈符号,圆圈符号下面是接口名,中间是直线,直线下面是方法名),也可由附加了<>的一个标准类来表示。通常,根据接口在类图上的样子,就能知道与其他类的关系。 二、活动图主要构成元素 1、活动状态图(Activity) 活动状态用于表达状态机中的非原子的运行,其特点如下: (1)、活动状态可以分解成其他子活动或者动作状态。 (2)、活动状态的内部活动可以用另一个活动图来表示。 (3)、和动作状态不同,活动状态可以有入口动作和出口动作,也可以有内部转移。 (4)、动作状态是活动状态的一个特例,如果某个活动状态只包括一个动作,那么它就是一个动作状态。UML中活动状态和动作状态的图标相同,但是活动状态可以在图标中给出入口动作和出口动作等信息。 2、动作状态(Actions) 动作状态是指原子的,不可中断的动作,并在此动作完成后通过完成转换转向另一个状态。动作状态有如下特点: (1)、动作状态是原子的,它是构造活动图的最小单位。 (2)、动作状态是不可中断的。 (3)、动作状态是瞬时的行为。

UML状态图编写规范

UML状态图规范说明 一、状态图简介 状态图(Statechart Diagram)是描述一个实体基于事件反应的动态行为,显示了该实体如何根据当前所处的状态对不同的时间做出反应的。通常我们创建一个UML状态图是为了以下的研究目的:研究类、角色、子系统、或组件的复杂行为。 状态图用于显示状态机(它指定对象所在的状态序列)、使对象达到这些状态的事件和条件、以及达到这些状态时所发生的操作。 状态机用于对模型元素的动态行为进行建模,更具体地说,就是对系统行为中受事件驱动的方面进行建模(请参见概念:事件与信号)。状态机专门用于定义依赖于状态的行为(即根据模型元素所处的状态而有所变化的行为)。其行为不会随着其元素状态发生变化的模型元素不需要用状态机来描述其行为(这些元素通常是主要负载管理数据的被动类)。 状态是对象执行某项活动或等待某个事件时的条件。对象可能会在有限 长度内保持某一状态。状态具有以下几项特征: 二、状态图内容 2.1 转移 转移是两个状态之间的关系,它表示当发生指定事件并且满足指定条件时,第一个状态中的对象将执行某些操作并进入第二个状态。当发生这种状态变更

时,即“触发”了转移。在触发转移之前,可认为对象处于“源”状态;在触发转移之后,可认为对象处于“目标”状态。转移具有以下几项特征: 一个转移可能有多个源状态,在这种情况下,它将呈现为一个从多个并行状态出发的结合点;一个转移也可能有多个目标状态,在这种情况下,它将呈现为一个到多个并发状态的叉形图。 2.2 事件触发器 在状态机环境中,事件是指可触发状态转移的激励的发生。事件可能包括信号、调用、时间推移或状态变更。信号或调用可能具有其值可用于转移的参数,其中包括警戒条件和操作的表达式。也可能会有无触发器的转移,这样的转移没有事件触发器。这种转移也被称为完成转移,它们在源状态完成其活动后将被隐含触发。 2.3 警戒条件 当转移的触发事件发生时,将对警戒条件进行求值。只要警戒条件不重叠,就可能会有来自同一源状态并具有同一事件触发器的多个转移。在事件发生时,只为转移进行一次警戒条件求值。该布尔表达式可能会引用对象的状态。 2.4 操作

UML实例图讲解

UML实践----用例图、顺序图、状态图、类图、包图、协作图 2009-01-20 作者:Randy Miller 来源:网络 面向对象的问题的处理的关键是建模问题。建模可以把在复杂世界的许多重要的细节给抽象出。许多建模工具封装了UML(也就是Unified Modeling Language?),这篇课程的目的是展示出UML的精彩之处。 UML中有九种建模的图标,即: ?用例图 ?类图 ?对象图 ?顺序图 ?协作图 ?状态图 ?活动图 ?组件图 ?配置图 本课程中的某些部分包含了这些图的细节信息的页面链接。而且每个部分都有一个小问题,测试一下你对这个部分的理解。 为什么UML很重要? 为了回答这个问题,我们看看建筑行业。设计师设计出房子。施工人员使用这个设计来建造房子。建筑越复杂,设计师和施工人员之间的交流就越重要。蓝图就成为了这个行业中的设计师和施工人员的必修课。 写软件就好像建造建筑物一样。系统越复杂,参与编写与配置软件的人员之间的交流也就越重要。在过去十年里UML就成为分析师,设计师和程序员之间的“建筑蓝图”。现在它已经成为了软件行业的一部分了。UML提供了分析师,设计师和程序员之间在软件设计时的通用语言。 UML被应用到面向对象的问题的解决上。想要学习UML必须熟悉面向对象解决问题的根本原则――都是从模型的建造开始的。一个模型model就是根本问题的抽象。域domain就是问题所处的真实世界。 模型是由对象objects组成的,它们之间通过相互发送消息messages来相互作用的。记住把一个对象想象成“活着的”。对象有他们知道的事(属性attributes)和他们可以做的事(行为或操作behaviors or operations)。对象的属性的值决定了它的状态state。 类Classes是对象的“蓝图”。一个类在一个单独的实体中封装了属性(数据)和行为(方法或函数)。对象是类的实例instances。 用例图 用例图Use case diagrams描述了作为一个外部的观察者的视角对系统的印象。强调这个系统是什么而不是这个系统怎么工作。 用例图与情节紧紧相关的。情节scenario是指当某个人与系统进行互动时发生的情况。下面是一个医院门诊部的情节。 “一个病人打电话给门诊部预约一年一次的身体检查。接待员找出在预约记录本上找出最近的没有预约过的时间,并记上那个时间的预约记录。”

UML状态图文档

UML状态图文档 题目要求: 题目一: (1)Windows的图形用户界面(GUI)有多种状态,请画一张GUI的状态图。(不需要很详尽,只需画出状态和之间的转换关系) (2)在GUI工作时,它不仅仅是等待、识别、显示用户输入,还可能要监视系统的时钟或者定期更新应用程序的界面显示。请据此画出GUI工作状态的详细状态图。 题目二: 电梯系统有如下几个状态:空闲状态(Idle),运行状态(Run),上升状态(Moving Up),下降状态(Moving Down),停止状态(Stop),开门状态(Door Open),关门状态(Door Close)。请根据这几个状态,画一张状态图。 题目一(1) 状态分析: 1、状态类型:开机状态(Start)、睡眠状态(Sleep)、工作状态(Run)、关机状态(Colse) 2、初始状态:开机状态 3、状态装换 从开机状态开始,在电脑启动后,WINDOWS GUI进入工作状态。 在工作状态下如果用户选择SLEEP选项或者电脑长期没有得到请求,WINDOWS进入睡眠状态。 睡眠之后如果得到启动电脑进入工作状态。 在睡眠状态下如果电脑电力不足将直接进入关机状态。 在工作状态下选择关机选项或者电脑电力不足电脑进入关机状态。 状态图: 题目一(2) 状态分析: 1、状态类型:等待状态(Waiting)、识别状态(Chceking)、显示状态(Printing)、监视状

态(Overlooking)、更新状态(Updating) 2、初始状态:等待状态 3、状态转换 在等待状态下,接受用户输入即进入识别状态。 在识别成功后进入显示状态。 显示结束后系统进入等待状态。 在等待识别显示状态过程中,经过一段时间GUI都将进入监视状态或者更新状态检查系统时钟。 在显示状态中,经过一段时间系统可以进入更新状态,定期更新应用程序的显示界面。 无论是监视状态还是更新状态,在工作结束后都将回到原来进入的状态,即等待识别显示状态或者显示状态。 状态图: 题目二 状态分析: 1、状态类型:空闲状态(Idle),运行状态(Run),上升状态(Moving Up),下降状态(Moving Down),停止状态(Stop),开门状态(Door Open),关门状态(Door Close) 2、初始状态:空闲状态(Idle) 3、状态装换 从空闲状态开始,如果电梯被请求了,电梯进入运行状态。 运行过程中,如果期望楼层大于当前楼层,电梯上升,反之电梯下降。 在上升或者下降过程中,当期望楼层等于当前楼层时,电梯停止。 在经历一段时间等待后,电梯门开。 电梯门打开一段时间后,电梯门关闭。 若电梯没有任何请求,电梯进入空闲状态,有请求继续进入运行状态。 状态图:

解析UML活动图和状态图的作用和区别

本文和大家重点讨论一下UML活动图和状态图的概念,这两种图都有各自的特点和作用,那么他们之间有什么区别和联系呢,请看本文详细介绍。 UML活动图和状态图 一、UML活动图: ◆流程图常被用来建立算法模型 ◆UML活动图与流程图类似,不同在于它支持并行活动. ◆缺点:不能清楚的表示 二、作用: 1、描述一个操作的执行过程中所完成的工作或者动作 2、描述对象内部的工作 3、描述用例的执行 4、处理多线程 5、显示如何执行一组相关的动作,以及这些动作如何影响周围对象 三、以下情况不用UML活动图 1、显示对象之间的合作 2、显示对象在其生命周期内的运转情况。 这两点是通过序列图和协作图完成的。 四、UML活动图的基本要素: ◆活动状态 ◆活动状态之间的转移(箭头) ◆判断(决策点) ◆保证条件 ◆同步条:活动之间的同步 ◆起点和终点 --起点有且只有一个,终点可以有n个。 五、泳道: 用于对UML活动图中的活动进行分组,用于描述对象之间的合作关系。 ----所谓泳道技术,就是将活动用线分成一些纵向区域,这些纵向区域称为泳道。 UML状态图 一、状态图: ◆描述一个特定对象的所有可能状态以及由于各种事件的发生而引起的状态之间的转换。例如呼叫中心系统。

◆状态图符 --状态:矩形(四角圆弧) --转移 --起点 --终点 1、状态机: ◆一种行为:描述了一个对象或一个交互在生命周期内响应事件所经历的状态序列。 ◆单个类或者一组类之间协作的行为可以用状态机来描述 ◆一个状态机涉及到一些其他元素,包括状态、转换、事件 2、状态: 在对象的生命周期中满足某些条件、执行某些活动或等待某些事件的一个条件活状况。1)名称 2)进入协作和退出动作 3)内部转换 4)子状态 5)延迟事件 3、转换:两个状态之间的一种关系,表示对象将在第一个状态中执行一定的动作并在某个特定事件发生而某个特定条件满足时进入第二个状态。 1)源状态 2)事件触发 3)监护条件 4)动作 5)目标状态 例子:电话机状态图 二、UML活动图与状态图的区别: 状态:行为的结果 活动:行为的动作 在uml中图符不一样。 注意:实际项目中,UML活动图不是必须的。 用到UML活动图的情况: --描述并行的过程或这行为 --描述一个算法 --描述一个跨越多个用例的活动 状态图描述了一个具体对象的可能状态以及他们之间的转换。 单独的说UML活动图很抽象,但是当把UML活动图与流程图进行简单的比较之后就

怎么画uml状态图

怎么画uml状态图 导语: UML状态图是描述一个实体基于事件反应的动态行为,在软件开发行业运用的较为广泛。作为行业的基础图示,我们很有必要学习这类图形该如何绘制。 免费获取免费UML建模软件:https://www.doczj.com/doc/7715045830.html,/software-diagram-tool/umldiagramsoftware/ 可以轻松绘制UML状态图的软件 亿图图示软件可以轻松绘制理想的uml状态图。UML状态图本质是一种连接线、图框与少量文字构成的图表,但绘制过程需要使用特殊的符号。亿图作为一款专业的图形图表设计软件,配有齐全的绘图符号,能够满足广大绘图用户的需求。即使是零基础的绘图者,也能够快速入门,并绘出具有专业水准的状态图。

系统要求 Windows 2000, Windows XP, Windows 2003, Windows Vista, Windows 7,Windows 8, Windows 10 Mac OS X 10.10 + Linux Debian, Ubuntu, Fedora, CentOS, OpenSUSE, Mint, Knoppix, RedHat, Gentoo及更多 亿图图示绘制“UML状态图”的特点 ●例子供参考:软件提供相关的例子,供用户参考学习,也可以直接使用模板 进行修改。 ●更多绘图功能:软件不仅仅可以回绘制UML所有类型的图示,还可以绘制 流程图、思维导图等。 ●独特的中文软件:这是一款仅有的国产图形图表设计软件,比国外软件更懂 国人的操作习惯。 ●便捷的操作:简单的拖拽式操作,让零基础的绘图者也能够享受软件带来的 便利。

软件工程---UML状态图和活动图的绘制

内容: UML状态图和活动图的绘制 作业提交时间:20 年月日 姓名:学号:班级:计算机短号: 1 在操作系统中,进程包括就绪、运行、阻塞、挂起等状态,以及初态就绪和程序运行结束后的终态。就绪状态获得CPU时间片转为运行态;运行态时间片用完转为就绪态;运行态不满足所需资源转为阻塞态,阻塞态若资源满足则回到就绪态。考虑到内存空间,还有挂起和唤醒行为。请结合操作系统上上述相关知识,给出一般进程的可能的状态图,并要求给出每个状态具体的进入工作、退出动作以及驻留改状态时可能执行的动作。 答:首先确定好进程的基本状态以及个状态之间的转换关系。 进程的基本状态:就绪,运行,阻塞,挂起,终止。 进程各个状态之间的转换关系如下图所示: 2 在图书管理系统中,"新增读者信息"用例属于读者信息管理中的一个功能,主要用于在系统中增加新的读者信息,其具体的办理流程是:(1)"读者"填写申请表,并交给"图书管理员"; (2)"图书管理员"将申请表中的信息通过录入界面,输入到图书管理系统;(3)系统中的"业务逻辑"组件将判断输入的信息是否合法; (4)如果不合法则转入步骤(5),否则转入步骤(6); (5)显示"添加错误信息",转到(8); (6)在“数据库”添加相信的用户信息; (7)显示"添加成功信息";

(8)结束。 请绘制该过程的活动图。 答: 按照题目要求画出读者增添信息活动图如下所示: 作业心得: 通过本次作业更深的了解了状态图和活动图的基本概念。结合实际问题画出对应的状态图和活动图给人一种特别形象的流程感觉。通过开始到结束之间的状态之间的转换关系清楚的体现出一个工作的循序以及各种判断。两种图主要用于描述用例内部的工作流程。显示如何执行一组相关的动作,以及这些动作如何影响周围对象的基本路线。在此过程当中更进一步的掌握了如何使用建模工具的方法和思路。特定对象的所有可能状态以及由于各种事件的发生而引起的状态之间的转换充分展示一各活动的全部层面。 教师评语:

UML状态机图介绍

UML状态机图 1.状态机图的作用 状态机图是用来为对象的状态及造成状态改变的事件建模。UML的状态机图主要用于建立对象类或对象的动态行为模型,表现一个对象所经历的状态序列,引起状态或活动转移的事件,以及因状态或活动转移而伴随的动作。状态机图也可用于描述Use Case,以及全系统的动态行为。 状态机图表示一个模型元素在其生命期间的情况:从该模型元素的开始状态起,响应事件,执行某些动作,引起转移到新状态,又在新状态下响应事件,执行动作,引起转移到另一个状态,如此继续,直到终结状态。 2.状态机图的基本元素 状态机图的基本元素包括:状态、转移、事件、伪状态和复合状态。 状态图由状态(state,圆角矩形)与转换(transition,连接状态的箭头)组成。引起状态改变的触发器(trigger)或者事件(event)沿着转换箭头标示。如图所示灯光有2个状态:off与on。当lift switch或者lower switch事件被触发时,灯光状态会改变。 图表1 状态图的基本元素 状态图通常有初始伪状态(initial pseudostate)和最终状态(final state),分别表示状态机的开始和结束。初始状态用实心圆表示,终止状态用牛眼表示。

图表2状态图中的初始伪状态与最终状态 2.1状态(state) 状态是指在对象生命周期中满足某些条件、执行某些活动或等待某些事件的一个条件和状况。一个状态通常包括名称、进入/退出活动、内部转换、子状态和延迟事件等五个部分组成。 图表3 带分栏的状态 在状态图的下面部分可以标识内部活动,包括事件和动作(event/action)。Entry和exit事件是标准的,任何一个进入状态的转换都将会调用entry动作,任何一个退出状态的转换都将会调用exit动作,而且也可以添加自己的事件。与do行为不同,进入和退出行为是无法被中断的。 图表4状态的内部行为 例如,咖啡机正在煮咖啡的状态(Brewing),并且可以把行为写在状态内。

UML状态图和活动图的设计(第五个实验)

湖南文理学院实验报告 课程名称:UML建模技术实验 实验名称:UML状态图和活动图的设计成绩: 学生姓名:傅湘黔专业:计算机科学与技术班级、学号: 201017010220 同组者姓名:实验日期: 一、实验目的: ①掌握状态的设计、名字域、转移域、动作域的设计、状态转移的设计; ②掌握状态图和活动图的设计。 二、实验原理: 时序图(Sequence Diagram),亦称为序列图或顺序图,是一种UML行为图。它通过描述对象之间发送消息的时间顺序显示多个对象之间的动态协作。它可以表示用例的行为顺序,当执行一个用例行为时,时序图中的每条消息对应了一个类操作或状态机中引起转换的触发事件。时序图描述对象是如何交互的,并且将重点放在消息序列上。也就是说,描述消息是如何在对象间发送和接收的。 所谓协作是指在一定的语境中一组对象以及用以实现某些行为的这些对象间的相互作用。它描述了在这样一组对象为实现某种目的而组成相互合作的“对象社会”。协作图就是表现对象协作关系的图,它表示了协作中作为各种类元角色的对象所处的位置,在图中主要显示了类元角色(Classifier Roles)和关联角色(Association Roles)。类元角色描述了一个对象,关系角色描述了协作关系中的链。 与序列图中明确表示了角色之间的关系,通过协作角色来限定协作中的对象和链接。另一方面,协作图不将时间作为单独的维来表示,所以必须使用顺序号判断消息的顺序以及并行线程。序列图和协作图表达的是类似的信息,虽然它们使用的不同的方法表示,但是可以通过适当的方式将它们进行转换。 三、实验内容: ①通过对BBS论坛系统的需求分析,绘制状态图; ②通过对BBS论坛系统的需求分析,绘制活动图。 具体内容如下: (一)BBS论坛系统的需求分析 1、系统功能需求 (1)从前台用户和游客角度,系统应包括:用户注册,用户登录,浏览文章,发表文章,帖子查询。 (2)从论坛管理员角度:会员管理,帖子管理,论坛分类管理,帖子分类。

UML 状态图 StateChart Diagram

A、State Diagram(状态图)、State Machine Diagrams(状态机图) 状态机图是说明一个元素(通常是类)能在不同状态之间变动。状态机图的其它方面进一步描述和解释其运动和行为。 状态图主要用来描述对象、子系统、系统的生命周期。通过状态图可以了解到一个对象所能到达的所有状态以及对象收到的事件(收到消息,超时,错误,条件满足)对对象状态的影响等。 状态 所有对象都有状态,状态是对象操作的前一次活动的结果。类的状态由类中的指定属性来说明。 事件 当某些事情发生时对象的状态发生改变,我们称改变对象状态的事情为事件。 B、状态图的模型元素 B.1、Initial(起点)初始态 Initial元素是伪状态用于表明一个复合状态的默认状态。可以在每一个复合状态的区域有一个初始顶点。 B.2、Final(终点)终态 B.3、State(状态) State描述一些不变条件成立的情形。这个条件可以是静态的(等待某个事件)也可以是动态的(正在执行一组活动)。状态建模通常用于阐述类。 你可以适用State的operation(操作)来定义enter(进入)、internal(内部)、exit(退出)动作。State 也可以有Attributes(属性)。 B.3、State Machine(状态机) 状态机是一组相关状态元素的容器。你可以创建状态机图的各个部分。 B.4、Synch(同步) Synch状态用于描述状态机的并发部分同时发生。在同步发生后Synch状态的新兴过滤路径将合并。 B.5、Choice(选择) Choice伪状态用于组成复制过滤路径,例如:在状态机图中一个过滤的路径取决于一个动态的运行时的条件。这个运行时的条件是由状态机路径选择决定的。 B.5、Junction(汇合) Junction伪状态用于设计复杂过滤路径。一个Junction可以用来汇合或组合多个过滤路径为一个过滤路径。另外一个Junction可以把一个进来的路径分割成多个路径。和叉不同的是Junction可以看守每一个流入或流出过滤,这样看守表达式是false,过滤就被阻止。 B.6、Entry(进入) 入口点伪状态是用来定义一个状态机开始。每个区域都存在一个切入点,指导并发初始状态配置。 B.6、Exit(离开) Exit伪状态用于子状态机表述状态机过滤退出点。 B.7、Terminate(终止) Terminate伪状态表示状态机终止执行。 B、状态图的关系 Transition(过渡):表示状态之间的状态转换。状态转换线旁边的标签表示事件。

火车购票系统UML类图 时序图 状态图 协作图 活动图 对象汇总

《UML 面向对象分析》课程 实践项目报告 项目名称:网上订购火车票系统 项目组成员:学号:班级:指导教师: 2008年 11 月 10 日 目录 1 需求分析 .................................................................................... 1 1.1 需求概述 ............................................................................ 1 1. 2 需求分 析 ............................................................................ 2 1.3 需求模型(用例 图) ........................................................ 6 2 静态模 型 .................................................................................... 7 2.1 类 图 .................................................................................... 7 2.2 对象 图 ................................................................................ 9 2.3 包 图 .................................................................................. 11 3 动态模 型 .................................................................................. 12 3.1 时序 图 .............................................................................. 12 3.2 状态 图 .............................................................................. 15 3.3 协作 图 .............................................................................. 16 3.4 活动 图 .............................................................................. 17 4 项目组成员分工说 明 .............................................................. 18 5 总 结 .......................................................................................... 19 6 参考资 料 (20) 1 需求分析 1.1 需求概述

UML各种图例齐全—用例图、类图、状态图、包图、协作图、顺序图详细说明画法和功能

UML各种图例 面向对象的问题的处理的关键是建模问题.建模可以把在复杂世界的许多重要的细节给抽象出.许多建模工具封装了UML(也就是Unified Modeling Language?),这篇课程的目的是展示出UML的精彩之处. UML中有九种建模的图标,即: ?用例图 ?类图 ?对象图 ?顺序图 ?协作图 ?状态图 ?活动图 ?组件图 ?配置图 本课程中的某些部分包含了这些图的细节信息的页面链接.而且每个部分都有一个小问题,测试一下你对这个部分的理解. 为什么UML很重要? 为了回答这个问题,我们看看建筑行业.设计师设计出房子.施工人员使用这个设计来建造房子.建筑越复杂,设计师和施工人员之间的交流就越重要.蓝图就成为

了这个行业中的设计师和施工人员的必修课. 写软件就好像建造建筑物一样.系统越复杂,参与编写与配置软件的人员之间的交流也就越重要.在过去十年里UML就成为分析师,设计师和程序员之间的“建筑蓝图”.现在它已经成为了软件行业的一部分了.UML提供了分析师,设计师和程序员之间在软件设计时的通用语言. UML被应用到面向对象的问题的解决上.想要学习UML必须熟悉面向对象解决问题的根本原则――都是从模型的建造开始的.一个模型model就是根本问题的抽象.域domain就是问题所处的真实世界. 模型是由对象objects组成的,它们之间通过相互发送消息messages来相互作用的.记住把一个对象想象成“活着的”.对象有他们知道的事(属性attributes)和他们可以做的事(行为或操作behaviors or operations).对象的属性的值决定了它的状态state. 类Classes是对象的“蓝图”.一个类在一个单独的实体中封装了属性(数据)和行为(方法或函数).对象是类的实例instances. 用例图 用例图Use case diagrams描述了作为一个外部的观察者的视角对系统的印象.强调这个系统是什么而不是这个系统怎么工作. 用例图与情节紧紧相关的.情节scenario是指当某个人与系统进行互动时发生的情况.下面是一个医院门诊部的情节. “一个病人打电话给门诊部预约一年一次的身体检查.接待员找出在预约记录本上找出最近的没有预约过的时间,并记上那个时间的预约记录.” 用例Use case是为了完成一个工作或者达到一个目的的一系列情节的总和.角色actor是发动与这个工作有关的事件的人或者事情.角色简单的扮演着人或者对象的作用.下面的图是一个门诊部Make Appointment用例.角色是病人.角色与用例的联系是通讯联系communication association(或简称通讯communication)

UML建模之状态图(Statechart Diagram)

状态图目录: 一、状态图简介(Brief introduction) 二、状态图元素(State Diagram Elements) 1、状态(States) 2、转移(Transitions) 3、动作(State Actions) 4、自身转移(Self-Transitions) 5、组合状态(Compound States) 6、进入节点(Entry Point) 7、退出节点(Exit Point) 8、历史状态(History States) 9、并发区域(Concurrent Regions) 三、状态图案例分析(State Diagram Example Analysis) 四、总结(Summary) 一、状态图简介(Brief introduction) 状态图(Statechart Diagram)主要用于描述一个对象在其生存期间的动态行为,表现为一个对象所经历的状态序列,引起状态转移的事件(Event),以及因状态转移而伴随的动作(Action)。一般可以用状态机对一个对象的生命周期建模,状态图用于显示状态机(State Machine Diagram),重点在与描述状态图的控制流。 如下图例子,状态机描述了门对象的生存期间的状态序列,引起转移的事件,以及因状态转移而伴随的动作(Action). 状态有Opened、Closed、Locked。 事件有Open、Close、Lock和Unlock。

注意: 1、并不是所有的事件都会引起状态的转移,比如当门是处于【Opened】状态,不能 进行【Lock】事件。 2、转移(Transition)有警备条件(guard condition),比如只有doorWay->isEmpty 条 件满足时,才会响应事件。 二、状态图元素(State Diagram Elements) 1、状态(States) 指在对象的生命周期中的某个条件或者状况,在此期间对象将满足某些条件、执行某些活动活活等待某些事件。所有对象都有状态,状态是对象执行了一系列活动的结果,当某个事件发生后,对象的状态将发生变化。 状态用圆角矩形表示 初态和终态(Initial and Final States) 初态用实心圆点表示,终态用圆形内嵌圆点表示。 2、转移(Transitions) 转移(Transitions)是两个状态之间的一种关系,表示对象将在源状态(Source State)中执行一定的动作,并在某个特定事件发生而且某个特定的警界条件满足时进入目标状态(Target State)

相关主题
文本预览
相关文档 最新文档