首页 > 其他分享 >UML概述、类图关系及连接线表示

UML概述、类图关系及连接线表示

时间:2024-11-13 22:14:41浏览次数:3  
标签:关系 连接线 聚合 界面 对象 系统 类图 学生 UML

一、什么是 UML

以下是官方的描述:
UML(Unified Modeling Language)即统一建模语言,它是一种用于可视化、详述、构造和文档化软件密集系统的语言。UML 并不是一种编程语言,而是一种可视化的建模语言,主要用于软件开发过程中的分析、设计阶段,帮助开发人员更好地理解系统的结构和行为。
简单来说,就是规定一个约定俗成的东西,方便大家表示一些行为(根据这个东西,大家都能知道这个行为,基本不用再一一解释)。

二、UML的主要图型

  1. 用例图(Use Case Diagram)
    • 定义:用例图主要用于描述系统的功能需求,它展示了系统中的参与者(Actor)与用例(Use Case)之间的关系。参与者可以是用户、外部系统等,用例代表系统提供的功能。
    • 示例:以一个产品销售系统为例,参与者有“用户”和“销售员”。“用户”这个参与者可以与“购买物品”“维修物品”“退货”等用例相关联;“销售员”可以与“上架物品”“查询物品”“销售物品”等用例相关联。用例图可以清晰地展示不同用户角色与系统功能之间的交互关系,帮助开发人员和用户沟通需求。

image.png
2. 类图(Class Diagram)

  • 定义:类图是一种静态结构图,用于描述系统中的类、类的属性以及类之间的关系。类是对具有相同属性和行为的对象的抽象。
  • 示例:在这个系统中,存在 “动物” 类,具有 “有生命”属性和“新陈代谢”、“繁殖”等方法或操作。“水” 与 “氧气”和“动作” 是依赖关系。“鸟”与“动物”是继承关系,即鸟肯定属于动物。“大雁”与“鸟”同样道理也是继承关系;但“雁群”与“大雁”属于聚合关系,即大雁可以组成雁群,也可以单独行动。“翅膀”和“鸟”属于组合关系,比聚合关系和关联关系强一些。类图清晰地呈现了各个类之间的关系以及类的特性和操作。

image.png
3. 时序图(Sequence Diagram)

  • 定义:时序图主要用于描述对象之间的动态交互顺序,它按照时间顺序展示了对象之间的消息传递。
  • 示例:在学生使用的学习系统中,当学生登录系统时,顺序图可以展示 “学生” 对象向 “学生系统界面” 对象发送 “输入账号密码” 消息,“学生系统界面” 对象接着向 “数据库服务器” 对象发送 “验证信息” 消息,“数据库服务器” 对象进行验证后向 “学生系统界面” 对象返回验证结果消息,若验证成功,“学生系统界面” 对象向 “学生” 对象发送 “进入学生界面” 消息。当学生在学生界面选择 “浏览课件信息” 时,“学生” 对象向 “学生系统界面” 对象发送 “请求课件信息” 消息,“学生系统界面” 对象向 “数据库服务器” 对象发送 “加载课件信息” 消息,“数据库服务器” 对象将课件信息返回给 “学生系统界面” 对象,“学生系统界面” 对象向 “学生” 对象显示结果消息。当学生选择 “下载课件” 时,“学生” 对象向 “学生系统界面” 对象发送 “获取课件信息” 消息,“学生系统界面” 对象向 “数据库服务器” 对象发送该消息,“数据库服务器” 对象将课件信息返回给 “学生系统界面” 对象,“学生系统界面” 对象完成下载并向 “学生” 对象发送 “下载成功” 消息。当学生选择 “观看教学视频” 时,“学生” 对象向 “学生系统界面” 对象发送 “加载视频信息” 消息,“学生系统界面” 对象向 “数据库服务器” 对象发送该消息,“数据库服务器” 对象将视频信息返回给 “学生系统界面” 对象,“学生系统界面” 对象向 “学生” 对象显示结果消息。时序图清晰地呈现了学生在使用学习系统时各个对象之间的交互顺序。

