软件设计师记录


一、计算机组成原理

1.浮点数的表示数值范围
如果浮点数的阶码(包括1位阶符)用R位的移码表示,尾数(包括1位数符)用M位的补码表示,则浮点数表示的数值范围如下。
在这里插入图片描述
那说明这种题目选择的时候,负数正常数字,正数组合数字,并且指数都不是2的倍数
2.计算机
1.由硬件自动完成Cache与主存之间的地址映射

2.cache命中率关键因素:程序的行为、cache的容量、组织方式、块的大小有关
cache容量越大,命中率越高,最后趋于稳定
对于给定的Cache容量,当块大小增加时,命中率开始时处于上升趋势,后来反而会下降。

3 运算器
1.算术逻辑单元ALU:数据的算术运算和逻辑运算
2.累加寄存器AC:通用寄存器,为ALU提供一个工作区,用在暂存数据
3.数据缓冲寄存器DR:写内存时,暂存指令数据
4.状态条件寄存器PSW:存状态标志与控制标志

4.控制器
①程序计数器PC:存储下一条要执行指令的地址(存储指令地址
②指令寄存器IR:存储即将执行的指令
③指令译码器ID:对指令中的操作码字段进行分析解释
④地址寄存器AR:存储数据地址
5. 时序部件:提供时序控制信号

寄存器: 1.地址寄存器:存储数据地址
2. 通用寄存器: **运算时用于暂存操作数或地址
3. 累加寄存器:暂时存放操作数和中间运算结果

透明的:数据缓冲寄存器、数据地址寄存器、指令寄存器

控制器有: 程序,指令,时序
透明的: 数据,指令

5.I/O接口
若某计算机系统的I/O接口与主存采用统一编址,则输入输出操作是通过访存指令来完成的。
I/O接口单独编址是指通过设置单独的I/O地址空间,为接口中的有关寄存器或存储部件分配地址码,需要设置专门的I/o指令进行访问。这种编址方式的优点是不占用主存的地址空间,访问主存的指令和访问接口的指令不同,在程序中容易使用和辨认。

6.内存
磁盘读取文件时间=(磁头旋转时间+每块旋转延迟时间+传输时间)X文件数

7.数据传输
中断方式下的数据传送是当I/O接口准备好接收数据或准备好向CPU传送数据时,就发出中断信号通知CPU。对中断信号进行确认后,CPU保存正在执行的程序的现场, 转而执行提前设置好的I/O中断服务程序,完成一次数据传送的处理。这样,CPU就不需要主动查询外设的状态,在等待数据期间可以执行其他程序,从而提高了CPU的利用率。采用中断方式管理I/O设备,CPU和外设可以并行地工作。

程序查询方式下,CPU通过执行程序查询外设的状态,判断外设是否准备好接收数据或准备好了向CPU输入的数据。

直接内存存取(Direct Memory Access, DMA)方式的基本思想是通过硬件控制实现主存与I/O设备间的直接数据传送,数据的传送过程由DMA控制器(DMAC)进行控制,不需要CPU的干预。在DMA方式下,由CPU启动传送过程,即向设备发出“传送一块数据”的命令,在传送过程结束时,DMAC通过中断方式通知CPU进行一些后续处理工作。

8.在这里插入图片描述
2057号是2058块,后面余数就余10了

二、面对对象

1.动态绑定是实现多态的基础。

1.1绑定是一个把过程调用和响应调用所需要执行的代码加以结合的过程。在一般的程序设计语言中,绑定是在编译时进行的,叫做静态绑定。
动态绑定则是在运行时进行的,因此,一个给定的过程调用和代码的结合直到调用发生时才进行。动态绑定是和类的继承以及多态相联系的。在继承关系中,子类是父类的一个特例,所以父类对象可以出现的地方,子类对象也可以出现。因此在运行过程中,当一个对象发送消息请求服务时,要根据接收对象的具体情况将请求的操作与实现的方法进行连接, 即动态绑定。

2.封装的作用是把属性和服务结合成一个独立的系统单元,并隐藏对象的内部细节;

继承则使得子类可以自动拥有父类的全部属性和服务;消息则是对象发出的服务请求;

多态是指面向对象中由重载或过载机制实现的结果。

3.面向对象设计中存在很多原则,其中高层模块不应该依赖于底层模块就是其中一条。传统的结构化设计中,一般的髙层模块需要调用或使用底层模块,导致高层模块必须依赖于底层模块,但借助面向对象中的抽象类、接口等一系列机制,可以使得高层模块仅仅和接口耦合,而和实际的底层模块没有直接关联。

4.语法错误:单词拼写错误、标点符号错、表达式中缺少操作数、括号不匹配等有关语言结构上的错误
语义分析:发现的运算符与运算对象类型不合法等错误。
在这里插入图片描述

5.多态
参数多态:是应用比较广泛的多态,被称为最纯的多态

包含多态:在许多语言中都存在,最常见的例子就是子类型化,即一个类型是另一个类型的子类型

过载多态:是同一个名字在不同的上下文中所代表的含义不同,上下文重载

强制多态:编译程序通过语义操作,把操作对象的类型强行加以变换,以符合函数或操作符的要求。int ->double

6.语言
在这里插入图片描述

二.1、设计模式

1.观察者模式,有observer应该就是

一个作用于某对象结构中的各元素的操作,是使用者可以在不改变各元素的类的前提下定义作用于这些元素的新操作
在这里插入图片描述
2.抽象工厂
在这里插入图片描述
提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类
简记:创建接口

3.Bridge (桥接)模式:对象的抽象和其实现分离

4.单例设计模式的目的就是保证一个类仅能够生成一个对象

5.组合设计模式则用于表示部分-整体的层次结构,并且对部分和整体的使用具有一致性

6.装饰设计模式则动态地给一个对象增加一些额外的职责,无须改变类的设计和实现

7.适配器:改变接口成为自己想要的

8.享元:共享

9.外观:提供界面

10.策略:将一个请求封装为一个对象,记录日志

11.生成器模式:对象的构建和显示分离开

12.状态(State)模式:是使得一个对象在其内部状态改变时通过调用另一个类中的方法改变其行为,使这个对象看起来如同修改了它的类。

13.职责链模式:传递职责

14.命令模式:日志记录

15.中介者模式:不直接引用

既是类模式也是对象模式:工厂方法,适配器,解释器,模板方法模式

二.2、UML

1.组合
组合也是关联关系的一种特例。组合是一种整体与部分的关系,即contains-a的关系,比聚合更强部分与整体的生命周期一致,整体的生命周期结束也就意味着部分的生命周期结束,组合关系不能共享。
2.聚合
聚合关联关系的一种特例,是强的关联关系。聚合是整体和个体之间的关系,即has-a的关系,整体与个体可以具有各自的生命周期,部分可以属于多个整体对象,也可以为多个整体对象共享。

3.部署图是 软件部署在哪些硬件结点上

4.状态图中转移有两个状态:源状态和目标状态

5.活动图:负责用例进一步建图,信息交互

6.类图:领域模型

7.顺序图:交互关系,次序
在这里插入图片描述
在这里插入图片描述

三、软件工程

1.结构化设计
体系结构设计:主要是指要开发的系统中包含哪些部件,这些部件与部件之间的关系就是体系结构的设计。(部件关系)
数据设计:也称为数据库设计,主要包含数据库的设计和这个数据所包含的核心表的设计。(数据库)
接口设计:用于子系统和模块之间或者内部系统和外部系统之间的各种交互,如功能描述,输入输出的定义,错误处理的设计。
过程设计:也称为模块详细设计,主要是详细模块的实现算法,以及模块所使用的数据结构。(算法,数据结构)

2.Gantt 图用水平条状图描述,它以日历为基准描述项目任务,可以清楚地表示任务的持续时间和任务之间的并行,但是不能清晰地描述各个任务之间的依赖关系

3.PERT图是一种网络模型,描述一个项目任务之间的关系。可以明确表达任务之间的依赖关系,即哪些任务完成后才能开始另一些任务,以及如期完成整个工程的关键路径,PERT图不能清晰的描述各任务之间的并行情况
在这里插入图片描述

4.配置数据库一般包括开发库、受控库和产品库。

5.高内聚低耦合:模块内部联系紧密,模块与模块之间联系少

6.统一过程(UP)定义了初启阶段、精化阶段、构建阶段、移交阶段和产生阶段,每阶段达到某个里程碑时结束。其中
初启阶段的里程碑是生命周期目标
精化阶段的里程碑是生命周期架构
构建阶段的里程碑是初始运作功能
移交阶段的里程碑是产品发布
产生阶段:监测产品使用,并生成缺陷报告

7.敏捷开发方法。
极限编程XP:近似螺旋的开发方法,把整个开发过程分解为相对比较小而简单的周期,通过大家积极的沟通反馈,开发人员和客户都比较清楚当前的开发进度、需要解决的问题等等,根据这些实际情况去调整开发过程,这是极限编程的思想。(中等项目)
水晶法:不同的项目需要不同的开发方法。
并列并列争球法:迭代,设立了一个周期。
在这里插入图片描述

8.软件翻译权
就是指将原软件从一种程序语言转换成另一种程序语言的权利。

9.模块之间的耦合有7种类型,根据耦合性从低到高为非直接耦合、数据耦合、标记耦合、控制耦合、外部耦合、公共耦合和内容耦合

数据耦合:如果一个模块访问另一个模块时,彼此之间是通过数据参数(不是控制参数、公共数据结构或外部变量)来交换输入、输出信息的,

标记耦合:如果一组模块通过数据结构本身传递

控制耦合:指一个模块调用另一个模块时,传递的是控制变量(如开关、标志等),被调模块通过该控制变量的值有选择地执行块内某一功能

外部耦合:一组模块都访问同一全局简单变量,而且不通过参数表传递该全局变量的信息,则称之为外部耦合。外部耦合和公共耦合很像,区别就是一个是简单变量,一个是复杂数据结构。

公共耦合:若一组模块都访问同一个公共数据环境,则它们之间的耦合就称为

内容耦合:若一个模块直接访问另一个模块的内部数据、一个模块不通过正常入口转到另一个模块内部、两个模块有一部分程序代码重叠或者一个模块有多个入口,上述几个情形之一发生则说明两个模块之间就发生了。

在这里插入图片描述

内聚: 低到高
偶然内聚 或巧合内聚:指一个模块内的各处理元素之间没有任何联系
逻辑内聚:指模块内执行若干个逻辑上相似的功能,通过参数确定该模块完成哪一个功能。
时间内聚:把需要同时执行的动作组合在一起形成的模块。
过程内聚:指一个模块完成多个任务,这些任务必须按指定的过程执行。
通信内聚:指模块内的所有处理元素都在同一数据结构上操作,或者各处理使用相同的输入数据或产生相同的输出数据。
顺序内聚:指一个模块中的各个处理元素都密切相关于同一各功能且必须顺序执行,前一个功能元素的输出就是下一个功能的输入。
功能内聚:指模块内的所有元素共同作用完成一个功能,缺一不可。
在这里插入图片描述

10.活动图的项目至少时间就是求关键路径,关键路径就是路径时间最长的路径
松弛时间就是:关键路径时间-包含该活动最长路径的时间

11.软件开发
概要设计将需求转化为软件的模块划分,确定模块之间的调用关系;
详细设计将模块进行细化

12.编译和解释的的区别
编译过程划分成词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成6个阶段。目标程序可以独立于源程序运行。
编译生成目标代码,目标代码可以独立于源程序运行。
解释不生成目标代码,生成中间代码后直接执行。

I.词法分析:看单词有没有错误,比如public有没有拼写错
II.语法分析:看看基础语法有没有错误,比如 java句子后面结束有没有分号
III.语义错误分静态和动态,静态编译检测,动态运行检测,比如类型不匹配,数组直接+1,而不是取一个数。经典还有:除零语句错误

常见的中间代码有后缀式、三地址码、语法树,四元式,三元式、间接三元式、逆波兰记号和树形

13.仓库风格包括:数据库系统、黑板系统、超文本系统。
编译器可用多种架构风格实现。

三.2、软件设计

1.瀑布模型:需求明确的项目

2.螺旋模型:加入了风险分析

3.原型模型:需求不明确,不适合大型项目

4.喷泉模型:迭代,无间隙

5.软件维护
正确性:修改错误让软件正确
适应性:适应外部环境和管理需求变化
完善性:完善功能
预防性:预防未来变化

6.程序设计语言的语法基本上都是上下文无关文法

7.可理解性、可测试性和可修改性是衡量可维护性的重要指标。

四、操作系统

1.信号量+前趋图的题目
第一步:先标信号量,从上至下,从左至右。第二步:起始位置是V,指向位置是P 结束

五、数据结构

1.链表存储方式 只要改变了链表的值应该就是最不方便的算法

2.程序员申请和释放空间,数据空间必须采用堆存储分配策略

3.这些二维数组,不管按列或者按行存储,都是存储在一维数组上,举一个3行2列的例子带入进去算就可以了

4.在m阶B-树的定义中,要求:
①树中的每个节点至多有M棵子树
②若根节点不是叶子节点,则至少有两棵子树。
③除根之外的所有非终端节点至少有[M/2]棵子树。

5.哈夫曼算法应用,5种字符至少3位在这里插入图片描述

六、算法

在这里插入图片描述
稳定:冒插归基
O(n^2):直接冒
堆快并 :堆快归
排序算法:
直接插入:和打牌比较像,选定一张牌,然后一直加牌排序一样
快速排序:就是找一个数为基数,如果从小到大,按顺序比,小的都在这个数的右边,大的到左边
时间复杂度计算
一种例题:T(n-1)+n 可以得出T(n-1)=T(n-2)+n-1
得出T(n)=n+n-1+…+1 求和之后 时间复杂度就是O(n^2)

算法思想大致描述
分治法:易划分为子问题求解、自顶向下

动态规划法:问题具有最优子结构和重叠子问题、自底向上

贪心法:问题具有最优子结构和贪心选择性质,自底向上或自顶向下

回溯法:系统搜索法,深度优先。

分支限界法:系统搜索解空间来求解问题的方法,广度优先。

二种例题:
在这里插入图片描述
一般就是n的几次然后乘logn

换算到时间复杂度:b为底数

六、计算机网络

请添加图片描述

TCP 三次握手协议,建立可靠的链接
UDP 直接发送

20、21/FTP(文件传输协议)20是上传数据端口,21是下载,控制端口
22/SSH(安全shell协议)
23/Telent(远程登录协议,明文传递)
53/DNS(域名系统)
25/SMTP(简单邮件传输协议)
110/POP3(邮局协议3代)
79/tcp finger Finger
69/udp TFTP Trivial File Transfer Protocol
80/tcp HTTP 超文本传送协议 (WWW)
88/tcp Kerberos Authenticating agent
113/tcp ident old identification server system
119/tcp NNTP used for usenet newsgroups
220/tcp IMAP3协议
443/tcp HTTPS协议

MIME 它是一个互联网标准,扩展了电子邮件标准,使其能够支持多媒体数据。

B/S体系
在这里插入图片描述

七、多媒体

在这里插入图片描述

MPEG-1 :VCD、MP3
MPEG-2:DVD、电视
MPEG-4:网络、无限通信
MPEG-7:多媒体接口
MPEG-21:融合不同协议

2.图像视频转二进制编码:A/D变换
二进制编码转图像视频:D/A变换

八、数据库

1.数据库设计

第一步 需求分析
第二步 概念设计产出E-R图
第三步 逻辑设计产出关系模型
第四步 物理设计产出数据库
逻辑独立性是 外模式与模式之间的映像完成的
物理独立性是 模式与内模式之间的映像完成的
查询效率高:1.笛卡尔积先做 2.做笛卡尔积的数据要少

2.共享锁:读锁
排它锁:写锁

有共享锁可以再加共享锁,但不可以加排他锁。有排它锁,则共享锁和排它锁都不可以再加。

3.数据库冲突类型
属性冲突:属性值的类型不同或取值范围不同或取值集合不同。

命名冲突:不同意义的对象名称相同。在不同的关系模式中不构成命名冲突

结构冲突:例如“课程”在某一局部中被当做实体,在另外一局部中被当做属性

4.分布式数据库

1.物理分布性:数据不是存储在一个场地上,而是存储在计算机网络的多个场地上。
⒉逻辑整体性:数据物理分布在各个场地,但逻辑上是一个整体,它们被所有用户(全局用户)共享,并由一个DDBMS统一管理。
3.场地自治性:各场地上的数据由本地的DBMS管理,具有自治处理能力,完成本场地的应用(局部应用)。
4.场地之间协作性:各场地虽然具有高度的自治性,但是又相互协作构成一个整体。

5.分片透明:指用户或应用程序不需要知道逻辑上访问的表具体是怎么分块存储的。
复制透明:采用复制技术的分布方法,用户不需要知道数据是复制到哪些节点,如何复制的。
位置透明:指用户无须知道数据存放的物理位置
逻辑透明:即局部数据模型透明,是指用户或应用程序无须知道局部场地使用的是哪种数据模型。

九、安全

1.ECC、DSA和RSA都属于公开密钥加密算法,DES是典型的私钥加密体制

2.机房安全属于物理安全,入侵检测属于网络安全,漏洞补丁管理属于系统安全,而数据库安全则是应用安全。

3.风险识别:识别风险
风险预测:估算概率和后果
风险评估:评估是否影响参考水平值
风险控制:控制风险

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值