软件设计师(中级)做题笔记

文章目录

1、计算机系统知识

1.1、计算机系统基础知识

1.1.1 计算机系统硬件基本组成

  • 存储程序原理:程序和数据统一存储在同一个存储器中,这是冯·诺依曼体系最核心的思想。计算机通过读取存储器中的指令来自动执行任务,无需人工干预。
  • 五大部件组成 :计算机硬件由运算器、控制器、存储器、输入设备和输出设备五大部分构成。
    • 运算器:负责执行算术和逻辑运算,核心是算术逻辑单元(ALU)。
    • 控制器:作为指挥中心,通过指令计数器、指令寄存器等协调各部件按序工作。
    • 存储器:分为主存(RAM/ROM)和外存(硬盘、U盘等),用于存放程序和数据。
    • 输入设备:如键盘、鼠标,将外部信息转换为二进制信号输入计算机。
    • 输出设备:如显示器、打印机,将处理结果以人类可识别的形式输出。
  • 二进制表示:所有指令和数据均采用二进制形式表示,便于电子电路实现。
  • 顺序执行:指令按存储顺序依次执行,由程序计数器(PC)控制下一条指令的地址。
  • 指令结构:每条指令由操作码和地址码组成,操作码指明操作类型,地址码指明操作数地址。

1.1.2 中央处理单元

微程序:微程序是计算机控制器中用于解释执行机器指令的一组微指令序列,它存储在控制存储器中,通过逐条执行微指令来完成一条机器指令所对应的全部硬件操作。它位于计算机层次结构的最底层(通常被称为微程序级或硬联逻辑层之上)。

1.1.3、数据表示

  • 进位标志(CF) = 最高位(符号位)的进位输出值。
  • 溢出判断(OF) = Cn ⊕ Cn-1(最高位进位 ⊕ 次高位进位)

1.2、计算机体系结构

1.2.2、存储系统

  • SRAM(静态随机存取存储器)和DRAM(动态随机存取存储器)
对比维度 SRAM(静态RAM) DRAM(动态RAM)
存储原理 双稳态触发器(6个晶体管) 1个晶体管 + 1个电容
是否需要刷新 ❌ 不需要 ✅ 需要(每隔几毫秒刷新一次)
速度 快(纳秒级) 较慢(有刷新延迟)
集成度 低(单元结构复杂,占面积大) 高(单元结构简单,占面积小)
成本
容量
功耗 静态功耗低,高频时功耗大 整体功耗较低
典型应用 CPU高速缓存(L1/L2/L3 Cache) 主存(内存条)
  • 记忆口诀

SRAM = 静态 = 稳定 = 快但贵 → 做Cache

DRAM = 动态 = 要刷新 = 慢但便宜 → 做主存

  • 单层单面DVD(DVD-5)的容量:4.7GB

1.2.3、输入输出技术

  • 计算机系统中信息交换的传输方式总结
信息交换情形 传输方式 原因分析
CPU与内存储器之间交换信息 同步传输 两者工作速度高度匹配,由系统时钟统一控制,无需额外的握手信号协调。
CPU与PCI总线交换信息 同步传输 PCI总线是高速并行总线,设计用于连接高速外设,依赖统一的时钟信号进行数据传输。
CPU与I/O接口交换信息 同步传输 I/O接口作为CPU与外设的桥梁,其与CPU的通信通常受系统时钟控制,以保证高速数据交换的效率。
I/O接口与打印设备间交换信息 异步传输 打印机属于低速设备,其工作状态(如"准备就绪")不可预测,且与主机速度不匹配。必须通过"握手"信号(如选通、应答)来协调数据传输,确保数据不丢失。

2、程序设计语言基础知识

2.1、程序设计语言概述

2.1.1、程序语言的基本概念

  • 形参和实参的差别
对比项 形参 实参
位置 函数定义中 函数调用中
本质 变量(占位符) 具体的值或表达式
内存 调用时才分配 调用前就已存在
作用 接收数据 传递数据
python 复制代码
greet("Alice")  # "Alice" 就是实参
def greet(name):  # name 就是形参
    print("Hello, " + name)

2.2、语言处理程序基础

2.2.3、解释程序基本原理

  • Python 四种内置数据结构速查表
类型 是否可变 是否有序 元素可重复
list 可变 有序 可重复
tuple 不可变 有序 可重复
dict 可变 插入有序 键唯一
set 可变 无序 不可重复

6、结构化开发方法

6.2、结构化分析方法

