首页 > 其他分享 >UML笔记

UML笔记

时间:2023-11-12 19:33:18浏览次数:31  
标签:对象 系统 建模 笔记 用例 实例 UML

UML基本概念

  • UML含义:
    • UML(Unified Modeling language):统一建模语言
    • U 统一:表示是一种通用的标准,称为软件工业界的一种标准。UML表述的内容能被各类人员所理解,包括客户、领域专家、分析师、设计师、程序员、测试工程师及培训人员等
    • M 建模:建立软件系统的模型
    • L 语言:表明它是一套按照特定规则和模式组成的符号系统,它用半形式化方法定义,即用图形符号、自然语言和形式语言相结合的方法来描述定义的。
    • UML是用于标准可视化建模语言,而不是软件开发过程
      • 业务建模和相关的建模
      • 基于软件系统分析,设计和实现
  • 作用
    • UML是客户、系统分析员和程序员之间的“桥梁”
      • 使用可视化建模来获取并表现商业逻辑和对象
      • 使用可视化建模来分析和设计计算机应用程序
    • UML从客户的角度将复杂的系统整理清楚
    • UML能使越来越复杂的软件 系统架构更加合理和健壮
  • 用途
    • 做软件需求分析
    • 做软件开发设计
    • 做系统部署设计
    • 也适用非软件领域的系统建模如企业机构或业务过程,以及处理复杂数据的信息系统、具有实时要求的工业系统或工业过程等。
  • UML元素
    • 结构图
      • 显示了系统及其部件在不同抽象和实现级别上的静态结构以及它们如何相互关联
      • 结构图中的元素表示系统的有意义的概念,并且可以包括抽象的,现实的和实现的概念
      • 结构图不使用时间相关概念,不显示动态行为的细节。
      • 分类
    • 行为图
      • 显示了系统中对象的动态行为,可以将其描述为系统随时间的一系列更改。
      • 分类

UML几种主要的图

1.用例图(Use Case Diagram)

  • 描述述了一些系统或主体(subject)应该或可以与系统的一个或多个外部用户(参与者)合作执行的一组行动(用例),以向参与者或其他利益相关者提供一些可观察到的和有价值的结果。

  • 用例图是从用户角度描述系统功能, 是用户所能观察到的系统功能的模型图,可以理解成用例是系统中的一个功能单元

  • 作用

    • 主要作用是描述参与者和用例之间的关系,帮助开发人员可视化的了解系统的功能。
  • 分类

    • 业务用例图
    • 系统用例图
  • 基本构成要素

    • 参与者
      • 参与者(Actor)是指存在于系统外部并直接与系统进行交互的人、系统、子系统或类的外部实体的抽象。
      • 参与者放在系统边界的外面,表明角色并不属于系统。但是角色负责直接(或间接)驱动与之关联的用例的执行。
    • 用例
      • 参与者使用系统达到的目标
      • 所有的用例都放置在系统边界内,表明它属于一个系统
    • 系统边界
      • 指开发的系统与外部之间的界限
    • 示例:系统用例图
  • 归纳小结

    • 确定用例要注意什么?
      • 用例需要能够产生有价值的结果,没有产生价值的用例没有写的意义
      • 不要把步骤当成用例,一个用例要能写出多个步骤,写不出来就是粒度有问题

        例如:取款可以分成:插卡、输入金额、取出钱款等步骤

      • 用例重点在编写文本,像登录、注册这些就没必要当成用例,想写可以写在用例规约的前置条件
      • 用例基本是以动词+名词的形式组合的

2.类图(Class Diagram)

    • 面向对象分析与设计的基础就是类
    • 类是用来代表现实事物或者功能的构造块
      • 通常业务人员所谈及的具体事物种类--商店,商品,货架
      • 或者是概念:订单、贷款、住房抵押、汽车信贷以及利率等
    • 类图中的“类”与面向对象语言中的“类”的概念是对应的,是对现实世界中的事物的抽象
  • 类图
    • 是以类为中心来组织的,是由若干类关联在一起,反映系统或者子系统组成结构的静态图(描述系统中类的静态结构)。
    • 以反映类的结构(属性、操作)以及类之间的关系为主要目的,描述了软件系统的结构,是一种静态建模方法
  • 类图的作用
    • 描述软件系统中各个类的结构和之间的关系。
  • 常见类型
    • 领域模型图
    • 设计类图
  • 元素及其符号
    • 类(Class)

      • 是具有共同结构特征、行为特征、联系和语义的对象集合的抽象形式。
      • 包含三部分的矩形(不一定需要每次都画出三个部分,只有一个或两个都行)
        • 最上面的部分:显示类的名称
        • 中间部分:包含类的属性
        • 最下面的部分:包含类的操作或方法
      • 示例

      • 类的其他变形
        • 接口
          • 一组操作的集合,只有操作的声明而没有实现
        • 抽象类
          • 不能被实例化的类,一般至少包含一个抽象操作
        • 模板类
          • 一种参数化的类,在编译时把模版参数绑定到不同的数据类型,从而产生不同的类
    • 关系

      • 关联(Association):它表示类与类之间的关系。
        • 如果两个类都彼此知道对方,则应该使用实线来表示关联关系
        • 如果只有其中一个类知道该关联关系,则使用开箭头表示
      • 泛化(Generalization):表示类与类之间的继承关系。在面向对象中一般称为继承关系,存在于父类与子类、父接口与子接口之间
      • 聚合
      • 组合
      • 依赖:描述了一个类的变化对依赖于它的类产生影响的情况。

