新書推薦:
《
有趣的中国古建筑
》
售價:HK$
68.8
《
十一年夏至
》
售價:HK$
78.2
《
如何打造成功的商业赛事
》
售價:HK$
91.9
《
万千教育学前·透视学前儿童的发展:解析幼儿教师常问的那些问题
》
售價:HK$
59.8
《
慈悲与玫瑰
》
售價:HK$
89.7
《
启蒙的辩证:哲学的片简(法兰克福学派哲学经典,批判理论重要文本)
》
售價:HK$
78.2
《
心跳重置
》
售價:HK$
60.7
《
云中记
》
售價:HK$
78.2
|
編輯推薦: |
本书自2012年6月第1版到第3版的出版发行,已被全国多所高校选作教材用书,同时也被多所高校选为研究生入学考试参考用书
|
內容簡介: |
本书全面、系统地介绍软件工程的基本概念、原理和典型的技术方法,在注重软件工程学科的系统性、原理性的同时,对于软件工程生命周期的各阶段,都有详细案例对应,让读者能够在了解基本理论知识的基础上,提升实践动手能力,把所学内容快速运用到实际项目中。本书内容共分11章:第1章是对软件工程的概述;第2~5章按照软件生命周期的开发顺序,以结构化方法为主线,介绍软件工程各阶段的任务、过程、方法和工具;第6章介绍软件测试;第7~9章结合软件生命周期过程,以面向对象方法为主线,介绍统一建模语言UML、面向对象分析及过程、面向对象设计及建模、测试等内容;第10章介绍软件维护;第11章介绍软件项目管理及CMM。 软件工程是强调基础理论与项目实践紧密结合的学科。因此,本书在讲解理论、方法、过程的同时,注重融入实际项目,并在每章后有针对性地提供专门设计的习题,让读者更好地在实践中掌握基础理论。
|
目錄:
|
第1章 软件工程概述 1
1.1 软件工程的发展历程 1
1.1.1 软件危机 1
1.1.2 软件危机出现的原因 3
1.1.3 软件的本质特性 4
1.1.4 软件工程的发展 5
1.1.5 国内软件工程及软件产业的发展 6
1.2 软件工程的概念 7
1.2.1 软件工程的定义 7
1.2.2 软件工程的目标 9
1.2.3 软件工程的实施原则 10
1.2.4 软件工程的基本原理 11
1.3 软件与软件过程 13
1.3.1 软件的概念 13
1.3.2 软件的分类 15
1.3.3 软件生命周期 16
1.3.4 软件过程 17
1.4 软件过程模型 19
1.4.1 瀑布模型 19
1.4.2 原型模型 20
1.4.3 增量模型 21
1.4.4 螺旋模型 22
1.4.5 喷泉模型 23
1.4.6 敏捷过程模型 23
1.4.7 渐进交付迭代模型 26
1.4.8 软件过程模型的比较 28
1.5 软件开发方法 28
1.5.1 结构化开发方法 29
1.5.2 面向对象开发方法 29
1.6 案例描述 30
1.6.1 简历信息自动获取和查询系统 30
1.6.2 试卷自动生成系统 31
1.7 本章小结 32
习题 33
第2章 软件需求工程 35
2.1 软件需求的基本概念 35
2.1.1 需求分析的任务 35
2.1.2 需求分析的原则 36
2.1.3 需求分析的内容 37
2.1.4 需求分析的方法 38
2.2 可行性分析 39
2.2.1 可行性分析的内容 40
2.2.2 系统流程图 41
2.3 需求工程的过程 42
2.3.1 需求工程中的参与人员 42
2.3.2 需求工程中的活动 43
2.3.3 需求工程的管理 44
2.4 需求获取技术 45
2.5 结构化需求分析和建模 48
2.5.1 结构化需求分析概述 48
2.5.2 面向数据的数据建模 49
2.5.3 面向数据流的功能建模 50
2.5.4 面向状态转换的行为建模 56
2.6 数据字典 58
2.6.1 数据字典的编写要求 58
2.6.2 数据字典的定义 59
2.7 案例——“简历信息自动获取和查询系统”的需求建模 61
2.7.1 数据建模——E-R图描述 61
2.7.2 功能建模——数据流图 61
2.7.3 行为建模——状态转换图 63
2.7.4 加工逻辑——PDL语言的描述 63
2.7.5 数据字典 63
2.8 需求评审 65
2.8.1 软件需求规格说明 65
2.8.2 需求评审标准及需求验证 68
2.8.3 需求变更管理 70
2.9 本章小结 71
习题 72
第3章 软件设计基础 75
3.1 软件设计概述 75
3.1.1 软件设计与软件需求 75
3.1.2 软件设计的任务 76
3.1.3 软件设计的原则 78
3.2 软件体系结构设计 79
3.2.1 体系结构设计概述 79
3.2.2 以数据为中心的数据仓库模型 80
3.2.3 客户端/服务器模式的分布式结构 81
3.2.4 层次模型 83
3.2.5 MVC模型 84
3.3 模块化设计 85
3.3.1 软件模块化与分解 85
3.3.2 抽象 86
3.3.3 信息隐藏 87
3.3.4 模块独立性 88
3.3.5 启发式规则 91
3.4 界面设计 94
3.4.1 界面设计的任务 94
3.4.2 界面设计的原则 95
3.4.3 界面设计的特性 96
3.5 软件设计评审 96
3.5.1 软件设计规格说明 96
3.5.2 软件设计评审标准 100
3.5.3 软件设计验证 101
3.6 本章小结 102
习题 103
第4章 结构化设计方法 105
4.1 结构化设计方法概述 105
4.2 面向数据流的设计方法 106
4.2.1 层次图和结构图 106
4.2.2 变换分析法 108
4.2.3 事务分析法 111
4.2.4 混合分析法 113
4.3 案例——简历信息自动获取和查询系统的数据流设计方法 114
4.3.1 用变换分析法进行设计 114
4.3.2 用事务分析法进行设计 115
4.3.3 两种方法的比较 116
4.4 结构化详细设计的工具 117
4.4.1 程序流程图 117
4.4.2 盒图 118
4.4.3 问题分析图 119
4.4.4 判定树 121
4.4.5 判定表 121
4.4.6 详细设计工具的比较 123
4.5 本章小结 124
习题 124
第5章 软件实现 127
5.1 软件实现的任务 127
5.2 程序设计语言 128
5.2.1 程序设计语言的分类 128
5.2.2 程序设计语言的特性 129
5.2.3 选择程序设计语言 130
5.3 程序设计风格 131
5.3.1 程序编排和组织的准则 132
5.3.2 程序设计的效率 136
5.4 软件重用 138
5.5 代码评审 139
5.6 本章小结 142
习题 143
第6章 软件测试 146
6.1 软件测试基础 146
6.1.1 软件测试概念 146
6.1.2 软件测试过程模型 147
6.1.3 软件测试原则 149
6.1.4 软件测试在软件开发各阶段的工作流程 151
6.1.5 软件测试信息流 153
6.1.6 软件测试技术分类 153
6.2 白盒测试 155
6.2.1 逻辑覆盖 155
6.2.2 循环测试 158
6.2.3 路径测试 160
6.3 黑盒测试 163
6.3.1 等价类划分 164
6.3.2 边界值分析 165
6.3.3 错误推测法 166
6.3.4 因果图法 167
6.4 白盒测试和黑盒测试的比较 169
6.4.1 应用角度的不同 169
6.4.2 白盒测试的优点与不足 170
6.4.3 黑盒测试的优点与不足 170
6.5 软件测试策略 170
6.5.1 单元测试 171
6.5.2 集成测试 173
6.5.3 确认测试 177
6.5.4 系统测试 178
6.6 调试 180
6.6.1 软件调试过程 180
6.6.2 软件调试方法 181
6.7 持续集成 182
6.7.1 持续集成的概念 182
6.7.2 持续集成的原则 183
6.8 软件测试报告 184
6.8.1 软件测试说明 184
6.8.2 软件测试报告 185
6.9 本章小结 186
习题 187
第7章 统一建模语言UML 190
7.1 UML的发展 190
7.1.1 UML的产生 190
7.1.2 UML的构成 191
7.1.3 UML的特点 192
7.2 面向对象基础 192
7.2.1 面向对象的基本概念 192
7.2.2 共享 198
7.3 UML视图 198
7.4 UML的图和模型元素 200
7.4.1 用例图 200
7.4.2 类图 202
7.4.3 包图 203
7.4.4 状态图 204
7.4.5 活动图 204
7.4.6 顺序图 206
7.4.7 协作图 206
7.4.8 构件图 207
7.4.9 配置图 208
7.5 UML的关系 209
7.5.1 关联关系 209
7.5.2 泛化关系 211
7.5.3 依赖关系 215
7.5.4 实现关系 216
7.6 UML的通用机制 216
7.6.1 修饰 217
7.6.2 注释 217
7.6.3 规格说明 217
7.6.4 扩展机制 217
7.7 基于UML的软件过程 219
7.8 本章小结 221
习题 222
第8章 面向对象分析 224
8.1 面向对象分析概述 224
8.1.1 传统软件过程中的不足 224
8.1.2 面向对象的特点 225
8.1.3 面向对象分析的基本过程 226
8.1.4 面向对象分析的3类模型 226
8.1.5 静态模型的5个层次 227
8.2 建立功能模型(用例模型) 228
8.2.1 识别参与者 229
8.2.2 识别用例 229
8.2.3 识别用例间关系 231
8.2.4 识别用例间行为 231
8.2.5 用例描述文档 233
8.3 建立静态模型(对象模型) 234
8.3.1 识别类与对象 234
8.3.2 划分主题 236
8.3.3 确定结构 237
8.3.4 确定属性 238
8.3.5 确定服务 238
8.3.6 类图描述文档 239
8.3.7 包图描述文档 240
8.4 建立动态模型 241
8.4.1 建立顺序图及其描述文档 241
8.4.2 建立状态图及其描述文档 243
8.4.3 建立协作图及其描述文档 244
8.4.4 建立活动图及其描述文档 245
8.5 “会议中心系统”的面向对象分析案例研究 246
8.5.1 建立功能模型——用例分析 247
8.5.2 建立静态模型——5层结构 247
8.5.3 建立动态模型——交互行为 250
8.6 本章小结 251
习题 251
第9章 面向对象设计 254
9.1 面向对象设计概述 254
9.1.1 面向对象分析与设计的关系 254
9.1.2 面向对象设计原则 255
9.2 精化类及类间关系 256
9.2.1 设计类的属性 256
9.2.2 设计类的方法 257
9.2.3 设计类间泛化关系 257
9.2.4 优化设计 259
9.3 数据设计 261
9.3.1 基于关系数据库的数据设计 261
9.3.2 基于其他方式的数据设计 264
9.4 人机交互设计 264
9.5 建立实现模型 265
9.5.1 构件图及其描述文档 265
9.5.2 配置图及其描述文档 267
9.6 设计模式简介 268
9.6.1 概述 268
9.6.2 Singleton模式 269
9.6.3 Abstract Factory模式 271
9.6.4 Mediator模式 272
9.6.5 Adapter模式 275
9.6.6 Iterator模式 277
9.6.7 State模式 279
9.7 面向对象的测试 281
9.7.1 面向对象测试概述 281
9.7.2 面向对象的类测试 282
9.7.3 基于过程的面向对象单元测试 287
9.8 本章小结 288
习题 289
第10章 软件维护 292
10.1 软件维护概述 292
10.1.1 软件维护的任务 292
10.1.2 软件维护的特点 293
10.1.3 软件维护的分类 293
10.2 软件维护过程 294
10.2.1 软件维护方式 295
10.2.2 软件维护管理的基本内容 296
10.2.3 维护中存在的问题 301
10.2.4 维护活动记录 302
10.3 软件的可维护性 302
10.3.1 可维护性因素 302
10.3.2 提高软件的可维护性 303
10.4 逆向工程 306
10.5 软件维护评审 307
10.5.1 软件维护规格说明文档 307
10.5.2 软件维护评审 310
10.6 本章小结 311
习题 312
第11章 软件项目管理 314
11.1 软件项目管理概述 314
11.1.1 软件项目管理的特点和内容 314
11.1.2 软件项目管理目标 315
11.1.3 软件项目管理的4P观点 316
11.2 软件项目规模度量 317
11.2.1 代码行技术 318
11.2.2 功能点计算 319
11.2.3 代码行与功能点间的转换 322
11.3 软件项目估算 322
11.3.1 代码行和功能点的其他估算模型 323
11.3.2 专家估算模型 323
11.3.3 Putnam模型 324
11.3.4 COCOMO模型 324
11.3.5 项目估算模型的小结 326
11.4 项目进度管理 327
11.4.1 项目进度控制 327
11.4.2 甘特图 328
11.4.3 工程网络图 329
11.5 项目风险管理 331
11.5.1 软件风险概念 331
11.5.2 风险管理过程 331
11.6 项目质量管理 335
11.6.1 软件质量因素 335
11.6.2 软件质量保证活动 339
11.6.3 软件质量保证计划 340
11.7 软件配置管理 341
11.7.1 软件配置项 342
11.7.2 配置管理过程 342
11.7.3 软件配置管理计划 345
11.8 项目人员组织管理 346
11.8.1 团队组织 347
11.8.2 团队组织方式 347
11.9 软件能力成熟度模型 349
11.9.1 基本概念 349
11.9.2 软件能力成熟度模型等级 350
11.9.3 关键过程域 351
11.10 本章小结 352
习题 353
参考文献 356
X
软件工程基础(第4版)
XVII
目录
|
內容試閱:
|
本书自2012年6月第1版出版发行起,至今已出版发行了3版,且已被全国多所高校选作教材用书,同时也被多所高校选为研究生入学考试参考用书,均取得了良好效果。随着软件工程学科的发展,软件技术在不断更新,软件过程也在不停演化。作者运用近年来从事“软件工程基础”课程和“软件工程综合训练”实训课的教学内容,结合软件开发的实践经验,在延续 第?3版书整体结构和篇幅基本不变的前提下,对内容做了以下修正和补充。
(1)在国家课程思政背景下,结合教书育人的目标,本书体现三个方面的功能:思想性、知识性、能力性。通过对实际项目的分析,将知识点有效组织和连接,并把思政贯穿软件生命周期的全过程,真正起到学习兼育人的作用。
(2)修改了第3版中的错误,更加规范和完善了相关的图、表,对文字叙述进行了进一步的加工和润色。
(3)根据软件工程学科发展和新技术的提出,以及项目实际应用,删除了部分使用较少的内容。新增及补充部分内容,如软件的本质、SCRUM、需求分析方法、系统持续集成、识别用例间行为等。
(4)在修改部分章习题的同时,紧跟时代发展和应用需求,新增部分综合练习,目的是让读者更好地在实践中应用软件工程的基本原理、方法和 工具。
计算机专业的学生及相关技术人员大多重技术而轻文档编写。然而,在近年来广受关注的敏捷过程的实施和实践应用中,有效的文档编写和文档管理仍显示出软件生命周期的价值和在确保软件质量上的强大生命力。因此,本书第4版希望通过介绍软件工程各阶段所要编写的文档框架,来强调文档对软件工程过程实施、软件质量管理的重要性。
前言的最后给出本书的结构图,希望能帮助读者更好地学习软件工程。
本书结构图给读者提供了两类不同的学习路径。
学习路径一:以两条不同的设计思想为主线,按照前后顺序进行学习。全书先基于结构化程序设计思想,介绍软件工程的基本理论、方法、过程与工具,让读者全面了解和掌握软件工程生命周期各阶段的任务、过程、技术、文档等知识体系。之后基于面向对象程序设计思想,依托统一建模语言UML,深入理解和掌握面向对象的基本概念、封装性、继承性和多态性,完成面向对象软件工程的分析、设计、实现的软件生命周期全过程。
学习路径二:以两条不同的设计思想为主线,按照结构图中虚线所连接的各章对照展开学习。这样的学习思路,是将软件工程生命周期各阶段,按照结构化程序设计思想与面向对象程序设计思想进行对比学习,便于读者对于项目的同一阶段应采用何种方法实施能产生同步比较。
两种学习路径都涵盖了软件工程各阶段知识点,强调基本原理、方法与技术。两种路径均以实例为主线,把分散的知识点串联起来,在注重理论与实践相结合的同时,强化学习实效。同时,读者通过对两类不同设计思想的学习,对比各自软件过程中的原理与方法,自我分析和总结它们各自的优缺点,能更深入理解软件工程原理与过程,从而理解不同软件设计思想及开发方法对软件分析、实现和维护的影响,以及对软件质量和项目管理的推动作用。
编者向使用本书进行教学的教师和同学,以及对本书提出建议和意见的教师、学生及读者表示诚挚的谢意。由于编者水平有限,疏漏、欠妥、谬误之处在所难免,恳请读者指正。
本书配套的教学资源包括教学大纲、教学PPT、习题答案和在线题库,服务支持联系QQ:381844463。
??????????????????????编 者
于北京理工大学
2023年1月
本书第2版自2015年6月出版以来,被众多高校选作教材,还作为研究生入学考试的参考书,取得了良好的效果。根据作者近年来从事“软件工程基础”“软件工程综合训练”的教学,并结合软件开发的实践经验,在保持原书结构和篇幅基本不变的前提下,对第2版的内容做了以下修正和 补充:
(1)修改了第2版中出现的错误,更加规范和完善相关的图、表,对文字叙述做了进一步的加工和润色。
(2)根据软件工程的发展,以及项目实际的应用,删除了部分使用较少的内容,包括4GT过程模型、基于构建的开发模型、统一建模过程、Worrior图、管道过滤器模型、面向数据的设计方法、Jackson图等内容。新增部分内容,包括渐进交付的迭代模型、软件过程模型的比较、强调数据字典的作用、面向对象的分析过程、基于过程的面向对象集成测试、软件维护评审等内容,以反映软件工程的最新发展。
(3)新增了部分章节后的习题,目的是让读者更好地在实践中掌握基础理论。
鉴于技术人员专注技术而轻文档编写的实际情况,即使敏捷过程、极限编程等近年来广泛受到关注,也有一定程度的应用与实践,但有效的文档和管理在软件生命周期中仍有较高价值与强大的生命力。因此,本书第3版仍希望通过介绍软件工程各阶段的文档框架编写,来强化文档对软件工程实施的重要性。
下面给出本书的结构图,希望能给读者更好地学习提供帮助。
在全书的结构图中,有两类不同的学习路径:
一是按照本书的章节顺序进行学习。先以结构化程序设计为主,介绍软件工程的基本理论、方法、过程与工具;然后以面向对象为主,借助UML统一建模语言,完成对面向对象基本概念、封装性、继承性和多态性的理解,学习面向对象分析与设计的过程。
二是按照结构图中虚线对应的章节进行学习。这样的学习思路,是将软件工程生命周期的各阶段,按照结构化方法和面向对象方法相对比同时进 行。这样的学习路径,便于用户在同一阶段、对同一项目采用何种方法进行分析与设计产生同步比较。
无论使用哪种学习路径进行学习,读者通过对两类设计思想的不同及软件过程的比较,不仅能分析和总结它们各自的优缺点,还能更深入理解相同的软件工程过程结合不同的软件设计思想,对软件分析、实现和维护的影响,对软件质量和管理发展的推动。
由于作者水平有限,疏漏、欠妥、谬误之处在所难免,恳请读者指正。
??????????????????????作 者
于北京理工大学
2019年1月
本书第1版自2012年7月出版以来,作为各类学生授课的教材、不同读者的参考书,以及一些高校用书,取得了良好效果。然而,随着软件工程的发展,为更好地服务于读者,编者对原书内容做了认真修改,编写第 2版。
根据作者近年来从事“软件工程”课程教学和软件开发的实践经验,在保持原书结构和篇幅基本不变的前提下,第2版主要做了以下修正和补充:
(1)修改了第1版中出现的错误,更加规范和完善相关的图、表,对文字叙述做了进一步的加工和润色。
(2)增加软件工程中较重要的内容。增加的内容包括:基于构件的开发模型,Rational统一建模过程,可行性研究及系统流程图,需求验证,管道与过滤器模型,软件设计验证,集成测试案例,确认测试案例。
(3)作者认为软件工程基础应该注重基础理论与实践相结合的理念,因而增加了每章后的习题,特别是增加了实际分析、设计习题,让读者更好地在实践中掌握基础理论。
鉴于技术人员专注技术而轻文档编写的实际情况,本书第2版仍希望 通过介绍软件工程各阶段的编写文档框架,来强调文档对软件工程实施的 重要性。本书各章节的安排,是按照以结构化设计思想为基础,全面介绍软件工程过程各阶段的过程、方法和工具,让读者对软件工程的实施有一个完整、清晰的认识。之后,再以面向对象设计思想为指导,详细介绍基于面向对象的软件工程开发过程。
下面给出本书的结构图,希望能给读者更好地学习提供帮助。
建议学习过程:
(1)第1章通过对软件、软件生命周期和软件过程模型的介绍,让读者对软件工程的基本原理、方法、过程有一个基本认识。该章是全书的导论。
(2)第2~6章以结构化方法为依托,按照软件工程生命周期过程模型的需求分析、概要设计、详细设计、编码和测试等阶段,全面介绍各阶段涉及的过程、方法和工具,让读者对结构化软件工程的实施有一个完整、清晰的认识。
(3)第7~9章以面向对象方法为依托,详细介绍基于UML的软件工程,包括面向对象分析、面向对象设计、设计模式、数据设计和测试,使得读者对面向对象软件工程的实施有一个完整、清晰的认识。通过对这两种
方法学的比较,洞悉它们各自的优劣,从而更好地掌握和灵活应用。
(4)第10章介绍作为软件工程最后一个阶段的软件维护的内容和过程,以及如何提高软件的可维护性,实现软件再工程。
(5)第11章介绍有关软件项目管理的基本要求和内容。该章应该贯穿于整个学习过程中,或置于最初进行学习也可行。只有通过合理的软件项目管理这一平台,才能按时、保质、保量地完成满足用户需求的、高质量的、高可靠性的软件产品。
(6)最后通过软件工程综合训练,配合一定的项目开发过程,真正把所学、所掌握的知识融入实际项目中去。
按照这样的学习过程,读者通过对两类设计思想的不同以及软件过程的比较,不仅能分析和总结它们各自的优缺点,还能更深入理解相同的软件工程过程结合不同的软件设计思想,对软件分析、实现和维护的影响,对软件质量和管理发展的推动。
由于作者水平有限,疏漏、不妥、错误之处在所难免,恳请读者指正。
??????????????????????作 者
于北京理工大学
2015年1月
软件是信息化的核心之一,软件产业展现国家科技发展的核心竞争力,体现国家的综合实力。随着计算机应用的不断普及,互联网应用的不断深入和网络技术的不断发展,使软件系统的规模和复杂度不断增加,如何确保开发出符合用户预期的、质量有保证的软件系统仍然面临巨大挑战,软件危机的障碍仍阻碍软件的发展。
作为计算机科学技术的一个重要分支——软件工程学,成为研究软件需求、开发、维护、管理的普遍原理和技术相结合的、活跃的研究领域。随着软件工程的迅猛发展,新技术、新方法、新工具不断涌现,为读者学习和研究这门学科创造了良好的基础和难得的机遇。
作为软件工程学的入门介绍,本书立足于基本的原理、概念、方法和工具,从实用的角度讲解软件系统需求、设计、实现、测试、维护和管理的内容,同时兼顾对软件工程过程介绍的全面性和系统性。
本书根据作者多年从事“软件工程”课程教学和软件开发的实践经验,在介绍相关理论和过程的基础上,着重讲解软件工程在实践中的方法、技术和工具。本书的特点体现在:
(1)减少软件工程理论的阐述,避免对不同过程和方法的学术讨论。
(2)介绍软件工程理论的基本概念和过程,它们对软件过程实践起着 基石和指导作用。
(3)每章最后对各章的主要内容进行总结,便于读者理解和掌握主要 内容。
(4)鉴于技术人员专注技术而轻文档编写的实际情况,书中介绍了软 件工程各阶段需要编写的文档框架,并通过实例不断强调文档对实施软件工程的重要性。
(5)本书中的主要案例都来自于作者的研究和实际工程项目,让读者 深切感受到书中介绍的理论是如何指导实践的。
本书各章节的安排,是以结构化设计思想为基础,全面介绍软件工程过程各阶段的过程、方法和工具,让读者对软件工程的实施有一个完整、清晰的认识;之后,再以面向对象设计思想为指导,详细介绍基于面向对象的软件工程开发过程。这样编排的目的,是使读者通过对两类设计思想的不同以及软件过程的比较,不仅能分析它们各自的优缺点,还能更深入理解相同的软件工程过程结合不同的软件设计思想,对软件分析、实现和维护的影响,
对软件质量和管理发展的推动。
下面简要介绍本书各章节的概貌,让读者对本书内容有一个提纲挈领的了解。
第1章回顾了软件危机的产生,介绍软件工程的产生和发展,包括软件工程的基本概念、目标和实施原则。通过对软件、软件生命周期和软件过程模型的介绍,让读者对软件工程的基本原理、方法、过程有一个基本认识。
第2章介绍软件需求工程的基本概念、任务和原则,并详细说明结构化分析和建模过程,包括面向数据的数据建模、面向数据流的功能建模和面向状态的行为建模。
第3章介绍软件设计的基本概念、任务和原则,以及目前主流的软件体系结构设计模型,它们分别是以数据为中心的数据仓库模型、客户端/服务器模式的分布式结构模型和层次模型。
第4章从应用角度出发,详细描述了结构化设计的两类设计方法:面向数据流的设计方法和面向数据结构的设计方法,及其它们的设计过程。
第5章从软件工程范畴讨论程序实现和编码,包括程序设计语言的分类、特性、准则及程序编写规范等。
第6章介绍进行软件测试的对象和测试技术。软件测试对象不仅包括源码,还包括设计方案、需求说明等软件工程文档。测试技术主要介绍白盒测试和黑盒测试。
第7章介绍面向对象软件工程的建模基础。UML通过图形化的表示机制,为面向对象分析和设计提供统一的、标准化的视图、图、模型元素和通用机制,以刻画面向对象方法。
第8章介绍面向对象分析的建模过程。面向对象分析模型主要由3种独立模型构成:功能模型、静态模型和动态模型。该章详细说明作为建模基础的静态模型的5个层次。
第9章介绍把面向对象分析阶段得到的需求模型转换为符合用户功能、性能,便于与某种面向对象程序设计语言编程的系统实现方案。
第10章介绍作为软件工程最后一个阶段的软件维护的内容和过程,以及如何提高软件的可维护性和实现软件再工程。
第11章介绍有关软件项目管理的基本要求和内容。通过对软件项目的估算、项目进度管理、风险管理、质量管理、配置管理等内容的介绍,明确只有对软件工程实行全过程的计划、组织和控制等一系列活动,才能得到符合用户需求的、高质量且高可靠性的软件产品。
由于作者水平有限,疏漏、欠妥、谬误之处在所难免,恳请读者指正。
??????????????????????作 者
于北京理工大学
2012年1月
|
|