软件设计师
本次考试比较紧急,只是临时突击一下,没有参考书,只是刷了一些题
2009年上半年:
上午:
-
海明校验码
在接收器中要进行k个奇偶检查,检查结果可以表示为一个k位的二进制,他最多可以确定2k种状态,其中只有一种是正确的,剩下的(2k-1)种状态可以用来判定误码的位置。
(2k-1)>= n+k (因为必须能标记所有的位置)
-
磁盘容量的计算
-
非格式化容量 = 面数*(磁道数/面)* (内圆周长*最大位密度)
最后两个也相当于 每道的容量
-
格式化容量 = 面数*(磁道数/面)*(扇区数/道)*(字节数/扇区)
注意:直径与半径;字节换算成MB,初一1024*1024;
-
-
存储器
按访问方式:按地址访问和按内容访问的存储器
相联存储器:按内容访问
-
系统总线
总线分为:
-
芯片内总线
-
元件级总线
-
内总线:系统总线
-
外总线:连接外设
连接处理机的处理器、存储器的总线是内总线;
系统总线按传输的内容可分为:数据总线、地址总线、控制总线
-
-
编码
+-0的补码和移码相同;
补码:0 0000000
移码:1 0000000 (偏移量2^(n-1):将补码的符号位取反 )
-
流水线
吞吐率:单位时间执行指令的个数
建立时间:流水线到达最大吞吐率所需的时间
吞吐率=指令条数 / n条指令所用时间
EG:n/(8t+3(n-1)t);
第一条指令所需时间最长,后面的指令所用时间都是最长子过程(3t)
-
漏洞扫描系统
不能发现入侵者,入侵检测系统才可以
-
数字签名
保护完整性和真实性
-
特洛伊
被感染的是服务器端
-
软件著作权
自软件开发完成后就自动产生
对于系统工程,每个子模块能够完成某一项功能,该模块开发完之后就有了著作权。
-
模拟视频信息
A/D变换(模数变换):将模拟信号经A/D变换和色彩空间变换等过程
-
重构
敏捷方法中,重构是一种重新组织的技术,可以简化构件的设计而无需改变其功能或者行为。
-
RUP
角色:谁做
制品:做什么
活动:怎么做
工作流:什么时候做
-
关键路径和松弛时间
关键路径:持续时间最长的路径
松弛时间:
某任务的松弛时间=min{关键路径持续时间-从A开始的最终任务的持续时间}
-
软件风险的特性:不确定性和损失
救火和危机管理:是对不适合但经常采用的软件风险管理策略
已知风险和未知风险:是对软件风险进行的一种分类
-
反编译
不能得到高级语言源代码,只能得到功能上等价的汇编程序。
-
动态语言:脚本语言
-
磁盘调度
在移臂调度算法中,先来先服务和最短寻找时间优先可能会改变移动臂的方向
-
软件能力成熟度模型:CMM(五个等级)
第一级 初始化级:
第二级 可重复级:建立基本的项目管理和实践来跟踪项目费用、进度和功能特性
第三级 已定义级:采用标准开发过程构建系统
第四级 已管理级:管理级寻求更主动的应对系统的开发问题
第五级 已优化级:连续地监督和改进标准化系统开发过程
-
RUP的四个阶段
初启阶段:文档
精化阶段:补充需求分析、软件架构描述、可执行架构原型
构建阶段:具有最初能力的在适合的平台上集成的软件产品
移交阶段:移交给用户产品发布版本
-
ISO/IEC 9126软件质量度量模型
质量特性:
效率质量特性:时间特性、资源特性两个质量子特性
-
McCabe度量法
V(G)= m(有向弧数)-n(节点数)+2
-
开发文档
系统开发人员和项目管理人员在开发期内进行沟通的文档:系统开发计划、系统开发月报、系统开发总结报告
-
软件复审
-
系统分析阶段:软件的可移植性问题以及可能影响软件维护的系统界面
-
系统设计阶段:容易修改、模块化、功能独立
-
系统实施阶段:代码复审,强调编码风格和内部说明文档这两个影响可维护性的因素
-
-
分支覆盖发所需测试用例个数
确保每一个判定表达式都获得"真"和"假"值,或每个真假分支都执行一次,即数最后被执行命令的分支条数(不是分支的个数)
-
软件维护
适应性维护:银行系统对数据类型的修改
-
控制类、边界类、实体类的职责
系统分析阶段将分析类分为三种类型
实体类:主要负责数据管理和业务逻辑 Bean、持久化层、可以有行为(必须与他所代表的实体对象密切相关)
边界类:和用户进行交互,即UI
控制类:实体类和边界类的交互
-
类间关系
依次增强:依赖、关联、聚合、组合、继承
依赖:类A的方法使用了类B的对象
关联:类与类之间的联系,使一个类知道另一个类的属性和方法,可以是单向的,也可以是双向的。EG:成员变量
聚合:关联的一种,整体和个体的概念。EG:汽车类与轮胎类、引擎类。
注:关联是处在同一层面上的关系,聚合不是同一层面
组合:类A的部分是由类B的对象组成,并且类A控制类B的生命周期。
部分和整体的生命周期一样
继承:
-
面向对象设计
装饰设计模式:在无法生成子类的情况下,给一个对象动态的增添职责
享元设计模式:复用内存中已经存在的对象,降低系统创建对象实例的性能消耗。
适配器设计模式:已存在的类的接口不满足我们的需要,将已有的接口转换成我们希望的接口
-
组件图(构件图)
他描述的是软件系统中遵从并实现一组接口的物理的、可替换的软件模块
构件图=构件(Component)+接口(Interface)+关系(Relationship)+端口(Port)+连接器(Connector)
注:构件图已经"实现了"一组接口
构件图的调用关系描述为:某类调用另一个类实现的XXX接口
-
正规式
(b*(ab*a)*)* 注意:ab*不等于(ab)*
-
文法的语言
一个文法的语言是该文法能产生的句子的集合,一个文法产生的句子是从文法开始符号出发推导出的所有终结符号串。
仅包含终结符号串。
-
数据库数据模型
关系模型:采用二维表格结构表达实体类型及实体间联系的数据模型
一个关系模型由若干个关系模式集合(类型),一个关系是一个实例,也是一张表(变量)
-
关系的分解:将每个选项都看一遍(少了部门名)
-
关系代数表达式
R X S:笛卡尔积
德尔塔(1<6):第一列的值小于第六列的值
π3,4,5:投影三四五列
-
查找运算和查找表
哈希表和二叉排序树都可以在查找的过程中动态的创建
顺序查找适用顺序存储和链式存储
二分法要快速定位中间元素,链表不合适
-
图
连通无向网的最小生成树,顶点数恰好比边数多1
AOV网:定点表示活动,边表示活动之间的优先级
AOE网:定点表示事件,边表示活动,边上的权值表示活动的持续时间
-
二叉排序树:左边的节点< 中间节点 < 右边的节点
对二叉排序树进行中序遍历可以得到一个关键字递增排序的序列
如果关键字初始序列有序,则构造出的二叉树就一定是单支树(每个节点只有一个孩子)
-
栈与队列
入队和出队的操作时间复杂度都是O(1)
队列长度n可以确定,用顺序存储比链式存储效率更高
利用两个栈可以模拟一个队列的操作;反之不行,一个线性序列经过队列结构后是不变的,但是栈可以产生多种不同的输出结果
-
完全二叉树与满二叉树
完全二叉树适合采用顺序存储结构
-
算法设计
回溯法:深度优先策略,从根节点出发搜索解空间树。
动态规划:求解具有某种最有性质的问题。
-
归并排序算法:分治法
2-路归并排序:将两个有序序列合并成一个有序序列。
-
B类网络的子网掩码255.255.224.0
转换二进制:
11111111.11111111.11100000.00000000
比正常的B类子网掩码多出了三个"1"位,所以把B类网络划分成了8个子网
-
Windows server 路由类型
直连网络:
远程网络:
主机路由:首先访问
默认路由:全部失败时才查找
持久路由:
-
<body>标签的属性
Alink:正在点击标签的颜色
Vlink:被点击过标签的颜色
Background:设置背景图片的URL
Bgcolor:设置文档整体背景颜色
-
XML的标记之间不可以交叉嵌套
下午:
-
DFD中的外部实体和数据存储
-
本题考查数据库概念结构设计及概念结构向逻辑结构转换的问题
阅读对现实问题的描述,确定确定实体及其联系
"每个员工中有一个是经理",员工是经理的超类型,经理是员工的子类型。
注:m与n随意,但是不能出现重名
注:实体联系图和关系模式
答案规范:
-
经理关系模式的主键:员工编号
外键:员工编号
-
关系模式:紧急联系人(员工编号,姓名,联系电话)
-
-
序列图与用例图
序列图:对 对象 之间传递消息的时间顺序的可视化表示
http://www.cnblogs.com/silent2012/archive/2011/09/14/2172219.html
序列图的结构
序列图(Sequence Diagram)是由对象(Object)、生命线(Lifeline)、**(Activation)、消息(Messages)、分支与从属流等元素构成的。
消息:一个对象向其他对象发信号,或者调用其他对象
在UML中消息分为5类:递归调用、普通操作、返回消息、异步调用的消息、过程调用的消息。
用例图:
Include与extend之间的关系:注意箭头方向、extend写法
http://www.cnblogs.com/ndxsdhy/archive/2011/06/19/2084698.html
都是虚线,
extend拓展用例指向需要拓展的用例,多出了拓展条件
include需要拓展用例指向拓展的用例
-
《Include》: 表示一个用例包含另一个用例,即要完成包含用例就一定要执行被包含用例。
-
《extend》:表示一个用例扩展到另一个用例,这里有一点需要注意:在执行一个被扩展用例时,不一定执行扩展用例。即扩展用例的执行是受条件限制的,是可选的。这一点,是区别两个用例之间的关系是《包含》还是《扩展》的依据。
识别参与者:和本系统交互的人员和"外部系统"
识别用例:通过判断特定参与者发起或处触发与系统的哪些交互,来识别用例,并建立与参与者的关系
用例之间的继承关系表示子类型 "是一种"父类型,父类型是一个"抽象泛化用例",具有其他事务类型共有的属性和行为,每个具体的事务类型继承他,并实现自己特定的操作。
-
全源最短路径算法
注意:时间复杂度写法:O(n3)
-
类图---桥接设计模式
http://blog.****.net/victor372134/article/details/30047621
属性和操作之前可附加一个可见性修饰符。加号(+)表示具有公共可见性。减号(-)表示私有可见性。#号表示受保护的可见性。省略这些修饰符表示具有package(包)级别的可见性。如果属性或操作具有下划线,表明它是静态的。在操作中,可同时列出它接受的参数,以及返回类型,如图A的"Java"区域所示。
2009年下半年:
上午:
-
CPU
CPU产生每条指令的操作信号
PC不能存储算数/逻辑单元
控制器:PC,指令寄存/译码器,
-
RISC&CISC
RISC:采用硬布线逻辑执行指令
-
浮点数
IEEE754:阶码采用移码,尾数采用原码
如果尾数采用补码,那么(-1/2),原码是规格化数,但是补码并不是规格化数
-
校验码
海明码:码距大于等于1,没有纠错功能
循环冗余校验码:码距必定等于1,有纠错功能
-
Cache
设计思想:在合理的成本下提高命中率
替换算法的时间复杂度不是影响命中率的关键要素
-
网络安全体系设计:是逻辑设计工作的一部分
数据库容灾:系统安全和应用安全
-
包过滤防火墙
依据:原IP地址、源端口号;目标IP地址,目标端口号
-
数字证书
用户通过"CA的签名",来验证一个网站的真伪
-
专利权
用于控制测试过程的程序
-
软件许可使用
独占许可使用:软件著作权人也不能使用
独家许可使用:软件著作权人可以使用
普通许可使用:可以授予多个第三方使用,自己也可以使用
-
位图和矢量图
位图占用空间较大,侧重于获取和复制,显示速度快。
主要指摄像机或扫描仪
-
结构化方法进行系统分析
采用数据流图来建立系统的"逻辑模型"
DFD:摆脱物理内容,在逻辑上描述系统的功能、输入、输出、数据存储
-
面向对象开发方法Booch,Coad,OMT
Jackson是面向数据结构的开发方法
-
回归测试:在软件发生变更之后进行的测试
-
风险预测
从风险发生的可能性大小以及风险发生所产生的后果是否严重
-
错误:中间代码与机器语言代码必须在指令结构上一致
中间代码优点:提高程序可移植性,不同的高级语言产生的中间代码可能相同,与硬件平台无关
-
-
CMM:第四级 已管理级
收集对软件过程和产品质量的详细度量,对软件过程和产品都有定量的理解和控制。
-
软件设计模型
关注:新系统的总体结构、代码设计、处理过程、数据结构、界面模型
对项目范围的关注在软件设计之前
-
环路复杂度计算公式:V(G)=m-n+2
-
系统开发计划
包括:工作任务分解表、PERT图、甘特图和预算分配表
-
正确性维护:系统开发阶段已经发生,但系统测试阶段没有发现的错误
-
极限编程:价值观、原则、实践、行为
价值观:沟通、简单性、反馈、勇气
-
面向对象分析的概念
回答软件系统需要解决什么问题,并不考虑系统实现和软件的测试问题,建立独立于系统实现的系统分析模型,关注点是问题域和系统责任
-
面向对象设计原则
借助面向对象中的抽象类、接口,使得高层模块仅仅和接口耦合,而和实际的底层模块没有依赖关系
-
设计模式
单例设计模式:
组合设计模式:表示"部分-整体"的层次结构,对部分和整体的使用具有一致性
装饰设计模式:
-
观察者设计模式:
http://blog.****.net/itachi85/article/details/50773358
它定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态变化时,会通知所有的观察者对象,使他们能够自动更新自己
-
语义错误
-
对存储分配策略:链表的节点空间根据需要申请和释放
-
文法---推导
关系树最底下的就是终结符,他不在推导中显示
-
二叉树的遍历
先序遍历+中序遍历===》后序遍历
中序遍历+后序遍历===》先序遍历
层序遍历+中序遍历===》先序遍历
-
图的遍历
采用深度优先搜索和广度优先搜索遍历图的时间复杂度与采用哪一种存储结构无关(邻接表和邻接矩阵),区别仅在于对顶点的访问次序不同
-
在链表存储方式下,串替换最不方便,因为串比较、串连接、求子串
-
网络设备
物理层:中继器(信号放大)
数据链路层:网桥(识别Mac地址,进行帧转发),交换机(多端口网桥)
网络层:路由器
-
tractable易处理的
下午:
-
DFD
加工:圆角矩形,就是系统的功能
-
ER图
1:* == 1对n
弱实体:某实体的存在总是依附于其他的实体,不能单独存在
-
用例图和活动图
-
用例图
"是一种"关系的参与者
-
活动图
-
-
回溯法:0-1背包问题
采用穷举法搜索整个完全二叉树,搜索的节点数为2n-1,要计算根节点(数节点个数就好)
-
组合设计模式:文件/目录树
同时容器对象与抽象构件类之间还建立一个聚合关联关系,在容器对象中既可以包含叶子,也可以包含容器,以此实现递归组合,形成一个树形结构。
https://www.cnblogs.com/Bobby0322/p/4191895.html
2010年上半年:
上午:
-
-
中断的分类
不可屏蔽中断:电源掉电,软中断
可屏蔽中断:打印机
-
-A异或B===A异或-B===AB+-A-B(最好用真值表)
-
宏病毒:使用应用程序创建文档
-
专利管理部门授予专利权的基本原则:先申请原则
-
职务作品
-
一般职务作品
没有使用单位提供的物质条件
作者有著作权,单位有优先使用权
-
特殊职务作品
利用法人提供的物质条件去创作,或者有特殊合同约定
作者只拥有署名权,著作权归单位所有
-
-
MPEG标准
MPEG-1:VCD
MPEG-2:DVD
MPEG-7:多媒体内容接口描述标准
MPEG-21:多媒体应用框架标准
-
面向对象软件开发
面向对象分析:抽取和整理用户需求,并建立问题域精确模型
面向对象设计:采用协作的对象、对象的属性和方法说明软件解决方案的一种
面向对象实现:
面向对象测试:
-
软件项目计划:gantt图与PERT图
gantt图(水平条状图):表示任务的持续时间、任务之间的并行,但不能很清楚的描述任务之间的依赖关系
PERT图(网络模型):描述一个项目的各个任务之间的关系
关键路径:最长的一条
注:只有非关键路径上的节点才能延迟执行,
最迟开始时间=关键路径长度-其节点后的任务持续时间(不包括他自己连接的活动持续时间)
-
后缀表达式:
-
系统采用信箱通信方式:进程调用send原语被设置成"等信箱"状态,表示指定的信箱中存满了信件
-
知道十六进制逻辑地址:2C25H
2 ----页号
C25H----页内地址
用页号对应的页帧号替换页号,再加上C25H 既得十六进制物理地址
-
软件变更管理和配置管理
要有效进行软件变更控制,需要借助配置数据库和基线的概念
配置数据库: