软件工程教程
作者 : 孙涌 主编 陈建明 王辉 参编
出版日期 : 2010-04-21
ISBN : 978-7-111-30002-1
适用人群 : 适用学生层次:博士生\MBA\研究生\本科生\大专\高职高
定价 : 36.00元
教辅资源下载
扩展信息
语种 : 简体中文
页数 : 344
开本 : 16
原书名 :
原出版社:
属性分类: 教材
包含CD :
绝版 :
图书简介

内容(目录请附本表之后)

本教材总结多年作者软件工程教学和研究的经验与成果,在进行基本概念、方法、技术介绍的同时,充分注意以下几个方面的问题与关系:传统内容与现代较新发展的协调;结构化软件工程与面向对象软件工程的关系;尽量满足和兼顾不同层次、各种人员对于软件工程课程的需求。
本书共十六章。其中一到九章以结构化软件工程为主,概括介绍了软件工程学的基本原理、概念和方法。与以往教材不同的是,在教材中,融合了当前一些新观念,适当加入对某些软件工程问题的最新观点和讨论,以便开阔学生的思路。第十、十一章集中和比较完整地介绍了面向对象的开发方法和UML,突出了Card和Yourdon面向对象的方法和思想,比较详细地阐述了利用UML进行软件开发的完整过程。同时还对对象与关系型数据库之间的映射问题进行了讨论。第十二章到第十五章讨论软件工程的管理技术、质量保证技术即软件工程环境。第十六章对软件工程的新技术进行了介绍。较有特色之处在于将小组、个体软件工程过程、设计模式、敏捷软件开发引入教材中。

图书特色

软件工程教程
孙涌◎主编 陈建明 王辉◎参编

苏州大学精品教材建设资助项目

苏州大学校训
养天地正气
法古今完人

苏州大学简介
苏州大学是一所具有悠久历史的江苏省省属重点综合性大学和国家“211工程”重点建设高校,其前身为创建于1900年的东吴大学。一个世纪的风云际会,一个世纪的奋勇拼搏,经过几代人的含辛茹苦,经过几代人的上下求索,使得苏州大学这棵百年老树,繁花似锦,硕果满枝。
内容简介
本书全面、系统地介绍了软件工程的有关概念、原则、方法和工具。全书共15章,内容包括:软件工程中面向过程、面向对象的开发方法,技术度量,质量保证,软件项目计划与管理,用统一建模语言UML开发软件的方法等。另外,还对设计模式、敏捷软件开发、Web工程等软件工程相关领域进行了介绍和讨论。本书既注重科学性和系统性,又注重实用性和新颖性。
本书可作为大学计算机及相关专业本(专)科学生的教材或教学参考书,也可作为研究生的参考教材。

图书前言

