软件工程:理论与实践
作者 : 张燕 洪蕾 钟睿 李慧 等编著
出版日期 : 2012-09-20
ISBN : 978-7-111-38284-3
适用人群 : 普通高等学校软件学院、计算机学院、信息学院软件工程
定价 : 35.00元
教辅资源下载
扩展信息
语种 : 简体中文
页数 : 319
开本 : 16
原书名 :
原出版社:
属性分类: 教材
包含CD :
绝版 :
图书简介

目前有很多优秀的软件工程教材可满足本科生、研究生教学的需求,然而这些教材在用于应用型人才培养时无论是篇幅上还是系统化实例讲解方面都略显不足。为此,作者在总结多年软件工程教学实践的基础上编写了本书。本书共分12章:第1章是软件工程概述,第2章介绍系统工程,第3~9章顺序讲述了软件生存周期各阶段的任务、方法和工具,第10~12章着重讲述了软件项目管理中的质量、过程和配置管理。附录是本书采用的一个完整案例,它对读者深入理解面向对象分析与设计方法的应用有很大的帮助。另外作者还提供了教学支持网站http://it.jit.edu.cn/netclass,其中提供了课后习题答案及许多辅助学习资料。
  本书强调能力培养,适合用做应用型本科软件工程或相关课程的教材。

图书特色

