软件工程导论第六版复习

第一章 软件工程概述

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. 设计一个新的测试方案以尽可能多地覆盖尚未被覆盖的无效等价类,重复这一步骤直到所有等价类都被覆盖为止
  2. 设计一个新的测试方案,使它覆盖一个而且只覆盖一个尚未被覆盖的无效等价类,重复这一步骤直到所有无效等价类都被覆盖为止

第八章 维护

1.P189 软件维护的定义:就是在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件的过程

2.P190 四种维护:改正性维护、适应性维护、完善性维护(占软件维护工作的大部分)、预防性维护

3.P192 软件维护过程:建立维护组织、提交维护报告、规定维护的事件流、保存维护记录、评价维护活动

第九章 面向对象方法学

1.P210 什么是对象?
答:是具有相同状态的一组操作的的集合,是对属性值和操作的封装,是封装了数据结构及可以施加在这些数据结构上的操作的封装体,这个封装体有可以唯一地标识它的名字,而且向外界提供一组服务(即公有的操作)

2.P212 什么是类?
答:类是对具有相同属性和行为的一组相似的对象的抽象,类在现实世界中并不能真正存在

3.P216 面向对象方法需建立三种模型:

  1. 描述系统数据结构的对象模型
  2. 描述系统控制结构的动态模型
  3. 描述系统功能的功能模型

4.P218 对象之间的横向关系(由弱到强)有:
1. 依赖 ㅤㅤㅤ虚线+箭头
2. 关联 ㅤㅤㅤ实线+黑三角形
3. 聚合 ㅤㅤㅤ实线+空心菱形,菱形指向整体
4. 组合 ㅤㅤㅤ实线+实心菱形,菱形指向整体

5.P225 用例:可以被行为者感受到的、系统的一个完整的功能
ㅤ用例模型:外部行为者所理解的系统功能

第十章 面向对象分析

1.P232 3个子模型:静态结构(对象模型)、交互次序(动态模型)、数据变换(功能模型)

2.P232 5个层次:主题层(识别主题)、类与对象层(找出类与对象)、结构层(识别结构)、属性层(定义属性)、服务层(定义服务)

3.P236 找出候选类与对象:

  1. 把称述中的名词作为类与对象的候选者
  2. 形容词作为确定属性的线索
  3. 动词作为服务(操作)的候选者

第十三章 软件项目管理

1.P305 什么是管理?
答:通过计划、组织和控制等一系列活动,合理地配置和使用各种资源,以达到既定目标的过程。

2.P314 制定进度计划的工具:Gantt图

  • 3
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值