标题：软件工程与开发技术
图书信息
出版社: 西安电子科技大学出版社; 第1版 (2009年2月1日)
丛书名: 普通高等教育“十一五”国家级规划教材
平装: 380页
正文语种: 简体中文
开本: 16
ISBN: 7560621589, 9787560621586
条形码: 9787560621586
尺寸: 25.8 x 18.2 x 1.2 cm
重量: 599 g
内容简介
《软件工程与开发技术(第2版)》从软件工程方法、软件工程过程层面对现代软件工程学进行了较为系统和全面的介绍。全书共分为四篇，23章。第一篇介绍了传统的软件工程知识，包括软件工程的由来与发展、与软件工程学科相关的基础知识以及传统的结构化软件工程方法，具体内容有基于结构化方法的可行性分析、需求分析、设计与编码和软件测试知识等。第二篇以RuP为蓝本，介绍了现代面向对象的软件工程方法，重点就业务模型、用例模型、对象模型、包模型、动态模型、构件模型、部署模型的建模方法进行了详细讲述，最后介绍了面向对象测试的概念。第三篇就项目估算、项目策划、品质管理、配置管理、风险管理等项目经理必备的项目管理知识作了较全面的介绍。现代软件工程十分重视不断提升个人与组织的工程过程能力，因此，第四篇用较大篇幅论述了软件能力成熟度模型、个人软件过程PsP和小组软件过程TsP的相关内容。
《软件工程与开发技术(第2版)》适合作为计算机相关专业本科教学中软件工程课程的教科书，也可作为软件从业人员的参考书。
目录
第一篇 传统的软件工程
第1章 软件工程引论
1.1 软件产品的概念与特征
1.1.1 软件产品的概念与分类
1.1.2 软件产品的特征
1.1.3 软件发展的阶段划分
1.2 软件危机
1.2.1 软件危机及其表现
1.2.2 生软件危机的原因
1.2.3 解决软件危机的途径
1.3 软件工程的产生及其发展
1.4 软件工程的技术基础
1.5 软件工程过程的概念
1.6 几种软件过程模型
1.6.1 线性顺序模型
1.6.2 原型模型
1.6.3 快速应用开发模型
1.6.4 演化软件过程模型
1.7 过程技术
1.8 软件重用技术
1.9 计算机辅助软件工程工具
1.10 小结
习题
第2章 系统工程基础与软件可行性研究
2.1 基于计算机的系统
2.1.1 基于计算机的系统概述
2.1.2 计算机系统工程
2.2 系统需求识别
2.2.1 系统分析的目标
2.2.2 系统分析过程
2.3 可行性研究与分析
2.3.1 效益度量方法
2.3.2 成本一效益分析
2.3.3 技术分析
2.3.4 方案制定与评估
2.4 系统体系结构建模
2.4.1 建立系统结构流程图
2.4.2 系统结构的规格说明定义
2.5 系统定义与评审
2.5.1 系统定义文档模板
2.5.2 系统定义的评审
2.6 小结
习题
第3章 结构化需求分析与建模
3.1 需求分析
3.1.1 需求分析的任务
3.1.2 需求分析的步骤
3.1.3 需求分析的原则
3.2 数据建模
3.2.1 实体一关系模型
3.2.2 数据建模的其他工具
3.3 功能建模
3.3.1 数据流图的基本符号
3.3.2 数据流与加工之间的关系
3.3.3 数据流模型的建立方法
3.3.4 建立数据流模型的原则
3.4 行为建模
3.4.1 状态迁移图
3.4.2 Petri网
3.5 数据字典
3.5.1 数据字典的基本符号
3.5.2 数据字典中的条目及说明格式
3.5.3 加工逻辑的描述
3.5.4 数据字典的建立
3.6 结构化需求分析的若干技术
3.7 验证软件需求
3.7.1 软件需求规格说明的主要内容
3.7.2 软件需求的验证
3.8 小结
习题
第4章 结构化软件设计
4.1 软件设计中的基本概念和原理
4.2 体系结构设计概述
4.2.1 体系结构设计的任务
4.2.2 体系结构设计中可采用的工具
4.2.3 体系结构设计的原则
4.2.4 体系结构设计说明书
4.3 面向数据流的体系结构设计方法
4.3.1 数据流图的类型
4.3.2 面向数据流的体系结构设计过程
4.4 详细设计概述
4.4.1 详细设计的任务
4.4.2 详细设计可采用的工具
4.4.3 详细设计的原则
4.4.4 详细设计说明书
4.5 面向数据流的详细设计方法
4.6 面向数据结构的设计方法
4.7 小结
习题
第5章 软件编码
5.1 程序设计语言
5.1.1 程序设计语言的分类
5.1.2 程序设计语言的特性
5.1.3 程序设计语言的选择
5.2 编码风格及软件效率
5.2.1 编码风格
5.2.2 软件效率
5.3 程序复杂度的概念及度量方法
5.3.1 程序图
5.3.2 程序复杂度的度量方法
5.4 小结
习题
第6章 软件测试技术
6.1 软件测试基础
6.1.1 软件测试的概念、目的和原则
6.1.2 软件测试的过程
6.1.3 软件测试的方法
6.2 白盒测试技术
6.2.1 白盒测试概念
6.2.2.白盒测试的用例设计
6.3 黑盒测试技术
6.3.1 黑盒测试概念
6.3.2 黑盒测试的用例设计
6.4 软件测试计划和测试分析报告
6.5 软件测试策略
6.5.1 单元测试
6.5.2 集成测试
6.5.3 确认测试
6.5.4 系统测试
6.6 小结
习题
第二篇 面向对象的软件工程
第7章 面向对象技术总论
7.1 概述——面向对象方法论
7.2 面向对象技术的基本概念
7.2.1 类
7.2.2 对象及对象实例
7.2.3 消息机制
7.3 面向对象技术的基本特点
7.3.1 封装性
7.3.2 继承性
7.3.3 多态性
7.3.4 抽象性
7.4 面向对象分析方法
7.5 面向对象技术与程序结构
7.5.1 概述
7.5.2 重构
7.5.3 个程序结构改进(重构)的例子
7.6 面向对象软件工程
7.6.1 传统的面向对象软件工程
7.6.2 现代的面向对象软件工程
7.6.3 RuP过程
7.6.4 LIML简介
7.7 设计模式与框架
7.7.1 设计模式的基本概念
7.7.2 设计模式举例——AbstractFactory(抽象工厂)模式
7.7.3 框架的基本概念
7.7.4 框架的应用
7.7.5 框架开发与软件重用
7.7.6 框架的分类及开发原则
7.8 基于构件的软件体系结构(Com/Dcom、Corba、Internet)
7.9 面向对象分析解决(描述)问题的模式
7.10 小结
习题
第8章 业务模型
8.1 业务模型概述
8.2 业务建模的目的及内容
8.2.1 业务建模的目的
8.2.2 业务建模的内容
8.3 业务建模流程和任务
8.4 业务建模中使用到的UML元素和版型
8.4.1 业务系统
8.4.2 业务目标
8.4.3 业务规则
8.4.4 业务参与者
8.4.5 业务工人
8.4.6 业务实体
8.4.7 业务事件
8.4.8 业务用例
8.4.9 业务用例实现
8.4.10 业务用例与业务用例实现的区别
8.5 业务建模举例
8.5.1 业务目标(部分)
8.5.2 组织结构
8.5.3 岗位设置和职责
8.5.4 业务参与者(部分)
8.5.5 业务用例模型
8.5.6 业务对象模型
8.6 小结
习题
第9章 需求分析与用例模型
9.1 需求分析
9.1.1 系统需求和需求描述
9.1.2 需求类型
9.1.3 需求与用例模型
9.2 Actor及其关系
9.2.1 Actor
9.2.2 如何发现Actor
9.2.3 Actor之间的关系
9.3 用例及其关系
9.3.1 用例(UseCase)
9.3.2 用例的版型(Stereotype)及用例观点
9.3.3 用例之间的关系
9.4 用例图和用例模型
9.4.1 参与者与用例之间的关联
9.4.2 用例图
9.4.3 用例模型
9.5 用例规格说明
9.5.1 概述
9.5.2 用例的描述模板
9.5.3 通过用例描述来获取系统的功能
9.5.4 用例的描述方法及举例
9.6 用例描述中常见的错误举例
9.7 使用用例方法发现和确定系统功能需求
9.7.1 通过Actor来发现用例
9.7.2 通过业务用例和业务流程来发现用例
9.7.3 多视角的建模
9.8 小结
习题
第10章 分析设计与对象模型
10.1 类和对象的定义
lO.1.1 类的定义
10.1.2 类的定义讨论
10.1.3 类的程序语言定义及和现实世界类的映射
10.1.4 类的高级概念
10.2 对象、类之间的关系
10.2.1 泛化
10.2.2 关联
10.2.3 聚集
10.2.4 依赖
10.3 抽象类和接口
10.4 分析模型
10.4.1 边界类
10.4.2 控制类
10.4.3 实体类
10.4.4 分析模型举例
10.5 设计模型
10.6 抽象类和接口的设计原则
10.6.1 缺省抽象原则DAP
10.6.2 接口设计原则IDP
10.6.3 黑盒原则BBP
10.6.4 不要具体化超类原则DCSP
10.7 类图
10.8 领域设计
10.8.1 概述
10.8.2 领域建模
10.8.3 领域分析
10.8.4 领域工程
10.9 面向对象设计的原则
10.9.1 单一职责原则(sRP)
10.9.2 开闭原则(OCF)
10.9.3 Liskov替换原则
10.9.4 依赖倒置原则(DIP)
10.9.5 接口分离原则(ISP)
10.10 对象模型与关系模型
10.10.1 概念模型的表示方法
10.10.2 对象模型和关系模型的相互转换
10.11 小结
习题
第11章 系统结构与包模型
11.1 包的概念
11.2 包之间的依赖关系
11.3 包的版型
11.4 用包表示的系统高层结构
11.5 设计包的原则
11.5.1 重用等价原则(REP)
11.5.2 共同闭包原则(CCP)
11.5.3 共同重用原则(CRP)
11.5.4 非循环依赖原则(ADP)
11.5.5 稳定依赖原则(SDP)
11.5.6 稳定抽象原则(SAP)
11.6 小结
习题
第12章 系统动态特性与对象交互模型
12.1 动态模型概述
12.2 交互图
12.2.1 概述
12.2.2 顺序图
12.2.3 顺序图中的对象
12.2.4 顺序图中的消息
12.2.5 建立顺序图的方法和步骤
……
第三篇 软件工程项目管理
第四篇 软件工程过程模型
参考文献
新版图书
图书信息书目：软件工程与开发技术  
作者：张凯 
出版：清华大学出版社
ISBN：9787302268741
定价：38元
印次：1-1
装帧：平装
印刷日期：2012-1-10图书简介本书主要介绍与软件工程相关的基本理论概念、软件工程及软件开发方法、软件工程的设计与开发、软件质量保证、软件工程师的指南及实际案例分析。本书的目的并不是只追求软件工程理论的前沿，而是培养能胜任软件开发和应用工作的实用型、复合型人才，是一本应用性书籍。
本书不但可以作为大中专院校软件工程教材，也可作为广大工程师的参考书。目录第一篇 软件与软件工程
第1章 软件31.1 软件的发展3
1.2 软件的定义5
1.2.1 软件的含义5
1.2.2 软件的种类7
1.3 软件危机9
习题9
第2章 软件工程10
2.1 软件工程的定义10
2.2 软件工程开发模式10
2.2.1 瀑布模型11
2.2.2 原型模型11
2.2.3 螺旋模型12
2.2.4 四代技术13
2.2.5 面向对象生存期模型14
2.2.6 过程开发模型15
习题15
第二篇 软件开发方法
第3章 结构化设计方法193.1 结构化设计19/目  录/     3.1.1 概要19
3.1.2 设计图的说明20
3.1.3 设计步骤21
3.2 数据结构主导设计法23
3.3 系统的层次分割法24
3.4 Top-Down设计法26
习题27
第4章 面向对象的开发方法28
4.1 传统软件开发方法存在的问题28
4.2 面向对象的主要概念29
4.3 面向对象的特征32
4.4 面向对象的要素33
4.5 面向对象的开发方法33
4.6 面向对象开发方法的基本特征41
4.7 面向对象的模型42
4.8 面向对象的分析44
4.8.1 建立对象模型45
4.8.2 建立动态模型49
4.8.3 建立功能模型51
4.9 面向对象的设计与实现52
习题54
第三篇 软件工程的设计与实践
第5章 制订计划和管理595.1 软件开发的成功路程59
5.1.1 追求现代的信息处理技术人员59
5.1.2 在软件开发实践中总结出失败与原因60
5.1.3 软件开发成功之路61
5.2 软件开发项目61
5.2.1 从5W2H考虑项目61
5.2.2 作成“项目计划书”62
5.2.3 发挥领导作用63
5.2.4 选择适当的处理模型63
5.2.5 通过项目应注意的事项64
5.3 构建及运转一支高效善于沟通的团队65
5.3.1 构建项目团队65
5.3.2 强化沟通66
5.3.3 有效的会议69
5.3.4 根据软件开发规模来决定责任70
5.4 构筑并维持和客户间及各子团队间的协调体制70
5.4.1 客户及开发方考虑所存在的“鸿沟”70
5.4.2 使客户认识到自己的作用71
5.4.3 不断修正的体制和窗口的一体化71
5.4.4 其他子团队也是“客户”72
5.4.5 兼任项目时应注意的事项72
5.4.6 把握好客户同事之间的力度关系73
5.4.7 建立遵守现实妥当的计划73
习题79
第6章 需求分析及文档化--系统规范设计的关键点80
6.1 需求分析的重要性80
6.1.1 需求分析80
6.1.2 需求分析的问题点81
6.1.3 需求分析的考虑方法83
6.2 需求分析的概要84
6.2.1 需求分析的对象系统84
6.2.2 需求分析的关系者85
6.2.3 需求分析的工作工程86
6.2.4 需求分析的文档87
6.3 需求分析工作的步骤90
6.3.1 需求分析工程90
6.3.2 需求规格化工程110
6.3.3 项目计划工程119
6.4 需求分析的技术、工具122
6.4.1 需求分析工程的技术和工具122
6.4.2 需求文档化工程的技术和工具125
习题132
第7章 从需求到设计133
7.1 需求分析工程的进行方法133
7.2 顺利且有效进行需求工程的注意点137
7.3 外部设计140
7.4 内部设计145
7.4.1 内部设计工作的实行步骤145
7.4.2 模块化146
7.4.3 数据的物理设计148
7.4.4 性能/容量的分析148
7.5 高效推进设计工程的注意点148
7.5.1 防止错误进入设计148
7.5.2 易变更、易维护的设计151
7.5.3 不要急于编程151
7.5.4 设计工程不只包括业务设计152
7.5.5 通过文档上的意见一致来实现客户的满意152
7.5.6 管理文档的变更需求153
7.5.7 变更管理的对应点154
7.6 开发与测试工程相连154
7.6.1 阶段性工作结束时计划的修正154
7.6.2 开发、测试计划的作成155
习题155
第8章 编程工程156
8.1 编程工程156
8.2 标准化及共享化阶段157
8.2.1 制定标准157
8.2.2 准备知识的公共环境158
8.2.3 高效利用综合开发环境159
8.2.4 注意开发环境与实际环境的差异160
8.3 程序详细设计可使内部设计书更加细化160
8.4 编程的要点161
8.4.1 编程的技术面161
8.4.2 编码的管理方面162
8.5 单元测试解决模块内部问题163
8.6 准备实际运行164
8.6.1 导入支援工具164
8.6.2 文档作成164
8.6.3 运行支援工具165
习题166
第9章 从测试到运行167
9.1 软件的质量和测试的含义167
9.2 测试计划和设计170
9.2.1 制订测试计划和设计170
9.2.2 测试流程和测试数据171
9.2.3 理解系统的错误和故障所带来的影响171
9.2.4 白盒测试与黑盒测试173
9.2.5 开发环境和测试环境174
9.2.6 确保必要的测试时间175
9.2.7 回归测试计划175
9.2.8 测试系统接口175
9.3 实施测试176
9.3.1 自顶向下测试与自底向上测试176
9.3.2 活用各种测试工具177
9.3.3 意识风险178
9.3.4 在测试中发现错误并修正178
9.3.5 对不再出现问题的对策179
9.3.6 多个版本的管理180
9.3.7 防止正式运行时的问题180
9.3.8 提高测试工程的效率181
9.4 从运行测试到运转181
9.4.1 以系统使用人员为主体的运行测试181
9.4.2 用运行测试来进行业务的测试182
9.4.3 正式运行183
9.4.4 测试设计、实施上的注意点183
9.5 系统的导入184
9.6 正式运转186
习题190
第10章 客户的交货和验收/系统移交运行/维护团队192
10.1 验证系统192
10.1.1 交货前所需做的准备192
10.1.2 理解客户的验收工作193
10.1.3 验收结果的反馈194
10.2 系统的交货日与运行日195
10.2.1 理解交货日和运行日的关系195
10.2.2 在系统维护阶段的合同196
10.2.3 发现错误时的考虑方法和维护合同197
10.2.4 系统需追加的性能、功能198
10.3 向运转团队移交系统198
10.3.1 开始系统运行时的必要准备199
10.3.2 向运行团队移交手册199
10.3.3 软件工程师所起的三个作用201
第四篇 软件质量与质量保证
第11章 质量管理20511.1 软件产品的质量205
11.2 项目质量管理的框架206
11.3 质量保证形式206
11.4 质量保证的处理过程207
11.5 从CMM到CMMI208
习题212
第12章 设计文档213
12.1 文档的重要性213
12.2 文档的种类214
12.2.1 按使用目的对文档进行分类214
12.2.2 各种文档的完成时期215
12.3 文档的完成时期和其内容215
12.3.1 针对客户的文档218
12.3.2 针对开发人员的文档222
12.3.3 针对维护人员的文档237
12.4 文档的质量管理239
12.4.1 对记载内容进行的验证239
12.4.2 维护管理法241
12.4.3 文档支援工具242
习题244
第13章 设计评审245
13.1 设计评审的重要性245
13.2 设计评审的内容和实施方法248
13.2.1 设计评审的内容248
13.2.2 软件开发工程和产品249
13.2.3 设计评审的管理体制和管理方法250
13.2.4 设计评审的标准化251
13.2.5 设计评审的实施方法251
13.3 设计评审的文档263
13.3.1 设计评审管理用文档263
13.3.2 检查报表264
13.4 设计评审实施上的注意点265
习题266
第五篇 软件工程师指南
第14章 软件工程师的全体工作概述26914.1 系统开发方法269
14.2 调查客户的现状，理解需求270
14.2.1 理解客户的要求270
14.2.2 分析现状272
14.3 概要的提案273
14.3.1 本书所涉及的系统273
14.3.2 系统的费用差274
14.3.3 提案的范围275
14.4 系统构筑和软件工程师的作用276
14.4.1 从概要设计到详细设计276
14.4.2 软件工程师与各专门技术人员的合作276
14.4.3 软件工程师的作用--管理系统开发项目的全体278
14.5 交货及交货后的维护279
14.5.1 从开发结束到向客户交货的流程279
14.5.2 验收后软件工程师的可能工作280
习题280
第15章 软件工程师的演讲技巧282
15.1 演讲的必要性282
15.1.1 在演讲中加深理解282
15.1.2 演讲所能提供给客户的信息283
15.1.3 准备有效的演讲284
15.2 实际演讲285
15.2.1 演讲内容285
15.2.2 有效使用图像信息来进行演讲286
15.3 接受反馈意见287
15.3.1 在各阶段演讲时所要确认的事项287
15.3.2 对应来自客户的需求和变更288
15.3.3 最终确认289
习题291
第16章 作为项目经理的软件工程师292
16.1 计划管理的方法292
16.1.1 将项目全体列入一张表中292
16.1.2 设想最好、典型及最坏事例的情况294
16.2 系统开发团队中各成员的作用295
16.2.1 软件工程师的责任范围和作用295
16.2.2 技术工程师的种类和其作用296
16.2.3 程序员应起的作用297
16.3 系统设计中的必要考虑方法298
16.4 考虑用户外部接口的界面设计300
16.5 开发系统302
16.5.1 撰写无遗漏的设计文档302
16.5.2 将系统分割成子系统进行开发303
16.6 测试系统304
16.6.1 测试的时刻304
16.6.2 单元测试305
16.6.3 结合测试和系统测试306
16.6.4 运行测试306
16.6.5 制作各测试的设计文档307
16.7 验证和解决系统的问题点308
16.7.1 有关硬件的问题及解决方法309
16.7.2 有关网络问题和解决方法309
16.7.3 有关软件问题和解决方法310
习题311
第17章 高级软件工程师的目标312
17.1 磨炼作为软件工程师的技术力312
17.1.1 不能过信自己的技术312
17.1.2 软件工程师继续学习的重要性313
17.2 为了开发更好的系统314
17.2.1 今后系统的基本点--安全314
17.2.2 根据客户需求的最适设计315
17.3 项目管理注意事项317
17.4 客户对高级软件工程师的期待319
17.5 满足客户需求的软件322
17.5.1 对于客户来说的优质软件322
17.5.2 软件质量与客户满意度323
17.5.3 对软件需求的变化323
17.6 软件开发阶段客户的满足324
17.6.1 交货期和功能--优先顺序324
17.6.2 没能遵守交货期的对应解决方法325
17.6.3 需求分析的进展方法326
17.6.4 客户的真正期待326
17.7 软件使用阶段客户的满意度327
17.7.1 设计与使用者所持技术相对应的功能和操作性327
17.7.2 操作培训的进行方法328
17.7.3 制作易使用的手册329
17.8 软件维护阶段客户的满足330
17.9 公司内的关键人员对高级软件工程师的期望333
17.9.1 软件工程师在项目团队中所起的作用333
17.9.2 遵守交货期和费用334
17.9.3 应对软件开发的风险334
17.9.4 意识开发的后期工程335
17.10 软件开发中的作用336
17.11 与客户交涉的技巧338
习题340
第六篇 软件工程现场实际案例分析
第18章 与客户的交涉力345第19章 维护人员的干劲/完成难以管理的任务（统率力）356
第20章 解决问题同时，提出与新商机相连的方案365
参考文献375