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

news2024/10/7 10:18:41

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

目录

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)]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1659476.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

RuoYi-Vue-Plus (Echarts 图表)

一、echarts 图表介绍和使用 官网地址:目前echarts以及贡献给Apache Apache EChartshttps://echarts.apache.org/zh/index.htmlecharts配置项手册 Documentation - Apache EChartshttps://echarts.apache.org/z

第19讲:Ceph集群CrushMap规则定制与调优:从基础到高级应用

文章目录 1.CrushMap规则拓扑结构1.1.集群默认的CrushMap规则拓补图1.2.自定义的CrushMap规则拓补图 2.定制CrushMap规则的方法以及注意事项3.通过二进制文件编写一套CrushMap规则3.1.将系统默认的CrushMap规则导出3.2.根据需求编写CrushMap规则3.3.将编写好的规则导入到集群中…

简单粗暴的翻译英文pdf

背景&#xff1a;看书的时候经常遇到英文pdf&#xff0c;没有合适的翻译软件可以快速翻译全书。这里提供一个解决方案。 Step 1 打开英文pdfCTRLA全选文字CTRLC复制打开记事本CTRLV复制保存为data.txt Step 2 写一个C脚本 // ToolPdf2Html.cpp : 此文件包含 "main&quo…

AJAX家政系统源码部署/售后更新/搭建/上线维护

基于FastAdmin和原生微信小程序开发的一款同城预约、上门服务、到店核销家政系统&#xff0c;用户端、服务端(高级授权)、门店端(高级授权)各端相互依赖又相互独立&#xff0c;支持选择项目、选择服务人员、选择门店多种下单方式&#xff0c;支持上门服务和到店核销两种服务方式…

如何安装ElasticSearch及相关件

一、简介 ElasticSearch是什么&#xff1f; elasticsearch简写es&#xff0c;es是一个高扩展、开源的全文检索和分析引擎&#xff0c;它可以准实时地快速存储、搜索、分析海量的数据。 ElasticSearch 插件 elasticsearch-head是一款专门针对于elasticsearch的客户端工具&am…

Gitee 码云与Git 交互

优质博文&#xff1a;IT-BLOG-CN 一、进入码云官方网站&#xff0c;注册用户 码云(Gitee.com)是一个类似于GitHub的在线代码托管平台。 码云提供了包括版本控制、代码托管、协作开发和代码分享等功能&#xff0c;基于Git开发&#xff0c;支持代码在线查看、历史版本查看、Fo…

什么是分库分表?代表性框架有哪些?

在互联网系统开发过程中&#xff0c;所谓的分库分表并不是一个新概念。或者说&#xff0c;对于很多开发人员而言&#xff0c;说起分库分表&#xff0c;大家都或多或少有所了解&#xff0c;也都知道数据量大了就需要进行分库分表。但是究竟如何实现分库分表呢&#xff1f; 要想…

去哪个网站找视频素材?哪里有视频素材不侵权?

在这个视觉内容日益丰富的时代&#xff0c;掌握优质的视频素材资源成了每位创作者的必备技能。高清、4K视频素材在制作中扮演着至关重要的角色&#xff0c;它们不仅提升了视觉效果&#xff0c;更增强了观众的沉浸感。下面将为您介绍几个全球知名的视频素材网站。 1. 蛙学府 提…

企业内外网隔离后的文件传输解决方案

一、企业为什么要进行内外网隔离 在当今信息化快速发展的时代&#xff0c;企业内部网络的构建和管理显得尤为重要。为了更好地保护企业信息安全和提高工作效率&#xff0c;许多企业选择将网络划分为内网和外网。那么&#xff0c;企业划分内外网的作用具体体现在哪些方面呢&…

从古代故事中领悟高情商回话

