软件工程--原理、方法与应用

-
【作 者】肖孟强 曲秀清 主编
【I S B N 】978-7-5084-3250-2
【责任编辑】张玉玲
【适用读者群】高职高专
【出版时间】2007-08-01
【开 本】16开本
【装帧信息】平装(光膜)
【版 次】第1版
【页 数】
【千字数】
【印 张】
【定 价】¥24
【丛 书】21世纪高等院校规划教材
【备注信息】
简介
本书特色
前言
章节列表
精彩阅读
下载资源
相关图书
本书是根据教育部应用型本科21世纪规划教材指导思想与原则的要求,充分考虑应用型本科人才的培养目标和教学特点编写而成的。全书共12章,主要内容包括:软件工程概念、可行性研究与需求分析、软件设计、面向对象技术、统一建模语言UML、编码与编程语言、软件测试、软件维护、软件工程管理和质量保证、软件工程标准化、软件工程环境、嵌入式系统软件技术。本书在每一章的开头均给出本章的教学目标、教学任务和重点难点,每一章的最后给出实例分析和本章小结,附以部分习题,以便于教学与自学。
本书强调内容的实用性。按软件工程的全过程来安排与组织内容,条理性强,以案例
教学为驱动,易于学生学习与掌握。
本书可作为应用型本科计算机、自动化、机电类等专业和高职高专计算机专业的教材,
也可作为自学教材和软件开发人员的参考用书。
本书所配电子教案可以从中国水利水电出版社网站上免费下载,网址为:
http://www.waterpub.com.cn/softdown/。
计算机技术的迅速发展带动了软件产业的快速发展,软件工程作为一门如何运用工程化的方式有效地管理和规范软件开发的学科,已逐渐被广大计算机行业的人士所接受和运用。现已作为计算机专业学生的必修课。
本书在总结多年教学经验和科研实践的基础上,结合当前软件工程发展的新成果,对软件工程的原理、技术和应用做了系统介绍。本书以传统的软件工程为主线,结合现代软件工程技术,以案例为主导,从原理、技术到应用都做了全面的介绍,思路清晰,理论与实践的结合性较好。能使读者真正理解软件工程的原理及其重要意义,并结合实际应用达到学习软件工程的目的与要求。
本书在讲解理论基础的同时,注重实际应用,通过分析归纳,介绍解决工程实际问题的思想和方法,然后进行概括总结,可操作性强。以案例为主导的教学方式使学生在工程实例的引导下掌握理论知识,增强了实践能力。
本书的特点是理论与实践的有机结合,内容由浅入深,符合应用型人才的培养方向,同时注重标准和文档的重要性。
本书考虑到软件工程中不断出现的新技术、新方法和逐步完善的软件工程过程,在传统软件工程理论的基础上,增加了新技术、新知识、新工艺的内容。对于比较流行的方法也做了简单介绍,拓宽了读者的知识层面,为进一步学习软件工程理论打下了基础。
全书共12章。第1章是软件工程概述,以实际案例为先导,主要介绍软件工程的产生发展及软件的生存周期模型。第2章是可行性研究与需求分析,主要介绍软件可行性研究与需求分析的基本知识和方法。第3章是软件设计,主要讲解软件设计的基本概念和设计过程、结构化设计方法和详细设计常用工具。第4章是面向对象技术,主要讲解面向对象的软件开发技术,包括面向对象的基本概念及分析与设计方法、面向对象软件的开发过程和软件重用技术。第5章是统一建模语言,主要介绍统一建模语言UML的基本概念及相关的机制和规则。第6章是编码和编程语言,主要介绍编码风格和语言选择两个方面的内容。第7章是软件测试,介绍软件测试的概念和方法,讲述测试的策略和技术以及软件纠错的技术。第8章是软件维护技术,主要讲解软件维护的一些基本概念、软件维护的过程、软件的可维护性以及提高可维护性的方法。第9章是软件工程管理与质量保证,主要讲解软件工程管理与质量保证。第10章是软件工程标准化,主要讲解软件工程标准化的基本内容。第11章是软件工程环境,主要讲解软件工程环境的基本概念及组成内容。第12章是嵌入式系统软件技术,主要介绍嵌入式系统的基本知识及开发过程和方法。
本书由肖孟强、曲秀清担任主编,韩殿元、解圣庆、王宗江担任副主编。本书第1章和第6章由肖孟强编写,第2章和第3章由韩殿元编写,第4章、第5章、第7章、第12章由曲秀清编写,第8章由王宗江编写,第9章~第11章由解圣庆编写,另外参加本书编写的还有王成端、刘永华、王红老师。全书由肖孟强统稿、整理。山东交通学院的沈祥玖教授对全书进行了审阅并提出了宝贵意见,在此表示忠心感谢。
由于时间仓促及作者水平有限,书中难免存在缺点与不足之处,恳请广大读者和同行批评指正。
编 者
2005年7月
前言
第1章 软件工程概论 1
本章学习目标 1
1.1 引言 1
1.2 软件与软件危机 3
1.2.1 软件的定义 3
1.2.2 软件的特点 3
1.2.3 软件的分类 4
1.2.4 软件危机 5
1.3 软件工程的概念 7
1.3.1 软件工程的产生及发展 7
1.3.2 软件工程的定义及目标 9
1.3.3 软件工程学的范畴 10
1.4 软件生存周期及软件开发模型 11
1.4.1 软件生存周期 11
1.4.2 软件生存周期模型 13
1.4.3 瀑布模型(Waterfall Model) 13
1.4.4 演化模型(Evolutional Model) 14
1.4.5 螺旋模型(Spiral Model) 15
1.4.6 智能模型(Intelligence Model) 16
本章小结 16
习题 17
第2章 可行性研究与需求分析 18
本章学习目标 18
2.1 可行性研究 18
2.1.1 问题的定义 18
2.1.2 可行性研究的任务 19
2.1.3 可行性研究的步骤及工具 20
2.1.4 制订项目计划 23
2.2 需求分析 24
2.2.1 需求分析的目标和任务 24
2.2.2 软件需求的获取 25
2.2.3 需求分析的过程 26
2.2.4 快速原型方法 28
2.3 结构化分析方法 30
2.3.1 结构化分析模型 31
2.3.2 数据流图与数据字典 33
2.3.3 Warnier图 38
2.4 需求分析评审 39
2.4.1 需求规格说明书 39
2.4.2 评审过程 40
2.5 需求分析实例 42
2.5.1 画分层数据流图 42
2.5.2 确定数据定义与加工策略 44
2.5.3 实例的需求分析评审 45
本章小结 46
习题 46
第3章 软件设计 47
本章学习目标 47
3.1 软件设计的任务 47
3.2 软件设计的基本概念 49
3.2.1 软件设计的概念 49
3.2.2 模块化与模块独立性 50
3.2.3 抽象与信息隐蔽 55
3.2.4 软件设计原则 57
3.3 结构化设计方法 58
3.3.1 系统结构图 58
3.3.2 变换分析 60
3.3.3 事务分析 63
3.4 设计优化 65
3.5 详细设计 68
3.5.1 详细设计概述 68
3.5.2 程序流程图 68
3.5.3 N-S图(盒图) 71
3.5.4 PAD图 72
3.5.5 判定表与判定树 73
3.5.6 PDL 75
本章小结 76
习题 77
第4章 面向对象技术 78
本章学习目标 78
4.1 面向对象的概念 78
4.1.1 面向对象 78
4.1.2 对象 78
4.1.3 类 79
4.1.4 继承 79
4.1.5 消息 80
4.1.6 多态性 80
4.1.7 封装性 80
4.2 面向对象的开发过程 81
4.2.1 应用生存期 81
4.2.2 类生存期 82
4.3 面向对象分析 83
4.3.1 面向对象分析 84
4.3.2 论域分析 84
4.3.3 应用分析(Application Analysis) 86
4.3.4 对象模型技术(OMT,Object Model Technology) 86
4.4 面向对象的设计与实现 90
4.4.1 高层设计 90
4.4.2 类的设计 91
4.4.3 系统的实现 94
4.5 Coad与Yourdon方法 94
4.5.1 面向对象的分析 95
4.5.2 面向对象的设计 97
4.5.3 Booch的方法 98
4.6 软件复用技术 102
4.6.1 软件复用的基本概念 102
4.6.2 软件复用技术分类 103
4.6.3 论域工程 104
4.6.4 基于构件的软件开发 106
4.6.5 面向对象方法与软件复用 107
本章小结 108
习题 108
第5章 统一建模语言UML 109
本章学习目标 109
5.1 UML的基本概念 109
5.1.1 UML语言的产生 109
5.1.2 UML的定义 110
5.1.3 UML的目标 110
5.1.4 UML语言的应用 110
5.2 UML语言概述 111
5.2.1 视图 111
5.2.2 图 111
5.2.3 UML的模型元素及表示方法 112
5.2.4 UML的通用机制和扩展机制 115
5.2.5 UML的规则 116
5.3 静态建模 117
5.3.1 用例模型 117
5.3.2 类和对象模型 117
5.3.3 类之间的关系 119
5.4 动态建模 122
5.4.1 消息 122
5.4.2 状态图和时序图 123
5.4.3 协作图和活动图 124
5.5 物理架构建模 126
5.5.1 逻辑架构与物理架构 126
5.5.2 组件图与部署图 128
5.6 基于UML的统一建模过程——RUP 128
本章小结 129
习题 130
第6章 编码和编程语言 131
本章学习目标 131
6.1 编码的目的 131
6.2 编码的风格 132
6.2.1 结构化程序设计 132
6.2.2 编码风格 137
6.3 编码语言 144
6.3.1 编码语言的发展 144
6.3.2 常用的编码语言 145
6.3.3 编码语言的选择 147
本章小结 149
习题 149
第7章 软件测试 150
本章学习目标 150
7.1 软件测试的基本概念 150
7.1.1 软件测试的定义 150
7.1.2 软件测试的目的和原则 151
7.1.3 软件测试的对象及信息流 152
7.2 黑盒测试 153
7.2.1 等价类划分法 153
7.2.2 边界值分析 155
7.2.3 错误推测法 156
7.2.4 因果图法 156
7.2.5 功能图 156
7.3 白盒测试 156
7.3.1 逻辑覆盖 157
7.3.2 基本路径测试 162
7.4 软件测试的步骤及过程 162
7.4.1 单元测试 162
7.4.2 集成测试 164
7.4.3 确认测试 165
7.4.4 系统测试 166
7.4.5 人工测试 167
7.4.6 软件测试过程 167
7.5 软件的调试及排错 168
7.5.1 错误的诊断及排除 168
7.5.2 常用的几种调试方法 169
7.6 面向对象的软件测试 170
7.6.1 面向对象的测试模型 170
7.6.2 面向对象软件的测试策略 171
7.6.3 面向对象软件测试用例设计 172
本章小结 174
习题 174
第8章 软件维护 175
本章学习目标 175
8.1 软件维护概述 175
8.1.1 软件维护的基本概念 175
8.1.2 软件维护的种类 175
8.1.3 影响软件维护工作量的因素 177
8.1.4 软件维护的策略 177
8.2 软件维护的过程 178
8.2.1 维护机构 178
8.2.2 软件维护申请报告 179
8.2.3 软件维护工作流程 179
8.2.4 软件维护记录及评价 180
8.2.5 修改程序的副作用 181
8.3 软件的可维护性 181
8.3.1 可维护性的定义 182
8.3.2 可维护性的度量 182
8.4 提高可维护性的途径 184
8.4.1 建立明确的软件质量目标和优先级 184
8.4.2 使用提高软件质量的技术和工具 184
8.4.3 进行明确的质量保证审查 185
8.4.4 选择可维护的程序设计语言 187
8.4.5 改进程序的文档 188
8.5 逆向工程和再工程 189
本章小结 189
习题 190
第9章 软件工程管理与质量保证 191
本章学习目标 191
9.1 软件度量技术 191
9.1.1 代码行度量技术 191
9.1.2 功能点度量 192
9.1.3 COCOMO模型 194
9.2 软件估算 195
9.2.1 资源估算 196
9.2.2 成本估算 197
9.2.3 人员的分配与组织 200
9.2.4 项目进度安排 203
9.3 质量保证 208
9.3.1 软件的质量属性 208
9.3.2 质量保证的活动内容 209
9.4 软件可靠性 211
9.5 软件配置管理 211
9.5.1 软件配置管理 212
9.5.2 版本控制 213
9.5.3 配置状态报告 214
9.5.4 配置审计 215
本章小结 216
习题 216
第10章 软件工程标准化 217
本章学习目标 217
10.1 软件工程标准化 217
10.1.1 软件工程标准化的概念 217
10.1.2 软件工程标准化的意义 218
10.2 软件质量认证 218
10.2.1 ISO 9000系列标准 218
10.2.2 软件质量认证 219
10.2.3 ISO 9000-3的要点 219
10.3 软件文档 220
10.3.1 软件文档的作用 220
10.3.2 软件文档的分类 221
10.3.3 文档的管理与维护 221
10.3.4 常用的软件文档 221
10.4 CMM模型 222
10.4.1 软件过程成熟度模型 223
10.4.2 关键过程域 224
10.4.3 成熟度提问单 224
本章小结 226
习题 226
第11章 软件工程环境 227
本章学习目标 227
11.1 什么是软件工程环境 227
11.1.1 软件开发环境的特点 228
11.1.2 软件开发环境的模型 230
11.2 CASE环境 230
11.2.1 CASE环境 230
11.2.2 CASE环境的组成与结构 230
本章小结 233
习题 233
第12章 嵌入式系统软件技术 234
本章学习目标 234
12.1 嵌入式系统的基础知识 234
12.1.1 嵌入式系统的定义 234
12.1.2 嵌入式系统的特点 235
12.1.3 嵌入式系统的应用 236
12.2 嵌入式系统开发过程 236
12.2.1 嵌入式软件的开发特点 237
12.2.2 嵌入式软件的开发过程 238
12.3 嵌入式软件的测试 241
12.3.1 嵌入式软件的测试方法 241
12.3.2 嵌入式软件的测试策略 242
12.3.3 嵌入式软件的测试工具 243
12.4 嵌入式系统的调试 244
12.4.1 嵌入式系统的调试方式 244
12.4.2 嵌入式系统的调试方法 245
本章小结 246
习题 246
参考文献 247本书是根据教育部应用型本科21世纪规划教材指导思想与原则的要求,充分考虑应用型本科人才的培养目标和教学特点编写而成的。全书共12章,主要内容包括:软件工程概念、可行性研究与需求分析、软件设计、面向对象技术、统一建模语言UML、编码与编程语言、软件测试、软件维护、软件工程管理和质量保证、软件工程标准化、软件工程环境、嵌入式系统软件技术。本书在每一章的开头均给出本章的教学目标、教学任务和重点难点,每一章的最后给出实例分析和本章小结,附以部分习题,以便于教学与自学。
本书强调内容的实用性。按软件工程的全过程来安排与组织内容,条理性强,以案例
教学为驱动,易于学生学习与掌握。
本书可作为应用型本科计算机、自动化、机电类等专业和高职高专计算机专业的教材,
也可作为自学教材和软件开发人员的参考用书。
本书所配电子教案可以从中国水利水电出版社网站上免费下载,网址为:
http://www.waterpub.com.cn/softdown/。
- 庭院风骨—树、灌、篱 [创意房主 著]
- Python语言程序设计教程 [郭其标 房宜汕]
- 微积分(经管类)教程篇(下册) [曹海军 王海棠 周玲丽]
- 微积分(经管类)教程篇(上册) [曹海军 王海棠 周玲丽]
- 微积分(经管类)导学篇(上册) [王海棠 曹海军 周玲丽]
- 网站前端技术案例教程(HTML+CSS+JavaScript)(第二版) [黄华升]
- 线性代数 [主编 史昱 陈凤欣]
- 电力电子技术课程学习及实验指导 [主编 陈荣]
- 成长对话:青春的榜样 [主编 施端银 黄武刚 应巨林]
- 人工智能应用基础 [主编 杨缨 李佳]
- 中华水文化(慕课版)(第二版) [毕雪燕 杨华轲 罗玲谊 等编著]
- 电路与电子技术Ⅱ——电路分析基础 [主编 陈晓 金哲]
- 飞机维修专业英语——飞机系统(第二版) [赵迎春]
- 英语大爆炸:跟趣味情景剧学口语(微课版) [秦然 编著]
- 机械工程制图任务跟踪训练 [主编 王瑞清 赵金考 周彦云 ]
- 机械工程制图 [主编 覃国萍 刘百顺 禹晨]
- 平面设计与制作项目化教程 [主编 李晨]
- 后期影像剪辑技术 [主编 郭建伟]
- 人工智能概论(第二版) [主编 任云晖 丁红 徐迎春 ]
- 信息时代美育之道 [主编 刘宏宇 黎娅]
- 数字媒体交互设计项目式教程(微课版) [主编 苏陆]
- 动画运动规律项目实例解析(微课版) [孙珊珊 袁维坤]
- 自然语言处理 [主编 冯建周]
- 新媒体内容创作实务(微课版) [主编 覃思源]
- 人工智能基础 [主编 余平 张春阳]
- 人工智能导论 [主编 王飞 潘立武]
- Amazing!儿童英语自然拼读分级教材(全8册) [王玲 编著]
- Spark大数据处理技术 [主编 刘仁山 周洪翠 庄新妍]
- 毫无PS痕迹—你的第一本Photoshop书(第二版) [赵鹏 著]
- 电视新闻制作(活页式) [主编 王晓翠 刘传琳]