(1·UML,伪代码)
UML
作用
Unified Modeling Language,统一建模语言
可视化图形直观的表示系统结构, 便于开发者、设计师和客户之间的沟通
分类
UML图可分为两大类:
结构型图(静态图)
- 类图(Class Diagram)描述系统的静态结构
- 对象图(Object Diagram) 展示某一时刻的对象实例及其关系
- 组件图(Component Diagram) 描述系统的物理组件及其依赖关系
- 部署图(Deployment Diagram) 展示软件在硬件上的部署方式
- 包图(Package Diagram) 描述系统的模块化组织(包、命名空间)
行为型图(动态图)
- 用例图(Use Case Diagram) 描述系统的功能需求(用户与系统交互)
- 活动图(Activity Diagram) 描述业务流程或算法流程
- 状态图(State Machine Diagram) 描述对象的状态变化
- 顺序图(Sequence Diagram) 展示对象之间的交互(时间顺序)
- 通信图(Communication Diagram) 展示对象之间的协作关系
- 时序图(Timing Diagram) 描述时间约束下的对象交互
UML类图
是面向对象系统建模中最常用的图
基本组件:
类名、属性、方法
可见性修饰符:
- ’+’ 公有(Public)
- ’-‘ 私有(Private)
- ’#’ 受保护(Protected)
关系:
注:图中大雁和雁群的关系画反了,大雁和企鹅不能构成双向关联,企鹅不能拥有气候
- 泛化(Generalization)
- 继承关系
- 实线空三角,箭头指向父类,比如鸟继承动物
- 实现(Realization)
- 是一种类与接口的关系
- 虚线空三角,箭头指向接口,比如大雁实现飞翔
- 关联(Association)
- 是一种拥有的关系,一个类知道另一个类的属性和方法,
- 单向关联:实线箭头,指向被拥有者,比如鸟拥有翅膀,但翅膀不能拥有鸟
- 双向关联:有两个箭头或者没有箭头,比如A拥有B,B拥有A
- 自身关联:箭头指向自己,比如A又有A
- 依赖(Dependency)
- 是一种使用的关系,即一个类的实现需要另一个类的协助
- 虚线箭头,指向被使用者,比如动物依赖于氮气和水
- 聚合(Aggregation
- 是整体与部分的关系,且部分可以离开整体而单独存在
- 实线空菱形,菱形指向整体,比如雁群包含燕子,燕子可以单独存在
- 组合(Composition)
- 是整体与部分的关系,但部分不能离开整体而单独存在
- 实线实心菱形,菱形指向整体,比如鸟包含翅膀,但翅膀不能单独存在
draw.io使用
UML绘图工具之一
- 画板平移:鼠标右键/中键
- 框选:鼠标左键
- 创建:从左侧UML节点模板,拖拽出来 / 直接点击(出现在画板中心)
- 移动节点:在className方框上拖拽 / 框选(拖拽多个)
- 改变节点大小旋转:点击className方框,通过出现的蓝色实心原点缩放,拖拽右上的旋转图标旋转
- 隐藏:节点左上点击-号可以隐藏,+号可以展开
- 编辑:双击text可以编辑
- 添加属性/方法:单击节点的属性/方法,左右会出现箭头,选择添加
- 删除属性/方法:单击节点的属性/方法,按下delete键
- 添加关联:点击空白处取消选择,鼠标悬停在节点上,出现数个空心小圆形在外轮廓上,拖拽添加关联,
- 修改关联:单机关联,右侧样式面板改变关联样式,关联上的蓝色实心原点改变线条位置
- 添加关联节点:点击空白处取消选择,鼠标悬停在节点上,上下左右出现箭头,选择添加
伪代码
伪代码是介于自然语言和编程语言之间的一种描述语言, 不依赖于语法,通过简洁,逻辑清晰,统一的描述,突出算法流程/逻辑结构,让使用不同编程语言的程序员理解思路
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
algorithm: 二分查找
author: ……
date: ……
Input: 有序数组 arr, 目标元素 tar
Output: 目标元素 tar 在数组 arr 中的下标 index
function binary_search(arr, tar)
left <- 0, right <- arr.length - 1
while left <= right do
mid <- (left + right) / 2;
if arr[mid] == tar then
return mid;
else if arr[mid] < tar then
left <- mid + 1;
else
right <- mid - 1;
end if
end while
return -1;
end function
展开
说明信息:作用,作者,时间,输入:Input,输出:Output……
- 规范
- 每一条指令占一行,指令后不跟任何符号
- 注释:
- //C++ 风格的注释
- 算法名称
- 函数(Function) + < funcName > (args……) ,return ……,end function
- 变量:
- 定义:单个字符
- 赋值
- :=
- <-
- =
- 交换:a <-> b
- 运算
- ^ 幂运算
- mod 取模
- and 逻辑与
- or 逻辑或
- not 逻辑非
- xor 逻辑异或
- == 等于
- != 不等于
- / 除号
- ‘*’ 乘号
- ++ 自增
- – 自减
- 分支
- if语句 / if else语句, then,end if
- 循环
- 计数式循环(for循环)+ end for
- 条件式循环(while循环)+ do + end while
- 遍历 for each i in A do ,+ end for
本文由作者按照 CC BY 4.0 进行授权