




已阅读5页,还剩40页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
包图 在UML建模机制中 模型的组织是通过包 package 来实现的 包可以把建立的各种模型 包括静态模型和动态模型 组织起来 形成各种功能和用途的模块并可以控制包中元素的可见性以及描述包之间的依赖关系 通过这种方式系统模型的实现者能够在高层 按照模块的方式 把握系统的结构 包图是一种维护和描述系统总体结构模型的重要建模工具 通过对图中各个包以及包之间关系的描述 展现出系统的模块与模块之间的依赖关系 知识图谱 Agenda 什么是包如何阅读包图如何绘制包图包图应用说明本章小结 Agenda 什么是包如何阅读包图如何绘制包图包图应用说明本章小结 什么是包 在面向对象软件开发的视角中 类显然是构建整个系统的基本构造块 但是对于庞大的应用系统而言 其包含的类将是成百上千 再加上其间 阡陌交纵 的关联关系 多重性等 必然是大大超出了人们可以处理的复杂度 这也就是引入了 包 这种分组事物构造块 包的作用是 1 对语义上相关的元素进行分组 2 定义模型中的 语义边界 3 提供配置管理单元 4 在设计时 提供并行工作的单元 5 提供封装的命名空间 其中所有名称必须惟一 包的表示法 名称 每个包都必须有一个与其它包相区别的名称拥有的元素 在包中可以拥有各种其它元素 包括类 接口 构件 节点 协作 用例 甚至是其它包或图 5 2包的表示 UML中 用文件夹符号来表示一个包 包由一个矩形表示 它包含2栏 下面是最常见的几种包的表示法 如图5 2所示 图5 2包的表示法 5 2包的表示 5 2 1包的名称每个包必须有一个与其他包相区别的名称 标识包名称的格式有两种 简单名和全名 其中 简单名仅包含包一个简单的名称 全名是用该包的外围包的名字作为前缀 加上包本身的名字 例如 Rose常用表示方法中 其包名UI就是一个简单名 而包System Web UI才是一个完整带路径的名称 表示UI这个包是位于System Web命名空间中的 如图5 3所示 图5 3包 包的表示 包的元素在一个包中可以拥有各种其他元素 包括类 接口 构件 节点 协作 用例 甚至是其他包或图 这是一种组成关系 意味着元素是在这个包中声明的 因此一个元素只能属于一个包 每一个包就意味着一个独立的命名空间 因此 两个不同的包 可以具有相同的元素名 但由于所位于的包名不同 因此其全名仍然是不同的 在包中表拥有的元素时 有两种方法 一种是在第二栏中列出所属元素名 一种是在第二栏中画出所属元素的图形表示 参见图5 2 包之间的依赖关系 包图的基本概念 包对自身所包含的内部元素的可见性也有定义 使用关键字private protected或public来表示 private定义的私有元素对包外部元素完全不可见 protected定义的被保护的元素只对那些与包含这些元素的包有泛化关系的包可见 public定义的公共元素对所有引入的包以及它们的后代都可见 可见性 通常 一个包不能访问另一个包的内容 包是不透明的 除非它们被访问或引入依赖关系才能打开 访问依赖关系直接应用到包或其它容器中 在包中 访问依赖元素表示提供者包的内容可被客户包中的子包所引用 提供者中的元素在它的包中要有足够的可见性 使得客户可以看到它 可见性 通常一个包只能看到其他包中被指定为具有公共可见性的元素 具有受保护可见性的元素只对包含它的包的后代包具有可见性 对于引用一个元素而言 访问许可和正确的可见性都是必须的 所以如果一个包中的元素要看到不相关的另一个包中的元素 则第一个包必须访问或引用第二个包 且目标元素在第二个包中必须有公共可见性 要引用包中的内容 可使用PackageName PackageElement的形式 称为全限定名 FullyQualifiedName 包图的基本概念 3 包的构造型和子系统包也有不同的构造型 表现为不同的特殊类型的包 如模型 子系统和系统等 在RationalRose2003中 创建包时 不仅可以使用内部支持的一些构造型 也可以自己创建一些构造型 用户自定义的构造型也可标记为关键字 但是不能与UML预定义的关键字相冲突 RationalRose2003支持四种包的构造型 第一种 业务分析模型包 第二种 业务设计包 包图的基本概念 第三种 业务用例模型包 第四种CORBAModule包 包图的基本概念 3 包的构造型和子系统系统是组织起来以完成一定目的的连接单元的集合 由一个高级子系统建模 该子系统间接包含共同完成现实世界目的的模型元素的集合 一个系统通常可以用一个或多个视点不同的模型描述 系统使用一个带有构造型 system 的包表示 在RationalRose2003中 内部支持的二种系统 子系统是有单独的说明和实现部分的包 它表示具有对系统其他部分存在干净接口的连贯模型单元 通常按照一定的功能要求或实现要求对系统进行操作 子系统使用具有构造型关键字subsystem的包表示 包图的基本概念 4 包的嵌套包可以拥有其他包作为包内的元素 子包又可以拥有自己的子包 这样可以构成一个系统的嵌套结构 以表达系统模型元素的静态结构关系 包的嵌套可以清晰的表现系统模型元素之间的关系 但是在建立模型时包的嵌套不宜过深 包的嵌套的层数一般以2到3层为宜 包图的基本概念 5 包的联系包之间的关系总的来讲可以概括为依赖关系和泛化 二个包之间存在着依赖关系通常是指这二个包所包含的模型元素之间存在着一个和多个依赖 对于由对象类组成的包 如果二个包的任何对象类之间存在着如何一种依赖 则这二个包之间就存在着依赖 包的依赖联系同样是使用一根虚箭线表示 虚箭线从依赖源指向独立目的包 包的联系 Agenda 什么是包如何阅读包图如何绘制包图包图应用说明本章小结 阅读包图 包的依赖关系 use 关系 是一种默认的依赖关系 说明客户包 发出者 中的元素以某种方式使用提供者包 箭头指向的包 的公共元素 也就是说客户包依赖于提供者包 import 关系 最普遍的包依赖类型 说明提供者包的命名空间将被添加到客户包的命名空间中 客户包中的元素也能够访问提供者包的所有公共元素 access 关系 只想使用提供者包中的元素 而不想将其命名空间合并则应使用该关系 trace 关系 想表示一个包到另一个包的历史发展 则需要使用 trace 关系来表示 包图阅读的结果 首先根据 use 关系 可以发现Client包使用Server包 Server包使用System Data SqlClient包 结合其元素 不难得知Client负责Order 订单 的输入 并通过Server来管理用户的登录 LoggingService 和数据库存储 DataBase 而Server包还将通过 NET的SQLServer访问工具包来实现与数据库的实际交互 接着再看两个 import 从包的命名和其所属的元素不难发现Rule负责处理一些规则 并引用一个具体的窗体 Window 而Client包则通过引用Rule来实现整个窗体和表单的显示 输入等 并且还将暂存Order 订单 信息 最后来看包的泛化关系 GUI有两个具体实现 一个是针对C S的WindowsGUI 一个是实现B S的WebGUI 包的构造型 system 和 subsystem 构造型 system 构造型的包表示正在建模的整个系统 而 subsystem 构造型的包则表示正在建模的系统中某个独立的部分 facade 构造型 只是某个其它包的视图 它主要用来为其它一些复杂的包提供简略视图 stub 构造型 是一个代理包 它服务于某个其他包的公共内容 这通常应用于分布式系统的建模中 framework 构造型 用来表示一个框架的 框架是一个领域内的应用系统提供可扩充模板的体系结构模式 Agenda 什么是包如何阅读包图如何绘制包图包图应用说明本章小结 使用Rose创建包图 1 创建删除包图 1 通过工具栏或菜单栏添加包的步骤如下 在类图的图形编辑工具栏中 选择用于创建包的按钮 或者在菜单栏中 选择 Tools 工具 中 Create 新建 菜单下的 Package 选项 此时的光标变为 符号 2 单击类图的任意一个空白处 系统在该位置创建一个包图 系统产生的默认名称为 NewPackage 3 将 NewPackage 重新命名成新的名称即可 使用Rose创建包图 2 添加包中的信息 1 选中 PackageA 包的图标 单击右键 在菜单选项中选择 SelectCompartmentItems 选项 2 在弹出对话框的左侧 显示了在该包目录下的所有的类 选中类 通过中间的按钮将 ClassA 和 ClassB 添加到右侧的框中 3 添加完毕以后 点击 OK 按钮即可 使用Rose创建包图 3 创建包的依赖关系包和包之间与类和类之间一样 也可以有依赖关系 并且包的依赖关系也和类的依赖关系的表示形式一样 使用依赖关系的图标进行表示 包图绘制原则 最小化包之间的依赖 最小化每个包中的public protected元素的个数 最大化每个包中private元素个数在建模时应该避免包之间的循环依赖 也就是不能够包含相互依赖的情况 对于这种情况应进行分析 寻找包 分析系统工作流程 1 通过Internet连接到股票信息服务器 获取实时的股票信息 并存入数据库中 2 根据用户的输入和选择 从数据库中获取相应的信息 展现在屏幕中 3 在数据的展现过程中 将需要绘制大量的图表根据功能模块组织包 确定包与包之间的依赖关系 Agenda 什么是包如何阅读包图如何绘制包图包图应用说明本章小结 对成组元素建模 每个包都应该是在概念 语义上相互接近的元素组成 对每个包找出应标记为公共的元素 但应尽可能地少 一般使用默认的 use 构造型 在映射到编程时考虑明确 import 构造型 考虑采用泛化来对特殊包进行建模 在表示这种模型时 注意只标明对每个包都起核心作用的元素 另外也可以标识每个包的文档标记值 以使其更加清晰 对体系结构建模 对体系结构进行建模 是包图更有意义的一个用途 体系结构是一个软件系统的核心逻辑结构常用的体系结构模式包括分层 MVC 管道 黑板 微内核等 而在应用软件中 分层和MVC 在项目中使用包图 1 确立包图的分类分析学生信息管理系统 我们采用MVC架构进行包的划分 可以在逻辑视图下确定三个包 分别为模型包 视图包和控制包 模型包是对系统应用功能的抽象 在包中的各个类封装了系统的状态 视图包是对系统数据表达的抽象 在包中的各个类对用户的数据进行表达 并维护与模型中的各个类数据的一致性 控制包是对用户与系统交互事件的抽象 它把用户的操作编程系统的事件 根
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年船舶车辆运输服务代理合同
- 2025版建材城商铺租赁合同违约责任及赔偿条款范本
- 2025年度电子产品维修与保养服务合同
- 2025版整车运输项目合作协议书
- 二零二五版上海市小微企业贷款担保服务协议
- 2025年度农业技术支持人员劳务雇佣协议
- 二零二五年度母婴用品店装修设计与施工合同
- 二零二五年电商品牌授权代理合作协议书
- 2025版电脑外设维修与兼容性检测服务合同
- 二零二五年度IT企业网络安全程序员聘用合同样本
- 电气值班员技师实操题
- 手术物品清点课件
- 物理word版2023山东高考答题卡涂准考证号和条形码
- WS/T 512-2016医疗机构环境表面清洁与消毒管理规范
- GB/T 36089-2018丙烯腈-丁二烯橡胶(NBR)
- GB/T 35694-2017光伏发电站安全规程
- GB/T 26746-2011矿物棉喷涂绝热层
- GA/T 828-2009电子物证软件功能检验技术规范
- 中耳疾病(分泌性中耳炎、急慢性中耳炎)
- 20XX贵州省高职(专科)分类真习题卷
- MRB制程培训教材课件
评论
0/150
提交评论