UML学习+使用入门+心得(一)

本文介绍了UML(统一建模语言)的基础知识及其在软件开发中的应用。UML是一种标准化的建模语言,用于描述软件系统的结构和行为。文章详细阐述了UML的概念、组成部分、图类型及应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

UML基础

UML概念

概念解释:统一建模语言(Unified Modeling Language,UML)是一种为面向对象系统的产品进行说明、可视化编制文档的一种标准语言,是非专利的第三代建模和规约语言。UML是面向对象设计的建模工具,独立于任何具体程序设计语言

  • UML立足于对事物的实体、性质、关系、结构、状态和动态变化过程的全程描述和反映。UML可以从不同角度描述人们所观察到的软件视图,也可以描述在不同开发阶段中的软件的形态。UML可以建立需求模型、逻辑模型、设计模型和实现模型等,但UML在建立领域模型方面存在不足,需要进行补充。

  • UML立足于对事物的实体、性质、关系、结构、状态和动态变化过程的全程描述和反映。UML可以从不同角度描述人们所观察到的软件视图,也可以描述在不同开发阶段中的软件的形态。UML可以建立需求模型、逻辑模型、设计模型和实现模型等,但UML在建立领域模型方面存在不足,需要进行补充。

  • 作为一种建模语言,UML有严格的语法和语义规范。UML建立在元模型理论基础上,包括4层元模型结构,分别是基元模型、元模型、模型和用户对象。4层结构层层抽象,下一层是上一层的实例。UML中的所有概念和要素均有严格的语义规范。

  • UML采用一组图形符号来描述软件模型,这些图形符号具有简单、直观和规范的特点,开发人员学习和掌握起来比较简单。所描述的软件模型,可以直观地理解和阅读,由于具有规范性,所以能够保证模型的准确、一致。

UML作用与价值

为软件系统建立可视化模型

UML符号具有良好的语义,不会引起歧义;基于UML的可视化模型,使系统结构直观、易于理解;使用UML进行软件系统的模型不但有利于系统开发人员和系统用户的交流,还有利于系统维护。模型是系统的蓝图,它可以对开发人员的规划进行补充,模型可以帮助开发人员规划要建的系统。有了正确的模型就可以实现正确的系统设计,保证用户的要求得到满足,系统能在需求改变时站得住脚。对于一个软件系统,模型就是开发人员为系统设计的一组视图。这组视图不仅描述了用户需要的功能,还描述了怎样去实现这些功能。

为软件系统建立构件

UML不是面向对象的编程语言,但它的模型可以直接对应到各种各样的编程语言。例如,它可以使用代码生成器工具将UML模型转换为多种程序设计语言代码,如可生成C++,XML,DTD,JAVA, Visual basic等语言的代码,或使用反向生成器工具将程序源代码转换为UML;甚至还可以生成关系数据库中的表。

为软件系统建立文档

UML可以为系统的体系结构及其所有细节建立文档。不同的UML模型图可以作为项目不同阶段的软件开发文档。

关键名词概念

●模型元素
代表面向对象中的类、对象、消息和关系等概念,是构成图的最基本的常面向对象系统分析与设计方法用概念。
●图
是模型元素集的图形表示,通常是由弧(关系)和顶点(其他模型元素)相互连接构成的。 [2]
●视图
是表达系统的某一方面的特征的UMI,建模元素的子集,由多个图构成,是在某一个抽象层上,对系统的抽象表示。
●通用机制
用于表示其他信息,比如注释、模型元素的语义等。另外,UMI。还提供扩展机制,使UML语言能够适应一个特殊的方法(或过程),或扩充至一个组织或用户。

软件模型与建模与算法

软件模型

◎什么是模型?模型是对现实世界的形状或状态的抽象模拟和简化。
◎什么是软件模型?软件模型是对软件代码等文件的抽象模拟和简化。

建模

为什么要建模?最简单的理由:为了能够更好地理解正在开发的系统。通过建模,可以达到四个目的:
1、有助于按照需求对系统进行可视化的分析
2、能够系统的结构或行为
3、给出了知道构造系统的模板
4、对做出的决策进行文档化

建模与算法

