UML之包图(Package Diagram)

软件的架构设计,思路遵循由大及小。相较于Class Diagram,Package Diagram从更宏观的角度来展示软件的架构设计,主要体现在代码组织方面。Package Diagram对一些大型的项目特别有用。顺便说一句,良好的代码组织,对软件的可维护性至关重要,请认真的规划你的包结构。下文将简单介绍Package Diagram,主要分两块,什么是Package,以及Package之间的关系。

什么是Package

用最简单的方式来说,Package可以理解为文件夹(folder)。代码的组织从大到小,分为三个层次:文件夹层,文件层,以及文件内部的块(Block)层(函数块之类的)。Package体现的就是文件夹层。Java里面可能是一串文件夹,比如java.lang、java.util等,也叫Package;C++里面,Package对应的是namespace,虽然不能完全等同于文件夹,不过也可以往这边靠;其它的如Node.js,Python等大都体现在文件夹层。

Package在UML里面用一个Tab框表示,Tab里面写上Package的名字,框里面可选地填充一些其它子元素,如类,子Package等。Package的名字可以写全称,也可以简写,风格可可参考项目所用语言的惯例。下面是一个简单的Package示例:

上图为某java项目的一个工具Package,里面有四个工具类。类比较多的时候,为简单明晰起见,也可以不填写子元素。

Package之间的关系

如果只有一个Package,那也就失去了Package的作用,没有画Package Diagram的意义。Package之间的关系非常的简单,两个字,依赖,UML中依赖用带箭头的虚线表示。我个人还是非常不建议依赖关系出现Cycle的。依赖关系最常见的一个例子就是分层架构,把代码分布到多个层次中,某层可以依赖于下层以及同层,但是不能依赖于上层。其它的组织方式还包括按照模块划分,按照功能划分等。下图是一个Java项目的简单三层架构Package Diagram:

示例中三个主要的Package:data用于访问数据库,也叫dao,Mybatis项目里面分为entity和mapper两个子Package,service是业务逻辑的组件,web用于接受http请求。util为通用组件。

小结

Package Diagram从宏观角度展示了项目的组织架构,在大型项目中,是重要的一种UML图。可以先Package Diagram,再Class Diagram的方式来展示项目的架构。

时间: 2024-11-08 14:40:50

UML之包图(Package Diagram)的相关文章

Python设计模式 - UML - 包图(Package Diagram)

简介 包图是对各个包及包之间关系的描述,展现系统中模块与模块之间的依赖关系.一个包图可以由任何一种UML图组成,可容纳的元素有类.接口.组件.用例和其他包等.包是UML中非常常用的元素,主要作用是分类.容纳其他元素.包与包之间的关系有泛化.细化和依赖,主要取决于包内部成员之间的关系. 包图建模步骤 - 分析系统的模型元素,运用分层设计把概念.语义和逻辑上相近的元素包含在同一个包中 - 对于每个包,分析包内每个元素的可访问属性,并标识出该元素的可见性 - 确定包与包中元素之间的泛化.细化.依赖关系

UML之序列图(Sequence Diagram)

类图描述的是类之间的静态关系,而序列图展示的是对象之间的沟通方法,描述运行时的交互关系. OOP编程语言里面合理的直接交互方式只有一种,方法调用(Event通讯是间接的).所以序列图也可以 理解为方法调用交互图.方法调用有四个元素,参与者(两个,调用者和被调用者),方法名称,输入 和输出. 参与者 参与者用一个Lifeline来表示,图像为一个矩形外加底部的一条竖线.矩形里面显示对象名,格式为 name:ClassType的样式,都为可选项,Martin Fowler推荐a Handler的格式

UML:包图

