《软件工程 基于项目的面向对象研究方法》PDF下载

  • 购买积分:11 如何计算积分?
  • 作  者:贲可荣,何智勇著
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2009
  • ISBN:9787111266839
  • 页数:277 页
图书介绍:本书重点介绍软件工程的实际应用,理论性的概念和术语在为确保软件成功开发所必需时才予以介绍。本书把重点放在了应用于班级项目的面向对象的软件开发方法之上。本书提供一种可在15周学习时间内完成一个大软件项目的专门开发方法。

第1章 软件工程概述 1

1.1 软件及其特点 1

1.2 军用软件的作用和特点 3

1.3 软件工程的定义及内涵 4

1.4 软件开发范型要素 5

1.4.1 项目的概念化 5

1.4.2 项目表示 6

1.4.3 项目实现 7

1.5 软件工程技术简史 7

1.5.1 结构化编程 7

1.5.2 功能分解 8

1.5.3 结构化分析与设计 9

1.5.4 以数据为中心的范型 10

1.5.5 面向对象范型 10

1.5.6 面Agent范型 12

1.5.7 面向构件的范型 14

1.5.8 面向服务的软件范型 16

1.6 软件灾难故事 18

1.6.1 失效案例简介 18

1.6.2 失效原因 18

1.6.3 CONFIRM 19

1.6.4 电话和通信 20

1.6.5 阿丽亚娜5型火箭 21

1.6.6 不按工程生产软件的代价 22

1.7 为什么软件工程不是万能的 22

1.8 基于项目学习软件工程 23

1.8.1 项目的作用 23

1.8.2 分小组工作 23

1.8.3 创建项目小组 24

1.9 班组项目:功能需求 25

1.9.1 MCGame项目概况 25

1.9.2 MCGame需求规约 25

1.10 学期大作业 27

1.10.1 项目名称 27

1.10.2 项目时间框架 30

习题 30

第2章 面向对象范型概述 33

2.1 熟悉班组项目 33

2.1.1 创建非正式场景指南 33

2.1.2 非正式场景示例:用户一个时间片内的鼠标点击 34

2.2 面向对象概念化 34

2.2.1 特殊应用关系 35

2.2.2 继承 35

2.2.3 聚合/组合 36

2.2.4 其他关系 36

2.3 软件开发过程模型 36

2.3.1 瀑布模型 37

2.3.2 原型开发 38

2.3.3 增量模型 38

2.3.4 螺旋模型 39

2.3.5 敏捷软件开发过程模型 41

2.4 面向对象建模 43

2.4.1 建立模型的作用 43

2.4.2 创建优质模块 43

2.4.3 建模符号 44

2.4.4 软件工程中模型的使用 45

2.5 良好面向对象系统的属性 46

2.6 分组工作 46

2.6.1 主程序员组 47

2.6.2 召开有效的小组会议 47

习题 48

第3章 面向对象分析 50

3.1 需求分析介绍 50

3.2 需求规约 51

3.3 案例研究:工资支付系统规约 53

3.4 评价需求规约 53

3.5 细化需求规约 54

3.6 验证需求规约 58

3.7 通过开发扩展需求 59

3.8 需求分析过程 59

3.8.1 识别UCCD的类 60

3.8.2 案例分析:识别工资支付系统中的类 61

3.8.3 识别用例 62

3.8.4 案例分析:识别工资支付系统中的用例 63

3.8.5 场景开发 64

3.8.6 实例分析:工资支付系统中的样本场景 64

3.8.7 用UML对系统建模 65

3.8.8 类图 65

3.8.9 案例分析:工资支付系统的类图 66

3.8.10 用例图 69

3.8.11 案例分析:工资支付系统中的用例图 69

3.8.12 需求分析小结 70

3.9 分析班组项目 71

3.10 分组工作 72

3.11 案例:MCGame需求分析 72

3.11.1 名词列表 72

3.11.2 名词表的分析 73

3.11.3 主类列表 74

3.11.4 用例开发 74

3.11.5 场景 76

