UML统一建模语言 第九章 构件图和部署图
10讲 包图 构件图和部署图

包图的定义
包图和包 在UML中创建包图的目的有以下三个: 1. 在逻辑上把一个复杂的系统模块化 2. 组织源代码 3. 描述需求高阶概况 4. 描述设计的高阶概况
包的组成
名称
在UML中,包的标准形式是使用两个矩形进行表示的,一个小 矩形和一个大矩形,小矩形紧连结在大矩形的左上角上,包的名称 位于大矩形的中间 包的名称是一个字符串,它有两种形式:简单名和路径名。其 中,简单名仅包含一个名称字符串;路径名是以包处于的外围包的 名字作为前缀并加上名称字符串,如下图所示。
软件系统体系结构建模——包图
• 2、系统业务对象层
系统服务接口界面包:起承上启下的作用,设置用 户窗口与系统各种实现具体功能的接口界面的连接
业务对象管理包:根据用户窗口接口界面的要求, 实施对系统的业务对象的有效管理
外部业务对象包:对过去系统遗留下来的有使用价 值部分进行包装 实际业务对象包:形成能实现系统功能的实际的业 务对象集,包括系统新创建的业务和外部业务对象
系统体系结构设计 数据结构设计 用户界面设计 算法设计
系统体系结构概述
• 系统体系结构用来描述系统各部分的结构、 接口以及它们用于通信的机制。 • 系统体系结构建模首先要建立基本的模型, 并把这些模型映射到系统需要的硬件单元 上。
系统体系结构概述
• 体系结构设计过程中的主要活动:
系统分解:将系统分解为若干个相互作用的子系统 模块分解:将子系统进一步划分为模块
包图中的关系
泛化关系
泛化关系表示了事物的一般和特殊的关系。如果二个 包之间存在有泛化关系,就是指其中的特殊性包必须遵 循一般性包的接口。包之间的泛化联系与类之间的泛化 关系十分类似,类之间的泛化的概念和表示在此大都可 以使用如下图所示。
《统一建模语言(UML)》第9章 组件图和部署图

例如,编写文档和相关帮助的人员不直接参与系统的分析和设计,然而他们 对系统的理解直接影响到系统文档的质量,而组件图是帮助他们理解系统 的有力工具。
9.1.1 组件图元素
构成组件图的元素包括:
组件(component) 接口(interface) 关系(relationship)
还可以包括包(package)和子系统(subsystem) 它们有助于将系统中的模型元素组织成更大的组块。
Processor
Device
9.2 部署图
2.组件(Component)
节点和组件的关系:
组件是参与系统执行的事物,而节点是执行组件的事物。 组件表示逻辑元素的物理模块,而节点表示组件的物理部署。
9.2 部署图
3.关系(relationship)
部署图中也可以包括依赖、泛化、关联及实现关系。部署图中的依赖关系谢谢观看Fra bibliotek任务解决
小结
组件图是对面向对象系统的物理方面建模时使 用的两种图之一,用于描述软件组件以及组件 之间的组织和依赖关系,构成组件图的元素包 括组件(component)、接口(interface)和关系 (relationship)。 部署图是用于描述系统硬件的物理拓扑结构以 及在此结构上运行的软件的图形,部署图可以 显示计算节点的拓扑结构、通信路径、节点上 运行的软件、软件包含的逻辑单元(对象、类 等)。构成部署图的元素主要是节点(node)、 组件(component)和关系(relationship)。
9.1.1 组件图
1.组件(Component)
组件是定义了良好接口且提供实现的一个物理部件 是指类的物理实现,表示将类、接口等逻辑元素打包而形
08,09构件图和部署图

