软件工程
书 号:9787113245641
丛 书 名:普通高等院校计算机类专业规划教材.精品系列
作 者:吕兰兰,黄丽韶,张雷
译 者:
开 本:16开
装 帧:平装
正文语种:
出 版 社:中国铁道出版社有限公司
定 价:55元
-
内容简介
本书依据典型的软件开发过程,以软件生命周期为主线组织内容。全书共分9章,第1章介绍软件工程相关的基本概念,第2、3章介绍结构化分析和设计,第4~6章介绍面向对象分析和设计,第7、8章介绍软件测试及软件质量保证,第9章介绍软件项目管理。本书的组织在一定程度上兼顾了面向过程、面向对象、软件工程管理的视角。
本书内容丰富、循序渐进,注重软件工程理论与实践的结合,适合作为高等院校软件工程、计算机科学与技术等相关专业本科生软件工程课程的教材,也可作为从事软件开发人员的参考书。 -
前言
软件工程课程是高等学校软件工程、计算机科学与技术等专业的一门重要的专业核心课程,在2018年颁布的《普通高等学校本科专业类教学质量国家标准》中,“软件工程”已经成为计算机类教学质量国家标准中软件工程、计算机科学与技术等相关专业建议的专业核心课程之一。软件工程课程主要介绍软件工程的基本原理、开发方法和开发工具,是软件开发的理论课程,具有很强的实践性。另外,该课程涉及计算机、经济学、管理学、工程学、市场学等多个领域的知识,具有知识广泛的特点。同时,软件工程知识也是每一位从事软件分析、设计、开发、测试、管理和维护人员的必备知识。2011年2月我国国务院学位委员会在修订的学科目录中,将软件工程(学科代码为0835)增设为一级学科,极大地促进了软件工程学科的发展。
本书编者长期从事软件工程课程的教学工作,在教学中深切体会到,软件工程课程的实践性比较强,如果学生没有软件开发方面的实践经验,则很难理解软件工程相关的理论知识。因此,老师普遍感到软件工程课程难教,而学生则普遍感到难学。例如,软件工程理论知识的枯燥乏味,不容易将抽象的理论与实践联系起来;没有大项目案例的依托,体会不出软件工程的作用;软件开发经验介绍和感受的机会少等。如何突出重点,如何应用案例进行教学,如何使学生掌握必备的软件工程基础知识并加以应用,这些都对软件工程课程的教学提出了挑战。本书编者在长期的软件工程课程教学中积累了一些教学经验,因此萌生了编写一本软件工程教材的想法。
本书的主要特点如下:
1.以软件生命周期为主线组织内容
软件工程的知识内容很丰富,可以从不同视角进行组织与阐述。常见视角是按照面向过程的软件工程、面向对象的软件工程和软件工程管理来组织内容,然后在每一部分再按照软件生命周期各个阶段来介绍软件工程的原理和方法。本书以软件生命周期为主线来组织内容,在一定程度上兼顾了面向过程、面向对象、软件工程管理的视角。
2.以案例为线索,涵盖软件工程主要知识点
本书知识结构紧凑,面向软件工程、计算机科学与技术等专业的教学实际,突出案例教学,强调实用,一方面涵盖软件工程主要知识点,另一方面以案例为线索,以结构化方法和面向对象方法为主线,将分散的知识点连贯起来,便于读者理解和消化,为读者提供一条循序渐进的学习路线。并尽量以程序代码的形式对相关的理论进行说明和阐释,从而达到理论联系实际的目的。
本书共分9章,内容涉及软件工程的基本原理和概念、软件开发生命周期的各个阶段、软件项目管理的相关内容等,具体组织如下:
第1章?软件工程概述:介绍了软件工程相关的基本概念,例如,软件的定义和特
点、软件危机产生的原因及主要表现、软件工程的定义和发展、软件生命周期的概念等。着重阐述了应用比较广泛的软件开发模型以及现代软件过程模型。传统软件开发模型包括瀑布模型、快速原型模型、增量模型和螺旋模型,现代软件过程模型包括RUP统一过程等。
第2章?结构化需求分析: 介绍了可行性分析和需求分析的概念。着重阐述了需求获取的方法,结构化需求分析方法及其描述工具,以及需求规格说明书的撰写,详细介绍了一个应用结构化分析的案例。
第3章?结构化设计与实现:结构化设计包括总体设计和详细设计。分别介绍了总体设计和详细设计的目标、准则等概念。着重阐述了结构化设计的方法,软件总体结构设计和详细设计的工具,以及总体设计说明书和详细设计说明书的撰写。详细介绍了一个应用结构化设计的案例。此外,还介绍了结构化实现相关的概念和
工具。
第4章?面向对象技术:介绍面向对象技术的概念和优势,以及几种经典的面向对象软件开发方法。详细介绍了一个建立面向对象思维的简单案例,覆盖了面向对象分析、设计和实现的全过程。着重阐述了UML(统一建模语言)的“4+1”架构,以及UML2中的结构图和行为图的概念和简单应用。
第5章?面向对象分析:介绍了面向对象分析的过程,结合实例着重阐述了用例建模和分析建模,并给出了一个应用面向对象分析的案例。
第6章?面向对象设计与实现:介绍了面向对象设计的原则。着重阐述了面向对象设计中的架构设计、对象设计和数据库设计,并给出了一个应用面向对象设计的案例。此外,还介绍了面向对象的实现,包括单个类的实现、类间关系的实现和类方法的实现等。
第7章?软件测试:介绍了软件测试的必要性、软件测试相关的基本概念、软件测试的分类。着重阐述了软件测试的流程,软件测试与软件开发各阶段的关系,以及白盒测试和黑盒测试等软件测试技术。
第8章?软件质量保证:介绍了软件质量的概念,以及软件质量保证与控制的基本概念和行为准则。着重阐述了软件质量保证的过程,以及软件质量保证与软件开发各阶段的关系。
第9章?软件项目管理:介绍了软件项目管理的概念,包括项目的准备、计划、管理、监督和收尾。着重阐述了软件项目的估算和成本管理,以及软件项目的质量管理和风险控制。
本书由湖南科技学院电子与信息工程学院组织编写,在总结多位软件工程主讲教师多年教学经验的基础上,倾注了软件工程教学团队大量的心血。本书由吕兰兰、黄丽韶、张雷任主编,由郭晓梅、程文志、郭力勇、李天峰任副主编,其中第1章由郭力勇编写,第2、3章由黄丽韶编写,第4章由张雷编写,第5、6章由吕兰兰编写,第7章由郭晓梅编写,第8章由李天峰编写,第9章由程文志编写。全书由吕兰兰、黄丽韶统稿。另外,本书在写作过程中参考和引用了大量国内外同行的文献,在此向其作者表示衷心感谢,感谢所有支持和帮助过本书编写的人们。
感谢以下项目的资助:
(1)教育部新工科研究与实践项目:“政校企”多方协同育人模式下的大数据学院共建与实践研究(教高厅函〔2018〕17号);
(2)教育部高等教育司产学合作协同育人项目(项目编号:201702018122,201701048006,201702065165,201701034028,201701048044);
(3)湖南省普通高等学校“十三五”专业综合改革试点项目(湘教通〔2016〕276
号);
(4)湖南省普通高校校企合作创新创业教育基地(湘教通〔2016〕436号);
(5)湖南科技学院“十三五”重点学科建设项目:计算机应用技术。
虽然编者在高校从事软件工程教学多年,但软件工程的内容博大精深,仍然有不能掌控的地方。由于编者水平所限,加之时间仓促,书中难免存在不妥和疏漏之处,恳请广大读者及同仁批评指正,以便于我们在今后的版本中进行改进。
编?者
2018年5月 -
目录
第1章 软件工程概述 1
1.1 软件和软件危机 1
1.1.1 软件简介 1
1.1.2 软件危机 3
1.2 软件工程的发展史、定义及
基本原理 7
1.2.1 软件工程的发展史 7
1.2.2 软件工程的定义 9
1.2.3 软件工程的基本原理 11
1.3 RUP统一软件过程 13
1.3.1 软件过程 13
1.3.2 RUP软件过程 13
1.4 软件生命周期 17
1.5 软件开发模型 18
1.5.1 瀑布模型 19
1.5.2 快速原型模型 20
1.5.3 增量模型 21
1.5.4 螺旋模型 23
习题 24
第2章 结构化需求分析 25
2.1 可行性研究 25
2.1.1 项目立项概述 25
2.1.2 可行性研究的内容 26
2.1.3 可行性研究的步骤 26
2.2 需求分析的任务和步骤 27
2.2.1 需求分析的任务 27
2.2.2 需求分析的步骤 30
2.3 需求获取与需求分析方法 31
2.3.1 需求获取的内容 31
2.3.2 需求获取的常用方法 33
2.3.3 快速建立软件原型
模型来获取需求 35
2.3.4 需求分析的常用方法 36
2.4 结构化分析方法 37
2.4.1 自顶向下逐层分解的
分析策略 37
2.4.2 结构化分析描述工具 38
2.4.3 数据流图 38
2.4.4 数据字典 44
2.4.5 加工逻辑的描述 46
2.5 需求分析图形工具 48
2.5.1 层次方框图 48
2.5.2 维纳图 48
2.5.3 IPO图 49
2.6 数据库内容的需求分析和描述 49
2.6.1 数据库内容的需求分析 49
2.6.2 数据库内容的需求
分析描述 51
2.7 需求规格说明书 53
2.8 应用举例 54
2.8.1 结构化分析过程 54
2.8.2 编写需求规格说明书 58
习题 60
第3章 结构化设计与实现 62
3.1 结构化总体设计 62
3.1.1 软件总体设计的
目标和任务 62
3.1.2 软件结构设计准则 63
3.1.3 软件设计的概念和原理 64
3.1.4 数据库设计 68
3.1.5 软件结构设计的
图形工具 70
3.1.6 结构化设计方法 71
3.1.7 总体设计说明书 76
3.2 结构化详细设计 77
3.2.1 详细设计的目的与任务 77
3.2.2 结构化程序设计 77
3.2.3 详细设计工具 79
3.2.4 接口设计 81
3.2.5 详细设计说明书 84
3.3 结构化实现 84
3.3.1 程序设计语言的分类 84
3.3.2 程序设计语言的选择 87
3.3.3 程序设计风格 88
3.4 应用举例 91
3.4.1 软件结构化设计过程 91
3.4.2 概要设计文档写作范例 97
习题 98
第4章 面向对象技术 100
4.1 面向对象的软件工程 100
4.1.1 从结构化到面向对象 100
4.1.2 面向对象的基本概念 101
4.1.3 面向对象技术的相关
原则 103
4.1.4 面向对象技术的优势 105
4.1.5 经典面向对象软件
开发方法 107
4.1.6 建立面向对象思维 111
4.2 UML统一建模语言 122
4.2.1 UML简介 122
4.2.2 UML的统一历程 122
4.2.3 UML的应用领域 124
4.2.4 UML“4+1”架构 125
4.3 UML2的图 126
4.3.1 UML结构图 127
4.3.2 UML行为图 130
习题 133
第5章 面向对象分析 134
5.1 面向对象分析过程 134
5.2 用例建模 134
5.2.1 获取原始需求 135
5.2.2 识别参与者 137
5.2.3 识别用例 140
5.2.4 绘制用例图 143
5.2.5 用例规约 144
5.2.6 用例重构 145
5.3 分析建模 146
5.3.1 识别分析类 146
5.3.2 分析交互 150
5.3.3 定义分析类 152
5.4 面向对象分析实践 156
5.4.1 用例建模实践 156
5.4.2 分析建模实践 160
习题 162
第6章 面向对象设计与实现 163
6.1 面向对象设计的原则 163
6.2 架构设计 166
6.2.1 软件架构的概念 166
6.2.2 软件架构的构成与
描述 167
6.2.3 设计包的原则 167
6.3 对象设计 170
6.4 数据库设计 172
6.4.1 类结构映射 173
6.4.2 类间关系映射 173
6.5 代码生成 176
6.5.1 单个类的实现 176
6.5.2 类间关系的实现 179
6.5.3 类方法的实现 181
6.6 面向对象设计实践 185
6.6.1 架构设计实践 185
6.6.2 对象设计实践 186
6.6.3 数据库设计实践 187
习题 190
第7章 软件测试 191
7.1 软件测试概述 191
7.1.1 软件测试的必要性 191
7.1.2 软件测试的发展 192
7.2 软件测试的基本概念 193
7.2.1 软件测试的定义 193
7.2.2 软件测试的模型 194
7.2.3 软件测试的原则 198
7.2.4 软件测试的标准 199
7.3 软件测试的学派与分类 199
7.3.1 软件测试的学派 199
7.3.2 软件测试的分类 201
7.4 软件测试技术 203
7.4.1 白盒测试 204
7.4.2 黑盒测试 214
7.5 软件测试流程 226
7.5.1 需求分析 226
7.5.2 测试计划 227
7.5.3 测试设计与开发 228
7.5.4 测试用例执行 229
7.5.5 测试记录和缺陷跟踪 230
7.5.6 回归测试 230
7.5.7 测试总结 231
7.6 软件测试管理 231
7.6.1 软件测试管理的特点 231
7.6.2 软件测试管理的要点 232
7.6.3 软件测试的几种
组织模型 232
习题 233
第8章 软件质量保证 234
8.1 软件质量概述 234
8.1.1 软件质量的定义 234
8.1.2 软件质量的模型 235
8.1.3 软件质量组织形式和
行为准则 238
8.2 软件质量保证与控制 238
8.2.1 软件质量保证
基本概念 238
8.2.2 软件质量控制 239
8.2.3 软件质量保证与
控制的区别 240
8.3 全面软件质量管理 240
8.3.1 全面质量管理
基本概念 240
8.3.2 全面软件质量
管理方法 241
8.4 软件质量保证过程 242
8.4.1 计划阶段 242
8.4.2 需求分析阶段 242
8.4.3 设计阶段 242
8.4.4 编码阶段 243
8.4.5 测试阶段 243
8.4.6 系统交付和
安装阶段 244
习题 244
第9章 软件项目管理 245
9.1 概述 245
9.1.1 项目管理简介 245
9.1.2 软件项目管理简介 250
9.2 项目准备和项目计划 252
9.2.1 项目准备 252
9.2.2 项目计划 256
9.3 项目估算和成本管理 258
9.3.1 项目估算 258
9.3.2 成本管理 260
9.4 项目质量管理和风险管理 263
9.4.1 项目质量管理 263
9.4.2 软件项目风险管理 264
9.5 项目监督与项目收尾 266
9.5.1 项目监督 266
9.5.2 项目收尾 267
习题 269
参考文献 270 -
作者介绍
吕兰兰,女,讲师,湖南科技学院软件工程系系主任,专业研究方向为软件工程及音频信号处理,主授课程为C 面向对象程序设计、算法设计与分析、UML软件建模、软件工程等。曾经编写C 面向对象程序设计、Web技术应用基础教材,曾获2011年湖南省普通高校课堂教学竞赛一等奖。黄丽韶,女,讲师,湖南科技学院计算机科学与技术系系主任,专业研究方向为智能算法,图像处理等,主授课程为C语言,C 面向对象程序设计,算法设计与分析等。曾经编写过C语言程序设计、C 面向对象程序设计、等教材,湖南省微课大赛二等奖。张雷,男,计算机科学与技术实验师,软件专业专任教师,软件工程移动应用开发开源框架技术JAVA程序设计,广东科贸职业学院,Web软件架构设计,开源框架技术,《JAVA程序设计》,EI论文一篇、北大核心论文一篇。 -
编辑推荐
-
书评书荐
-
附件下载
图书推荐