软件工程概论(第3版)
作者 : 郑人杰 马素霞 等编著
出版日期 : 2019-12-06
ISBN : 978-7-111-64257-2
适用人群 : 适合作为计算机科学与技术、软件工程等专业本科生的教材。
定价 : 59.00元
教辅资源下载
扩展信息
语种 : 简体中文
页数 : 395
开本 : 16
原书名 :
原出版社:
属性分类: 教材
包含CD : 无CD
绝版 :
图书简介

本书作者针对软件工程的学科特点,注重结合实例讲解软件工程的理论与方法,避免抽象和枯燥的论述,在兼顾传统的结构化方法的同时,注重当前广为采用的面向对象和敏捷开发方法,新版加入了新型的软件开发方法,例如开源软件、智能化软件、微服务。强调软件质量、软件安全和软件从业人员的职业道德和专业素质。

图书特色

图书前言

当今,软件业是社会经济发展的先导性和战略性产业,它已成为信息产业和国民经济新的增长点和重要支柱。软件工程在软件开发中起着重要的作用,对软件产业的形成及发展起着决定性的推动作用。采用先进的工程化方法进行软件开发和生产是实现软件产业化的关键技术手段。与其他产业相比,软件产业具有自己的特殊性。软件产业的发展更加依赖于人力资源,因此软件产业的竞争越来越集中到对人才的竞争。然而,刚毕业的大学生往往要经过半年到一年的培训才能适应软件企业的工作。长期以来,我国软件人才的现状远远不能满足软件产业发展的要求。因此,软件工程人员队伍的成长,特别是高层软件工程人员队伍的成长显得更为紧迫。
自从软件工程概念诞生以来,学术界和工业界做了大量的研究与实践工作,也取得了许多重要成果。尤其是20世纪90年代以后,随着网络技术及面向对象技术的广泛应用,软件工程取得了突飞猛进的发展。软件工程已从计算机科学与技术中脱离出来,逐渐形成了一门独立的学科。软件工程教育所处的地位也越来越重要,软件工程课程已成为软件工程、计算机科学与技术等专业的必修课程。
软件工程课程实践性比较强,如果学生没有实践经验,则很难理解相关的理论知识。因此,教师普遍感到软件工程课程难教,而学生则普遍感到难学。近年来,软件工程学科的发展非常迅速,新的理论、方法和工具层出不穷,其中很多已经应用到企业的实际工作中。软件工程的教学面临越来越大的压力。我们认为,除了需要在教学内容、教学方法方面进行改革之外,实践能力的培养对建设一支企业需要的合格软件工程人才队伍尤为关键。
本书在编写中力图遵循以下原则:
(1)既要强调和突出基本概念、基本方法,又要尽可能使材料内容的组织符合读者的认识规律,在讲解概念、方法的过程中尽量结合实例,并且注重软件工程方法、技术和工具的综合应用,避免只是抽象和枯燥地讲解。
(2)在介绍传统的结构化方法和面向对象方法的同时,兼顾当前广为采用的流行方法,如面向服务的方法和面向数据的方法,以突出教材的实用性以及学科当前的发展。
(3)既要充分重视技术性内容,使初学者掌握必要的工程知识和方法,同时也应兼顾软件工程实践中必不可少的管理知识,例如项目管理、质量管理、人员管理等内容。
本书在第2版的基础上进一步对内容做了调整和充实,所做改动概述如下:
(1)更新了第1章,在13节“软件工程的目标”中提供了国际标准的软件质量特性及其子特性作为软件产品的质量目标。在15节“软件工程方法概述”中增加了面向服务的方法和面向数据的方法。在164节“常用软件工具介绍”中对代表性的软件工具进行了修订。
(2)第10章“软件测试方法”中增加了107节“自动化测试”,原107节“调试”后移为108节。
(3)第11章“软件维护”中增加了113节“逆向工程”和114节“重构”,原113~115节依次后移为115~117节。
(4)第13章“软件项目管理”中增加了137节“质量管理”。
(5)本书最后增加了第15章“软件人员的职业道德和社会责任”。
(6)新增加了一个附录,其中列举了近年国内外软件引起的系统重大事故,目的是让读者从实际案例中吸取教训,提高对软件质量的重视。
总之,本书力争做到结构合理、内容丰富,讲解由浅入深,既体现知识点的连贯性、完整性,又体现其在实际中的应用。

上架指导

计算机\软件工程

封底文字

