组件图和配置图
UML中共有5种静态图

UML中共有5种静态图:用例图,类图,对象图,组件图和配置图。
(1)用例图Use Case Diagram用例图展现了一组用例、参与者以及它们之间的关系可以用来描述系统的静态使用情况。
上图中小人形状的用户和ATM是参与者、椭圆形状的如插入卡、输入密码等是用例(2)类图Class Diagram类图展示了一组类、接口、子类以及他们之间的关系,在建模中最常用到的图就是类图;可以用类图说明系统的静态设计视图,包含主动类的类图。
上图中反应了5个类之间的关联关系,人民币账户和美元帐户从账户继承,账户和ATM相关联,两种账户和用户相关联(3)对象图Object Diagram对象图展示了一组对象和他们间的关系,可以用来说明类图中翻译的事物实例的数据结构和静态快照,表达了系统的静态设计视图和静态过程视图,除了显示和原型方面的因素外,它与类图的作用是相同的。
(4)组件图Component Diagram组件图,又名构件图,展现了一组组件之间的组织和依赖,用于对源代码、可执行的发布、物理数据库和可调整的系统建模。
上图中组件1和组件3依赖于组件2(5)配置图Deployment Diagram配置图展现了对运行时处理节点以及其中组件的配属,它描述系统硬件的物理拓扑结构,以及在此结构上执行的软件。
用配置图说明系统结构的静态配置视图,即说明分布、交互和安装的物理系统。
上图中,三个处理机与两个涉笔,相互之间是关联的关系UML中动态图有四种,分别是:时序图、协作图、状态图和活动图。
(1)时序图Sequence Diagram时序图展现了一组对象和由这组对象收发的信息,用于按时间顺序对控制流建模。
可以用时序图来说明系统的动态视图。
这里貌似有不同的说法Visual Paradigm里面叫时序图为Timing Diagram,而我参照的教材里边没有这种图,按理说是应该有的。
上图反应了用户与ATM交互的整个过程。
(2)协作图Collaboration Diagram协作图展现了一组对象之间的链接以及这组对象收发的消息,强调收发消息对象的组织结构,按组织结构对控制流建模。
《统一建模语言(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)
组件是定义了良好接口且提供实现的一个物理部件 是指类的物理实现,表示将类、接口等逻辑元素打包而形
组件配置图

节点中的配置
驻留在节点上的组件
节点中的配置
可以在节点和组件之 间添加一条表示依赖 关系的虚线箭头,并 使用版型来表示节点 对组件的包容。
3 关联关系
配置图用关联关系表示各节点之间通信 路径,表示为一条实线。 在连接硬件时通常关心节点之间是如何 连接的,因此关联关系一般不使用名称, 而是使用版型。
组件分类
配置组件:dll文件,exe文件,EJB, 数据表文件等;构成可执行系统 工作产品组件:源代码文件、数据文 件。产生配置文件。产生可执行系统 执行组件:系统执行后得到的组件。 结果
组件与类的比较
相同点: 两者都有名称;都可以实现一组接口;都可以参与依赖 关系;都可以被嵌套;都可以有实例;都可以参与交互。 不同点: 类描述了软件设计的逻辑组织和意图,而组件则描述软件 设计的物理实现,即每个组件体现了系统设计中特定类 的实现。 类可以有属性和操作,组件只有操作 关系: 组件是对类的物理实现
组件规范
2 Detail标签
Declarations(声明):声明文本框包含一个 声明列表,如类名、变量以及其它一些语言 专有特性(#includes或类似的结构)。
组件规范
3 Realizes标签
Show all Classes:显示所有的类 Classes Name:类名 Logical Package Name:逻辑包名 Language:语言
节点是在运行时代表计算资源的物理元素。 节点通常拥有一些内存,并具有处理能力。 在UML中,节点用一个立方体来表示。
节点
节点是各种计算资源的通用名称
处理器 设备
两者的区别:处理器是能够执行程序的 两者的区别: 硬件构件(如计算机主机), ),而设备是 硬件构件(如计算机主机),而设备是 一种不具备计算能力的硬件组件( 一种不具备计算能力的硬件组件(如打 Modem PC 印机)。 印机)。
UML的组件图中的模块和配置规则