3.顺序图

  • 顺序图显示对象之间的动态合作关系,它强调对象之间消息发送的顺序,同时显示对象之间的交互
  • 顺序图的一个用途是用来表示用例中的行为顺序。当执行一个用例行为时,顺序图中的每条消息对应了一个类操作或引起状态转换的触发事件
  • 顺序图有两个维度:
    • 垂直维度以发生的时间顺序显示消息/调用的序列
    • 水平维度显示消息被发送到的对象实例
  • 元素
    • 对象

      • 类的实例,顶部每个框表示每个类的实例
      • 类实例名和类名之间用冒号来分隔,如: myReport: Report
      • 对象排列:从左至右,交互频繁的对象尽可能靠拢
    • 生命线

      • 表示对象的生存时间,生命线从对象创建开始到对象销毁时终止
      • 两种状态:休眠,激活
        • 激活
          • 当一个对象没有被激活时,该对象处于休眠状态,什么事都不做,但它仍然存在,等待新的消息来激活它。
          • 当一条消息被传递给对象的时候,它会触发该对象的某个行为,这时就说该对象被激活了。
          • 当一个对象处于激活期时,表明该对象正在执行某个动作
          • 激活用一个细长的矩阵框(在生命线上)表示。
    • 消息

      • 如果某个类实例向另一个类实例发送一条消息,则绘制一条具有指向接收类实例的开箭头的连线,连线上标注消息/方法的名称
      • 对象之间的交互是通过互发消息来实现的。一个对象可以请求(要求)另一个对象做某件事件。
      • 消息从源对象指向目标对象。消息一旦发送便将控制从源对象转移到目标对象。
      • 消息的阅读顺序是严格自上而下的

标签:对象,系统,建模,笔记,用例,实例,UML
From: https://www.cnblogs.com/qq286442936/p/17827602.html

相关文章

  • openGauss学习笔记-121 openGauss 数据库管理-设置密态等值查询-使用JDBC操作密态数据
    openGauss学习笔记-121openGauss数据库管理-设置密态等值查询-使用JDBC操作密态数据库121.1连接密态数据库连接密态数据库需要使用驱动包gsjdbc4.jar,具体JDBC连接参数参考基于JDBC开发章节介绍。JDBC支持密态数据库相关操作,需要设置enable_ce=1,示例如下。publicstaticConne......
  • python笔记
    python基础来源:b站up“林粒粒呀”《一口气入门Python》1.列表shopping_list=["键盘","鼠标"]#使用append()方法shopping_list.append("显示器")#使用remove()方法(需要删除的元素必须在列表中)shopping_list.remove("鼠标")#列表的索引(从0开始)print(shopping_l......
  • Linux第6章学习笔记
    第六章学习笔记信号和信号处理本章讲述了信号和信号处理;介绍了信号和中断的统一处理,有助于从正确的角度看待信号;将信号视为进程中断,将进程从正常执行转移到信号处理;解释了信号的来源,包括来自硬件、异常和其他进程的信号;然后举例说明了信号在Unix/Linux中的常见用法;详细解释了......
  • kafka第五天学习笔记
    今天我们继续学习Kafka的第五天内容。在前几天的学习中,我们了解了Kafka的基本概念、特点、应用场景以及核心组件等。今天我们将深入学习Kafka的一些高级特性和最佳实践。Kafka的复制机制Kafka的复制机制是其高可用性和数据安全性的重要保障。在Kafka中,每个主题都拥有一个或多个副本......
  • Facebook Ads – 笔记
    前言记入一些小东西 参考YouTube– 这是第一次广告投放回报做到11倍!Facebook广告高广告投资回报2023年终极策略密码分享 价值阶梯先卖便宜value低的东西给客户,甚至免费试用,然后慢慢bringupvalue,让它更多的消费。customer就像上楼梯一样。 销售诱饵价值阶梯......
  • FPGA学习笔记001——流水灯
    代码如下:moduleled_flash(//端口列表 Clk50M, //时钟信号 Rst_n, //复位信号 led,);//端口定义 inputClk50M; inputRst_n; output[3:0]led;//led默认为wire类型 reg[24:0]cnt; parameterCNT_MAX=25'd24_999_999; always@(posedgeClk50Morneg......
  • SQL 学习笔记
    查询查询语句的基础模版是select<columns>[as<alias>]from<table>[as<alias>]where<expressions>orderby<expressions>。其中alias是起的别名,方便使用;where用于查找符合条件的行,orderby是排序方式。建表首先createtable<name>as,随后逐行列出selectAas......
  • 学习笔记9
    苏格拉底挑战第六章信号和信号处理一、知识点归纳(一)信号和中断“中断”是从1/0设备或协处理器发送到CPU的外部请求,它将CPU从正常执行转移到中断处理。与发送给CPU的中断请求一样,“信号”是发送给进程的请求,将进程从正常执行转移到中断处理。在讨论信号和信号处理之前,我们先......
  • 学习笔记9
    关于知识点知识点归纳第六章信号和信号处理6.1信号和中断信号:信号是计算机系统中的一个概念,它表示一种特殊的变量或值,用于表示系统中的某些状态或事件。信号可以在程序运行过程中由操作系统或其他程序发送,以指示特定的操作或事件发生。常见的信号有:软中断(软信号):由......
  • 【论文阅读笔记】【OCR-文本识别】 CLIPTER: Looking at the Bigger Picture in Scene
    CLIPTERICCV2023读论文思考的问题论文试图解决什么问题?现有的文本识别方法只关注于局部截取的文本区域,识别模型并没有利用全图的上下文信息,导致其可能对有挑战性的文本的识别效果较差能否以某种方式使识别器利用上globalfeature的信息?文章提出了什么样的解决......