新書推薦:
《
中国古代妇女生活(中国古代生活丛书)
》
售價:NT$
214.0
《
你的认知正在阻碍你
》
售價:NT$
296.0
《
我们身边的小鸟朋友:手绘观鸟笔记
》
售價:NT$
356.0
《
拯救免疫失衡
》
售價:NT$
254.0
《
收尸人
》
售價:NT$
332.0
《
大模型应用开发:RAG入门与实战
》
售價:NT$
407.0
《
不挨饿快速瘦的减脂餐
》
售價:NT$
305.0
《
形而上学与存在论之间:费希特知识学研究(守望者)(德国古典哲学研究译丛)
》
售價:NT$
504.0
|
內容簡介: |
软件工程是一门讲授如何采用工程学的原理、技术和方法开发与维护软件的课程。本书结合国内外软件工程领域*的进展,以软件设计方法、工具应用为主线,通过基础篇、高级篇和案例篇三部分,从实践、实用的角度,通过丰富的实例和热点问题,系统地介绍了软件工程的基本思想、方法。本书内容全面,涉及大数据、云计算、可穿戴计算、面向服务计算等新技术内容,此外,对软件职业素质和职业道德也进行了阐述。本书取材新颖,深入浅出地介绍了软件工程基本理论和前沿技术。通过典型项目案例和应用实例,使读者能够快速掌握软件工程理论和设计方法。本书适合作为计算机科学与技术、软件工程、信息管理与信息系统、信息与计算科学等专业本科生的教材,也可作为研究生及相关学科领域软件技术研究人员的参考用书。
|
目錄:
|
基 础 篇
第1 章 概论........................................2
1.1 软件危机............................................ 3
1.1.1 摩尔定律和超越摩尔................ 3
1.1.2 软件危机的介绍........................ 4
1.1.3 产生软件危机的原因................ 5
1.1.4 消除软件危机的途径................ 6
1.2 软件开发工程化................................ 7
1.2.1 软件工程的定义........................ 7
1.2.2 软件开发的发展过程................ 8
1.2.3 软件工程的基本原理.............. 10
1.3 软件工程产品分类及来源.............. 11
1.3.1 软件工程产品分类.................. 11
1.3.2 软件工程项目来源.................. 12
1.4 软件生命周期.................................. 13
1.4.1 软件生命周期的定义.............. 13
1.4.2 软件生命周期的阶段.............. 14
1.5 软件工程方法学.............................. 16
1.5.1 软件工程方法学的定义.......... 16
1.5.2 软件工程方法学的类型.......... 16
1.6 软件工程人员的业务素质和
职业道德.......................................... 19
1.6.1 软件工程师的业务素质.......... 20
1.6.2 软件工程师的职业道德规范..... 20
1.6.3 软件工程师职业实践的准则..... 21
1.6.4 软件工程师职业实践的
国际标准.................................. 22
本章小结.................................................. 23
习题.......................................................... 23
第2 章 软件过程与模型....................25
2.1 软件过程.......................................... 25
2.1.1 软件过程的定义...................... 25
2.1.2 软件过程的特点...................... 25
2.1.3 软件过程的分类...................... 26
2.1.4 软件过程的作用...................... 26
2.1.5 软件过程模型化...................... 26
2.2 瀑布模型.......................................... 26
2.2.1 瀑布模型的基本思想.............. 26
2.2.2 瀑布模型的特点...................... 28
2.2.3 瀑布模型的应用范围.............. 30
2.3 快速原型法...................................... 30
2.3.1 快速原型法的基本思想.......... 30
2.3.2 快速模型的特点...................... 31
2.3.3 快速原型法的应用范围.......... 32
2.4 增量模型.......................................... 32
2.4.1 增量模型的基本思想.............. 32
2.4.2 增量模型的特点...................... 32
2.4.3 增量模型应用范围.................. 33
2.5 螺旋模型.......................................... 33
2.5.1 螺旋模型的基本思想.............. 33
2.5.2 螺旋模型的特点...................... 35
2.5.3 螺旋模型的应用范围.............. 35
2.6 V 模型.............................................. 35
2.6.1 V 模型的基本思想.................. 35
2.6.2 V 模型的特点.......................... 36
2.6.3 V 模型的应用范围.................. 36
2.7 敏捷软件开发.................................. 36
目 录
2
软件工程
2.7.1 敏捷开发的基本思想.............. 36
2.7.2 敏捷开发的特点...................... 37
2.7.3 敏捷开发的应用范围.............. 38
本章小结.................................................. 38
习题.......................................................... 38
第3 章 软件计划与可行性研究..........40
3.1 问题定义.......................................... 40
3.2 软件规模估算.................................. 41
3.2.1 软件估算的概念...................... 41
3.2.2 软件估算的方法...................... 41
3.3 可行性研究...................................... 43
3.3.1 可行性研究的概念.................. 43
3.3.2 可行性研究的分类.................. 44
3.3.3 可行性研究的步骤.................. 45
3.4 软件项目计划.................................. 47
3.4.1 软件范围.................................. 47
3.4.2 环境资源.................................. 47
3.4.3 制定进度表.............................. 48
3.5 系统流程图...................................... 48
3.5.1 系统流程图的定义.................. 48
3.5.2 系统流程图的符号表示.......... 48
3.5.3 应用实例.................................. 49
3.6 其他补充说明.................................. 50
本章小结.................................................. 51
习题.......................................................... 51
第4 章 软件需求分析........................53
4.1 软件需求的定义.............................. 53
4.2 需求分析的层次内容...................... 54
4.3 需求分析的任务.............................. 55
4.3.1 确定项目的范围...................... 55
4.3.2 确定具体需求.......................... 56
4.3.3 软件需求文档化...................... 56
4.4 需求获取的方法.............................. 57
4.4.1 用户沟通交流法...................... 57
4.4.2 工具分析法.............................. 59
4.4.3 模型及语言描述法.................. 61
4.4.4 原型化方法.............................. 62
4.5 需求分析的步骤.............................. 64
4.6 数据流图.......................................... 66
4.6.1 数据流图的定义...................... 66
4.6.2 数据流图的符号表示.............. 66
4.6.3 数据流图的绘制方法.............. 67
4.6.4 银行储蓄系统应用实例.......... 68
4.6.5 毕业生就业管理系统应用
实例.......................................... 70
4.7 数据字典.......................................... 72
4.7.1 数据字典的定义...................... 72
4.7.2 基本符号.................................. 72
4.7.3 互联网 电商销售应用实例.... 73
4.8 实体-联系图.................................... 74
4.8.1 实体-联系图的定义................ 74
4.8.2 实体-联系图的符号表示......... 75
4.8.3 应用实例.................................. 75
4.9 状态转换图...................................... 76
4.9.1 状态转换图的定义.................. 76
4.9.2 状态转换图的符号表示.......... 76
4.9.3 人体运动捕捉系统应用
实例.......................................... 77
4.9.4 电话系统行为过程应用
实例.......................................... 77
4.10 UML 用例需求模型...................... 78
4.10.1 UML 基本概念...................... 78
4.10.2 UML 主要内容...................... 78
4.10.3 用例需求功能模型................ 79
4.11 需求变更管理................................ 81
4.11.1 控制项目范围的扩展............ 81
4.11.2 变更控制过程........................ 82
4.11.3 变更控制委员会.................... 84
4.11.4 度量变更活动........................ 85
本章小结.................................................. 85
习题.......................................................... 85
第5 章 软件总体设计........................87
5.1 软件总体设计阶段的任务.............. 87
3
目 录
5.2 软件总体设计基本思想.................. 88
5.2.1 雪球理论.................................. 88
5.2.2 模块化...................................... 88
5.2.3 抽象.......................................... 89
5.2.4 逐步求精.................................. 91
5.2.5 信息隐藏和局部化.................. 91
5.2.6 模块独立内聚和耦合.............. 91
5.2.7 软件结构设计的启发式规则.... 93
5.3 总体设计阶段的工作步骤.............. 96
5.3.1 总体设计阶段组成.................. 96
5.3.2 总体设计步骤.......................... 96
5.4 系统设计阶段.................................. 97
5.4.1 二维码的食品安全追溯系统
问题描述.................................. 97
5.4.2 二维码的食品安全追溯系统
分析.......................................... 98
5.4.3 二维码的食品安全追溯系统
设计.......................................... 99
5.5 软件结构设计工具........................ 100
5.5.1 层次图定义及实例................ 100
5.5.2 结构图定义及实例................ 101
5.6 面向数据流的设计方法................ 103
5.6.1 定义........................................ 103
5.6.2 数据流图的类型.................... 103
5.6.3 设计步骤................................ 104
5.6.4 汽车数字仪表板实例............ 107
本章小结................................................ 110
习题........................................................ 110
第6 章 人机交互设计......................112
6.1 人机交互基本概念........................ 112
6.1.1 人机交互的定义.................... 112
6.1.2 人机交互的研究内容............ 112
6.2 人机交互感知和认知基础............ 113
6.2.1 视觉感知................................ 113
6.2.2 颜色模型................................ 116
6.2.3 听觉感知................................ 118
6.2.4 触觉感知................................ 120
6.3 人机交互发展阶段........................ 120
6.4 传统交互设备................................ 121
6.5 可穿戴计算技术与设备................ 121
6.6 人机界面设计基础........................ 122
6.6.1 人机界面设计的定义............ 122
6.6.2 理解用户................................ 123
6.7 界面设计原则................................ 125
6.7.1 图形用户界面的主要思想.... 125
6.7.2 图形用户界面的一般原则.... 127
6.8 Web 界面设计................................ 128
6.8.1 Web 界面及相关概念............ 128
6.8.2 Web 界面设计原则................ 128
6.8.3 Web 风格与布局色彩设计.... 129
6.8.4 Web 文本设计........................ 130
本章小结................................................ 131
习题........................................................ 131
第7 章 软件详细设计......................132
7.1 详细设计阶段的目的和任务........ 132
7.1.1 详细设计阶段的目的............ 132
7.1.2 详细设计阶段的任务............ 132
7.2 结构化程序设计与程序设计
风格................................................ 133
7.2.1 结构化程序设计.................... 133
7.2.2 程序设计的风格.................... 134
7.3 常用的详细设计表达工具............ 135
7.3.1 程序流程图............................ 135
7.3.2 盒图........................................ 136
7.3.3 PAD 图................................... 137
7.3.4 决策树.................................... 138
7.3.5 决策表.................................... 139
7.3.6 PDL 设计语言....................... 140
7.4 程序复杂度的定量计算................ 141
7.4.1 McCabe 方法......................... 141
7.4.2 Halstead 方法......................... 142
本章小结................................................ 143
习题........................................................ 143
4
软件工程
第8 章 软件编码.............................145
8.1 程序设计语言................................ 145
8.1.1 程序设计语言的定义............ 145
8.1.2 程序设计语言的特性............ 145
8.1.3 程序设计语言的分类............ 146
8.2 程序设计语言的选择.................... 147
8.2.1 程序设计语言选择标准.......... 148
8.2.2 程序设计风格........................ 149
本章小结................................................ 150
习题........................................................ 150
第9 章 软件测试.............................151
9.1 软件测试基础................................ 151
9.1.1 软件测试的定义.................... 151
9.1.2 软件测试的目标.................... 151
9.1.3 软件测试的内容.................... 152
9.1.4 软件测试的心理依据............ 152
9.1.5 软件测试的发展史................ 154
9.1.6 软件测试典型案例................ 155
9.2 软件测试的原理与特点................ 157
9.2.1 软件测试的原理.................... 157
9.2.2 软件测试的特点.................... 158
9.3 软件测试的基本方法.................... 158
9.3.1 人工测试和机器测试............ 158
9.3.2 白盒测试、黑盒测试
和灰盒测试............................ 159
9.3.3 Alpha 测试和Beta 测试........ 159
9.4 软件测试的过程和步骤................ 160
9.4.1 软件测试的过程.................... 160
9.4.2 软件测试的步骤.................... 160
9.4.3 回归测试................................ 164
9.5 黑盒测试技术................................ 164
9.5.1 黑盒测试方法概述................ 164
9.5.2 划分等价类............................ 165
9.5.3 边界值分析法........................ 165
9.5.4 错误推测法............................ 166
9.6 白盒测试技术................................ 166
9.6.1 白盒测试的方法.................... 166
9.6.2 白盒测试的优缺点................ 167
9.7 软件可靠性与可用性.................... 167
9.8 软件压力测试................................ 168
9.9 软件容量测试................................ 169
本章小结................................................ 169
习题........................................................ 170
第10 章 软件维护与再工程.............171
10.1
|
內容試閱:
|
软件工程采用工程学的概念、原理、技术和方法来开发与维护软件,把经过时间考验而
证明正确的管理技术和当前能够得到的最好的技术方法结合起来,研究和应用如何以系统性
的、规范化的、可定量的过程化方法开发和维护软件的学科。随着信息处理技术的不断发展,
软件的作用越来越广泛,对软件的开发方法、开发理念、开发工具提出了更高的要求。
软件工程是高等学校软件工程学科和计算机科学与技术学科专业的一门重要专业基础
课程。本书针对软件开发过程中的理论体系进行讲解,通过基础理论、高级软件开发技术、
项目案例实战,从经典软件工程基本方法到形式化方法、面向服务软件工程、软件质量管理、
合同、职业素质与职业道德、软件标准化文档等问题进行了系统的阐述。
在本书的编写过程中,编者结合多年的授课讲义,充分吸取了国内外经典软件工程著作
内容,并增加了大量新技术和新方法。在本书知识结构及教学内容上进行了精心推敲和认真
规划,其主要特点如下:
(1)在保证软件工程理论体系完整的同时,突出软件工程新技术和新方法,对大数据、
云计算、面向服务计算、极限编程、领域工程等问题有所阐述,该部分内容体现了软件工程
知识的新颖性。
(2)软件设计方法与设计工具并重,合理安排教学内容,通过全新实例和项目案例突出
设计方法和设计工具的使用。如基于二维码食品安全追溯、人体运动捕捉系统、虚拟心脏系
统、按图搜索网上订餐系统等内容,科学地丰富了课程内容。
(3)遵循教材编写规律,注重教材写作技巧,尤其是对一些软件工程新技术、新思想,
采用由浅入深、实例引导的方式,有效提高了教材的可读性和易理解性。
本书正文共三部分,分为17章,选材上内容新颖,案例翔实,不仅能体现经典软件工程
基本理论的知识性,还能体现实践性、前瞻性。本书通过理论、设计、应用的主线,做到了
理论和设计分析相结合,同时,本书注重各专业、学科间知识的融合交叉性,内容涉及管理
学、认知心理学、数学、人机工程学、经济学、职业素质和职业道德等学科内容。
第一部分为基础篇,包括第1章至第10章:第1章概述了软件工程基本概念和软件工程人
员职业素质和职业道德;第2章主要对各种软件过程和开发模型进行了介绍;第3章讲解了软
件规划和可行性分析;第4章介绍了软件需求分析方法、任务和各种分析工具;第5章介绍了
软件总体设计及食品安全追溯案例分析,重点讲解了面向数据流的设计方法;第6章介绍了人
前 言
2
软件工程
机交互设计、设计原则、可穿戴计算;第7章介绍了详细设计工具和方法,并对程序复杂度定
量计算进行了讲解;第8章介绍了软件编码风格和语言选择;第9章介绍了软件各种测试方法
和压力测试、容量测试等内容;第10章介绍了软件维护、软件再工程、软件复用等技术。
第二部分为高级篇,包括第11章至16章。第11章介绍了软件形式化方法在软件设计中的
应用,并给出案例说明;第12章对软件设计模式技术进行了讲解;第13章介绍了极限编程思
想及过程;第14章介绍了大数据与面向服务的软件工程;第15章介绍了软件项目管理与质量
控制;第16章介绍了合同的相关知识。
第三部分为案例篇,包括第17章,通过对项目案例网上订餐系统的设计与实现,对
软件工程各个设计阶段的思想和设计方法、工具实现过程进行了详细讲解。
本书在编写过程中,通过总结编者多年的授课经验,力图做到概念清晰、内容新颖、层
次分明、通俗、易懂、理论联系实际,以对读者富有启发性。
本书由陈永(兰州交通大学)任主编,张薇(兰州交通大学)、杨磊(甘肃省教育考试
院)任副主编。其中,第1 章到第7 章及附录D 由陈永编写;第8 章到第15 章由张薇编写;
其余章节及附录A、B、C 由杨磊编写。硕士研究生张甜甜、贺红参与了本书的校对工作,优
秀本科毕业生安书山、张海钰、陈振花为本书提供了部分翔实的案例素材。
在本书的编写过程中,参考了大量的互联网电子资源、图书文献资料,在此向相关作者
致以谢意。本书也得到了中国铁道出版社、兰州交通大学、甘肃省教育考试院有关部门的帮
助和支持,在此一并表示感谢。
鉴于编者水平有限,加之时间仓促,书中难免存在疏漏及不足之处,恳请读者指正。
编 者
2016 年12 月
|
|