Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >UML 包图

UML 包图

作者头像
全栈程序员站长
发布于 2022-09-19 13:12:19
发布于 2022-09-19 13:12:19
6360
举报

大家好,又见面了,我是你们的朋友全栈君。

什么是包

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

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

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

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

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

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

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

可见性

•包的可见性:

用“+”来表示“public”,

用“#”来表示“protected”,

用“-”来表示“private”

上图解释

•首先根据《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》关系来表示

包图绘制原则

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

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

例子描述

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

•根据功能模块组织包:

分析与功能

.NET支持包

SocketClient

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

System.Net.Sockets

DataAccess

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

System.Data.Sqlclient

UI

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

System.Windows.Forms

GraphicGenerate

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

System.Drawing

包之间的依赖关系

包图使用说明

对成组元素建模

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

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

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

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

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

对体系结构建模

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

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

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
软件工程 包图习题
3、包内的元素可以被包内的元素、继承的子包元素所访问是指包的____B_____。
Meng小羽
2019/12/23
2K0
UML之包图
   当对一个比较复杂的软件系统进行建模时,会有大量的类、接口、组件、节点和图需要处理;如果放在同一个地方的话,信息量非常的大,显得很乱,不方便查询,所以就对这些信息进行分组,将语义或者功能相同的放在同一个包中,这样就便于理解和处理整个模型。
令仔很忙
2018/09/14
4.8K0
UML之包图
UML 教程
UML 从来源中使用相当多的概念。我们将之定义于统一建模语言术语汇表。下面仅列代表性的概念。
静默虚空
2019/05/25
3.5K0
【UML 建模】UML建模语言入门 -- 静态图详解 类图 对象图 包图 静态图建模实战
发现个好东西思维导图, 最近开始用MindManager整理博客 一. 静态图概述
韩曙亮
2023/03/27
2.3K0
【UML 建模】UML建模语言入门 -- 静态图详解 类图 对象图 包图 静态图建模实战
UML建模—EA创建Class(类图)
在类图可以捕获系统-类-和模型组件的逻辑结构。它是一个静态模型,描述存在什么,有哪些属性和行为,而不管如何去做。
张哥编程
2024/12/19
8130
UML建模—EA创建Class(类图)
UML系列(1):认识UML踏入设计之路
特别说明:本系列受《UML基础、案例与应用》和《软件工程》的启发,最终精炼于日常工作的经验。
Homqyy
2023/03/06
6770
UML系列(1):认识UML踏入设计之路
UML2.51边译边学-部署图
本文是UML规范2.5.1中部署图相关部分中文翻译。原文可从https://www.omg.org/spec/UML/2.5.1下载。
面向对象思考
2021/10/14
5860
UML2.51边译边学-部署图
UML 图表和数据库建模指南
统一建模语言(UML)在软件开发中发挥着重要作用,在许多行业的非软件系统中也发挥着重要作用,因为它是一种直观地显示系统或流程的行为和结构的方式。UML 有助于展示应用程序结构、系统行为和其他业务流程中的潜在错误。
运维开发王义杰
2023/08/10
6260
UML 图表和数据库建模指南
译 | 介绍全新 Microsoft.Data.SqlClient
本文由 SqlClient 和 SQL 服务器工具上的项目经理 Vicky Harp 撰写。
Edi Wang
2019/07/09
1.7K0
译 | 介绍全新 Microsoft.Data.SqlClient
C#连接4种类型数据库(Access、SQL Server、Oracle、MySQL)
C#连接4种类型数据库(Access、SQL Server、Oracle、MySQL)
阳光岛主
2019/02/19
6.5K0
C#连接Access、SQL Server、Oracle、MySQL、DB2和SyBase数据库的代码集
本文列出了C#连接Access、SQL Server、Oracle、MySQL、DB2和SyBase六种不同数据库的程序源码和需要注意的点。
艳艳代码杂货店
2021/10/29
2.5K0
SysML理论知识
长期以来系统工程师使用的建模语言、工具和技术种类很多,如行为图、IDEF0、N2图等,这些建模方法使用的符号和语义不同,彼此之间不能互操作和重用。系统工程正是由于缺乏一种强壮的标准的建模语言,从而限制系统工程师和其他学科之间关于系统需求和设计的有效通信,影响系统工程过程的质量和效率。
johnny666
2024/09/27
4140
UML概述及UML图详解[通俗易懂]
​ (一)事物[Things] (4种):UML模型中最基本的构成元素,是具有代表性的成分的抽象
全栈程序员站长
2022/11/01
2.4K0
.NET Core中ADO.NET SqlClient的使用与常见问题
  在很多要求性能的项目中,我们都要使用传统的ADO.NET的方式来完成我们日常的工作;目前有一些网友问有关于.NET Core操作SQL Server的问题在本文中解答一下。
yoyofx
2018/09/05
2.1K0
ADO.NET入门教程(二)了解.NET数据提供程序
摘要       在上一篇文章《你必须知道的ADO.NET(一) 初识ADO.NET》中,我们知道ADO.NET的两大核心组件分别是Data Provider和DataSet。如果说DataSet是ADO.NET的心脏,那么Data Provider绝对是ADO.NET的左臂右膀。Data Provider提供了访问外部数据数据源的可能性,而且外部的数据源是多样的。本文将详细说明.NET数据提供程序的作用以及如何访问不同的数据源。 ---- 目录 什么是.NET数据提供程序? .NET数据提供程序的核心对象
刘皓
2018/04/03
1.8K0
ADO.NET入门教程(二)了解.NET数据提供程序
用列图
一个任务,需要用列图,先网上收集一些资料。 定义:用例图是指由参与者(Actor)、用例(Use Case),边界以及它们之间的关系构成的用于描述系统功能的视图。用例图(User Case)是外部用户(被称为参与者)所能观察到的系统功能的模型图。用例图是系统的蓝图。用例图呈现了一些参与者,一些用例,以及它们之间的关系,主要用于对系统、子系统或类的功能行为进行建模。 构成 用例图由参与者(Actor)、用例(Use Case)、系统边界、箭头组成,用画图的方法来完成。 参与者 参与者不是特指人,是指
热心的社会主义接班人
2018/06/19
9060
【UML 建模】UML入门 之 交互图 -- 时序图 协作图详解
转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/17927131
韩曙亮
2023/03/27
5.6K0
【UML 建模】UML入门 之 交互图 -- 时序图 协作图详解
CS架构整合SQLserver数据库实现C#财务管理系统,报表分析系统
Connection对象:是一个连接对象,主要功能是建立于物理数据库的连接,主要包括4中访问数据库的对象类,如下:
计算机程序优异哥
2022/12/02
1.2K0
C#复习题 填空题
本文采用CC BY-NC-SA 3.0 Unported协议进行许可,转载请保留此文章链接
Meng小羽
2019/12/23
4.3K0
UML之用例图
UML-Unified Model Language 统一建模语言,又称标准建模语言。是用来对软件密集系统进行可视化建模的一种语言。 在UML系统开发中有三个主要的模型:   功能模型: 从用户的角度展示系统的功能,包括用例图。   对象模型: 采用对象,属性,操作,关联等概念展示系统的结构和基础,包括类图、对象图、包图。   动态模型: 展现系统的内部行为。 包括序列图,活动图,状态图。
chain
2019/05/26
1.2K0
推荐阅读
相关推荐
软件工程 包图习题
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档