计算机软考(一)中级软件设计师与网络工程师:软件工程与UML设计模式、数据库规范化(1NF-BCNF)、知识产权法与网络协议体系

覆盖软考中级(软件设计师、网络工程师、系统集成项目管理工程师)综合知识与应用技术核心考点:软件生命周期模型、UML关系与23种GoF设计模式、关系代数与范式分解、计算机软件保护条例与专利法、子网划分与路由协议。

Level
basic
Languages
zh → zh
Cards
32
Markdown
计算机软考(一)中级软件设计师与网络工程师:软件工程与UML设计模式、数据库规范化(1NF-BCNF)、知识产权法与网络协议体系 (.md)

Flashcards (32)

#Front (Term / Question)Back (Definition / Answer)ExampleMultiple-Choice Options
1在软考《计算机网络与信息安全》中,IPv4 CIDR 无分类编址子网划分、私有 IP 地址范围、常见应用层协议默认端口号(FTP/SSH/Telnet/SMTP/DNS/DHCP/HTTP/POP3/SNMP/HTTPS)是什么?1)三大类私有 IP 地址范围:A类 `10.0.0.0/8`(`10.0.0.0 ~ 10.255.255.255`);B类 `172.16.0.0/12`(`172.16.0.0 ~ 172.31.255.255`);C类 `192.168.0.0/16`(`192.168.0.0 ~ 192.168.255.255`);自动专用地址 APIPA 为 `169.254.x.x`。2)子网掩码 `/n` 拥有主机位数 $m = 32 - n$,每个子网可用主机数为 **$2^m - 2$**(扣掉全0网络地址和全1广播地址)。3)必背端口号及底层传输协议:**FTP(20数据连接 / 21控制连接,基于TCP)**、SSH(22,TCP)、Telnet(23,TCP)、**SMTP(25,TCP)**、**DNS(53,查询用UDP,主辅区域传送用TCP)**、**DHCP(客户端68 / 服务端67,UDP)**、TFTP(69,UDP)、HTTP(80,TCP)、POP3(110,TCP)、IMAP(143,TCP)、**SNMP(管理进程162接收Trap / 代理进程161,UDP)**、HTTPS(443,TCP/TLS)。
2数据库事务的四大特性(ACID)与并发控制中“三级封锁协议”分别解决了哪三类不一致问题(丢失修改、不可重复读、读脏数据)?事务四大特性:**原子性(Atomicity,全做或全不做,由日志 Undo 保障)、一致性(Consistency)、隔离性(Isolation,由并发封锁/MVCC保障)、持久性(Durability,由日志 Redo 保障)**。并发三大异常与三级封锁协议:1)**一级封锁协议**:事务 T 在修改数据 R 之前必须先对其加 X 锁(排他锁),直到事务结束才释放——解决**【丢失修改】**;2)**二级封锁协议**:在一级基础上,事务 T 在读取数据 R 之前必须先加 S 锁(共享锁),**读完后即可立即释放 S 锁**——解决丢失修改和**【读“脏”数据】**;3)**三级封锁协议**:在一级基础上,事务 T 在读取数据 R 之前先加 S 锁,且**直到事务结束才释放 S 锁**——彻底解决丢失修改、读脏数据和**【不可重复读】**。
3计算机组成中,海明校验码(Hamming Code)的校验位个数公式 $2^k \ge n + k + 1$ 与循环冗余校验码(CRC 模2除法)的计算规则是什么?1)**海明码**:采用奇偶校验和分组交叉校验,具有检错 2 位、**纠错 1 位**的能力。设有效数据位为 $n$ 位,海明校验位为 $k$ 位,则必须满足不等式 **$2^k \ge n + k + 1$**(或 $2^k - 1 \ge n + k$),校验位依次插入在 $2^0, 2^1, 2^2, \dots, 2^{k-1}$(即第 1, 2, 4, 8, 16... 位)上。2)**CRC 循环冗余校验码**:具有极强检错能力(无硬件自动纠错能力,通常结合重传),若生成多项式 $G(x)$ 的最高次幂为 $r$(二进制有 $r+1$ 位),则在原始信息码后面先补 **$r$ 个 0**,然后对生成多项式对应的二进制串做**【模 2 除法(按位异或 XOR,不进位不借位)】**,所得 $r$ 位余数即为 CRC 校验码。
4计算机组成原理中,RISC(精简指令集计算机)与 CISC(复杂指令集计算机)的八大核心对比特征是什么?1)指令数量与使用频率:**CISC** 指令系统庞大复杂、字长不固定、使用频率两极分化;**RISC** 只保留使用频率最高的 20% 简单指令,指令字长固定;2)寻址方式:CISC 寻址方式多而复杂;RISC 寻址方式少而简单;3)访存指令限制:CISC 许多算术逻辑指令可直接访问内存;**RISC 严格采用 Load/Store 架构,只有 Load(取数)和 Store(存数)指令才能访问主存**,其余运算指令一律在通用寄存器之间进行;4)通用寄存器数量:RISC 拥有大量通用寄存器(采用寄存器窗口重叠技术);5)控制器实现方式:CISC 多采用**微程序控制器**;**RISC 绝大多数采用硬布线(组合逻辑)控制器**以追求单周期执行与高效指令流水线。
5Linux 常用网络与系统管理命令及配置文件(`/etc/resolv.conf`、`/etc/hosts`、`chmod 755`、`ps`、`netstat`、`traceroute`)的作用是什么?1)核心网络配置文件:`/etc/resolv.conf` 配置 **DNS 域名服务器地址**(`nameserver`);`/etc/hosts` 配置本地静态主机名与 IP 映射(优先级高于 DNS);2)文件权限 `rwxr-xr-x`(数字表示法:`r=4, w=2, x=1`,故所有者 `rwx=7`、所属组 `r-x=5`、其他用户 `r-x=5`,即 `chmod 755`;目录必须具有 `x` 执行权限才能 `cd` 进入);3)网络排错命令:`ping`(基于 ICMP 回显请求/应答测试连通性)、`traceroute` / Windows `tracert`(利用 IP 首部 TTL 从 1 递增触发 ICMP 超时报文追踪路由跳数)、`netstat -anp`(查看网络连接、路由表与端口监听进程)。
6行为型十一种设计模式中,策略(Strategy)、状态(State)、观察者(Observer)、模板方法(Template Method)、责任链(Chain of Responsibility)、命令(Command)与访问者(Visitor)的核心特征是什么?1)**Strategy(策略)**:定义一系列算法并封装起来,使它们可以【由客户端自由相互替换】;2)**State(状态)**:允许一个对象在其内部状态改变时自动改变它的行为(看起来似乎修改了它的类,状态转换常由 Context 或 State 子类内部自动触发);3)**Observer(观察者/发布-订阅)**:定义对象间的一种一对多依赖关系,当目标(Subject)状态改变时,所有依赖于它的观察者(Observer)都得到通知并自动更新;4)**Template Method(模板方法)**:在父类中定义一个操作中的算法骨架,而将一些可变步骤延迟到子类中实现;5)**Command(命令)**:将一个请求封装为一个对象,从而支持请求排队、日志记录及【可撤销(Undo)操作】。
7在分布式数据库与大数据架构中,CAP 定理与 BASE 理论的含义是什么?备份策略中完全备份、增量备份与差异备份的恢复速度与空间占用有何不同?1)**CAP 定理**:一个分布式系统最多只能同时满足 **一致性(Consistency)、可用性(Availability)、分区容错性(Partition tolerance)** 三项中的两项(由于网络分区 P 不可避免,工程中只能在 CP 与 AP 之间权衡);**BASE 理论**:基本可用(Basically Available)、软状态(Soft state)、最终一致性(Eventually consistent)。2)**三种数据备份方式对比**:①**完全备份(Full)**:备份全部选中数据;②**差异备份(Differential)**:每次备份【自上一次完全备份以来】所有发生变化的数据(备份耗时中等,**恢复最快**——只需【最近一次完全备份 + 最近一次差异备份】两份数据即可恢复!);③**增量备份(Incremental)**:每次仅备份【自上一次任意类型备份(完全或增量)以来】新增变化的数据(备份最快、占空间最小,但**恢复最慢**——需依次恢复最近一次完全备份及此后所有的增量备份链)。
8软考《知识产权与标准化法律法规》中,职务作品/职务软件著作权归属、保护期限(发表权vs财产权截止到第50年12月31日)、商标权与专利权(发明20年、实用新型10年、外观设计15年)的核心规定是什么?1)**软件著作权与作品著作权保护期**:署名权、修改权、保护作品完整权保护期**不受限制(永久)**;公民作品的发表权与财产权保护期为作者终生及其死亡后 **50年**(截止于作者死亡后第50年的 **12月31日**);法人或非法人组织职务软件的财产权保护期为 **50年**(截止于软件首次发表后第50年的 **12月31日**,但软件自开发完成之日起50年内未发表的不再保护)。2)**专利权保护期(自【申请日】起算)**:发明专利 **20年**,实用新型专利 **10年**,外观设计专利 **15年**(两人在同日分别就同样发明创造申请专利的,【自行协商】确定申请人,不接受抽签或共有强制;委托开发无约定时,**专利申请权和软件著作权均归【受托人/研发方】享有**!)。3)**注册商标有效期**:自【核准注册之日】起 **10年**(期满前12个月内申请续展,宽展期6个月,可无限次续展)。
9面向对象分析与设计(OOAD)中,边界类(Boundary Class)、控制类(Control Class)与实体类(Entity Class)(BCE 架构模式)各自的职责是什么?在面向对象分析(OOA)类图建模中,常将类划分为三种构造型(Stereotype):1)**实体类(Entity Class)**:代表系统需要持久存储的核心业务数据与领域概念(如“订单”、“账户”、“图书”),通常映射为数据库表;2)**边界类(Boundary Class)**:位于系统与外界(用户界面 UI、外部系统接口、硬件传感器)的交界处,负责接收用户输入、展示结果或与外部系统通信(如“登录窗口”、“支付网关接口”);3)**控制类(Control Class)**:负责协调、控制用例的业务逻辑流转与事务处理,将边界类接收的请求转发并调度多个实体类完成业务规则(如“订单控制器”)。
10编译原理(软件设计师必考)中,词法分析(有限自动机 DFA/NFA)、语法分析(上下文无关文法、后缀表达式/逆波兰式)与传值调用(Call by Value)vs 引用调用(Call by Reference)的区别是什么?1)编译阶段:词法分析(正规式与有限自动机 DFA/NFA,识别单词记号 Token)→ 语法分析(下推自动机与上下文无关文法,构造语法分析树,检查语法结构错误)→ 语义分析(静态类型检查,生成中间代码如后缀式、三地址码、四元式)→ 代码优化 → 目标代码生成(与具体机器强相关)。2)中缀表达式 `(a - b) * (c + d)` 的后缀式(逆波兰式,对应语法树后序遍历)为 **`ab-cd+*`**(利用栈求值,无需括号)。3)参数传递:传值调用中形参是实参的独立副本,函数内修改形参**绝不改变**实参;引用调用(传地址)中形参直接指向实参内存地址,函数内对形参的修改**直接改变**实参的值。
11RAID(独立磁盘冗余阵列)中,RAID 0、RAID 1、RAID 5、RAID 6 与 RAID 10 的磁盘空间利用率、最少所需硬盘数及容错能力对比是什么?1)**RAID 0(条带化 Striping)**:无冗余无校验,空间利用率 **100%**,读写性能最高,但**无任何容错能力**(任一块盘坏则全盘数据丢失,最少2块盘);2)**RAID 1(镜像 Mirroring)**:成对镜像备份,空间利用率 **50%**,最少2块盘,允许坏1块镜像盘;3)**RAID 5(分布式奇偶校验)**:将奇偶校验信息均匀分布在所有磁盘上,空间利用率为 **$(N-1)/N$**,**最少需要 3 块盘**,最多允许同时损坏 **1 块盘**;4)**RAID 6(双重分布式奇偶校验)**:空间利用率为 **$(N-2)/N$**,最少需要 4 块盘,最多允许同时损坏 **2 块盘**;5)**RAID 10(先做 RAID 1 镜像,再做 RAID 0 条带化)**:兼顾高速与高安全性,空间利用率 **50%**,最少需要 **4 块盘**。
12在软考《软件工程》中,瀑布模型、原型模型、螺旋模型、V模型、喷泉模型与敏捷开发(Scrum / XP)的核心特征及适用场景是什么?1)瀑布模型:严格线性顺序,适合【需求明确且在开发过程中极少变更】的项目(缺点是后期才见结果,难以适应需求变化);2)原型模型:快速构造可运行原型以获取用户真实需求,适合【需求模糊不清】的系统;3)螺旋模型(Boehm提出):融合了瀑布模型、原型模型并首次引入【风险分析(Risk Analysis)】,由制定计划、风险分析、实施工程、客户评估四象限组成,适合【庞大、复杂、高风险】的大型系统;4)V模型:强调测试贯穿开发全过程(单元测试对应详细设计,集成测试对应概要设计,系统测试对应需求分析,验收测试对应用户需求);5)喷泉模型:面向对象的迭代无间隙模型。
13操作系统死锁问题中,产生死锁的四个必要条件是什么?若有 $m$ 个同类资源被 $n$ 个进程共享,每个进程最多请求 $k$ 个资源,系统绝对不会发生死锁的最小资源数公式是什么?死锁四大必要条件:**互斥条件、请求和保持条件、不可剥夺条件、环路等待(循环等待)条件**。**绝对不发生死锁的公式(鸽巢原理,高频秒杀题)**:最坏情况下,让所有 $n$ 个进程都分到“距离自己最大需求还差 1 个”的资源数(即每人分得 $k - 1$ 个资源),此时只需系统再多出 **1 个**资源,就必定能让其中一个进程顺利执行完毕并释放全部资源!故不发生死锁的充要条件是:**$m \ge n \cdot (k - 1) + 1$**(或最多允许同时并发的进程数 $n \le \lfloor \frac{m-1}{k-1} \rfloor$)。
14GoF 23种面向对象设计模式分为哪三大类?创建型五种模式(单例、工厂方法、抽象工厂、建造者、原型)的核心意图分别是什么?三大类:创建型(5种)、结构型(7种)、行为型(11种)。创建型五模式:1)**Singleton(单例模式)**:保证一个类仅有一个实例并提供全局访问点;2)**Factory Method(工厂方法模式)**:定义一个创建对象的接口,但由子类决定实例化哪一个类(使实例化延迟到子类);3)**Abstract Factory(抽象工厂模式)**:提供一个创建一系列相关或相互依赖对象(产品族)的接口,而无需指定它们具体的类;4)**Builder(建造者/生成器模式)**:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示;5)**Prototype(原型模式)**:用原型实例指定创建对象的种类,并通过拷贝(浅拷贝/深拷贝)这些原型创建新的对象。
15操作系统磁盘管理中,磁盘访问时间(寻道时间 + 旋转延迟时间 + 传输时间)哪部分占比最大?常见磁盘移臂调度算法(FCFS、SSTF、SCAN电梯算法、CSCAN)及旋转调度优化计算是什么?磁盘访问时间 $T_a = T_s(\text{寻道时间}) + \frac{1}{2r}(\text{平均旋转延迟,等于转半圈时间}) + \frac{b}{rN}(\text{传输时间})$,其中**寻道时间(磁头移动到目标柱面的机械运动时间)占比最大**。移臂调度算法:1)先来先服务 FCFS;2)最短寻道时间优先 SSTF(每次选离当前磁头最近的柱面,缺点是可能导致远离磁头的请求产生“饥饿”);3)扫描算法 SCAN(电梯算法,磁头双向往返,兼顾距离与方向,消除饥饿);4)循环扫描 CSCAN(单向移动,到头直接返回起点)。注意:若同一柱面有多个不同扇区的请求,读取并处理一个逻辑记录后磁盘已继续旋转,需按磁盘旋转方向计算扇区等待时间!
16软件质量模型(ISO/IEC 9126 与 ISO/IEC 25010)的八大质量特性(功能性、性能效率、兼容性、易用性、可靠性、信息安全性、维护性、可移植性)及其子特性如何区分?高频易混子特性归属:1)**功能性**:适合性、准确性、依从性;2)**可靠性**:成熟性、**容错性**、**易恢复性**、可用性;3)**维护性**:模块化、可重用性、**易分析性**、**易改变性(可修改性)**、**易测试性**;4)**可移植性**:**适应性**(适应不同运行环境无需额外修改)、**易安装性**、**共存性**、**易替换性**;5)**性能效率**:时间特性(响应时间/吞吐量)、资源利用性、容量。
17数据库 E-R 图(实体-联系图,软考下午第2题必考)转换关系模式的三大规则(1:1、1:n、m:n 联系)及弱实体、聚集、泛化如何转换?1)**1:1(一对一)联系**:可以转换为一个独立的关系模式,也可以与**任意一端**对应的关系模式合并(将该联系的属性及另一端实体的主码加入合并端);2)**1:n(一对多)联系**:可以转换为独立关系模式,也可以与**【n 端(多端)】**对应的关系模式合并(将 **1 端实体的主码**和联系自身的属性加入到 **n 端关系模式**中作为外码!切忌加到1端,否则会产生多值冗余);3)**m:n(多对多)联系**:**【必须】单独转换为一个独立的关系模式**,该关系模式的主码为**两端实体主码的组合(复合主码)**,再加上联系自身的属性(若为三元联系 $m:n:p$ 同样必须独立建表,以三方主码组合为主码)。
18在软考《数据库系统》中,函数依赖的 Armstrong 公理系统、候选键(Candidate Key)快速求解四步法(L类、R类、LR类、N类属性)是什么?求关系模式 $R(U, F)$ 的候选码快速分类法:1)**L类属性(只在函数依赖左部出现,从不在右部出现的属性)及 N类属性(左右两边都未出现的外部属性)**:**【必定包含在任何候选码中】**!若求得 $(L \cup N)^+ = U$(闭包包含全集),则 $L \cup N$ 就是**唯一候选码**;2)**R类属性(只在函数依赖右部出现,从不在左部出现的属性)**:属于非主属性,**【绝不可能出现在任何候选码中】**;3)**LR类属性(左右两边均出现)**:若 $(L \cup N)^+ \neq U$,则将 $L \cup N$ 依次与 LR 类属性逐个组合求闭包,闭包等于 $U$ 的最小组合即为候选码。
19数据库规范化理论中,第一范式(1NF)、第二范式(2NF)、第三范式(3NF)与巴斯-科德范式(BCNF)的定义及消除了什么异常?模式分解的“无损连接性”与“保持函数依赖”如何判定?1)**1NF**:每一个分量都是不可分的数据项(原子性);2)**2NF**:在 1NF 基础上,消除了**非主属性对码的【部分函数依赖】**;3)**3NF**:在 2NF 基础上,消除了**非主属性对码的【传递函数依赖】**;4)**BCNF**:在 3NF 基础上,消除了**主属性对码的部分和传递函数依赖**(即每一个非平凡函数依赖 $X \to Y$ 的左部 $X$ 都必包含候选码)。一分为二分解 $\rho = \{R_1(U_1), R_2(U_2)\}$ 的**无损连接充要条件定理**:当且仅当 **$(U_1 \cap U_2) \to (U_1 - U_2) \in F^+$** 或 **$(U_1 \cap U_2) \to (U_2 - U_1) \in F^+$**(即两子模式的公共属性集是其中一个子模式的超键)!
20结构化设计(SD)中,“模块内聚(Cohesion)”从低到高分为哪七级?“模块耦合(Coupling)”从低到高分为哪七级?软件设计的基本原则是什么?核心原则:**【高内聚、低耦合】**!1)**内聚性(从低到高,越往后越好)**:偶然内聚(巧合内聚,最差)→ 逻辑内聚 → 时间内聚 → 过程内聚 → 通信内聚(操作同一数据集)→ 顺序内聚(前一个加工输出是后一个输入)→ **功能内聚(完成单一明确功能,最高最好)**;2)**耦合性(从低到高,越往前越好)**:**非直接耦合(无直接联系,最好)** → **数据耦合(仅通过参数表传递简单基本数据,工程常用理想状态)** → 标记耦合(传递数据结构/对象引用)→ 控制耦合(传递控制开关标志 flag)→ 外部耦合 → 公共耦合(多个模块访问同一个全局公共数据环境)→ **内容耦合(一个模块直接访问或修改另一个模块内部数据或跳转到其内部,最差严禁使用)**。
21算法设计与分析(软考下午程序设计大题压轴)中,分治法(Divide and Conquer)、动态规划法(DP)、贪心法(Greedy)与回溯法/分支限界法的性质对比及复杂度主定理(Master Theorem)是什么?1)**分治法 vs 动态规划**:二者都具有【最优子结构】,但分治法子问题【相互独立】(如归并排序、快速排序、二分查找),而动态规划子问题具有【重叠子问题(Overlapping Subproblems)】性质,通过自底向上填表备忘避免重复计算(如 0-1背包问题 时间空间复杂度均为 $O(nW)$、最长公共子序列 LCS $O(mn)$、矩阵连乘 $O(n^3)$);2)**贪心法**:每一步只做当前局部最优选择,无需回溯,能求得**分数背包问题(部分背包,$O(n\log n)$)**、哈夫曼编码、活动安排与单源最短路径的全局最优解,但**不能**求得 0-1 背包问题的最优解;3)**主定理 $T(n) = aT(n/b) + f(n)$**:比较 $n^{\log_b a}$ 与 $f(n)$ 的阶,谁的阶高就取谁;若同阶则乘以 $\log n$,即 $O(n^{\log_b a} \log n)$。
22数据流图(DFD,软考下午第1题必考)的四大基本成分是什么?父图与子图平衡原则及常见的三种数据流图语法错误(黑洞、奇迹、灰洞)如何检查?DFD 四大要素:**外部实体(External Entity,数据源点或终点)、加工/处理(Process,转换数据)、数据存储(Data Store,静态文件/表)、数据流(Data Flow,带箭头的数据移动路径)**。**下午第1题找错与补全黄金法则**:1)**父图与子图平衡**:0层图中某加工的输入数据流和输出数据流,必须与该加工分解出的子图(1层图)的总输入数据流和总输出数据流在数量和名称上完全一致;2)**每个加工必须既有输入数据流又有输出数据流**:只有输入没有输出叫**【黑洞】**;只有输出没有输入叫**【奇迹(无中生有)】**;输入数据不足以产生输出数据叫**【灰洞】**;3)**外部实体与外部实体之间、外部实体与数据存储之间、两个数据存储之间【绝对不能】直接有数据流相连**(任何数据流动必须经过“加工 Process”处理!)。
23结构型七种设计模式(适配器 Adapter、桥接 Bridge、组合 Composite、装饰 Decorator、外观 Facade、享元 Flyweight、代理 Proxy)的核心区别与软考下午题高频识别词是什么?1)**Adapter(适配器)**:“转换接口”,将一个类的接口转换成客户希望的另外一个接口,使原本由于接口不兼容而不能一起工作的类可以协同工作;2)**Bridge(桥接)**:“抽象与实现解耦”,将抽象部分与它的实现部分分离,使它们都可以独立地沿各自维度扩展变化(用组合代替多层继承爆炸);3)**Composite(组合)**:“树形部分-整体”,将对象组合成树形结构以表示“部分-整体”层次,使客户对单个对象(Leaf)和组合对象(Composite)的使用具有一致性(如文件夹与文件);4)**Decorator(装饰器)**:“动态透明叠加职责”,动态地给一个对象添加一些额外的职责;5)**Facade(外观)**:为子系统中的一组复杂接口提供一个一致的高层简单界面;6)**Flyweight(享元)**:运用共享技术有效地支持大量细粒度对象的复用(区分内部状态与外部状态)。
24面向对象设计的七大基本原则(SOLID + 迪米特法则 + 合成复用原则)分别是什么?1)**单一职责原则(SRP)**:一个类应该有且仅有一个引起它变化的原因;2)**开放-封闭原则(OCP,核心)**:软件实体应当**对扩展开放,对修改关闭**;3)**里氏替换原则(LSP)**:子类必须能够替换掉它们的基类(子类可重写扩展父类抽象方法,但尽量不要覆盖父类非抽象已实现方法);4)**依赖倒置原则(DIP)**:高层模块不应依赖低层模块,二者都应依赖抽象;**针对接口编程,不要针对实现编程**;5)**接口隔离原则(ISP)**:使用多个专门的小接口,而不使用单一庞大总接口;6)**合成/聚合复用原则(CARP)**:**优先使用对象组合/聚合,而不是类继承**;7)**迪米特法则(LoD,最少知识原则)**:一个对象应当对其他对象有尽可能少的了解(只与直接朋友通信)。
25软件项目估算中,COCOMO II 模型、功能点分析法(FPA)与专家判定德尔菲法(Delphi / 敏捷扑克估算)的特点是什么?1)**功能点估算(Function Point, FP)**:从用户功能视角出发,在需求分析早期即可根据外部输入(EI)、外部输出(EO)、外部查询(EQ)、内部逻辑文件(ILF)、外部接口文件(EIF)评估软件规模,**与具体采用哪种程序设计语言无关**(代码行 LOC 估算则强依赖编程语言);2)**COCOMO II 模型**:分应用组装模型(早期原型阶段,用对象点)、早期设计阶段模型(用功能点)和体系结构阶段后模型(用代码行或功能点);3)**专家德尔菲法(Wideband Delphi)**:采用**匿名背靠背多轮征询汇总**,消除权威盲从与从众心理。
26软件测试中,黑盒测试(功能测试)与白盒测试(结构测试)的常见方法有哪些?白盒测试六种逻辑覆盖(语句、判定、条件、判定/条件、条件组合、路径)的强弱关系及 McCabe 环路复杂度公式是什么?1)黑盒测试方法:等价类划分法、边界值分析法、错误推测法、因果图法、判定表驱动法、正交实验法、场景法;2)白盒测试逻辑覆盖从弱到强:**语句覆盖(最弱)→ 判定覆盖(分支覆盖)→ 条件覆盖(注意:判定覆盖与条件覆盖互不包含!)→ 判定/条件覆盖 → 条件组合覆盖 → 路径覆盖(最强)**;3)**McCabe 环路复杂度(圈复杂度 $V(G)$,等于线性独立路径条数,即基本路径测试所需最少测试用例数)**:**$V(G) = m - n + 2 = P + 1 = \text{封闭区域数} + 1$**(其中 $m$ 为控制流图边数,$n$ 为结点数,$P$ 为判定结点/二分支结点个数)。
27操作系统进程管理中,前趋图与信号量 PV 操作如何配合?若信号量初值为 1,现有 5 个进程并发进入临界区,信号量 S 的取值范围及等待队列中最多有几个阻塞进程?信号量 $S$ 表示可用资源数量:每次执行 `P(S)` 操作使 $S = S - 1$,若 $S < 0$ 则调用进程阻塞并插入等待队列;每次执行 `V(S)` 操作使 $S = S + 1$,若 $S \le 0$ 则唤醒等待队列中的一个进程。当互斥信号量 $S$ 初值为 1,有 $n=5$ 个并发进程竞争同一临界区时:无人进入时 $S = 1$;1人进入无人等待时 $S = 0$;1人进入且其余 4 人全部尝试进入被阻塞时 $S = 1 - 5 = -4$。因此 $S$ 的取值范围为 **$[-4, 1]$**(当 $S < 0$ 时,$|S|$ 的绝对值即为当前阻塞队列中等待的进程个数,最多有 4 个进程阻塞)。
28在 SQL 语言中,视图(View)、索引(Index)、触发器(Trigger)与存储过程(Stored Procedure)的作用是什么?分组查询 `WHERE` 与 `HAVING` 子句的根本区别是什么?1)**视图(View)**:是从一个或多个基本表导出的**虚表**,数据库中只存放视图的定义(SELECT查询语句)而不存放对应的数据,提供逻辑数据独立性与安全保密机制;2)**`WHERE` vs `HAVING`**:`WHERE` 作用于基本表或视图的单个元组(行),在分组(`GROUP BY`)**之前**过滤,**绝对不能包含聚集函数**(如 `COUNT/SUM/AVG/MAX/MIN`);`HAVING` 作用于分组**之后**的组,专门用于根据聚集函数结果筛选分组;3)SQL语句执行顺序:`FROM → WHERE → GROUP BY → HAVING → SELECT → DISTINCT → ORDER BY`。
29密码学与网络安全中,对称加密算法(DES/3DES/AES/SM4/RC5)、非对称公钥加密算法(RSA/ECC/SM2)、哈希摘要算法(MD5/SHA/SM3)及数字签名与数字证书(PKI/CA)的工作流程是什么?1)算法分类与国密标准:**对称加密**(加密解密同一密钥,速度快适合大数据加密):DES(56位密钥,64位分组)、3DES(112/168位)、AES(128/192/256位)、**国密 SM1 / SM4(128位分组与密钥)**;**非对称加密**(公钥公开,私钥保密,适合密钥交换与数字签名):RSA(基于大整数质因数分解难题)、ECC(椭圆曲线)、**国密 SM2(基于ECC)**;**单向散列 Hash 摘要算法**(防篡改完整性校验):MD5(128位摘要)、SHA-1(160位)、SHA-256、**国密 SM3(256位摘要)**。2)**加密 vs 签名密钥用法(必考)**:甲向乙发送机密且签名的文件——甲先对原文求 Hash 摘要,用【甲自己的私钥】对摘要加密生成**数字签名**(保证不可抵赖与真实性),再用【乙的公钥】加密对称会话密钥(数字信封,保证机密性);乙收到后用【乙自己的私钥】解密会话密钥,并用【甲的公钥】验证数字签名。
30CMMI(能力成熟度模型集成)连续式表示与阶段式表示的五个等级分别是什么?软件维护的四种类型(改正性、适应性、完善性、预防性)占比最高的是哪一种?CMMI 阶段式五级:1级初始级(混乱无序)→ 2级已管理级(项目级管理)→ 3级已定义级(组织级标准过程)→ 4级量化管理级(统计与量化预测控制)→ 5级优化级(持续过程改进与创新)。软件维护四类型(必考区分):1)**改正性维护(Corrective)**:修复运行中暴露的潜伏错误/Bug;2)**适应性维护(Adaptive)**:为适应外部硬件、操作系统、数据库或法规环境变化而修改软件;3)**完善性维护(Perfective,占全部维护工作量的 50%–60% 以上,占比最高!)**:扩充功能、改善性能、应用户新需求升级;4)**预防性维护(Preventive)**:为提高未来可维护性与可靠性而主动重构“明日系统”。
31网络协议与子网规划中,VLAN(IEEE 802.1Q)、STP(生成树协议 IEEE 802.1D)、ARP 与 NAT(网络地址转换)的工作原理是什么?1)**VLAN(虚拟局域网)**:在二层数据链路层通过交换机端口或 IEEE 802.1Q 标签(在以太网帧插入4字节 Tag)隔离**广播域**(不同 VLAN 间通信必须经过三层路由器或三层交换机 SVI 接口);2)**ARP(地址解析协议)**:将已知 **IP 地址解析为 MAC 物理地址**,**ARP 请求采用广播发送,ARP 响应采用单播返回**;3)**NAT(网络地址转换)**:将内网私有 IP 地址映射为公网合法 IP 地址,其中 NAPT(端口多路复用 PAT)通过映射不同的源 TCP/UDP 端口号实现多个内网主机共用 1 个公网 IP 上网。
32UML(统一建模语言)中,类与类之间的六种关系(依赖、关联、聚合、组合、泛化/继承、实现)的耦合强弱与图例箭头分别是什么?用例图(Use Case Diagram)中 include、extend 与泛化有何区别?1)类图六大关系:依赖(虚线开箭头 `..>`,作为局部变量或形参,最弱)、关联(实线开箭头 `-->`,作为成员变量)、聚合(空心菱形实线 `o--`,整体与部分可分离,生命周期独立,如雁群与大雁)、组合(实心菱形实线 `*--`,整体与部分不可分离,同生共死,如大雁与翅膀)、泛化/继承(实线空心三角 `--|>`)、实现接口(虚线空心三角 `..|>`)。2)用例图三大关系(下午大题第1题必考):**`<<include>>` 包含关系**(基础用例指向被包含公共子用例,只要执行基础用例就【必须】执行被包含用例,如“取款”和“转账”都 `<<include>>` “验证密码”);**`<<extend>>` 扩展关系**(**扩展用例指向基础用例**,注意箭头方向与 include 相反!只在特定条件满足时才可选触发,如“借书超期” `<<extend>>` 指向“还书”)。