包图
- 格式:ppt
- 大小:1.68 MB
- 文档页数:19
包图包图是在UML中用类似于文件夹的符号表示的模型元素的组合。
系统中的每个元素都只能为一个包所有,一个包可嵌套在另一个包中。
使用包图可以相关元素归入一个系统。
一个包中可包含附属包、图表或单个元素。
一个"包图"可以是任何一种的UML图组成,通常是UML用例图或UML 类图。
包是一个UML结构,它使得你能够把诸如用例或类之类模型元件组织为组。
包被描述成文件夹,可以应用在任何一种UML图上。
虽然包图并非是正式的UML图,但实际上他们是很有用处的,创建一个包图是为了∶描述你的需求高阶概述。
描述你的设计的高阶概述。
在逻辑上把一个复杂的图模块化。
组织Java源代码。
指南∶类包图创建类包图,以在逻辑上组织你的设计创建UML组件图,以在物理上组织你的设计把子包放置在母包的下面垂直地分层类包图用例包图创建用例包图,以组织你的需求在用例包图上包含角色水平地排列用例包图包包的命名要简单、具有描述性应用包是为了简化图包应该连贯在包上用版型注明架构层避免包间的循环依赖包依赖应该反映内部关系一、类包图1.创建类包图,以在逻辑上组织你的设计图1描述了一个组织成包的UML类图。
除了以下介绍的包原则之外,应用下列的规则来把UML类图组织到包图里:把一个框架的所有类放置在相同的包中。
一般把相同继承层次的类放在相同的包中。
彼此间有聚合或组合关系的类通常放在相同的包中。
彼此合作频繁的类,信息能够通过UML顺序图和UML合作图反映出来的类,通常放在相同的包中。
图1.一个类包图。
2.创建UML组件图,以在物理上组织你的设计。
如果你的组件比较接近技术,例如那些通过Enterprise Java Beans ( EJB)或Visual Basic的组件,你应该优先选择UML组件图来描述物理设计,而不是包图。
图1的版本源自于组件图章节中。
就像你看到的,这个图最适用于物理设计。
永远记住遵循敏捷建模(AM) ( Ambler 2002)的实践--应用合适的Artifact,为工作挑选最好的模型。
一个大型系统中往往包含了数量庞大的模型元素,如何组织管理这些元素是一个十分重要的问题。
包是一种常规用途的有效的组合机制。
包类似于文件系统中的文件夹或者是目录结构,它是一个容器,用来对模型元素进行分组,并且为这些元素提供一个命名空间。
UML中的一个包直接对应于Java中的一个包。
在Java中,一个包可能含有其他包、类或者同时含有这两者。
进行建模时,通常使用逻辑性的包,用于对模型进行组织。
而包图是由包和包之间的联系组成的,它是维护和控制系统总体结构的重要建模工具。
本章将详细介绍包图的各种概念、表示方法和实例应用。
1.包图的概念1.1包图和包当对大型系统进行建模时,经常需要处理大量的类、借口、构件、节点和图,这时就很有必要将这些元素进行分组,即把那些语义相近并倾向于一起变化的元素组织起来加入同一包中,这样便于理解和处理整个模型。
同时也便于控制包中元素的可见性。
包图是描述包及其关系的图。
与所有UML的其它图一样,包图可以包括注释、约束。
通过各个包与包之间关系的描述,展现出系统的模块与模块之间的关系。
图1是一个包图模型。
包是包图中最重要的概念,它包含了一组模型的元素和图,如图1中的Package A和Package B就是两个包。
Package BPackage A在面向对象软件开发的过程中,类显然是构建整个系统的基本元素。
但是对于大型的软件系统而言,其包含的类将是成百上千,再加上类间的关联关系、多重性等,必然是大大超出了人们对系统的理解和处理能力。
为了便于管理这些类,我们引入了“包”这种分组元素。
在包中可以拥有各种其它元素,包括类、接口、构件、节点、协作、用例,甚至是其它子包或图。
一个元素只能属于一个包。
包的作用是:1)对语义上相关的元素进行分组。
如,把功能相关的用例放在一个包中。
2)提供配置管理单元。
如,以包为单位,对软件进行安装和配置。
3)在设计时,提供并行工作的单元。
如,在设计阶段,多个设计小组,可以同时对几个相互独立包中的类进行详细设计。
如何使用UML包图进行模块划分与表示使用UML包图进行模块划分与表示在软件开发过程中,模块化是一个重要的概念。
通过将系统划分为独立的模块,可以提高代码的可维护性和可复用性。
而UML(Unified Modeling Language)包图是一种常用的图形化工具,可以帮助开发人员进行模块划分与表示。
本文将介绍如何使用UML包图进行模块划分与表示。
1. 理解UML包图的基本概念UML包图是一种用于表示系统结构的图形化工具。
它可以将系统划分为不同的包,每个包代表一个模块或子系统。
包图中的包可以包含其他包或类,形成层次结构。
通过使用包图,开发人员可以清晰地了解系统的模块划分和关系。
2. 识别系统的功能模块在使用UML包图进行模块划分之前,首先需要识别系统的功能模块。
功能模块是系统中相互独立的部分,每个模块负责一项特定的功能。
通过分析系统的需求和功能,可以确定系统需要包含哪些功能模块。
3. 创建UML包图一旦确定了系统的功能模块,就可以开始创建UML包图。
在包图中,每个功能模块对应一个包。
可以使用UML建模工具或手绘图形来创建包图。
在包图中,每个包可以包含其他包或类,形成层次结构。
4. 定义包之间的关系在包图中,不同的包之间可以存在不同的关系。
常见的关系包括依赖关系、关联关系、聚合关系和继承关系等。
通过定义包之间的关系,可以清晰地表示模块之间的依赖和关联。
5. 表示模块的内部结构除了表示模块之间的关系,UML包图还可以用于表示模块的内部结构。
在包图中,可以将一个包进一步划分为更小的模块或类。
通过定义类之间的关系,可以清晰地表示模块内部的组成和功能。
6. 使用注释和标签在创建UML包图时,可以使用注释和标签来增加图形的可读性和理解性。
注释可以用于解释模块的功能或设计思路,标签可以用于标识模块的名称或属性。
通过使用注释和标签,可以使包图更加清晰和易于理解。
7. 更新和维护包图随着系统的开发和演化,模块的划分和关系可能会发生变化。
包图包图⼀、什么是包图包图的英⽂名为Package Diagram,Package这个英⽂单词有”将……打包“的意思,这个意思能恰好地表达包图的真正内涵。
包(Package)只是⼀个容器,他可以放任意的UML图进去(包括包图⾃⼰),⽽且⼀个包图内可以放⼊不同种类的UML图。
但要注意的是不同的UML⼯具对包图的⽀持程度不太⼀样,不⼀定能将任意的UML图放⼊包图。
⼆、语法包图可能是语法最简单的⼀种UML图,⼀个⽂件夹样⼦的东西就是⼀个包,包可以嵌套(层次不限),包之间最常见的关系是依赖(Dependency)关系。
包图⾥可以包含多个包,⽽包的嵌套层数是不受限制的。
三、应⽤场景包图是⼀个逻辑上的概念,⽽不是物理上的概念。
包图主要⽤来组织我们的思路,最常见的三种应⽤场景是:Ⅰ. ⽤包图组织类图有⼈喜欢⽤包图有条理德组织好类图,有⼈喜欢在⼀张巨⼤的类图中画出所有类,⽽我们喜欢⽤多张类图来表达。
其实不管怎样的表达⽅式,类及类之间的关系模型是唯⼀的,只是我们通过怎样的⾓度和⽅式进⾏展⽰⽽已。
那么⽤哪种⽅式表达最好呢?没有标准答案,完全取决与你,每个⼈都可以由属于⾃⼰的有效表达⽅式。
Ⅱ. ⽤包图组织⽤例⽤例太多很容易看晕,咋办?你可以⽤包图来组织⽤例,可以之将⽤例放⼊包中,也可以将执⾏这和⽤例都放⼊包中,但要注意的是,不是所有UML⼯具都⽀持你这样做的。
⽽我则很少⽤包图来组织⽤例图,我通常通过多个⽤例图,充分利⽤执⾏者的继承关系,以及⽤例的Extend和Include关系来组织好⽤例图。
Ⅲ. ⽤包图进⾏软件设计在我的实际⼯作当中,需求分析⼯作中⽤到包图的的机会不是很多,⽽在软件设计时经常⽤到包图,我们可以使⽤包图来进⾏软件架构设计,也可以综合应⽤包图、部署图、构件图来进⾏架构设计。
UML结构图之包图总结[注] 本⽂不是包图的基础教程, 只是包图的图形总结.学习UML图形包图主要⽤来表现包和它所包含元素的组织, 包图最常⽤的⽤途是⽤来组织⽤例图和类图, 尽管它不局限于这些UML元素. 〇概述包图可使⽤的⼯具集(EA⼯具箱)有:UML-Package⼀包图元素1. 包UML_UseCase_packagePackage, 图形表⽰为⼀个⽂件夹, 包的版型(StereoType)有:1) 普通包, 表⽰为⼀个⽂件夹, 如图Package1和Package42) 其它包, 表⽰为⼀个⽂件夹+书名号包含的具体版型或特殊符号, 如图Package2和Package32. 类Class, 图形表⽰为⼀个实⼼矩形或圆形(椭圆)[+⼀系列附加符号], 类的版型(StereoType)有:1) 普通类, 表⽰为⼀个实⼼矩形, 如图Class12) 边界类, 表⽰为⼀个实⼼圆形+实竖线, 如图Class23) 实体类, 表⽰为⼀个实⼼圆形+实横线, 如图Class34) 控制类, 表⽰为⼀个实⼼圆形+在圆周上的箭头, 如图Class45) 其它类, 表⽰为⼀个实⼼矩形或圆形(椭圆)+书名号包含的具体版型或特殊符号, 如图Class 5, 6, 7 ...[注1] 类图标变化最⼤, 版型最多, 必须根据所属的视图或图形进⾏识别, 如Class2在包图和类图中称为边界类, 在活动图中同样的图标应称为边界对象.[注2] 类图标的矩形表⽰和Artifact相似, 都是实⼼矩形, 区别⽅法是Artifact图标会含有Icon, ⽽类图标⼀般⼏何元素拼凑.[注3] 类图标的椭圆表⽰和⽤例相似, 都是实⼼椭圆, 但⽤例不会出现在类图上, 类也不应该出现在⽤例图上, 因此不会冲突.[注4] 包图上的类⼀般引⽤类图, 类图内部的画法, 参见类图部分. (下同)3. 接⼝Interface, 图形表⽰为⼀个实⼼矩形+书名号包含的interface字样, 接⼝没有版型(StereoType).接⼝是特殊的类, 因此图标和类相同, 书名号包含的interface是其区别与类的唯⼀⽅式.注意: 接⼝如果没有明确的详细操作,也可以画成⼀个圆环。