自20世纪60年代末期创立以来,软件工程伴随着计算机软、硬件的快速发展,经历了从结构化到面向对象的一系列发展过程,并且已经形成了若干工具、分支学科,目前软件工程仍然是一个异常活跃的研究领域。人们已经认识到,如果有哪个项目不遵循软件工程原则,必定会受到实践的惩罚。当然,软件工程学的研究范围非常广泛,包括技术方法、工具和管理等许多方面,新的技术方法和工具还在不断涌现。
  本书集合作者多年从事本科生和研究生软件工程课程教学经验,在参考了大量国内外教材与专著的基础上,结合当前大学软件工程课程教学的实际要求和将来从事实际软件开发的相关情况而编写。本教程作为苏州大学首批精品课程建设计划之一,是计算机专业的一门专业课。本教材虽然不可能包含软件工程的全部内容,但却是本着易懂、实用的原则并结合多年从事软件工程教学、科研实践编写而成。另外考虑到软件工程的发展,编入了一定量的现代软件工程的概念、方法及技术。
  在写作过程中,本书重点关注了以下几个方面:
   以实用为主的同时,适当加强理论的叙述,在相关章节中增加了一些形式化的内容,便于更深入地学习软件工程相关理论或指导实际的软件项目开发。
   按照一般软件产品(项目)开发过程的顺序进行软件工程内容叙述,便于进行相关实验或实践。
   面向对象技术在突出统一建模基本概念、方法的同时,强调建模与高级语言的结合与融合,避免了过程建模与具体实现脱节的问题。这一点对于我国的学生尤为重要,其理由是我国当前绝大部分学生认为只有编写代码才能进行软件开发。
   对一些比较成熟的最新技术进行了介绍,如设计模式、Web工程等。通过这部分内容的学习,既能够与当前实际开发紧密结合,也可为将来继续深化、研究起到一个入门的作用。
  本书共15章。第1章概括介绍了软件工程学的基本原理、概念和方法。第2章到第6章主要介绍了面向过程软件工程生命周期顺序的前几个阶段的任务、过程、方法和工具。第7章到第9章比较完整地介绍了面向对象的开发方法。第10章到第13章介绍了软件工程中面向过程及面向对象的软件测试、维护、质量保证及相关的过程、方法和工具。第15章较详细地介绍了目前软件工程的一些新技术,包括敏捷软件开发、设计模式、软件复用、Web工程等。
  由于软件工程这门课程涉及面广,内容丰富,发展迅速,所以我们在取材方面,既考虑保持传统的内容,又充分将软件工程中的新技术、新发展融入其中。同时,我们也兼顾到目前高校学生的实际情况,力争做到取材合理、内容新颖、理论为主、结合实际、重点突出、实用性强。
  根据多年从事软件开发和软件工程课程教学的经验和体会,作者认为:软件工程这门课程的特点在于:它看似简单,大部分内容是叙述性的,但要真正掌握好并运用好,绝非易事!特别是软件工程的思想、方法、理论、技术等贯穿整个软件产品(项目)开发的始终,这是任何一门课程所无法替代的。它既有宏观的一面,又有微观、具体的一面,同时还与诸多学科相关联。在此,希望广大学生与读者,能够在学习本书内容的同时,将相关知识与一个实际项目结合,哪怕是非常小的项目,只有这样,才有可能真正学好软件工程。
  本书由孙涌主编,陈建明、王辉参编。全书完稿后,由孙涌进行统稿和整理工作。
  在本书的编写过程中,感谢王璁伟、房鹏、王晋、姜晓猛、沈文超、葛小培、陈祥荣、耿胜恩等同学为之付出的辛勤劳动,同时还要感谢机械工业出版社的编辑们对本书出版给予的支持。
  由于时间仓促,加之作者水平有限,书中难免存在不足和疏漏之处,敬请广大读者不吝赐教。

编  者
2010年4月

上架指导

计算机\程序设计

作者简介

孙涌 主编 陈建明 王辉 参编:孙涌,男,1958年8月出生,博士,副教授,硕士研究生导师。1982年毕业于南昌大学,获理学学士学位;1990年毕业于江西师范大学物理系,获理学硕士学位;1999年攻读河海大学水利水电专业水利水电计算机系统方向博士研究生,获工学博士学位。省中青年骨干教师。1995年破格晋升为副教授。1997年调入苏州大学,从事计算机教学、科研和硕士研究生的培养工作。主要研究方向:智能信息及其应用、软件工程、科学计算可视化及其应用。现还进行智能信息在网络与数据库及嵌入式软件中的应用研究。近年来,在国内外学术刊物上发表论文近80篇,其中EI检索14篇;获国家发明专利一项;主编教材《现代软件工程》1部;主持和参加各种科研项目近20项,其中国家863子项目一项,获江苏省科技进步三等奖一项、江苏省优秀软件奖一项,苏州市科技进步奖二等奖二项,三等奖一项。

图书目录

出版者的话
前言
教学建议