3.11.6 细化后的类列表 78

3.11.7 建模 78

习题 79

第4章 体系结构设计 81

4.1 软件体系结构 81

4.2 数据设计 82

4.2.1 体系结构级的数据设计 82

4.2.2 构件级的数据设计 83

4.2.3 对象持久化 83

4.2.4 案例分析:工资支付系统中的对象持久化 85

4.3 体系结构风格和模式 86

4.3.1 体系结构风格的简单分类 87

4.3.2 体系结构模式 89

4.4 体系结构设计 90

4.4.1 系统的环境表示 90

4.4.2 定义原始模型 91

4.4.3 将体系结构精化为构件 92

4.4.4 描述系统实例 92

4.4.5 评估可选的体系结构设计 93

4.5 进程体系结构 94

4.5.1 多节点建模 94

4.5.2 进程间通信建模 95

4.5.3 状态机 95

4.5.4 多重控制线程建模 97

4.5.5 网络资源的有效利用 97

4.5.6 案例分析:MCGame进程体系结构 97

4.6 小结 99

习题 99

第5章 用户界面设计 100

5.1 用户界面 100

5.2 用户界面分析 100

5.3 用户界面设计原则 103

5.3.1 了解用户 103

5.3.2 界面设计规则 104

5.3.3 交互样式 105

5.4 界面设计步骤 110

5.4.1 定义界面对象和动作 110

5.4.2 用户界面设计模式 110

5.4.3 设计问题 111

5.5 案例分析:工资支付系统的用户界面 113

5.6 分组工作 115

5.7 班组项目用户界面设计 116

5.8 小结 117

习题 117

第6章 类设计 119

6.1 类设计过程 119

6.1.1 类构架 120

6.1.2 案例研究:工资支付系统的类构架 120

6.1.3 系统细化 121

6.2 进一步介绍UML 122

6.2.1 类图的符号修饰 122

6.2.2 交互图 123

6.2.3 案例分析:工资支付系统交互图 123

6.2.4 协作图的创建 125

6.2.5 案例分析:工资支付系统中更多的交互图 125

6.2.6 评估设计 126

6.2.7 案例分析:工资支付系统的评估设计 126

6.2.8 对象图 127

6.2.9 案例分析:工资支付系统的对象图 127

6.2.10 对象图的创建 127

6.3 类设计阶段的目标 128

6.3.1 代码重用 128

6.3.2 案例分析:工资支付系统中的代码重用 128

6.3.3 设计良好的类与方法 129

6.3.4 数据完整性 129

6.4 类设计的验证 129

6.5 设计班组项目 130

6.6 案例分析:MCGame类设计 131

6.6.1 交互图 131

6.6.2 对象图 132

6.6.3 重用 133

6.6.4 类构架 134

6.7 案例分析:MCGame方法设计 137

6.7.1 确定方法 137

6.7.2 MCGame方法设计 138

6.7.3 创建优质方法 139

习题 140

第7章 实现 143

7.1 实现途径 143

7.1.1 “大突击”实现 144

7.1.2 自顶向下与自底向上实现 144

7.1.3 自顶向下与自底向上方法结合 146

7.1.4 实现的线程方法 147

7.2 实现计划 147

7.3 实例研究:工资支付系统的实现计划 148

7.4 编程风格 151

7.4.1 越短越简单 152

7.4.2 越简单的代码判断越少 152

7.4.3 应避免过量的嵌套逻辑 153

7.5 注释和内部文档 154

7.5.1 头注释块 154

7.5.2 行注释 155

7.6 项目编码标准 156

7.7 实现班组项目 158

习题 158

第8章 测试 160

8.1 什么是测试 160

8.2 面向对象测试原理 160

8.3 定义 161

8.3.1 错误、缺陷、故障和失效 161

8.3.2 测试计划 162

8.3.3 测试喻示 163

8.3.4 测试用例 163

8.3.5 白盒测试 164

8.3.6 黑盒测试 164

8.3.7 单元测试 165

8.3.8 集成测试 166

8.3.9 确认测试 167