1 构件图概要
构件图用于静态建模, 构件图用于静态建模,是表示构件类型的组织以 及各种构件之间依赖关系的图。 及各种构件之间依赖关系的图。 构件:可替换的物理部分,包括软件代码、脚本 构件:可替换的物理部分,包括软件代码、 或命令行文件,也可以表示运行时的对象,文档, 或命令行文件,也可以表示运行时的对象,文档, 数据库等。 数据库等。 构件图通过对构件间依赖关系的描述来估计对系 统构件的修改给系统可能带来的影响。 统构件的修改给系统可能带来的影响。
部署图
1 部署图概要 部署图用于静态建模, 静态建模 部署图用于静态建模,是表示运行时过程节点结 构件实例及其对象结构的图。 构、构件实例及其对象结构的图。 如果含有依赖关系的构件实例放置在不同节点上, 如果含有依赖关系的构件实例放置在不同节点上, 部署视图可以展示出执行过程中的瓶颈。 部署视图可以展示出执行过程中的瓶颈。 部署图的两种表现形式: 部署图的两种表现形式:实例层部署图和描述层 部署图(会在后面的实例中给出 会在后面的实例中给出)。 部署图 会在后面的实例中给出 。
5 关于部署图与构件图
部署图与构件图相同的构成元素: 部署图与构件图相同的构成元素: 构件、接口、构件实例、构件向外提供服务、 构件、接口、构件实例、构件向外提供服务、构件要 求外部提供的服务。 求外部提供的服务。 部署图与构件图的关系: 构件图的关系 部署图与构件图的关系: 部署图表现构件实例; 部署图表现构件实例; 构件图表现构件类型的定义。 构件图表现构件类型的定义。 部署图偏向于描述构件在节点中运行时的状态, 部署图偏向于描述构件在节点中运行时的状态,描述了构 件运行的环境; 件运行的环境; 构件图偏向于描述构件之间相互依赖支持的基本关系。 构件图偏向于描述构件之间相互依赖支持的基本关系。
UML组件图和部署图实践课件

实验十、十一组件图和部署图一、实验目的1.理解组件图的基本概念。
2.理解组件图的应用:逻辑部署。
3.理解部署图的基本概念。
4.理解部署图的应用:物理部署。
5.掌握组件图和部署图绘制的方法。
二、实验器材1.计算机一台。
2.Rational Rose 工具软件。
三、实验内容某图书管理系统的分析和设计已按计划完成类图和交互图的分析与设计,下一步将完成系统的组件图和部署图,现系统分析部指派您完成如下任务:完成系统的组件图。
四、实验步骤1. 绘制组件图分析:在某图书馆管理系统中,通过分析可以发现类图中的类应分为4个部分:1.用户接口模块(UI),主要负责系统和用户的交互,包括Frame类,Dialog类等。
2.业务对象模块(BO),主要负责处理系统中的业务计算,如借书,还书等功能的具体操作。
3.数据存储模块(DB),主要负责处理对数据的存储。
4.通用工具模块(UTIL),包括系统中通用函数。
通过一个主程序StartClass来启动。
由于系统中的类较多,这里以业务对象模块(BO)为例来讲解如何创建组件图,BO模块中包括Item类:书目类,表示一本实际存在的书籍或杂志Loan类:借书业务类,将借阅者和图书馆关联起来,一个Loan对象表示借出的一本书 BorrowerInfomation类:借阅者信息类,表示一个借阅者。
Title类:表示一种书或一种杂志。
如《C++编程思想》就是一种书,用1个title 表示,如果有2本这样的书,则需要用2个Item表示。
Reservation类:预定信息类,表示一个预定信息。
Item类和Loan类之间互相依赖,Loan类和BorrowerInfomation类之间互相依赖,BorrowerInfomation类和Reservation类之间互相依赖,Reservation类和Title之间互相依赖,Title和Item类之间互相依赖。
绘图步骤:(1)在组件视图中双击Main图,出现图10.1,为编辑组件图做好准备,这时绘图工具栏中的图标如图中椭圆所示,其中具体含义可参看本节“补充图标”一段的介绍。
UML构件和部署