页面 页面代码 <% layout(/layouts/default.html, {title: 故事管理, libs: [dataGrid]}){ %> <div class"main-content"><div class"box box-main"><div class"box-header"><div class"box-title">&l…

【Django项目】 通过AI实现视频转文字

使用Django构建一个视频—>文字 转换器&#xff1a; 输入视频地址&#xff0c;通过OpenAI的接口分析视频&#xff0c;返回视频内容的文字。 视频 代码 运行此程序&#xff0c;需要OpenAI-key和设置Postgres数据库。 &#xff08;吐槽一下&#xff0c;作者把这些信息都直接写…

vue路由知识补充(updating···)

1路由守卫中的next() next()方法表示放行&#xff0c;如果不执行此方法路由不会跳转&#xff0c;此方法可以接收一个参数 字符串路径&#xff1a;如果传递一个字符串路径&#xff0c;那么路由会重定向到该路径。 next(/home); 路由对象&#xff1a;如果传递一个路由对象&…

搜维尔科技:光学动作捕捉系统用于城市公共安全智慧感知实验室

用户名称&#xff1a;西安科技大学 主要产品&#xff1a;Optitrack Priime41 光学动作捕捉系统&#xff08;8头&#xff09; 在6米8米的空间内&#xff0c;通过8个Optitrack Priime41光学动作捕捉镜头&#xff0c;对人体动作进行捕捉&#xff0c;得到用户想要的人体三维空间坐…

安卓手机平板使用Termux+Hexo搭建本地博客站点并实现无公网IP远程访问

文章目录 前言1.安装 Hexo2.安装cpolar3.远程访问4.固定公网地址 前言 本文主要介绍如何在安卓手机平板Termux中安装个人hexo博客并结合cpolar内网穿透工具&#xff0c;实现远程访问本地搭建的博客站点&#xff0c;无需公网IP。 Hexo 是一个用 Nodejs 编写的快速、简洁且高效…

Linux的并发与竞争

文章目录 一、并发二、竞争三、保护内容是什么四、解决并发与竞争的几种常用方法1.原子操作原子整型API函数原子位操作 API 函数 2.自旋锁自旋锁格式如下&#xff1a;自旋锁 API 函数自旋锁的使用注意事项 3.信号量信号量 API 函数信号量格式如下&#xff1a; 4.互斥体API函数如…

面试算法之哈希专题

赎金信 class Solution { public:bool canConstruct(string ransomNote, string magazine) {// 小写字母int r_cnt[26];int m_cnt[26];for(int i 0; i< magazine.size(); i) {m_cnt[magazine[i]-a]; // 统计}// 对比for(int i 0; i< ransomNote.size(); i) {if(m_cnt[r…

Python-----容器的介绍以及操作

1.列表和元组 1.列表是什么, 元组是什么&#xff1a; 编程中, 经常需要使用变量, 来保存/表示数据. 如果代码中需要表示的数据个数比较少, 我们直接创建多个变量即可. 但是有的时候, 代码中需要表示的数据特别多, 甚至也不知道要表示多少个数据. 这个时候, 就需要用到列表 列表…

ChatGPT开源的whisper音频生成字幕

1、前言 好了&#xff0c;那接下来看一下whisper开源库的介绍 有五种模型大小&#xff0c;其中四种仅支持英语&#xff0c;提供速度和准确性的权衡。上面便是可用模型的名称、大致的内存需求和相对速度。如果是英文版的语音&#xff0c;直接想转换为英文。 本来我是想直接在我的…

数据库(MySQL)基础:约束

一、概述 1.概念&#xff1a;约束是作用于表中字段上的规则&#xff0c;用于限制存储在表中的数据。 2.目的&#xff1a;保证数据库中数据的正确、有效性和完整性。 3.分类 约束描述关键字非空约束限制该字段的数据不能为nullnot null唯一约束保证该字段的所有数据都是唯一…

粮油码垛机:自动化与智能化仓储的关键角色

在快速发展的现代化仓储物流领域&#xff0c;粮油码垛机正逐渐成为自动化与智能化仓储的关键角色。它以其高效、精准、节省人力的特点&#xff0c;赢得了众多粮油生产企业的青睐&#xff0c;成为仓储管理升级换代的明星产品。 一、粮油码垛机的技术革新 随着科技的发展&#…