第1章  软件工程概述 1
1.1  软件发展和软件危机 1
1.1.1  软件的定义和发展 1
1.1.2  软件危机过程 2
1.2  软件工程学的范畴 5
1.3  软件开发的生命周期 5
1.4  传统软件工程和面向对象软件工程 7
1.5  软件的特点 10
1.6  软件工程的基本目标 11
小结 12
习题 12
第2章  软件生命周期过程模型 13
2.1  过程及软件生命周期 13
2.2  软件过程模型 14
2.2.1  瀑布模型 15
2.2.2  具有原型化的瀑布模型 17
2.3  演化过程模型 18
2.3.1  原型化模型 18
2.3.2  螺旋模型 19
2.3.3  操作说明模型 20
2.4  增量过程模型 21
2.4.1  RAD模型 21
2.4.2  增量和迭代模型 22
2.5  其他类型的过程模型 23
2.5.1  喷泉模型 23
2.5.2  智能模型 24
2.5.3  V模型 25
2.5.4  变换模型 25
小结 26
习题 26
第3章  需求分析 27
3.1  需求分析的任务 27
3.1.1  需求定义 27
3.1.2  需求的层次 28
3.1.3  需求的开发与管理 28
3.2  需求获取技术 30
3.2.1  需求分析人员的组成 30
3.2.2  需求的类型 30
3.2.3  获取需求的途径 31
3.3  需求规格说明书 36
3.3.1  需求说明的目的 36
3.3.2  需求说明的方法 36
3.4  需求描述技术 36
3.4.1  结构化技术 36
3.4.2  形式化技术 40
3.5  需求验证 48
小结 49
习题 49
第4章  概要设计 51
4.1  概要设计的概念 51
4.1.1  概要设计的目标和任务 51
4.1.2  概要设计的过程 53
4.1.3  概要设计的工具 53
4.2  模块独立性 55
4.2.1  模块化 55
4.2.2  模块的耦合性 56
4.2.3  模块的内聚性 60
4.3  结构化设计方法 63
4.3.1  概念 63
4.3.2  变换分析 66
4.3.3  事务分析 68
4.3.4  设计的后处理 69
4.4  数据设计 70
4.4.1  数据设计的原则 70
4.4.2  数据结构设计 71
4.4.3  文件设计 71
4.4.4  数据库设计 72
小结 73
习题 73
第5章  详细设计 74
5.1  详细设计的任务 74
5.2  详细设计的方法 75
5.2.1  设计表示法 75
5.2.2  结构化程序设计 77
5.2.3  面向数据结构的设计 80
5.2.4  详细设计文档与复审 85
小结 90
习题 91
第6章  编码与语言选择 92
6.1  编码的目的和任务 92
6.2  编码所使用的语言 93
6.2.1  程序设计语言范型 93
6.2.2  程序设计语言的发展 94
6.2.3  常用的编码语言 96
6.2.4  编码语言的选择 98
6.3  编码的风格 99
小结 103
习题 103
第7章  面向对象方法 104
7.1  面向对象的基本概念 104
7.1.1  对象 104
7.1.2  类与消息 105
7.1.3  类的基本特征 106
7.2  面向对象的开发方法 106
7.2.1  概述 107
7.2.2  面向对象方法的发展历程 107
7.2.3  常用的面向对象分析的方法 108
7.3  面向对象的设计 111
7.3.1  面向对象设计概述 111
7.3.2  底层设计—类的设计 118
7.3.3  OOD的Yourdon的方法 120
7.3.4  Booch的方法 125
7.3.5  系统的设计过程 126
小结 129
习题 129
第8章  统一建模语言 130
8.1  统一建模语言简介 130
8.1.1  发展历史 130
8.1.2  UML简介 131
8.1.3  UML视图简介 132
8.1.4  视图 132
8.1.5  UML类、构件、部署和协作图
中的图标 133
8.1.6  扩展组件 134
8.1.7  各种视图间的关系 134
8.2  概念与视图 135
8.2.1  静态视图 135
8.2.2  用例图 136
8.2.3  交互视图 136
8.2.4  状态图 138
8.2.5  活动视图 139
8.2.6  物理视图 140
8.2.7  模型管理视图 142
8.3  UML与Java的对应关系 143
8.3.1  表示结构 143
8.3.2  表示关系 145
8.4  统一建模语言的综合应用 149
8.4.1  项目概述 149
8.4.2  静态分析和设计 150
8.4.3  持久对象设计 151
8.4.4  动态对象设计 152
8.4.5  通用接口设计 154
8.4.6  体系结构设计 157
小结 159
习题 160
第9章  统一软件过程 161
9.1  软件开发过程 161
9.2  迭代和递增 162
9.3  核心工作流 162
9.3.1  需求流 162
9.3.2  分析流 164
9.3.3  设计流 166
9.3.4  实现流 167
9.3.5  测试流 168
9.3.6  交付后维护 170
9.3.7  退役 170
9.4  统一过程的各阶段 171
9.4.1  开始阶段 171
9.4.2  细化阶段 173
9.4.3  构建阶段 173
9.4.4  转换阶段 174
9.5  二维生命周期模型 174
小结 174
习题 174
第10章  软件测试 176
10.1  软件测试概述 176
10.1.1  软件测试的目标 176
10.1.2  软件测试的原则 177
10.1.3  软件测试的方法 178
10.1.4  软件测试与软件开发各阶段的
关系 178
10.1.5  测试信息流 179
10.1.6  错误分类 179
10.2  软件测试过程与策略 182
10.2.1  单元测试 182
10.2.2  集成测试 183
10.2.3  确认测试 186
10.2.4  平行运行 187
10.3  设计测试方案 187
10.3.1  逻辑覆盖 188
10.3.2  等价划分 191
10.3.3  边界值分析 194
10.3.4  错误推测 194
10.3.5  实用测试策略 195
10.4  纠错 198
10.5  对OOA和OOD模型的测试 200
10.5.1  扩大测试的视角 201
10.5.2  测试OOA和OOD模型 201
10.6  面向对象的测试策略 203
10.6.1  在OO语境中的单元测试 203
10.6.2  在OO语境中的集成测试 203
10.6.3  在OO语境中的有效性测试 204
10.7  OO软件的测试用例设计 204
10.7.1  OO概念的测试用例设计的
含义 204
10.7.2  传统测试用例设计方法的
可用性 204
10.7.3  基于故障的测试 205
10.7.4  OO编程对测试的影响 205
10.7.5  测试用例和类层次 206
10.7.6  基于场景的测试设计 206
10.7.7  测试表层结构和深层结构 207
10.8  其他专门环境要求的测试 208
10.8.1  GUI测试 208
10.8.2  测试文档和帮助设施 209
10.8.3  实时系统测试 210
小结 211
习题 211
第11章  软件维护 213
11.1  系统的变化 213
11.1.1  系统的类型 214
11.1.2  系统生命周期中的变化 215
11.1.3  系统的生命范围 216
11.2  软件维护的基本内容和特点 218
11.2.1  软件维护概述 218
11.2.2  软件维护的特点 219
11.2.3  维护中的问题 220
11.3  软件维护的实施 221
11.3.1  软件维护的过程 221
11.3.2  软件维护的技术 224
11.4  软件的可维护性 224
11.4.1  软件可维护性概述 225
11.4.2  软件可维护性度量 225
11.4.3  提高可维护性的方法 225
11.5  软件维护的副作用 226
11.5.1  代码副作用 226
11.5.2  数据副作用 227
11.5.3  文档副作用 227
11.6  软件再工程 227
11.6.1  软件再工程的过程 227
11.6.2  软件再工程的方法 228
小结 228
习题 229
第12章  软件质量及其管理 230
12.1  软件质量的概念及属性 230
12.1.1  软件质量概述 230
12.1.2  软件质量的属性 230
12.2  软件质量保证与控制 231
12.2.1  软件质量保证概述 232
12.2.2  软件质量保证计划 232
12.2.3  软件质量成本 234
12.2.4  软件质量控制 234
12.3  软件质量度量 235
12.3.1  软件质量度量概述 235
12.3.2  质量度量模型 235
12.3.3  三种度量模型的比较 236
12.3.4  软件质量评价 238
12.4  软件可靠性 238
12.4.1  基本概念 238
12.4.2  影响软件可靠性的因素 239
12.4.3  软件可靠性模型 240
12.4.4  软件可靠性工程 242
12.5  CMM:软件能力成熟度模型 242
12.5.1  CMM的发展 242
12.5.2  基本概念 243
12.5.3  SW-CMM的用途 243
12.5.4  CMM的五个等级 244
12.5.5  CMM的内部结构 246
12.5.6  采用CMM的意义 248
小结 249
习题 249
第13章  软件项目管理 250
13.1  项目管理的概念 250
13.1.1  项目管理过程 250
13.1.2  项目管理的范围 251
13.1.3  项目管理中的资源 251
13.2  可行性研究 252
13.2.1  可行性研究的任务和过程 252
13.2.2  技术可行性研究 253
13.2.3  经济可行性研究 254
13.2.4  运行可行性研究 256
13.3  软件项目估算 257
13.3.1  代码行技术 257
13.3.2  功能点技术 257
13.4  软件开发成本估算 260
13.4.1  软件开发成本估算方法 260
13.4.2  专家判定技术 260
13.4.3  软件开发成本估算的早期经验
模型 261
13.5  进度安排 264
13.5.1  软件开发小组人数与软件
生产率 264
13.5.2  任务的确定与并行性 264
13.5.3  制定开发进度计划 265
13.5.4  项目的追踪和控制 265
13.6  人员组织 266
13.6.1  民主制程序员组 266
13.6.2  主程序员组 267
13.6.3  现代程序员组 268
13.7  软件风险管理 269
13.7.1  风险识别 269
13.7.2  风险估计 271
13.7.3  风险评价 272
13.7.4  风险驾驭和监控 273
13.8  软件配置管理 274
13.8.1  软件配置 274
13.8.2  软件配置管理过程 275
小结 276
习题 276
第14章  CASE环境与工具 278
14.1  工程环境 278
14.1.1  软件开发环境的特点 278
14.1.2  理想环境的模型 280
14.1.3  CASE环境简介 280
14.2  CASE环境的组成与结构 281
14.2.1  CASE的组成构件 281
14.2.2  CASE的一般结构 283
14.3  CASE环境工具与实践 284
14.3.1  CASE软件工程实践 284
14.3.2  常用CASE工具介绍 285
14.4  逐步求精 287
小结 290
习题 290
第15章  软件工程新技术概述 292
15.1  敏捷软件开发过程 292
15.1.1  敏捷的概念 293
15.1.2  敏捷过程的含义 293
15.1.3  敏捷过程模型 295
15.2  设计模式 302
15.2.1  设计模式的基本概念 302
15.2.2  关系环与组合模式 303
15.2.3  工厂模式 306
15.2.4  观察者模式与拉推数据 315
15.3  Web工程简介 320
15.3.1  Web系统和应用特点 320
15.3.2  Web工程的层次 321
15.3.3  Web分析 322
15.3.4  Web设计 323
15.3.5  Web测试 324
15.3.6  Web的项目管理 328
小结 330
习题 330
参考文献 331

教学资源推荐
作者: (美)William Stallings  Lawrie Brown          等著           澳大利亚新南威尔士大学  澳大利亚新南威尔士大学
作者: (美)Stephen E.Derenzo
作者: Wanda P. Dann  Stephen Cooper  Randy Pausch 著
作者: 张建忠 徐敬东 编著
参考读物推荐
作者: [美]亚历克斯?科兹洛夫(Alex Kozlov) 著
作者: 李国栋
作者: (美)Joseph J.Bambara Paul R.Allen等
作者: 刘明珠 戴淑芬 魏绪明