《软件工程与实践》PDF下载

  • 购买积分:11 如何计算积分?
  • 作  者:杨文元编著
  • 出 版 社:厦门:厦门大学出版社
  • 出版年份:2005
  • ISBN:756152384X
  • 页数:275 页
图书介绍:本书为高职高专计算机专业系列教材之一。全书分为四部分:第一部分是传统软件工程的基本知识;第二部分是面向对象内容,有面向对象的分析设计和实现、统一开发过程和统一建模语言UML以及用UML构建Web应用等内容;第三部分是软件项目管理,包括软件开发项目的管理和度量方法、软件项目维护、软件的质量保证以及极限编程方法等内容;第四部分是软件开发工具和软件工程实践,介绍UML实现工具Rational Rose的使用、软件分析设计工具PowerDesigner的使用以及用UML,设计图书馆图书借阅和预定管理的应用程序等,可供实践实训教学使用。

第一篇 传统软件设计技术 3

第1章 软件工程概述 3

1.1软件的概念及其特点 3

1.1.1软件的定义 3

1.1.2软件的分类 4

1.1.3软件的特点 4

1.2软件工程 5

1.2.1软件危机的表现及产生的原因 5

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程序设计方法 12

1.4.2软件开发方法 13

复习思考题 15

第2章 可行性分析和软件项目开发计划 16

2.1可行性分析的任务和步骤 16

2.1.1可行性分析的任务 16

2.1.2可行性分析的步骤 17

2.2成本/效益分析 18

2.2.1成本估计方法 19

2.2.2费用估算 20

2.2.3几种度量效益的方法 21

2.3软件项目开发计划 22

2.4软件计划进度安排 23

2.4.1项目计划与里程碑 23

2.4.2项目计划安排技巧 24

复习思考题 25

第3章 软件需求分析 27

3.1需求分析概述 27

3.1.1需求分析的任务 27

3.1.2需求分析的过程 28

3.1.3需求分析的困难性 28

3.1.4需求的目的 29

3.2结构化分析方法和工具 30

3.2.1结构化分析概述 31

3.2.2数据流图 31

3.2.3数据词典 34

3.2.4加工逻辑描述工具 35

3.3原型化方法 37

3.3.1软件原型的分类 37

3.3.2快速原型开发模型 37

复习思考题 39

第4章 软件设计 40

4.1总体设计概述 40

4.1.1总体设计原则 41

4.1.2总体设计过程 42

4.1.3总体设计的图形工具 42

4.2软件设计 43

4.2.1模块化 43

4.2.2抽象 45

4.2.3信息隐藏 45

4.2.4模块独立性 45

4.2.5模块的深度、宽度、扇出和扇入 48

4.3详细设计 49

4.3.1详细设计概述 49

4.3.2结构化程序设计 50

4.4详细设计工具 51

4.4.1程序流程图 51

4.4.2盒图(N-S图) 52

4.4.3 PAD (problem analysis diagram)图 52

4.4.4过程设计语言PDL (program design language) 53

4.5面向数据结构的设计方法 54

4.5.1 Jackson图 54

4.5.2 Jackson程序设计方法 55

复习思考题 57

第5章 程序编码与软件测试 59

5.1程序设计语言 59

5.1.1语言的分类和特点 59

5.1.2常用开发语言的评价 61

5.1.3开发语言的选择 62

5.2程序编写规范 63

5.2.1编码风格 63

5.2.2结构化编码 64

5.2.3程序清晰性 64

5.2.4变量和表达式 65

5.2.5输入和输出 65

5.2.6程序效率 65

5.2.7程序注释 66

5.2.8成熟技术的使用与“创新” 66

5.3程序员的修养 67

5.3.1程序员的素质 67

5.3.2编程修养 67

5.4软件测试概述 68

5.4.1软件测试及其发展 68

5.4.2软件测试角色 69

5.5软件测试的方法 70

5.5.1 bug和bug跟踪 70

5.5.2测试的分类 70

5.6软件测试用例的设计 73

5.6.1测试用例文档 73

5.6.2白盒测试和黑盒测试 73

复习思考题 75

第二篇 面向对象分析设计方法 79

第6章 面向对象方法 79

6.1面向对象的概述 79

6.1.1面向对象的发展历史和动因 79

6.1.2面向对象的概念 81

6.2面向对象的软件工程 83

6.2.1面向对象的分析 84

6.2.2面向对象的设计 86

6.2.3面向对象的实现 91

6.3面向对象的建模方法 92

6.3.1 Booch方法 92

6.3.2 Rumbaugh的OMT方法 93

6.3.3 Coad/Yourdon方法 94

6.3.4 Jacobson方法 94

复习思考题 95

第7章 软件开发的统一过程UP 96

7.1统一过程UP 96

7.1.1 UP的概念 96

7.1.2 UP和Rational统一过程RUP 97

7.1.3为项目实例化UP 98

7.2统一过程的开发方法 98

7.2.1用例驱动和风险驱动 98

7.2.2以体系结构为中心 99

7.2.3 UP是迭代和增量过程 99

7.2.4 UP结构 101

7.2.5 UP阶段 102

复习思考题 104

第8章 统一建模语言UML简介 105

8.1 UML概述 105

8.1.1 UML简介 105

8.1.2 UML历史 106

8.2 UML语言基础 108

8.2.1 UML语言描述 108

8.2.2元素关系 109

8.3 UML的静态建模 110

8.3.1用例图 110

8.3.2类图、对象图和包 112

8.3.3构件图和配置图 117

8.4动态建模 118

8.4.1消息 118

8.4.2状态图 118

8.4.3顺序图 119

8.4.4合作图 121

8.4.5活动图 121

