1、1 包图的概念包图的概念3包的作用包的作用对语义上相关的元素进行分组。对语义上相关的元素进行分组。提供配置管理单元。提供并行工作的单元。提供封装的命名空间,同一个包中,其元素的名提供封装的命名空间,同一个包中,其元素的名称必须唯一。称必须唯一。1 包图的概念包图的概念3包中的元素包中的元素包中的元素:包中的元素:类、接口、构件、节点、协作、用类、接口、构件、节点、协作、用例、图例、图以及以及其他包其他包。一个模型元素不能被一个以上的包所拥有。如果包被撤销,其中的元素也要被撤销。2 包的表示包的表示1包的符号表示包的符号表示UML中,用中,用文件夹符号文件夹符号来表示一个包。包由一个矩形表来表示
2、一个包。包由一个矩形表示,它包含示,它包含2栏。栏。最常见的几种包的表示法,如图最常见的几种包的表示法,如图2所示:所示:PackageNamePackageNameClassName-1ClassName-2.PackageName类名类名Rose常用表示法常用表示法包名放在第一栏包名放在第一栏在第二栏画出所在第二栏画出所包含的类图形表示包含的类图形表示第二栏列出第二栏列出包含的类名包含的类名包名放在第二栏包名放在第二栏2 包的表示包的表示1包的符号表示包的符号表示嵌套包及其表示嵌套包及其表示一个包可以包含其他一个包可以包含其他的包;的包;嵌套包可以访问自身嵌套包可以访问自身的元素;的元素;
3、应尽量避免使用嵌套应尽量避免使用嵌套包,一般包,一般2-3层最好。层最好。LibraryUsers嵌套包嵌套包Librarian Borrower2 包的表示包的表示1包的符号表示包的符号表示n 嵌套包及其表示嵌套包及其表示外部表示法外部表示法2 包的表示包的表示2包的名称包的名称每个包必须有一个与其他包相区别的名称。每个包必须有一个与其他包相区别的名称。两种形式:简单名和路径。System:Web:UISystem.Web.UI2 包的表示包的表示3包的元素包的元素在一个包中可以在一个包中可以拥有拥有各种其他元素,这是一种组各种其他元素,这是一种组成关系。成关系。每一个包就意味着一个独立的命
4、名空间,两个不每一个包就意味着一个独立的命名空间,两个不同的包,可以具有相同的元素名。同的包,可以具有相同的元素名。在包中表示拥有的元素时,有两种方法:一种是一种是在第二栏中列出所属元素名,一种是在第二栏中在第二栏中列出所属元素名,一种是在第二栏中画出所属元素的图形表示画出所属元素的图形表示。2 包的表示包的表示4包的可见性包的可见性公有的(公有的(public)“”受保护的(受保护的(protected)“”私有的(私有的(private)“”2 包的表示包的表示可见性可见性含义含义前缀符号前缀符号公有的公有的Public此元素可以被任何引用该此元素可以被任何引用该包的包中的元素访问。包的包
5、中的元素访问。+受保护的受保护的Protected此元素可被继承该包的包此元素可被继承该包的包中的元素访问。中的元素访问。#私有的私有的private此元素只能被同一个包中此元素只能被同一个包中的元素访问。的元素访问。-4包的可见性包的可见性 包内元素的可见性控制了包外部元素访问包内包内元素的可见性控制了包外部元素访问包内部元素的权限。部元素的权限。3 包图中的关系包图中的关系包之间可以有两种关系:包之间可以有两种关系:引用和访问依赖引用和访问依赖:在一个包中引入另一个包输:在一个包中引入另一个包输出的元素出的元素 泛化泛化:说明包的家族:说明包的家族 3 包图中的关系包图中的关系1依赖关系依
6、赖关系使用关系使用关系use:说明客户包中的元素以某种方式使用:说明客户包中的元素以某种方式使用提供者包的公共元素。提供者包的公共元素。包含关系包含关系import:提供者包命名空间的公共元素被:提供者包命名空间的公共元素被添加为客户包命名空间上的公共元素添加为客户包命名空间上的公共元素访问关系访问关系access:提供者包命名空间的公共元素被添加为客户包命名空间上的私有元素。添加为客户包命名空间上的私有元素。客户客户提供者提供者3 包图中的关系包图中的关系1依赖关系依赖关系 跟踪关系跟踪关系trace:通常表示一个元素历史地:通常表示一个元素历史地发展成为另一个进化版本。发展成为另一个进化版
7、本。分析模型是设计模型的元模型,元模型的元分析模型是设计模型的元模型,元模型的元素进化为设计模型,这时指的是模型之间的关系,素进化为设计模型,这时指的是模型之间的关系,不是元素之间的关系。不是元素之间的关系。分析模型分析模型设计模型设计模型元模型元模型3 包图中的关系包图中的关系2泛化关系泛化关系包间的泛化关系与类之间的泛化关系类似。包间的泛化关系与类之间的泛化关系类似。4 阅读包图阅读包图阅读包图的方法如下:阅读包图的方法如下:了解每个包的语义及其包含元素语义。理解包间的关系。找到依赖复杂的包,从最复杂的包开始阅读,找到依赖复杂的包,从最复杂的包开始阅读,然后依次是简单的包。然后依次是简单的
8、包。4 阅读包图阅读包图对上面包的理解如下:对上面包的理解如下:(1)根据)根据use关系可以发现关系可以发现Client包使用包使用Server包,包,Server包使用包使用System.Data.SqlClient包,根据它们所包包,根据它们所包含的元素语义,可以得知含的元素语义,可以得知Client包负责包负责Order(订单订单)的输入,的输入,并通过并通过Server包来管理用户的登录(包来管理用户的登录(LoggingService)和)和数据库存储(数据库存储(DataBase);而);而Server包还通过包还通过.Net的的SQL SERVER 访问工具包,来实现与数据库的
9、连接和通讯。访问工具包,来实现与数据库的连接和通讯。(2)看)看import关系,从关系,从RULE包所包含的元素语义可包所包含的元素语义可知,该包负责处理一些规则,并引用一个具体的窗体知,该包负责处理一些规则,并引用一个具体的窗体(Window);而;而Client包通过引用包通过引用RULE来实现整个窗体和来实现整个窗体和表单的显示,输入等,并且还将暂存表单的显示,输入等,并且还将暂存Order(订单)信息。(订单)信息。(3)接着来看包的泛化关系。)接着来看包的泛化关系。GUI有两个具体实现:一个有两个具体实现:一个是针对是针对C/S的的WindowsGUI,一个是实现,一个是实现B/S
10、的的WebGUI.例子描述例子描述分析系统工作流程:分析系统工作流程:1)通过)通过Internet连接到股票信息服务器,获连接到股票信息服务器,获取实时的股票信息,并存入数据库中。取实时的股票信息,并存入数据库中。2)根据用户的输入和选择,从数据库中获取相)根据用户的输入和选择,从数据库中获取相应的信息,展现在屏幕中。应的信息,展现在屏幕中。3)在数据的展现过程中,将需要绘制大量的图)在数据的展现过程中,将需要绘制大量的图表。表。举例举例举例举例根据功能模块组织根据功能模块组织包:包:包包分析与功能分析与功能.NET支持包支持包SocketClient负责连接负责连接Internet服服务器
11、,获取实时股票信务器,获取实时股票信息息System.Net.SocketsDataAccess负责从数据库读写实时负责从数据库读写实时股票信息股票信息System.Data.SqlclientUI负责响应用户输入和选负责响应用户输入和选择,并展现信息择,并展现信息System.Windows.FormsGraphicGenerate负责根据数据库的信息负责根据数据库的信息生成相应的图表生成相应的图表System.Drawing举举例例业务业务 呈现呈现 数据数据 设计包的原则设计包的原则 在考虑如何对类进行分组并放入不同的包时,在考虑如何对类进行分组并放入不同的包时,主要依据类之间的依赖关系
12、进行分组。包中的类主要依据类之间的依赖关系进行分组。包中的类应该是功能相关的,在建包时,应把概念上和语应该是功能相关的,在建包时,应把概念上和语义上相近的模型元素纳入一个包。依赖关系其实义上相近的模型元素纳入一个包。依赖关系其实是耦合的一种体现,如果两个包中的类之间存在是耦合的一种体现,如果两个包中的类之间存在依赖关系,那么这两个包之间就有了依赖关系,依赖关系,那么这两个包之间就有了依赖关系,也就存在耦合关系。也就存在耦合关系。好的设计要求体现高内聚、好的设计要求体现高内聚、低耦合的特性。低耦合的特性。设计包的原则设计包的原则设计包时,应遵循以下原则:设计包时,应遵循以下原则:重用等价原则重用
13、等价原则共同闭包原则共同闭包原则共同重用原则共同重用原则非循环依赖原则非循环依赖原则设计包的原则设计包的原则重用等价原则重用等价原则 把类放入包中时,应考虑把包作为可重用的把类放入包中时,应考虑把包作为可重用的单元。单元。共同闭包原则共同闭包原则 把那些需要同时改变的类放在同一个包中。把那些需要同时改变的类放在同一个包中。p若一个类的行为或结构的改变要求另一个类做相应的若一个类的行为或结构的改变要求另一个类做相应的改变;改变;p删除了一个类后,另一个类成多余的;删除了一个类后,另一个类成多余的;p两个类之间有大量的消息发送。两个类之间有大量的消息发送。设计包的原则设计包的原则共同重用原则共同重
14、用原则 把不会一起使用的类不要放在同一个包中。把不会一起使用的类不要放在同一个包中。非循环依赖原则非循环依赖原则 包之间的依赖关系不要形成循环。包之间的依赖关系不要形成循环。设计包的原则设计包的原则 合合并并 分分解解 消除循环依赖的示例消除循环依赖的示例4 创建包图创建包图绘制包图的基本步骤如下:绘制包图的基本步骤如下:分析系统的模型元素(通常是对象类),把概念分析系统的模型元素(通常是对象类),把概念上或语义上相近的模型元素归入同一个包。上或语义上相近的模型元素归入同一个包。对于每一个包,标出其模型元素的可视性,确定对于每一个包,标出其模型元素的可视性,确定包内每个元素的访问属性,是公共、保护或私有。包内每个元素的访问属性,是公共、保护或私有。确定包与包之间的依赖联系,特别是确
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1