系列文章

一、程序员进阶架构师的基础知识【计算机基础】
二、程序员进阶架构师的基础知识【操作系统】
三、程序员进阶架构师的基础知识【计算机网络基础】
四、程序员进阶架构师的专业知识【软件工程基础】
五、程序员进阶架构师的专业知识【UML建模工具】
六、程序员进阶架构师的专业知识【系统分析】
七、程序员进阶架构师的专业知识【系统设计】
八、程序员进阶架构师的专业知识【架构设计】
九、程序员进阶架构师的专业知识【架构质量及评估】
十、程序员进阶架构师的专业知识【软件测试及维护】

文章目录

  • 系列文章
  • 概述
  • 作用
  • 组成
  • 图例
    • 用例图
    • 类图
    • 对象图
    • 包图
    • 活动图
    • 状态图
    • 序列图
    • 通信图(协作图)
    • 构建图(组件图)
    • 部署图

概述

  统一建模语言(Unified Modeling Language,UML)是一种为面向对象系统的产品进行说明、可视化和编制文档的一种标准语言,是非专利的第三代建模和规约语言。
  UML是在消化、吸收、提炼至今存在的所有软件建模语言的基础上提出的,集百家之所长,它是软件建模语言的集大成者。

作用

  UML主要由以下几个作用:

  • 为软件系统建立可视化模型:基于UML的可视化模型,使系统结构直观、易于理解;使用UML进行软件系统的模型不但有利于系统开发人员和系统用户的交流,还有利于系统维护。
  • 为软件系统建立构件:UML不是面向对象的编程语言,但它的模型可以直接对应到各种各样的编程语言。例如,它可以使用代码生成器工具将UML模型生成C++,XML,DTD,JAVA, Visual basic等语言的代码,或使用反向生成器工具将程序源代码转换为UML。
  • 为软件系统建立文档:UML可以为系统的体系结构及其所有细节建立文档。不同的UML模型图可以作为项目不同阶段的软件开发文档。

组成

  UML中有4种事务及3种模型构成:

  • 4种事务

    • 结构事务:名词、静态部分、物理元素。
    • 行为事务:动词、动态部分、行为。
    • 分组事务:包。
    • 注释事务:注解。
  • 3种模型
    • 功能模型:从用户的角度展示系统的功能,包括用例图。
    • 对象模型:采用对象、属性、操作、关联等概念展示系统的结构和基础,包括类图和包图。
    • 动态模型:展示系统的内部行为,包括序列图、活动图、状态图等。

图例

用例图

  用例图是系统的蓝图,用于需求分析阶段。用例图呈现了一些参与者,一些用例,以及它们之间的关系,主要用于对系统功能行为进行建模。如图所示:

  图中表示了用例之间的两种关系:

  • 包含关系:当两个或多个用例中共用一组相同的动作,这时可以将这组相同的动作抽出来作为一个独立的子用例,供多个基用例所共享。include关系在用例图中使用带箭头的虚线表示(在线上标注<>),箭头从基用例指向子用例
  • 扩展关系:对基用例的扩展,基用例是一个完整的用例,即使没有子用例的参与,也可以完成一个完整的功能。 extend关系在用例图中使用 带箭头的虚线表示(在线上标注<>),箭头从子用例指向基用例。