笔记1:

  • 在结构化分析方法中,系统建模被划分为三个核心维度:
  • 功能建模 :使用数据流图(DFD) 描述系统中数据的流动、处理与存储,反映系统"做什么"的逻辑功能。
  • 数据建模 :使用实体-关系图(E-R图) 描述系统中的数据对象、属性及其相互关系,构建系统的静态数据结构。
  • 行为建模 :使用状态转换图(STD) 描述系统或对象在不同状态之间的迁移行为,反映系统对外部事件的响应和状态变化过程。
  • 总结:在结构化分析方法中,数据流图 用于功能建模;实体-关系图(E-R图) 用于数据建模;状态转换图(STD) 用于行为建模

笔记2:

  • 功能模型 → \rightarrow → 数据流图 (DFD):解决"系统做什么处理"的问题。
  • 数据模型 → \rightarrow → 实体-联系图 (E-R图):解决"系统处理什么数据"的问题。
  • 行为模型 → \rightarrow → 状态转换图 (STD):解决"系统何时做处理(时序/状态)"的问题。

7、面向对象技术

7.2、UML(统一建模语言)

  • UML类图四大关系
关系类型 关键词 强弱程度 典型例子 本题适用性
继承 Is-a (是一个) 最强 狗是动物 ❌ 鼠标不是计算机
组合 Contains-a (强包含) 强 (同生共死) 鸟与翅膀、公司与部门 ❌ 鼠标拔下来还能用
聚合 Has-a (弱包含) 中 (可分离) 计算机与鼠标、车队与车 正确答案
关联 Link (连接) 弱 (长期持有) 老师与学生、用户与订单 ⚠️ 太宽泛,不如聚合精准
依赖 Use-a (使用) 最弱 (临时) 司机开车、人喝水 ❌ 鼠标是电脑的组成部分,不仅仅是临时使用

10、网络与信息安全基础知识

  • 常用协议端口号
端口号 协议名称 传输协议 核心功能
20 FTP (数据) TCP 数据传输
21 FTP (控制) TCP 控制连接
25 SMTP TCP 邮件发送
53 DNS UDP 域名解析
67 DHCP UDP IP地址自动分配
80 HTTP TCP 网页浏览
110 POP3 TCP 邮件收取
161 SNMP UDP 简单网络管理

其他

  • 人耳能听到的声音频率:20Hz至20kHz
  • 软件设计的四个核心活动:体系结构设计、接口设计、数据设计和过程设计
  • 面向对象设计的主要活动:识别类及对象、定义属性、定义服务、识别关系、识别包
  • 面向对象设计的BCE模式
    • 边界类 = 脸面(负责对外交流)
    • 控制类 = 大脑/管家(负责指挥调度)
    • 实体类 = 档案/仓库(负责存储数据)
  • OOD三大基石:开闭、里氏与依赖倒转
    • 开-闭原则 (OCP) :软件实体(类、模块等)应当对扩展 开放,对修改关闭。(即:加新功能靠新增代码,别改老代码)。
    • 里氏代换原则 (LSP) :任何**基类(父类)**可以出现的地方,子类一定可以出现。(即:子类必须能完美替代父类,不能"掉链子")。
    • 依赖倒转原则 (DIP) :要依赖于抽象 ,而不依赖于具体。(即:编程时盯着接口/标准看,不要盯着具体的实现类看)。
相关推荐
从零开始的嵌入式之旅21 分钟前
day32
linux·c语言·经验分享·笔记·嵌入式硬件
ouynagda1 小时前
Linux信号与进程间通信学习笔记
linux·笔记·学习
️学习的小王2 小时前
AI Agent Skills进阶:调试、排错、实战开发与工程化落地
人工智能·经验分享·笔记·学习
kkkkkkkkkk_Z2 小时前
学嵌入式和Linux应用编程|学习日记Day26:Linux进程完整学习笔记
linux·笔记·学习
kmomo..2 小时前
Linux 进程间通信(IPC)学习笔记
linux·笔记·学习
zhonyu鱼2 小时前
Drawpile:多人实时协作绘画,一起在同一块画布上画画
笔记·pdf·开源·开源软件
吃西瓜的年年3 小时前
vue3原理思维导图
vue.js·笔记·flutter
无线通信科研笔记3 小时前
IEEE TWC 2026 论文精读与完整复现|H-PASS:机械—电子双重可重构波束成形
论文阅读·人工智能·笔记·python·论文笔记
再卷还是菜3 小时前
Kubernetes(k8s) 控制器的详细介绍与总结
笔记·学习·kubernetes