什么是包图?包图是对UML图进行“打包”,按照你期望的方式进行组织的一种图.包图用于展示宏观上的内容.往往利用包图对类进行“打包”,但包图其实可以对任何UML图进行“打包”.包图是逻辑上的概念,你可以根据你的意图来任意组织.包图用于软件设计时,可从宏观上来组织你的设计,展示你的设计意图.包图用于软件设计时,可用来表示packages(in Java)或Namespaces(in .net). 包图的语法很简单,见下图: 一个包(Package)的样子就好像一个文件夹,另外包可以包含包. 包与包之

UML之包图

包图的基本概念: 包图是用来描述模型中的包和所包含元素的组织方式的图,是维护和控制系统总体结构的重要内容. 包图能够组织许多UML中的元素,不过其最常用的用途是用来组织用例图和类图. 包图中包含包元素以及包之间的关系.与其他图类似,包图中可以创建注解和约束. 包的概念: 包是用于把模型组织成层次结构的通用机制,它不能执行. 包名:包有简单名.路径名 包中的元素:包中可以容纳各种高级的模型元素,如类和类的关系.状态机.用例图.交互.协作等,甚至是一个完整的UML图. 另外,包中还可以含有包,这被称

【UML】活动图Activity diagram(转)

前言 在UML状态图的总结中说道,活动图和状态图是紧密相关的.它与流程图也有很多相似的地方. 定义 活动图是状态图的一种特殊形式.其中所有或多数状态都是活动状态,而且所有或多数转移都在源状态中的活动完成时立即触发. 用途 工作流程活动图用于研究实现业务目标时所要执行的各项任务或活动的顺序安排. 1.描述一个操作的执行过程中所完成的工作或者动作. 2.描述对象内部的工作. 3.显示如何执行一组相关的动作,以及这些动作如何影响周围对象. 4.描述用例的执行. 5.处理多线程应用. 不适合使用活动图

【UML】时序图Sequence diagram(交互图)(转)

前言 UML时序图是UML动态图之一,它是强调时间顺序的交互图. 定义 时序图是显示按时间顺序排列的对象之间交互的图. 组成元素 对象 包括三种命名方式:第一种方式包括对象名和类名:第二中方式只显示类名不显示对象名,即表示他是一个匿名对象:第三种方式只显示对象名不显示类名. 生命线 生命线在顺序图中表示为从对象图标向下延伸的一条虚线,表示对象存在的时间. 消息 消息形式:1.call调用.2.Return返回.3.Send发消息.4.Create创建实例.5.Destroy销毁. 消息表示方式:

uml精粹——6.对象图 & 7.包图

6.对象图object diagram 一个对象图是系统在某一刻时对象的快照snapshot.他展示的实例而不是类,对象图也经常叫实例图instance diagram. 你可使用对象图来展示对象们的样例配置example configuration.在对象间的连接connection比较复杂的时候很有用. 见图6.1. 你可以看出6.2是实例,因为名字都有下划线.每个名字都用 实例名:类名 的形式.两个部分的名字都是可选的,所以John, :Person, aPerson也是合法的名字.如果你

UML几种图

UML类图几种关系的总结 在UML类图中,常见的有以下几种关系: 泛化(Generalization),  实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency) 1. 泛化(Generalization) [泛化关系]:是一种继承关系,表示一般与特殊的关系,它指定了子类如何特化父类的所有特征和行为.例如:老虎是动物的一种,即有老虎的特性也有动物的共性. [箭头指向]:带三角箭头的实线,箭头指向

UML之对象图和包图

UML的九种图基本都已经介绍完了,那么我们回过头再来研究一下对象图和包图.  一.对象图 谈到对象,我们不得不说一下对象,对象(Object)是对象类的实例(Instance),用于模型化特定的实体.对象是唯一的,可以标识的,比如我和你就是两个对象,我们有自己的名字. 对象的图标与对象类一样是用实线矩形框表示的,矩形框中含有若干分隔框,分别表示对象的名字.属性以及其他成分等.对象名分隔框中包含一个对象的名字,置于框的中央.对象名的格式为:对象名:类列表[状态列表]. 对象图(Object Dia