本书是在北京大学计算机科学技术系使用的《软件工程》(第三版)教材的基础上,结合IEEE最新发布的软件工程知识体系(Software Engineering Body of Knowledge,SWEBOK)和IEEE/ACM软件工程学科小组公布的软件工程教育知识体系(Software Engineering Education Knowledge,SEEK),由北京大学软件工程课程的主讲教师编写而成的。
在教材内容的选取方面,本书遵循以下两条原则:
一是选取的内容能够有助于提高读者求解软件的能力,特别是提高读者直接参与软件开发实践和工程管理的能力;
二是选取的内容基本上是基础性的,是比较“稳定”的,尽量介绍软件工程相关的国际标准,尽量讲解成熟技术。
在教材内容的组织方面,依据内容选取的基本原则,基于对软件开发本质的认识,紧紧围绕软件开发,主要讲解了软件工程的两大技术问题,一是开发逻辑,二是开发途径。其中,开发逻辑涉及软件生存周期过程、工程中常用的软件生存周期模型(有关过程、活动和任务的组织框架),以及项目软件生存周期的规划与监控;开发途径涉及结构化方法和面向对象方法,以及支持软件评估所需要的软件测试技术等。并且简单介绍作用于开发活动上的一些管理活动,其中重点介绍支持管理活动的一些基础性技术,例如规模、成本、进度估算等。
本书既可作为全国高等教育自学考试的教材,也可作为软件从业人员的参考书。
组编前言
编者的话
软件工程自学考试大纲
第1章绪论13
11软件工程概念的提出与发展15
12软件开发的本质16
13本章小结19
14习题19
第2章软件需求与软件需求
规约21
21需求与需求获取23
211需求定义23
212需求分类23
213需求发现技术26
22需求规约28
221需求规约定义28
222需求规约(草案)格式28
223需求规约(规格说明书)的
表达29
224需求规约的作用30
23本章小结31
24习题32
第3章结构化方法33
31结构化需求分析35
311基本术语36
312系统功能模型表示37
313建模过程38
314应用中注意的问题43
315需求验证44
32结构化设计45
321总体设计45
322详细设计62
33本章小结68
34习题70
第4章面向对象方法——UML73
41UML术语表77
411表达客观事物的术语77
412表达关系的术语89
413表达组合信息的术语
——包99
42UML的模型表达格式101
43本章小结116
44习题118
第5章面向对象方法——RUP121
51RUP的特点123
52核心工作流126
521需求获取127
522需求分析133
523设计147
524RUP的实现和测试167
53本章小结168
54习题171
第6章软件测试173
61软件测试目标与软件测试过程
模型175
611软件测试目标175
612软件测试过程模型176
62软件测试技术177
621路径测试技术177
622基于事务流的测试技术183
623其他功能测试技术简述186
63软件测试步骤190
631单元测试191
632集成测试191
633有效性测试192
64本章小结194
65习题194
第7章软件生存周期过程与管理197
71软件生存周期过程概述199
711引言199
712《ISO/IEC系统与软件工程—软
件生存周期过程12207—2008》
标准简介206
72过程描述210
73应用说明217
74软件生存周期模型221
741引言221
742瀑布模型221
743增量模型224
744演化模型225
745螺旋模型226
746喷泉模型227
75过程规划与管理228
751关于过程建立228
752关于软件生存周期过程的
监控232
76本章小结234
77习题234
第8章集成化能力成熟度
模型(CMMI)237
81背景与原理239
82CMMI的模型部件241
83CMMI的等级244
831能力等级244
832组织成熟度等级257
84过程域举例261
841项目规划261
842需求开发274
85本章小结282
86习题285
参考文献286