真题错误笔记
词法分析: 依据语言的词法规则,对源程序进行逐个字符的扫描,从中识别出一个个“单词”符号,主要针对词汇的检查。
嵌入式操作系统的特点
1)微型化:从性能和成本角度考虑,希望占用的资源和系统代码量少。
2)可定制:从减少成本和缩短研发周期考虑,要求嵌入式操作系统能运行在不同的微处理器平台上,能针对硬件变化进行结构与功能上的配置,以满足不同应用的需求。
3)实时性:嵌入式操作系统主要用于过程控制,数据采集,传输通信,多媒体信息及关键要害领域需要迅速响应的场合,所以对实时性要求较高。
4)可靠性:系统构建,模块和体系结构必须达到应有的可靠性,对关键要害应用还要提供容错和放故障措施
5)可移植性:为了提高系统的移植性,通常采用硬件抽象层和板级支持包的底层设计技术。
极限编程的12个最佳实现
- 简单设计(只处理当前的需求,使设计保持简单)
- 测试先行(先写测试代码,然后再编写程序)
- 持续集成(可以按日甚至按小时为客户提供可运行的版本)
- 现场客户(系统最终用户代表应该全程配合 XP 团队)
其他
- 计划游戏(快速指定计划,随着细节不断地变化而完善)
- 小型发布(系统地设计要能够尽可能早地交付)
- 隐喻(找到合适地比喻传达信息)
- 重构(重新审视需求和设计,重新明确地描述他们以符合新的和现有地需求)
- 结对编程
- 集体代码所有制
- 每周工作40个小时
- 编码标准
聚合对象是指一个对象包含其他对象
UML类图
类图: 展现了一组对象,接口,协作和他们之间地关系。在面向对象系统的建模中,最常见的就是类图,它给出系统的静态设计视图
组件图: 展现了一组组件之间的组织和依赖
通信图: 通信图也是一种交互图,它强调收发消息的对象或参与者的结构组织。
部署图: 是用来面向对象系统的物理方面建模的方法,展现了运行时处理节点以及其中构建的配置。用于展示所交付系统中软件组件和硬件之间的物理关系。
锁
共享锁:(S锁)又称读锁,若事务 T 对数据对象 A 加上 S 锁,其他事务只能再对 A 加 S 锁,而不能加 X 锁,直到 T 释放 A 上的 S 锁。
排他锁:(X锁)又称写锁,若事务 T 对数据对象 A 加上 X 锁,其他事务不能再对 A 加任何锁,直到 T 释放 A 上的锁。
分布式数据库特点
数据独立性。在分布式数据库系统中,数据独立性这一特性更加重要,并具有更多的内容。除了数据的逻辑独立性与物理独立性外,还有数据分布独立性
集中与自治共享结合的控制结构各局部的 DBMS 可以独立的管理局部数据库,具有自治的功能。同时,系统又设有集中控制机制,协调各局部 DBMS 的工作,执行全局应用。
适当增加数据冗余度。在不同的场地存储廷议数据的多个副本,这样,可以提高系统的可靠性和可用性,同时也能提高系统性能。提高系统的可用性,即当系统中某个结点发生故障时,因为数据有其他副本在非故障场地上,对其他所有场地来说,数据仍然是可用的,从而保证数据的完备性。
全局的一致性,可串行性和可恢复性。
TCP 与 UDP 均提供了端口寻址功能
UDP 是一种不可靠的,无连接的协议,没有连接和管理能力,不负责重更新发送丢失或出错的数据消息,也没有流量控制。
ipconfig 显示摘要信息,不能查看 DHCP 服务开启情况
ipconfig / all 显示详情信息,可查看 DHCP 服务器是否一起用
ipconfig / renew 更新所有适配器
ipconfig / release 释放所有匹配的连接
CPU 收到中断请求后,会将自己正在执行程序 A 的状态进行保存,即保存现场,然后专区处理提交中断申请的程序 B ,完成程序 B 之后,再回到程序 A 中断的断电接着完成程序 A。保存现场的目的是为了能正确返回被中断的程序 A 继续执行。
动态绑定是指在运行是把过程调用和响应调用所需要执行的代码加以结合
运行时结合是动态绑定,编译时结合是静态绑定
事务的ACID特性
原子性: 事务是原子的,要么做,要么都不做。
一致性: 事务执行的结果必须保证数据库从一个一致性状态变到另一个一致性状态
隔离性: 事务相互隔离。当多个事务并发执行时,任一事务的更新操作直到其成功提交的整个过程,对其他事物都是不可见的。
持久性: 一旦事务成功提交,即使数据库崩溃,其对数据库的更新操作也永久有效。
排序算法时间复杂度
TCP / IP 网络中,建立连接进行可靠通信描述的 TCP 协议,属于传输层协议;网络层为传输层的数据传输提供建立,维护和终止网络连接的手段。应用层主要实现具体的应用功能。表示层主要处理数据的格式与表达,加密,压缩。会话层为表示层提供建议,维护和结束会话连接的功能,并提供会话管理服务。
Cache 的地址映像方式中,发生冲突次数最小的是 全相联映像
多媒体基础
感觉媒体:指人们接触信息的感觉形式。如:视觉,听觉,触觉,嗅觉和味觉。
表示媒体:指信息的表示形式。如:文字,图形,图像,动画,音频,视频。
显示媒体:表现和获取信息的物理设备:如:输入显示媒体键盘,鼠标和麦克风等,输出显示媒体显示器,打印机和音响等。
存储媒体:存储数据的物理设备,如磁盘,光盘和内存等
传输媒体:传输数据的物理载体,如电缆,光缆和交换设备。
风险的优先级通常是根据风险暴露设定的
风险曝光度 = 风险出现率 x 风险损失
嵌入式系统初始化过程主要有3个环节,按照自底向上,从硬件到软件的次序依次为 片级初始化 --> 板级初始化 --> 系统级初始化
片级初始化:完成嵌入式微处理器的初始化,包括设置嵌入式微处理器的核心寄存器和控制寄存器,嵌入式微处理核心工作模式和嵌入式微处理器的局部总线模式等
板级初始化:完成嵌入式处理器以外的其他硬件设备的初始化。
系统初始化:该初始化过程以软件初始化为主,主要进行操作系统的初始化。
螺旋模型中会考虑风险因素
极限编程是一种轻量级的开发方法,它提出了四大价值观:沟通,简单,反馈,勇气。**五大原则:**快速反馈、简单性假设、逐步修改、提倡更改、优质工作。
水晶法强调经常支付,认为每一种不同的项目都需要一套不同的策略,约定和方法论。
并列争球法的核心是迭代,增量交付,按照30天进行迭代开发交付可实际运行的软件。
自适应软件开发的核心是三个非线性的,重迭开发阶段:猜测,合作,学习。
软件配置管理SCM用于整个软件工程过程,其主要目标是标识变更,控制变更,确保变更正确的实现,报告变更。其主要内容包括版本管理,配置支持,变更支持,过程支持,团队支持,变化报告和审计支持等。
VLAN 即虚拟机局域网,其优点是:限制网络上的广播,将网络划分为多个 VLAN 可减少参与广播风暴的设备数量。LAN 分段可以防止广播风暴波及整个网络。VLAN 可以提供建立防火墙的机制,防止交换网络的过量广播。使用 VLAN 可以将某个交换端口或用户赋予某一个特定的 VLAN 组,该 VLAN 组在一个交换网中或跨界多个交换机,在一个 VLAN 中的广播不会送到 VLAN 之外
DHCP 协议的功能是自动分配 IP 地址,FTP 协议的作用是文件传输,并且是基于 TCP 的。传输层的协议包括 TCP和 UDP。
指令寄存器的位数取决于 指令长度
单元测试测试以下内容:模块接口,局部数据结构,执行路径,错误处理和边界。单元测试开始时,应该对通过所有被测试模块的数据流进行测试。
RISC 适合流水线,CISC不适合
RISC是精简指令集系统计算机简称,使用简单的指令,CISC是复杂指令集系统计算机简称,使用复杂的指令。
RISC多寄存器寻址,所以会在实现过程中增加通用寄存器,CISC 不需要采用很多通用寄存器
RISC 采用硬布线逻辑(即嘴和逻辑控制器)实现,CISC 采用微码(即微程序)实现。
典型的对称加密算法:DES,3DES,AEC等
典型的非对称加密算法:RSA,ECC等
典型的摘要算法:SHA,MD5
词法分析阶段处理的错误:非法字符,单词拼写错误等
语法分析阶段处理的错误:标点符号错误,表达式中缺少操作数,括号不匹配等有关语言结构上的错误。
静态语义分析阶段处理的错误:运算符与运算对象类型不合法等错误
目标代码生成处理的错误:动态语义错误,包括陷入死循环,变量取 0 时做除数,引用数组下标越界
Java的占空间只放基本类型,引用类型,而堆中存储实例对象
数据耦合是通过参数表传递简单信息。
公共耦合是多个模块访问同一个公共数据环境
外部耦合是一组模块访问同一个全局变量而没有通过参数表传递。
内容耦合是一个模块直接访问另一个模块的内部数据;一个模块不通过正常入口转到另一个模块的内部,两个模块有一部分程序代码重叠;一个模块有多个入口。
软件详细设计阶段的主要任务包括:对模块内的数据结构进行设计;对数据库进行物理设计;对每个模块进行详细的算法设计;代码设计、输入/输出设计、用户界面设计等
概要设计阶段的主要任务:软件系统总体结构设计,将系统划分成模块;确定每个模块的功能;确定模块间的调用关系;确定模块之间的接口,即模块之间的信息传递;评价模块结构的质量。
概要设计的内容跟可以包含系统构架,模块划分,系统接口,数据设计4个主要方面的内容
对于大顶堆来说:任意非叶子结点不小于其左右孩子节点,对于小顶堆来说,任意非叶子节点不大于其左右孩子节点。
单一职责原则:设计目的单一的类
开放-封闭原则:对扩展开放,对修改封闭
里氏替换原则:子类可以替换父类
依赖倒置原则:要依赖于抽象,而不是具体实现;针对接口编程,不要针对现实编程
接口隔离原则:使用多个专门的接口比使用单一的接口要好。不强迫客户依赖于他们不用的方法,即:依赖于抽象,不要依赖于具体,同时在抽象级别不应该有对细节的依赖。
CL0:(未完成的)过程域未执行或未得到 CL1 中定义的所有目标
CL1:(已执行的)其共性目标是过程将可标识的输入工作产品转换成可标识的输出工作产品,以实现支持过程域的特定目标。
CL2:(已管理的)其共性目标是其中于已管理的过程的制度化。根据组织政策规定过程的运作将使用哪个过程,项目遵循以文档化的设计和过程描述,所有正在工作的人都有权使用足够的资源,所有工作任务和哦你工作产品都被监控,控制和评审。
CL3:(已定义级的)其共性目标于已定义的该过程的制度化。过程是按照组织的裁剪指南从组织的标准过程中裁剪得到的,还必须收集过程资产和过程的度量,并用于将来对过程的改进。
CL4:(定量管理的)其共性目标集中于可定量管理的过程的制度化。使用测量和质量保证来控制和给改进过程域,建立和使用关于质量和过程执行的质量目标作为管理准则
CL5:(优化的)使用量化(统计学)手段改变和优化过程域,以满足客户的改变和持续改进计划中的过程域的功效
CMMI共有6个能力等级(0.1.2.3.4.5)
0: 表明过程域的一个或多个特定目标没有被满足
1:指过程通过转化可识别的输入工作产品,产生可识别的输出工作产品,关注于过程域的特定目标的完成
2:之过程作为已管理的故从而灰姑娘制度化,针对单个过程实例的能力
3:之过程作为已定义的过程制度化,关注过程的组织级标准化和部署。使用标准开发过程构建系统
4:之过程作为定量管理的过程制度化,对软件过程和产品都有定量的理解和控制
5:指过程作为优化的过程制度化,表明过程得到很好的执行且持续得到改进
计算机在执行程序时,内存分为静态数据区,代码区,栈区和堆区。其中栈区一般在进行函数调用和返回时由系统进行控制和管理,堆区由用户在程序中根据需要申请和释放
数据字典是指对数据的数据项,数据结构,数据流,数据存储,处理逻辑,外部实体等进行定义和描述,其目的是对数据流程图中的各个元素做出详细的说明,使用数据字典为简单的建模项目。其条目有数据流,数据项,数据存储,基本加工等。
LISP 是一种通
用高级计算机程序语言
C语言,Fortran命令式系统内过程式的程序化设计语言
Java,C# 为面向对象结构化程序设计语言
中继器是物理层设备,其作用是对接受的信号进行过再生放大,以延长传输的距离
网桥是数据链路层设备,可以识别MAC地址,及逆行帧转发
交换机是由硬件构成的多端口网桥,也是一种数据链路层设备。
路由器是网络层设备,可以识别IP地址,进行数据包的转发
类图:展现了一组对象接口,协作和他们之间的关系。在面向对象系统的建模中,最常见的就是类图,它给出系统的静态设计图
组件图:展现了一组组件之间的组织和依赖
通信图:通信图也是一种交互图,它强调收发消息的独享或参数的结构组织
部署图:是用来对面向对象系统的物理方面建模的方法,展现了运行时处理节点以及其中构件的配置
三层模式,视图——外模式;存储文件——内模式;基本表——模式
分片透明:指用户不必关系数据是如何分片的,他们对数据的操作在全局关系上进行
复制透明:用户不用关系数据库在网络中各个节点的复制情况,被赋值的数据的更新都由系统自动完成。
位置透明:之用户不必知道所操作的数据放在何处,及数据分配到哪个或者那些站点存储对用户是透明的。
水晶法认为每一个不同的项目都需要一套不同策略,约定和方法论。
并列争球法使用的迭代的方法,其中把每30天一次迭代称为一个冲刺,并按需求的优先级来实现产品多个自组织和自治小组并行的传递增实现产品,协调是通过简短的日常情况会议进行。