图书目录

第1部分软件工程概述

第1章认识软件工程3

1.1软件3

1.1.1软件的定义3

1.1.2软件的特点3

1.1.3软件的分类5

1.2软件危机催生软件工程7

1.2.1什么是软件危机7

1.2.2软件危机的主要表现7

1.2.3产生软件危机的原因8

1.3理解软件工程的定义及概念9

1.3.1软件工程的定义9

1.3.2理解软件工程的概念10

1.4软件工程方法学11

1.4.1传统方法学11

1.4.2面向对象方法学12

1.5软件工程层次13

习题113

第2章软件过程15

2.1软件过程概念15

2.1.1什么是软件过程15

2.1.2过程框架15

2.1.3软件生命周期17

2.1.4通用过程框架19

2.1.5过程模型19

2.2瀑布模型20

2.3增量模型21

2.4演化过程模型22

2.4.1快速原型模型22

2.4.2螺旋模型24

2.5统一过程25软件工程: 方法与实践目录2.6敏捷过程28

2.6.1XP30

2.6.2Scrum32

2.6.3XP与Scrum比较37

2.6.4敏捷过程与瀑布模型比较37

2.7能力成熟度模型38

习题239

第3章软件工程原则41

3.1抽象41

3.2逐步求精41

3.3模块化42

3.4信息隐藏43

3.5模块独立43

3.6重构46

3.7模式46

3.8模式与框架49

3.9案例描述49

3.9.1收文办理系统的描述49

3.9.2怎样编写系统描述51

习题351

第2部分结构化方法

第4章可行性分析55

4.1可行性分析的目的和任务55

4.2可行性分析的过程55

4.3可行性分析的方法或工具58

4.3.1系统流程图58

4.3.2数据流图59

4.3.3成本/效益分析68

4.3.4系统流程图与数据流图比较71

4.3.5数据字典72

4.4可行性分析报告74

习题482

第5章需求分析85

5.1定义需求85

5.2需求分析的过程87

5.3获取需求87

5.4分析与建模89

5.4.1建立功能模型89

5.4.2建立数据模型90

5.4.3建立行为模型95

5.5将需求文档化97

5.6需求验证97

5.7需求规格说明102

习题5110

第6章总体设计112

6.1任务112

6.2方法和原则112

6.3设计软件结构的工具113

6.4软件结构设计114

6.4.1变换分析117

6.4.2事务分析118

6.5数据库逻辑结构设计119

6.5.1关系模型的几个术语119

6.5.2概念模型转换为关系模型120

6.6总体设计说明122

习题6133

第7章详细设计135

7.1任务135

7.2方法136

7.3工具137

7.3.1程序流程图137

7.3.2NS图138

7.3.3PAD图140

7.3.4PDL141

7.4程序复杂性度量141

7.4.1代码行度量法142

7.4.2McCabe度量法142

7.5详细设计说明144

习题7154

第8章软件实现156

8.1编码规范156

8.2编程语言158

8.3效率159

8.4数据库实现160

8.5案例实现161

8.5.1选择数据库接口161

8.5.2ODBC应用程序基本步骤162

8.5.3建立ODBC数据源170

8.5.4创建数据库代码174

8.5.5选择编程语言和开发环境175

8.5.6软件测试计划177

8.5.7软件用户手册182

习题8190

第9章软件测试192

9.1软件测试概述192

9.2测试序表194

9.3测试信息流195

9.4黑盒测试196

9.5白盒测试197

9.6单元测试200

9.7集成测试202

9.8确认测试205

9.9调试206

9.10软件测试报告208

习题9212

第10章软件维护214

10.1软件维护分类214

10.2软件维护过程215

10.3修改程序217

10.4影响维护工作量的因素219

10.5软件的可维护性220

10.6软件再工程221

习题10222

第3部分面向对象方法

第11章面向对象基础227

11.1面向对象的基本观点227

11.2面向对象的主要概念227

11.2.1对象227

11.2.2类228

11.2.3封装228

11.2.4继承228

11.2.5多态性229

11.2.6消息229

11.2.7结构与连接230

11.3典型的面向对象开发方法231

11.3.1OOA/OOD231

11.3.2Booch方法233

11.3.3对象建模技术234

11.3.4面向对象软件工程234

11.3.5方法比较236

习题11236

第12章UML238

12.1UML概况238

12.1.1UML的组成238

12.1.2UML的功能239

12.2模型元素239

12.2.1活动者240

12.2.2用例240

12.2.3类240

12.2.4对象242

12.2.5消息242

12.2.6接口242

12.2.7包243

12.2.8组件243

12.2.9状态244

12.2.10活动244

12.2.11节点245

12.2.12关联245

12.2.13泛化248

12.2.14依赖249

12.3扩展机制249

12.3.1构造型250

12.3.2标记值250

12.3.3约束250

12.4图251

12.4.1用例图251

12.4.2类图251

12.4.3对象图252

12.4.4序列图253

12.4.5协作图253

12.4.6状态图254

12.4.7活动图255

12.4.8组件图257

12.4.9配置图258

12.5视图259

习题12260

第13章面向对象建模262

13.1功能模型262

13.1.1识别活动者262

13.1.2识别用例263

13.1.3画出用例图264

13.1.4用例描述264

13.2对象模型266

13.2.1识别类266

13.2.2识别类之间的关联269

13.2.3画出类图269

13.2.4识别类的属性269

13.2.5识别类的操作271

13.3动态模型271

13.3.1选择方法271

13.3.2补充新类272

13.3.3设计序列图272

13.43种模型之间的关系276

习题13276

第14章案例开发278

14.1定义软件过程278

14.2关于文档279

14.3版本管理280

14.4创建产品Backlog281

14.5迭代1284

14.5.1Sprint计划会议284

14.5.2策划285

14.5.3软件需求规格说明286

14.5.4设计290

14.5.5软件设计说明292

14.5.6编码295

14.5.7测试300

14.5.8测试用例集300

14.6迭代2302

14.6.1开发过程302

14.6.2文档305

14.7迭代3311

14.7.1开发过程311

14.7.2文档313

习题14319

习题参考答案320

附录动态模型333

参考文献335