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

系列文章

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

文章目录

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

概述

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

作用

  UML主要由以下几个作用:

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

组成

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

  • 4种事务
    • 结构事务:名词、静态部分、物理元素。
      六、软考·系统架构师——UML建模工具_第1张图片
    • 行为事务:动词、动态部分、行为。
      六、软考·系统架构师——UML建模工具_第2张图片
    • 分组事务:包。
      六、软考·系统架构师——UML建模工具_第3张图片
    • 注释事务:注解。
      六、软考·系统架构师——UML建模工具_第4张图片
  • 3种模型
    • 功能模型:从用户的角度展示系统的功能,包括用例图。
    • 对象模型:采用对象、属性、操作、关联等概念展示系统的结构和基础,包括类图和包图。
    • 动态模型:展示系统的内部行为,包括序列图、活动图、状态图等。

图例

用例图

  用例图是系统的蓝图,用于需求分析阶段。用例图呈现了一些参与者,一些用例,以及它们之间的关系,主要用于对系统功能行为进行建模。如图所示:
六、软考·系统架构师——UML建模工具_第5张图片
  图中表示了用例之间的两种关系:

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

类图

  类图是描述系统中的类,以及各个类之间的关系的静态视图。类图中包括类,接口,依赖、泛化等关系。
六、软考·系统架构师——UML建模工具_第6张图片

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

对象图

  对象图(ObjectDiagram) 展现了某一时刻一组对象以及它们之间的关系,描述了在类图中所建立的事物的实例的静态快照。
六、软考·系统架构师——UML建模工具_第7张图片

包图

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

活动图

  活动图在本质上是一种流程图。活动图着重表现从一个活动到另一个活动的控制流,是内部处理驱动的流程。
六、软考·系统架构师——UML建模工具_第9张图片

状态图

  用来描述一个特定的对象所有可能的状态,以及由于各种事件的发生而引起的状态之间的转移和变化。与活动图不同的是,活动图描述行为的动作,状态图描述行为的结果。
六、软考·系统架构师——UML建模工具_第10张图片

序列图

  序列图由对象、生命线、激活、消息等元素构成,是用来显示参与者如何以一系列顺序的步骤与系统的对象交互的模型。序列图将显示的重点放在消息序列上,强调消息是如何在对象之间被发送和接收的。
六、软考·系统架构师——UML建模工具_第11张图片

通信图(协作图)

  和序列图相似,显示对象间的动态合作关系。协作图建模对象或者角色,以及它们彼此之间是如何通信的。如果强调时间和顺序,则使用序列图;如果强调上下级关系,则选择协作图;这两种图合称为交互图。
六、软考·系统架构师——UML建模工具_第12张图片

构建图(组件图)

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

部署图

  部署图是用来显示系统中软件和硬件的物理架构。从部署图中,可以了解到软件和硬件组件之间的物理关系以及处理节点的组件分布情况。
六、软考·系统架构师——UML建模工具_第14张图片

你可能感兴趣的:(软考,uml,开发语言)