image.png
4. 活动图(Activity Diagram)

  • 定义:活动图主要用于描述系统的业务流程或操作流程,它展示了从一个活动到另一个活动的控制流。
  • 示例:在销售合同签订过程中,首先进行签订销售合同的活动。接着进行核对合同的活动,若发现有错误,则进行修改合同的相关活动;若核对合同无错误,则进行核对货物清单的活动。在核对货物清单时,若发现缺货,则进行补货或调整合同等相关活动;若有货,则继续核对付款单。若付款单显示未付款,则进行催款等活动;若已付款,则进行发货活动。活动图清晰地呈现了销售合同签订及后续流程中各个活动之间的执行顺序和条件判断。

image.png
5. 状态图(State Diagram)

  • 定义:状态图用于描述一个对象在其生命周期内可能处于的各种状态,以及状态之间的转换条件。
  • 示例:在网上购物的订单处理过程中,订单开始处于 “订单成立” 状态。如果库存足够且已付款,订单进入 “订单备货” 状态。接着进行 “订单出货”,若出货成功,生成出货单号和发票,进入 “出货确认” 状态。在出货确认中,检查并匹配出货信息,若信息无误,订单进入 “出货完毕” 状态。当顾客收货后,订单到达 “订单结束” 状态。若在 “订单出货” 时出货失败,则订单可能回到 “订单备货” 状态进行问题排查和重新出货等操作。清晰地呈现了订单在不同状态之间的转换以及触发状态转换的条件。

image.png

三、UML的优势

  1. 可视化沟通工具
    • UML提供了一种统一的、直观的可视化表示方式,使得开发团队成员(包括系统分析师、设计师、程序员等)之间,以及开发团队与用户之间能够更好地沟通系统的需求和设计。例如,通过用例图,用户可以直观地看到系统将提供哪些功能,而开发人员可以更好地理解用户的期望。
  2. 支持系统的整体规划和设计
    • 它能够帮助开发人员从不同的角度对系统进行建模,包括系统的静态结构(通过类图等)和动态行为(通过顺序图、活动图等)。这种多视角的建模有助于开发人员全面地考虑系统的各个方面,提前发现潜在的问题,如类之间的不合理关联、业务流程中的死锁等。
  3. 提高软件的可维护性和可扩展性
    • 由于UML模型清晰地记录了系统的结构和行为,在软件的维护和扩展阶段,新的开发人员可以通过参考UML模型更快地理解系统。例如,当需要添加新的功能时,开发人员可以通过查看用例图了解功能需求,通过类图和顺序图确定需要修改或添加的类和对象之间的交互,从而更高效地进行软件的更新和扩展。

四、UML类图的六种关系

类的关系线条

类的关系基本包含以下几种:
image.png

0.类的表示

类的表示:最上方是类名,中间是属性,下面是方法。+表示公有,-表示私有,#表示保护。
image.png

1.继承

继承是用空心三角+实线表示。箭头指向基类父类
子类派生类继承自父类基类。可以在子类派生类中声明自己的方法和属性。
image.png

2.依赖

依赖是用三角箭头+虚线表示。箭头指向被依赖的对象。
image.png

3.关联

关联是用三角箭头+实线表示。箭头指向(也可以双向)被依赖元素。
关联表示一个类和另一类有关系,它使一个类知道另一个类的属性和方法,被关联的元素间通常可以被独立的考虑。
image.png

4.聚合

