构件图与部署图ppt课件.ppt_第1页
构件图与部署图ppt课件.ppt_第2页
构件图与部署图ppt课件.ppt_第3页
构件图与部署图ppt课件.ppt_第4页
构件图与部署图ppt课件.ppt_第5页
已阅读5页,还剩82页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

构件图与部署图 1 构件图 构件是系统的可替代的物理部分 是定义了良好接口的物理实现单元 它是系统中可以替代的部分 每个构件体现了系统设计中的特定类的实现 良好定义的构件不直接依赖于其它构件 而是依赖于其它构件所支持的接口 在这种情况下 系统中的一个构件可以被支持相同的接口的其它构件所替代 2 构件图 接口是被软件或硬件所支持的一个操作集合 每个接口有一个名称 通过使用命名的接口 可以避免在系统的各个构件之间直接发生依赖关系 有利于新构件的替换 3 构件的概念 从构件组成上看 每个构件定义了2组接口 一组供给接口 一组需求接口 构件为供给接口提供了提供了功能实现部分 4 对于一个构件而言 它包含5个要素 1 接口声明 每个构件包含两组接口 一组是供给接口 表明它能提供的服务 一组是需求接口 表明它需要的服务 2 接口实现 构件是一个物理部件 它实现了供给接口声明的服务 3 构件标准 在创建构件时 每一个构件必须遵从某种构件标准 4 封装方法 也就是构件遵从的封装标准 5 部署方法 一个构件可以有多种部署方法 5 构件与类 从构件的定义上看 构件和类十分相似 二者都有名称 都可以实现一组接口 都可以参与依赖 泛化和关联关系 都可以被嵌套 都可以有实例 都可以参与交互 6 构件与类 构件与类的区别 1 类表示是对实体的抽象 而构件是对存在于计算机中的物理部件的抽象 也就是说 构件是可以部署的 而类不能部署 2 构件属于软件模块 而非逻辑模块 与类相比 它们处于不同的抽象级别 甚至可以说 构件就是由一组类通过协作完成的 3 类可以直接拥有操作和属性 而构件仅拥有可以通过其接口访问的操作 7 构件分类 按照构件在系统中的角色 把构件分为3种类型 1 配置构件 组成系统的基础构件 是执行其它构件的基础平台 如 操作系统 java虚拟机 JVM 数据库管理系统都属于配置构件 2 工作产品构件 这类构件主要是开发过程的中间产物 如 创建构件时的源代码文件及数据文件都属于工作产品构件 这些构件并不是直接地参与系统运行 3 执行构件 在运行时创建的构件 例如由DLL实例化形成的COM 对象 Servlets XML文档都属于执行构件 8 构件图的概念 构件图提供当前模型的物理视图 对系统的静态实现视图建模 构件图显示一个系统物理设计时 构件所映射的类和对象的配置 一个构件图可以表示一个系统全部或者部分的构件体系 从组织内容看 构件图显示软件构件的组织以及构件之间的依赖关系 包括源代码构件 二进制代码构件以及可执行构件 构件图是对OO系统物理方面建模的2个图之一 9 构件图的概念 构件图主要用于描述各种软件构件之间的依赖关系 例如 可执行文件和源文件之间的依赖关系 所设计的系统中的构件的表示法及这些构件之间的关系构成了构件图 与所有UML的其它图一样 构件图可以包括注释 约束 包 10 构件图的概念 11 构件图的概念 12 构件图的基本概念构件图是用来表示系统中构件与构件之间 以及定义的类或接口与构件之间的关系的图 在构件图中 构件和构件之间的关系表现为依赖关系 定义的类或接口与类之间的关系表现为依赖关系或实现关系 13 构件图的作用 构件图的基本目的是 使系统人员和开发人员能够从整体上了解系统的所有物理部件 同时 也使我们知道如何对构件进行打包 以便交付给最终客户 最后 构件图显示了被开发系统所包含的构件之间的依赖关系 构件图从软件架构的角度来描述一个系统的主要功能 如系统分成几个子系统 每个子系统包括哪些类 包和构件 它们之间的关系以及它们分配到哪些节点上等 14 构件图的作用 使用构件图可以清楚地看出系统的结构和功能 方便项目组的成员制定工作目标和了解工作情况 同时 最重要的一点是有利于软件的复用 从宏观的角度上 构件图把软件看作多个独立构件组装而成的集合 每个构件可以被实现相同接口的其它构件替换 15 构件的表示 构件是定义了良好接口的物理实现单元 是系统中可替换的物理部件 构件可以是源代码构件 二进制构件或一个可执行的构件 在UML中 构件用一个左侧带有突出两个小矩形的矩形来表示 带版型的构件 16 构件的名称 每个构件都必须有一个不同于其他构件的名称 构件的名称是一个字符串 位于构件图标的内部构件名称通常是从现实的词汇表中抽取出来的短名词或名词短语 并依据目标操作系统添加相应的扩展名 例如java和dll 17 在构件图中 我们将系统中可重用的模块封装成为具有可替代性的物理单元 我们称之称为构件 它是独立的 在一个系统或子系统中的封装单位 提供一个或多个接口 是系统高层的可重用的部件 构件作为系统定义良好接口的物理实现单元 它能够不直接依赖于其他构件而仅仅依赖于构件所支持的接口 通过使用被软件或硬件所支持的一个操作集 接口 构件可以避免在系统中与其它构件之间直接发生依赖关系 18 构件图和部署图的基本概念 有一些构件的图标表示形式和标准构件图形表示形式相同 它们包括ActiveX Applet Application DLL EXE以及自定义构造型的构件 它们的表示形式是在构件上添加相关的构造型 是一个构造型为Applet的构件 19 构件图和部署图的基本概念 在RationalRose2003中 数据库也被认为是一种构件 虚包是一种只包含对其它包所具有的元素进行的引用的构件 它被用来提供一个包的某些内容的公共视图 虚包不包含任何它自己的模型元素 20 构件图和部署图的基本概念 系统是指组织起来以完成一定目的的连接单元的集合 在系统中 肯定有一个文件用来指定系统的入口 也就是系统程序的根文件 这个文件被成为主程序 子程序规范和子程序体是用来显示子程序的规范和实现体 子程序是一个单独处理的元素的包 我们通常用它代指一组子程序集 21 构件的表示 没有标识接口的构件表示法没有标识接口的构件的图形表示方法分三种 表示为标有构造型 component 的矩形 在矩形的右上角放置一个构件图标 一个小矩形 并在左侧加上两个突出的更小的矩形 直接使用构件图标 没有标识接口的构件的图形的三种表示法 和类的名称相近 构件的名称也是一个正文字符串 它可以是简单名 也可以是带路径的全名 22 构件的表示 标识接口的构件表示法对于一个构件而言 它有两类接口 提供 provided 接口和所需 required 的接口 标识接口的构件表示方法也有3种 标识接口的构件3种表示方法 23 构件的表示 1 使用接口分栏表示 也就是将所需的接口和提供的接口直接显示在矩形的分栏中 将构造型 provided 和 required 放在每个接口名之前 2 使用图标表示法 将接口的图标连接到矩形的边框上 共给接口表示为通过一条实线链接到矩形上的圆圈 而需求接口则表示为一条实线链接到矩形上的上半圆 3 显示表示法 接口也可以用完整的显示形式表示 构件和其提供的接口之间是实现关系 而构件和其所需的接口之间是使用 use 关系 24 Rose中的扩展构件 子程序说明是一组子程序集合名 其中不包括类定义 子程序体表示子程序的实现 主程序是包含程序根的文件 25 构件的类型 26 构件间的关系 依赖关系 一个构件如果使用另外一个构件的操作 则也可以在该构件和另外一个构件的接口间建立依赖关系 27 构件间的关系 依赖关系 对象和源码间 28 构件间的关系 依赖关系 两个构件中的类如果存在泛化关系 则构件间可以加依赖关系 29 构件间的关系 依赖关系 两个构件中的类如果存在使用关系 则构件间可以加依赖关系 30 构件间的关系 实现关系 31 构件图 Componentdiagram 提供当前模型的物理视图 显示包括构件源码 二进制文件和可执行文件在内的软件构件之间的组织和依赖关系 也可以通过显示组件的接口来展示组件外部可见的行为 32 构件图 基本构件图 33 构件图 嵌套构件图 34 绘制构件图 确定子系统对外的接口 将整个 在线酒店预订子系统 作为一个构件 考虑其对外接口 显然它首先需要提供用户界面 其次还需要与加盟的酒店系统连接 完成预订工作 35 绘制构件图 确定子构件和接口 显然要有一个构件来实现用户界面 一个构件来完成与酒店系统的连接和预订 另外还应该有一个负责将用户的需求与酒店的供给进行匹配的 调度程序 36 绘制构件图 对可执行程序的结构建模 首先识别你想建模的构件集合考虑集合中各构件的不同类型 对这个集合中的每个构件 分析它们之的关系 37 绘制构件图 对源代码建模 识别相关源代码文件的集合 建模为构件 对于较大的系统 利用包来进行分组 通过约束来表示源代码的版本号 作者和最后修改日期等信息 用依赖关系来表示这些文件间编译的依赖关系 38 实例1 ATM系统的构件图 一个执行文件构件和两个包文件构件 39 实例2 选课系统的构件图 40 实例3 图中依赖关系包括 顾客需要信息亭接口提供服务售票员需要职员接口提供服务信用卡付款需要信用卡代理提供服务职员接口需要预订销售 个人销售和团体销售提供服务管理接口需要数据库状态提供服务售票处需要付款和购买提供服务等等 图中实现关系包括 信用卡付款提供付款服务票数据库提供购买和状态查询服务售票处提供预订购买 个人购买和团体购买服务 情景一 购买个人票可以通过公用信息亭订购也可直接向售票员购买 但购买团体票只能通过售票员 情景二 买票的人可以根据任意选择预订销售或个人销售或团体销售中的一种方式 售票处为了方便销售 需要信用卡付款服务的支持 同时也必然需要票数据库处在有票可卖的状况中 情景描述 41 接口 接口用于描述构件所提供的服务的一组操作集合 指定了构件的外部可见操作 构件和接口之间的关系叫做实现关系 可以通过接口访问一个构件 接口和构件之间的关系分为两种 实现关系 Realization 依赖关系 Dependency 在图中 接口和构件之间用实线连接表示实现关系 而接口和构件之间用虚线箭头连接则表示依赖关系 42 接口 在构件图中 常见的两种依赖关系 编译依赖调用依赖使用依赖关系的三种情况 客户类要访问一个在提供者类 接口 中定义的值 常量或变量 客户类的操作激活提供者类 接口 的操作 客户类的操作具有返回到提供者类 接口 的实例或参量的特征标记 43 接口 构件与接口之间的关系 实现关系和依赖关系 导出接口 导入接口 为了便于构件之间替换 建议使用以上依赖关系 44 构件图分类 构件图可以分为两种 简单构件图和嵌套构件图 1简单构件图我们可以把相互协作的类 组织成一个构件 利用构件图可以让软件开发者知道系统是由哪些可执行的构件组成的 这样 以构件为单位来看待系统时 让开发者清楚的看到软件系统的体系结构 45 构件图分类 1 用户界面层 采用JSP页面实现用户界面 我们通过构造型 JavaServerpage 来表示构件 这一部分的构件 主要由边界类组成 2 业务逻辑层 在实现上主要采用了JavaBean技术 使用构造型 JavaBean 来表示这一层的构件 这些构件主要由实体类组合而成 3 数据访问层 该层将所有的数据访问操作封装在一个JavaBean中 如果是大型应用 可能封装成为EJB 标明了它是JDBC的一个实现 46 构件图分类 在这个例子中 对可执行程序的体系结构进行了建模 以帮助开发者了解可执行程序模块之间的关联关系 从而从宏观上认识系统 47 构件图分类 2嵌套的构件图使用嵌套的构件图来表示构件的内部结构 销售管理服务器中包含两个构件 一个是处理收银机发送来的销售消息 完成交易处理 另一个是财务接口 负责处理与财务系统的连接 这时交易处理程序就委托财务接口来完成与财务系统的数据传送 在图中 销售管理服务器所提供的接口和所需的接口与构件连接的点上 都有一个小矩形 它表示的是 端口 这些端口将通过带箭头的实线与具体的子构件连接 表示该接口的提供者或需求者 48 构件图与类图 包图的关系 基于类与构件之间的区别 也可以看到 类图侧重于系统的逻辑设计 而构件图更侧重于系统的物理设计及实现 包的设计主要是为了创建方便他人重用的包 因为人们通常不重用一个类 一般总是重用一组类 绝大多数系统都是由许多个包建立的 这些包相互依赖 建立了一个庞大的依赖关系图 根据发生变化的敏感度将类分组 基于同一个原因发生变化的类放在同一个包中 49 构件图应用 构件图描述了软件的组成和具体结构 表示了系统的静态部分 它能够帮助开发人员从总体上认识系统 常采用构件图来描述可执行程序的结构 源代码 物理数据库组成和结构 1对可执行程序建模通过构件图 可以清晰地表示出各个可执行文件 链接库 数据库 帮助文件和资源文件等其它可运行的物理构件之间的关系 在对可执行程序的结构进行建模时 通常应遵从以下原则 1 首先标识要建模的构件 2 理解和标识每个构件的类型 接口和作用 3 标识构件间的关系 50 构件图应用 对可执行文件之间的关系建模 51 构件图应用 例如 有一个语音呼叫中心程序callcenter exe 使用了三汇的语音卡的驱动程序shp a3 dll 以及相应的TTS 文本转语音 引擎sh ttsu dll 现在我们用构件图来描述这三个构件的关系 52 构件图应用 2对源代码进行建模通过构件图可以清晰地表示出软件的所有源文件之间的关系 开发者能更好地理解各个源代码文件之间的依赖关系 在对源程序进行建模时 通常应遵从以下原则 1 表示出要重点描述的每个源代码文件 并把每个源代码文件标识为构件 2 如果系统较大 我们就利用包来对构件进行分组 3 用编译依赖关系来描述构件间的关系 4 在构件图中 采用约束来表示源代码的版本号 作者和最后的修改日期等信息 53 构件图应用 例如 singal h是一个头文件 被interp cpp和signal cpp引用 其中interp cpp还引用了另一个头文件irq h 而device cpp又对interp cpp有编译依赖关系 那么用构件图表示它们间的关系 54 使用Rose创建构件图和部署图 1 创建构件图创建一个新的构件图 可以通过以下方式进行 右键单击浏览器中的ComponentView 构件视图 或者位于构件视图下的包 在弹出的菜单中 选中 New 新建 下的 ComponentDiagram 构件图 选项 输入新的构件图名称 双击打开浏览器中的构件图 55 使用Rose创建构件图和部署图 通过构件图的图形编辑工具栏添加对象的步骤如下 在构件图的图形编辑工具栏中 选择按钮 此时光标变为 号 在构件图图形编辑区内选择任意一个位置然后使用鼠标左键单击 系统在该位置创建一个新的构件 在构件的名称栏中 输入构件的名称 56 使用Rose创建构件图和部署图 对于构件图中的构件 和其它RationalRose2003中的模型元素一样 我们可以通过构件的标准规范窗口设置增加其细节信息 包括名称 构造型 语言 文本 声明 实现类和关联文件等 57 部署图 58 部署图 部署图 deploymentdiagram 也称为配置图 是用来显示系统中软件和硬件的物理架构 从部署图中 可以了解到软件和硬件组件之间的物理关系以及软件组件在处理节点上的分布情况 使用部署图可以显示运行时系统的结构 同时还表明了构成应用程序的硬件和软件元素的配置和部署方式 59 部署图的概念 部署图描述了系统中包括的计算机和其他的硬件设备 如这些计算机和设备的位置以及它们之间是如何进行相互连接的 即 部署图描述系统中的硬件节点及节点之间如何连接的图 60 部署图的概念 部署图的作用一个UML部署图描述了一个运行时的硬件结点 以及在这些结点上运行的软件构件的静态视图 部署图显示了系统的硬件 安装在硬件上的软件 以及用于连接异构机器之间的中间件 创建一个部署模型的目的包括 描述系统与生产环境中的其它系统间的依赖关系 这些系统可能是已经存在 或是将要引入的 描述一个商业应用主要的部署结构 设计一个嵌入系统的硬件和软件结构 描述一个组织的硬件 网络基础结构 61 部署图的概念 部署图的组成元素部署图的组成元素包括节点 节点间的连接 连接把多个节点关连在一起 构成一个部署图 62 部署图的表示 部署图包含两个部分 节点和连接 1节点节点代表一个运行时计算机系统中的硬件资源 节点通常拥有一些内存 并具有处理能力 例如一台计算机 一个工作站等其它计算设备都属于节点 在UML中 节点用一个立方体来表示 每一个节点都必须有一个区别于其他节点的名称 节点的名称是一个字符串 位于节点图标的内部 节点的名称有2种表示方法 简单名字和带路径的名字 简单名字就是一个文字串 带路径的名字指在简单名字前加上节点所属的包名 下面的立方体表示一个节点 其名称为Node 63 部署图的表示 按照节点是否有计算能力 把节点分为两种类型 处理器和设备 分别用构造型 Processor 和构造型 Device 表示处理器和设备 1 处理器 Processor 处理器是能够执行软件 具有计算能力的节点 2 设备 Device 设备是没有计算能力的节点 通常情况下都是通过其接口为外部提供某种服务 例如打印机 IC读写器 如果我们的系统不考虑它们内部的芯片 就可以把它们看作设备 64 部署图的表示 3 节点中的构件当某些构件驻留在某个节点时 可以在该节点的内部描述这些构件 对于一张部署图而言 最有价值的信息就是节点上的内容 也就是安装在节点中的构件 对于这些构件 可以直接写在节点中 也可以用构件表示 或用UML2 0规范推荐的 artifact database deploymentSpec 等构造型来表述构件 65 部署图的表示 对节点内驻留的构件描述 66 部署图的表示 对上图的解释 1 直接描述 例如在B S客户端中 必须安装 Web浏览器 并通过约束说明需要IE6 0以上版本或Firefox1 5以上版本 通常 对于不是由开发团队生成的制品 例如IIS服务器这种描述方式 也可以通过 约束 来描述它 2 artifact 构造型 用来表示文件 构件等制品 例如IIS服务器上的swWeb dll BusinessRule dll DateAccess dll及C S客户端上的se exe 3 database 构造型 用来表示一个实际的数据库 对应Oracle的scheme 例如在数据库服务器上的sw 4 deploymentSpec 构造型 用来表示部署描述 通常对关键的配置文件进行建模 还可以在构造块中直接指出具体参数的值 对于这些构造型 可以使用依赖关系来表示他们之间的相互关系 甚至可以表示跨节点之间的依赖 入DataAccess dll到sw之间的依赖连接 另外 在图中 使用了一个 directory 构造型 这并不是一个UML标准构造型 它只是使用者的一个扩展 67 部署图的表示 节点属性象类一样 可以为一个节点提供属性描述 如 处理器速度 内存容量 网卡数量等属性 可以为节点其提供启动 关机等操作属性 节点与构件的区别节点表示一个硬件部件 构件表示一个软件部件 两者有许多相同之处 例如二者都有名称 都可以参与依赖 泛化和关联关系 都可以被嵌套 都可以有实例 都可以参与交互 但它们之间也存在明显的区别 构件是软件系统执行的主体 而节点是执行构件的平台 构件是逻辑部件 而节点表示是物理部件 在物理部件上部署构件 68 部署图的表示 2连接部署图用连接表示各节点之间通信路径 连接用一条实线表示 对于企业的计算机系统硬件设备间的关系 通常关心的是节点之间是如何连接的 因此描述节点间的关系一般不使用名称 而是使用构造型描述 下图是节点之间连接的例子 69 部署图应用 在实际的应用中 部署图主要用在设计和实现两个阶段 1 设计阶段在这一阶段 部署图主要用来描述硬件节点以及节点之间的连接 仅描述硬件节点的部署图 右图并没有描述节点内的构件 在设计阶段 还没有创建出软件构件 70 部署图应用 2 实现阶段在实现阶段 已经生产出了软件构件 因此 可以把构件分配给对应的节点 描述了节点内部署的构件 实际应用当中 部署图主要用来对嵌入式系统 客户机 服务器系统 分布式系统进行建模 而且能够起到很好的作用 71 部署图应用 3 嵌入式系统建模如果采用部署图对嵌入式系统进行了建模 通过部署图 硬件工程师和软件开发者之间就能做更好的交流 在对嵌入式系统进行建模时 重点在于描述处理器和设备之间的关系 可以考虑对处理器和设备采取用更直观的图标 例如 一个航标RTU的嵌入式系统的部署图示 描述嵌入式系统的部署图 72 部署图应用 4 客户机 服务器和分布式系统建模当开发的软件要运行在多台计算机上时 就必须将软件构件以合理的方式部署在各个节点上 其中客户机 服务器结构就是一种典型的分布式系统模型 它包含三层B S S结构和两层C S结构 对于大型分布式系统可能还包括负载均衡 集群等部署结构 部署图的引入能够很好地对其进行表述 73 使用Rose创建构件图和部署图 创建部署图在每一个系统模型中 只存在一个部署图 在使用RationalRose2003创建系统模型时 就已经创建完毕 即为DeploymentView 部署视图 如果要访问部署图 在浏览器中双击该部署视图即可 其中包括 1 创建和删除节点 2 设置节点 3 添加和删除节点之间的连接 4 设置连接规范 74 用Rose部署一个实际的项目 1 确定需求用例我们使用下列的步骤创建构件图 1 根据用例或场景的确定需求 确定系统的构件 2 将系统中的类 接口等逻辑元素映射到构件中 3 确定构件之间的依赖关系 并对构件进行细化 我们将以将以在序列图中介绍的一个学生信息管理系统的简单用例为例 介绍如何去创建系统的构件图 75 用Rose部署一个实际的项目 2 创建构件图我们可以和确定用例中的类和对象一样 根据用例的流程确定系统的构件 根据上面的用例 我们可以确我们可以确定最明显的二个实体类是学生类 Student 和班级类 Grades 系统的操作界面 WebInterface 是一个边界类 还有 数据访问操作过程中离不开与数据库交互的数据库管理类 DataManager 除此以外 我们还需要一个系统的主程序 MainSystem 用来表示整个系统的启动入口 76 用Rose部署一个实际的项目 第二步 将系统中的类和接口等映射到构件中 然后我们按照将系统中的类 接口等逻辑元素映射到构件中 一个构件不仅仅包含一个类或接口

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论