1
• 状态图以状态的形式表示软件实体 • 时序图对所开发的软件实体内发生的事件时 序提供直观的描述 • 协作图显示对象之间的通信 • 活动图显示软件实体内的活动,它代表了所 开发的系统内发生的事件流的图示视图
回顾
2
目标
• 理解构件图和部署图的概念 • 掌握绘制构件图和部署图 • 了解常用的 UML 绘图和建模工具
3
构件
• 构件是系统的可替代的 物理部分,它表示的是 实际的事物 • 构件是定义了良好接口 的物理实现单元,它是 系统中可替换的部分。
4
什么是构件图
构件图主要用于描述各种软件构件之间的 依赖关系。 所设计的系统中的构件的表示法及这些构 件之间的关系构成了构件图。 在构件图中,系统中的每个物理构件都使 用构件符号来表示。 构件图的基本目的是:使系统设计人员和 开发人员能够从整体上了解系统的所有物 理构件。
19
10
部署图示例 - 1
11
部署图示例 - 2
12
创建模型的主要工具
Rational Rose Visual UML Microsoft Visio
13
Rational Rose
IBM Rational Rose 是完整的可视建模解决方案, 借助该工具,开发人员、项目经理、工程师和分 析员在编写代码之前,对软件需求和系统构架进 行直观考察、加深理解并使之细化 Rose 是 Rational Software 的全面集成的综合解 决方案的一部分,该解决方案是为了满足当今具 有挑战性的软件开发需要而设计的 Rational Rose 可帮助您更快地开发可靠的代码 自动生成代码 构件测试
统一建模语言UML课件-构件图

}
这个“face” 就是对象的接口.
构件和接口
接口可以看做只包含操作的类。 实现关系:接口和实现这些接口操作的类之
间的关系 如果新旧两个构件的接口一致,则新的构件
可以替换旧的构件
构件图
In UML 1.x
In UML2.0
构件图
构件图
构件图
构件图
构件图
供接口和需接口
Ball and Socket Notation for Interfaces
GridLayout grid = new GridLayout(4, 1);
FlowLayout right = new FlowLayout(FlowLayout.RIGHT);
setLayout(grid); JPanel redPanel = new JPanel();
redPanel.setLayout(right);
ball symbol 表示供接口 socket symbol 表示需接口 将接口的名字写在符号旁
构件图
构件视图
黑盒视图(black-box view)
说明构件从外部看起来是怎样的,包括其供接口和需接口 ,以及它与其他构件的关系
不描述构件的内部实现,通常包含多个构件 长于说明系统中的关键构件以及它们如何连接
什么是构件
构件和类的主要区别
构件具有的责任通常比类大 构件通常包含并使用其他的类或构件来实现自己的功
能
构件之间最好是松散耦合的
对一个构件的修改不应该影响到系统的其余部分 通过接口访问构件有助于松散耦合和封装
构件图与部署

使用菜单栏或浏览器添加构件的步骤如下:01 选择Tools | Create | Component命令,此时光标变为“+”号。如果使用浏览器,可右键单击需要添加的包,在弹出的快捷菜单中选择New | Component命令,此时光标也变为“+”号。 以下的步骤与使用工具栏添加构件的步骤类似,按照前面使用工具栏添加构件的步骤添加即可。
部门 / 时间 / 姓名
1 构件图与部署图的基本概念 1.1 构件的基本概念 在构件图中,将系统中可重用的模块封装为具有可替代性的物理单元,称为构件,它是在一个系统或子系统中的封装单位,提供一个或多个接口,是系统高层的可重用部件。
虚包是一种只包含对其他包的元素进行引用的构件。
系统是指组织起来以完成一定目的的连接单元的集合,在系统中肯定有一个文件用来指定系统的入口,也就是系统程序的根文件,这个文件被称为主程序。子程序规范和子程序体是用来显示子程序的规范和实现体。 主程序 子程序规范和子程序体 包规范和包体 任务规范和任务体
在部署图中添加节点之间的连接的步骤如下:
02
单击图标,或者选择Tools | Create | Connection命令,此时的光标变为“↑”符号。
03
单击需要连接的两个节点中的任意一个节点。
04
将连接的线段拖动到另一个节点中即可。
如果要将连接从节点中删除,可以通过以下的步骤进行:
选中该连接。
按Delete键或者单击右键,在弹出的快捷菜单中选择Edit | Delete命令即可。
确定系统构件
可以与确定用例中的类和对象一样,根据用例的流程确定系统的构件。
将系统中的类和接口等映射到构件中 将系统中的类、接口等逻辑元素映射到构件中,一个构件不仅仅包含一个类或接口,也可以包含几个类或接口。
09-UML—CH9-构件图和配置图(YL)

