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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Linux 设置固定IP地址

    Linux 设置固定IP地址当我们安装完linux之后需要做的第一件事就是配置网络,因为有了网络我们可以做更多的事,比如下载插件,使用xshell工具连接等等ifconfig查看网络配置,类似windows的ipconfiglinux的网络配置文件一般在/etc/sysconfig/network-scripts/下面,使用命令cd切换到该路径下其中ifcfg-eth0就是虚拟机桥接的网络配置,如果有无…

    2022年5月2日
    63
  • 基尼系数的计算原理是什么_基尼系数1

    基尼系数的计算原理是什么_基尼系数1理论基尼指数( GiniIndex )是20世纪初经济学家基尼定义的指标,最为知名的应用是考察居民收入的差异情况。居民收入的情况符合幂指函数( PowerLaw )分布,最直观(但非准确)的理解就是 80/20 原则,也就是 20%的人拥有了 80% 的人的财富。用公式表示就是描述了是收入靠后 %x 的人所拥有的收入总和占所有人收入总和的比例 f(x) 的关系。

    2022年10月13日
    1
  • 详解布隆过滤器的原理、优缺点

    详解布隆过滤器的原理、优缺点什么是布隆过滤器?本质上布隆过滤器是一种数据结构,比较巧妙的概率型数据结构(probabilisticdatastructure),特点是高效地插入和查询,可以用来告诉你“某样东西一定不存在或者可能存在”,它是用多个哈希函数,将一个数据映射到位图结构中。此种方式不仅可以提升查询效率,也可以节省大量的内存空间。HashMap的问题讲述布隆过滤器的原理之前,我们先思考一下,通常你判断某…

    2022年9月1日
    6
  • String.Format使用方法[通俗易懂]

    String.Format使用方法[通俗易懂]1、作为參数多个參数intm[]=newint{a,b,c,d};string.format("{0}{1}{2}",m);一个參数privateconststr

    2022年7月3日
    58
  • python开发环境搭建,pycharm安装运行[通俗易懂]

    python开发环境搭建,pycharm安装运行[通俗易懂]一、python安装指南首先我们安装python1、进入官方网站(网址:https://www.python.org/downloads),根据自己的需求选择python的版本,这里我是选择的Python3.7.3,点击DownloadPython3.7.3按钮2、下载完成后点击安装文件包3、双击EXE文件进行安装,如下…

    2022年8月28日
    0
  • 二代身份证读卡插件安装包(完整亲测可用).zip

    二代身份证读卡插件安装包(完整亲测可用).zip最新二代身份证读卡插件安装包

    2022年6月27日
    23

发表回复

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

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