软件工程——UML简介

软件工具:UML

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

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

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

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

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

应用UML的三种方式

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

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

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

UML 的9种图:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

相关推荐
colus_SEU12 小时前
【编译原理笔记】3.3 Specification of Tokens
笔记·编译原理
笨鸟笃行12 小时前
百日挑战-单词篇(第五天)
学习
特种加菲猫12 小时前
自定义协议、序列化与守护进程:构建可靠后端服务
linux·网络·笔记
被遗忘的旋律.13 小时前
Linux驱动开发笔记(十三)——platform设备驱动
linux·驱动开发·笔记
nnerddboy13 小时前
QT(c++)开发自学笔记:4.Qt 3D简易实现
笔记
九年义务漏网鲨鱼14 小时前
从零学习 Agentic RL(四)—— 超越 ReAct 的线性束缚:深入解析 Tree-of-Thoughts (ToT)
前端·学习·react.js
wan5555cn15 小时前
中国启用WPS格式进行国际交流:政策分析与影响评估
数据库·人工智能·笔记·深度学习·算法·wps
代码哈士奇15 小时前
无界微前端学习和使用
前端·学习
终焉代码16 小时前
【C++】C++11特性学习(1)——列表初始化 | 右值引用与移动语义
c语言·c++·学习·1024程序员节
雾江流16 小时前
LocalDream 2.1.2 |在手机设备上运行SD模型,支持文本到图像生成和图像重绘,无任何限制
软件工程