书籍详情

软件工程

软件工程

作者:张佩云

出版社:科学出版社

出版时间:2022-08-01

ISBN:9787030730664

定价:¥49.00

购买这本书可以去
内容简介
  本书本着理论联系实际、专业特色突出的原则,从传统方法学和面向对象方法学两个方面介绍软件工程的主要内容,使学生能够掌握计算机软件系统开发和维护的基本原理,提高综合应用所学知识的能力,提高分析问题、解决问题和实际的软件开发能力。全书共12章,系统讲述软件开发、维护和管理的工程化的概念、原理、方法和技术,主要内容包括软件工程的基本概念、可行性研究、需求分析、概要设计、详细设计、实现、维护等软件开发过程、原理、方法、规范以及软件项目管理的基本技术等,并力图通过案例贯穿两种方法学的相应章节。本书涵盖软件工程基础内容的各个方面,可作为计算机科学与技术、软件工程、信息安全等专业的本科生教材,也可供软件信息行业的工程技术人员参考。
作者简介
暂缺《软件工程》作者简介
目录
第1章 概论 1
1.1 软件概述 1
1.1.1 软件的定义 1
1.1.2 软件的特点 1
1.1.3 软件的分类 2
1.2 软件危机 3
1.2.1 软件发展阶段 3
1.2.2 软件危机的背景、表现、原因及解决途径 5
1.3 软件工程概述 7
1.3.1 软件工程的定义 7
1.3.2 软件工程的特点 7
1.3.3 软件工程的基本原理 8
1.3.4 软件工程的基本目标 10
1.4 软件生命周期 10
1.4.1 软件定义时期 11
1.4.2 软件开发时期 11
1.4.3 软件运行维护时期 12
习题 12
第2章 软件方法学与过程模型 13
2.1 软件方法学 13
2.1.1 传统方法学 13
2.1.2 面向对象方法学 13
2.2 软件过程模型 14
2.2.1 传统方法学的过程模型 14
2.2.2 面向对象方法学的过程模型 19
2.2.3 其他过程模型 21
习题 23
第3章 可行性研究与需求分析 25
3.1 可行性研究 25
3.1.1 可行性研究的任务 25
3.1.2 可行性研究过程 26
3.1.3 系统流程图 27
3.1.4 成本/效益分析 29
3.2 需求分析 32
3.2.1 需求分析概述 32
3.2.2 需求获取的方法 34
3.2.3 需求分析建模 36
3.2.4 其他图形工具 49
3.2.5 需求分析的过程和需求规格说明书 50
3.2.6 验证软件需求 51
习题 53
第4章 概要设计 54
4.1 设计过程 54
4.1.1 设想供选择的方案 54
4.1.2 选取合理的方案 54
4.1.3 方案 54
4.1.4 功能分解 54
4.1.5 设计软件结构 55
4.1.6 设计数据库 55
4.1.7 制订测试计划 55
4.1.8 书写文档 56
4.1.9 审查和复审 56
4.2 设计原理 56
4.2.1 模块化 56
4.2.2 抽象 57
4.2.3 逐步求精 57
4.2.4 信息隐藏和局部化 58
4.2.5 模块独立 58
4.3 启发规则 61
4.3.1 改进软件结构,提高模块独立性 61
4.3.2 模块规模应该适中 61
4.3.3 深度、宽度、扇出和扇入都应适当 62
4.3.4 模块的作用域应该在控制域之内 62
4.3.5 力争降低模块接口的复杂程度 62
4.3.6 设计单入口单出口的模块 63
4.3.7 模块功能应该可以预测 63
4.4 面向数据流的设计方法 63
4.4.1 概念 63
4.4.2 变换分析 65
4.4.3 事务分析 67
4.5 案例设计 68
习题 69
第5章 详细设计 70
5.1 详细设计的任务 70
5.1.1 确定每个模块的具体算法 70
5.1.2 确定每个模块的内部数据结构及数据库的物理结构 70
5.1.3 确定模块接口的具体细节 70
5.1.4 编写文档,进行复审 70
5.2 人机界面设计 71
5.2.1 设计问题与设计过程 71
5.2.2 人机界面设计指南 72
5.3 过程设计的工具与结构程序设计 73
5.3.1 过程设计的工具 73
5.3.2 结构程序设计 78
5.4 面向数据结构的设计方法 79
5.5 程序复杂程度的定量度量——McCabe方法 82
习题 85
第6章 实现 87
6.1 编码 87
6.1.1 选择适宜的程序设计语言 87
6.1.2 遵循合理的编码风格 88
6.2 软件测试基础 90
6.2.1 测试的目标 90
6.2.2 测试问题和测试准则 90
6.2.3 测试方法 92
6.2.4 测试步骤 93
6.2.5 测试阶段的信息流 93
6.3 单元测试 94
6.3.1 测试重点 94
6.3.2 代码审查 95
6.4 集成测试 95
6.4.1 非渐增式测试 95
6.4.2 渐增式测试 96
6.5 验收测试 97
6.5.1 验收测试的范围 98
6.5.2 Alpha和Beta测试 98
6.6 白盒测试技术 98
6.6.1 逻辑覆盖 98
6.6.2 控制结构测试——基本路径测试 101
6.7 黑盒测试技术 103
6.7.1 等价划分法 103
6.7.2 边界值分析法 105
6.7.3 错误推测法 105
6.8 调试 106
6.8.1 调试过程 106
6.8.2 调试途径 107
6.9 软件可靠性 107
6.9.1 基本概念 107
6.9.2 估算平均无故障时间的方法 108
习题 109
第7章 维护 110
7.1 软件维护概述 110
7.1.1 软件维护的定义 110
7.1.2 软件维护的类型 110
7.1.3 软件维护的特点 111
7.2 软件的可维护性 112
7.2.1 软件可维护性定义 112
7.2.2 决定软件可维护性的因素 112
7.3 软件维护过程 113
7.3.1 维护组织 113
7.3.2 维护报告 113
7.3.3 维护的事件流 114
7.3.4 保存维护记录 115
7.3.5 评价维护活动 115
7.4 预防性维护 115
7.4.1 老程序修改方法 115
7.4.2 开发新程序的必要性 116
7.5 软件再工程过程 116
7.5.1 库存目录分析 117
7.5.2 文档重构 117
7.5.3 逆向工程 117
7.5.4 代码重构 117
7.5.5 数据重构 118
7.5.6 正向工程 118
习题 118
第8章 面向对象方法学 119
8.1 面向对象方法学概述 119
8.1.1 面向对象方法学的要点 119
8.1.2 面向对象方法学的优点 120
8.2 面向对象的概念 122
8.2.1 对象 122
8.2.2 其他概念 123
8.3 面向对象建模 124
8.3.1 对象模型 124
8.3.2 动态模型 130
8.3.3 功能模型 131
8.3.4 三种模型之间的关系 131
习题 131
第9章 面向对象分析 132
9.1 面向对象分析的基本过程 132
9.1.1 概述 132
9.1.2 三个子模型与五个层次 133
9.2 建立功能模型 134
9.2.1 需求陈述 134
9.2.2 书写要点 134
9.2.3 需求陈述示例 134
9.2.4 建立用例图 135
9.3 建立对象模型 140
9.3.1 确定类 141
9.3.2 确定关联 143
9.3.3 划分主题与确定属性 147
9.3.4 识别继承关系 148
9.3.5 反复修改 149
9.4 建立动态模型 150
9.4.1 画顺序图 150
9.4.2 画状态图 153
9.4.3 审查动态模型 154
9.5 定义服务 155
9.5.1 常规行为 155
9.5.2 从事件导出的操作 155
习题 155
0章 面向对象设计 157
10.1 基本设计概念 157
10.1.1 对象与类的设计 157
10.1.2 基于重用的设计 159
10.2 类继承与对象组合 160
10.2.1 定义 160
10.2.2 优缺点 161
10.3 可替代性 162
10.3.1 定义 162
10.3.2 用途 163
10.4 迪米特法则 163
10.5 依赖倒置 164
10.6 面向对象设计模式 165
10.6.1 模板方法模式 167
10.6.2 工厂方法模式 168
10.6.3 策略模式 168
10.6.4 装饰器模式 169
10.6.5 观察者模式 170
10.6.6 复合模式 170
10.6.7 访客模式 171
习题 173
1章 面向对象实现 175
11.1 编程过程 175
11.1.1 编程就是解决问题 175
11.1.2 极限编程 176
11.1.3 结对编程 176
11.2 信息系统示例 177
11.2.1 按值传递 177
11.2.2 指针传递 178
11.2.3 引用传递 178
11.3 实时系统示例 178
11.4 测试面向对象系统 179
11.4.1 测试代码 179
11.4.2 面向对象测试与传统测试的区别 180
习题 181
2章 软件项目管理 182
12.1 软件规模估算 183
12.1.1 代码行估算技术 183
12.1.2 功能点估算技术 184
12.2 软件工作量估算 187
12.2.1 工作量估算定义 187
12.2.2 项目工作量估算方法 187
12.2.3 基于工作分解结构的工作量估算 191
12.3 软件进度计划 191
12.3.1 甘特图 191
12.3.2 工程网络 192
12.3.3 估算工程进度 193
12.4 软件质量管理 194
12.4.1 软件质量因素 194
12.4.2 软件质量保证方法 195
12.5 软件配置管理 196
12.5.1 基本概念 197
12.5.2 软件配置过程 197
12.6 软件项目人员管理 199
12.6.1 团队组织 199
12.6.2 小组结构的选择 202
12.7 软件能力成熟度模型 202
12.7.1 基本概念 202
12.7.2 CMM成熟度等级 203
12.7.3 关键过程域 206
习题 206
参考文献 208
猜您喜欢

读书导航