
软体工程(第3版)(2016年9月清华大学出版社出版的书籍)
《软体工程(第3版)》是由钱乐秋、赵文耘、牛军钰编着,清华大学出版社2016年出版的普通高等教育“十二五”国家级规划教材、21世纪大学本科计算机专业系列教材、上海市高等教育精品课程教材。该教材适合作为高等学校计算机科学与技术学科、软体工程学科各专业的教材,也可作为软体开发人员的参考书。
该教材共16章,由概论、系统工程、需求工程、设计工程、结构化分析与设计、面向数据结构的分析与设计、面向对象方法基础、面向对象建模、基于构件的软体开发、敏捷软体开发、人机界面设计、程式设计语言和编码、软体测试、Web工程、软体维护与再工程、软体项目管理组成。
基本介绍
- 书名:软体工程(第3版)
- 作者:钱乐秋、赵文耘、牛军钰
- ISBN:9787302446088
- 类别:普通高等教育“十二五”国家级规划教材等
- 出版社:清华大学出版社
- 出版时间:2016年9月1日
- 装帧:平装
- 开本:185mm×260mm
- 字数:595千字
- CIP核字号:2016175388
成书过程
修订情况
该教材依据前两版的基础上,作适当的修订工作。钱乐秋教授编写了该书的第1、2、7、8、13章,并负责全书的统稿;赵文耘教授编写了第5、6、9、16章;牛军钰教授编写了第3、4、11、12、14、15章;张刚博士编写了第10章。
国防科学技术大学齐治昌教授审阅了全部书稿,并提出修改意见。该书在编写过程中得到了教育部高等学校计算机类专业教学指导委员会、清华大学出版社、复旦大学计算机科学技术学院的领导及北京大学李晓明教授等人的帮助和意见指导。
出版工作
2016年9月1日,《软体工程(第3版)》由清华大学出版社出版。
责任编辑 | 封面设计 | 责任校对 | 责任印製 |
---|---|---|---|
张瑞庆 | 常雪影 | 焦丽丽 | 宋林 |
内容简介
《软体工程(第3版)》在介绍软体工程的基本概念和基本原理的基础上,重点介绍软体开发方法和技术,包括经典的和常用的方法,如结构化方法、面向数据结构方法和面向对象方法,以及一些软体工程的新技术和新方法,如UML 2.0、基于构件的开发、敏捷软体开发、Web工程、CMM和CMMI等。此外,该书採用国标、ISO标準及《计算机科学技术百科全书》对专业术语的名称及其语义解释,术语名称会同时给出其他习惯称谓。
教材目录
第1章 概论1 | 6.1JSP方法110 | 12.2.2数据说明244 |
1.1计算机软体1 | 6.1.1数据结构与程式结构的表示110 | 12.2.3语句结构244 |
1.1.1软体的发展1 | 6.1.2JSP方法的分析和设计步骤114 | 12.2.4输入和输出246 |
1.1.2软体的特点2 | 6.2JSD方法简介118 | 12.3小结246 |
1.1.3软体的分类3 | 6.3小结119 | 习题246 |
1.1.4软体语言3 | 习题119 | 第13章 软体测试247 |
1.2软体工程5 | 第7章 面向对象方法基础120 | 13.1软体测试基础247 |
1.2.1软体工程定义5 | 7.1面向对象的基本概念121 | 13.1.1软体测试的目的247 |
1.2.2软体工程框架6 | 7.2面向对象分析和设计过程124 | 13.1.2软体测试的基本原则248 |
1.2.3软体生存周期7 | 7.2.1面向对象分析过程124 | 13.1.3白盒测试和黑盒测试249 |
1.3软体过程7 | 7.2.2面向对象设计过程126 | 13.2白盒测试249 |
1.3.1软体生存周期过程8 | 7.2.3设计模式128 | 13.2.1逻辑覆盖测试249 |
1.3.2能力成熟度模型11 | 7.3UML概述129 | 13.2.2逻辑表达式错误敏感的测试254 |
1.3.3能力成熟度模型集成13 | 7.3.1UML发展历史129 | 13.2.3基本路径测试255 |
1.4软体过程模型16 | 7.3.2UML简介130 | 13.2.4数据流测试257 |
1.4.1瀑布模型16 | 7.3.3视图131 | 13.2.5循环测试258 |
1.4.2演化模型17 | 7.3.4图133 | 13.3黑盒测试259 |
1.4.3增量模型18 | 7.4小结136 | 13.3.1等价类划分259 |
1.4.4原型模型18 | 习题136 | 13.3.2边界值分析262 |
1.4.5螺旋模型20 | 第8章 面向对象建模137 | 13.3.3比较测试263 |
1.4.6喷泉模型21 | 8.1用况建模137 | 13.3.4错误猜测263 |
1.4.7基于构件的开发模型21 | 8.1.1用况建模步骤137 | 13.3.5因果图263 |
1.4.8形式化方法模型22 | 8.1.2确定执行者138 | 13.4测试策略267 |
1.5CASE工具与环境23 | 8.1.3确定用况139 | 13.4.1V模型267 |
1.5.1软体工具23 | 8.1.4用况描述140 | 13.4.2单元测试268 |
1.5.2软体开发环境25 | 8.1.5用况图中的关係142 | 13.4.3集成测试269 |
1.6小结、习题26 | 8.1.6案例说明143 | 13.4.4确认测试272 |
第2章 系统工程27 | 8.1.7用况建模实例144 | 13.4.5系统测试273 |
2.1基于计算机的系统27 | 8.2静态建模147 | 13.5面向对象测试274 |
2.2系统工程的任务28 | 8.2.1类图和对象图148 | 13.5.1面向对象语境对测试的影响274 |
2.3可行性分析29 | 8.2.2CRC技术148 | 13.5.2面向对象测试策略275 |
2.3.1经济可行性29 | 8.2.3类之间的关係153 | 13.5.3面向对象测试用例设计276 |
2.3.2技术可行性31 | 8.2.4静态建模实例161 | 13.6测试完成标準276 |
2.3.3法律可行性31 | 8.3动态建模163 | 13.7调试277 |
2.3.4方案的选择和折衷31 | 8.3.1状态机图163 | 13.7.1调试过程277 |
2.4小结32 | 8.3.2活动图170 | 13.7.2调试方法277 |
习题32 | 8.3.3顺序图172 | 13.7.3纠正错误278 |
第3章 需求工程33 | 8.3.4通信图176 | 13.8小结279 |
3.1需求工程概述33 | 8.3.5动态建模实例178 | 习题279 |
3.2需求获取35 | 8.4物理体系结构建模179 | 第14章 Web工程281 |
3.2.1软体需求35 | 8.4.1构件图180 | 14.1WebApp的属性和类型281 |
3.2.2需求获取方法与策略36 | 8.4.2部署图181 | 14.1.1WebApp的属性281 |
3.3需求分析、协商与建模40 | 8.5小结182 | 14.1.2WebApp的类型283 |
3.3.1需求分析原则40 | 习题182 | 14.2Web工程过程284 |
3.3.2信息域40 | 第9章 基于构件的软体开发184 | 14.2.1过程框架284 |
3.3.3需求协商41 | 9.1基于构件的软体开发概述184 | 14.2.2改善框架285 |
3.3.4需求建模41 | 9.1.1构件184 | 14.2.3Web工程的最佳实践285 |
3.4需求规约与验证42 | 9.1.2基于构件的软体开发过程187 | 14.2.4方法和工具285 |
3.4.1需求规约的原则42 | 9.1.3CBSD对质量、生产率和成本的影响189 | 14.3WebApp建模286 |
3.4.2需求规约42 | 9.2建造可复用构件190 | 14.3.1WebApp需求建模286 |
3.4.3需求验证44 | 9.2.1对可复用构件的要求190 | 14.3.2WebApp设计建模288 |
3.5需求管理44 | 9.2.2创建领域构件的设计框架191 | 14.4WebApp质量管理293 |
3.6小结45 | 9.2.3可变性分析191 | 14.4.1WebApp质量维度293 |
习题45 | 9.2.4可变性机制192 | 14.4.2WebApp的测试294 |
第4章 设计工程46 | 9.3套用系统工程194 | 14.4.3WebApp配置管理295 |
4.1软体设计工程概述46 | 9.3.1基于CBSD的套用系统分析和设计194 | 14.5小结296 |
4.2软体设计原则48 | 9.3.2构件的鉴定、特化和组装195 | 习题296 |
4.2.1抽象与逐步求精49 | 9.4构件的管理196 | 第15章 软体维护与再工程297 |
4.2.2模组化49 | 9.4.1构件的分类描述196 | 15.1软体维护297 |
4.2.3信息隐藏50 | 9.4.2构件库管理系统197 | 15.1.1软体维护的概念297 |
4.2.4功能独立51 | 9.5小结198 | 15.1.2软体维护的过程300 |
4.3软体体系结构设计53 | 习题198 | 15.1.3软体可维护性302 |
4.3.1体系结构发展过程53 | 第10章 敏捷软体开发199 | 15.2再工程技术305 |
4.3.2软体体系结构的风格54 | 10.1敏捷软体开发方法概述199 | 15.2.1再工程的概念305 |
4.3.3评估可选的体系结构56 | 10.1.1敏捷宣言199 | 15.2.2业务过程再工程305 |
4.4部件级设计技术57 | 10.1.2精益思想201 | 15.2.3软体再工程过程306 |
4.4.1结构化程式设计方法58 | 10.1.3敏捷方法综述202 | 15.2.4逆向工程308 |
4.4.2图形表示法58 | 10.2Scrum方法203 | 15.3小结309 |
4.4.3判定表61 | 10.2.1Scrum简介203 | 习题309 |
4.4.4设计性语言PDL62 | 10.2.2Scrum团队205 | 第16章 软体项目管理310 |
4.5设计规约与设计评审63 | 10.2.3需求管理205 | 16.1软体项目管理概述310 |
4.5.1设计规约63 | 10.2.4基于时间盒的叠代206 | 16.1.1软体项目管理的关注点310 |
4.5.2设计评审64 | 10.2.5回顾会议209 | 16.1.2软体项目管理的内容313 |
4.6小结65 | 10.3极限编程方法210 | 16.2软体度量316 |
习题65 | 10.3.1极限编程简介210 | 16.2.1面向规模的度量317 |
第5章 结构化分析与设计67 | 10.3.2价值观和原则211 | 16.2.2面向功能的度量318 |
5.1结构化分析方法概述67 | 10.3.3实践212 | 16.2.3软体质量模型321 |
5.2数据流图69 | 10.4看板方法217 | 16.2.4程式複杂性度量327 |
5.2.1数据流图的图形表示69 | 10.4.1看板方法简介217 | 16.2.5软体可靠性度量329 |
5.2.2分层数据流图的画法72 | 10.4.2看板方法的规则218 | 16.3软体项目估算330 |
5.3分层数据流图的审查76 | 10.4.3看板方法和Scrum的比较219 | 16.3.1代码行、功能点和工作量估算330 |
5.3.1分层数据流图的一致性和完整性77 | 10.5小结220 | 16.3.2IBM估算模型331 |
5.3.2构造分层DFD时需要注意的问题80 | 习题220 | 16.3.3CoCoMo模型332 |
5.3.3分解的程度82 | 第11章 人机界面设计221 | 16.3.4Putnam模型334 |
5.4数据字典82 | 11.1人的因素221 | 16.3.5软体可靠性估算335 |
5.4.1字典条目的种类及描述符号82 | 11.1.1人对感知过程的认识221 | 16.4项目进度管理336 |
5.4.2字典条目83 | 11.1.2用户的技能和行为方式222 | 16.4.1人员与工作量之间的关係337 |
5.4.3字典条目实例87 | 11.1.3人体测量学对设计的影响222 | 16.4.2任务的分解与并行337 |
5.4.4数据字典的实现88 | 11.2人机界面风格224 | 16.4.3任务工作量的确定338 |
5.5描述基本加工的小说明88 | 11.3人机界面分析与建模227 | 16.4.4进度安排339 |
5.5.1结构化语言89 | 11.3.1人机界面设计过程227 | 16.5风险管理344 |
5.5.2判定表90 | 11.3.2人机界面设计中涉及的模型228 | 16.5.1风险标识344 |
5.5.3判定树91 | 11.3.3任务分析的途径与方法228 | 16.5.2风险预测345 |
5.6结构化设计概述91 | 11.4界面设计活动229 | 16.5.3风险评估345 |
5.6.1结构图92 | 11.4.1定义界面对象和动作229 | 16.5.4风险管理和监控346 |
5.6.2启发式设计策略94 | 11.4.2设计问题230 | 16.6软体项目的组织348 |
5.6.3结构化设计的步骤96 | 11.4.3黄金原则231 | 16.6.1组织结构的模式348 |
5.7数据流图到软体体系结构的映射97 | 11.5实现工具233 | 16.6.2程式设计小组的组织形式348 |
5.7.1信息流97 | 11.6设计评估233 | 16.6.3人员配备350 |
5.7.2数据流图映射到结构图的步骤98 | 11.7小结235 | 16.7软体质量管理351 |
5.7.3变换分析98 | 习题235 | 16.7.1软体质量保证352 |
5.7.4事务分析101 | 第12章 程式设计语言和编码236 | 16.7.2软体评审353 |
5.7.5分层DFD的映射102 | 12.1程式设计语言236 | 16.8软体配置管理355 |
5.8初始结构图的改进104 | 12.1.1程式设计语言的基本成分236 | 16.8.1软体配置管理的基本概念355 |
5.8.1结构图改进实例104 | 12.1.2程式设计语言的特性238 | 16.8.2软体配置管理的主要活动356 |
5.8.2结构图改进技巧106 | 12.1.3程式设计语言的分类239 | 16.9小结359 |
5.9小结108 | 12.1.4程式设计语言的选择240 | 习题359 |
习题108 | 12.2程式设计风格241 | 辞彙索引361 |
第6章 面向数据结构的分析与设计110 | 12.2.1源程式文档化241 | 参考文献371 |
教学资源
- 课程资源
《软体工程(第3版)》配套有教师教学课件PPT、具体实际案例、课后习题答案、中英文辞彙索引、样书章节等课程资源。
教材特色
《软体工程(第3版)》内容覆盖了ACM和IEEE制定的“计算教程”知识体系中有关软体工程的主要知识单元和知识点,并根据中国国内计算机教育和产业的现状,在讲解软体工程的基本概念和基本理论的基础上,既介绍传统的方法,又介绍21世纪初软体工程的最新技术和方法。
作者结合在软体工程方面的研究实践和成果,旨在让学生通过该书的学习,能使用这些方法进行软体的开发。
作者简介
钱乐秋,复旦大学计算机科学技术学院教授、博士生导师、教学名师。1970年至1984年从事银行计算机系统、文字识别和套用软体的研究和开发工作,1985年以来一直从事软体工程的教学和研究工作。
赵文耘,复旦大学计算机科学技术学院教授、博士生导师、教学名师,复旦大学软体工程一级学科学术带头人,软体工程博士后流动站站长,中国计算机学会软体工程专业委员会副主任,中国软体行业协会软体工程分会副理事长。长期从事软体工程的教学和研究工作。
牛军钰,博士,复旦大学计算机科学技术学院教授、博士生导师。主要从事软体工程与电子政务方面的教学与科研工作。在核心刊物和重要国际国内学术会议上发表论文数十篇。