软件设计师笔记(二)-零碎要点

本文内容来自笔者学习zst 留下的笔记,都是零碎的要点,查缺补漏,若有错误请大家提出,希望大家都能通过,记得加上免费的关注!谢谢!

文章编辑于:2024-5-13 13:42:56

目录

1. 算法 [广度和深度优先]

2. 遍历方式

3. 四大算法

4. 中间代码

5. 配置管理

6. 内模式外模式

7. 常用端协议与端口【常考】

8. 海明码

9. 全文件名

10. 判定覆盖相关解析

11. 软件详细设计阶段

12. ARP RARP

13. 软件概要设计阶段

14. 软件开发传统模型

15. 二进制

16. 寻址

17. 数据流图建模

18. 视图

19. 模块结构图

20. 自然连接

21. 关于矩阵连乘

22. 邻接表存储和邻接表矩阵

23. 单缓冲区,双缓冲区

24. 敏捷方法

25. 参数多态

26. 关系模式推理规则

27. 多态要点

28. 软件详细设计阶段内容

29. 分布式数据库系统

30. 二叉树


1. 算法 [广度和深度优先]

广度优先 :又叫层次遍历,从上往下对每一层依次访问,在每一层中,从左往右(也可以从右往左)访问结点,访问完一层就进入下一层,直到没有结点可以访问为止

深度优先:对每一个可能的分支路径深入到不能再深入为止,而且每个结点只能访问一次。

  • 深度优先搜素算法:不全部保留结点,占用空间少;有回溯操作(即有入栈、出栈操作),运行速度慢。

  • 广度优先搜索算法:保留全部结点,占用空间大; 无回溯操作(即无入栈、出栈操作),运行速度快。

广度优先搜索 是backward cost,通常用队列 数据结构 ,这是一种 动态规划 的搜索方式; 【广东】

深度优先搜索 是forward cost,通常用堆栈数据结构,这是一种贪心搜索方式。【深潭】

归并排序是一种分治算法,


2. 遍历方式

先序遍历:对任一子树,先访问根,然后遍历其左子树,最后遍历其右子树。(根左右)

中序遍历:对任一子树,先遍历其左子树,然后访问根,最后遍历其右子树。(左根右)

后序遍历:对任一子树,先遍历其左子树,然后遍历其右子树,最后访问根。(左右根)

3. 四大算法

  • 贪心

在对问题求解时,总是做出在当前看来是最好的选择,只能得到局部最优解,全局最优解不一定

  • 分治

将一个规模为N的问题分解为K个规模较小的子问题;

这些子问题相互独立且与原问题性质相同;

求出子问题的解,就可得到原问题的解;

  • 回溯

一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回,尝试别的路径

比如数独,八皇后,0-1背包等等;

  • 动态规划

求解决策过程最优化的过程,能获得全局最优解

动态规划算法与分治法类似,其基本思想也是将待求解问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解;

与分治法不同的是,适合于用动态规划求解的问题,经分解得到子问题往往不是互相独立的,若用分治法来解这类问题,则分解得到的子问题数目太多,有些子问题被重复计算了很多次(比如斐波拉契数列);另外,分治自顶向下,动态规划自底向上;

4. 中间代码

常见的中间代码有后缀式、三地址码和树等。

5. 配置管理

配置管理是软件开发过程的重要内容,贯穿软件开发的整个过程。其内容包括:软件配置标识、变更管理、版本控制、系统建立、配置审核和配置状态报告。

6. 内模式外模式

在数据库系统中,如果对数据库的一张表创建聚簇索引,意味着重新确定表中数据的物理顺序,即需要改变的是数据库的内模式。

7. 常用端协议与端口【常考】

FTP协议代理服务器:21,文件传输 HTTP协议代理服务器:80,8080,3128,8081,9098 HTTP服务器:80 HTTPS:443 SMTP(Email):23 POP3(Email):110,

http(80),pop3(110),SMTP(25),FTP(20,21),Telnet(23) 这几个都是走的TCP协议

带T的除了TFTP,均为TCP

不带T的除了POP3,均为UDP

DHCP(68), TFTP(69),SNMP(发送161,接收162)

关于邮件协议相关: POP3 ,SMTP, IMAP MIME

其他协议:

RARP 协议:反向地址转换协议,反向地址转换协议(RARP)允许局域网的物理机器从网关服务器的 ARP 表或者缓存上请求其 IP 地址。

ARP(Address Resolution Protocol,地址解析协议)用于动态地完成IP地址向物理地址的转换。物理地址通常是指计算机的网卡地址,也称为MAC(Medai Access Control,媒体访问控制)地址,每块网卡都有唯一的地址。

8. 海明码

海明不等式:校验码个数为k,2的k次方个校验信息,1个校验信息用来指出“没有错误”,满足m+k+1<=2k。所以32位的数据位,需要6位校验码

^K-1>=N+K

9. 全文件名

该文件的全文件名包括其所在路径及其文件名称,为/swtools/flash/rw.dll,全文件名是绝对路径

10. 判定覆盖相关解析

语句覆盖<条件覆盖<判定覆盖<条件-判定覆盖<组合覆盖<路径覆盖

11. 软件详细设计阶段

软件详细设计阶段的主要任务包括:对模块内的数据结构进行设计;对数据库进行物理设计;对每个模块进行详细的算法设计;代码设计、输入/输出设计、用户界面设计等其他设计

12. ARP RARP

RARP 协议:反向地址转换协议,反向地址转换协议(RARP)允许局域网的物理机器从网关服务器的 ARP 表或者缓存上请求其 IP 地址。

ARP(Address Resolution Protocol,地址解析协议)用于动态地完成IP地址向物理地址的转换。物理地址通常是指计算机的网卡地址,也称为MAC(Medai Access Control,媒体访问控制)地址,每块网卡都有唯一的地址。

