[UNL课件] 第11章 包图

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

11.2 包图的基本概念
• i. 《use》关系
– 是一种默认的依赖关系 。 – 说明客户包(箭尾端的包)中的元素以某种方式使用 提供者包(箭头端的包)的公共元素,也就是说客户 包依赖于提供者包。 – 如果没有指明依赖类型,则默认为《use》关系。
11.2 包图的基本概念
• ii. 《import》关系
11.3 包图的创建概述
– 2.确定包之间的依赖关系
• 应该尽量避免包模型中的循环依赖
11.3 包图的创建概述
– 2.确定包之间的依赖关系
• 应该尽量避免包模型中的循环依赖
– 3.标出包中元素的可见性
11.3 包图的创建概述
• 3、包图的应用
– 1) 对成组元素建模。
• 每个包都应该是在概念、语义上相互接近的元素组 成。 • 对每个包找出应标记为公共的元素,但应尽可能地 少。
» 简单名仅包含包一个简单的名称; » 全名是用该包的外围包的名字作为前缀,加上包本身的 名字。
UI
System:Web:UI
简单名
含路径名(全名)
11.2 包图的基本概念
• ii.包的元素
– 包中可以拥有类、接口、构件、节点、协作、用例, 甚至是其他包或图。
» 包和这些元素之间为组成关系,意味着元素是在这个包 中声明的,因此一个元素只能属于一个包。 » 每一个包就意味着一个独立的命名空间,因此,两个不 同的包,可以具有相同的元素名,但由于所位于的包名 不同,因此其全名仍然是不同的。 » 在包中表拥有的元素时,有两种方法:一种是在第二栏 中列出所含元素名,一种是在第二栏中画出所含元素的 图形。
11.3 包图的创建概述
– 1.寻找包
①分析系统工作流程 • 通过Internet连接到股票信息服务器,获取实时的股 票信息,并存入数据库中。 • 根据用户的输入和选择,从数据库中获取相应的信 息,展现在屏幕中。 • 在数据的展现过程中,将需要绘制大量的图表。
11.3 包图的创建概述
– 1.寻找包
– 1) 包的作用是:
• 1)对语义上相关的元素进行分组。如,把功能相关 的用例放在一个包中。 • 2)提供配置管理单元。如,以包为单位,对软件进 行安装和配置。 • 3)在设计时,提供并行工作的单元。如,在设计阶 段,多个设计小组,可以同时对几个相互独立包中 的类进行详细设计。 • 4)提供封装的命名空间,同一个包中,其元素的名 称必须惟一。
②根据功能模块组织包
包 SocketClient DataAccess UI GraphicGenerate 分析与功能 负责连接Internet服务器,获取实时股票信息 负责从数据库读写实时股票信息 负责响应用户输入和选择,并展现信息 负责根据数据库的信息生成相应的图表 .NET支持包 System.Net.Sockets System.Data.Sqlclient System.Windows.Forms System.Drawing
11.3 包图的创建概述
• 包图的绘制:
– 1、基本过程主要有三个步骤:
• 第一,寻找包; • 第二,确定包之间的关系; • 第三,标出包内元素的可见性。
11.3 包图的创建概述
– 2、绘制包图的原则:
• ① 重用等价原则:把类放入包中时,应考虑把包作 为可重用的单元。 • ② 共同闭包原则:把可能同时修改,同时维护的类 放到一个包中,以便于维护,和升级。
• ⑤“最小化系统间的耦合关系”原则:
– 最小化每个包的public、protected元素的个数; – 最大化每个包中private元素的个数。
11.3 包图的创建概述
– 3、类的包图建议
• 一个框架内的类属于一个包。 • 一般位于同一继承层次上的类属于同一个包
• 通过聚集或者组成关系相关联的类往往属于同一个 包
11.2 包图的基本概念
• iii.包的可见性
– 像类中的属性和方法一样,包中的元素也有可见性, 包内元素的可见性控制了包外部元素访问包内部元素 的权限。 – 包的可见性有3种:
11.2 包图的基本概念
11.2 包图的基本概念
• iv. 包的构造型
– 用构造型来描述包的新特征。
» ①《system》构造型:表示整个系统。 » ②《subsystem》构造型:表示正在建模的系统中某个独立 的子系统。 » ③《facade》构造型:只是某个其它包的视图,它主要用来 为其它一些复杂的包提供简略视图 。 » ④《stub》构造型:是一个代理包,它服务于某个其他包的 公共内容,这通常应用于分布式系统的建模中 。 » ⑤《framework》构造型:用来表示一个框架的,框架是一 个领域内的应用系统提供可扩充模板的体系结构模式。
• 一般使用默认的<<use>>构造型,在映射到编程时考 虑明确<<import>>构造型。
• 考虑采用泛化来对特殊包进行建模。
11.3 包图的创建概述
– 2)对体系结构建模
• 体系结构是一个软件系统的核心逻辑结构。
本章重点
①了解包图的基本概念及包的作用 ②掌握包的表示(包的名称及可见性)
③掌握包与包之间的关系
④熟悉包图的基本建模原则 ⑤熟悉包图的建模过程,并了解包图的基本应用
11.2 包图的基本概念
类是构建整个系统的基本元素。