聚合是用空心菱形头实线+三角箭头表示,菱形头指向整体。
聚合`是关联关系的一种,是整体和部分的关系,是一种强的关系,但是部分可以脱离整体而存在。
image.png

5.组合

组合是用带实心菱形头实线+三角箭头表示,菱形头指向整体。是聚合关系的一种,它要求整体包含部分对象的生命周期。
image.png

6.实现

实现空心三角+虚线表示,箭头指向接口。
image.png

五、聚合和组合的区别

聚合是一个个的有独立完整生命周期的个题,聚在一起。而组合脱离了整体就不存在了,无法独立存在。
翅膀和轮子 跟 鸟、汽车是组合关系
而人 跟公司跟部门,是聚合关系,可以辞职可以加入别的公司,是聚合
身体器官跟人是组合关系,脱离了人体,就没有生命周期了,是组合
大雁 跟雁群是聚合关系,可以单飞可以加入别的鸟群,是聚合
鸟翅膀跟大雁是组合关系,脱离了大雁,鸟翅膀就没有s生命周期了,是组合
奔驰汽车 跟 婚庆车队 聚在一起,是聚合关系,今天参加这个婚庆车队,明天也可以参加其他的婚庆车队,是聚合
而轮子和方向盘,脱离了汽车,没有自己生命周期,是组合

六、总结

继承实现体现的是一种类与类、或者类与接口间的纵向关系;
依赖关联聚合组合体现的是类与类、类与接口间的引用,即横向关系;
这几种关系,所表现的强弱程度依次为:组合 > 聚合 > 关联 > 依赖。

标签:关系,连接线,聚合,界面,对象,系统,类图,学生,UML
From: https://blog.csdn.net/MrHHHHHH/article/details/143725786

相关文章

  • 深入理解面向对象分析中的类图:构建清晰的系统蓝图
    标题:深入理解面向对象分析中的类图:构建清晰的系统蓝图摘要面向对象分析(Object-OrientedAnalysis,OOA)是软件开发中的关键过程,通过以对象为中心的方法来理解和建模系统。类图(ClassDiagram)是面向对象分析中最基础且重要的图形化工具,主要用于展示系统中的类及其关系,帮助开......
  • 项目UML图
    1.用例图2.类图3.时序图......
  • 海力士 H9HCNNNBKUMLXR-NEE 在售中 ,Platinum P41 M.2 PCIE 4.0 2TB固态硬盘,Dram颗粒编
    主控:海力士ARIES主控(ACNS8075PMT762.00S-1)闪存:海力士SK4DV7176L(H25T3TCG8CX59),单颗容量为1TB,IO速率为1600MT/s缓存:海力士LPDDR4DDR4-426616Gb,容量为2048MB产品名称:海力士PlatinumP41SSD2TB闪存特写和缓存图片请参考相关资料。海力士PlatinumP41固态硬盘的性......
  • 冒险者工会——UML
    用户用例图普通用户角色队长角色人才角色类图时序图用户发布任务用户选择任务并创建队伍用户浏览并选择心仪队伍用户评价其他用户队长邀请参与队伍和用户申请加入队伍申请加入邀请加入......
  • StarUML建模工具安装学习与汉化最新零基础详细教程【一键式下载】(适用于Windows、MacO
    StarUML破解安装下载教程前言:StarUML破解与汉化安装下载教程,仅供学习研究和交流使用,禁止作为商业用途或其他非法用途!仓库作者:X1a0He,经仓库作者授权使用。目录StarUML破解安装下载教程1.下载准备1.1一键式准备【懒人准备】1.2学习式准备1.2.1学习准备2.window......
  • ModelMaker 7由pas逆向类图
    下载通过百度网盘分享的文件:ModelMaker_v7.20.rar链接:https://pan.baidu.com/s/1-jc39uRv5X96HqrkeDs5ZA提取码:i9pb逆向工程逆向工程在MM中十分简单。但是要提醒,先备份一下你的旧代码。1.【单元视图】(Units)选“ImportUnit..”2.选择你要导入的.pas文件。3.ok后你在【......
  • 开发中使用UML的流程_01概述
    目录CIM-1:定义业务流程CIM-2:分析业务流程​CIM-3:定义系统范围​PIM-1:分析系统流程PIM-2:分析业务规则PIM-3:定义静态结构PIM-4:定义操作和方法开发中使用UML的流程,主要分为7部分,具体如下:CIM-1:定义业务流程定义及分析业务流程是为了尽快理清系统范围,以便估算开发成本及......
  • 知识点UML(统一建模语言)中的活动图
    知识点该题考察的知识点是UML(统一建模语言)中的活动图(ActivityDiagram)。UML活动图的相关内容:UML活动图是一种用于描述系统中业务流程、工作流或系统操作的图表。它展示了业务流程中的步骤以及这些步骤之间的控制流。活动图的主要元素包括:活动(Activity):表示一个操作或一个动作的......
  • 七、UML
    七、UML「软件设计师」上午题#8UML_哔哩哔哩_bilibili1、事件1、UML中有4种事物:结构事物、行为事物、分组事物和注释事物。1、结构事物(StructuralThing)1、描述概念或物理元素2、模型的静态部分3、如图2、行为事物(Behaviorthing)1、描述了跨越时间和空间的......
  • 2024秋软工实践iman原型设计和UML设计
    信息类别内容作业所属课程软件工程实践-秋季班作业要求第一次团队作业-原型设计与概要设计作业目标根据需求分析和设计,完成项目的原型设计和概要设计,培养团队协作能力,为后续的开发奠定基础。团队名称iman......