书籍详情
软件工程(第3版)
作者:钱乐秋,赵文耘,牛军钰
出版社:清华大学出版社
出版时间:2016-08-01
ISBN:9787302446088
定价:¥44.90
购买这本书可以去
内容简介
本书系统地介绍了软件工程的概念、原理、过程及主要方法,内容上覆盖了ACM和IEEE制定的ComputingCurricula中有关软件工程的主要知识点。本书在介绍软件工程的基本概念和基本原理的基础上,重点介绍软件开发方法和技术,包括经典的和常用的方法,如结构化方法、面向数据结构方法和面向对象方法,以及一些软件工程的新技术和新方法,如UML2.0、基于构件的开发、敏捷软件开发、Web工程、CMM和CMMI等。此外,本书尽量采用国标、ISO标准及《计算机科学技术百科全书》对专业术语的名称及其语义解释,必要时,术语名称会同时给出其他习惯称谓。
作者简介
钱乐秋,复旦大学计算机科学技术学院教授、博士生导师、校教学名师。毕业于复旦大学数学系。曾任中国计算机学会教育委员会副主任,教育部高等学校理科计算机科学与技术教学指导委员会计算机软件教学指导组秘书,教育部高等学校文科计算机基础教学指导委员会副主任。1970年至1984年从事银行计算机系统、文字识别和应用软件的研究和开发工作,1985年以来一直从事软件工程的教学和研究工作。“七五”、“八五”、“九五”期间参加杨芙清院士主持的国家重点科技攻关课题“大型软件开发环境—青鸟系统”的研究,承担其中若干个子课题,以及多项国家自然科学基金项目、863项目、上海市科委项目。获国家科技进步二等奖、电子工业部科技进步特等奖、上海市科技进步二等奖等多项**级、省部级奖励。赵文耘,复旦大学计算机科学技术学院教授、博士生导师、校教学名师,复旦大学软件工程一级学科学术带头人,软件工程博士后流动站站长,中国计算机学会软件工程专业委员会副主任,中国软件行业协会软件工程分会副理事长。长期从事软件工程的教学和研究工作。“七五”、“八五”、“九五”期间参加杨芙清院士主持的国家重点科技攻关课题“大型软件开发环境—青鸟系统”的研究,为复旦大学所承担的各子专题的主要开发人员或负责人,同时还负责国家863项目6项、国家自然科学基金项目1项、上海市科委项目3项以及多项应用软件的研究和开发。获国家科技进步二等奖,电子工业部科技进步特等奖、上海市科技进步二等奖等多项**级、省部级奖励。牛军钰,博士,复旦大学计算机科学技术学院教授、博士生导师。主要从事软件工程与电子政务方面的教学与科研工作。承担并参加了60余项国家重点基础研究发展计划(973计划)项目、国家自然科学基金、国家高技术研究发展计划、上海市科委项目。在核心刊物和重要国际国内学术会议上发表论文60余篇。曾获国防科技成果三等奖、辽宁省科技成果二等奖、上海市教学成果二等奖、人事部人事人才科技成果二等奖、上海市科技进步三等奖等多项**级、省部级奖励。
目录
第1章概论1
1.1计算机软件1
1.1.1软件的发展1
1.1.2软件的特点2
1.1.3软件的分类3
1.1.4软件语言3
1.2软件工程5
1.2.1软件工程定义5
1.2.2软件工程框架6
1.2.3软件生存周期7
1.3软件过程7
1.3.1软件生存周期过程8
1.3.2能力成熟度模型11
1.3.3能力成熟度模型集成13
1.4软件过程模型16
1.4.1瀑布模型16
1.4.2演化模型17
1.4.3增量模型18
1.4.4原型模型18
1.4.5螺旋模型20
1.4.6喷泉模型21
1.4.7基于构件的开发模型21
1.4.8形式化方法模型22
1.5CASE工具与环境23
1.5.1软件工具23
1.5.2软件开发环境25
1.6小结26
习题26目录软件工程(第3版)第2章系统工程27
2.1基于计算机的系统27
2.2系统工程的任务28
2.3可行性分析29
2.3.1经济可行性29
2.3.2技术可行性31
2.3.3法律可行性31
2.3.4方案的选择和折衷31
2.4小结32
习题32
第3章需求工程33
3.1需求工程概述33
3.2需求获取35
3.2.1软件需求35
3.2.2需求获取方法与策略36
3.3需求分析、协商与建模40
3.3.1需求分析原则40
3.3.2信息域40
3.3.3需求协商41
3.3.4需求建模41
3.4需求规约与验证42
3.4.1需求规约的原则42
3.4.2需求规约42
3.4.3需求验证44
3.5需求管理44
3.6小结45
习题45
第4章设计工程46
4.1软件设计工程概述46
4.2软件设计原则48
4.2.1抽象与逐步求精49
4.2.2模块化49
4.2.3信息隐藏50
4.2.4功能独立51
4.3软件体系结构设计53
4.3.1体系结构发展过程53
4.3.2软件体系结构的风格54
4.3.3评估可选的体系结构56
4.4部件级设计技术57
4.4.1结构化程序设计方法58
4.4.2图形表示法58
4.4.3判定表61
4.4.4设计性语言PDL62
4.5设计规约与设计评审63
4.5.1设计规约63
4.5.2设计评审64
4.6小结65
习题65
第5章结构化分析与设计67
5.1结构化分析方法概述67
5.2数据流图69
5.2.1数据流图的图形表示69
5.2.2分层数据流图的画法72
5.3分层数据流图的审查76
5.3.1分层数据流图的一致性和完整性77
5.3.2构造分层DFD时需要注意的问题80
5.3.3分解的程度82
5.4数据字典82
5.4.1字典条目的种类及描述符号82
5.4.2字典条目83
5.4.3字典条目实例87
5.4.4数据字典的实现88
5.5描述基本加工的小说明88
5.5.1结构化语言89
5.5.2判定表90
5.5.3判定树91
5.6结构化设计概述91
5.6.1结构图92
5.6.2启发式设计策略94
5.6.3结构化设计的步骤96
5.7数据流图到软件体系结构的映射97
5.7.1信息流97
5.7.2数据流图映射到结构图的步骤98
5.7.3变换分析98
5.7.4事务分析101
5.7.5分层DFD的映射102
5.8初始结构图的改进104
5.8.1结构图改进实例104
5.8.2结构图改进技巧106
5.9小结108
习题108
第6章面向数据结构的分析与设计110
6.1JSP方法110
6.1.1数据结构与程序结构的表示110
6.1.2JSP方法的分析和设计步骤114
6.2JSD方法简介118
6.3小结119
习题119
第7章面向对象方法基础120
7.1面向对象的基本概念121
7.2面向对象分析和设计过程124
7.2.1面向对象分析过程124
7.2.2面向对象设计过程126
7.2.3设计模式128
7.3UML概述129
7.3.1UML发展历史129
7.3.2UML简介130
7.3.3视图131
7.3.4图133
7.4小结136
习题136
第8章面向对象建模137
8.1用况建模137
8.1.1用况建模步骤137
8.1.2确定执行者138
8.1.3确定用况139
8.1.4用况描述140
8.1.5用况图中的关系142
8.1.6案例说明143
8.1.7用况建模实例144
8.2静态建模147
8.2.1类图和对象图148
8.2.2CRC技术148
8.2.3类之间的关系153
8.2.4静态建模实例161
8.3动态建模163
8.3.1状态机图163
8.3.2活动图170
8.3.3顺序图172
8.3.4通信图176
8.3.5动态建模实例178
8.4物理体系结构建模179
8.4.1构件图180
8.4.2部署图181
8.5小结182
习题182
第9章基于构件的软件开发184
9.1基于构件的软件开发概述184
9.1.1构件184
9.1.2基于构件的软件开发过程187
9.1.3CBSD对质量、生产率和成本的影响189
9.2建造可复用构件190
9.2.1对可复用构件的要求190
9.2.2创建领域构件的设计框架191
9.2.3可变性分析191
9.2.4可变性机制192
9.3应用系统工程194
9.3.1基于CBSD的应用系统分析和设计194
9.3.2构件的鉴定、特化和组装195
9.4构件的管理196
9.4.1构件的分类描述196
9.4.2构件库管理系统197
9.5小结198
习题198
第10章敏捷软件开发199
10.1敏捷软件开发方法概述199
10.1.1敏捷宣言199
10.1.2精益思想201
10.1.3敏捷方法综述202
10.2Scrum方法203
10.2.1Scrum简介203
10.2.2Scrum团队205
10.2.3需求管理205
10.2.4基于时间盒的迭代206
10.2.5回顾会议209
10.3极限编程方法210
10.3.1极限编程简介210
10.3.2价值观和原则211
10.3.3实践212
10.4看板方法217
10.4.1看板方法简介217
10.4.2看板方法的规则218
10.4.3看板方法和Scrum的比较219
10.5小结220
习题220
第11章人机界面设计221
11.1人的因素221
11.1.1人对感知过程的认识221
11.1.2用户的技能和行为方式222
11.1.3人体测量学对设计的影响222
11.2人机界面风格224
11.3人机界面分析与建模227
11.3.1人机界面设计过程227
11.3.2人机界面设计中涉及的模型228
11.3.3任务分析的途径与方法228
11.4界面设计活动229
11.4.1定义界面对象和动作229
11.4.2设计问题230
11.4.3黄金原则231
11.5实现工具233
11.6设计评估233
11.7小结235
习题235
第12章程序设计语言和编码236
12.1程序设计语言236
12.1.1程序设计语言的基本成分236
12.1.2程序设计语言的特性238
12.1.3程序设计语言的分类239
12.1.4程序设计语言的选择240
12.2程序设计风格241
12.2.1源程序文档化241
12.2.2数据说明244
12.2.3语句结构244
12.2.4输入和输出246
12.3小结246
习题246
第13章软件测试247
13.1软件测试基础247
13.1.1软件测试的目的247
13.1.2软件测试的基本原则248
13.1.3白盒测试和黑盒测试249
13.2白盒测试249
13.2.1逻辑覆盖测试249
13.2.2逻辑表达式错误敏感的测试254
13.2.3基本路径测试255
13.2.4数据流测试257
13.2.5循环测试258
13.3黑盒测试259
13.3.1等价类划分259
13.3.2边界值分析262
13.3.3比较测试263
13.3.4错误猜测263
13.3.5因果图263
13.4测试策略267
13.4.1V模型267
13.4.2单元测试268
13.4.3集成测试269
13.4.4确认测试272
13.4.5系统测试273
13.5面向对象测试274
13.5.1面向对象语境对测试的影响274
13.5.2面向对象测试策略275
13.5.3面向对象测试用例设计276
13.6测试完成标准276
1.1计算机软件1
1.1.1软件的发展1
1.1.2软件的特点2
1.1.3软件的分类3
1.1.4软件语言3
1.2软件工程5
1.2.1软件工程定义5
1.2.2软件工程框架6
1.2.3软件生存周期7
1.3软件过程7
1.3.1软件生存周期过程8
1.3.2能力成熟度模型11
1.3.3能力成熟度模型集成13
1.4软件过程模型16
1.4.1瀑布模型16
1.4.2演化模型17
1.4.3增量模型18
1.4.4原型模型18
1.4.5螺旋模型20
1.4.6喷泉模型21
1.4.7基于构件的开发模型21
1.4.8形式化方法模型22
1.5CASE工具与环境23
1.5.1软件工具23
1.5.2软件开发环境25
1.6小结26
习题26目录软件工程(第3版)第2章系统工程27
2.1基于计算机的系统27
2.2系统工程的任务28
2.3可行性分析29
2.3.1经济可行性29
2.3.2技术可行性31
2.3.3法律可行性31
2.3.4方案的选择和折衷31
2.4小结32
习题32
第3章需求工程33
3.1需求工程概述33
3.2需求获取35
3.2.1软件需求35
3.2.2需求获取方法与策略36
3.3需求分析、协商与建模40
3.3.1需求分析原则40
3.3.2信息域40
3.3.3需求协商41
3.3.4需求建模41
3.4需求规约与验证42
3.4.1需求规约的原则42
3.4.2需求规约42
3.4.3需求验证44
3.5需求管理44
3.6小结45
习题45
第4章设计工程46
4.1软件设计工程概述46
4.2软件设计原则48
4.2.1抽象与逐步求精49
4.2.2模块化49
4.2.3信息隐藏50
4.2.4功能独立51
4.3软件体系结构设计53
4.3.1体系结构发展过程53
4.3.2软件体系结构的风格54
4.3.3评估可选的体系结构56
4.4部件级设计技术57
4.4.1结构化程序设计方法58
4.4.2图形表示法58
4.4.3判定表61
4.4.4设计性语言PDL62
4.5设计规约与设计评审63
4.5.1设计规约63
4.5.2设计评审64
4.6小结65
习题65
第5章结构化分析与设计67
5.1结构化分析方法概述67
5.2数据流图69
5.2.1数据流图的图形表示69
5.2.2分层数据流图的画法72
5.3分层数据流图的审查76
5.3.1分层数据流图的一致性和完整性77
5.3.2构造分层DFD时需要注意的问题80
5.3.3分解的程度82
5.4数据字典82
5.4.1字典条目的种类及描述符号82
5.4.2字典条目83
5.4.3字典条目实例87
5.4.4数据字典的实现88
5.5描述基本加工的小说明88
5.5.1结构化语言89
5.5.2判定表90
5.5.3判定树91
5.6结构化设计概述91
5.6.1结构图92
5.6.2启发式设计策略94
5.6.3结构化设计的步骤96
5.7数据流图到软件体系结构的映射97
5.7.1信息流97
5.7.2数据流图映射到结构图的步骤98
5.7.3变换分析98
5.7.4事务分析101
5.7.5分层DFD的映射102
5.8初始结构图的改进104
5.8.1结构图改进实例104
5.8.2结构图改进技巧106
5.9小结108
习题108
第6章面向数据结构的分析与设计110
6.1JSP方法110
6.1.1数据结构与程序结构的表示110
6.1.2JSP方法的分析和设计步骤114
6.2JSD方法简介118
6.3小结119
习题119
第7章面向对象方法基础120
7.1面向对象的基本概念121
7.2面向对象分析和设计过程124
7.2.1面向对象分析过程124
7.2.2面向对象设计过程126
7.2.3设计模式128
7.3UML概述129
7.3.1UML发展历史129
7.3.2UML简介130
7.3.3视图131
7.3.4图133
7.4小结136
习题136
第8章面向对象建模137
8.1用况建模137
8.1.1用况建模步骤137
8.1.2确定执行者138
8.1.3确定用况139
8.1.4用况描述140
8.1.5用况图中的关系142
8.1.6案例说明143
8.1.7用况建模实例144
8.2静态建模147
8.2.1类图和对象图148
8.2.2CRC技术148
8.2.3类之间的关系153
8.2.4静态建模实例161
8.3动态建模163
8.3.1状态机图163
8.3.2活动图170
8.3.3顺序图172
8.3.4通信图176
8.3.5动态建模实例178
8.4物理体系结构建模179
8.4.1构件图180
8.4.2部署图181
8.5小结182
习题182
第9章基于构件的软件开发184
9.1基于构件的软件开发概述184
9.1.1构件184
9.1.2基于构件的软件开发过程187
9.1.3CBSD对质量、生产率和成本的影响189
9.2建造可复用构件190
9.2.1对可复用构件的要求190
9.2.2创建领域构件的设计框架191
9.2.3可变性分析191
9.2.4可变性机制192
9.3应用系统工程194
9.3.1基于CBSD的应用系统分析和设计194
9.3.2构件的鉴定、特化和组装195
9.4构件的管理196
9.4.1构件的分类描述196
9.4.2构件库管理系统197
9.5小结198
习题198
第10章敏捷软件开发199
10.1敏捷软件开发方法概述199
10.1.1敏捷宣言199
10.1.2精益思想201
10.1.3敏捷方法综述202
10.2Scrum方法203
10.2.1Scrum简介203
10.2.2Scrum团队205
10.2.3需求管理205
10.2.4基于时间盒的迭代206
10.2.5回顾会议209
10.3极限编程方法210
10.3.1极限编程简介210
10.3.2价值观和原则211
10.3.3实践212
10.4看板方法217
10.4.1看板方法简介217
10.4.2看板方法的规则218
10.4.3看板方法和Scrum的比较219
10.5小结220
习题220
第11章人机界面设计221
11.1人的因素221
11.1.1人对感知过程的认识221
11.1.2用户的技能和行为方式222
11.1.3人体测量学对设计的影响222
11.2人机界面风格224
11.3人机界面分析与建模227
11.3.1人机界面设计过程227
11.3.2人机界面设计中涉及的模型228
11.3.3任务分析的途径与方法228
11.4界面设计活动229
11.4.1定义界面对象和动作229
11.4.2设计问题230
11.4.3黄金原则231
11.5实现工具233
11.6设计评估233
11.7小结235
习题235
第12章程序设计语言和编码236
12.1程序设计语言236
12.1.1程序设计语言的基本成分236
12.1.2程序设计语言的特性238
12.1.3程序设计语言的分类239
12.1.4程序设计语言的选择240
12.2程序设计风格241
12.2.1源程序文档化241
12.2.2数据说明244
12.2.3语句结构244
12.2.4输入和输出246
12.3小结246
习题246
第13章软件测试247
13.1软件测试基础247
13.1.1软件测试的目的247
13.1.2软件测试的基本原则248
13.1.3白盒测试和黑盒测试249
13.2白盒测试249
13.2.1逻辑覆盖测试249
13.2.2逻辑表达式错误敏感的测试254
13.2.3基本路径测试255
13.2.4数据流测试257
13.2.5循环测试258
13.3黑盒测试259
13.3.1等价类划分259
13.3.2边界值分析262
13.3.3比较测试263
13.3.4错误猜测263
13.3.5因果图263
13.4测试策略267
13.4.1V模型267
13.4.2单元测试268
13.4.3集成测试269
13.4.4确认测试272
13.4.5系统测试273
13.5面向对象测试274
13.5.1面向对象语境对测试的影响274
13.5.2面向对象测试策略275
13.5.3面向对象测试用例设计276
13.6测试完成标准276
猜您喜欢