本书自2010年出版以来多次重印,其通俗易懂、结合实例以及知识点涵盖全面等特点深受广大师生欢迎。在第2版修订时,作者结合软件工程技术的发展重新组织了部分章节的内容,对面向对象软件开发方法的介绍更加系统、完整,补充或更新了现代软件生存期模型、软件工程知识体系及知识域、CMM、软件工程标准等内容;在第3版修订中,作者补充了对面向服务和面向数据软件方法的概述,在介绍软件测试时新增了自动化测试技术,讨论软件维护与管理时新增了逆向工程、重构、质量管理等,并新增了第15章“软件人员的职业道德和社会责任”,使本书与时俱进,更符合当前软件工程课程的教学体系。
本书强调基本概念、基本方法,内容的组织符合学生的认识规律,结合实例讲解理论,并注重软件工程方法、技术和工具的综合应用,避免抽象和枯燥的论述。本书既充分重视技术性内容,便于初学者掌握必要的知识和技能,同时也兼顾了软件工程实践中必不可少的基本管理知识。
本书结构合理、内容丰富,讲解循序渐进、由浅入深,既体现知识点的连贯性、完整性,又突出相关知识在实践中的应用,适合作为高等院校计算机科学与技术、软件工程等专业的本科生教材。

图书目录

前言
教学建议
第一部分软件工程概述
第1章软件与软件工程的概念
11软件的概念、特性和分类
111软件的概念及特性
112软件的分类
12软件危机与软件工程
121软件危机
122软件工程
13软件工程的目标
14软件生存期
15软件工程方法概述
151传统方法
152面向对象方法
153面向服务方法
154面向数据方法
155形式化方法
16软件工具概述
161软件工具的概念
162软件工具的发展
163软件工具的分类
164常用软件工具介绍
17软件工程知识体系及知识域
习题
第2章软件生存期模型
21瀑布模型
22快速原型模型
23增量模型
24螺旋模型
25喷泉模型
26统一过程
27基于构件的开发模型
28敏捷过程
习题
第二部分结构化分析与设计方法
第3章软件需求获取与结构化分析方法
31需求获取与需求分析阶段的任务
311需求获取的任务和原则
312需求获取的过程
313软件需求分析阶段的任务
32结构化分析方法
321功能建模
322数据建模
323行为建模
324数据字典
325加工规格说明
33系统需求规格说明
331软件需求规格说明模板
332SRS和DRD的质量要求
34需求评审
341正式的需求评审
342需求评审中的常见风险
35需求管理
351需求跟踪
352需求变更管理
习题
第4章结构化设计方法
41软件设计的概念及原则
411软件设计的概念
412软件设计的原则
42结构化设计
421结构化软件设计的任务
422结构化设计与结构化分析的关系
423模块结构及表示
424数据结构及表示
43体系结构设计
431基于数据流方法的设计过程
432典型的数据流类型和系统结构
433变换型映射方法
434事务型映射方法
435模块间的耦合与内聚
436软件模块结构的改进方法
44接口设计
441接口设计概述
442人机交互界面
45数据设计
451文件设计
452数据库设计
46过程设计
461结构化程序设计
462程序流程图
463NS图
464PAD图
465伪代码
466自顶向下、逐步细化的设计过程
47软件设计规格说明
48软件设计评审
481概要设计评审的检查内容
482详细设计评审的检查内容
习题
第三部分面向对象分析与设计方法
第5章面向对象方法与UML
51面向对象的概念与开发方法
511对象
512类与封装
513继承
514多态
515消息通信
516面向对象的软件开发方法
52UML简介
521UML的产生和发展
522UML的特点
523UML的基本模型
53UML的事物
531结构事物
532行为事物
533分组事物
534注释事物
54UML的关系
541依赖关系
542关联关系
543泛化关系
544实现关系
55UML的图
551用例图
552类图
553顺序图与通信图
554状态图
555活动图
556构件图与部署图
习题
第6章面向对象分析
61面向对象分析概述
611确定系统边界
612面向对象分析的3种模型
62建立用例模型
621确定业务参与者
622确定业务需求用例
623创建用例图
63建立对象模型
631对象模型的5个层次
632划分主题
633确定类与对象
634确定结构
635确定属性
636确定服务
637建立类图
64建立动态模型
641顺序图
642通信图
643状态图
习题
第7章软件体系结构与设计模式
71软件体系结构的基本概念
711什么是体系结构
712体系结构模式、风格和框架的概念
713体系结构的重要作用
72典型的体系结构风格
721数据流风格
722调用∕返回风格
723仓库风格
73特定领域的软件体系结构
731类属模型
732参考模型
74分布式系统结构
741多处理器体系结构
742客户机∕服务器体系结构
743分布式对象体系结构
744代理
75体系结构框架
751模型视图控制器
752J2EE体系结构框架
753PCMEF与PCBMER框架
76设计模式
761抽象工厂
762单件
763外观
764适配器
765职责链
766中介者
767观察者
习题
第8章面向对象设计
81面向对象设计过程与准则
811面向对象设计过程
812面向对象设计准则
82体系结构模块及依赖性
821类及其依赖性
822接口及其依赖性
823包及其依赖性
824构件及其依赖性
83系统分解
831子系统和类
832服务和子系统接口
833子系统分层和划分
834Coad & Yourdon的面向对象设计模型
835子系统之间的两种交互方式
836组织系统的两种方案
84问题域部分的设计
85人机交互部分的设计
851用户界面设计步骤
852Web应用系统的界面设计
86任务管理部分的设计
87数据管理部分的设计
88对象设计
881使用模式设计对象
882接口规格说明设计
883重构对象设计模型
89优化对象设计模型
习题
第四部分软件实现与测试
第9章软件实现
91程序设计语言
911程序设计语言的性能
912程序设计语言的分类
913程序设计语言的选择
92程序设计风格
921源程序文档化
922数据说明标准化
923语句结构简单化
924输入/输出规范化
93编码规范
94程序效率与性能分析
941算法对效率的影响
942影响存储器效率的因素
943影响输入/输出的因素
习题
第10章软件测试方法
101软件测试的基本概念
1011什么是软件测试
1012软件测试的目的和原则
1013软件测试的对象
1014测试信息流
1015测试与软件开发各阶段的关系
1016白盒测试与黑盒测试
102白盒测试的测试用例设计
1021逻辑覆盖
1022语句覆盖
1023判定覆盖
1024条件覆盖
1025判定条件覆盖
1026条件组合覆盖
1027路径覆盖
103基本路径覆盖
104黑盒测试的测试用例设计
1041等价类划分
1042边界值分析
105软件测试的策略
1051单元测试
1052组装测试
1053确认测试
1054系统测试
1055测试的类型
106人工测试
1061静态分析
1062人工测试方法
107自动化测试
1071自动化测试与手工测试
1072脚本技术
1073自动化测试框架及测试流程
108调试
习题
第五部分软件维护与软件管理
第11章软件维护
111软件维护的概念
1111软件维护的定义
1112影响维护工作量的因素
1113软件维护的策略
112软件维护活动
1121软件维护申请报告
1122软件维护工作流程
1123维护档案记录
1124维护评价
113逆向工程
114重构
115程序修改的步骤和修改的副作用
1151分析和理解程序
1152修改程序
1153修改程序的副作用及其控制
1154重新验证程序
116软件的维护性
1161软件维护性定义
1162软件维护性度量
117提高软件维护性的方法
1171使用提高软件维护性的开发技术和工具
1172实施开发阶段产品的维护性审查
1173改进文档
习题
第12章软件过程与软件过程改进
121软件过程概述
122软件生存期过程国际标准
123软件过程成熟度
1231什么是软件过程成熟度
1232过程制度化
124软件能力成熟度模型
1241CMM与SEI
1242CMM的演化
1243CMM族和CMMI
1244CMMI 13简介
1245CMMI评估
125软件过程改进
1251软件过程改进的IDEAL模型
1252软件过程改进框架
1253有效的软件过程
习题
第13章软件项目管理
131软件项目管理概述
1311软件项目管理的目标
1312软件项目管理涉及的几个方面
132项目估算
1321项目策划与项目估算
1322软件规模估算的功能点方法
1323软件开发成本估算
133风险管理
1331什么是软件风险
1332风险管理的任务
1333风险评估
1334风险控制
1335做好风险管理的建议
134进度管理
1341进度控制问题
1342甘特图
1343时标网状图
1344PERT图
135需求管理
1351系统需求与软件需求
1352需求工程
1353需求变更
1354需求变更控制
1355可追溯性管理
136配置管理
1361什么是软件配置管理
1362软件配置标识
1363变更管理
1364版本控制
1365系统建立
1366配置审核
1367配置状态报告
137质量管理
习题
第14章软件工程标准及软件文档
141软件工程标准
1411标准的概念
1412软件标准化的意义
1413标准的分类与分级
1414软件工程标准的制定与实施
1415软件组织内的标准化工作
142软件文档
1421软件文档的作用和分类
1422软件基本文档的内容要求
1423对文档编制的质量要求
1424文档的管理和维护
习题
第15章软件人员的职业道德和社会责任
151当前软件产品和软件产业的社会地位
152软件人员不良行为表现的实例
153软件工程人员的职业道德修养
1531职业道德和社会责任
1532软件工程人员职业道德修养的若干方面
154在软件业中组织职业道德规范的贯彻实施
附录近年国内外软件引起的系统重大事故
参考文献

教学资源推荐
作者: (爱尔兰)Stephen Brown;(爱尔兰)Joe Timoney;(爱尔兰) Tom Lysaght;(中国)Deshi Ye 著
作者: 江颉 董天阳 王婷 编著
作者: Erich Gamma ; Richard Helm ; Ralph Johnson ; John Vlissides
作者: 聂长海 陆超逸 高维忠 郑志强 编著
参考读物推荐
作者: Geri Schneider Jason P.Winters
作者: [德]迈克尔·考夫曼(Michael Kaufmann) 著
作者: (美)Capers Jones
作者: [美]伦·巴斯(Len Bass),[美]保罗·克莱门茨(Paul Clements),[美]瑞克·凯兹曼(Rick Kazman) 著