首页 > 其他分享 >UML_结构类_包图

UML_结构类_包图

时间:2024-06-17 16:13:54浏览次数:27  
标签:依赖 模型 元素 重用 包图 一个包 UML 结构

包图(uml2.0)

当对一个比较复杂的软件系统进行建模时,会有大量的类、接口、组件、节点和图需要处理;如果放在同一个地方的话,信息量非常的大,显得很乱,不方便查询,所以就对这些信息进行分组,将语义或者功能相同的放在同一个包中,这样就便于理解和处理整个模型。而包图就是描述包与包之间的关系。 每一个包就是一个独立的命名空间,两个不同的包之中可以有相同的元素名,只是所处的包不同,其全名不同。

包含的元素

    • 包名
    • 包内元素
      • 接口
      • 构件
      • 节点
      • 协作
      • 用例
      • 子包
  • 关系
    • 依赖(包元素之间有了依赖,包也就有了依赖)
      • 引入(Import )
        导入整个包,包里面所有元素都可以使用
      • 访问(access)
        访问里面包里面的一些元素
    • 泛化
      一个包的元素是可以用另外一个包替换,可以在父包上面标注

包元素的可见性

  • + 公有的
  • - 私有的
  • # 保护的,子类可用

包的重用原则

  • 重用等价原则
    对于同类可重用的模型元素尽量放到一个包中,不要把可重用模型元素和不可重用的模型元素混到一个包中。
  • 共同重用原则
    把同一个应用要重用的多个模型元素放到同一个包中,以减少包间的依赖,提高包的独立性。
  • 共同封闭原则
    把可能同时修改,同时维护的模型元素放到一个包中,以便于今后维护和升级。
  • 非循环依赖原则
    包之间不要循环依赖

常见三层架构的包图

image-20240616022924492

包图不关心内部元素的时候可以直接在内部写上包名
image-20240616023304472

标签:依赖,模型,元素,重用,包图,一个包,UML,结构
From: https://www.cnblogs.com/cxygg/p/18252608

相关文章

  • UML_结构类_对象图
    对象图描述某一时刻系统的对象的静态状态,或者是类图某一时刻的实例包含元素对象对象名格式为对象名:类名,对象名称下面加下划线用于区分对象图和类图,对象名字可以省略属性没有方法,并且每个属性都有当前的值链直线表示,没有箭头,没有多重性电脑组成的......
  • UML_结构类_类图
    类图描述的类和类之间的静态关系,是逻辑层面的模型包含元素类类里面有类名,属性,和方法,可以更具需要不写属性和方法的类型,也可以属性和方法都不写,方法和属性前面的+-号表示访问权限+公有-私有#受保护的~是包权限关系依赖:没有直接关系虚线+箭头关联:有直接关系,但......
  • UML_结构类_部署图
    部署图描述的是硬件拓扑以及在此结构上执行的软件,说白了就是软件是怎么部署到硬件设备上的,是物理层面的模型包含的元素节点表示服务器主机,用立体长矩形表示,命名方式可以直接写节点类型,也可以是实例名:节点类型物件(构件,组件)表示需要部署的软件服务,用矩形框加合适的图......
  • 【数据结构】线性表之《顺序表》超详细实现
    顺序表一.数据结构1.逻辑结构2.物理结构二.顺序表的分类1.静态顺序表2.动态顺序表三.顺序表的实现1.创建顺序表2.初始化顺序表3.判断是否扩容4.打印顺序表5.插入操作1.头插2.尾插3.按照下标插入6.删除操作1.头删2.尾删3.按照下标删除7.查找数据8.修改数据9.清空顺序......
  • 9.2.1 简述图像分割中经常用到的编码器-解码器网络结构的设计理念。
    9.2图像分割场景描述:图像分类图像识别图像分割不同标注出每个目标的类别像素级别的图像识别,标注出图像中每个像素所属的对象类别不同对整张图像进行识别进行稠密的像素级分类应用场景视频软件中的背景替换、避开人物的弹幕模板、自动驾驶以及医疗辅助判断等分类前景分割(f......
  • MySQL触发器基本结构
    1、修改分隔符符号delimiiter$$可以修改成$$//都行2、创建触发器函数名称createtrigger函数名3、什么样的操作触发,操作哪个表after:···之后触发before:···之前触发insert:插入被触发update:修改被触发delete:删除被触发on表名实例:在user表被添加信息后触发......
  • c语言回顾-结构体
    前言在前面的学习中,我们知道C语言提供了许多内置类型,如:char、short、int、long、float、double等,但是只有这些内置类型还是不够的。当我们想描述学生,描述一本书,这时单一的内置类型是不行的。描述一个学生需要名字、年龄、学号、身高、体重等;描述一本书需要作者、出版社、定价......
  • 超级底层:10WQPS/PB级海量存储HBase/RocksDB,底层LSM结构是什么?
    文章很长,且持续更新,建议收藏起来,慢慢读!疯狂创客圈总目录博客园版为您奉上珍贵的学习资源:免费赠送:《尼恩Java面试宝典》持续更新+史上最全+面试必备2000页+面试必备+大厂必备+涨薪必备免费赠送:《尼恩技术圣经+高并发系列PDF》,帮你实现技术自由,完成职业升级,薪......
  • 定义一个结构体变量stu,成员包括学号、姓名、性别、成绩。定义一个指针变量p指向该结构
            一个结构体变量的指针就是该变量所占据的内存段的起始地址。可以设一个指针变量,用来指向一个结构体变量,此时该指针变量的值是结构体变量的起始地址。指针变量也可以用来指向结构体数组中的元素。编写程序:运行结果:程序分析:        在主函数中声明......
  • 结构化绑定(c++17)
    结构化绑定(Structuredbindings)是C++17引入的一个特性,它使得从元组或者其他类型的数据结构中提取元素变得更加方便和直观。它允许我们通过一条语句将一个复杂类型的数据解构成其组成部分,而无需显式地访问每个成员。使用示例:假设有一个结构体Person和一个返回结构体的函数:#i......