8.4.6四种图的运用 122

8.5使用UML的过程 122

8.5.1 UML过程的基础 123

8.5.2面向对象方法的一般过程 123

8.5.3 Rational Objecto过程 126

复习思考题 127

第9章用UML构建Web应用 128

9.1 Web应用概述 128

9.1.1 Web工程过程 128

9.1.2 Web开发团队 129

9.2 UML构建数字商店 130

9.2.1概况 130

9.2.2需求和特性 131

9.2.3软件构架文档 131

复习思考题 139

第三篇 软件开发的项目管理 143

第10章 软件开发的项目管理 143

10.1软件项目管理概述 143

10.1.1项目管理中的均衡三角形 143

10.1.2项目均衡 144

10.2软件开发团队 144

10.2.1开发团队构成 145

10.2.2如何组织软件开发团队 147

10.2.3项目经理素质要求 149

10.3项目的开发规范 150

10.3.1软件工程的标准 150

10.3.2标准化的意义 150

10.4软件项目管理的成功原则 151

10.4.1平衡原则 151

10.4.2高效原则 151

10.4.3分解原则 151

10.4.4实时控制原则 152

10.4.5分类管理原则 152

10.4.6简单有效原则 152

10.4.7规模控制原则 152

10.5微软公司的开发管理和演变 153

复习思考题 153

第11章 软件过程和项目的度量方法 154

11.1软件过程的度量 154

11.1.1过程度量 154

11.1.2软件过程的改善 155

11.2软件项目的度量概述 156

11.3软件项目的度量方法 156

11.3.1面向规模的度量 157

11.3.2面向功能的度量 158

11.3.3软件质量的度量 160

11.4风险分析和管理 161

11.4.1被动和主动的风险策略 162

11.4.2软件风险 162

11.4.3软件风险的估计 163

11.4.4风险的监控管理 163

复习思考题 164

第12章 软件的质量保证 165

12.1软件质量保证概述 165

12.1.1软件质量保证的概念和任务 165

12.1.2质量保证和检验 165

12.1.3软件的质量成本 166

12.2软件质量保证体系与实施 167

12.2.1软件质量保证体系 167

12.2.2软件质量保证的实施 168

12.3软件配置管理 169

12.3.1软件配置项管理 169

12.3.2软件配置管理的过程和任务 170

12.4软件工程标准化 171

12.4.1软件工程标准的制定 171

12.4.2软件工程标准的层次 172

12.4.3我国标准 173

12.5软件过程能力评估的CMM模型 174

12.5.1软件机构的过程成熟度模型CMM 175

12.5.2 CMM的评估 175

12.5.3国内IT企业采用CMM的状况 176

复习思考题 176

第13章 极限编程 177

13.1极限编程概述 177

13.1.1什么是极限编程 177

13.1.2极限编程的特点 178

13.1.3极限编程的设计原则 180

13.2极限编程方法 181

13.2.1规划策略 181

13.2.2小型发布 182

13.2.3系统比喻 182

13.2.4简化设计 182

13.2.5测试驱动 183

13.2.6重构 183

13.2.7结对编程 184

13.2.8代码全体拥有 184

13.2.9持续集成 185

13.2.10每周40小时工作制 185

13.2.11现场客户 185

13.2.12代码规范 186

13.3极限编程XP与CMM/RUP的比较 186

13.3.1 XP与CMM的比较 186

13.3.2 XP与RUP的比较 187

复习思考题 188

第14章 软件的维护与再工程 189

14.1软件的维护 189

14.1.1软件维护的概念 189

14.1.2影响软件维护工作量的因素 190

14.1.3软件维护的策略 191

14.1.4软件维护的成本 191

14.1.5软件的可维护性 192

14.1.6提高软件可维护性的方法 193

14.2软件再工程和逆向工程 196

14.2.1业务过程再工程(business process reengineer, BPR) 196

14.2.2软件再工程 197

14.2.3逆向工程 200

14.3重构 201

14.3.1代码重构 201

14.3.2数据重构 202

复习思考题 202

第四篇 软件开发工具和软件工程实践 205

实践1 Rational Rose的使用 205

1.1 Rational Rose界面 205

1.2 Rational Rose用例视图 206

1.2.1创建角色 206

1.2.2创建用例 209

1.2.3创建角色和用例之间的关联 209

1.2.4创建顺序图和合作图 211

1.3 Rational Rose逻辑视图 213

1.3.1建立类图 213

1.3.2建立包 216

1.2.3建立状态图 216

1.4 Rational Rose组件视图 217

1.5 Rational Rose生成代码框架 218

1.6新一代建模工具XDE 220

实践2 PowerDesigner的使用 221

2.1 PowerDesigner简介 221

2.1.1 PowerDesigner概述 221

2.1.2 PowerDesigner版本 222

2.1.3 PowerDesigner模块组成 222

2.1.4 PowerDesigner的4种模型文件 223

2.2 PowerDesigner的操作 224

2.2.1 PowerDesigner系统界面 224

2.2.2 PowerDesigner基本操作 225

2.2.3 PowerDesigner业务规则 228

2.2.4产生实体 229

2.2.5将CDM对象转换为PDM对象 230

2.3正向工程和逆向工程 231

2.3.1正向工程 231

2.3.2逆向工程 232

2.4生成报表 234

实践3用UML设计图书管理系统 236

3.1需求分析 236

3.2系统分析 236

3.2.1总体分析 237

3.2.2域分析 238

3.3设计 240

3.3.1体系结构设计 241

3.3.2详细设计 242

3.3.3用户界面设计 245

3.4实现 245

3.5测试和部署 246

3.6小结 246

附录 软件工程文档模板 253

参考文献 275