8.3.10 系统测试 168

8.4 测试步骤 169

8.5 测试面向对象系统的特殊论题 170

8.6 案例研究:测试工资支付系统 172

8.6.1 测试计划 172

8.6.2 单元测试阶段 173

8.6.3 系统地提出测试用例 174

8.7 测试班组项目 174

8.8 面向变化的测试:配置管理 175

8.9 小结 177

习题 177

第9章 Web应用的分析、设计和测试 179

9.1 Web工程概述 179

9.1.1 基于Web的系统及应用的特点 179

9.1.2 WebApp工程的层次 180

9.1.3 Web工程过程 181

9.1.4 Web工程工作量的度量 182

9.2 WebApp分析 182

9.2.1 WebApp的需求分析 183

9.2.2 WebApp的分析模型 184

9.2.3 关系导航分析 186

9.3 WebApp设计 187

9.3.1 Web工程的设计问题 187

9.3.2 Web工程设计 189

9.3.3 面向对象的超媒体设计方法 196

9.4 WebApp测试 197

9.4.1 概述 197

9.4.2 内容测试 200

9.4.3 用户界面测试 200

9.4.4 构件级测试 202

9.4.5 导航测试 203

9.4.6 配置测试 204

9.4.7 安全性测试 205

9.4.8 性能测试 206

9.5 小结 207

习题 207

第10章 项目管理 209

10.1 引论 209

10.2 项目经理职责 210

10.2.1 软件度量 210

10.2.2 案例研究:项目估计 214

10.2.3 质量控制度量 215

10.3 配置管理 216

10.3.1 版本控制 216

10.3.2 变更控制 217

10.3.3 配置审核 217

10.3.4 配置状态报告 218

10.4 项目计划和监督 218

10.4.1 项目演化 219

10.4.2 案例分析:MCGame演化 219

10.4.3 项目计划 220

10.4.4 案例研究:MCGame项目计划 221

10.4.5 任务调度 222

10.4.6 监督进度 223

10.5 项目组 224

10.5.1 组建项目组 224

10.5.2 团队建设的四个阶段 225

10.5.3 冲突 226

10.5.4 解决冲突 227

10.6 风险管理 227

10.6.1 技术风险起源 228

10.6.2 人员风险起源 230

10.6.3 降低风险 231

10.6.4 案例研究:工资支付系统风险分析 232

10.7 软件过程 233

10.7.1 过程框架 233

10.7.2 CMM和CMMI 236

10.8 小结 243

习题 243

第11章 软件产品评价与软件维护 245

11.1 软件质量概述 245

11.1.1 软件质量和质量特性 245

11.1.2 质量的分层定义 245

11.1.3 使用质量的质量模型 246

11.1.4 软件质量管理和软件产品评价 247

11.1.5 评价级别 247

11.2 软件产品的一般评价过程 248

11.2.1 确立评价需求 249

11.2.2 规定评价 249

11.2.3 设计和执行评价 250

11.3 评价过程 252

11.3.1 评价内容 252

11.3.2 评价过程的实施 253

11.3.3 评价报表示例 255

11.4 软件维护的基本概念 256

11.4.1 软件维护的定义 256

11.4.2 软件维护的分类 256

11.5 软件维护的特点及过程 257

11.5.1 影响软件维护的因素 257

11.5.2 软件维护的标准化 258

11.5.3 软件维护的特点 258

11.5.4 软件维护过程 259

11.5.5 软件维护策略 261

11.6 软件再工程 262

11.6.1 遗留系统 262

11.6.2 软件再工程过程模型 263

11.6.3 逆向工程 264

11.6.4 重构 264

11.6.5 正向工程 265

11.7 小结 265

习题 266

第12章 完成并展示班组项目12.1 成功完成班组项目 268

12.2 对项目的思考 269

12.3 展示项目 270

12.3.1 非技术类用户的类型 270

12.3.2 非技术展示要点 270

12.3.3 技术展示要点 271

12.3.4 项目展示 271

后记 272

参考文献 274