一、综合知识
-
CRC校验码计算,使用模2运算得出的余数
流水线加速比 = 不用流水线的时间 / 使用流水线的时间
存取速度 CPU>Cache>内存>外存
二、系统配置和性能评价
- 评价程序中准确度最高的是真实程序,使用最频繁的是核心程序(基准测试程序)。
- 数据库性能调整:cpu/内存使用情况、数据库设计、数据库管理、进程状态、硬盘剩余空间、日志文件大小、查询语句性能
- 应用系统性能调整:可用性、相应时间、并发用户数、特定应用的系统资源占用
三、操作系统知识
- 一级地址索引地址块数量=磁盘索引块/每个地址项大小
- 微内核功能代码不可直接调用
- 实时操作系统中,外部事件必须在被控对象允许的时间内处理
四、数据库技术基础
- ER合并冲突
- 属性冲突:同一属性被用于不同的ER图,属性的类型、取值范围、单位可能不一致
- 命名冲突:意义相同的属性在不同的ER图命名不一致,或者相同命名的意义不一致
- 结构冲突:大部分可以将B表合进A表的情况为结构冲突
- 数据库透明性
- 分片透明性:不关心如何分块存储
- 位置透明性:不关心数据存储的物理地址
- 逻辑透明性: 不关心局部使用的是哪种数据模型
- 复制透明性: 不关心复制的数据从何而来
- 无损分解:分解后的关系模式能够还原出原关系模式
- 分布式数据库基本概念,在个节点独立,全局统一。因此需要定义全局的逻辑结构,称为全局概念模式,全局外模式是全局概念模式的子集,分片模式和分布模式分别描述数据在逻辑分片方式和物理上各节点的分布形式。
- 数据仓库四大特点
- 面向主题:数据按主题组织
- 集成的: 消除了源数据中的不一致性,提供整个企业的一致性全局信息
- 相对稳定的: 主要进行查询操作,只有少量的修改和删除操作
- 反映历史变化的: 随着时间变化,记录了企业从过去某一时刻到当前各个阶段的信息,可对发展历程和未来趋势做定量分析和预测
- 数据库中的范式总体结构
- 1NF 属性值都是不可分的原子
- 2NF 消除非主属性对候选键的部份依赖
- 3NF 消除非主属性对候选键的传递依赖
- BCNF 消除主属性对候选键的传递依赖
五、计算机网络
- 交换机初始MAC地址表为空,通过互相交换学习建立
- 网络层核心是IP协议,单位是分组,分组交换
- DHCP服务器(负责自动分配IP)
- PTR记录,通过IP查询域名
六、信息安全
- 破坏信息完整性是指数据被非授权地进行增删改或破坏而受到损失
- MINE扩展了电子邮件标准,但是不用于保障电子邮件安全
- 数字签名:生成消息摘要的目的是防止篡改,对摘要进行加密的目的是防止抵赖
七、软件工程基础知识
- CMM级别
- 初始级 完全依靠个人努力
- 可重复级 基本的过程管理
- 已定义级 文档化、标准化,标准的软件过程
- 已管理级 有详细的度量标准,有定量的理解和控制
- 优化级 加强了定量分析,能不断持续地改进
- CMMI级别
- 初始级 过程不可预测且缺乏控制
- 已管理级 过程为项目服务
- 已定义级 过程为组织服务
- 定量管理 过程已度量和控制
- 优化级 集中于过程改进和优化
- 内聚
- 偶然内聚:无直接关系
- 逻辑内聚:逻辑相似,参数决定
- 时间内聚:同时执行
- 过程内聚:特定的过程顺序
- 通信内聚:相同的数据结构、相同输入输出
- 顺序内聚:顺序执行,上一个的输出是下一个的输入
- 功能内聚:共同作用,缺一不可
- 耦合
- 无直接耦合:无直接联系
- 数据耦合:传递数据值调用
- 标记耦合:传递数据结构
- 控制耦合:传递变量,根据变量选择执行功能
- 外部耦合:模块间通过软件之外的环境联合
- 公共耦合: 通过一个公共数据环境相互作用的那些模块间的耦合
- 内容耦合: 直接使用另一个模块的内部数据,或通过非正常入口转入另一个模块内部
- 测试类型
- 动态测试:程序运行时测试(黑盒:功能测试、白盒:结构性测试,代码测试、灰盒:黑白结合)
- 静态测试:人工审查(桌前检查:程序员自检、代码审查:程序评审会、代码走查:开会的形式,测试人员提供测试用例,手动运行测试用例,检查代码逻辑)
- 软件生命周期:软件定义、软件开发、软件运行、软件维护
- 软件活动主要包括软件描述、软件开发、软件有效性验证、软件进化
八、项目管理
- 范围定义的输入包括:项目章程、项目范围管理计划、组织过程资产、批准的变更申请
- 配置项
- 产品组成部份的工作成果:需求文档、设计文档、源代码、测试用例
- 项目管理和机构支撑过程域产生的文档:工作计划、项目质量报告、项目跟踪报告
九、UML建模和设计模式
1.图形代号
- 实线(箭头):关联关系,唐僧包含徒弟,1:n,1:1,n:n
- 虚线实三角:依赖关系,A的某个方法里B作为参数出现,A指向B的依赖
- 实线空三角:泛化关系,A继承B,即A指向B的泛化
- 实线空菱形:聚合关系,汽车包含轮胎和引擎,部份指向整体
- 实线实菱形:组合关系,聚合的强关联,整体和部份的生命周期相同,部份指向整体
- 虚线空三角:实现关系,A实现(implements)B,A指向B的实现
- 设计模式
- 创建型设计模式
抽象工厂模式(Abstract Factory):提供一个接口,可以创建一系列相关或相互依赖的对象,而无需指定他们具体的类。
构建器模式(Builder):将一个复杂类的表示与其构造相分离,使得相同的构建过程能够得出不同的表示。
工厂方法模式(Factory Method):定义一个创建对象的接口,但由子类决定需要实例化哪一个子类。使得子类实例化过程推迟。
原型模式(Prototype):用原型实例指定创建对象的类型,并且通过拷贝这个原型来创建新的对象。
单例模式(Singleton):保证一个类只有一个实例,并提供一个访问它的全局访问点。 - 结构型设计模式
适配器模式(Adapter):将一个类的接口转换成用户希望得到的另一种接口。它使原本不相容的接口得以协同工作。
桥接模式(Bridge):将类的抽象部分和它的实现部分分离,使他们可以独立的变化。
组合模式(Composite):将对象组合成树形结构以表示“整体-部份”的层次结构,使得用户对单个对象和组合对象的使用具有一致性。
装饰模式(Decorator):动态地给一个对象添加一些额外的职责。它提供了用子类扩展功能的一个灵活替代,比派生一个子类更加灵活。
外观模式(Facade):定义一个高层接口,为子系统中的一组接口提供一个一致的外观,从而简化了该子系统的使用。
享元模式(Flyweight):提供支持大量细粒度对象共享的有效方法。
代理模式(Proxy):为其他对象提供一种代理以控制这个对象的访问。 - 行为型设计模式
职责链模式(Chain Of Responsibility):通过对多个独享处理请求的机会,减少请求的发送者和接收者之间的耦合。将接收对象链接起来,在链中传递请求,知道有一个对象处理这个请求。
命令模式(Command):将一个请求封装为一个对象,从而可用不同的请求对客户进行参数化,将请求对象排队或记录请求日志,支持可撤销操作。
解释器模式(Interpreter):给定一种语言,定义它的文法表示,并定义一个解释器,该解释器用来根据文法表示来解释语句中的句子。
迭代器模式(Iterator):提供一种方法来顺序访问一个聚合对象中的各个元素而不需要暴露该对象的内部表示。
中介者模式(Mediator):用一个中介对象来封装一系列对象交互。它使各对象不需要显示的互相调用,从而达到低耦合,还可以独立的改变对象恢复到原先保存的状态。
备忘录模式(Memento):在不破坏封装性的前提下捕获一个对象的内部状态,并在该对象之外保存这个状态,从而可以在以后将该对象恢复到原先保存的状态。
观察者模式(Observer):定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动更新。
状态模式(State):允许一个对象在其内部状态改变时改变它的行为。
策略模式(Strategy):定义一系列算法,把他们一个个封装起来,并且使它们之间可互相替换,从而让算法可以独立于使用它的用户而变化。
模板方法步骤(Template Method):定义一个操作中的算法骨架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构即可重新定义算法的某些特定步骤。
访问者模式(Visitor):表示一个作用于某对象结构中的各元素的操作,使得在不改变各元素的类的前提下定义作用于这些元素的新操作。
十、嵌入式技术
- 嵌入式实时操作系统要求系统再投入运行前即具有可预测性和确定性。
- 实时操作系统(RTOS)提供及时响应和高可靠性。
十一、软件架构设计
- 基于架构的软件开发模型(ABSDM)把整个基于架构的软件过程划分为架构需求、设计、文档化、复审、实现、演化。大多数架构都是抽象的,由一些概念上的构件组成。要让系统分析师和程序员去实现架构,必须对架构进行文档化。架构文档化过程的主要输出结构是架构需求规格说明和测试架构需求的质量设计说明书这两个文档。
- ESB(企业服务总线)是构建基于SOA(面向服务的体系结构)解决方案时所使用基础架构的关键部份,是由中间件技术实现并支持SOA的一组基础架构功能。在SOA分层模型中,ESB用于组件层以及服务层之间,它能够通过多种通信协议连接并集成不同平台上的组件将其映射成服务层的服务。