UML包图kingwzun

对一个较复杂的系统建模,需要使用大量的模型元素,这就有必要对这些元素进行有效组织。

实现在UML的建模机制中,模型的组织是通过包(Package)来实现的。包可以把所建立的各种模型组织起来,形成各种功能或用途的模块,并可以控制包中元素的可见性以及描述包之间的依赖关系。

作用方便在高层(按照模块的方式)把握系统的结构。

系统结构对于系统模型的内部组织结构而言,通常采用先分层、再细分成包的方式。

分层一般是按系统架构,常用的一种方式是三层架构:

用户界面层(UserInterfaceLayer,UIL,也称为表示层PL):代表与用户进行交互的界面,既可以是Form窗口,也可以是Web界面(网页);不处理任何业务,负责显示与实时更新。

业务逻辑层(BusinessLogicLayer,BLL):负责系统的业务流程,处理数据访问层传送的数据,并实现业务逻辑。【例如:界面login.html,业务login(input1,input2),数据访问getData(uid,pwd)】

数据访问层(DataAccessLayer,DAL):与数据库进行交互,负责将底层数据传送到业务逻辑层。

MVC设计模式——Model、View、Controller

模型层是对系统应用功能的抽象,代表了数据和业务规则;包中的类通常用于封装系统的数据及数据的存取操作。

视图层是对系统数据表达的抽象,代表了系统界面内容的显示;在包中的各个类对用户的数据进行表达,并维护数据的一致性。

控制器层是对用户与系统交互事件的抽象,协调Model与View;通常负责从视图读取数据,控制用户输入,并向模型发送数据。

注意:

包是对模型元素进行分组的机制,它不能执行。

所有的UML模型元素都能用包来进行组织,但一个元素只能属于一个包。

作用包是UML中最重要的分组事物,用来组织模型中的元素。具体作用如下:

提供封装的命名空间。同一个包中,元素不能重名,其元素的名称必须惟一。

提供配置管理单元。例如,以包为单位,对软件进行安装和配置。

在设计时,提供并行工作的单元。例如,在设计阶段,多个设计小组,可以同时对几个相互独立包中的类进行详细设计。

注意:包图uml1是非正式图,但是大量使用,uml2是正式图。

定义包图(PackageDiagram)是用来描述模型中的包及其关系的图。

包图的作用包图是一种维护和描述系统总体结构的模型,是表示顶层架构的机制。

在逻辑上把一个复杂的系统模块化:反映系统的高层架构,在逻辑上将系统进行模块化分解;

描述需求的高阶概况:可以通过包来简要描述系统的业务需求;

描述设计的高阶概况:可以通过包来组织系统的业务设计模型和框架模型;

描述源代码的组织方式:在实际应用中,包是组织源代码的方式。

重用等价原则:把类放入包中时,应考虑把包作为可重用的单元,即要求新版本的可重用类容易替换旧版本的可重用类。

共同闭包原则:把可能同时修改、同时维护的类放到一个包中,以便于维护和升级。例如:一个类的改变要求另一个类做相应改变;删除一个类后,另一个类变成多余;两个类间有大量的消息发送。

共同重用原则:通常,一个包中的元素(类)要么都可重用,要么都不可重用。不会一起使用的类,不要放在同一个包中。

“高内聚低耦合”的原则A:包内元素要紧密联系;最大化每个包中private元素的个数。B:包与包尽可能保持独立,最大限度减少包之间的依赖;最小化每个包中public、protected元素的个数。

包的名称包的名称通常是来自模型词汇中的名词或名词短语。

注意

一个包内同一类模型元素的名字必须是唯一的,不能重名;

理论上,一个包中不同类的模型元素可以有相同的名字。(实际上有的、软件支持有的软件不支持)

最好一个包中的所有元素都有唯一的命名

包中可以拥有的元素:在一个包中可以创建所有模型元素,如类、图以及子包等。

每个元素只能属于一个包。

在包图下允许创建的各种模型元素,是根据各种视图下所允许创建的内容决定。

包的嵌套包可以拥有其他包作为包内的元素,这被称为包的嵌套。外围包(容器包)中包含子包,子包又可以拥有自己的子包。注意:

包的嵌套层数没有限制,但是一般以2到3层为宜。

不同的包中模型元素名称可以相同

包内元素的可见性包内元素的可见性,控制了包外部元素访问包内部元素的权限。

UML常见的内置构造型包有不同的构造型,表现为不同的特殊类型的包。

<>和<>构造型系统和子系统包

<>构造型(外观)构造型的包,自身不包含任何模型元素,只是引用其他包的元素,所以称为“虚包”,主要用于为其他复杂的包提供简略视图。

<>构造型(桩)构造型的包,是一个代理包,通常应用于分布式系统的建模中,作为其他包的公共内容代理的包。

注意:可以自定义构造型。

两个包之间最常见的关系就是依赖关系,是指两个包所包含的模型元素之间存在着一个或多个依赖。

分类:包之间的依赖有四种:use、import、access、trace注意