软件工程
理论与实践
张燕 洪蕾 钟睿 李慧 等编著
根据应用型人才培养需强化理论应用和工程实践能力的要求,同时为解决“软件工程”课程教学时数少、强调应用技能培养等问题,作者在多年软件工程教学实践的基础上与课程建设小组成员共同编写了本书。
本书特点
全面系统地讲述软件工程的概念、原理和典型方法,同时通过贯穿全书的案例重点介绍了面向对象分析与设计、软件开发过程和过程管理技术。
重点强调软件需求分析、系统分析与建模、设计与测试的能力培养,同时兼顾了软件度量和管理及质量保证活动的相关知识。
提供配套的网络课程(http://it.jit.edu.cn/netclass)。网络课程以教材的主要内容为参考,同时给读者提供了丰富的学习资源、辅助资料等,帮助学生有条理地构建自己的知识体系。网络教学支撑环境为学习者设计了探究学习、自我测试、实时交流等虚拟学习环境,培养学生的学习能力、协作能力等。

图书前言

根据应用型人才培养应强化学生的理论应用和工程实践能力的需要,四年教学计划中的实践教学时间应不少于一年。作者和软件工程课程建设小组的教师近6年来一直在研究如何在有限的理论教学时数内帮助学生掌握软件工程理论与方法的应用,理解软件工程过程及其管理。课程建设小组近年来使用和参考了许多国内外的优秀教材,这些教材各有长处,对我们的教学帮助很大。从应用型人才培养目标的要求出发分析这些教材,我们认为现有教材还存在一些问题:一是部分教材篇幅长,不适合48学时的教学需要;二是对软件建模在分析和设计阶段的重要性强调得不够,常常重理论讲解,缺少系统化的实例;三是比较忽视软件项目管理和CMM/CMMI模型的教学。本书在学习和借鉴各种优秀教材的基础上,力求较好地解决上述问题。
  本书主要由张燕、洪蕾编写。其中1~3章由钟睿编写;4~6章由张燕编写;7~9章及附录由洪蕾编写;10~12章由李慧编写。全书的结构设计、选材以及最后的统稿工作由张燕完成。全书第一次审稿和课后习题答案的整理由沈维燕完成。本书配套的网络课程(http://it.jit.edu.cn/netclass)以教材的主要内容为参考,结构设计由张燕完成,其他设计由罗扬完成,课后习题答案在网络课程中提供。本书按基本的软件工程过程来组织,并通过分析一个实际案例“开放实验室管理系统”,帮助读者理解软件需求分析与建模以及设计与实现的方法和过程,特别适合用做应用型人才培养的教材。
  本书还以“软件工程理论与实践”网络课程的形式给读者提供丰富的学习资源。网络课程由教学内容和网络教学支撑环境两部分组成。其中教学内容部分按照教材章节组织学习内容、辅助资料等,帮助学生有条理地构建自己的知识体系;而网络教学支撑环境是指支持网络教学的软件工具以及实施的教学活动,为学习者设计了探究学习、自我测试、实时交流等虚拟学习环境,培养学生的学习能力、协作能力等。
  在此向本书的审阅者及全体作者的家人表示衷心的感谢,感谢他们的大力支持!
  鉴于作者在软件工程理论和实践方面的局限性,书中难免有不当之处,诚恳地希望广大读者不吝赐教,帮助我们不断进步。

上架指导

计算机\软件工程

封底文字

根据应用型人才培养需强化理论应用和工程实践能力的要求,同时为解决“软件工程”课程教学时数少、强调应用技能培养等问题,作者在多年软件工程教学实践的基础上与课程建设小组成员共同编写了本书。
本书特点
● 全面系统地讲述软件工程的概念、原理和典型方法的同时,通过贯穿全书的案例重点介绍了面向对象分析与设计(使用通过UML)、软件开发过程和过程管理技术。
● 重点强调软件需求分析、系统分析与建模、设计与测试的能力培养,同时兼顾了软件度量和管理及质量保证活动的相关知识。
● 提供配套的网络课程(http://it.jit.edu.cn/netclass)。网络课程以教材的主要内容为参考,同时给读者提供了丰富的学习资源、辅助资料等,帮助学生有条理地建构自己的知识体系。而网络教学支撑环境为学习者设计了探究学习、自我测试、实时交流等虚拟学习环境,培养学生的学习能力、协作能力等。

图书目录

出版者的话
丛书序言
丛书编委会
前言
教学建议
第1章 软件工程概述1
 1.1 软件发展概述1
  1.1.1 软件1
  1.1.2 软件危机2
 1.2 软件工程3
  1.2.1 软件工程概念3
  1.2.2 软件工程研究目标4
  1.2.3 软件工程原则5
  1.2.4 软件工程基本原理5
 1.3 软件生存周期6
  1.3.1 问题定义阶段6
  1.3.2 需求分析7
  1.3.3 软件设计8
  1.3.4 程序编码9
  1.3.5 软件测试9
  1.3.6 运行维护9
 1.4 软件过程9
  1.4.1 软件过程的概念10
  1.4.2 软件过程基本活动11
  1.4.3 软件过程标准11
  1.4.4 软件过程周期12
 1.5 软件过程模型13
  1.5.1 瀑布模型15
  1.5.2 增量模型16
  1.5.3 进化式开发模型17
  1.5.4 特殊的过程模型19
  1.5.5 统一过程模型20
 1.6 软件工程方法21
 1.7 软件工程所面临的主要问题24
 本章小结25
 思考题25
第2章 系统工程26
 2.1 系统概述26
  2.1.1 系统的定义26
  2.1.2 系统的特性27
  2.1.3 系统总体特性30
  2.1.4 系统建模30
  2.1.5 本书案例:开放实验室管理系统31
 2.2 系统工程过程32
  2.2.1 系统需求定义33
  2.2.2 系统设计33
  2.2.3 子系统开发34
  2.2.4 系统整合35
  2.2.5 系统安装35
  2.2.6 系统操作35
  2.2.7 系统进化35
  2.2.8 系统退役36
  2.2.9 系统获得36
 2.3 基于计算机的系统工程37
  2.3.1 硬件工程37
  2.3.2 软件工程38
  2.3.3 人机工程38
 本章小结39
 思考题39
第3章 软件需求工程40
 3.1 概述40
 3.2 需求分析任务42
 3.3 软件需求分析类型44
  3.3.1 软件需求基本分类44
  3.3.2 用户需求46
  3.3.3 系统需求47
 3.4 软件需求分析原则47
 3.5 需求分析方法48
  3.5.1 结构化分析方法48
  3.5.2 面向对象分析方法54
  3.5.3 结构化语言描述55
 3.6 软件需求工程管理56
  3.6.1 定义需求56
  3.6.2 需求确认57
  3.6.3 建立需求状态57
  3.6.4 需求评审57
  3.6.5 需求变更控制59
 3.7 软件需求文档60
 本章小结62
 思考题62
第4章 面向对象分析64
 4.1 面向对象方法概述64
  4.1.1 什么是面向对象64
  4.1.2 面向对象的基本概念66
 4.2 UML概述68
  4.2.1 UML的组成68
  4.2.2 UML中的模型元素69
  4.2.3 UML中的图71
  4.2.4 UML中的视图74
 4.3 面向对象分析过程75
  4.3.1 面向对象分析概述75
  4.3.2 用例建模76
  4.3.3 类建模78
  4.3.4 行为建模81
 4.4 面向对象分析方法举例83
  4.4.1 案例描述83
  4.4.2 案例分析85
 4.5 面向对象分析阶段的CASE工具89
  4.5.1 UML建模工具89
  4.5.2 图稿绘制工具90
 4.6 面向对象分析阶段面临的挑战90
 本章小结90
 思考题91
第5章 软件设计92
 5.1 软件体系结构概述92
  5.1.1 软件体系结构的概念以及研究内容和范畴92
  5.1.2 体系结构风格、设计模式和框架的概念94
 5.2 软件体系结构的设计原则和风格94
  5.2.1 设计原则94
  5.2.2 软件体系结构风格96
 5.3 典型体系结构介绍98
  5.3.1 TAFIM体系结构98
  5.3.2 DOD体系结构99
  5.3.3 TOGAF体系结构101
 5.4 设计过程101
  5.4.1 概要设计102
  5.4.2 详细设计104
  5.4.3 设计测试109
 5.5 面向行为的设计110
  5.5.1 数据流分析110
  5.5.2 事务分析114
 5.6 面向数据的设计116
  5.6.1 Jackson表示法116
  5.6.2 Jackson方法的设计步骤117
 5.7 设计阶段的度量119
 5.8 面向对象设计120
 本章小结120
 思考题120
第6章 面向对象设计124
 6.1 面向对象设计概述124
 6.2 系统架构设计126
  6.2.1 系统高层结构设计126
  6.2.2 确定设计元素128
  6.2.3 人机交互设计130
 6.3 系统元素设计135
  6.3.1 子系统设计135
  6.3.2 分包设计135
  6.3.3 类/对象设计136
 6.4 面向对象设计优化140
  6.4.1 确定优先级140
  6.4.2 提高效率的几项技术140
 6.5 软件复用142
  6.5.1 复用概述142
  6.5.2 开发可复用构件库143
  6.5.3 建立可复用构件库144
 6.6 面向对象设计示例146
  6.6.1 系统上下文和用例模型146
  6.6.2 体系结构的设计147
  6.6.3 对象识别148
  6.6.4 设计模型149
  6.6.5 对象接口描述149
 本章小结151
 思考题151
第7章 软件实现153
 7.1 软件开发语言的选择153
  7.1.1 程序设计语言的特性及其选择依据153
  7.1.2 程序设计风格154
  7.1.3 目前常用程序设计语言对比155
 7.2 面向对象的软件实现160
  7.2.1 概述160
  7.2.2 面向对象软件实现过程161
  7.2.3 “开放实验室管理系统”的实现165
 7.3 软件开发中的注意事项175
  7.3.1 项目设计175
  7.3.2 设计变化和需求变化176
  7.3.3 代码编写176
 本章小结178
 思考题178
第8章 软件测试179
 8.1 软件测试概述179
  8.1.1 软件测试定义179
  8.1.2 软件测试目的180
  8.1.3 软件测试分类181
  8.1.4 软件测试原则181
 8.2 软件测试方法和技术182
  8.2.1 概述182
  8.2.2 黑盒测试183
  8.2.3 白盒测试191
  8.2.4 黑盒测试与白盒测试比较193
 8.3 软件测试过程、策略和文档195
  8.3.1 软件测试过程195
  8.3.2 软件测试策略200
  8.3.3 软件测试文档200
  8.3.4 软件测试结束的标志200
 8.4 测试用例的设计201
  8.4.1 测试用例概述201
  8.4.2 测试用例设计原则201
  8.4.3 编制测试用例203
  8.4.4 测试用例的作用204
 8.5 软件测试工具分类及选择205
  8.5.1 黑盒测试工具205
  8.5.2 白盒测试工具205
  8.5.3 其他测试工具205
  8.5.4 测试工具的选择206
 本章小结206
 思考题207
第9章 软件维护208
 9.1 软件维护的定义、内容和特点208
  9.1.1 软件维护的定义208
  9.1.2 软件维护的内容209
  9.1.3 软件维护的特点209
 9.2 软件维护的过程210
  9.2.1 建立维护组织210
  9.2.2 维护过程211
  9.2.3 保管维护记录212
  9.2.4 维护评价213
  9.2.5 维护技术213
 9.3 软件的可维护性214
  9.3.1 软件维护性的问题214
  9.3.2 决定软件可维护性的因素215
  9.3.3 提高可维护性的方法216
 9.4 软件再工程217
  9.4.1 再工程的概念218
  9.4.2 再分析219
  9.4.3 再编码219
  9.4.4 再测试219
  9.4.5 实用的复用策略219
 本章小结220
 思考题221
第10章 软件质量管理222
 10.1 软件质量222
  10.1.1 软件质量的定义222
  10.1.2 软件质量的内容223
  10.1.3 软件质量因素224
 10.2 软件质量管理225
  10.2.1 质量管理概念225
  10.2.2 软件质量方针226
  10.2.3 软件质量计划226
 10.3 软件质量控制与保证227
  10.3.1 软件质量控制概述228
  10.3.2 软件质量控制工具228
  10.3.3 软件质量保证的原则和计划230
  10.3.4 软件质量保证的内容和措施232
  10.3.5 软件技术评审232
  10.3.6 软件质量标准234
 10.4 软件质量度量235
  10.4.1 软件质量度量的概念236
  10.4.2 软件质量度量的分类236
  10.4.3 软件质量度量模型236
  10.4.4 软件质量度量方法240
  10.4.5 软件复杂性度量240
  10.4.6 软件可靠性度量242
 10.5 案例描述243
  10.5.1 角色和职责243
  10.5.2 策划活动243
  10.5.3 审计活动244
  10.5.4 不符合问题处理247
  10.5.5 通报SQA活动结果247
  10.5.6 资源247
 本章小结247
 思考题248
第11章 软件过程改进249
 11.1 软件过程249
  11.1.1 过程249
  11.1.2 软件过程的概念249
  11.1.3 软件过程的分类和组成250
 11.2 软件过程改进概述251
  11.2.1 过程改进251
  11.2.2 过程改进的两种模式252
  11.2.3 过程改进的原则和步骤252
 11.3 软件过程度量253
  11.3.1 过程度量的概念253
  11.3.2 过程度量的原则254
  11.3.3 过程度量的内容254
  11.3.4 过程度量的流程254
 11.4 能力成熟度模型CMM255
  11.4.1 软件机构的过程成熟度255
  11.4.2 CMM分级结构及主要特征255
  11.4.3 CMM的主要内容257
  11.4.4 CMM的内部结构258
  11.4.5 CMM的应用259
 11.5 能力成熟度模型集成CMMI259
  11.5.1 CMMI模型的表示260
  11.5.2 CMMI模型的应用261
 11.6 个体软件过程262
 11.7 团队软件过程262
 11.8 案例描述264
  11.8.1 需求管理264
  11.8.2 软件项目策划266
  11.8.3 软件项目跟踪与监督267
 本章小结267
 思考题268
第12章 软件配置管理269
 12.1 概述269
  12.1.1 软件配置管理的概念269
  12.1.2 软件配置管理的内容270
  12.1.3 软件配置管理的职责及任务272
 12.2 软件配置274
  12.2.1 软件配置项274
  12.2.2 配置标识275
 12.3 基线技术276
  12.3.1 基线分类276
  12.3.2 基线管理277
 12.4 版本控制277
 12.5 修改控制278
 12.6 配置审核279
 12.7 配置状态报告281
 12.8 配置管理的CASE工具281
 12.9 案例描述283
  12.9.1 建立软件三库283
  12.9.2 配置控制流程284
  12.9.3 配置状态报告和配置审核284
 本章小结285
 思考题285
附录 “开放实验室管理系统”案例286
参考文献304

参考读物推荐
作者: [美]克雷·拉曼(Craig Larman) 著
作者: [美]Kim Caputo
作者: 郑建德 编著