UML静态图-包图

2024-06-03 15:52
文章标签 静态 uml 包图

本文主要是介绍UML静态图-包图,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

概述

静态图包含类图、对象图和包图的主要目的是在系统详细设计阶段,帮助系统设计人员以一种可视化的方式来理解系统的内部结构和代码结构,包括类的细节、类的属性和操作、类的依赖关系和调用关系、类的包和包的依赖关系。

一、包图的表示法

包图是一种常规用途的组合机制。UM中的一个包直接对应于Java中的一个包。在Java中,-个包可能含有其他包、类或者同时含有这两者。在进行建模时,你通常拥有逻辑性的包,它主要用于对你的模型进行组织;你还会拥有物理性的包,它直接转换成系统中的Java包。每个包的名称对这个包进行了唯一标识。

包是用一个在上方带有小标签的矩形表示的,包名写在标签上或者在矩形里面。如图 3-18所示,方框内使用一个 Java 规格的包名来表示。

在这里插入图片描述

二、使用包包含类

如果将已经创建的类图包含在该包下,使用一个横线隔开,下方列出所有包含的类,类名使用-个加号表示它为一个类,如图 3-19所示。
在这里插入图片描述
将 User 和 Book 类加入到包 com.demo.domain 后,原有的 User 和 Book 类图中的类名称下多了-个“from com.demo.domain”来表示该引用,如图 3-20所示。

在这里插入图片描述

三、使用包包含子包

如果包里还包含有子包,应该按照Java类包的包含关系,将子包画在父包中。如图 3-21所示,包com.demo.domain 除了包含有两个类—User 和 Book 外,还包含了两个包–util 和 test。

在这里插入图片描述

四、包的依赖关系

与类的依赖关系类似,包与包之间因为逻辑的引用也存在依赖关系,所谓的依赖即A包引用了B包中的类,那么A包就依赖于B包。包的依赖通常都是人为设计造成的,比如通常我们会为不同的包限定其中类的不同作用。例如,在JavaEE分层设计中,通常会设计类似下面的4层:

  • com.demo.domain 表示 Java 原始类的包:
  • com.demo.dao 表示DAO层类的包。
  • com.demo.service 表示 Service 层类的包。
  • com.demo.action表示请求处理类的。

它们就可以像图 3-22所示一样表示,其中包的依赖关系使用点画线箭头。
在这里插入图片描述

这篇关于UML静态图-包图的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1027435

相关文章

Thymeleaf:生成静态文件及异常处理java.lang.NoClassDefFoundError: ognl/PropertyAccessor

我们需要引入包: <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId></dependency><dependency><groupId>org.springframework</groupId><artifactId>sp

UML- 统一建模语言(Unified Modeling Language)创建项目的序列图及类图

陈科肇 ============= 1.主要模型 在UML系统开发中有三个主要的模型: 功能模型:从用户的角度展示系统的功能,包括用例图。 对象模型:采用对象、属性、操作、关联等概念展示系统的结构和基础,包括类图、对象图、包图。 动态模型:展现系统的内部行为。 包括序列图、活动图、状态图。 因为要创建个人空间项目并不是一个很大的项目,我这里只须关注两种图的创建就可以了,而在开始创建UML图

C++/《C++为什么要有静态成员函数》

摘要        本文说明了什么是静态成员变量,什么是静态成员函数的概念,讨论了访问私有静态成员变量的三个方法。得出用静态成员函数访问静态私有成员变量是最佳方法即回答了“C++为什么要有静态成员函数“的问题。 类的静态成员 我们可以使用 static 关键字来把类成员定义为静态的。当我们声明类的成员为静态时,这意味着无论创建多少个类的对象,静态成员都只有一个副本。静态成员在类的所有对象中是

c++的静态变化!

静态成员   对于非静态成员,一个类的每个对象都自己存有一个副本,每个对象根据自己拥有的非静态的数据成员来区别于其他对象。而静态成员则解决了同一个类的多个对象之间数据和函数的共享问题。   静态数据成员   静态数据成员的作用是:实现同一类的不同对象之间的数据共享。   #include<IOSTREAM>   using namespace std;   class Po

本地如何快速启动静态服务器

本地快速启动静态服务器 有许多第三方库可以帮助你快速启动一个静态服务器,甚至无需编写代码。通过命令行运行这些库后,它们会自动启动一个服务器并打开指定端口,展示当前目录下的文件内容: 电脑得提前安装NodeJS 1、http-server http-server 是一个轻量级的命令行工具,允许你快速启动一个静态文件服务器。 安装 npm install -g http-server

第三章 UML类图简介(设计模式笔记)

第三章 UML类图简介 3.1类 3.2接口 名字层必须有<> 3.3 泛化(继承)关系 箭头终点端指向父类(空心三角形) 3.4 关联(组合1)关系 B类是A类的成员变量 ,称A关联B。 箭头终点端指向B 3.5 依赖(组合2)关系 B类是A类的某个方法的参数 ,称A依赖B。 箭头终点端指向B(虚线) 3.6 实现关系 箭头终点端指向接口(虚线,空心

linux基础IO——动静态库——进程编址、进程执行、动态库加载

前言:本节内容为基础IO部分的最后一节, 主要是为了讲一下动静态库里面的动态库如何加载到内存, 动态库的地址等等。 但是,这些内容牵扯到了程序的编址, 程序的加载, 进程的执行等等知识点, 所以,我们会从程序的编址讲起, 一直到进程的执行, 以及动态库加载结束。         ps:本节内容涉及到了进程地址空间, 磁盘的内容, 建议友友们了解相关知识后再来观看。 目录

(六十四)第 10 章 内部排序(静态链表的插入排序)

示例代码 staticLinkList.h // 静态链表的插入排序实现头文件#ifndef STATIC_LINK_LIST_H#define STATIC_LINK_LIST_H#include "errorRecord.h"#define SIZE 100#define NUM 8typedef int InfoType;typedef int KeyType;ty

ngrok | 内网穿透,支持 HTTPS、国内访问、静态域名

前言 当我们需要把本地开发的应用展示给外部用户时,常常会因为无法直接访问而陷入困境。 就为了展示一下,买服务、域名,搭环境,费钱又费事。 那有没有办法,让客户直接访问自己本机开发的应用呢? 这种需求场景这么多,当然有现成的技术 —— 内网穿透。 什么是内网穿透? 内网穿透是一种网络技术,它允许外部互联网用户访问部署在本地网络(内网)中的服务或设备。 通常,家庭或企业网络都位于内网,连

spring MVC访问静态文件,如jpg,js,css

如何你的DispatcherServlet拦截 *.do这样的URL,就不存在访问不到静态资源的问题。如果你的DispatcherServlet拦截“/”,拦截了所有的请求,同时对*.js,*.jpg的访问也就被拦截了。   目的:可以正常访问静态文件,不要找不到静态文件报404。   方案一:激活Tomcat的defaultServlet来处理静态文件 Xml代码 <se