类图

  类图是描述系统中的类,以及各个类之间的关系的静态视图。类图中包括类,接口,依赖、泛化等关系。

  • 使用类图的情况:对系统的静态设计建模、对简单的协作建模、对逻辑数据库模式建模
  • 类的分类
    • 实体类:来源于需求说明中的名词,如学生、商品等。它们通常需要保存在永久存储体中,一般使用数据库表或文件来记录。
    • 控制类:体现应用程序的执行逻辑,提供相应的业务操作,将控制类抽象出来可以降低界面和数据库之间的耦合度。
    • 边界类:对外部用户与系统之间的交互对象进行抽象, 主要包括界面类,如对话框、窗口、菜单等。
  • 类之间的关系(如上图)
    • 依赖(Dependency)关系:是一种使用的关系, 即一个类的实现需要另一个类的协助。如上图UserMobile类的接口需要使用User类。在UML中,依赖关系用带箭头的虚线表示,由依赖的一方指向被依赖的一方。
    • 泛化(Generalization)关系:继承关系的反关系,用于描述父类与子类之间的关系,父类又称作基类或超类,子类又称作派生类。在UML中,泛化关系用带空心三角形的直线来表示。
    • 实现(Implementation)关系:在UML中,类与接口之间的实现关系用带空心三角形的虚线来表示。
    • 关联(Association)关系:关联是类之间的结构关系,是一种拥有的关系,可以是双向的,也可以是单向的。双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头。
      • 聚合(Aggregation)关系 :聚合是关联关系的一种特例,他体现的是整体与部分、拥有的关系,此时整体与部分之间是可分离的,在UML中,聚合关系用带空心菱形的直线表示。
      • 组合(Composition)关系:也称为强聚合,此时整体与部分是不可分的。在UML中,组合关系用带实心菱形的直线表示。

对象图

  对象图(ObjectDiagram) 展现了某一时刻一组对象以及它们之间的关系,描述了在类图中所建立的事物的实例的静态快照。

包图

  包图是一种维护和描述系统总体结构的模型的重要建模工具,通过对包中各个包以及包之间关系的描述,展现出系统的模块与模块之间的依赖关系。一个包图可以由任何一种UML图组成,通常是UML用例图或是UML类图。

活动图

  活动图在本质上是一种流程图。活动图着重表现从一个活动到另一个活动的控制流,是内部处理驱动的流程。

状态图

  用来描述一个特定的对象所有可能的状态,以及由于各种事件的发生而引起的状态之间的转移和变化。与活动图不同的是,活动图描述行为的动作,状态图描述行为的结果。

序列图

  序列图由对象、生命线、激活、消息等元素构成,是用来显示参与者如何以一系列顺序的步骤与系统的对象交互的模型。序列图将显示的重点放在消息序列上,强调消息是如何在对象之间被发送和接收的。

通信图(协作图)

  和序列图相似,显示对象间的动态合作关系。协作图建模对象或者角色,以及它们彼此之间是如何通信的。如果强调时间和顺序,则使用序列图;如果强调上下级关系,则选择协作图;这两种图合称为交互图。

构建图(组件图)

  用来建模软件的组件及其相互之间的关系,这些图由构件标记符和构件之间的关系构成。在组件图,构件是软件单个组成部分,它可以是一个文件,产品、可执行文件和脚本等。使用构件图的思想是复用。就像是我们盖房子,当房子的大体框架建好之后,剩下的门和窗户家具之类的直接拿来安装上即可,不需要再重新制作。

部署图

  部署图是用来显示系统中软件和硬件的物理架构。从部署图中,可以了解到软件和硬件组件之间的物理关系以及处理节点的组件分布情况。

