软件设计师考试复习
考试题型:选择题、填空题、简答题、综合题
考试范围和典型例题:往年真题 + 课件PPT上的题目
选择题(25个)
控制器由程序计数器(PC)、指令寄存器(IR)、指令译码器、地址寄存器和时序部件构成。
程序计数器(PC)
为了保证程序(在操作系统中理解为进程)能够连续地执行下去,CPU 必须具有某些手段来确定下一条指令的地址。而程序计数器正是起到这种作用,所以通常又称为指令计数器。在程序开始执行前,必须将它的起始地址,即程序的一条指令所在的内存单元地址送入 PC,因此程序计数器(PC)的内容即是从内存提取的第一条指令的地址。当执行指令时,CPU将自动修改 PC 的内容,即每执行一条指令 PC 增加一个量,这个量等于指令所含的字节数,以便使其保持的总是将要执行的指令的地址。由于大多数指令都是按顺序来执行的,所以修改的过程通常只是简单的对 PC 加 1。
当程序转移时,转移指令执行的最终结果就是要改变PC的值,此PC值就是转去的地址,以此实现转移。有些机器中也称 PC 为指令指针 IP(Instruction Pointer)
指令寄存器(IR)
用来保存当前正在执行的一条指令。当执行一条指令时,先把它从内存取到数据寄存器(DR)中,然后再传送至 IR。指令划分为操作码和地址码字段,由二进制数字组成。为了执行任何给定的指令,必须对操作码进行测试,以便识别所要求的操作。指令译码器就是做这项工作的。指令寄存器中操作码字段的输出就是指令译码器的输入。操作码一经译码后,即可向操作控制器发出具体操作的特定信号。
地址寄存器
用来保存当前 CPU 所访问的内存单元的地址。由于在内存和 CPU 之间存在着操作速度上的差别,所以必须使用地址寄存器来保持地址信息,直到内存的读/写操作完成为止
cache地址计算
例题:若主存与 cache 的地址映射采用直接映射方式,某 32 位计算机的 cache 容量为 16KB,cache 块的大小为 16B,问如何通过主存地址求取cache地址?
传值、传引用调用函数
值传递:fun(int x, int y) 函数采用值传递的方式,传入的实参实际上是 a 和 b 的副本而非其本身,所以对副本的改变并不会反应到 a 和 b 本身上。
引用传递:fun(int x,int y)传入的实参实际上是 a 和 b 的引用,对引用的改变会直接反应到 a 和 b 本身上。
防止死锁发生的进程资源数计算
例题:某系统中有 3 个并发进程竞争资源 R,每个进程都需要 5 个 R,不发生死锁的条件?
$$
最少所需资源数 = 进程数 (资源数 - 1)+ 1 = 3(5-1) +1 = 13
$$
给定段页式存储管理系统的地址结构,求解分段、分页情况
求解位示图的大小
某文件管理系统在磁盘上建立了位示图(bitmap),记了磁盘的使用情况。假设计算系统的字长为32位,磁盘的容量为200GB,物理块的大小为1MB,那么位示图的大小有(6400)字,那么位示图需要占用(25)物理块
因为根据题意系统中字长为32位,可记录32个物理块的使用情况。又因为磁盘的容量为200GB,物理块的大小为1MB,那么该磁盘有 $2002^{10}$ 个物理块,位示图的大小为 $2002^{10}/32 = 6400$ 个字。因为位示图占6400个字,即 $6400*4=25600$ 字节, 故需要占用 $25600/1024=25$ 个物理块。
有关极限编程中结对编程的认识
结对编程(Pair programming)是一种敏捷软件开发的方法,两个程序员在一个计算机上共同工作。一个人输入代码,而另一个人审查他输入的每一行代码。输入代码的人称作驾驶员,审查代码的人称作观察员(或导航员)。两个程序员经常互换角色。
模块之间的耦合类型的判断,模块A和模块B通过结构体联系属于那种耦合方式。
标记耦合
给定关系R上的函数依赖集,选择候选关键字
数据库的三级结构/两级映射,中创建聚簇索引通过改变数据库的(内模式)实现
通过25和110端口,判断服务器提供的服务
25端口(SMTP) :25端口为SMTP(Simple Mail Transfer Protocol,简单邮件传输协议)服务所开放的,是用于发送邮件。
110端口(POP3):110端口是为POP3(Post Office Protocol Version 3,邮局协议3)服务开放的,是用于接收邮件的。
SNMP的内容和封装形式
内容:SNMP 报头和协议数据单元 PDU
封装:SNMP 使用 UDP(用户数据报协议)作为第四层协议(传输协议),进行无连接操作。
给定地址,在理由表中寻找匹配项:例如给定地址220.112.179.92
给定扫描仪的分辨率和尺寸,换算成像素大小
媒体分为感觉媒体、表示媒体、表现媒体、存储媒体和传输媒体
- 感觉媒体
感觉媒体指的是能直接作用于人们的感觉器官,从而能使人产生直接感觉的媒体。如文字、数据、声音、图形、图像等。在多媒体计算机技术中,我们所说的媒体一般指的是感觉媒体。 - 表示媒体
表示媒体指的是为了传输感觉媒体而人为研究出来的媒体,借助于此种媒体,能有效地存储感觉媒体或将感觉媒体从一个地方传送到另一个地方。如语言编码、电报码、条形码等。 - 表现媒体
表现媒体指的是用于通信中使电信号和感觉媒体之间产生转换用的媒体。如输入、输出设备,包括键盘、鼠标、喇叭、显示器、打印机等。 - 存储媒体
存储媒体指的是用于存放表示媒体的媒体。如纸张、磁带、磁盘、光盘、SD 卡等。 - 传输媒体
传输媒体指的用于传输某种媒体的物理媒体。如双绞线、电缆、光纤等。
面向对象编程的3个主要特征:封装、继承、多态,其中多态的意义
在程序运行过程中展现出动态的特性
函数重写必须多态实现,否则没有意义
多态是面向对象组件化程序设计的基础特性
考察计算机执行指令的过程中,CPU的哪个部件产生每条指令的操作信号
CPU 的控制器
内存编址,计算芯片个数
典型例题:内存按字节编址,地址从A0000H到CFFFFH的内存;
CFFFFH + 1 -A0000H
有关专利权、商标权、著作权侵权行为的
例题:甲公司购买了一工具软件,并使用该工具软件开发了新的名为“恒友”的软件。 甲公司在销售新软件的同时,向客户提供工具软件的复制品;
该行为侵犯了著作权
C/S体系结构的优点
响应速度较快
界面和操作很丰富
安全性能容易保证,实现多层认证
敏捷开发方法scrum的步骤
Product Backlog、Sprint Backlog、Sprint
CMM软件成熟度叙述判断正确和错误
- CL0(未完成的):过程域未执行或未得到CL1中定义的所有目标。
- CL1(已执行的):其共性目标是过程将可标识的输入工作产品转换成可标识的输出工作产品,以实现支持过程域的特定目标。
- CL2(已管理的):其共性目标集中于已管理的过程的制度化。根据组织级政策规定过程的运作将使用哪个过程,项目遵循已文档化的计划和过程描述,所有正在工作的人都有权使用足够的资源,所有工作任务和工作产品都被监控、控制和评审。
- CL3(已定义级的):其共性目标集中于已定义的过程的制度化。过程是按照组织的剪裁指南从组织的标准过程集中剪裁得到的,还必须收集过程资产和过程的度量,并用于将来对过程的改进上。
- CL4(定量管理的):其共性目标集中于可定量管理的过程的制度化。使用测量和质量保证来控制和改进过程域,建立和使用关于质量和过程执行的定量目标作为管理准则。
- CL5(优化的):使用量化(统计学)手段改变和优化过程域,以对付客户要求的改变和持续改进计划中的过程域的功效。
考察概要设计的定义和功能
在该阶段选择适当的解决方案,将系统分解为若干个子系统,建立整个系统的体系结构
概要设计是一个设计师根据用户交互过程和用户需求来形成交互框架和视觉框架的过程,其结果往往以反映交互控件布置、界面元素分组以及界面整体板式的页面框架图的形式来呈现。这是一个在用户研究和设计之间架起桥梁,使用户研究。
软件模块设计时,可以改进设计质量的是尽量减少高扇出结构、模块的大小适中、将具有相似功能的模块合并。
不能改进设计质量的是:完善模块的功能。
耦合和内聚
例如案例:模块 A、 B 和 C 有相同的程序块, 块内的语句之间没有任何联系,现把改程序块取出来, 形成新的模块 D(内聚)。
巧合内聚
I/O软件,考察辨析
1.隐藏了I/O操作实现的细节
2.向用户提供的是逻辑接口。
3.将硬件和较高层次的软件隔离开来,而最高软件向应用提供一个有好的、清晰且统一的接口,方便用户使用
考察软件设计原则,给定4个选项进行选择
高内聚、低耦合,提高模块的独立性。
磁盘调度管理
先进行移臂调度,再进行旋转调度
加密算法
对称加密,非对称加密
加密算法具体算法
RSA、SHA-1、MD5、RC5,IDEA,AES,DES,3DES
适合对大量的明文消息进行加密传输的加密算法(对称加密)
RC5,IDEA,AES,DES,3DES
动态绑定和静态绑定
静态绑定与动态绑定
动态绑定是指在运行时把过程调用和响应调用所需要执行的代码加以结合
静态绑定是在编译时进行的
数字证书CA
考察:用户AB通过数字证书,AB实现互信的必要条件
CA互换公钥
先序遍历、中序遍历、后续遍历
例如:某二叉树的中序,先序遍历序列分别为{20,30,10,50,40},{10,20,30,40,50},求后序遍历;
排序算法
按时间复杂度对:插入、冒泡、归并、快速进行排序,并找出时间复杂度最低和最高的算法;
网络通信模型
TCP/IP和OSI/RM对应的关系,例如:建立可靠通信,两个模型都是在传输层中完成。
IP地址
IPv6 是设计用于替代现行版本 IP 协议 ( IPv4 ) 的下一代 IP 协议。
- IPv6 地址长度为 128 位,地址空间增大了 296 倍
- 灵活的IP报文头部格式。使用一系列固定格式的扩展头部取代了 IPv4 中可变长度的选项字段。IPv6 中选项部分的出现方式也有所变化,使路由器可以简单路过选项而不做任何处理,加快了报文处理速度
- IPv6 简化了报文头部格式,字段只有 8 个,加快报文转发,提高了吞吐量
- 提高安全性。身份认证和隐私权是 IPv6 的关键特性
- 支持更多的服务类型
- 允许协议继续演变,增加新的功能,使之适应未来技术的发展
邮件传输用到的协议
SMTP,POP3 或 IMAP
25端口(SMTP) :25端口为SMTP(Simple Mail Transfer Protocol,简单邮件传输协议)服务所开放的,是用于发送邮件。
110端口(POP3):110端口是为POP3(Post Office Protocol Version 3,邮局协议3)服务开放的,是用于接收邮件的。
填空题(10个空)
给定计算机系统每个部件的可靠度,求系统的可靠度
指令流水线,求串行方式执行指令和按照流水线方式执行指令需要的时间
将算术表达式用后缀式表示
基于文件索引结构,求解采用二级索引时的文件最大长度为多少字节
给定某软件项目的活动图,问你完成该项目的最少时间是多少天;
假设系统采用PV操作实现进程同步与互斥,若有n个进程共享一台扫描仪,求给定S值对应的等待进程数;
给定某二叉树的先序遍历序列为 ABCDEF ,中序遍历序列为BADCFE ,进行问题分析
解析wb.xyz.com.cn地址的各个构成部分名称
协议://主机名.域名.域名后缀或IP地址/目录/文件名
子网划分,给定210.115.192.0/20地址块,继续划分C类子网;
使用海明吗进行就错时,如果给定数据信息位,则校验位的位数最少位多少?例如信息位为:16位,18位?
根据页面变化表进行物理地址和逻辑地址的转换
位图的计算
最短工期的计算,松弛时间的计算;
例如:活动图
给定服务器的地址,问该地址的构成,例如www.gcu.edu.cn的www是什么?
协议://主机名.域名.域名后缀或IP地址(:端口号)/目录/文件名
给定CIDR类的IPV4地址,问该网络能支持多少主机上网;
10.10.1.0/26
A卷问答题
有哪些地址映射方式,各有什么特点?
- 直接映射:一个内存地址能被映射到的Cache line是固定的。就如每个人的停车位是固定分配好的,可以直接找到。
- 全相联映射:主存中的一个地址可被映射进任意cache line,问题是:当寻找一个地址是否已经被cache时,需要遍历每一个cache line来寻找,这个代价很高。
- 组相联映射:组相联映射实际上是直接映射和全相联映射的折中方案,
什么是死锁?产生死锁的原因和必要条件是什么?
如果一组进程中的每一个进程都在等待仅由该组进程中的其他进程才能引发的事件,那么该组进程是死锁的。
原因:竟争不可抢占性资源,竟争可消耗资源,进程推进顺序不当。
必要条件:互斥条件,请求和保持条件,不可抢占条件和循环等待条件。
进程的基本状态有哪些?试描述进程状态转换图?
进程有初始状态,就绪状态,执行状态,等待状态与终止五个基本状态。
机器语言、汇编语言、高级语言有何区别?
机器语言是一种用二进制代码表示的计算机语言,机器可以直接执行用机器语言编写的程
序。汇编语言是一种用助记符表示的与机器语言一一对应的语言,用汇编语言编写的程序需
经过汇编后才能执行。高级语言是一种接近人类自然语言的与计算机结构无关的语言,用高
级语言编写的程序要经过解释和编译才能执行。
试简述数据库系统的三级模式和两级映射结构
三级模式:
- 概念模式 :概念模式也称模式(Schema) ,是数据库中全体数据的逻辑结构和特征的描述。它由若干个概念记录类型组成,只涉及到型的描述,不涉及具体的值。概念模式的一个具体值称为模式的一个实例,同一个模式可以有很多实例。 对于一个数据库,只有一个概念模式。
- 外模式 :外模式也称用户模式或子模式。是用户与数据库系统的接口,是用户用到的那部分数据的描述。它是用于满足不同数据库用户需求的数据视图,是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是对数据库整体数据结构的子集或局部的重构。外模式是概念模式的子集,一个数据库可以有若干个外模式。
- 内模式 :内模式也称存储模式。是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式。定义所有的内部记录类型、索引和文件的组织方式,以及数据控制方面的细节。 一个数据库只能有一个内模式。
两级映像:
- 模式/内模式的映像:该映像存在于概念模式和内模式之间,实现了概念模式到内模式之间的相互转换。
- 外模式/模式的映像:该映像存在于外模式和概念模式之间,实现了外模式到概念模式之间的相互转换。
什么是指令,什么是程序?
指令是机器完成某种操作的命令,典型的指令包括操作码和地址码两部分。操作码用来指出
执行什么操作(如加、传送),地址码用来指出操作数在什么地方、程序是有序指令的集合,
用来解决某一特定问题。
简述面向对象程序的主要特征?
主要是对各种事物能形象的描述并且模拟在计算机上运行它兼容以上面向过程的好多功能 优点是界面比较好做 缺点执行速度和容量没有上面的快。
什么是软件概要设计?该阶段的基本任务是什么?
把一个软件需求转换为软件表示时,首先设计出软件总的体系结构。称为概要设计或结构设计。
基本任务:
- 设计软件系统结构
- 进行数据结构及数据库的设计
- 编写概要设计的文档
- 评审
B卷问答题
说明计算机系统的层次结构
- 微程序机器级
- 一般机器级
- 操作系统级
- 汇编语言级
- 高级语言级
请简述操作系统的作用、特性、功能及分类。
作用:通过资源管理提高计算机系统的效率,改善人机交互界面,向用户提供友好的工作环境。
特性:并发性,共享性,虚拟性,不确定性。
功能:处理机管理,文件管理,存储管理,设备管理,作业管理。
类型:批处理操作系统,分时操作系统,实时操作系统。
简要描述外设进行DMA操作的过程,DMA方式的主要优点
- 外设发出 DMA 请求
- CPU 响应请求,DMA 控制器从 CPU 处接管对总线的控制
- DMA 控制器执行数据传输操作
- 向 CPU 报告 DMA 操作结束
主要优点:数据传输速度快
说明关系数据库规范化的过程
- 第一范式(1NF) : 属性不可再分。
- 第二范式(2NF) : 满足第一范式,且所有非主属性完全函数依赖于候选关键字。
- 第三范式(3NF) : 满足第二范式,且所有非主属性不传递函数依赖于候选关键字。
简述面向对象程序的主要特征?
面向对象程序设计的三个主要特征:封装、继承、多态。
- 封装:
- 把对象的属性和方法看成一个密不可分的整体。
- 信息隐藏,把不需要让外界知道的信息隐藏起来。
- 继承:子类继承父类的属性和方法。
- 多态:一种行为具有多种不同表现形式。
什么是需求分析?
开发人员准确地理解用户的需求,进行细致的调查分析。将用户的需求陈述转化为需求定义,再由需求定义转换为需求规格说明的过程。
需求分析阶段的基本任务是什么?
- 问题识别
- 分析与综合
- 编写文档
简述一下结构化开发方法中,体系结构设计、数据设计、接口设计和过程设计的主要内容
- 体系结构设计:定义软件的主要结构元素及其关系。
- 数据设计:基于实体联系图确定软件涉及的文件系统的结构和数据库的表结构。
- 接口设计:描述用户界面,软件和其他硬件设备、其他软件系统及使用人员的外部接口,以及各种构件之间的内部接口。
- 过程设计:确定软件中各个组成部分内的算法和数据结构,并选定某种过程表达形式来描述各种算法。
综合题(2题)
- 数据流图 (重点:2016年下半年第一题、2017年上半年第一题)
- 数据库设计(重点:2017年上半年第二题、2018年下半年第二题)