◎什么是算法?算法是针对某一复杂计算或逻辑问题给出当下最优解。
◎算法与软件的关系?软件提供业务应用功能;算法针对功能中的某一问题,提供算法接口;软件向算法提供问题的输入(已知条件),算法向软件提供问题的输出(计算结果)。
◎算法模型与UML模型的关系?这是两种不同的概念。
●算法模型是针对复杂计算或逻辑问题中的对象建立数学模型。
例如:
碰撞算法:车辆的碰撞预警模型
地图匹配算法:车辆位置(轨迹)与地图的拓扑路径信息的匹配模型
自车识别算法:车辆位置与多目标信息中的匹配模型
●UML模型是指软件开发全部过程、活动和任务的结构框架。软件模型能清晰、直观地表达软件开发全过程,明确规定了要完成的主要活动和任务,用来作为软件项目工作的基础。
例如:
算法部分UML模型:是把算法中涉及到的问题,提出的解决方案的代码模型。
应用层UML模型:是把业务中涉及到的功能,提出的解决方案的代码模型。

UML视图与图

视图

UML可以分为七种:
分别为静态、用例、交互、模型管理、物理、互动、活动、状态机。他们之间存在一定的关联。是从多个角度描述一个工程。
下图为详细描述七种视图的概念、作用、组成

静态视图

表示形式:类图
概念:对各种概念和系统内部概念进行建模
基本元素:类元与类元之间的关系
作用:1.UML基础 2.概念对象的基本结构 3.建立其他动态视图的基础

用例视图

表示形式:用例图
概念:参与者所能观察和使用到的系统功能模型图
作用:1.标识出系统中的用例与参与者之间的联系
2.确定什么样的参与者执行了那个用例

交互视图

表示形式:序列图、协作图
概念:描绘系统各种角色或功能交互的模型
以独立对象为中心,描述对象内部深层次的行为
以相互作用的对象为中心,描述一组对象的整体行为
作用:显示跨越多个对象的系统控制流程

物理视图(对应用自身的结构建模)

表现形式:实现图、部署图
概念: 实现图:将系统中可重用的块包装,成为具有可替代的物理构件
部署图:运行时计算资源的物理部署
作用:为了系统的可重用行和可操作性

状态机视图

表现形式:状态图
概念: 一个对象对自身所有可能处于的状态的模型图
作用: 表示一个对象对自身所有可能处于的状态

活动视图

表现形式:活动图
概念: 对计算流程和工作流程建模
作用: 表示计算过程中所处的各种状态

模型管理

概念:对模型自身组织进行建模
作用:表示包与包之间依赖关系

用例图(use case diagrams)

【概念】描述用户需求,从用户的角度描述系统的功能
【描述方式】椭圆表示某个用例;人形符号表示角色
【目的】帮组开发团队以一种可视化的方式理解系统的功能需求
【用例图】

静态图

类图(class diagrams)

【概念】显示系统的静态结构,表示不同的实体是如何相关联的
【描述方式】三个矩形
【目的】表示一个逻辑类或实现类,逻辑类通常是用户的业务所涉及的事物;实现类是程序员处理的实体
【类图】

对象图(object diagrams)

【概念】类图的一个实例,描述系统在具体时间点上所包含的对象以及各个对象的关系
【对象图】

交互图

序列图(顺序图)

【概念】描述对象之间的交互顺序,着重体现对象间消息传递的时间顺序
【描述方式】横跨图的顶部,每个框表示每个类的实例或对象;类实例名称和类名称使用冒号分开
【目的】显示流程中不同对象之间的调用关系,还可以显示不同对象的不同调用。

协作图(collaboration diagrams)

【概念】描述对象之间的合作关系,侧重对象之间的消息传递

行为图

状态图(statechart diagrams)

【概念】描述对象的所有状态以及事件发生而引起的状态之间的转移
【描述方式】
起始点:实心圆
状态之间的转换:使用开箭头的线段
状态:圆角矩形
判断点:空心圆
一个或多个终止点:内部包含实心圆的圆
【目的】表示某个类所处的不同状态以及该类在这些状态中的转换过程

活动图

【概念】描述满足用例要求所要进行的活动以及活动时间的约束关系
【描述方式】
起始点:实心圆
活动:圆角矩形
终止点:内部包含实心圆的圆
泳道:实际执行活动的对象
【目的】表示两个或多个对象之间在处理某个活动时的过程控制流程
【活动图】

状态图和活动图的区别:

实现图

构件图(component diagrams)

【概念】描述代码构件的物理结构以及各构件之间的依赖关系
【描述方式】构件
【目的】提供系统的物理视图,根据系统的代码构件显示系统代码的整个物理结构
【构件图】

部署图(deployment diagrams)

【概念】系统中硬件的物理体系结构
【描述方式】
三维立方体表示部件
节点名称位于立方体上部
【目的】显示系统的硬件和软件的物理结构
【部署图】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值