UML概述

简介: UML概述

什么是UML

UML不是一个程序设计语言

UML不是一个形式化语言

UML统一建模语言是用来设计软件蓝图的可视化建模语言(Booch方法、OMT方法、OOSE方法)

UML描述了一个系统的静态结构和动态行为

UML从不同的角度为系统建模,并形成系统的不同视图(类图、时序图、协作图、状态图)

软件过程

软件危机的主要特征

  1. 软甲开发周期大大超过规定日期
  2. 软件开发成本严重超标
  3. 软件质量难于保证

统一软件过程RUP

是一个开发和维护的过程产品

特点:用例驱动、以架构为中心、采用迭代和增量

四个阶段循环:初始、细化、构造、移交

每个阶段又包括多个迭代过程

UML工具

什么是Rational Rose

是一种工具,它可以在Rose建模中提供建立、视图、修改和操作组件的能力

支持Unified、Booch、OMT标记法

UML的构成

UML的基本构造块

事物:构成模型图的一些基本图示符号,表示一些面向对象的基本概念

关系:基本图示符号之间的关系

图:特定的视角对系统所作的抽象描述

事务时对模型中最具有代表性的成分的抽象;关系把事物结合在一起;图聚集了相关的事物

结构事物

类(class):具有相同属性、方法、关系和语义的一组对象的集合,一个类可以实现一个或多个接口

接口(interface):指类或组件所提供的、可以完成特定功能的一组操作的集合

协作(collaboration):定义了交互的操作,表示一些角色和其他元素一起工作,提供一些合作的动作。一个给定的类可以参与几个协作

用例(use case):定义了系统执行的一组操作,对特定的用户产生可以观察的结果

活动类(active class):对象至少拥有一个进程或线程,这样才能启动控制活动

组件(component):构件是系统中物理的、可替代的部件,实现了一个或多个接口的系统元素

节点(node):节点是在运行时存在的物理元素,表示了一种可计算的资源,它通常至少有一些记忆能力处理能力,一个构件集可以驻留在一个节点内,也可以从一个节点迁移到另一个节点

行为事物

是UML模型的动态部分,是模型中的动词,描述了跨越时间和空间的行为

交互(interaction):是在特定上下文中的一组对象,为共同完成一定的任务而进行的一系列消息交换所组成的动作(一个群体行为或单个操作行为),包括信息、动作序列、对象之间的连接

状态机(state machine):是对象的一个或多个状态的集合

组织事物(分组事物)

是UML模型的组织部分,最主要的分组事物是包(包是把元素组织成组的机制)

辅助事物(注释事物)

是UML模型的解释部分

UML中的关系

关联关系:描述了两个或多个类 之间的结构性关系

泛化关系:定义了一般元素和特殊元素之间的分类关系,分为普通泛化和受限泛化

普通泛化:就是没有给泛化添加约束

受限泛化:可以给泛化关系附加约束条件(多重、不相交、完全和不完全)

依赖关系:描述了类和用例之间的语义关系:其中一个模型元素是独立的,另一个模型元素不是独立的

实现关系:是类元之间的语义关系,在该关系中一个类元描述了另一个类元保证实现的契约

两种地方遇到实现关系:一种是在接口和实现它们的类或构件之间;另一种是在用例和实现它们的协作之间

UML中的图

用例图:用来描述用户的需求,从用户的角度描述系统的功能,并指出各功能的执行者

静态图:类图:用于定义系统中的类,描述类的内部结构和类之间的关系

             对象图:是类图的一个实例,描述了系统在具体时间点上所包含的对象以及各个对象之间的关系

行为图:用来描述系统的动态模型和对象之间的交互关系

             状态图:用来描述类的对象所有可能的状态以及事件发生时状态的转移条件

            活动图:用来描述满足用例要求所要进行的活动以及活动间的约束关系

交互图:用来描述对象之间的交互关系(序列图和协作图可以相互转化

              序列图:描述对象之间的交互顺序,体现对象间消息传递的时间顺序

              协作图:对象之间的合作关系,说明哪些对象之间有消息的传递

实现图:构件图:描述代码构件的物理结构以及各构件之间的依赖关系。一个构件可以使一个资源文件、一个二进制文件或者一个可执行文件

              实施图:描述实际的物理设备以及他们之间的连接关系

 

相关文章
|
NoSQL MongoDB 数据库
MongoDB 解析:灵活文档数据库与 Docker Compose 部署
`MongoDB` 是一款开源、高性能的 `NoSQL` 数据库,以其无模式的文档存储格式(BSON)而著称,广泛应用于众多开源项目,包括但不限于 Yapi 等。它在大规模数据存储和实时数据处理方面表现出色,因此备受青睐。在本文中,我们将深入探讨 `MongoDB` 的特性,并详细阐述如何使用 Docker Compose 轻松部署 `MongoDB` 数据库,为你提供全方位的指导。
650 1
MongoDB 解析:灵活文档数据库与 Docker Compose 部署
|
安全 网络安全 定位技术
华为基础数通知识
了解基本的数通知识,成为更好的自己
|
存储 弹性计算 移动开发
玩机教程:阿里云电脑无影怎么样?怎么使用?
玩机教程:阿里云电脑无影怎么样?怎么使用?
1166 0
|
前端开发 Linux API
无缝融入,即刻智能[一]:Dify-LLM大模型平台,零编码集成嵌入第三方系统,42K+星标见证专属智能方案
【8月更文挑战第3天】无缝融入,即刻智能[一]:Dify-LLM大模型平台,零编码集成嵌入第三方系统,42K+星标见证专属智能方案
无缝融入,即刻智能[一]:Dify-LLM大模型平台,零编码集成嵌入第三方系统,42K+星标见证专属智能方案
|
人工智能 分布式计算 大数据
开源大数据平台 3.0 技术解读
阿里云研究员,阿里云计算平台事业部开源大数据平台负责人王峰围绕新一代的流式湖仓、全面 Serverless 化、更智能的开源大数据等多维度解读开源大数据平台 3.0~
1735 1
开源大数据平台 3.0 技术解读
|
消息中间件 关系型数据库 MySQL
Flink最后一站___Flink数据写入Kafka+从Kafka存入Mysql
Flink最后一站___Flink数据写入Kafka+从Kafka存入Mysql
289 0
|
编解码 开发工具 Android开发
Android平台GB28181设备接入侧如何实现GB28181-2022实时快照
GB/T28181-2022标准中明确了快照的具体要求,包括图像抓拍配置命令的发送与接收流程。源设备需向目标设备发送包含传输路径和会话ID等信息的命令,目标设备完成图像传输后,通过IETF RFC 3428中的MESSAGE方法发送图像抓拍传输完成的通知。图像格式推荐使用JPEG,且分辨率应与主码流相同。技术实现上,如使用大牛直播SDK在Android平台上,可通过创建`SnapShotImpl`类并调用`capture()`方法实现快照功能,之后将JPEG格式的快照文件上传至国标平台。
276 2
|
人工智能 Java 数据库
Google Earth Engine(GEE)——北美当前和预测的气候数据
Google Earth Engine(GEE)——北美当前和预测的气候数据
321 0
|
SQL Oracle Java
SQL中使用NEXTVAL获取序列值
SQL中使用NEXTVAL获取序列值
|
uml C++
UML——实现图(组件图、部署图)
在进行完前面的系统逻辑设计之后,下一步我们就需要定义设计的物理实现,如可执行文件、库、表、文件和文档等。UML的实现图又分为了:组件图和部署图两部分