软件工程——UML简介

软件工具:UML

UML也称为统一建模语言。它提供了一个可视化的建模语言,所谓可视化即通过一些很直观,容易理解的图形化来描述系统。

因此用uml实现的文档形式为:" 图形化+文本描述= 相应文档 "

UML语言很全面,庞大,可以表示各种复杂的问题。这样一个丰富的语言,我们只需要用其20%部分,描述80%的问题,因此学习中,我们只需要掌握常用的基本组成部分,关键是要对这些组成部分了解之后,能够应用他所提供的表示方法,进行分析和设计。

实际上在真正应用里面,活用UML是非常关键的,虽然它是一个语言,但是应用这个语言要根据分析设计里面需要描述设计模型的需要来应用。而不是说死记一些条目,很死板的去应用。只有活用,才能感受到UML语言的威力。

一个比喻:uml中所提供的标准的图符,相当于音乐五线谱里的乐符,学会看乐符才能看得懂乐谱,才能进一步创造音乐。同样,懂得uml中的图符,才能进行系统分析和设计。

应用UML的三种方式

(1)UML作为草图------非正式的、不完整的图(通常是在白板上手绘草图),借助可视化语言的功能,用于探讨问题或解决方案空间的复杂部分。

(2)UML作为蓝图------相对详细的设计图,用于:1)逆向工程,即以UML图的方式对现有代码进行可视化,使其易于理解。2)代码生成(前向工程),一般情况下,代码生成工具使用图生成一些代码,然后由开发者编写并填充其他代码。

(3)UML作为编程语言------用UML完成软件系统可执行规格说明。可执行代码能够被自动生成,但并不像通常一样为开发者所见或修改,但是目前在理论、工具的健壮性和可用性方面仍然处于发展阶段。

UML 的9种图:

用例图:定义了系统的功能需求,它完全是从系统的外部观看系统功能,并不描述系统内部对功能的具体实现。

类图:描述系统的静态结构,表示系统中的类以及类与类之间的关系。

对象图:描述了一组对象以及它们之间的关系,表示类的对象实例。

组件图:描述组件以及它们之间的关系,表示系统的静态实现视图。

具体系统可能划分成不同组件和模块,有哪些模块,组件之间的关系怎样由组件图描述。

例子:在课程注册管理系统中,有两个子系统:收费系统,注册系统。

注册系统分为:课程组件,人员管理组件。

注册系统在课程注册完后,通过接口调用收费系统,将学生相应注册信息传递给收费系统,形成对学生的收费单,通知学生交费。

课程系统又通过接口管理相应课程信息,即课程模块。对于学生教师人员进行管理。通过这两个模块,实现存取相应人员和课程信息,最后实现相应功能。

部署图:反映系统中软件和硬件的物理架构,表示系统运行时的处理节点,以及节点中组件的配置。

时序图和协作图:都表示一组对象之间的动态协作关系。其中时序图反映对象之间发送消息的时间顺序,协作图反映收发消息的对象的结构组织。时序图和协作图是同构的,即两者之间可以相互转换。

状态图:强调同一个类里对象状态变化过程,和相应事件触发过程。

所谓状态,是对对象属性值的一种抽象。各对象之间相互触发(即作用)就形成了一系列的状态变化。我们把一个触发行为称作一个事件。对象对事件的响应,取决于接受该触发的对象当时所处的状态,响应包括改变自己的状态或者又形成一个新的触发行为。

状态有持续性,它占用一段时间间隔。状态与事件密不可分,一个事件分开两个状态,一个状态隔开两个事件。事件表示时刻,状态代表时间间隔。

活动图:反映系统中从一个活动到另一个活动的流程,强调对象间的控制流程。

相关推荐
mango_mangojuice1 天前
C++ 学习笔记(string类)
开发语言·c++·笔记·学习
hetao17338371 天前
2026-01-27~28 hetao1733837 的刷题记录
c++·笔记·算法
望忆1 天前
关于《Contrastive Collaborative Filtering for Cold-Start Item Recommendation》的学习
学习
jtymyxmz1 天前
《Maya2024超级学习手册》3.4.10 实例:制作瓶子模型
学习
蓝田生玉1231 天前
Deepstack论文阅读笔记
论文阅读·笔记
小白郭莫搞科技1 天前
鸿蒙跨端框架Flutter学习:CurvedAnimation曲线动画详解
学习·flutter·harmonyos
淬炼之火1 天前
基于Docker Desktop 和 Ubuntu 在 Windows上部署轻量化大模型(Qwen-LLM)
笔记·ubuntu·docker·语言模型·容器
AI视觉网奇1 天前
Delaying 20 processes from spawning due to memory pressure
笔记·学习·ue5
2501_944934731 天前
高职学历从事运营的现状分析
学习
myloveasuka1 天前
分离指令缓存(I-Cache)和数据缓存(D-Cache)的原因
笔记·缓存·计算机组成原理·硬件