构件图与部署图
包图 构件图 与部署图
包图中的关系
2、泛化关系 包间的泛化关系类似于类间的泛化关系,使
用一般包的地方,可以用特殊包代替。 在系统设计中,对某一个特定的功能,有多
种实现方法。例如,实现多数据库支持;实 现B/S和C/S双界面。这时就需要定义一 些高层次的“抽象包”和实现高层次功能的 “实现包”。
13
泛化关系
例如,说明GUI有 两种风格:一种是基 于WinForm的 C/S风格,一种是 WebForm的B/S 风格。
15
创建包图
1.标识候选包的原则:
把类图中关系紧密的类放到一个包中; 在类继承类层次中,把不同层次的类放在不同
的包中。
也可以把用例模型作为包的来源。然而,用 例横跨分析包是非常普遍的——一个用例可 以由几个不同包中的类实现。
16
创建包图
2.调整候选包 在已经识别一组候选包后,然后减少包间依
《import》关系:最普遍的包依赖类型,说明提供者包的命 名空间将被添加到客户包的命名空间中,客户包中的元素也能 够访问提供者包的所有公共元素。
《access》关系:如果只想使用提供者包中的元素,而不想将 两个包合并,则应使用该关系。在客户包中必须使用路径名,才 能访问提供者包中的所有公共元素。
分解 是软件开发中控制软件复杂性的重要
手段。 在OO方法中, 需要考虑如何把相关的类放
在一起。 把语义相近并倾向于同一变化的元素组织起
来加入同一个包中,以便于理解和处理整个 模型。
2
为什么要包
包的作用是: 1)对语义上相关的元素进行分组 2)定义模型中的“语义边界” 3)提供配置管理单元 4)在设计时,提供并行工作的单元 5)提供封装的命名空间,其中所有名称必 须唯一
3
08,09构件图和部署图
1 构件图概要
构件图用于静态建模, 构件图用于静态建模,是表示构件类型的组织以 及各种构件之间依赖关系的图。 及各种构件之间依赖关系的图。 构件:可替换的物理部分,包括软件代码、脚本 构件:可替换的物理部分,包括软件代码、 或命令行文件,也可以表示运行时的对象,文档, 或命令行文件,也可以表示运行时的对象,文档, 数据库等。 数据库等。 构件图通过对构件间依赖关系的描述来估计对系 统构件的修改给系统可能带来的影响。 统构件的修改给系统可能带来的影响。
部署图
1 部署图概要 部署图用于静态建模, 静态建模 部署图用于静态建模,是表示运行时过程节点结 构件实例及其对象结构的图。 构、构件实例及其对象结构的图。 如果含有依赖关系的构件实例放置在不同节点上, 如果含有依赖关系的构件实例放置在不同节点上, 部署视图可以展示出执行过程中的瓶颈。 部署视图可以展示出执行过程中的瓶颈。 部署图的两种表现形式: 部署图的两种表现形式:实例层部署图和描述层 部署图(会在后面的实例中给出 会在后面的实例中给出)。 部署图 会在后面的实例中给出 。
5 关于部署图与构件图
部署图与构件图相同的构成元素: 部署图与构件图相同的构成元素: 构件、接口、构件实例、构件向外提供服务、 构件、接口、构件实例、构件向外提供服务、构件要 求外部提供的服务。 求外部提供的服务。 部署图与构件图的关系: 构件图的关系 部署图与构件图的关系: 部署图表现构件实例; 部署图表现构件实例; 构件图表现构件类型的定义。 构件图表现构件类型的定义。 部署图偏向于描述构件在节点中运行时的状态, 部署图偏向于描述构件在节点中运行时的状态,描述了构 件运行的环境; 件运行的环境; 构件图偏向于描述构件之间相互依赖支持的基本关系。 构件图偏向于描述构件之间相互依赖支持的基本关系。
第08章_构件图和部署图下载
PC和外设与ISP连接的部署图
3.构件的部署 可以把系统运行时的构件分布在特定的硬件节点上 来展示系统的架构。下图演示了UserInterface、 BusinessLogic和Backendfunctionality等构件如何在 服务器和客户机硬件中的部署。
4. 如何建模部署图
创建部署图含有如下4项任务:
<<Client>>
PC
<<Internet>>
<<ApplicationServer>> <<DatabaseServer>> <<100BaseT>> Weblogic <<100BaseT>> Oracle Apache_Weblogic
<<WebServer>>
部署图的例子:
10.3 部署图的例子
包体包含类的操作代码.
(2) 接口
构件通过其他组件的接口调用其他构件中定义的操作.
通过命名接口,可以避免在系统的各个构件中直接产生 依赖关系, 有利于构件的替换.
(2) 接口 构件与接口之间的关系: 实现关系和依赖关系
导出接口
导入接口
(3) 依赖关系
为了便于组件之间替换,建议使用如下依赖关系:
3.构件的表示
在UML中,构件通过以下形式来表示:
基本构件
带版型的构件
(1) 构件 Rose中的扩展构件
子程序说明是一组子程序集 合名, 其中不包括类定义.
子程序体表示子程序的实现.
(1) 构件 Rose中的扩展构件
主程序是包含程序根的文件.
(1) 构件 Rose中的扩展构件
构件图与部署图
45
构件图分类
(1)用户界面层:采用JSP页面实现用户界面。 我们通过构造型《Java Server page》来表示构 件。这一部分的构件,主要由边界类组成。
13
构件图的作用
构件图的基本目的是:使系统人员和开发人 员能够从整体上了解系统的所有物理部件, 同时,也使我们知道如何对构件进行打包, 以便交付给最终客户,最后,构件图显示了 被开发系统所包含的构件之间的依赖关系。
构件图从软件架构的角度来描述一个系统的 主要功能,如系统分成几个子系统,每个子 系统包括哪些类、包和构件,它们之间的关 系以及它们分配到哪些节点上等。
一个构件图可以表示一个系统全部或者部分的构件 体系。从组织内容看,构件图显示软件构件的组织 以及构件之间的依赖关系,包括源代码构件、二进 制代码构件以及可执行构件。
构件图是对OO系统物理方面建模的2个图之一。
9
构件图的概念
构件图主要用于描述各种软件构件之间的依 赖关系,例如,可执行文件和源文件之间的 依赖关系,所设计的系统中的构件的表示法 及这些构件之间的关系构成了构件图。
将整个“在线酒店预订子系统”作为一个构件,考虑 其对外接口。显然它首先需要提供用户界面;其次 还需要与加盟的酒店系统连接,完成预订工作
35
绘制构件图
确定子构件和接口
显然要有一个构件来实现用户界面,一个构件来完 成与酒店系统的连接和预订,另外还应该有一个负 责将用户的需求与酒店的供给进行匹配的“调度程 序”
提供服务
※
※ 售票处需要付款和购买提 供服务
构件图、部署图实验报告
UML建模课程
实验三、UML构件图、部署图模型的设计
班级:信息0702 组别:指导老师:徐凯波姓名:王姗学号:2007030331205
一、实验要求:掌握利用UML建模工具建立状态图和活动图的方法。
二、实验内容:利用UML建模工具设计状态图和活动图
三、实验环境:Windows 2000 Professional以上环境、Rational Rose
2003、Sybase Power Designer 10
四、操作步骤:
(一)构件图
(二)部署图
五、遇到的问题和解决方法:
构件图:本学生选课系统包括:课程信息管理系统、学生信息管理系统、选课记录管理系统。
部署图:部署图主要是用来说明如何配置系统的软件和硬件。
本学生选课系统由5个节点构成,应用服务器负责整个系统的总体协调工作:数据库负责数据管理;Web 应用程序模块用于学生进行课程查询、选课;业务操作模块用于管理员处理学生选课、课程信息管理等一般的业务流程:学生信息维护模块用于管理员对学生信息的维护,如添加和修改学生信息、添加和修改课程信息等。
六、实验心得和体会:
学习本堂课我最大的收获就是端正了我的学习态度,以前的我不喜欢信管专业所涉及的课程,学得不好总是以我不喜欢这个专业,将来我不会从事这项工作为借口,可是现在,我明白了许老师上课经常说的:“你连你应该掌握的知识都学不好,别的课程你也学不好”。
今后我会热爱我所学习的课程、我所
从事的职业。
构件图与部署
使用菜单栏或浏览器添加构件的步骤如下:01 选择Tools | Create | Component命令,此时光标变为“+”号。如果使用浏览器,可右键单击需要添加的包,在弹出的快捷菜单中选择New | Component命令,此时光标也变为“+”号。 以下的步骤与使用工具栏添加构件的步骤类似,按照前面使用工具栏添加构件的步骤添加即可。
部门 / 时间 / 姓名
1 构件图与部署图的基本概念 1.1 构件的基本概念 在构件图中,将系统中可重用的模块封装为具有可替代性的物理单元,称为构件,它是在一个系统或子系统中的封装单位,提供一个或多个接口,是系统高层的可重用部件。
虚包是一种只包含对其他包的元素进行引用的构件。
系统是指组织起来以完成一定目的的连接单元的集合,在系统中肯定有一个文件用来指定系统的入口,也就是系统程序的根文件,这个文件被称为主程序。子程序规范和子程序体是用来显示子程序的规范和实现体。 主程序 子程序规范和子程序体 包规范和包体 任务规范和任务体
在部署图中添加节点之间的连接的步骤如下:
02
单击图标,或者选择Tools | Create | Connection命令,此时的光标变为“↑”符号。
03
单击需要连接的两个节点中的任意一个节点。
04
将连接的线段拖动到另一个节点中即可。
如果要将连接从节点中删除,可以通过以下的步骤进行:
选中该连接。
按Delete键或者单击右键,在弹出的快捷菜单中选择Edit | Delete命令即可。
确定系统构件
可以与确定用例中的类和对象一样,根据用例的流程确定系统的构件。
将系统中的类和接口等映射到构件中 将系统中的类、接口等逻辑元素映射到构件中,一个构件不仅仅包含一个类或接口,也可以包含几个类或接口。
Chapter 08-包图、构件图和部署图
Copyright By Chd.Wang,E-Mail:Chdwang@
20
构件与构件图
构建的分类
按照构件在系统中扮演的角色,分为: 配置构件:组成系统的基础构件,是执行其他构件 的基础平台,如OS、Java虚拟机(JVM)、DBMS等 工作产品构件:开发过程的中间产物,如创建构件 的源代码文件、数据文件等,不直接参与系统运行 执行构件:系统运行时创建的构件,如由DLL实例化 的COM+对象,Servlets、XML文档等
示例理解
Copyright By Chd.Wang,E-Mail:Chdwang@
13
绘制包图
步骤
寻找包 确定包之间的关系 标出包内元素的可见性
最大限度减少包之间的依赖 包封装时,避免包之间的循环依赖 最小化每个包的public、protected元素个数 最大化每个包的private元素个数
构件图分类
简单构件图
个人图书馆管理系统的局部构件图 以构件为单位,系统分为3层 用户界面层 版型<<Java Server Page>>表示由边界类实现的JSP 用户界面 业务逻辑层 版型<<Java Beans>>表示由实体类实现的业务逻辑 数据访问层 所有数据访问操作都封装在一个<<Java Beans>>中 (大型应用封装在EJB中),是JDBC的一个实现
包与包图
包
一种组合机制,用于模型的逻辑组织 UML包对应于Java包 一个Java包可能包含其他包或类
描述包及其关系的图 基本元素:包、注释、约束 包可以拥有:类、接口、构件、节点、协作、用例 、子包等元素 一个元素只能属于一个包 包间关系:依赖关系和泛化关系
实验5 使用Rational Rose绘制构件图和部署图
实验五使用Rational Rose绘制构件图和部署图一、实验目的1.理解构件图的基本概念和应用。
2.理解部署图的基本概念和应用。
3.掌握构件图和部署图绘制的方法。
二、实验内容图书管理系统的分析和设计已按计划完成类图和交互图的分析与设计,下一步将完成系统的构件图和部署图。
三、实验步骤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图,出现图5.1,为编辑构件图做好准备,其中具体含义可参看本节“补充图标”一段的介绍。
图5.1(2)在构件视图中,从工具栏中选择MainProgram图标,在右边的绘图区中添加一个新构件,并取名StartClass.java表明新增一个主程序。
6e-05状态-活动-构件-部署图
6
• 状态图 状态图适合于描述跨越多个用例的单个对象的 行为,而不适合描述多个对象之间的行为协作, 因此,常常将状态图与其它技术组合使用。例 交互图适合于描述单个用例中的多个对象 如,交互图 交互图 的行为,活动图 活动图适合于描述多个对象和多个用 活动图 例的活动的总次序。 • 一般状态图中显示的状态机会混合使用Mealy 机和Moore机风格。 • 问题:Mealy机和Moore机的区别? (英文电子版pp280)
主要内容
状态图 活动图 构件图 部署图
2
Statechart Diagram(状态图 状态图) 状态图
• 定义:A statechart diagram shows a state machine, emphasizing the flow of control from state to state. • state machine(状态机 状态机):A state 状态机 machine models the lifetime of a single object, whether it is an instance of a class, a use case, or even an entire system.
29
• 两种特殊的动作: entry action(进入动作)和exit action(退出动作)。
– Entry动作:进入状态时执行的活动,格式如下:
‘entry’ ‘/’action-expression
18
• Transition图例
说明: • 状态的之间的转移 转移通常是由事件 事件触发的,此时应在转 转移 事件 移上标出触发转移的事件表达式。如果转移上未标明 事件,则表示在源状态的内部活动执行完毕后自动触 发转移。 • Transition的格式: event-signature ‘[’ guard-condition ‘]’ ‘/’ action 其中event-signature的格式为: 19 event-name ‘(’ comma-separated-parameter-list ‘)’
section 9 构件图与部署图
• 与包的关系不同
构件图的作用
(1) 对源代码文件之间的关系建模
组件图示例
A component diagram
zhufei@
• 一个大型复杂的软件系统,一般由多个可执行 程序和相关的持久对象库构成。 • 下图描述了一个客户的软件系统从 C++源代码
部署图的例子
PC和外设与ISP连接的部署图
部署图建模技术
• • • • •
对系统中的结点建模。 对结点之间的关联关系建模。 对驻留在结点上的构件建模。 对驻留在结点上的构件之间的依赖关系建模。 对建模的结果进行精化和细化。
确定结点和结点间的关联关系
•
•
• •
IC卡读卡器:提供给员工刷卡用,它将收集刷卡的时间信息,传 给应用系统,并存入数据库中
创建实施构件的源代码文件及数据文件。如: 源代码文 件、数据文件等, 这些构件可以产生部署构件.
构件图中的元素
(1) 构件
基本构件
带版型的构件
构件图中的元素
(1) 构件 Rose中的扩展构件
子程序说明是一组子程序集 合名, 其中不包括类定义.
子程序体表示子程序的实现.
构件图中的元素
(1) 构件 Rose中的扩展构件
example
• 根据以下描述,试完成一个“销售管理系统”
的部署图。该系统采用的硬件设备有:
• 3台联想PC600作为终端机,分别用作销售管理、仓 库管理和合同管理。 • 1台联想PC6000作为网络数据库服务器。 • 2台Ls1000打印机。一台为网络共享、一台为仓库 管理专用。 • 客户机之间采用《TCP/IP》通信协议,3个客户机
构件图的作用:可执行文件建模
第11讲 构件图与部署图
UML建模语言
11.3 构件图与部署图的创建示例 11.3.1 创建构件图 01 根据用例或场景的需求确定系统的构件。 02 将系统中的类、接口等逻辑元素映射到构 件中。 03 确定构件之间的依赖关系,并对构件进行 细化。
UML建模语言
1. 确定系统构件 可以与确定用例中的类和对象一样,根据用 例的流程确定系统的构件。
构件和接口
的实现关系
构件与接口 的依赖关系
UML建模语言
11.1.3 部署图的基本概念 部署图(Deployment Diagram)描述了一个 系统运行时的硬件节点、在这些节点上运行 的软件构件将在何处物理运行以及它们将如 何彼此通信的静态视图。
UML建模语言
在Rational Rose 2003中可以表示的节点类型 包括两种,分别是处理器( Processor )和设 备( Device )。处理器( Processor )是指那 些本身具有计算能力且能够执行各种软件的节 点,如服务器、工作站等都是具有处理能力的 机器。
序
任务规 范和任 务体
包规范
和包体
UML建模语言
11.1.2 构件图的基本概念 构件图是用来表示系统中构件与构件之间、 类或接口与构件之间的关系图。在构件图中, 构件和构件之间的关系表现为依赖关系,定 义的类或接口与类之间的关系表现为依赖关 系或实现关系。
构件之间的依赖关系
UML建模语言
构件和接口之间的依赖关系是指一个构件 使用了其他元素的接口,依赖关系可以用 带箭头的虚线表示,箭头指向接口符号。
1. 确定系统节点 根据上面的需求列表可以获得系统的节点信息。
UML建模语言
2. 添加节点连接 将上面的节点连接起来,得到的部署图。
UML-08-构件图-部署图
ቤተ መጻሕፍቲ ባይዱ
什么是处理器(processor)?
定义:A processor is a hardware component capable of executing programs. 处理器具有处理能力的节点,即它可以执行组 件。 处理机的图标:
什么是设备(Device)?
设备的定义:A device is a hardware component with no computing power. 设备是无计算能力的外部设备,如modem、终 端。 设备的图标:
处理器和设备
什么是连接(Connection)?
连接的定义:A connection represents some type of hardware coupling between two entities. 连接是代表一种交流的机制:
组件的分类
一般说来,组件就是一个实际文件,可以有以下几种类型:
(1) 配置组件(deployment component),这些组件构成了一 个可执行的系统, 如dll文件, exe文件, COM+对象, CORBA 对象, EJB, 动态Web页, 数据库表等。
(2) 工作产品组件(work product component),开发过程产 物,这些组件不直接参与可执行系统,而是开发中的工作产 品,如源代码文件(.java,.cpp),数据文件等,这些组件可 以用来产生deployment component。 (3) 执行组件(execution component),这类组件是作为一 个正在执行的系统的结果而被创建的,例如由DLL实例化形 成的.NET对象。
[UNL课件] 第12章 构件图与部署
12.1 构件
– 连接件示例:
销售目录
: 商品盘点清单 :
:履行
:查找项
: 发货项
: 获得订单 :订单 输入
:订单交接
: 订单处理
收费:信用卡
12.2 部署图
• 1、术语和概念
– 1) 部署图(deployment diagram)
• 是一种展示运行时进行处理的结点和在结点上生存 的制品的配置的图。
– 端口提供的封装性和独立性更大程度上保证了构件的 封装性和可替换性。
12.1 构件
• 端口的UML表示
– 端口被表示为跨立于构件边界上的方块。
使用该接口 查询预订 情况 Booking Load Attractions 将节目信息录入 售票DB以便售票 Credit Cards 使用该接口完成 信用卡支付
• 制品(artifact):是存在于实现平台层的系统的物理部 分。表示为带有《artifact》构造型的矩形。内写上制品 名称。
• 部署图是结点和弧的集合。
– 也可以包括注解、约束还有包。
《artifact》 pos.exe
12.2 部署图
– 2) 结点(node)
• 又译作节点,是存在于运行时并代表一项计算资源的 物理元素,一般至少拥有一些内存,而且常常具有处 理能力。UML中表示为一个立方体。
– 3)对全分布式系统建模(续)
本章小结
• 构件 • 部署图
• UML表示为一条实线。
• 连接是双向的。 • 可以是直接连接(如通过光缆),也可非直接连接 (如通过卫星)。
12.2 部署图
• 2、用法
– 部署图用于对系统的静态部署视图建模。 – 主要来解决构成物理系统的各组成部分的分布、 提交和安装。 – 使用情况
构件图和部署图
2、子程序规范和子程序体 子程序是一个单独处理元素的包,通常 用它代指一组子程序集。用来显示子程序 的规范和实现体。如图:
3、主程序 是指组织起来以完成一定目的连接单元的 集合,在系统中,肯定有一个文件用来指 定系统的入口,也就是系统程序的根文件, 这个文件被称为主程序。如图:
4、数据库 在Rational Rose中,数据库也被认为是 一种构件
1、处理器 是指那些本身具有计算能力,能够执行各 种软件的节点,如服务器、工作站等这些 具有处理能力的机器。如下图:
处理器通常表示一个硬件设备而不是软件实体
ቤተ መጻሕፍቲ ባይዱ
由于处理器是具有处理能力的机器,所 以在描述处理器方面应当包含了处理器的 调度和进程。 (1)调度 调度是指在处理器处理其进程中为实现一 定的目的而对共同使用的资源进行时间分 配。 有时需要指定该处理器的调度方式,从而 使得处理达到最优或比较优的效果。
关于构件图和部署图
部署图与构件图相同的构成元素: 构件、接口、构件实例、构件向外提供服务、构件要求 外部提供的服务。 部署图与构件图的关系: 部署图表现构件实例; 构件图表现构件类型的定义。 部署图偏向于描述构件在节点中运行时的状态,描述了 构件运行的环境; 构件图偏向于描述构件之间相互依赖支持的基本关系。
※ ※ ※ ※
图中实现关系包括: 信用卡付款提供付款服务 票数据库提供购买和状态查询服务 售票处提供预订购买、个人购买和团 体购买服务
部署图例子
实例1 实例层部署图 ※ 实例层部署图描述各节 点和它们之间的连接。
※ 本图中的信息与上张描 述层部署图中的内容是 相互对应的。
※ 图中的关系是各个节点 之间存在的通信关系。
构件图例子
※ 实例1. ※ 图中的构件名称是Dictionary字典。 ※ 该构件向外提供两个接口,即两个服务Spell-check拼写检查、Synonyms同义词。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
?二进制构件(连接时构件)
?源代码构件编译后产生的目标代码,如静态库 或动态库。
?可执行构件(运行时构件)
?表示处理机上运行的一个可执行单元。数据库 表也可看作运行时使用的构件。
<<file>> <<sifginlael.>h> s{iv{vgeenr rassliio.onhn==33..55}}
? 类A 包含一个类型为B类的属性
public class A { private B alink; ……
}
?系统的设计要尽量避免循环依赖。
这样可以由下向上访问它的构件,每次只考 虑一个构件。
库存控制系统的依赖图
第12章 配置图/部署图
?配置图描述了运行软件的系统中硬件和软件的 物理架构。 ?配置图可以显示计算机节点的拓扑结构和通信 路径、节点上执行的软件构件、硬件设备的配置。 ?配置图中通常包含 2个元素:
② 设备(Device):设备是没有计算能力的节 点,通常情况下都是通过其接口为外部提供 某种服务。
处理器(Processor ) 设备(Device )
?节点属性
?象类一样,可以为一个节点提供属性描述, 如,处理器速度、内存容量、网卡数量等 属性。可以为节点其提供启动、关机等操 作属性 。
2 节点中的配置
? 在UML 中,构件图中依赖关系的表示方法是一个由 客户指向提供者的虚线箭头。
供应者不存在该客户就不能活动,或不能被完整 地定义或实现。
? 通常,当一个构件被修改时,任何依赖于它的 构件可能也必须修改。
? “使用”依赖(没有注明的依赖 )是传递的。
常见的依赖关系 1. 引入源代码
?Java 中, 可以在源文件中引入包
可以清晰地表示出软件的所有源文件之间的关系, 有了这样的构件图,开发者能更好地理解各个 源代码文件之间的依赖关系。
?构件图的基本目的是 :使系统人员和开发人员能够 从整体上了解系统的所有物理构件。
? 同时 ,也使我们知道如何对构件进行打包,以交付 给最终客户。
? 构件图显示了所开发的系统的构件之间的依赖关 系.依赖关系符号 (------>)表示构件之间的关系 .
?配置图可以将节点和构件结合起来,以建 模处理资源和软件实现之间的关系。
?当构件驻留在某个节点时,可以将它建模 在图上该节点的内部。
? 驻留在节点上的构件
对节点内驻留的构件描述
? 可以在节点和构件之 间添加一条表示依赖 关系的虚线箭头,并 使用构造型来表示节 点对构件的包容。
? 构件可以是源代码构件、二进制构件或一 个可执行的构件。
构件图Байду номын сангаас例:供销存管理系统
构件图应用
?对可执行程序建模
可以清晰地表示出各个可执行文件、链接库、数 据库、帮助文件和资源文件等其它可运行的物理 构件之间的关系。
语音呼叫中心程序 callcenter.exe
构件图应用……
? 对源代码进行建模
第11章 构件图(Component Diagrams )
?构件图
?构件图概述 ?构件(组件)的表示和分类 ?构件间的依赖关系
一、 概述
? 构件图描述了软件的各种构件和它们之间 的依赖关系。
? 构件是定义了良好接口的物理实现单元, 是系统中可替换的物理部件。每个构件体 现了系统设计中的特定类的实现 。
矩形,并在左侧加上两个突出的更小的矩形);
? 第三种是直接使用构件图标,但在UML2.0中已经不使 用第三种方法了。
2) 标识接口的构件表示方法也有3种
2. 构件的种类
? 在对软件系统建模的过程中,存在3种类 型的构件:
① 源代码构件 ② 二进制代码构件 ③ 可执行代码构件
?源代码构件(编译时构件)
二、 构件
1. 构件的表示
每个构件定义了 2组接口(一组是供给接口,表明 它能提供的服务,一组是需求接口,表明它需要 的服务 ). 构件本身已经实现了供给接口声明的功能。 表示构件图标的方法有两种:
? 在构件图标中没有标识接口 ? 在构件图标中标识了接口
1) 没有标识接口的构件表示法
? 第一种是表示为标有构造型《component》的矩形; ? 第二种是在矩形的右上角放置一个构件图标(一个小
节点(Node ) 关联(Association )
? 配置图示例:
一、节点
?节点是在运行时代表计算资源的的物理元素。 ?节点通常拥有一些内存,并具有处理能力。 ?在UML中,节点用一个立方体来表示。
1 节点的种类
在实际的建模过程中,可以把节点分为两种类 型:
① 处理器(Processor):处理器是能够执行 软件、具有计算能力的节点。
<<file>> <s{s{<ivivgfgeeninrralasslieli.oc>.onp>cn=pp=4p4..11}}
<<<<ffiille>>>> iirrqq..hh
<<file>> device.cpp
对源代码建模
对可执行文件和库建模
对表、文件和文档建模
三、 依赖关系
? 把提供服务的构件称为提供者,把使用服务的构件 称为客户
<<file>> <s{s{<ivivgfgeeninrraslaslieli.oh>.on>hn==44..00}}
<i<in<n<tftefieirllrpeep.>c>.>p>cppp
<<file>> <s{s{<ivivgfgeeninrrlasaslelii.o>.ohn>hn==44..11}}
?C++中, 在文件中引入头文件
2.编译依赖
源文件和目标文件之间存在着依赖,源文件的任 何改变必须重新编译并生成目标代码。
3. 档案文件和库
(目标文件的集合,包含其他构件的构件,在 java 中为jar 文件)
4. 编译依赖
当一个程序文件改变后,包含此文件的其它 文件都可能需要重新编译。
public class X {
private Y they; ……
}
public class Y {
private X thex; ……
}
? 基于泛化的依赖
从子类到超类存在依赖;超类的改变可能 会影响子类。
? 类A 的操作接口中使用了类B
public class A {
public void anOperation(B theB){ …… } }