玩命加载中🤣🤣🤣

软考笔记大纲


纯选择题涉及章节

  • 一、计算机硬件
  • 二、操作系统
  • 四、嵌入式
  • 五、计算机网络
  • 八、信息系统基础知识
  • 九、系统安全
  • 十六、未来信息综合技术

案例专题涉及章节

  • 三、数据库
  • 十、软件工程
  • 十三+案例篇、系统架构涉及和八大架构

选择题知识点

  1. 位视图计算

字长32,磁盘容量300GB,物理块大小4MB

位视图=300GB/(4MB*32)=300*1024/(4*32)

  1. 微内核

主要优点在于结构清晰、内核代码量少,安全性和可靠性高、可移植性强、可伸缩性、可扩展性高;缺点是难以进行良好整体优化、进程间互相通信的开销大、内核功能代码不能被直接调用

软件工程

  • 软件工程基础:生命周期,能力成熟度模型,开发模型,开发方法,软件产品线,逆向工程
  • 系统分析和需求工程:需求分类,需求获取,分析,定义,验证,管理
  • 系统涉及:处理流程设计,系统设计,人机界面设计
  • 测试基础:测试原则,测试阶段,测试用例设计,调试,软件度量
  • 系统运行和维护:系统转换,系统维护,系统评价

23年选择题考察

范文内:mccabe度量法,灰盒测试,喷泉模型,敏捷开发,需求分析工具(petri网),PDCA,自动化测试适用类型,变更管理顺序,单元测试

要补充:web新型测试(A/B测试,链接测试),sysml需求图,W模型,M2M(智能化机器+硬件+网络+中间件+应用),D0178(指导,目表,活动,证据),NPU

23案例考察

UML用例图,SysML需求图等

软件过程模型

  • 瀑布模型:自顶向下,需求明确

  • 原型模型:需求不明确的情况下

  • 喷泉模型:适合面向对象的开发

  • 螺旋模型:适合高风险,复杂项目

  • V模型:测试先行,测试开发并行

  • 增量模型:多次循环,多次交付,分期开发,分期开发

  • 迭代模型:多次循环,一次交付

既可以当成开发模型也能当成开发方法

  • 敏捷开发:快速交付,以人为本
  • 统一过程RUP:9个核心工作流,3个特点,4个阶段⭐
    • 核心工作流:其实就是按照软件生命周期往下走的,按着生命周期来大致记忆。
      • 建模+【软件定义(需求,分析设计)+软件实现(实现)+测试+运维(部署)】+2个管理(项目管理,配置管理)+环境
    • 四个阶段
      • 初始(类似做需求)+细化(类似设计)+实现+移交
    • 三大特点
      • 用例为驱动
      • 以架构为中心
      • 迭代并增量

结构化三大模型

  • 数据模型 - ER

  • 功能模型 - DFD(具体笔记见资料)

  • 行为模型 - STD

软件需求

  • 需求开发
    • 需求获取
      • 用户访谈
      • 问卷调查
      • 采样
    • 需求分析
      • 结构化需求分析:自顶向下、逐步分解、面向数据
    • 需求定义(需求规格说明书SRS)
    • 需求验证
  • 需求管理
    • 变更控制
      • 建议变更(申请人提出变更)
      • 分析影响(项目经理评估)
      • 做出决策(提交CCB(变更控制委员会))
      • 交流
      • 合并(执行)
      • 测量需求的稳定性
    • 版本控制
      • 确定需求文档版本
      • 确定单个需求文档版本
    • 需求跟踪
      • 正向跟踪(判断需求有没有少做,需求文档是不是都实现了)
      • 逆向跟踪(判断有没有多做,实现的是不是都是需求文档里有的)
    • 需求状态跟踪
      • 针对需求的状态进行跟踪,如:草稿,正式,修改

软件复杂度

McCabe度量法:又称环路复杂度。

  • 有向边数 - 节点数 + 2;
  • 判定节点数+1(考试用这个:菱形判定节点数 + 1);
  • 封闭节点数+1

测试

