软件设计师笔记(一)-基础要点

本文内容来自笔者学习zst 留下的笔记,虽然有点乱,但是哥已经排版过一次,将就着看吧,查缺补漏,希望大家都能通过,记得加上免费的关注!谢谢!csdn贴图真的很废人!

文章编辑于:2024-5-12 13:43:24

目录

一、专利相关

二、面向对象

2.1. 面向对象的三大特征

2.2. 面向对象设计原则

2.3. 面向对象设计时包含的主要活动

2.4. 面向对象程序测试

三、UML

3.1 UML 中的图

3.1.1 类图

3.1.2 用例图

3.1.3 序列图

3.1.4 通信图

3.1.5 状态图

3.1.6 活动图

3.1.7 构件图

3.1.8 部署图

3.2 总结

四、设计模式

五 、操作系统

5.1 PV操作

5.2 死锁

5.3 磁盘调度

六、结构化开发

6.1 耦合种类

6.2 内聚

6.3 数据字典

七、软件工程

7.1 CMM软件能力成熟度模型

7.2 CMMI

7.3 开发模型

7.4 敏捷方法

7.5 测试相关

7.6 系统维护

7.7 系统维护性

7.8 COCOMO

7.9 质量模型

八、数据结构

8.1 矩阵存储

8.2 二叉树性质

8.3 遍历方式

8.4 二叉排序树

8.5 最优二叉树

8.6 最优二叉树的构造

8.7 图

8.8 有向图和无向图

8.9 深度优先和广度优先

8.10 归并排序

九、编译器相关

9.1 语法,词法等相关

9.2 中间代码

十、数据结构相关

十一、杂项目

11.1 浮点数的范围表示


一、专利相关

知识要点:

  1. 发表权是有时间指,人死亡后+50年

  2. 在公司开发的相关,员工只有署名权,其他都属于公司

  3. 委托开发,如果无相关委托书指明,软件相关著作权都属于受委托方

  4. 专利:不管谁先用,谁先申请就谁

  5. 商标:同一天申请,谁先使用,归谁

二、面向对象

2.1. 面向对象的三大特征

封装,继承,多态

类对象之前通过消息传递

多态种类:

静态绑定:编译时候进行的,叫做静态绑定

动态绑定:调用代码时候才进行,叫做动态绑定;

重载:表示同一个类中不同成员函数之间的关系,载要求函数名相同,但是参数列表必须不同

覆盖(重置):子类和父类不同成员函数的关系,要求函数名、参数列表、返回值必须相同

2.2. 面向对象设计原则

  • 单一责任原则:针对一个类而言,仅有一个引起变化的原因

  • 开放-封闭原则:扩展开放,修改关闭

  • 里氏替换原则:父类出现的地方,子类一定能够出现

  • 依赖倒置原则:依赖于抽象,而不依赖于细节(实现)

  • 接口分离原则:依赖于抽象,而不依赖于具体

  • 共同重用原则:重用了包中的一个类,那么重用包中所有的类

  • 共同封闭原则:一个变化多一个包产生影响,对该包中所有的产生影响,而对其他不造成影响

面向对象分析时候,执行的活动顺序

认定对象,组织对象,描述对象间的相互作用,确定对象操作、定义对象的内部信息

2.3. 面向对象设计时包含的主要活动

识别类及对象,定义属性,定义服务,识别关系,识别包

2.4. 面向对象程序测试

可以分为4个层次进行

abstract 抽象

  • 算法层

  • 类层

  • 模板层

  • 系统层

  • 静态方法只能访问静态成员变量;类的静态成员变量,在该类的对象将共享该静态成员变量。

三、UML

UML(Unified Modeling Language)

  1. 三种构造块:实物、关系和图

  2. UML4中事物

结构事物:通常是静态部分,描述概念或者物理元素。包括类,结构,协作,用列,主动类,构建,制品和结点

行为事物:动态部分,包括交互,状态机和活动

分组事物:最主要的是包

注释事物:用来描述、说明和标注模块的任何元素。注释是一个依赖一个元素或者一组元素智商,对它进行约束或解释的简单符号。

  1. UML 关系

依赖

关联

聚合【空心】:部分和整体的生命周期不一致,整体消失了,部分仍然存在着,部分可以脱离整体的存在;

组合【实心】:部分和整体的生命周期一致,整体消失了,部分不存在,部分不可以脱离整体的存在;

泛化

子类继承父类,但是泛化的意思是父类泛化子类;

实现

3.1 UML 中的图

3.1.1 类图

3.1.2 用例图

包含关系《include》

扩展关系《extend》

泛化关系《genralize》

3.1.3 序列图

3.1.4 通信图

3.1.5 状态图

状态图展现的是一个状态,

活动(动作)可以 在状态内执行,也可以在状态转换(迁移)时执行

3.1.6 活动图

3.1.7 构件图

构建图也叫组件图

图中右上角的“工”就可以看出是构件图

3.1.8 部署图

3.2 总结

四、设计模式

五 、操作系统

5.1 PV操作

同步信号量,S1=0

互斥型号量,S2>0

5.2 死锁

关于死锁相关条件

M>=nx(w-1)+1

M为资源个数,n为进程个数,w为一个进程需要的资源个数

5.3 磁盘调度

六、结构化开发

6.1 耦合种类

6.2 内聚

6.3 数据字典

七、软件工程

7.1 CMM软件能力成熟度模型

CMM 软件能力成熟度模型

7.2 CMMI

7.3 开发模型

7.4 敏捷方法

7.5 测试相关

白盒测试

1.语句覆盖:指程序中的每个语句需要执行一次【最弱覆盖】

2.判定覆盖:指程每个判定表达式的一次真和假都需要执行一次

3.条件覆盖:判定语句中的每个逻辑条件的各种可能指知道一次(看图)

4.判定/条件覆盖:上面哪种并集

5.条件组合覆盖:每个判定条件中的各种可能值需都至少出现一次

6.路径覆盖:覆盖被测试程序中所有可能的路径【最强覆盖】

7.6 系统维护

可维护性评价指标:“

可理解性,可修改,可测试性

7.7 系统维护性

7.8 COCOMO

基本COCOMO:静态单变量模型

中级COCOMO:静态多变量模型

详细COCOMO:分为系统,子系统和模块3个层次

7.9 质量模型

八、数据结构

8.1 矩阵存储

8.2 二叉树性质

8.3 遍历方式

前序------------根左右

中序------------左根右

后续------------左右根

层次遍历-----------从上往下,从左往右

8.4 二叉排序树

根节点:大于所有左子树,小于所有右子数的关键字

中序遍历得到的序列是有序序列

8.5 最优二叉树

8.6 最优二叉树的构造

8.7 图

8.8 有向图和无向图

选C

深度优先

递归思想

8.9 深度优先和广度优先

深度优先:

时间复杂度:O(n平方)

空间复杂度:O(n+e)

n为结点,e边数

2.广度优先

队列思想

广度优先:

时间复杂度:O(n平方)

空间复杂度:O(n+e)

n为结点,e边数

8.10 归并排序

九、编译器相关

9.1 语法,词法等相关

9.2 中间代码

十、数据结构相关

自然连接:把两个关系做笛卡尔积,然后选取公共属性相等的列(有可能有多个),再去掉重复的列

SQL语句

投影 :可以看是from

选择:可以看是Where

十一、杂项目

11.1 浮点数的范围表示

需要解决的问题:

\1. 有向图和无向图图

\2. 自然连接

相关图片记录

csdn 贴图真的很废人!!晕

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码思途远

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值