软件工程导论第六版复习
第一章 软件工程概述
1.P5 软件工程是什么?
答:软件工程是指导计算机软件开发和维护的一门工程学科,采用工程的概念、原理、技术和方法来开发与维护软件,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。
2.P9 软件工程包括技术和管理两个方面的内容。
3.P9 软件工程方法学包含3要素:方法、过程和工具
4.P9 使用最广泛的软件工程方法学:传统方法学(生命周期方法学)、面向对象方法学
5.P11 软件生命周期由3个时期组成:软件定义、软件开发、运行维护(软件维护)
软件定义3个阶段:问题定义、可行性研究、需求分析
软件开发4个阶段:总体设计、详细设计、编码和单元测试、综合测试
6.P15-22 软件工程5大模型及其驱动类型:瀑布模型(文档驱动)、快速原型模型、增量模型、螺旋模型(风险驱动)、喷泉模型(对象驱动)
7.P22 迭代式开发:不必精益求精,反复修改重做
8.P31小结 糊涂观念(P3):忽视软件需求分析的重要性、认为软件开发就是写程序并设法使之运行、轻视软件维护等。
第二章 可行性研(是否值得做?)
1.P35 可行性研究:实质上是要进行一次大大压缩简化了的系统分析和设计的过程
2.P40 数据流图(DFD):是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的变换
3.P40 数据流图4种基本符号:正方形(或立方体)表示数据的源点或终点,圆角矩形(或圆形)代表变换数据的处理,开口矩形(或两条平行横线)代表数据存储,箭头代表数据流,即特定数据的流动方向。
第三章 需求分析(做什么?)
1.P58 与客户沟通获取绣球的方法:访谈、面向数据流自顶向下、简易的应用规格说明技术、快速建立软件原型
2.P62 需求分析过程应建立三种模型:数据模型(E-R图)、功能模型(用数据流图)、行为模型(状态转换图)
3.P63 实体-联系图(E-R图)中3种相互关联的信息:数据对象、属性、联系
4.P65 状态转换图中状态:初态、终态、中间状态,一张状态转换图只能有一个初态、0至多个终态
5.P66 状态转换图的符号:初态(实心圆)、终态(同心圆)、中间状态(圆角矩形)
第五章 总体设计(怎么做?)
1.P91 总体设计两个阶段:系统设计阶段,确定系统的具体实现方案。结构设计阶段,确定软件结构。
2.P94 总体设计原理:模块化、抽象、逐步求精、信息隐藏和局部化、模块独立(耦合、内聚)
3.P97 耦合性和独立性
ㅤㅤㅤ低-----------------------------------耦合性----------------------------------高
ㅤㅤㅤㅤㅤ非直接、数据、标记、控制、控制、外部、公共、内容耦合
ㅤㅤㅤ 强----------------------------------独立性----------------------------------弱
4.P99 内聚性和独立性
ㅤㅤㅤㅤㅤ低---------------------------内聚性------------------------------高
ㅤㅤㅤㅤㅤㅤㅤ偶然、逻辑、时间、过程、通信、顺序、功能
ㅤㅤㅤㅤ ㅤ 强------------------------模块独立性---------------------------弱
5.P100 启发规则:
1. 改进软件结构提高模块独立性
2. 模块规模应该适中
3. 深度、宽度、扇出、和扇入都应适当
4. 力争降低模块接口的复杂程度
5. 设计单入口单出口的模块
6. 模块功能应该可以预测
6.P102 描绘软件结构的图形工具:层次图、HIPO(模块调用图)、结构图
7.P104 面向数据流的设计方法:变换流、事务流
8.P105 面向数据流的设计步骤
1. 复查基本系统模型
2. 复查并精化数据流图
3. 确认数据流图具有变换特性还是事务特性
4. 确认输入流和输出流的边界,从而孤立出变换中心
5. 完成“第一级分解” (具体见书 P109)
6. 完成“第二级分解”
第六章 详细设计
1.P117 三种控制结构:顺序、选择、循环
2.P118 什么是结构化?
答:一个程序的代码块仅仅通过顺序、选择、和循环这3种基本控制结构进行连接,并且每个代码块只有一个入口和一个出口,这个程序就是结构化的。
3.P124 过程设计的工具:程序流程图、盒图、PAD图、判定表、判定树、伪码
第七章 实现
1.P150 什么是测试?
答:是为了发现程序中的错误而执行程序的过程
2.P151 测试方法:白盒测试、黑盒测试
3.P151 测试步骤:
1. 模块测试(单元测试)
2. 子系统测试
3. 系统测试
4. 验收测试(确认测试)
4.P153 单元测试主要使用白盒测试
5.P155 单元测试中的驱动软件:驱动程序也就是一个“主程序”,它接收测试数据,把这些数据传递给被测试的模块,并且打印有关结果。
6.P153 单元测试中的存根程序:代替被测试的模块所调用的模块,也称“虚拟子程序”
7.P156 集成测试两种集成策略:自顶向下集成(广度优先、深度优先),自顶向上集成
8.P160 回归测试:重新执行已经做过的测试
9.P162 白盒测试三种逻辑覆盖:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、点覆盖、边覆盖、路径覆盖(最强的)
10.P172 等价划分是一种黑盒测试技术,它将程序的输入域分成若干个数据类,据此导出测试用例。
11.P172 等价划分法力图设计出能发现若干类程序错误的测试用例。
12.P173 划分出等价类以后,根据等价类设计测试方案时主要有两个步骤:
- 设计一个新的测试方案以尽可能多地覆盖尚未被覆盖的无效等价类,重复这一步骤直到所有等价类都被覆盖为止
- 设计一个新的测试方案,使它覆盖一个而且只覆盖一个尚未被覆盖的无效等价类,重复这一步骤直到所有无效等价类都被覆盖为止
第八章 维护
1.P189 软件维护的定义:就是在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件的过程
2.P190 四种维护:改正性维护、适应性维护、完善性维护(占软件维护工作的大部分)、预防性维护
3.P192 软件维护过程:建立维护组织、提交维护报告、规定维护的事件流、保存维护记录、评价维护活动
第九章 面向对象方法学
1.P210 什么是对象?
答:是具有相同状态的一组操作的的集合,是对属性值和操作的封装,是封装了数据结构及可以施加在这些数据结构上的操作的封装体,这个封装体有可以唯一地标识它的名字,而且向外界提供一组服务(即公有的操作)
2.P212 什么是类?
答:类是对具有相同属性和行为的一组相似的对象的抽象,类在现实世界中并不能真正存在
3.P216 面向对象方法需建立三种模型:
- 描述系统数据结构的对象模型
- 描述系统控制结构的动态模型
- 描述系统功能的功能模型
4.P218 对象之间的横向关系(由弱到强)有:
1. 依赖 ㅤㅤㅤ虚线+箭头
2. 关联 ㅤㅤㅤ实线+黑三角形
3. 聚合 ㅤㅤㅤ实线+空心菱形,菱形指向整体
4. 组合 ㅤㅤㅤ实线+实心菱形,菱形指向整体
5.P225 用例:可以被行为者感受到的、系统的一个完整的功能
ㅤ用例模型:外部行为者所理解的系统功能
第十章 面向对象分析
1.P232 3个子模型:静态结构(对象模型)、交互次序(动态模型)、数据变换(功能模型)
2.P232 5个层次:主题层(识别主题)、类与对象层(找出类与对象)、结构层(识别结构)、属性层(定义属性)、服务层(定义服务)
3.P236 找出候选类与对象:
- 把称述中的名词作为类与对象的候选者
- 把形容词作为确定属性的线索
- 把动词作为服务(操作)的候选者
第十三章 软件项目管理
1.P305 什么是管理?
答:通过计划、组织和控制等一系列活动,合理地配置和使用各种资源,以达到既定目标的过程。
2.P314 制定进度计划的工具:Gantt图
来源:CSDN
作者:那你能帮帮我吗?
链接:https://blog.csdn.net/qq_42198106/article/details/103744144