对于大型的软件系统而言,其 包含的类将是成百上千,再加 上类间的关联关系、多重性等, 必然是大大超出了人们对系统 的理解和处理能力。
• 2、包(Package )
– 是UML中将多个元素组织为语义相关的组的通 用机制。
11.2 包图的基本概念
• 相互之间协作很多的类通常属于同一个包
11.3 包图的创建概述
• 包图绘制示例:
11.3 包图的创建概述
– 1.寻找包
• 通过把具有很强语义联系的建模元素分组,找出分 析包。 • 分析包必须反映元素的真实的语义分组,而不仅是 逻辑架构的理想视图。 • 我们以对象模型和用例模型为依据,把关系紧密的 类分到同一个包中,把关系松散的类分到不同的包 中,以达到高内聚低耦合的良好包结构。
11.2 包图的基本概念
• v. 包的嵌套
– 包可以拥有其他包作为包内的元素,子包又可以拥有自己 的子包。 – 包的嵌套的层数一般以2到3层为宜。
11.2 包图的基本概念
• 3、包图中的关系
– 包图中的关系有2种:依赖关系、泛化关系。 – 1)依赖关系
• 依赖关系又可以分为4种。
• 在依赖关系中 ,我们把箭尾端的包称为客户包,把 箭头端的包称为提供者包。
• iv. 《trace》关系
– 想表示一个包到另一个包的历史发展,则需要使用《 trace》关系来表示 。
11.2 包图的基本概念
– 2)泛化关系wk.baidu.com
• 特殊包继承一般包的特性。 • 使用一般包的地方,可以用特殊包代替。
11.2 包图的基本概念
阅读包图: 1.了解每个包的语义,它包含 的元素语义。 2.理解包间的关系。 3.找到依赖关系复杂的包,从 最复杂的包开始阅读,然后依 次是简单的包。
第11章 包图
11.1 模型的组织结构
11.2 包图的基本概念
11.3 包图的创建概述
11.1 模型的组织结构
11.2 包图的基本概念
• 1、包图(Package Diagram)
– 包图是描述包及其关系的图。 – 是一种维护和描述系统总体结构的模型的重要 建模工具。 – 通过对图中各个包以及包之间关系的描述,展 现出系统的模块与模块之间的依赖关系。
11.2 包图的基本概念
– 2) 包中的元素:
• 包中可以拥有各种其它元素,包括类、接口、构件 、节点、协作、用例,甚至是其它子包或图 。 • 一个元素只能属于一个包。
11.2 包图的基本概念
– 3) 包的UML表示:
• UML中,用文件夹符号来表示一个包。
包名放在第二栏 包名放在第一栏 PageNa me 类名 在第二栏画出所 包含的类图形表示
– 最普遍的包依赖类型。说明提供者包的命名空间将被 添加到客户包的命名空间中,客户包中的元素也能够 访问提供者包的所有公共元素。
– 《import》关系使命名空间合并,当提供者包中的元 素具有与客户包中的元素相同的名称时,将会导致命 名空间的冲突。这也意味着,当客户包的元素引用提 供者包的元素时,将无需使用全称,只需使用元素名 称即可。
11.2 包图的基本概念
• iii. 《access》关系
– 如果只想使用提供者包中的元素,而不想将两个包合 并,则应使用该关系。 – 在客户包中必须使用路径名,访问提供者包中的所有 公共元素。
• iv. 《trace》关系
– 想表示一个包到另一个包的历史发展,则需要使用该 关系来表示 。
11.2 包图的基本概念
– 一个类的改变要求另一个类做相应改变. – 删除一个类后,另一个类变成多余. – 两个类间有大量的消息发送.
11.3 包图的创建概述
• ③共同重用原则:不会一起使用的类不要放在同一 个包中. • ④非循环依赖原则:包之间的依赖关系不要形成循 环。 合并法
循环依赖模型
分离法
11.3 包图的创建概述
PageName
PageNa me ClassName-1 ClassName-2 …..
Rose常用表示法 System:W eb UI class
第二栏列出 包含的类名 嵌套包
11.2 包图的基本概念
• i. 包的名称
– 每个包必须有一个与其他包相区别的名称。 – 标识包名称的格式有两种:简单名和全名。
相关文档
最新文档