UML 包图

UML 包图什么是包包可直接理解为命名空间,文件夹,是用来组织图形的封装,包图可以用来表述功能组命名空间的组织层次。•在面向对象软件开发的视角中,类显然是构建整个系统的基本构造块。但是对于庞大的应用系统而言,其包

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

什么是包

包可直接理解为命名空间,文件夹,是用来组织图形的封装,包图可以用来表述功能组命名空间的组织层次。

•在面向对象软件开发的视角中,类显然是构建整个系统的基本构造块。但是对于庞大的应用系统而言,其包含的类将是成百上千,再加上其间“阡陌交纵”的关联关系、多重性等,必然是大大超出了人们可以处理的复杂度。这也就是引入了“包”这种分组事物构造块。

•包的作用是: 
1)对语义上相关的元素进行分组; 
2)定义模型中的“语义边界”; 
3)提供配置管理单元; 
4)在设计时,提供并行工作的单元; 
5)提供封装的命名空间,其中所有名称必须惟一

在VS2010中,就用文件夹直接代表包

在EA中可以想下面这样新建包

image

•名称:每个包都必须有一个与其它包相区别的名称

•拥有的元素:在包中可以拥有各种其它元素,包括类、接口、构件、节点、协作、用例,甚至是其它包或图

image

 

可见性

•包的可见性:

用“+”来表示“public”,

用“#”来表示“protected”,

用“-”来表示“private”

image

上图解释

•首先根据《use》关系,可以发现Client包使用Server包,Server包使用System.Data.SqlClient包,结合其元素,不难得知Client负责Order(订单)的输入,并通过Server来管理用户的登录(LoggingService)和数据库存储(DataBase),而Server包还将通过.NET的SQL Server访问工具包来实现与数据库的实际交互。

•接着再看两个《import》,从包的命名和其所属的元素不难发现Rule负责处理一些规则,并引用一个具体的窗体(Window),而Client包则通过引用Rule来实现整个窗体和表单的显示、输入等。并且还将暂存Order(订单)信息。

•最后来看包的泛化关系,GUI有两个具体实现,一个是针对C/S的WindowsGUI,一个是实现B/S的WebGUI。

依赖关系

•《use》使用关系:是一种默认的依赖关系,说明客户包(发出者)中的元素以某种方式使用提供者包(箭头指向的包)的公共元素,也就是说客户包依赖于提供者

•《import》引用关系:最普遍的包依赖类型,说明提供者包(箭头指向的包)的命名空间(包本身代表命名空间)将被添加到客户包(发出者)的命名空间中,客户包中的元素也能够访问提供者包的所有公共元素

•《access》访问关系:只想使用提供者包中的元素,而不想将其命名空间合并则应使用该关系

•《trace》追溯关系:想表示一个包到另一个包的历史发展,则需要使用《trace》关系来表示

image

包图绘制原则

•最小化包之间的依赖,最小化每个包中的public、protected元素的个数,最大化每个包中private元素个数

•在建模时应该避免包之间的循环依赖,也就是不能够包含相互依赖的情况,对于这种情况应进行分析:

image

 

例子描述

•分析系统工作流程: 
1)通过Internet连接到股票信息服务器,获取实时的股票信息,并存入数据库中。 
2)根据用户的输入和选择,从数据库中获取相应的信息,展现在屏幕中。 
3)在数据的展现过程中,将需要绘制大量的图表

•根据功能模块组织包:

分析与功能

.NET支持包

SocketClient

负责连接Internet服务器,获取实时股票信息

System.Net.Sockets

DataAccess

负责从数据库读写实时股票信息

System.Data.Sqlclient

UI

负责响应用户输入和选择,并展现信息

System.Windows.Forms

GraphicGenerate

负责根据数据库的信息生成相应的图表

System.Drawing

包之间的依赖关系

image

包图使用说明

对成组元素建模

•每个包都应该是在概念、语义上相互接近的元素组成;

•对每个包找出应标记为公共的元素,但应尽可能地少;

•一般使用默认的《use》构造型,在映射到编程时考虑明确《import》构造型;

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

•在表示这种模型时,注意只标明对每个包都起核心作用的元素;另外也可以标识每个包的文档标记值,以使其更加清晰

对体系结构建模

•对体系结构进行建模(程序分层),是包图更有意义的一个用途。体系结构是一个软件系统的核心逻辑结构

•常用的体系结构 模式包括分层、MVC、管道、黑板、微内核等,而在应用软件中,分层和MVC

image

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/166598.html原文链接:https://javaforall.net

(0)
上一篇 2022年8月1日 下午6:00
下一篇 2022年8月1日 下午6:00


相关推荐

  • 程序员的 10 款代码表白特效,一个比一个浪漫

    程序员的 10 款代码表白特效,一个比一个浪漫提到程序员 就会出现许多关键词 诸如 直男 宅 不懂浪漫 枯燥 憨厚老实 有逻辑 人傻钱多 说程序猿是直男 不可否认 大多数程序猿都挺直 因为我们没有那么多弯弯绕绕 有心思兜圈子 不如回去写几行代码 程序猿的大多数时间都是面对电脑 所以对待一份感情也会非常的认真 程序猿也许在生活中会比较宅 就比如本人 但是千万不要说程序猿不懂浪漫 当你不开心了 他可以分分钟做出一个玫瑰花 心形等告白小程序给你制造小惊喜 程序员一旦浪漫起来 就真没其他人啥事了 接下来就给大家介绍一下程序猿是

    2026年3月18日
    2
  • 离PACKET_INp获取信息acket data

    离PACKET_INp获取信息acket data

    2022年1月13日
    41
  • fisher最优分割法_a0裁切三次

    fisher最优分割法_a0裁切三次给定一个无向图 G=(V,E),每个顶点都有一个标号,它是一个 [0,231−1] 内的整数。不同的顶点可能会有相同的标号。对每条边 (u,v),我们定义其费用 cost(u,v) 为 u 的标号与 v 的标号的异或值。现在我们知道一些顶点的标号。你需要确定余下顶点的标号使得所有边的费用和尽可能小。输入格式第一行有两个整数 N,M,N 是图的点数,M 是图的边数。接下来有 M 行,每行有两个整数 u,v,代表一条连接 u,v 的边。接下来有一个整数 K,代表已知标号的顶点个数。接下来的 K

    2022年8月11日
    4
  • 智谱港股上市:市值超500亿港元

    智谱港股上市:市值超500亿港元

    2026年3月12日
    2
  • 百面机器学习

    百面机器学习1 梯度下降与归一化梯度 散度和旋度归一化 将二分类转为多分类模型梯度公式是 散度公式是 旋度公式是 2 决策树 C4 5 决策树度输入是字符串 fpgrowth 的算法大概是怎样的 Apriori 熵值和信息增益公式 3 感知机与神经元权值是如何通过迭代的形式发生变更的 见 54 TF IDF 主题模型 Word2Vec5 神经网络的误差逆传播算法一个例子 见笔记本 6 SVM log

    2026年3月16日
    2
  • 一周时间背完四六级单词

    一周时间背完四六级单词

    2021年5月1日
    136

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号