提高效率:UML组件图可以帮助开发人员快速理解系统结构和功能,提高 开发效率。
便于测试:UML组件图可以帮助测试人员快速定位问题,提高测试效率。
模块和配置规则的缺点
复杂性:UML 组件图可能包 含大量的模块 和配置规则, 导致理解和维 护的复杂性增
作用:配置规则可以帮助开发人员更好地理解和设计系统,提高系统的可维护性和可扩展性。
应用场景:配置规则适用于各种类型的软件系统,包括Web应用、移动应用、桌面应用等。
重要性:配置规则是UML组件图中的重要组成部分,对于系统的稳定性和可靠性至关重要。
配置规则的表示方法
组件图:描述系统的静态结构,包括组件、 规则描述:使用文字描述配置规则,包
加
灵活性不足: UML组件图可 能无法适应快 速变化的业务 需求,导致灵
活性不足
难以维护: UML组件图可 能难以维护, 因为需要不断 更新和调整模 块和配置规则
学习曲线陡峭: UML组件图需 要一定的专业 知识和技能, 学习曲线陡峭, 可能导致初学
者难以掌握
如何扬长避短,发挥其最大价值
优点:清晰展示系统结构,易于理解和维护
聚合关系:模 块A和模块B之 间存在整体与 部分的关系, 模块A包含模
块B
组合关系:模 块A和模块B之 间存在整体与 部分的关系, 模块A包含模 块B,且模块A 和模块B具有相 同的生命周期
UML组件图的配置规则
配置规则的定义和作用
定义:配置规则是指在UML组件图中,对组件之间的连接关系、接口、属性等进行定义的规 则。
模块优化:根据测试结果 对模块进行优化,提高系 统的性能和稳定性
模块维护:对模块进行维 护和管理,保证系统的持 续运行和更新
§8 包图、组件图、部署图

AWT +Window #Form -EventHandler 图1.1 AWT包
包中可以包含其他建模元素,如类、接口、组件、节点、用例、包等。 就像对类的属性和操作可以进行可见性控制一样,对包中元素也可以进行 可见性控制。
图1.1中的AWT包有3个元素:Window、Form和 EventHandler。其中window的可见性为公有的(Public), 表示在任何导入(import)AWT包的包中,都可以引用 Window这个元素;Form的可见性为保护的(protected), 表示只有AWT包的子包才可以引用Form这个元素; EventHandler的可见性为私有的(privated),表示只有 在AWT包中才可以引用Event Handler这个元素。
AWT +Window #Form -EvebtHandler 图1.1 AWT包
对包的命名有两种方式,即简单包名名(simple name)和路径包名(path name)。例如Vision)是一个简单的包名,而Sensors::Vision是带路径的包名。 其中Sensors是Vision包的外围包,也就是说,Vision包是嵌套在Sensors包中 的。包可以嵌套,但在实际应用中,嵌套层次不应太深。
习题: 1.什么是包? 2.什么是包的泛化、包的依赖? 3.包和类有何区别? 4.哪些模型元素可以组成包? 5.当把模型元素组成一个包时应该考虑哪些问题? 6.对超市管理系统绘制相应的包图。
2 组 件 图
2.1 什么是组件和组件图
组件(component)是系统中遵从一组接口且提供其实现的物理的、可 替换的部分。组件图(component diagram)则显示一组组件以及它们之间 的相互关系,包括编译、链接或执行时组件之间的依赖关系。组件图是对OO 系统物理方面建模的两个图之一(另一个图是配置图)。 如图2.1正所示是一个组件图的例子,表示.html文件、.exe文件、.dll 文件这些组件之间的相互依赖关系。
组件图与部署图

