§8_包图、组件图、部署

§8_包图、组件图、部署

ID:39341029

大小:6.48 MB

页数:28页

时间:2019-07-01

§8_包图、组件图、部署_第1页
§8_包图、组件图、部署_第2页
§8_包图、组件图、部署_第3页
§8_包图、组件图、部署_第4页
§8_包图、组件图、部署_第5页
资源描述:

《§8_包图、组件图、部署》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、1包(Package)重点:1.包的定义2.在设计包时应遵循的原则1.1包的基本概念包用于定义一个名字空间或容器(Container)。它本身也是UML的一种模型元素。运用包可以把语义上相近的可能一起变更的模型元素组织在同一个包里,对包中的元素作为一个整体对待,并且控制它们的可见性和存取。定义:包是一种对模型元素进行成组组织的通用机制。软件开发时常见的一个问题是如何把一个大系统分解为多个较小系统。分解是控制软件复杂性的重要手段。在结构化方法中,考虑的是如何对功能进行分解,而在OO方法中,需要考虑的是如

2、何把相关的类放在一起,而不再是对系统的功能进行分解。包在开发大型软件系统时是一个非常重要的机制。包中的元素不仅仅限于类.可以是任何UML建模元素。包就像一个“容器”,可用于组织模型中的相关元素以便更容易理解。如图1.1所示是一个包的例子。AWT+Window#Form-EventHandler图1.1AWT包图1.1中的AWT包有3个元素:Window、Form和EventHandler。其中window的可见性为公有的(Public),表示在任何导入(import)AWT包的包中,都可以引用Wind

3、ow这个元素;Form的可见性为保护的(protected),表示只有AWT包的子包才可以引用Form这个元素;EventHandler的可见性为私有的(privated),表示只有在AWT包中才可以引用EventHandler这个元素。对包的命名有两种方式,即简单包名名(simplename)和路径包名(pathname)。例如Vision)是一个简单的包名,而Sensors::Vision是带路径的包名。其中Sensors是Vision包的外围包,也就是说,Vision包是嵌套在Sensors包中

4、的。包可以嵌套,但在实际应用中,嵌套层次不应太深。包中可以包含其他建模元素,如类、接口、组件、节点、用例、包等。就像对类的属性和操作可以进行可见性控制一样,对包中元素也可以进行可见性控制。AWT+Window#Form-EvebtHandler图1.1AWT包包与包之间可以存在依赖关系,但这种依赖关系没有传递性。如图1.2所示是包之间非传递依赖的例子,包UserServices依赖于包BusinessServices,包BusinessServices又依赖于包DataServices,但包UserS

5、ervices并不依赖于包DataServices。图中的依赖关系的版型都是《import》,表示源包会存取目的包中的内容,同时目的包中的内容是加到源包的名字空间的。这样在引用目的包中的内容时不需要加包名限定,直接用目的包中的元素名字即可。UserServicesBusinessServicesDataServices图1.2包之间的非传递依赖关系《import》《import》另外,与UML中其他建模元素类似,包之间也可以有泛化关系。子包继承了父包中可见性为public和protected的元素。图

6、1.3包之间的泛化关系+Window+Form#EventHandlerGUIMacGUI+GUI::Window+Form#GUI::EventHandler+VBFormWindowsGUI如图1.3所示是包之间泛化关系的例子,其中包WindowsGUI泛化了包GUI,包WindowsGUI继承了包GUI中的Window和EventHandler元素,同时包WindowGUI重新定义(即覆盖)了包GUI中的Form元素,而VBForm是包WindowsGUI中新增加的元素。与子类和父类之间存在替换

7、原则一样,子包和父包之间也存在替换原则,即子包可以出现在父包能出现的任何地方。但是在实际建模过程中,包之间的泛化关系很少用到。包是UML中的建模元素,但UML中并没有一个包图,通常一些书上所说的包图指的就是类图、用例图等这些图,只是在这些图中只有包这一元素。UML中,包是分组事物(groupingthing)的一种,它是在建模时用来组织模型中的元素的,在系统运行时并不存在包的实例。这点和类不一样,类在运行时会有实例(即对象)存在。1.2设计包的原则在考虑如何对类进行分组并放入不同的包时,主要是根据类之

8、间的依赖关系进行分组。包中的类应该是功能相关的,在建立包时,应把概念上和语义上相近的模型元素纳入一个包。依赖关系其实是耦合的一种体现,如果两个包中的类之间存在依赖关系,那么这两个包之间也就有了依赖关系,也就存在了耦合关系。好的设计要求体现高内聚、低耦合的特性。在设计包时,应遵循以下原则:重用等价原则(ReuseEquivalencyPrinciple,REP)共同闭包原则(CommonClosurePrinciple,CCP)共同重用原则(CommonR

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。