纯选择题涉及章节
- 一、计算机硬件
- 二、操作系统
- 四、嵌入式
- 五、计算机网络
- 八、信息系统基础知识
- 九、系统安全
- 十六、未来信息综合技术
案例专题涉及章节
- 三、数据库
- 十、软件工程
- 十三+案例篇、系统架构涉及和八大架构
选择题知识点
- 位视图计算
字长32,磁盘容量300GB,物理块大小4MB
位视图=300GB/(4MB*32)=300*1024/(4*32)
- 微内核
主要优点在于结构清晰、内核代码量少,安全性和可靠性高、可移植性强、可伸缩性、可扩展性高;缺点是难以进行良好整体优化、进程间互相通信的开销大、内核功能代码不能被直接调用
软件工程
- 软件工程基础:生命周期,能力成熟度模型,开发模型,开发方法,软件产品线,逆向工程
- 系统分析和需求工程:需求分类,需求获取,分析,定义,验证,管理
- 系统涉及:处理流程设计,系统设计,人机界面设计
- 测试基础:测试原则,测试阶段,测试用例设计,调试,软件度量
- 系统运行和维护:系统转换,系统维护,系统评价
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