UML组件图与部署图U n R e g i s t er ed为什么要建模组件图和部署图?组件图用来建模系统的各个组件,包括(1)源代码文件(如java)(2)二进制文件(如bin、dll等,系统调用的某一外部可执行文件)(3)脚本文件(如xml、txt等)(4)可执行文件(如exe)之间的关系它们是通过功能或者文件组织在一起的。
使用组件图可以帮助读者了解某个功能位于软件包的哪一位置,以及各个版本的软件各包含哪些功能。
部署图用来帮助读者了解软件中的各个组件驻留在什么硬件位置,以及这些硬件之间的交互关系。
总之,组件图和部署图可以用来帮助设计系统的物理架构。
Un Re gi st er ed1.组件在UML中,组件使用在左侧带有两个小矩形的大矩形表示,如下图所示。
Un Re gi st er ed组件的表示U n R e g i s t er ed2.依赖关系依赖关系演示两个组件之间的依赖特性。
依赖关系使用在一端带有开放箭头的短划线表示。
箭头从依赖的对象指向被依赖的对象。
例如下图所示。
deretsigeRnUderetsigeRnU3.包含组件一个组件可以包含在其他的组件中。
其标记符可在其他组件中建模组件来表示。
下例演示了Inventory组件由3个独立的组件DataAccess,Business Logic和Userinterface组成,如下图所示。
Un Re gi st er edUML部署图用来描述系统硬件节点构成,以及在这些节点上运行软件组件的分布。
1.节点节点用来表示一种硬件,它可以是打印机、计算机、扫描仪等。
节点的标记符是一个三维框,在框的左上方包含了节点的名称,如下图所示。
部署图Un Re gi st er ed2.通信关联节点通过通信关联建立彼此的关系,采用从节点到节点绘制实线来表示关联。
这种关系用来表示两种硬件(节点)通过某种方式彼此通信。
其基本通信关联的版型表示,如下图所示。
Un Re gi st er ed下图演示了WebServer通过HTTP协议与Client PC通信,Client PC通过USB协议与Printer通信。
ch12_UML组件图与部署图

12.2.2 部署图的要素
1.节点
节点(node) 是运行时代表计算资源的物理元素。节点通常 有内存及处理能力,它可以是物理设备及运行在该设备上的软 件系统. 节点分为处理机(processor)和设备(device)两类。
• 处理机:能执行软件、具有计算能力的节点,如主机、服务 器、客户机等; • 设备:没有计算能力的节点,如打印机、传感器、终端等。
3.添加组件、类和对象 接下来需要确定组件和其他内容,如类和对象。 需求列表显示下列组件可以用于图中: • 控制扫描仪的代码(名为ScanEngine组件) • 定制的Web服务器软件(名为WebSeverSoft组件) • 专用的数据访问组件(名为DataAccess组件) • 专用的浏览器软件(名为Browser组件) • 产品查询插件(名为ProductLookupAddIn组件) 另外,前面还提到了产品数据库,但是它不必像前面的几个项 目那样也建模为软件组件。我们要把产品数据库建模为一个类 实例ProductDB。
组件图的特性
• 组件图和部署图统称为实现图,是对OO 系统的物理方面建模的图。
• 组件图显示一组组件以及它们之间的相互 关系。
• 组件图可以显示软组件之间的依赖关系, 可以用来显示编译、链接或执行时组件之 间的依赖关系。
12.1.3 组件图的作用
1. 对源代码文件之间的相互关系建模
12.1.3 组件图的作用
组件和类之间的不同点:
1、类是逻辑抽象,组件是物理抽象,即 组件可以位于节点(node)上。
2、组件是对其它逻辑元素,如类,协作 (collaboration)的物理实现。即,组件 是软件系统的一个物理单元。 3、类可以有属性和操作;组件通常只有 操作,而且这些操作只能通过组件的 接口才能使用。
6组件图布置图