use关系是一种默认的依赖关系;因此use可以在建图时,不指出构造型

说明客户包中的元素以某种方式使用提供者包的公共元素,也就是说客户包依赖于提供者包。

import关系使命名空间合并,是最常见的依赖关系。

import(引入/导入)关系说明

引入依赖是可以传递的

客户包的元素可以使用简单名引用提供者包的元素,但提供者包的元素不能与客户包的元素同名,否则将会导致命名空间的冲突。

access(访问)关系说明

在客户包中必须使用路径名。

不同点

import关系使命名空间合并,访问依赖包的元素直接使用简单名即可。

access关系不合并命名空间,必须要使用路径名访问依赖的包的元素。

相同点公共命名空间里的模型元素可以被其他包使用,而私有命名空间中的模型元素则不可以。也就说import和access都不能使用其他包的私有属性,他们两个对其他包的内容的访问权限是一样的。

追踪(追溯),表示一个包到另一个包的历史发展,例如不同版本的包。

和其他泛化关系一样,两包是泛化关系意味着:

特殊包继承一般包的特性,使用一般包的地方,可以用特殊包代替。

特殊包继承一般包中公共和受保护可见性的模型元素,此外还可以添加新的元素。

箭头指向:\(特殊包(子包)\to一般包(父包)\)常见使用场景:例如,在系统设计中,对某一个特定的功能有多种实现方法。这时可以定义一些高层次的“抽象包”和实现高层次功能的“实现包”。

注意任何可使用父包的地方都可以使用子包代替

拥有关系是包嵌套时,包之间的一种组成关系,意味着子包被外围包所拥有。

这是包图最常见的用途,它将建模元素组织成组,建模成包,然后对包进行命名。这种策略在对建模大型项目时尤为重要。大多数情况下,用包组织种类相同的元素,也可以组织不同种类的元素。

遵循的策略

找出在概念或语义上接近的元素,组织到一个包中,同时考虑必要的嵌套包。

对每个包确定包内元素的可见性,重点找出应标记为公共的元素,但应尽可能地少。

在包之间建立关系时,初期一般使用默认的<>构造型,在映射到编程时考虑明确<>或<>构造型。

考虑采用泛化来对特殊包进行建模

体系结构是一个软件系统的核心逻辑结构,是对系统的顶层分解。

例如:三层架构、MVC模式。

实际上:现在绝大部分的UML建模工具的视图结构,都是使用包元素来划分其体系结构视图的。

例如:RUP的“4+1”视图。

遵从的策略:

包图建模的基本过程主要有四个步骤:

根据系统架构需求,确定分包原则

寻找并创建包—分析系统工作流程

确定包之间的关系

标出包内元素及其可见性

创建包图

创建包

设置包中元素向包中添加元素在包中显示包含的元素

创建包的关系

细化包内元素及包间关系

通过把具有很强语义联系的建模元素分组,找出分析包;

包的命名要简单、具有描述性;

应尽量避免包模型中的循环依赖;

良好包结构的关键是包内高内聚、包间低耦合;(包内元素要紧密联系,包与包之间尽可能保持独立,依赖关系要尽可能少)

应尽可能避免嵌套包;

内容要均衡,建议每个包有7±2个内层成分。系统中的各个包彼此相称,既不要太大(必要时可进行分解),也不要过小(必要时可把所处理的元素组合成组)。

1.根据系统架构需求,确定分包原则分析学生信息管理系统,采用MVC架构进行包的划分。

