软件设计师:11-结构化开发与UML

结构化开发(3-4分)

一、模块化


二、耦合(背)





三、内聚(背)







四、设计原则(背)





五、系统文档


六、数据流图

数据流的起点或终点必须有一个是加工








判断依据:

1、数据流的两端必须有一个是加工

2、加工最少要有一个输入数据流和一个输出数据流

3、数据流名称在上午题中不能重名




七、数据字典(外部实体不在数据字典中)






八、杂题



















UML(3-4分)

一、UML概念

二、UML事物


三、关系(依关泛实)



3.1、依赖关系

3.2、实现关系

实现可以理解为实现接口

3.3、泛化关系

父类泛化子类 泛化可以理解为继承类

例如:动物 泛化出猫和狗 人可以泛化出学生和教师等

3.4、关联关系(侧重"拥有"关系,依赖侧重于"使用"关系)

一条直线指向一个实心的菱形,那就是组合关系,整体消失了,部分也不存在

聚集:聚合、组合组成
聚合 :部分和整体的生命周期不一致,整体消失了,部分仍然存在,部分可以脱离整体存在

(例如1:学生(部分)班级(整体) 班级为202班,如果这个班的学生毕业了,学生是不会消失的,但是这个班级不会消失

例如2:员工和公司,公司破产了不存在了,但是员工是不会消失的,会找另外一家公司入职)
组合 :部分和整体的生命周期一致,整体消失,部分也消失,部分不能脱离整体存在

(例如1:大脑(部分)人(整体)如果人不存在了,那么他的大脑也不存在 例如2:翅膀和鸟,如果鸟不存在,翅膀也不存在)

单向关联:一条有方向的实线 鱼依赖于水,但是水不依赖鱼,人依赖氧气,氧气不依赖人(一直都是强关联)

关联名:鱼"需要"(需要就是关联名)水

关联类:多对多关系无法标识唯一记录的时候,就增加一个关联类,关联起来,比如学生(借阅)图书 ,加上借阅时间就可以唯一标识一条记录(所以借阅时间就是关联类)

3.5、真题










四、关联多重度

单向关联跟依赖差不多,不过单向关联的依赖性更强一点

类A的一个实例可以对应多少个类B的实例

单向关联:一条有方向的实线 鱼依赖于水,但是水不依赖鱼,人依赖氧气,氧气不依赖人(一直都是强关联)

关联名:鱼"需要"(需要就是关联名)水

关联类:多对多关系无法标识唯一记录的时候,就增加一个关联类,关联起来,比如学生(借阅)图书 ,加上借阅时间就可以唯一标识一条记录(所以借阅时间就是关联类)



UML图

一、类图












二、对象图


三、用例图


3.1、包含关系(用例和用例之间的关系)

一个用例包含另一个用例 虚线的一个箭头---------->

指向分解出来的用例
把一个复杂的步骤分解为较小的步骤

比如说参与者是图书管理员,用例是(删除图书)和(修改图书)的时候必须得先(查询图书)

A就是删除或修改图书 B就是查询图书 A包含B

3.2、扩展关系(指向基础用例 用例和用例之间的关系)

用一个用例(可选)扩展另一个用例(基本例)的功能,将一些常规的动作放在一个基本用例中,将可选的或只在特定条件下才执行的动作放在它的扩展用例中。表示符号:<>

一个用例执行的时候可能会发生一些特殊情况(比如:正常去食堂吃饭,饭卡余额充足的时候直接刷卡扣余额,但是当余额不足的时候就无法吃饭,得去充值后才能正常就餐),这个特殊情况就是扩展关系。或者存在可选情况(比如去买苹果,如下图)

3.3、泛化关系(指向父用例)

继承关系,子用例有特别功能

3.4、真题


四、交互图


4.1、序列图(顺序图)





参考学习序列图

指向Account类对象的箭头才是Account的方法,而不是指出去的箭头

这里上面的小人和圆圈都是指的对象,我一开始以为圆圈是用例,序列图是对一个用例进行详细的过程分解,所以是一个用例多个对象

4.2、通信图(协作图)








五、状态图



5.1、状态

对象的状态是指在这个对象的生命期中的一个条件或状况,在此期间对象将满足某些条件、执行某些活动,或等待某些事件

5.1.1 状态图中的事务及解释
5.1.2 状态的可选活动表
5.1.3 状态图举例

对象的状态图

网上银行登录系统

5.2、事件

5.3、真题







迁移由事件触发

六、活动图








七、构件图(组件图)






八、部署图



九、UML图总结





十、图展示

类图

对象图

用例图

序列图

通信图

状态图

活动图

构件图

部署图

包图

十一、杂题





相关推荐
Next_Tech_AI14 分钟前
别用 JS 惯坏了鸿蒙
开发语言·前端·javascript·个人开发·ai编程·harmonyos
chillxiaohan18 分钟前
GO学习记录——多文件调用
开发语言·学习·golang
2301_8223663522 分钟前
C++中的命令模式变体
开发语言·c++·算法
一刻钟.24 分钟前
C#高级语法之线程与任务
开发语言·c#
追逐梦想的张小年39 分钟前
JUC编程03
java·开发语言·idea
派葛穆40 分钟前
Python-PyQt5 安装与配置教程
开发语言·python·qt
小乔的编程内容分享站1 小时前
记录使用VSCode调试含scanf()的C语言程序出现的两个问题
c语言·开发语言·笔记·vscode
toooooop81 小时前
php BC MATH扩展函数计算精度-第三个参数
开发语言·php
蓁蓁啊1 小时前
C/C++编译链接全解析——gcc/g++与ld链接器使用误区
java·c语言·开发语言·c++·物联网
weixin_307779131 小时前
C#实现两个DocumentDB实例之间同步数据
开发语言·数据库·c#·云计算