13. 软件概要设计阶段

软件概要设计阶段的主要任务包括

软件系统总体结构设计,将系统划分成模块;确定每个模块的功能;确定模块之间的调用关系;确定模块之间的接口,即模块之间传递的信息;评价模块结构的质量。

数据结构及数据库设计。

14. 软件开发传统模型

原型:需求不明确

螺旋:适合庞大的,复杂高风险,不明确

瀑布:文档为驱动,需求要很明确 喷泉:

面向对象,需大量开发人员,不便管理,审核难。

演化:需求不明确,可以在使用中不断完善。

15. 二进制

n位二进制。

原码和反码:-2ⁿ⁻¹-1到2ⁿ⁻¹-1;

补码:-2ⁿ⁻¹到2ⁿ⁻¹-1。 也可以表示,原码和反码:(-2ⁿ⁻¹,2ⁿ⁻¹);补码:[-2ⁿ⁻¹,2ⁿ⁻¹)。

16. 寻址

立即寻址最快,寄存器寻址最慢,直接寻址次之

17. 数据流图建模

数据流图建模应遵循:自顶向下、从抽象到具体的原则。

18. 视图

存储过程给第三方开发、存储人员; 视图给用户、客户查询、部分修改。

19. 模块结构图

模块结构图的主要组成有:模块、调用、控制信息和转接符号。

20. 自然连接

自然连接:是将重复的属性列将会删除,

21. 关于矩阵连乘

关于矩阵连乘相关要点:

采用的算法:动态规划

时间复杂度:n3次方

空间复杂度:n2平方

22. 邻接表存储和邻接表矩阵

知识点,关于邻接表存储,时间复杂度:(n+e)

对于邻接矩阵的话,时间复杂度:n2

23. 单缓冲区,双缓冲区

一般来说时间为: (T+M)*n+C

24. 敏捷方法

考点
极限编程(XP)轻量级,高效,低风险4大价值观: 沟通,简单性,反馈和勇气
水晶法每一套都需要一个不同的的策略,约定和方法
并列争求法使用迭代的方法,其中,把每**30天一次迭代称为一个"冲刺"**
自适应软件开发6个基本原则,有一个使命作为指导
敏捷统一过程"大型商连续" 小型上迭代

25. 参数多态

参数多态是应用比较广泛的多态,被称为最纯的多态,包含多态在许多语言中都存在,最常见的例子就是子类型化,即一个类型是另一个类型的子类型。过载多态是同一个名字在不同的上下文中所代表的含义不同。

26. 关系模式推理规则

关系模式R来说有以下的推理规则:

A1.自反律(Reflexivity) :若YcXcU,则×一Y成立。

A2.增广律(Augmentation):若ZcU且X→Y,则XZ一YZ成立。

A3.传递律(Transitivity) :若X→Y且Y一Z,则X一Z成立。

根据A1,A2,A3这三条推理规则可以得到下面三条推理规则:

合并规则:由X→Y,X一Z,有X→YZ。(A2,A3)

伪传递规则:由X→Y, WY一Z,有XW→Z。(A2,A3)

分解规则:由X一Y及ZcY,有X→Z。(A1,A3)本颗洗择A洗项

27. 多态要点

参数多态:采用参数化模板,通过给出不同的类型参数,使得一个结构有多种类型 ( 函数模板和类模板 )
包含多态:包含多态最常见的例子就是子类型化,同样的操作可用于一个类型及其子类型。(注意是子类型,不是子类。) 例子 : virtual 类
过载多态:是一种特定的多态,指的是统一名称在不同上下文中可以代表不同的含义。 同一个名(操作符、函数名)在不同的上下文中有不同的类型,程序设计语言中基本类型的大多数操作符都是过载多态的。 例如:函数重载和运算符重载
强制多态:编译程序通过语义操作,把操作对象的类型强行加以变换,以符合函数或操作符的要求。程序设计语言中基本类型的大多数操作符,在发生不同类型的数据进行混合运算时,编译程序一般都会进行强制多态。
  • 重置(Overiding)是指在子类中改变父类的既有函数行为的操作。其基本思想是通过一种动态绑定机制的支持,使得子类在继承父类界面定义的前提下,用适合于自己要求的实现去置换父类中的相应实现。

  • 重载(Overloading)是指在子类中保留既有父类的函数名,但使用不同类型的参数,即在面向对象编成语言中,允许同名、具有不同类型参数的函数共同存在。

28. 软件详细设计阶段内容

软件详细设计阶段的主要任务包括:对模块内的数据结构进行设计;对数据库进行物理设计;对每个模块进行详细的算法设计;代码设计、输入/输出设计、用户界面设计等其他设计。 软件概要设计阶段的主要任务包括 (1)软件系统总体结构设计,将系统划分成模考;确定每个模块的功能;确定模块之间的调用关系;确定模块之间的接口,即模块之间传递的信息;评价模块结构的质量。 (2)数据结构及数据库设计。

29. 分布式数据库系统

在分布式数据库系统中,

  • 共享性是指数据存储在不同的结点数据共享;

  • 自治性指每结点对本地数据都能独立管理:

  • 可用性是指当某-场地故障时,系统可以使用其他场地上的复本而不至于使整个系统瘫痪;

  • 分布性是指数据在不同场地上的存储。

30. 二叉树

满二叉树:对于满二叉树的判断,对于深度为k,有2^k-1结点。

完全二叉树:对于高度为h的完全二叉树,除了h层(最后一层),其余都是满二叉树。

满二叉树性质3:n0=n2+1 度为0的结点个个数等于n2

二叉树性质4:对于n个结点的完全二叉树高度为[log2n]+1或者[log2(n+1)]

  • 25
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值