包图组件图部署图
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
UML中,包是分组事物(grouping thing)的一种,它是在建模时用来 组织模型中的元素的,在系统运行时并不存在包的实例。这点和类不一样, 类在运行时会有实例(即对象)存在。
1.2 设计包的原则
在考虑如何对类进行分组并放入不同的包时,主要是根据类之间的依赖 关系进行分组。
包中的类应该是功能相关的,在建立包时,应把概念上和语义上相近 的模型元素纳入一个包。依赖关系其实是耦合的一种体现,如果两个包中 的类之间存在依赖关系,那么这两个包之间也就有了依赖关系,也就存在 了耦合关系。好的设计要求体现高内聚、低耦合的特性。
字空间的。这样在引用目的包中的内容时不
需要加包名限定,直接用目的包中的元素名 字即可。
User Services 《import》
Business Services 《import》
Data Services
图1.2 包之间的非传递依赖关系
另外,与UML中其他建模元素类似,包之间也可以有泛化关系。子包继 承了父包中可见性为public和protected的元素。
的Form元素,而VBForm +Form
是包WindowsGUI中新增 加的元素。与子类和父类
#GUI::EventHandler +VBForm
MacGUI
之间存在替换原则一样,
子包和父包之间也存在替 换原则,即子包可以出现
图1.3 包之间的泛化关系
在父包能出现的任何地方。
但是在实际建模过程中,包之间的泛化关系很少用到。 包是UML中的建模元素,但UML中并没有一个包图,通常一些书上所 说的包图指的就是类图、用例图等这些图,只是在这些图中只有包这一元素。
1 包(Package)
重点: 1.包的定义 2.在设计包时应遵循的原则
1.1 包的基本概念
定义:包是一种对模型元素进行成组组织的通用机制。
包用于定义一个名字空间或容器(Container)。它本身也是UML的一种 模型元素。
运用包可以把语义上相近的可能一起变更的模型元素组织在同一个包里, 对包中的元素作为一个整体对待,并且控制它们的可见性和存取。
如图1.3所示是包之
GUI
间泛化关系的例子,其中 包WindowsGUI泛化了包 GUI,包WindowsGUI继
+Window +Form #EventHandler
承了包GUI中的Window
和EventHandler元素,同 时包WindowGUI重新定
WindowsGUI
义(即覆盖)了包GUI中 +GUI::Window
包与包之间可以存在依赖关系,但这种依赖关系没有传递性。
如图1.2所示是包之间非传递依赖的例 子,包User Services依赖于包Business Services,包Business Services又依赖于包 Data Services,但包User Services并不依赖于 包Data Services。图中的依赖关系的版型都 是《import》,表示源包会存取目的包中的 内容,同时目的包中的内容是加到源包的名
软件开发时常见的一个问题是如何把一个大系 统分解为多个较小系统。分解是控制软件复杂性的重 要手段。在结构化方法中,考虑的是如何对功能进行 分解,而在OO方法中,需要考虑的是如何把相关的 类放在一起,而不再是对系统的功能进行分解。包在 开发大型软件系统时是一个非常重要的机制。包中的 元素不仅仅限于类.可以是任何UML建模元素。包 就像一个“容器”,可用于组织模型中的相关元素以 便更容易理解。
EventHandler的可见性为私有的(privated),表示只有
在AWT包中才可以引用Event Handler这个元素。
图1.1 AWT包
对包的命名有两种方式,即简单包名名(simple name)和路径包名(path name)。例如Vision)是一个简单的包名,而Sensors::Vision是带路径的包名。 其中Sensors是Vision包的外围包,也就是说,Vision包是嵌套在Sensors包中 的。包可以嵌套,但在实际应用中,嵌套层次不应太深。
EventHandler。其中window的可见性为公有的(Public),
AWT
表示在任何导入(import)AWT包的包中,都可以引用
+Window
Window这个元素;Form的可见性为保护的(protected), #Form
表示只有AWT包的子包才可以引用Form这个元素; -EvebtHandler
1.2.1 重用等价原则(REP)
重用等价原则指的是把类放入包中时,应考虑把包作为可重用的单元。
这种设计原则和用户的使用心理有关,对于可重用的类,其开发可能 比较快,开发人员会不断地推出这些可重用类的升ห้องสมุดไป่ตู้版本。
但对于可重用类的使用者来说,不会随着可重用类的每次升级而修改自 己的系统,不过,在需要升级的时候又会要求很容易地用新版本的可重用类 替换旧版本的可重用类。因此设计包的一个原则是把类放在包中时要方便重 用,方便对这个包的各个版本的管理。
1.2.2 共同闭包原则(CCP)
共同闭包原则指的是把那些需要同时改变的类放在一个包中。
例如,如果一个类的行为或结构的改变要求另一个类作相应的改变,则 这两个类应放在一个包中;或者在删除了一个类后,另一个类变成多余的, 则这两个类应放在一个包中;或者两个类之间有大量的消息发送,则这两个 类也应放在一个包中。
如图1.1所示是一个包的例子。
AWT +Window #Form -EventHandler
图1.1 AWT包
包中可以包含其他建模元素,如类、接口、组件、节点、用例、包等。
就像对类的属性和操作可以进行可见性控制一样,对包中元素也可以进行 可见性控制。
图1.1中的AWT包有3个元素:Window、Form和
在设计包时,应遵循以下原则: 1. 重用等价原则(Reuse Equivalency Principle,REP) 2. 共同闭包原则(Common Closure Principle,CCP) 3. 共同重用原则(Common Reuse Principle,CRP) 4. 非循环依赖原则(Acyclic Dependencies Principle,ADP)
1.2 设计包的原则
在考虑如何对类进行分组并放入不同的包时,主要是根据类之间的依赖 关系进行分组。
包中的类应该是功能相关的,在建立包时,应把概念上和语义上相近 的模型元素纳入一个包。依赖关系其实是耦合的一种体现,如果两个包中 的类之间存在依赖关系,那么这两个包之间也就有了依赖关系,也就存在 了耦合关系。好的设计要求体现高内聚、低耦合的特性。
字空间的。这样在引用目的包中的内容时不
需要加包名限定,直接用目的包中的元素名 字即可。
User Services 《import》
Business Services 《import》
Data Services
图1.2 包之间的非传递依赖关系
另外,与UML中其他建模元素类似,包之间也可以有泛化关系。子包继 承了父包中可见性为public和protected的元素。
的Form元素,而VBForm +Form
是包WindowsGUI中新增 加的元素。与子类和父类
#GUI::EventHandler +VBForm
MacGUI
之间存在替换原则一样,
子包和父包之间也存在替 换原则,即子包可以出现
图1.3 包之间的泛化关系
在父包能出现的任何地方。
但是在实际建模过程中,包之间的泛化关系很少用到。 包是UML中的建模元素,但UML中并没有一个包图,通常一些书上所 说的包图指的就是类图、用例图等这些图,只是在这些图中只有包这一元素。
1 包(Package)
重点: 1.包的定义 2.在设计包时应遵循的原则
1.1 包的基本概念
定义:包是一种对模型元素进行成组组织的通用机制。
包用于定义一个名字空间或容器(Container)。它本身也是UML的一种 模型元素。
运用包可以把语义上相近的可能一起变更的模型元素组织在同一个包里, 对包中的元素作为一个整体对待,并且控制它们的可见性和存取。
如图1.3所示是包之
GUI
间泛化关系的例子,其中 包WindowsGUI泛化了包 GUI,包WindowsGUI继
+Window +Form #EventHandler
承了包GUI中的Window
和EventHandler元素,同 时包WindowGUI重新定
WindowsGUI
义(即覆盖)了包GUI中 +GUI::Window
包与包之间可以存在依赖关系,但这种依赖关系没有传递性。
如图1.2所示是包之间非传递依赖的例 子,包User Services依赖于包Business Services,包Business Services又依赖于包 Data Services,但包User Services并不依赖于 包Data Services。图中的依赖关系的版型都 是《import》,表示源包会存取目的包中的 内容,同时目的包中的内容是加到源包的名
软件开发时常见的一个问题是如何把一个大系 统分解为多个较小系统。分解是控制软件复杂性的重 要手段。在结构化方法中,考虑的是如何对功能进行 分解,而在OO方法中,需要考虑的是如何把相关的 类放在一起,而不再是对系统的功能进行分解。包在 开发大型软件系统时是一个非常重要的机制。包中的 元素不仅仅限于类.可以是任何UML建模元素。包 就像一个“容器”,可用于组织模型中的相关元素以 便更容易理解。
EventHandler的可见性为私有的(privated),表示只有
在AWT包中才可以引用Event Handler这个元素。
图1.1 AWT包
对包的命名有两种方式,即简单包名名(simple name)和路径包名(path name)。例如Vision)是一个简单的包名,而Sensors::Vision是带路径的包名。 其中Sensors是Vision包的外围包,也就是说,Vision包是嵌套在Sensors包中 的。包可以嵌套,但在实际应用中,嵌套层次不应太深。
EventHandler。其中window的可见性为公有的(Public),
AWT
表示在任何导入(import)AWT包的包中,都可以引用
+Window
Window这个元素;Form的可见性为保护的(protected), #Form
表示只有AWT包的子包才可以引用Form这个元素; -EvebtHandler
1.2.1 重用等价原则(REP)
重用等价原则指的是把类放入包中时,应考虑把包作为可重用的单元。
这种设计原则和用户的使用心理有关,对于可重用的类,其开发可能 比较快,开发人员会不断地推出这些可重用类的升ห้องสมุดไป่ตู้版本。
但对于可重用类的使用者来说,不会随着可重用类的每次升级而修改自 己的系统,不过,在需要升级的时候又会要求很容易地用新版本的可重用类 替换旧版本的可重用类。因此设计包的一个原则是把类放在包中时要方便重 用,方便对这个包的各个版本的管理。
1.2.2 共同闭包原则(CCP)
共同闭包原则指的是把那些需要同时改变的类放在一个包中。
例如,如果一个类的行为或结构的改变要求另一个类作相应的改变,则 这两个类应放在一个包中;或者在删除了一个类后,另一个类变成多余的, 则这两个类应放在一个包中;或者两个类之间有大量的消息发送,则这两个 类也应放在一个包中。
如图1.1所示是一个包的例子。
AWT +Window #Form -EventHandler
图1.1 AWT包
包中可以包含其他建模元素,如类、接口、组件、节点、用例、包等。
就像对类的属性和操作可以进行可见性控制一样,对包中元素也可以进行 可见性控制。
图1.1中的AWT包有3个元素:Window、Form和
在设计包时,应遵循以下原则: 1. 重用等价原则(Reuse Equivalency Principle,REP) 2. 共同闭包原则(Common Closure Principle,CCP) 3. 共同重用原则(Common Reuse Principle,CRP) 4. 非循环依赖原则(Acyclic Dependencies Principle,ADP)