六、软考·系统架构师——UML建模工具相关推荐

  1. 软考系统架构师教材推荐和学习方法

    软考系统架构师教材推荐<系统架构设计师教程>(清华大学出版社) 学习方法建议 上午题经验分享 复习教材+做题 教程看不懂的可以去网上找视频结合一起看,书本知识复习完后做题. 上午题只有多做 ...

  2. 2023年软考系统架构师新版专栏导读

    目录 新的改变 软考是不是内卷? 老版教材删减章节 建议学习计划 专栏更文列表 新的改变 软考今年改版啦 高级系统架构师考试在2022年12月底出了第二版教材,比第二版多出来140页,虽然看起来好像更 ...

  3. 软考系统架构师倒计时第6天

    码云参考资料: https://gitee.com/lxmuyu/soft_examination 整理到2018资料下载: 迅雷网盘链接:https://pan.xunlei.com/s/VNFbm ...

  4. 软考系统架构师倒计时第2天

    软考系统架构师倒计时第2天 分片透明性:是指用户不必关心数据是如何分片的,它们对数据的操作在全局关系上进行,即如何分片对用户是透明的,因此,当分片改变时应用程序可以不变.分片透明性是最高层次的透明性, ...

  5. 九、软考·系统架构师——系统架构质量及评估

    系列文章 一.程序员进阶架构师的基础知识[计算机基础] 二.程序员进阶架构师的基础知识[操作系统] 三.程序员进阶架构师的基础知识[计算机网络基础] 四.程序员进阶架构师的专业知识[软件工程基础] 五 ...

  6. 十、软考·系统架构师——软件测试及维护

    一.程序员进阶架构师的基础知识[计算机基础] 二.程序员进阶架构师的基础知识[操作系统] 三.程序员进阶架构师的基础知识[计算机网络基础] 四.程序员进阶架构师的专业知识[软件工程基础] 五.程序员进 ...

  7. 三、软考·系统架构师——计算机网络基础

    系列文章 一.程序员进阶架构师的基础知识[计算机基础] 二.程序员进阶架构师的基础知识[操作系统] 三.程序员进阶架构师的基础知识[计算机网络基础] 四.程序员进阶架构师的专业知识[软件工程基础] 五 ...

  8. 五、软考·系统架构师——系统分析

    系列文章 一.程序员进阶架构师的基础知识[计算机基础] 二.程序员进阶架构师的基础知识[操作系统] 三.程序员进阶架构师的基础知识[计算机网络基础] 四.程序员进阶架构师的专业知识[软件工程基础] 五 ...

  9. 软考系统架构师、信息系统项目管理师、系统分析师、系统规划与管理师和网络规划师资料大汇总

    公众号此文章地址:https://mp.weixin.qq.com/s/ojzMFODodAnKkhNSmLg1kg 前言 在软考交流群的几天,很多准备2021年软考的同学已经开始准备整理复习资料了. ...

  10. 一、软考·系统架构师——计算机基础

    系列文章 一.程序员进阶架构师的基础知识[计算机基础] 二.程序员进阶架构师的基础知识[操作系统] 三.程序员进阶架构师的基础知识[计算机网络基础] 四.程序员进阶架构师的专业知识[软件工程基础] 五 ...

最新文章

  1. ue4商城资源 Nature Cave Cliff 自然洞崖景观场景
  2. mysql慢SQL探测与优化
  3. 使用canvas实现数据可视化
  4. c++11-explicit
  5. MongoDB 初学
  6. 【caffe】ubuntu配置matlab接口----matcaffe
  7. error: storage class specified for parameter问题-转
  8. UI自动化:单元测试框架
  9. 【Maven】1.使用myecplise配置自己的Maven配置,不使用默认的maven
  10. 互联网数据分析--指标和维度
  11. sql概念模型和逻辑模型
  12. springboot冷链物流信息调度系统毕业设计源码210951
  13. 嵌入式学习⑤——STM32嵌入式应用系统设计
  14. Android中上下文菜单选项--ContextMenu
  15. 关于UCOS任务卡死的原因分析
  16. 创客学院知识巩固-04网络
  17. VirtualHook: 基于VirtualApp的Java代码hook工具
  18. 淘宝直播丨900W粉店铺夺行业周榜Top1,商家自播增长要素全解析
  19. 基于MFC获得主板序列号
  20. 葡萄牙—C罗:实力派的蜕变

热门文章

  1. Win7 64位系统下Auto CAD 2010注册激活,出现警告:Make sure you can write to current directory...
  2. STM32制作flash烧写器 spi flash
  3. stm32L1xx系列低功模式配置+STOP模式+RTC唤醒
  4. 公文写作神器 v2.8.1.20 去更新去广告版
  5. 【干货分享】用AI工具设计一款吸引人的字体效果
  6. UML之旅店预订系统
  7. Maxon伺服驱动EPOS2 24/5 配置
  8. 乐优购物学习笔记(5)
  9. “我们检测到您之前将硬盘移动到新的DS3617xs。如果您要现在还原数据和设置,请单击“还原” 解决办法
  10. stvd使用c语言编程,STVD使用教程.pdf