软件工程-面向对象-类图
本文梳理了面向对象类图的结构、六大类间关系(依赖、关联、泛化、实现、聚合、组合),并给出装饰器模式的核心结构与代码示例,方便快速掌握面向对象建模与设计模式考点。
本文梳理了面向对象类图的结构、六大类间关系(依赖、关联、泛化、实现、聚合、组合),并给出装饰器模式的核心结构与代码示例,方便快速掌握面向对象建模与设计模式考点。
UML 用例图是软件需求分析中十分常用的工具,它主要用来表示参与者与系统功能之间的联系。本文将围绕用例图的基本元素、各类关系以及实际应用进行介绍,帮助我们快速掌握系统功能与交互逻辑。
本文梳理了软件概要设计的核心任务,重点讲解UML活动图的要素、作用、绘制要点及应用场景,帮你快速掌握流程建模与系统结构设计的关键知识。
概要设计的核心目标是将需求分析阶段的用例图,转化为软件结构与数据结构:
活动图是UML中用于描述系统动态行为的图,主要特点包括:
| 要素 | 符号/形态 | 作用说明 |
|---|---|---|
| 动作(Activity) | 圆角矩形 | 代表原子操作,如发送消息、数学运算、对象创建等(例:x=5) |
| 动作流(转移) | 带箭头的直线 | 表示动作间的转换,箭头指向转入方向(例:下订单 → 生成订单) |
| 开始/终止 | 实心圆/环形圆 | 标记业务流程的起点与终点 |
| 分叉与汇合 | 粗黑横线 | 分叉:将动作流拆分为多个并发分支;汇合:同步并发分支,共同完成事务 |
| 判断节点(分支) | 菱形 | 进行逻辑判断,生成多个控制流,需在箭头上附加控制条件 |
| 泳道 | 垂直/水平分区 | 划分不同角色/对象的职责边界(例:学生、监考老师) |
日常起床流程
graph TD
A[看表] --> B{时间到了吗?}
B -- 否 --> C[继续睡觉]
B -- 是 --> D[起床]
D --> F[同时做]
F --> G[洗脸]
F --> H[刷牙]
F --> I[热牛奶]
G --> J[汇合]
H --> J
I --> J
J --> K[吃早餐]
K --> L[出门]
学生进场考试流程
graph TD
subgraph 学生
A[进入考场]
B[对号入座]
C[等待试卷]
D[开始答题]
end
subgraph 监考老师
E[检查证件]
F[发放试卷]
end
A --> B
B --> E
E --> F
F --> C
C --> D
x>0、x=0)。本文
classDiagram
class 类A
class 类B
class 父类
class 子类
class 接口
class 实现类
class 整体
class 部分
class 班级
class 学生
class 人
class 器官
%% 1. 关联关系(长期持有)
类A --> 类B : 单向关联
%% 2. 依赖关系(临时使用)
类A ..> 类B : 依赖
%% 3. 泛化 / 继承
父类 <|-- 子类 : 继承
%% 4. 实现 / 接口
接口 <|.. 实现类 : 实现
%% 5. 聚合关系(可分离)
整体 o-- 部分 : 聚合
%% 6. 组合关系(不可分离)
整体 *-- 部分 : 组合
%% 真实案例
班级 o-- 学生 : 聚合(可分离)
人 *-- 器官 : 组合(不可分离)
UML类图通过类、属性、方法和泛化、实现、依赖、关联、聚合、组合六种关系,清晰描述系统静态结构,是软件分析设计与编码的核心工具。
状态图是描述单个对象生命周期内所有状态及触发状态转移的事件、动作的 UML 动态视图,通过初态、终态、普通状态与带条件的转移清晰展示对象行为变化。
stateDiagram-v2
[*] --> 可出借 : 图书入库
可出借 --> 预约 : 预定
预约 --> 可出借 : 取消预定/预定过期
可出借 --> 借出 : 借出
借出 --> 可出借 : 归还
可出借 --> 下架 : 破损/丢失
下架 --> [*] : 出库
本文介绍程序流程图(程序框图)是用图形符号直观描述工作步骤与逻辑顺序的图示方法,涵盖开始 / 结束、处理、输入输出、判断、流向等基础符号及五种基本控制结构,并通过比较三数大小、登录系统实例说明其应用,能清晰表达逻辑、帮助理解。
这是程序设计的可视化基础,核心符号与结构如下:
| 符号形状 | 名称 | 作用描述 |
|---|---|---|
| 圆角矩形 | 开始/结束标志 | 表示流程的起点或终点,内部写“开始”或“结束” |
| 矩形 | 活动/执行标志 | 表示一个具体的处理步骤,内部写操作说明(如“输入a,b,c”“输出a”) |
| 平行四边形 | 输入/输出标志 | 表示数据的输入或输出操作(如“输入用户名和密码”) |
| 菱形 | 判断标志 | 表示条件分支点,内部写判断条件(如“a>b且a>c?”),结果为“是/否”两条路径 |
| 箭头 | 流线标志 | 表示步骤的执行顺序和流程方向 |
五种基本控制结构:
功能:输入三个数,输出其中的最大值。
逻辑步骤:
a>b 且 a>c:b>c:flowchart TD
A([开始]) --> B[输入a,b,c]
B --> C{a > b 且 a > c?}
C -- 是 --> D[输出最大值a]
C -- 否 --> E{b > c?}
E -- 是 --> F[输出最大值b]
E -- 否 --> G[输出最大值c]
D --> H([结束])
F --> H
G --> H
对应代码逻辑(伪代码):1
2
3
4
5
6
7input a, b, c
if a > b and a > c:
print(a)
elif b > c:
print(b)
else:
print(c)
功能:模拟用户登录验证流程。
flowchart TD
A([开始]) --> B[输入用户名、密码]
B --> C{用户是否存在?}
C -- 否 --> D[提示:用户不存在,去注册]
D --> B
C -- 是 --> E{账号密码是否正确?}
E -- 否 --> F[提示:用户名或密码错误]
F --> B
E -- 是 --> G[进入系统主界面]
G --> H[执行操作/退出系统]
H --> I([结束])核心特点: