软件工程实践-uml图总结(精)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
9〉确认每一个状态在某个时间组合之下都是可到达的。
(3) 活动图示例
活动状态表示成带有圆形边线的矩形,它含有活动的描述(普 通的状态盒为直边圆角)。简单的完成转换用箭头表示。和状 态图相似,活动图也有起点和终点符号,表示法和状态图一样 。
●
活动1
活动2
●
Page 11
(5) 活动图的建立步骤
Initialization
Canceled
Page 9
(2)状态图的建立步骤
1〉确定状态机的上下文,它可以是一个类、子系统或整个系统。 2〉选择初始状态和终结状态。 3〉发现对象的各种状态。注意应当仔细找出对问题有意义的对象状态属 性,这些属性具有少量的值,且该属性的值的转换受限制。状态属性值 的组合,结合行为有关的事件和动作,就可以确定具有特定的行为特征
实现视图( Implementation View),也称为组件(构件)视图 Page (Component 21 View)
3.2、图的总结
用例图(Use Case Diagram) 类图(Class Diagram) 对象图(Object Diagram) 组件图(Component Diagram) 静态视图
也被称为构件图
配置图(Deployment Diagram), 也被称为部署图, 实施图
Page 22
时序图(Sequence Diagram),
也被称为顺序图,序列图 协作图(Collaboration Diagram) 状态图(StateChart Diagram) 动态视图
modeName
serialNumber
addClothes(C:String)
removeClothes(C:string)
Page 3
turnON():Boolean
(2)对象图示例
类的属性在该类的每个对象中都有具体值。 对象名首写字母小写,后面根一个冒号,冒号后面是该对象 所属的类名,并且整个名字要带下划线。
(4)包图示例
包用附有标签的矩形表示
包图名
Page 6
(5)包图的建立步骤
1〉分析系统模型元素(通常是类),把概念上或语义上相近的模型元素 纳入一个包。注意可以从类的功能的相关性来确定纳入包中的类。以下 几点可作为分析对象类的功能相关性的参考 (1)如果一个类的行为和/或结构的变更要求另一个相应的变更,则这 两个类是功能相关的。 (2)如果删除一个类后,另一个类便变成是多余的,则这连个类是功 能相关的,这说明该剩余的类只为那个被删除的类所使用,他们之间有 依赖关系。 (3)如果两个类之间大量的频繁交互或通信,则这两个类是功能相关 的。 (4)如果两个类之间有一般/特殊关系,则这两个类是功能相关的。 (5)如果一个类激发创建另一个类的对象,则这两个类是功能相关的 。 (6)如果两个类不涉及统一个外部活动着,则这两个类不应放在同一 个包中。 (7)一个包应当具有高内聚性,包中的类应该是功能相关的。 Page 7
(1) 用例图示例
用例的发起者在用例图的左侧,接受者在用例图的右侧。参与者的名字 放在参与者图标的下方。关联线连接参与者和用例并且表示参与者与用 例之间有通信关系。关联线是实线,和类之间的关联线类似。
用例分析的一个好处是它能够展现出系统和外部世界之间的边界。参与 者是典型的系统外部实体,而用例是典型的属于系统内部。系统的边界 用一个矩形来代表,里面写上系统的名字。系统的用例装入矩形之内。
6) 区分主业务流和例外情况的事件流。可以把表达例外的情况的事 件流的用例图画成一个单独的子用例图。
7) 细化用例图,解决用例间的重复与冲入问题,简化用例中的对话 序列,用例图可以有不同的层次,高层次系统的用例可以分解为 若干个下属子系统中的子用例。
Page 2
(1)类图示例
在UML中一个矩形表示一个类的图标。 属性是类的一个特性,它描叙了类的对象(也就是类的实例)所具有的一 系列特性值。一个类可以具有零个到多个属性。属性名列表放在类名之下, 并且和类名之间用分隔号隔开。 操作是类能够做的事情或者你(或者另一个类)能对类做的事情。 操作名列表要放在属性名列表之下,两者之间用分隔线隔开 WashingMachine brandName
1〉找出负责实现工作流的业务对象。这些对象可以是现实业务领域中的 实体,也可以是一种抽象的概念或事物。为每一个重要的业务对象建 立一条泳道。 2〉确定工作流的初始状态和终结状态,明确工作流的边界。 3〉从工作流的初始状态开始,找出随时间而发生的活动和动作,把他们 表示成活动状态或动作状态。 4〉对于复杂的动作或多次重复出现的一组动作,可以把他们组成一个活 动状态,并且用另外一个活动图来展开表示。 5〉给出连接活动和动作的转移(动作流)。首先处理顺序动作流,然后 处理条件分支。最后处理分劈和接合。 6〉在活动图中给出与工作流有关的重要对象,并用虚箭线把他们与活动 状态或动作状态相连接。
2〉对于每一个包,标出其模型元素的可视性:公共 、保护或私有。 3〉确定包与包之间的依赖关系,特别是输入依赖。 4〉确定包与包之间的泛化关系,确定包元素的多态 性和重载。 5〉绘制包图。
Page 8
来自百度文库
(1)状态图示例
状态用具有圆形拐角的矩形表示,状态间带箭头的实线代表状 态的迁移,箭头指向目标状态。 图中的实心圆代表状态转移的起点,带圆圈的实心圆代表终 点。
Page 12
(1)顺序图示例
Page 13
(2)顺序图的建立步骤
1〉 找出参与交互的对象角色,把他们横向排列在顺序图的顶 部,最重要的对象安置在最左边,交互密切的对象尽可能相 邻。在交互中创建的对象在垂直方向应安置在其被创建的时 间点处。 2〉 对每一个对象设置一条垂直的向下的生命线。 3〉 从初始化交互的信息开始,自顶向下在对象的生命线之间 安置信息。注意用箭头的形式区别同步消息和异步消息。根 据顺序图是属于说明层还是属于实例层,给出消息标签的内 容,以及必要的构造型与约束。 4〉 在生命线上绘出对象的激活期,以及对象创建或销毁的构 造型和标记。 5〉 更具消息之间的关系,确定循环结构及循环参数和出口条 件。
:对象名1
:对象名3
Page 15
:对象名2
(4)协作图的建立步骤
1〉找出参与交互的对象角色,把他们作为图形的节点置在协作图中。最重
要的对象安置在图的中央,与他有直接交互的对象安置在邻近。
2〉设置对象的初始性质。 3〉说明对象之间的链接。首先给出对象之间的关联连接,然后给出其它连 接,并且给出必要的装饰,如构造型《global》《local》等。 4〉从初始化交互的消息开始,在链接上安置相应的消息,给出消息的序号 。注意用箭头的形式区别同步消息和异步消息。根据顺序图是属于说明层 还是属于实例层,给出消息标签的内容,以及必要的构造型和约束。 5〉处理一些特殊情况,如循环、自调用、回调、多对象等。
3〉确定联系。这是关键步骤。配置图中的联系包括节点与节点 之间的联系,节电与组件之间的联系,组件与组件之间的联系, 可以使用标准构造型或自定义新的构造型说明联系的性质。把系 统的组件如可执行程序,动态连接库等分配到节点上,并确定节 点与节点之间,节点与组件之间,组件与组件之间的联系,以及 他们的性质。
myWasher:WashingMachine brandName=“海尔” modeName=“小神童” serialNumber=“GL0214”
Page 4
(3)对象类图的建立步骤
1〉研究分析问题领域,确定系统的需求。 2〉发现对象和类,明确他们的含义和责任,确定属性和操作。 3〉发现类之间的静态联系。着重分析找出类之间的一般和特殊关系,部分 与整体关系,研究类的继承性和多态性,把类之间的静态联系用关联、泛化、 聚合、组合、依赖等联系表达出来,虽然对象类图表达的是系统的静态结构特 征,但是应当把对系统的静态分析与动态分析结合起来,更能准确地了解系统 的静态结构特征。 4〉设计类与联系。调整和细化已得到的对象类和类之间的联系,解决诸如命名 冲突、功能重复等问题。 5〉绘制对象类图并编制相应的说明。上述做法是直接从领域分析抽取对象和类 开始的,这是常规的面向对象的系统分析与设计的做法。Rational统一过程 主张采用用例驱动的系统分析与设计方法。从业务领域的分析中先抽取活动者 和用例,建立业务模型。业务模型包括业务用例模型、设计模型、实现模型和 测试模型。 Page 5
4〉绘制配置图。
Page 20
3、视图和图的总结
3.1、视图总结
用例视图(Use case View), 动态视图(Dynamic View) ,也称为行为视图(Behavior View), 也称 为并发视图(Concurrent View) 交互视图(Interactive View) 静态视图(Static View),也称为逻辑视图(Logic View),也称为结构 模型视图(Structural Model View)
系统
用例
参与者
参与者
Page 1
(2)用例图的建立步骤:
1) 找出系统外部的活动者和外部系统,确定系统的边界和范围。 2) 确定每一个活动者所希望的系统行为。
3) 把这些系统行为命名为用例。
4) 把一些公共的系统行为分解为一批新的用例,供其它的用例引用 。把一些变更的行为分解为扩展用例。
5) 绘制用例图。
1〉确定构件。首先要分解系统,考虑有关系统的组成管理、 软件的重用核物理节点的配置等因素,把关系密切的可执行程 序和对象库分别归入组件,找出相应的对象类、接口等模型元 素。 2〉对构件加上必要的构造型。可以使用uml的标准构造型《 executable》、《library》、《table》、《file》、《 document》,或自定义新的构造型,说明组件的性质。 3〉确定构件之间的联系。最常见的构件之间的联系是通过接 口依赖。一个构件使用某个接口,另一个构件实现该接口。 4〉必要时把构件组织成包。构件和对象、协作等模型元素一 样可以组织成包。 5〉绘制构件图。
Page 18
(3)部署图示例
节点用带有节点名称的立方体表示,节点间的关联代表通信路径。关 联有用来辨别不同路径的构造型。节点也有泛化关系。
Page 19
(4)配置图的建立步骤
1〉确定节点。注意:标示系统中的硬件设备,包括大型主机、 服务器、前端机、网络设备、输入/输出设备等。一个处理机是一 个节点,它具有处理功能,能够执行一个组件;一个设备也是一 个节点,她没有处理功能,但他是系统和现实世界的接口。 2〉对节点加上必要的构造型。可以使用uml的标准构造型或自 定义新的构造型,说明节点的性质。
Page 16
(1)构件图示例
构件用一边有两个小矩形的一个长方形表示,它可以用实线与代表构件 接口的圆圈相连 。 构件图表示了构件之间的依赖关系。每个构件实现(支持)一些接口, 并使用另一些接口。如果构件间的依赖关系与接口有关,那么构件可以 被具有同样接口的其他构件替代。
Page 17
(2)构件图的建立步骤
Page 14
(3)协作图示例
协作图是对象的扩展,协作图除了展示出对象之间的关联,还显示 出对象之间的消息传递。通常在协作图中省略掉关联的名字。 关联线附近的箭头线表示对象之间传递的消息,箭头指向消息接收 对象。消息名称和消息序号附在箭头线附近。消息的一般含义是触 发接收消息的对象执行它的一个操作。在协作图中,在消息名前面 加上消息的序号,它代表该消息在消息序列中的顺序。消息名和序 号之间用冒号隔开。
的状态。
4〉确定状态可能发生的装移。注意从一个状态可能转移到哪些状态,对 象的哪些行为可引起状态的转移并找出触发状态转移的事件。 5〉把必要的动作加到状态或转移上。 6〉要超状态、子状态、分支、历史状态等概念组织和简化一个复杂的状 态机。 7〉分析状态的并发和同步情况。 8〉绘制状态图。
Page 10
活动图(Activity Diagram)
Page 23
Static Diagrams
Use-Case Diagrams
Sequence Diagrams Collaboration Diagrams Class Diagrams Object Diagrams