软件设计师 知识点拾遗 2021年上半年

软件设计师 知识点拾遗 2021年上半年

瓶颈期,依旧是20个

上午题

  DMA方式传送数据时,数据直接在I/O设备与内存之间传输,无需CPU干预。每传送一个数据,DMA控制器需要占用一个​​存储周期来完成对内存的读写操作。其他选项与CPU执行指令或总线控制相关,而DMA的核心是绕过CPU直接访问内存,因此存储周期是最准确的描述。


  SQL注入攻击的核心是通过构造恶意的SQL输入,绕过应用程序的安全检查,直接操纵数据库,其​​首要目标​​是​​获取数据库的操作权限​​(如执行查询、删除数据等)。


  IPSec(Internet Protocol Security)是专门为​​IP数据报文​​提供加密、认证等安全服务的协议组,工作在网络层,可直接保护IP数据包的完整性和机密性。而HTTPS是加密HTTP流量的协议、TLS是加密TCP/UDP的协议。


阶段 目标 关键活动/输出物 相关工具/技术示例
1. 需求分析 明确用户需求和系统功能 - 用户需求收集(访谈/问卷)
- 定义功能/非功能需求
- 输出《需求规格说明书》
JIRA, Confluence, 用户故事地图
2. 系统设计 规划系统架构和实现方案 概要设计
- 模块划分
- 技术栈选型
详细设计
- 数据结构/算法
- 数据库设计(ER图)
UML工具(Lucidchart), Visio, ERMaster
3. 编码实现 将设计转化为可执行代码 - 编写代码
- 版本控制
- 单元测试
Git, VS Code, IntelliJ, JUnit/pytest
4. 测试 验证系统功能和质量 - 功能测试(黑盒)
- 性能测试
- 安全测试
- 用户验收测试(UAT)
Selenium, JMeter, OWASP ZAP, Postman
5. 部署上线 发布系统到生产环境 - 环境配置
- 自动化部署
- 数据迁移
Docker, Kubernetes, Jenkins, Ansible
6. 运维与维护 保障系统稳定运行并持续优化 - 性能监控
- Bug修复
- 功能迭代
Prometheus, ELK, Grafana, Sentry

  其中,模块之间的接口设计属于概要设计的主要内容


  先前的笔记中关于这一项的内容应该写错了,但是我没找到具体是在哪篇笔记里,在此特别订正一下。正确的面向对象分析的五大活动顺序应该为:

  1. 认定对象
  2. 组织对象
  3. 描述对象间的相互作用
  4. 确定对象的操作
  5. 定义对象的内部信息

  • 单一责任原则:就一个类而言,应该仅有一个引起它变化的原因。即,当需要修改某个类的时候原因有且只有一个,让一个类只做一种类型责任。
  • 开放-封闭原则:软件实体应该是可以扩展的,即开放的;但是是不可修改的,即封闭的。
  • 里氏替换原则:子类型必须能够替换掉他们的基类型。即,在任何父类可以出现的地方,都可以用子类的实例来赋值给父类型的引用。
  • 依赖倒置原则:抽象不应该依赖于细节,细节应该依赖于抽象。即,高层模块不应该依赖于底层模块,二者都应该依赖于抽象。
  • 接口分离原则:不应该强迫客户依赖于它们不用的方法。接口属于客户,不属于它所在的类层次。即,依赖于抽象,不依赖于具体,同时在抽象级别不应该有对细节的依赖。这样做的好处就在于可以最大限度地应对可能的变化。

  • 41题:UML状态图用于对​​反应型对象​​的动态行为建模。
  • 43题:这里混淆了状态和状态转换的概念,前者是指一个对象的稳定条件,是对象在某一时刻的静态属性。而状态转换才是由事件触发的,并导致对象从当前状态切换到新状态。

  • 44题:
    • 命令模式:命令模式将请求封装为独立的对象(命令),允许用户参数化客户端(调用者)与接收者(执行者),从而支持请求的排队、撤销、日志记录等操作。
    • 中介者模式:中介者模式的核心思想是“使用一个中介者来封装一系列对象之间的交互,使各个对象不需要显式地相互引用”,即通过引入中介对象来集中管理多个对象之间的交互,从而减少对象间的直接耦合,使系统更易于维护和扩展。
  • 45题:在UML类图当中,一个圆圈即为接口的意思,在上图中只在Operation中出现了。

  使用线性探测法先求出关键字所在的位置,使用关键字key%m得出所存储的位置,如果遇到冲突则(key+di)%m的计算方式得到第二次关键字存储的位置,所以有可能第一个不是e的同义词


  使用SMTP协议完成从客户端向服务器发送文件,使用POP3协议实现从客户端接收服务器的文件。


软件设计师 知识点拾遗 2021年上半年
http://example.com/2025/05/18/note49/
作者
谢斐
发布于
2025年5月18日
许可协议