组件依赖性 – 组件A依赖于组件B:组件A中的某些类依赖于组 件B中的某些类 – 即,组件B在组件A之前编译
CompA
CompB
3 Sept. 2008 Confidential
组件图( 6.1 组件图(续)
组件的构造型(Stereotype) – ActiveX – Application – Database – Applet – DLL – EXE – ……
部署图( 6.3 部essor) 具有处理能力的节点,可以执行组件. 即能够执行程序的硬件资源 – 设备(Device) 没有处理能力的节点 不能够执行程序的硬件资源
3 Sept. 2008 Confidential
部署图( 6.3 部署图(续)
3 Sept. 2008 Confidential
组件图( 6.1 组件图(续)
组件类型 – 实施组件(Deployment component) 构成一个可执行系统必要和充分的组件.例如: dll, exe – 工作产品组件(Work product component) 是开发过程的产物,包括创建实施组件的源代码 文件及数据文件等,如:cpp,c,java – 执行组件(Execution component) 作为一个正在执行的系统的结果而被创建,如: 由dll实例化形成的COM+对象
3 Sept. 2008 Confidential
部署图( 6.3 部署图(续)
部署图的用途 – 主要用来描述构成物理系统的各组成部分的分布, 提交和安装 – 应用程序的物理部署,如:网络布局,组件在网络上的 位置等 – 显示网络上所有的节点,节点间的连接和每个节点 上运行的进程
3 Sept. 2008 Confidential
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
显示对话框组件(DisplayDialog.java)
BorrowDialog.java
ReturnDialog.java
MainWindow.java
QueryDialog.java
ModifyDialog.java
DisplayDialog.java
管理员用户界面组件图包括:
书目管理对话框组件(TitleDialog.java) 图书管理对话框组件(BookDialog.java)
驻留结点上的组件图
带有依赖关系的配置图
2.关系
在配置图中,使用关联关系(Association)表示结 点之间的通信路径。 配置图中的关联关系与类图中的关联关系采用相同 的表示方法,都是一条实线。
在连接硬件要考虑结点之间的连接方式和通信方式, 因此结点之间的关联关系一般不使用名称标识,而 是使用构造型来描述,如:<<TCP/IP>>、 <<HTTP>>、<<USB>>等。
Keyboard Database Server Mouse
<<LAN>>
Application Server
Web Server
<<Internet>>
ClientPC Monitor
<<USB>>
Printer
关联关系示例
10. 3
配置图建模及应用
1. 配置图的应用 通常可用配置图建模的系统有:
客户机/服务器(C/S)系统 浏览器/服务器(B/S)系统
分布式系统
嵌入式系统
① ② ③ ④
以客户机/服务器为例说明,此类系统在进 行配置图建模时,应参考以下策略: 为系统的客户端和服务器端处理器进行建 模。 为系统中的主要设备建模。 对系统中的处理器和设备进行扩充。 确定配置图中各元素之间的关系。
源代码组件上可标上相应符号用以表示不同类型 文件: <<file>>符号用以表示包含源代码或数据的文 件; <<page>>用以表示Web页; <<document>>表示文档。
<<file>>
DBConnection.java
<<file>>
<<file>>
DBModify.java
③ 可执行组件建模
可执行组件又称为运行时组件,是系统执行时使用 的组件,即可执行程序组件(.exe)。 可执行组件可以从二进制组件产生,也可以直接从 源代码组件产生。 可执行组件建模过程中,可以使用<<executable>>、 <<application>>符号来指出组件是可执行文件或可 执行程序。
<<library>>
Course.mdb
<<table>>
<<table>>
<<table>>
Student
Course
Elective
说明:Course.mdb组件代表Access数据库。 Student组件、Course组件和Elective组件 是组成Course.mdb数据库的3个数据库表。
与组件相同,每个结点都有自己的名称。 结点的名称是一个由名词短语构成的字符串,位 于结点图标内部。 结点的名称也分为简单名与路径名两种。 配置图中可以包括包和子系统。 配置图中还可以包含组件,用以处理硬件资源和软 件实现之间的关系。 在图形表示中,可以将相应的组件或组件图建模在 结点内部;也可以在结点和组件之间添加一条表示 依赖关系的带箭头虚线并进行标识。
销售管理 (xsgl.cpp)
销售管理 (xsgl.obj)
图形库 (graphic.dll)
采购管理 (cggl.cpp)
采购管理 (cggl.obj) 进销存管理 (jxcgl.exe)
仓库管理 (ckgl.cpp)
仓库管理 (ckgl.obj)
进销存管理系统组件图示例
9.2 组件图的元素
① 主界面组件图 ② 管理员用户界面组件图
主界面组件图包括:
主窗体组件(MainWindow.java) 借书对话框组件(BorrowDialog.java) 还书对话框组件(ReturnDialog.java) 密码修改对话框组件(ModifyDialog.java) 查询对话框组件(QueryDialog.java)
借阅者管理对话框组件(BorrowerDialog.java)
BorrowerDialog.java
ManageWindow.java
BookDialog.java
TitleDialog.java
第10章 配置图
对系统进行物理实现建模时需要用两种图进 行描述:组件图和配置图。 组件图用来软件组件建模,而配置图用来对 配置系统时涉及到的硬件进行建模。
业务逻辑包组件图建模主要包括:
借阅组件(Loan.java) 书目组件(Title.java) 图书组件(Book.java) 借阅者组件(Borrower.java) 管理员组件(Manager.java)
其中,Manager.java组件依赖于系统管理员 组件(Administrator.java)和图书管理员组件 (Librarian.java)。
组件图通常包括3种元素: ① 组件 ② 接口 ③ 关系
1.组件
组件(component)又称构件,它是定义了良好 接口的物理实现单元,是系统的单个组成部分, 它可以是一个文件、产品、可执行文件或脚本等。 一般情况下,组件表示将类、接口等逻辑元素打 包而形成的系统中的模块部件。 作为一种物理实现单元,组件包含类,类通过组 件来实现,组件与类之间是依赖关系。
DBQuery.java
② 二进制组件建模
二进制组件也称连接时组件,使源代码组件经编 译后产生的目标代码。 它可以使编译一个源代码组件而产生的目标代码 文件,或者是编译一个或多个源代码组件而产生 的静态库文件或动态库文件。 目标代码文件和静态库文件在运行前连接成可执 行组件,而动态库文件(也称动态链接库,DLL) 在运行时才连接成可执行组件。 二进制组件建模过程中,使用<<library>>符号 来指出组件是静态库文件或动态库文件。
① ② ③ ④ ⑤
在组件图的建模过程中,可以参考以下步 骤: 对系统中的组件建模。 定义相应的组件提供的接口。 对组件与组件、组件与接口之间的关系建 模。 将逻辑设计映射为物理实现,完成组件图。 对建模结果进行精化和细化。
9.4 组件图建模实例
例:对于图书管理系统进行组件图建模。 主要从两个方面进行建模: ① 业务逻辑包组件图建模 ② GUI(图形用户界面)包组件图建模
Hale Waihona Puke 在UML中,组件用一个左侧带有两个突出 小矩形的矩形图标表示。
包名::组件名
每个组件都应有一个名称,位于组件图标内 部。 组件名称是一个标识符字串,只有单独一个 名称的称为简单名;在简单名前加上组件所 在包的名称叫做路径名。
在对软件系统建模的过程中,存在以下3种类型的 组件: ① 配置组件(Deployment Component) 配置组 件是运行系统前需要配置的组件,是形成执行文 件的基础。例如,操作系统(OS)、数据库管理 管理系统(DBMS)以及Java虚拟机(JVM)都 属于配置组件。 ② 工作产品组件(Work Product Component) 工 作产品组件包括模型、源代码和用于创建配置组 件的数据文件。例如,UML图、Java类和JAR文 件、数据库表以及动态链接库文件(DLL)等都 是工作产品组件。 ③ 执行组件(Execution Component) 执行组件 是在运行时创建的组件。执行组、XML文档、 Enterprise Java Beans、COM+组件、.NET组件 以及CORBA组件等。
聊天室 接口 聊天用户
组件的接口又可以分为两种类型: ① 输出接口(export interface):输出接口由提 供操作的组件提供。 ② 输入接口(import interface):访问服务的组 件使用输入组件。
3.关系
组件图中的关系分为两种:实现关系和依赖关系。 组件之间以依赖关系为主;组件与接口之间包含 实现关系和依赖关系两种。 在UML组件图中用一条连接组件与接口的实线表 示实现关系;用带箭头的虚线表示依赖关系,箭 头从依赖的组件指向被依赖的组件。
2. 组件图建模 组件图用于对系统的物理实现进行建模, 描述系统组件与组件之间的关系。 组件本身是系统的一个物理模块,它的 设计应充分体现软件的模块性和可重用 性。
① ② ③ ④ ⑤
⑥ ⑦
组件设计时应遵循以下原则: 从物理结构上对软件系统进行抽象。 组件应是内聚的。 组件中的类应彼此重用。 提供一组定义完整的接口实现。 组件所包含的类其功能应相关,以便于满 足实现接口。 组件之间不应有循环的依赖。 组件、接口之间一般只有依赖和实现关系。
第10章 配置图
10.1 概述
配置图(Deployment Diagram,又称部 署图)用来描述系统所需的处理器和设备的 拓扑结构,显示了运行软件系统的物理硬件, 以及如何将软件配置到硬件上。
10.2
配置图元素及表示法
配置图所包含的元素有:结点和关系。 配置图可以显示结点以及它们之间的必要连 接,也可以显示这些连接的类型,还可以显 示某些结点上所包含的组件之间的关系。