软件工程 期末复习
zstu 浙江理工大学 2023学年第1学期 软件工程
带有参考标记
※
的章节建议优先阅读题目的答案不保证完全正确
考前关键词速记 |
第 1 章 软件与软件工程
1.1 软件的概念
1.1.1 软件的组成
1.1.2 软件生存周期
1.2 软件工程
1.2.1 定义
1.2.2 发展 ※
软件危机 ※
需求获取和需求分析不准确、缺乏项目过程管理
1.2.3 目标和原则
原则:抽象、信息隐藏、模块化、局部化、一致性、完全性、可验证性
1.2.4 软件开发的方法
结构化方法、面向对象方法、形式化开发方法
1.3 过程模型
1.3.1 瀑布 ※
1.3.2 增量
1.3.3 原型建造
1.3.4 螺旋
1.3.5 基于构建
题目
1.4 敏捷开发 ※
1.4.1 原则
1.4.2 极限编程
极限编程是遵循敏捷开发原则的软件过程。
1.4.3 应用
题目
第 2 章 UML 与 RUP 统一过程
2.2 面向对象的软件开发方法
2.2.1 概念 ※
略
题目
为了在对象obj1与对象obj2之间消息传递,面向对象的程序设计机制提供如下4种手段:
(1) 引用全局对象。obj1直接引用作为全局对象的obj2。
(2) 通过参数传递。obj2作为obj1的某项操作中的实在参数。
(3) 引用局部对象。在obj1的某项操作的函数体中创建或获取obj2
(4) 通过类的成员变量。obj2作为obj1所属类的属性的取值。
前三种类型的连接具有暂时性,obj1与obj2之间的连接仅在obj1的某项操作的执行过程中建立,操作完成后连接即告终结。这种暂时性连接用UML 的依赖关系表示。对最后一种具有稳定性的连接关系,需要进一步分析。如果参与连接的两个类在现实世界中存在“皮之不存,毛将焉附”的部分整体关系,则用UML 的构成关系表示。否则,如果它们在现实世界中仍存在“多个整体对象可共享同一部件对象”的部分整体关系,则用UML 的普通聚合关系表示。如果以上两种假设均不成立,则原连接关系精化成UML中普通的关联关系。
2.3 UML 概述
题目
第 3 章 需求工程概述
题目
3.1 概念
3.1.1 分类
题目
第 4 章 需求获取
题目
4.1 需求表示
4.1.1 用例 ※
重点关注用例与软件需求的关系
4.1.2 用例图 ※
4.1.3 用例的表示 ※
4.1.4 类图 ※
4.1.5 活动图
题目
注意 14 题不要选择 B
4.5 精化用例
4.5.1 交互动作序列
4.5.3 构建完整用例
4.5.4 精化用例图 ※
题目
第 5 章 需求分析
5.1 分析模型的表示
5.1.1 顺序图 ※
题目
5.2 过程模型
5.3 需求优先级分析
5.3.1 确定优先级 ※
价值、成本、风险
5.3.2 编排优先顺序 ※
架构、需求、风险
5.4 用例分析
5.4.1 精化领域概念模型
5.4.2 设置分析类 ※
5.4.4 导出分析类图 ※
职责:响应消息
事件->消息->职责->函数方法
题目
5.5 快速原型 ※
参考 1.3.3。探索性原型不涉及软件的具体实现方法
题目
第 6 章 软件设计概论
6.1 概念
6.1.1 软件设计模型 ※
设计元素就是模块
6.1.2 质量要素 ※
正确性、充分性、优化性、简单性
6.2 软件设计的基本原则
6.2.1 抽象与逐步求精 ※
抽象:自顶向下设计
6.2.2 模块化 ※
优点:简单、可复用、可修改、可维护、并行开发
6.2.3 信息隐藏 ※
优点:并行开发、便于测试、便于维护
6.2.4 关注点分离 ※
聚焦某个关注点
题目
第 7 章 软件体系结构设计
题目
7.1 概念
7.1.1 定义 ※
7.1.2 体系结构视图 ※
题目
7.2 表示
7.2.1 包图
7.2.2 构建图
7.4 设计模式
7.4.1 定义
设计模式:以设计复用为目的、良好定义的设计经验
7.4.2 通用模式 ※
分层:松耦合、可复用、可替换、标准化。性能损耗大
管道:可升级、更换过滤器构件。只适合批处理
7.5 概念设计
7.5.2 体系结构初创 ※
7.6 体系结构精化
7.6.1 逻辑视图体系结构
7.6.2 开发视图体系结构
题目
7.7 基于构件的体系结构设计
7.7.1 概述 ※
重点关注纵向复用、领域分析
7.7.2 构建创立 ※
领域分析:发现可复用实体、抽象化、分类、建立体系结构
7.7.3 构建复用
第 8 章 人机交互设计
8.3 用户界面设计模型的表示 ※
屏幕:窗口、对话框、网页
界面设计:屏幕内容的表示、屏幕之间跳转关系的表示
界面元素:静态、动态、用户输入、用户命令
题目
第 11 章 结构化软件开发
11.1 数据流
11.1.1 数据流图与数据字典 ※
11.1.4 基于数据流的分析方法 ※
题目
11.2 面向数据流的设计方法
11.2.1 概念和过程
11.2.2 变换分析 ※
11.2.3 事务分析 ※
题目
第 12 章 软件测试
12.1 概念
12.1.1 任务
12.1.2 信息流程
12.1.3 测试用例设计 ※
题目
12.2 过程模型
题目
12.3 测试方法
12.3.1 白盒测试
12.3.2 黑盒测试 ※
等价分类、边界值分析、对比测试
题目
第 2 题的最佳答案应当是 B,而不是 A
12.4 测试策略
12.4.1 单元测试
12.4.2 集成测试
增量式集成分为自顶向下集成和自底向上集成
12.4.3 确认测试
12.4.4 系统测试
题目
第 13 章 软件维护
13.1 概念
题目
13.2 过程模型
13.2.1 结构化与非结构化的维护 ※
13.3 可维护性
第 14 章 持续集成
14.1 概述
14.1.1 概念 ※
14.1.2 过程和管道 ※
14.1.3 价值 ※
风险、成本、效率、更新、环境、可视化
题目
(1)提交代码:一个或多个开发人员将新代码提交至VCS。
(2)触发集成:按照预先配置的“推”或“拉”方式触发管道中首个动作。
(3)执行集成:从工具执行由开发人员根据项目需要开发的脚本程序来完成相应的集成动作。在管道中每个动作完成后,主工具自动触发下一动作对应的从工具开始执行,直至到达管道的末尾,或者当前动作宣告失败。
(4)发送通知:可以对主、从工具进行配置以支持向代码提交者(或项目其他成员)发送集成过程中的进展及错误概述信息。
第 15 章 软件度量与估算
15.2 软件规模度量
题目
15.4 软件质量度量
15.4.1 软件质量的概念
题目
(1)正确性:软件满足需求规约及完成用户目标的程度。
(2)可用性。学习和使用软件的难易程度,
(3)可靠性。软件完成预期功能,成功运行的概率。软件可靠性反映了软件无故障工作的状况。
(4)有效性。软件系统利用计算机的时间资源和空间资源完成系统功能的能力。
(5)可维护性。软件制品交付用户使用后,能够对它进行修改,以便改正潜伏的缺陷、改进性能和其他属性,使软件制品适应环境的变化等等。
(6)可复用性。软构件可以在多种场合应用的程度称为构件的可复用性。
第 16 章 软件项目管理与过程改进
16.7 软件配置管理
16.7.1 概念
基线可以理解为一个配置文件 conf.ini
16.7.2 任务
题目
16.8 软件过程改进
16.8.1 概念
16.8.2 能力成熟度模型 CMM ※
初始级:没有软件过程管理
可重复级:基本的软件过程管理
已定义级:软件过程的标准化、文档化
已管理级:软件过程的定量管理
优化级:软件过程的维护和更新