计算机类专业教育 > 软件工程类

软件工程

书号:9787113108076 套系名称:普通高等学校计算机科学与技术专业规划教材

作者:张 林 马雪英 王 衍 出版日期:2009-12-01

定价:35.00 页码 / 开本:376 /16

策划编辑:秦绪好 周海燕 责任编辑:秦绪好

适用专业:无 适用层次:应用技术型本科

最新印刷时间:

资源下载
教学课件 教学素材(暂无)
习题答案(暂无) 教学案例(暂无)
教学设计(暂无) 教学视频(暂无)
内容简介 前言 目录 作者介绍 图书特色
  •         全书共分为四篇,分别讲解了如下知识点:软件工程与需求分析,软件设计方法与技术,软件编码、测试与维护,软件工程项目管理等基本理论和相关技术。本书内容丰富,概念表述准确,原理论述清晰,并且注重理论性与实用性相统一。有关软件工程学科的研究成果与教学成果都在本书中得到了充分的体现与反映。本书是按照教育部高等学校计算机科学与技术专业教学指导分委员会颁布的《高等学校计算机科学与技术专业发展战略研究报告暨专业规范(试行)》中“软件工程”课程教学大纲的要求编写而成的,适合作为高等学校计算机和相关专业软件工程课程的教材,也可作为软件开发人员与软件项目管理人员的学习参考书。
  •         随着微电子技术的高速发展,人类进入了信息社会。计算机的普及影响和改变着人们的生活,计算机软件也在其中扮演着越来越重要的角色。自1968年“软件工程”的概念被首次提出,软件工程的新方法、新技术和新模型不断涌现,现已成为当代社会重点研究和快速发展的一门应用工程学科,成为体现国家科技竞争力的关键领域之一。

            软件工程将计算机科学理论与现代工程方法论相结合,着重研究软件开发理论、软件设计方法、工程开发技术和工具,是指导软件生产和管理的一门新兴的、综合性的应用学科。它所研究的范围十分广泛,包括软件项目开发、软件项目管理和软件维护的理论、技术、方法、标准等内容。软件工程学作为软件开发的基础理论与方法,为缓解世界“软件危机”发挥了重大作用,其在软件开发过程中的重要地位已得到全球信息产业的普遍认可与高度重视。

            软件工程课程是高等学校计算机科学与技术学科各专业的一门主干课程,是计算机专业学生的必修课程。本书在总结多年教学经验和科研实践的基础上,吸收当前软件工程学的新成果,从实用角度出发,对软件工程学的基本概念、基本原理及重点的软件开发方法和技术工具做了系统、全面、深入的介绍,旨在帮助读者对现代软件工程有一个初步的、较为全面的理解,并使他们能掌握一定的软件开发基础知识和应用技术。

            全书共分四篇。第1篇为软件工程与需求分析,着重介绍了软件工程的概念、历史、意义,软件可行性分析,软件需求分析,软件开发工具与环境等软件工程的基础性知识;第2篇为软件设计的方法和技术,介绍了软件设计基本原理,总体设计和详细设计,软件体系结构结构化开发方法,面向对象的开发方法,人机交互界面设计,软件重用技术等内容;第3篇为软件编码、测试与维护等相关知识的介绍,主要内容包括软件编码标准与规范,编码语言选择,编码风格优化,软件测试原理、方法,软件纠错和调试,软件维护过程,软件维护方法,软件再工程等;第4篇为软件工程项目管理,全面介绍了项目管理的主要内容,项目组织与人员管理,项目计划与进度控制,项目质量管理,项目配备管理,项目风险管理等内容。?

            本书在编写的过程中力求体现自己的特点,注重理论、方法与实际应用相结合,以案例为主导,针对软件工程编制设计中实际问题的解决思路与方法,进行要点归纳和总结,突出实用性和可操作性;内容由浅入深,结构安排科学,符合应用型人才培养的规律和软件工程的学科特点。概念清晰,逻辑鲜明,内容翔实,通俗易懂,是一本非常适合学生修习的软件工程学入门教程。适合作为高等学校计算机专业和相关专业“软件工程”课程的教材或教学参考书,也可供软件开发人员阅读参考。

            由于软件工程技术发展迅速及编者水平有限,书中难免存在不妥和疏漏之处,恳请广大读者给予指正,以使本书得到进一步修订和完善。
  • 第一篇  软件工程与需求分析
    第1章  软件工程概述 1
    1.1  软件的概念、特性和分类 1
    1.1.1  软件概念的涵义 1
    1.1.2  软件的分类方法 2
    1.2  软件的发展与软件危机 4
    1.2.1  软件的发展历程 4
    1.2.2  软件危机的产生及其原因 5
    1.2.3  缓解软件危机的途径 8
    1.3  软件过程及其基本活动 8
    1.3.1  软件过程的概念与组成时期 8
    1.3.2  软件过程中的各个过程 10
    1.3.3  软件过程的基本活动 11
    1.4  软件过程模型 12
    1.4.1  瀑布模型 13
    1.4.2  原型模型 14
    1.4.3  增量模型 15
    1.4.4  螺旋模型 16
    1.4.5  形式化方法模型 18
    1.4.6  构件组装模型 18
    1.4.7  基于面向对象的模型 19
    1.4.8  统一过程模型 19
    1.4.9  基于第四代技术的模型 21
    1.5  软件工程 22
    1.5.1  软件工程概念的涵义与组成要素 22
    1.5.2  软件工程的基本目标与基本要求 23
    1.6  软件工程的开发过程与开发方法 25
    1.6.1  软件工程的开发过程 25
    1.6.2  软件工程的开发方法 26
    本章小结 28
    思考题 28
    第2章  软件项目可行性分析 29
    2.1  软件可行性分析概述 29
    2.1.1  可行性分析的必要性、目的与任务 29
    2.1.2  软件可行性分析的步骤 30
    2.2  软件可行性分析的主要内容 32
    2.2.1  技术可行性分析 32
    2.2.2  经济可行性分析 33
    2.3  方案选择与可行性分析报告 36
    2.3.1  方案选择 36
    2.3.2  可行性分析报告 37
    本章小结 38
    思考题 38
    第3章  软件需求分析 39
    3.1  软件需求概述 39
    3.1.1  软件需求的涵义与三个层次 39
    3.1.2  需求分析的涵义与重要性 40
    3.1.3  需求分析的难点与任务 41
    3.1.4  需求分析的原则 42
    3.2  需求收集 43
    3.2.1  需求收集的内容 43
    3.2.2  需求收集的方法 44
    3.3  需求分析过程 46
    3.3.1  需求分析过程的步骤 46
    3.3.2  需求分析阶段的描述工具 48
    3.4  软件需求分析技术 50
    3.4.1  需求建模技术 50
    3.4.2  快速原型技术 53
    3.5  需求规格及其评审 55
    3.5.1  软件需求规格 55
    3.5.2  软件需求规格的内容 56
    3.5.3  软件需求规格的评审 57
    3.6  软件需求管理 58
    3.6.1  软件需求管理的任务 58
    3.6.2  软件需求管理的工具 59
    3.6.3  需求变更 61
    3.6.4  需求跟踪 62
    本章小结 64
    思考题 64
    第4章  软件开发工具与环境 65
    4.1  软件开发工具概述 65
    4.1.1  软件开发工具的功能 65
    4.1.2  软件开发工具的性能 66
    4.1.3  软件开发工具的分类与发展 67
    4.1.4  软件开发工具的比较因素 69
    4.2  两种常用软件开发工具 72
    4.2.1  Rational Rose 72
    4.2.2  Power Designer 76
    4.3  软件开发环境 78
    4.3.1  软件开发环境的涵义与特点 78
    4.3.2  软件开发环境的构成和分类 79
    4.3.3  计算机辅助软件工程 80
    本章小结 86
    思考题 86
    第二篇  软件设计的方法与技术
    第5章  软件设计方法概述 87
    5.1  软件设计的概念与基本原理 87
    5.1.1  软件设计的涵义、意义与特征 87
    5.1.2  软件设计的基本原理 88
    5.1.3  软件设计的目标 90
    5.1.4  软件设计的任务 91
    5.2  软件设计的过程与方法 93
    5.2.1  软件设计的过程 93
    5.2.2  软件设计的常用方法 94
    5.3  软件体系结构 95
    5.3.1  软件体系结构及相关概念的涵义 95
    5.3.2  软件体系结构设计的作用任务与原则 96
    5.3.3  软件体系结构的描述和图形表示 99
    5.3.4  软件体系结构的风格 100
    5.4  常见的软件开发模型 104
    5.4.1  系统构成模型 104
    5.4.2  系统控制模型 105
    5.4.3  包装程序设计模型 106
    5.4.4  创建型模型 106
    5.4.5  软件的模块化设计 107
    本章小结 108
    思考题 108
    第6章  软件的总体设计与详细设计 109
    6.1  软件的总体设计 109
    6.1.1  软件总体设计的概念、任务和目标 109
    6.1.2  软件总体设计的原则 110
    6.1.3  软件总体设计的方法与步骤 111
    6.1.4  总体设计中的模块划分 112
    6.1.5  软件总体设计文件与复审 114
    6.2  软件的详细设计 115
    6.2.1  软件详细设计的概念、任务和原则 115
    6.2.2  软件详细设计的方法和工具 116
    6.2.3  软件详细设计的过程 117
    6.2.4  详细设计中的四种建模 118
    6.2.5  软件详细设计规格说明与复审 120
    本章小结 121
    思考题 122
    第7章  结构化开发方法 123
    7.1  结构化开发方法概述 123
    7.1.1  结构化开发方法的涵义、特点及优点与问题 123
    7.1.2  结构化分析与设计的一般步骤 124
    7.2  结构化分析方法 125
    7.2.1  结构化分析的基本原则 125
    7.2.2  结构化分析的工具之一:数据流图 125
    7.2.3  结构化分析工具之二:数据词典 126
    7.2.4  结构化分析工具之三:加工逻辑描述工具 128
    7.2.5  结构化分析模型 130
    7.3  结构化设计方法 131
    7.3.1  结构化设计方法简述 131
    7.3.2  数据流图的类型 131
    7.3.3  变换分析设计及其步骤 132
    7.3.4  事务分析设计及其步骤 133
    7.3.5  混合型设计与设计后的处理 134
    7.3.6  结构化设计建模 135
    7.4  面向数据结构的设计方法 137
    7.4.1  Jackson方法 137
    7.4.2  Warnier方法 138
    本章小结 140
    思考题 140
    第8章  面向对象的开发方法 141
    8.1  面向对象方法概述 141
    8.1.1  面向对象的定义和特点 141
    8.1.2  面向对象的基本概念 142
    8.2  面向对象分析 144
    8.2.1  面向对象分析的目标、任务与原则 144
    8.2.2  面向对象分析的过程 145
    8.3  面向对象建模 146
    8.3.1  面向对象建模概要 146
    8.3.2  面向对象的三种模型 147
    8.3.3  三种模型之间的关系 148
    8.3.4  统一建模语言UML 149
    8.4  面向对象设计 151
    8.4.1  从面向对象分析到面向对象设计 151
    8.4.2  面向对象设计的目标和准则 152
    8.4.3  面向对象设计的步骤和经验性规则 154
    8.4.4  问题域子系统的设计 156
    8.4.5  任务管理系统的设计 157
    8.4.6  数据管理系统的设计 157
    本章小结 158
    思考题 158
    第9章  人机交互界面设计 159
    9.1  人机界面设计概述 159
    9.1.1  人机界面设计是一门综合艺术 159
    9.1.2  人机界面设计需要考虑人的因素 160
    9.1.3  人机界面设计的原则与要求 162
    9.1.4  人机界面设计的标准与风格 164
    9.2  人机界面设计的主要内容 164
    9.2.1  软件界面设计内容概论 164
    9.2.2  字符界面设计 165
    9.2.3  对话框设计与多窗口界面设计 167
    9.2.4  数据输入界面设计 168
    9.3  人机界面设计方法 169
    9.3.1  界面设计任务分析的方法与步骤 169
    9.3.2  人机界面设计的过程 169
    9.3.3  人机界面设计的有关模型 170
    9.3.4  界面设计中有关问题的把握 170
    9.3.5  界面设计原型的技巧 171
    9.3.6  人机界面设计的评估 172
    本章小结 173
    思考题 173
    第10章  软件重用技术 174
    10.1  软件重用概述 174
    10.1.1  软件重用涵义、层次、分类及特点 174
    10.1.2  软件重用的历史和意义 176
    10.1.3  软件重用机会的识别 176
    10.2  域工程 177
    10.2.1  域工程的概念与特征 177
    10.2.2  域工程的目的、内容与步骤 178
    10.2.3  域分析 179
    10.2.4  域建模和实现 180
    10.3  构件库的开发 181
    10.3.1  可重用构件的开发 181
    10.3.2  对构件库的严密管理 183
    10.3.3  构件的修改与合成 185
    10.4  面向对象的软件重用 185
    10.4.1  类构件的重用方式 185
    10.4.2  类库的构造、检索与合成 186
    本章小结 187
    思考题 187
    第三篇  软件编码、测试与维护
    第11章  软件编码 188
    11.1  编码概述 188
    11.1.1  编码及编码的目的 188
    11.1.2  编码的标准与规范 189
    11.1.3  编码的质量要求 190
    11.1.4  编码途径 191
    11.1.5  编码工具 194
    11.2  编码语言 195
    11.2.1  编码语言的发展 195
    11.2.2  编码语言的基本成分 196
    11.2.3  编码语言的特性 197
    11.2.4  编码语言的分类 199
    11.2.5  编码语言的选择 200
    11.3  编码风格 201
    11.3.1  注重编码风格的意义 201
    11.3.2  语句结构 201
    11.3.3  源文档程序化 203
    11.3.4  数据说明 204
    11.3.5  输入与输出 204
    本章小结 205
    思考题 205
    第12章  软件测试 206
    12.1  软件测试概述 206
    12.1.1  软件测试的概念、目的与类型 206
    12.1.2  测试与软件开发各个阶段的关系 208
    12.1.3  软件测试应遵循的原则 209
    12.2  软件测试方法 210
    12.2.1  静态测试法 210
    12.2.2  白盒测试法 212
    12.2.3  黑盒测试法 215
    12.3  软件测试步骤 219
    12.3.1  单元测试 219
    12.3.2  集成测试 220
    12.3.3  确认测试 222
    12.3.4  系统测试 224
    12.3.5  人工测试 225
    12.4  软件测试自动化 226
    12.4.1  软件测试自动化概述 226
    12.4.2  软件测试自动化的过程 226
    12.4.3  软件测试自动化的优缺点 228
    12.4.4  自动化测试工具 230
    12.5  软件的纠错 232
    12.5.1  软件纠错与测试的区别 233
    12.5.2  软件纠错的基本原则 234
    12.5.3  软件纠错的主要方法 234
    12.5.4  纠错的过程 236
    12.5.5  纠错的辅助手段 237
    本章小结 237
    思考题 238
    第13章  软件维护 239
    13.1  软件维护概述 239
    13.1.1  软件维护的概念与特点 239
    13.1.2  软件维护的分类 240
    13.1.3  软件维护的成本问题 241
    13.1.4  软件维护中的典型问题 242
    13.1.5  软件维护的副作用 243
    13.2  软件维护的过程 244
    13.2.1  组建维护机构 244
    13.2.2  编写维护报告 245
    13.2.3  记录维护流程 246
    13.2.4  保存维护记录 247
    13.2.5  评价维护活动 248
    13.3  软件的可维护性 248
    13.3.1  软件可维护性的概念及意义 248
    13.3.2  软件可维护性的度量 248
    13.3.3  可维护性复审 250
    13.4  提高软件可维护性的方法 251
    13.4.1  建立明确的软件质量目标和优先级 251
    13.4.2  使用提高软件质量的技术和工具 252
    13.4.3  进行明确的质量保证审查 253
    13.4.4  选择可维护性的程序设计语言 254
    13.4.5  改进程序的文档 255
    13.5  软件再工程 256
    13.5.1  软件再工程的概念和具体目标 256
    13.5.2  软件再工程的方法 256
    13.5.3  软件再工程的活动 257
    13.5.4  软件再工程的风险 260
    本章小结 261
    思考题 261
    第四篇  软件工程项目管理
    第14章  软件项目组织与人力资源管理 262
    14.1  软件项目管理概述 262
    14.1.1  软件项目管理的涵义、特点、目的与意义 262
    14.1.2  软件项目管理的主要活动 264
    14.1.3  软件项目管理的主要内容 265
    14.1.4  软件项目管理的常用工具介绍 266
    14.1.5  保证项目成功的重要管理技巧 268
    14.2  软件项目组织 270
    14.2.1  项目组织结构模式和小组组织形式 270
    14.2.2  项目组织必备角色及成员配备规划 272
    14.2.3  项目管理委员及各小组的组建 273
    14.3  软件项目人力资源管理 274
    14.3.1  软件项目人力资源管理的意义与原则 274
    14.3.2  软件项目负责人的选择 275
    14.3.3  软件项目参与人员的选择 276
    14.3.4  软件项目中的团队建设 277
    14.3.5  对软件项目成员的激励 279
    本章小结 281
    思考题 281
    第15章  软件项目计划与进度控制 282
    15.1  软件项目计划 282
    15.1.1  软件项目计划的意义与作用 282
    15.1.2  软件项目计划的过程 283
    15.1.3  软件项目计划的任务 284
    15.1.4  软件项目计划的内容 287
    15.1.5  软件项目的估算 288
    15.2  软件项目进度控制 291
    15.2.1  软件项目进度控制的依据 291
    15.2.2  任务分解与工作量的确定 292
    15.2.3  项目开发进度计划与进度安排 293
    15.2.4  项目进度跟踪与控制 295
    本章小结 296
    思考题 296
    第16章  软件质量管理 297
    16.1  软件质量管理概述 297
    16.1.1  软件质量的涵义与构成要素 297
    16.1.2  软件质量管理的特点原则 300
    16.1.3  影响软件质量的因素与质量管理的困难 301
    16.1.4  提高软件质量的一般方法 302
    16.2  软件可靠性与复杂性分析 303
    16.2.1  软件可靠性分析 303
    16.2.2  软件复杂性分析 307
    16.3  软件质量保证 309
    16.3.1  软件质量保证的涵义与主要任务 309
    16.3.2  软件质量保证活动 310
    16.4  软件质量认证体系 312
    16.4.1  质量管理体系中的国际标准:ISO 9000系列 312
    16.4.2  ISO 9000系列标准 312
    16.4.3  质量认证及其实施 314
    16.4.4  能力成熟度模型 317
    16.5  软件工程标准化管理 320
    16.5.1  软件工程标准化的意义与标准分类 320
    16.5.2  软件工程标准化的层次 322
    16.5.3  软件工程标准的制定与推行 323
    16.5.4  中国的软件工程标准 323
    本章小结 324
    思考题 325
    第17章  软件配置管理 326
    17.1  软件配置管理概述 326
    17.1.1  软件配置管理的涵义与意义 326
    17.1.2  软件配置管理的模式及常用术语 328
    17.1.3  软件配置管理的对象:软件配置项 331
    17.1.4  软件配置管理的工具 332
    17.1.5  软件配置管理系统 336
    17.2  软件配置管理过程 338
    17.2.1  软件配置管理流程 338
    17.2.2  标识配置对象 340
    17.2.3  版本控制与变更控制 340
    17.2.4  配置审核与配置状态记录 341
    本章小结 342
    思考题 342
    第18章  软件项目风险管理 343
    18.1  软件风险概述 343
    18.1.1  软件风险的涵义和类别 343
    18.1.2  软件风险的识别方法 345
    18.2  软件风险管理 347
    18.2.1  软件风险检查 347
    18.2.2  软件风险的预测 347
    18.2.3  软件风险的评估 348
    18.2.4  软件风险的监控与规避 350
    18.2.5  软件风险的综合处理 351
    本章小结 352
    思考题 353
    参考文献 354