THE END
1.UML实践详细经典教程对象图Object diagrams用来表示类的实例。他们在解释复杂关系的细小问题时(特别是递归关系时)很有用。 这个类图示一个大学的Department可以包括其他很多的Departments。 这个对象图示上面类图的实例。用了很多具体的例子。 UML中实例名带有下划线。只要意思清楚,类或实例名可以在对象图中被省略。 https://www.jianshu.com/p/0786d8f9a037
2.UML与Rose建模实用教程PDF下载Java知识分享网其中,第一部分包括软件工程与面向对象方法、UML概述、Rational Rose概述,第二部分包括UML概念模型、UML中的事物、UML中的关系、用例图、包图、类图、协作图、顺序图、状态图、组件图、活动图、部署图,第三部分包括统一软件开发过程,需求分析,系统分析,系统设计,系统实现、测试及部署,第四部分包括开发实例——博客网站...http://www.java1234.com/a/javabook/javabase/2021/0708/20430.html
1.深入理解UML类图:概念构成与应用实例什么是UML类图 UML类图是一种用于表示系统静态结构的图表,用于描述系统中的各类及其相互关系。类图展示了类的属性和方法,以及类之间的关系,例如继承、关联、依赖等。类图适用于软件开发的需求分析和设计阶段,帮助开发人员理解系统的组织结构和各类之间的相互作用。 https://blog.csdn.net/fudaihb/article/details/143786552
2.UML概述类图关系及连接线表示FreeLikeTheWind的技术博客二、UML的主要图型 用例图(Use Case Diagram) 定义:用例图主要用于描述系统的功能需求,它展示了系统中的参与者(Actor)与用例(Use Case)之间的关系。参与者可以是用户、外部系统等,用例代表系统提供的功能。 示例:以一个产品销售系统为例,参与者有“用户”和“销售员”。“用户”这个参与者可以与“购买物品”“...https://blog.51cto.com/u_16417016/12529548
3.UML包图UML图制作软件,教程和例子使用免费的模板和实例绘制UML包图。绘制UML包图变得前所未有的容易。 包图是在 UML 中用类似于文件夹的符号表示的模型元素的组合。系统中的每个元素都只能为一个包所有,一个包可嵌套在另一个包中。使用包图可以将相关元素归入一个系统。一个包中可包含附属包、图表或单个元素。包图用来反映组织中的包和元素。包图...https://www.edrawsoft.com/cn/uml-package-diagram-solutions.php
4.UML基础案例与应用(第三版)施穆勒著中文PDF版[21M]电子书下...第一部分“基础知识”包括第1章到第15章,主要是介绍UML语言的基础知识以及面向对象的概念和思想,还简单介绍了UML在开发过程的应用方法。第二部分“学习案例”包括第16章到第22章,结合实例详细分析了UML的应用方法与技巧,还介绍了UML在热点领域设计模式中的应用。第三部分“高级应用”包括最后两章,先是运用UML来...https://www.jb51.net/books/61659.html
5.干货!14种uml图类型及示例uml包图 (14)剖面图 配置文件图不是典型的 UML 图类型。事实上,它可以更多地被视为一种可扩展性机制,而不是像其他任何图表类型一样。 通过使用构造型、标记值和约束,可以扩展和自定义现有的 UML 符号。剖面图就像一种语言,如果你说英语,你可以创建新的句子,如果你说剖面图,那么你可以为 UML 图创建新的属性和...https://boardmix.cn/article/uml-diagram-styles/
6.UML实践用例图顺序图状态图类图包图协作图一、状态图 类定义的是一组对象的抽象,而每个对象时类的一个实例,但对于一个对象而言,它在其整个生命周期中有一系列的状态。状态描绘了对象的动态生命周期。 “人” 就是一个类,而“你”、“我”、“张三&rdq...UML—【状态图】 【内容】 1.什么是状态图 状态图描述一个特定对象的所有可能状态以及由于...https://www.pianshen.com/article/347981466/
7.starUML·Issue#85·WangShuXian6/blog·GitHub在UML标准中增加了模板(Stereotypes)、职责(Responsibilities)、扩展机制(Extensibility Mechanisms)、线程(Threads)、过程(Processes)、分布式(Distribution)、并发(Concurrency)、模式(Patterns)、合作(Collaborations)、活动图(Activity Diagram)等新概念,并清晰地区分了类型(Type)、类(Class)和实例(Instance)、细化(Refinement...https://github.com/WangShuXian6/blog/issues/85
8.UML方法(精选十篇)(2)详细设计就是要细化包的内容,清晰描述所有的类,同时使用UML的动态模型描述在特定环境下这些类的实例的行为。 4 UMl面向对象分析设计在仓储管理系统中的应用 UML是一种建模语言,是系统开发的一个组成部分,本身并没有关于开发过程概念的定义和表示符号。UML的创始者Booch、Jacobson和Rumbaugh在Rational公司的支持下综...https://www.360wenmi.com/f/cnkeyf1m62t7.html
9.UML——包图[通俗易懂]腾讯云开发者社区包是用于分组的符号,常用来对一组相同的UML元素进行分组存放和管理,包图就是用来描述包及其关系的图,我们常用包图来描述系统、子系统的宏观组成和结构。这么官方的语言大家可能不太理解,其实包图就类似于文件夹,一个程序往往包含了很多元素,所以我们可以将这些类按照一定标准划分,将具有相似功能的一组元素放在一个包中...https://cloud.tencent.com/developer/article/2069215
10.UML图表工具MicrosoftVisioUML 对象图代表了更抽象的类样式的具体实例。软件开发人员使用对象图来验证他们最初的系统结构在添加了额外的特性后是否仍然成立。 包图 UML 包图将模型图组织成相关对象的组(或包)。这使得程序员能够展示大型组件组之间的关系。 剖面图 UML 剖面图不是一种传统的图表类型,而是一种用于为 UML 图表创建新语义的机制...https://www.microsoft.com/zh-cn/microsoft-365/visio/uml
11.创建UML包图表在Visio 2007 中:在 "文件" 菜单上,指向 "新建",指向 "软件",然后单击 "UML 模型图"。 在" 树视图 中,右键单击要用作其他程序包的容器的 包 ,指向"新建",然后单击"静态结构图"。 此时将显示一个空白页,并且 "UML 静态结构" 模具将成为最顶部的模具。 工作区将 "静态结构" 显示为水印。 树视图中将...https://support.office.com/zh-cn/article/%E5%88%9B%E5%BB%BA-uml-%E5%8C%85%E5%9B%BE%E8%A1%A8-3c3f35ba-813a-4141-b09f-553f4e7b8ec3