上讲回顾
状态图的定义? 状态图的基本构成元素? 状态内部的动作通常有哪几种? 状态图中的状态有哪些种类? 如果一个组成状态的子状态对应的对象在其生命期内的 任何时刻都只能处于一个子状态,即多个子状态之间是 互斥的,不能同时存在,这种子状态称为 ? 子状态。 当E-mail程序中正在发送第一封邮件时,用户下达发送 第二封邮件执令就会被延迟,但第一封邮件发送完成后 ,这封邮件就会被发送。这种事件就属于 ? 事件。 自迁移和内部迁移的区别? 活动图与状态图的异同?
Fig1 presents an example component model, using the UML 2 notation, for the university system. Diagrams such as Figure 1 are often referred to as "wiring diagrams" because they show how the various software components are "wired together" to build your overall application. The lines between components are often referred to as connectors, the implication being that some sort of messaging will occur across the connectors.
2确定驻留构件3注明节点性质4确定节点之间的联系5绘制配置图图711销售管理子系统的配置图模型五配置图建模案例诊疗管理子系统的功能分析2构件图3配置图图712医院诊疗综合管理系统的用例图图713诊疗子系统的用例图图714诊疗管理子系统源代码到执行代码过程的构件图详细的构件图图715影像诊断用例的详细构件图图716诊疗管理子系统客户服务器式配置图图717影像诊断用例的配置图五本章小结本章小结
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
▪ 在UML中,标准构件使用一个左边有两 个小矩形的长方形表示,构件的名称位于 矩形内部,如下图:
9.1.2 构件的种类
1、实施构件 是构成一个可执行系统必要和充分
的构件,是在运行时创建的组件,也 可以是最终可运行系统产生的允许结 果,如动态链接库、可执行文件等。
2、配置构件
是运行系统需要配置的构件,是形成可 执行文件的基础。如,操作系统、数据库 管理系统等。
第九章 构件图和部署图
▪ 本章学习点:
基础内容:构件在UML中的表示和关系 重点掌握:构件图和部署图的构成元素 一般了解:部署图中节点的调度和进程
构件图
对构件和构件的关系建立模型有下列用途:
① 使客户能够看到最终系统的结构和功能 ② 让开发者有一个工作目标 ③ 让编写技术文档和帮助文件的技术人员能够理
3、工作产品构件
这类构件主要是开发过程的产物,包括 创建实施构件的源代码文件及数据文件。 这些构件并不直接参与可执行系统,而是 用来产生可执行系统的中间工作产品,它 们是配置组件的来源。
9.1.3 构件的表示
主要包括构件、子程序规范和子程序体、 主程序、数据库、虚包和包规范等。
1、构件 即一般意义上的构件,也可用ActiveX 、
▪ 系统开发者通过构件图呈现将要建立系统的高 层次架构视图,开始建立系统的各个里程碑,并 决定开发的任务分配以及需求分析。
▪ 系统管理员也通过构件图获得将运行于他们系 统上的逻辑构件的早期视图,较早地提供了关于 组件及其关系的信息。
部署图
当软件处于物理部署阶段时,我们关注 的是软件程序在计算机硬件系统中的物理 分布、通信方式和部署方法。
例子
9.3 部署图的构成
部署图是由节点、设备和连接这3个基本 的元素所组成。
部署图由节点和节点之间的联系组成, 描述了处理器、设备和软件构件运行时的 体系结构。
9.3.1 节点
节点是存在于运行时并代表一项计算资 源的物理元素,一般用于对执行处理或计 算的资源建模。
在建模过程中,可将节点分为两种类型: 即处理器和设备。
▪ 构件提供的接口使得其他的构件得以访问它。
接口的类型
构件向外部展现两种接口:供接口和需接口
➢ 供接口表示构件为客户提供的功能,它告 知用户构件如何被使用。构件至少有一个供接 口。供接口用“棒棒糖”式的图形表示,即由 一个封闭的圆形与一条直线组成。
➢ 需接口表示为了使构件工作,构件必须从 其他服务中所获得的功能,需接口表示该接口 是构件的成员变量或构件中类的成员变量。需 接口用“插座”式的图形表示,即由一个半圆 与一条直线组成。
是指组织起来以完成一定目的连接单元的 集合,在系统中,肯定有一个文件用来指 定系统的入口,也就是系统程序的根文件, 这个文件被称为主程序。如图:
4、数据库 在Rational Rose中,数据库也被认为是
一种构件
5、虚包 是一种只包含对其他包所具有的元素进
行的引用的构件,它用来提供一个包的某些 内容的公共视图。
2、设备 设备是那些本身不具备处理能力的节点。
通常情况下是通过其接口为外部提供某 些服务,如打印机、扫描仪等。如图所示:
9.3.2 连接
连接用来表示两个节点之间的硬件连接。 在UML中,连接的表示形式使用一条实线表 示,在实线上可添加连接的名称和构造型。 连接的名称和构造型都是可选的。如图:
如上图,客户端节点和服务器节点通过HTTP方式进行通信连接
※ 售票处提供预订购买、个人购买和团 体购买服务
部署图例子
实例1 实例层部署图
※ 实例层部署图描述各节 点和它们之间的连接。
※ 本图中的信息与上张描 述层部署图中的内容是 相互对应的。
※ 图中的关系是各个节点 之间存在的通信关系。
▪ 实例2 描述层部署图
描述层部署图表示了系统中的各 节点和每个节点包含的构件。
※ 图中包括的各种关系如下:
※ 通信链关系(不带箭头的直线)
※
TicketServe票服务器与
Kiosk信息厅之间存在一对多的
通信关联;与SalesTerminal售
票终端也存在一对多的通信关
联;
※ 依赖关系(带箭头的虚线)
※
TicketSeller售票构件依
赖CreditCardCharges信用卡
▪ 实例3
※ 图中依赖关系包括: ※ 顾客需要信息亭接口提供服务 ※ 售票员需要职员接口提供服务 ※ 信用卡付款需要信用卡代理提
供服务 ※ 职员接口需要预订销售、个人
销售和团体销售提供服务 ※ 管理接口需要数据库状态提供
服务 ※ 售票处需要付款和购买提供服
务 ※ 等等……
情景描述
※ 情景一: ※ 购买个人票可以通过公用信息亭订购也可直接向售票
关于构件图和部署图
部署图与构件图相同的构成元素: 构件、接口、构件实例、构件向外提供服务、构件要求
外部提供的服务。
部署图与构件图的关系: 部署图表现构件实例; 构件图表现构件类型的定义。
部署图偏向于描述构件在节点中运行时的状态,描述了 构件运行的环境;
构件图偏向于描述构件之间相互依赖支持的基本关系。
UML部署图用来解决这类建模问题。
9.2 部署图的定义
▪ 部署图描述了运行软件的系统中硬件和软件的 物理结构,即系统执行处理过程中系统资源的部 署情况,它是一种静态模型。
▪ 部署图表示软件系统如何部署到硬件环境中, 显示了该系统不同的构件将在何处物理地运行, 以及它们将如何彼此通信。
▪ 所以说,部署图描述了一个系统运行时的硬件 节点、在这些节点上运行的软件构件将在何处物 理运行以及它们将如何彼此通信的静态视图。每 一个模型中仅包含一个部署图。
构件图例子
※ 实例1. ※ 图中的构件名称是Dictionary字典。 ※ 该构件向外提供两个接口,即两个服务Spell-check拼写检查、Synonyms同义词。
实例2. ※ 图中“Planner计划者”构件向外
提供一个“update更新”接口服务。 ※ 同时,该构件要求外部接口提供一
个“Reservations预定”服务。
员购买,但购买团体票只能通过售票员。 ※ 情景二: ※ 买票的人可以根据任意选择预订销售或个人销售或团
体销售中的一种方式,售票处为了方便销售,需要信 用卡付款服务的支持,同时也必然需要票数据库处在 有票可卖的状况中。
※ 图中实现关系包括: ※ 信用卡付款提供付款服务 ※ 票数据库提供购买和状态查询服务
Component A为一个用户构件,Component B为它所依赖的服务构件
2. 实现关系 实现一个接口意味着构件中的实现元素
支持接口中的所有操作。在构件图中,如 果一个构件是某一个或一些接口的实现,
可以使用一条实线将接口连接到构件来表示
总结
▪ 构件图能够呈现整个被建立系统的早期设计, 使系统开发的各个小组由于实现构件的不同而连 接起来。
1、处理器 是指那些本身具有计算能力,能够执行各
种软件的节点,如服务器、工作站等这些 具有处理能力的机器。如下图:
处理器通常表示一个硬件设备而不是软件实体
由于处理器是具有处理能力的机器,所 以在描述处理器方面应当包含了处理器的 调度和进程。
(1)调度
调度是指在处理器处理其进程中为实现一 定的目的而对共同使用的资源进行时间分 配。
在构件图中,构件和构件之间的关系表现 为依赖关系;
定义的类或接口与类之间的关系表现为 依赖关系或实现关系。
在构件图中,构件和构件之间的关系 表现为依赖关系和实现关系: 1.依赖关系
构件与构件之间依赖关系,它的表示方 式与类图中类与类之间的依赖关系的表示 方式相同,都是使用一个从用户构件指向 它所依赖的服务构件的虚线箭头表示。
付款构件和TicketDB票数据库
构件提供的服务。
※ 图中顾客购票的情景如下:
※ 顾客通过位于Kiosk节点的顾客接口控 件进行购票的操作,该顾客接口构件的 购票操作依赖于处于TicketServer节点 上的售票构件提供的服务,售票构件要 完成售票操作,又要依赖统一节点上信 用卡付款构件提供的付款服务和票数据 库构件
解缩写的文档时关于哪方面内容 ④ 利于复用
9.1 构件和构件图
构件图显示的是组成系统的构件之间的 组织及其依赖关系,而构件时指系统中的可 替代性的物理单元。多个系统构件一起组成 了构件图。
例子
9.1.1 构件的定义
目前构件还没有统一的定义,一般认 为:构件是系统中遵从一组接口且提供实 现的一个物理部件,包括软件代码(源代 码、二进制和可执行文件)或者相应组成 部分,通常指开发和运行时类的物理实现。
※ 节点TicketServer(售票服务)上的构件: ※ CreditCardCharges/ManagerInterface/
TicketSeller/TicketDB ※ 节点Kiosk(信息亭)上的构件: ※ CustomerInterface ※ SalesTerminal(销售终端)上的构件: ※ ClerkInterface
构件为什么要用接口呢?
▪ 构件中有非常多的功能,假如有一个类要使用 构件中某个类的某个方法,但当构件中这个具体 的方法发生变化时(例如方法名字的变化或方法 内容的变化),那么该类就不能应用构件中的相 应内容了。应用接口可以隐藏具体的实现细节, 这样,构件中的内容可以任意变化,而接口却是 相关固定的。
6、包规范
在具体的实现中,有时将源文件中的声 明文件和实现文件分离开来,例如,在 C++语言中,往往将.h文件和cpp文件分离 开来,在Rational Rose中,可以在包规范 中放置.h文件,在包体重放置.c和 实现文件,因为有时候会将源文件中的声 明文件和实现文件分离开来。
有时需要指定该处理器的调度方式,从而 使得处理达到最优或比较优的效果。