按测试方法

  • 静态测试
    • 桌面检查
    • 代码省查
    • 代码走查
  • 动态测试
    • 黑盒(功能性测试)
      • 等价类划分:把所有数据按照某种特性归类,每类的数据里选一个测试。
      • 边界值划分:将每类边界值作为测试用例,如年龄范围0-150,边界值为0,150,-1,151
      • 错误推测:凭经验推测有可能产生问题的原因
      • 因果图:由结果反推原因
    • 白盒(结构性测试)
      • 语句覆盖
      • 判定覆盖/分支覆盖
      • 条件覆盖
      • 判定-条件组合覆盖
      • 路径覆盖
    • 灰盒
      • 黑+白

按测试阶段

  • 单元测试
  • 集成测试
  • 确认测试
    • 内部确认
    • Alpha:用户在开发环境下测试
    • Beta:用户在实际使用环境下测试
    • 验收测试:针对SRS,在交付前以用户为主进行的测试
  • 系统测试
  • 配置项测试
  • 回归测试

遗留系统的四象限

改造,集成,继承,淘汰

能力成熟度模型

  • CMM
    • 初始级
    • 可重复级
    • 已定义级
    • 已管理级
    • 优化级
  • CMMI
    • 初始级
    • 已管理级:同类型的项目可能会重复成功
    • 已定义级:定义了一定流程和规范
    • 定量管理:达到量化
    • 优化级:持续改进

软件生命周期

  • 软件定义:可行性研究和详细需求分析过程
    • 问题定义
    • 可行性研究
    • 需求分析
  • 开发:软件的设计与实现
    • 概要设计
    • 详细设计
    • 编码
    • 测试
  • 运行和维护:把软件产品移交给用户使用

软件系统工具

  • 软件开发工具
    • 需求分析,设计,编码与排错,测试工具
  • 软件维护工具
    • 版本控制,文档分析,开发信息库,逆向工程,再工程
  • 软件管理和软件支持工具
    • 项目管理,配置管理,软件评价,软件开发工具的评价和选择

高内聚低耦合

耦合程度

无直接耦合 < 数据 < 标记(特征) < 控制 < 外部 < 公共 < 内容

内聚程度

偶然 < 逻辑(逻辑相似) < 时间(同时执行) < 过程(指定顺序) < 通信(相同数据结构、输入、输出) < 顺序(执行顺序、输入为输出) < 功能(共同作用,缺一不可)

补充:web测试

测试方法的分类

  • 按程序执行状态
    • 静态
    • 动态
  • 按算法细节和内部结构
    • 黑盒(功能测试,完全不知道内部结构)
    • 白盒(结构性测试,完全知道)
    • 灰盒
  • 按程序执行方式
    • 人工测试
    • 自动化测试
  • 按测试阶段
    • 单元测试
    • 集成测试
    • 系统测试
    • 性能测试(其实属于系统测试)
    • 验收测试
    • 其他测试(补充内容,如web测试)

web测试

  • AB测试:有点类似Web或App界面,设计多个界面,不同的人去访问,少数服从多数选择版本
  • Web测试:针对Web应用的测试
  • 链接测试(超链接)
    • 测试所有链接能不能跳转
    • 链接是不是404
    • 有没有孤立的页面,就是没有访问到的页面
  • 表单测试

补充:软件测试模型

W模型

  • 体现了尽早开展测试的原则
  • 实际是两个V的叠加
    • 一个V描述开发过程
    • 另一个V描述测试过程
    • 测试是从需求分析开始

H模型

改进了W和V模型高度依赖于开发的瀑布模型的缺陷(特征)

敏捷测试模型

源于敏捷开发

补充:其他超纲

M2M 全称:Machine to Machine

NPU:国产嵌入式神经网络处理器,擅长处理视频、图像类的海量多媒体数据

  • 区别于特殊用于集成电路(ASIC)的单一功能,网络处理更加复杂、更加灵活
  • 两点在于并行线程
  • 与GPU不同,更关注吞吐量而不是延迟

软件工程案例

理论上属于上一章,但是上一章的选择题小结太多,抽出来

  • 结构化分析与设计
    • DFD
    • ER(在数据库部分)
  • 面向对象
    • UML

文章作者: 👑Dee👑
版权声明: 本博客所有文章除特別声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 👑Dee👑 !
  目录