当前位置:首页 > 工业技术
面向对象软件工程
面向对象软件工程

面向对象软件工程PDF电子书下载

工业技术

  • 电子书积分:12 积分如何计算积分?
  • 作 者:(美)(Stephen R.schach)沙赫查 黄林鹏徐小辉伍建焜
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2009
  • ISBN:9787111255024
  • 页数:350 页
图书介绍:本书全面系统地介绍了面向对象软件工程的基本概念、原理、方法和工具。
《面向对象软件工程》目录

第一部分 面向对象软件工程简介 3

第1章 面向对象软件工程的范畴 3

1.1历史方面 4

1.2经济方面 6

1.3维护方面 6

1.3.1现代软件维护观点 8

1.3.2交付后维护的重要性 9

1.4需求、分析和设计方面 10

1.5团队开发 11

1.6没有计划阶段的原因 12

1.7没有测试阶段的原因 12

1.8没有文档阶段的原因 13

1.9面向对象范型 13

1.10术语 15

1.11道德规范问题 17

本章回顾 18

延伸阅读材料 18

习题 19

参考文献 20

第2章 软件生命周期模型 23

2.1理想软件开发 23

2.2Winburg小型案例研究 23

2.3Winburg小型案例研究经验 25

2.4Teal Tractors公司小型案例研究 25

2.5迭代与增量 26

2.6Winburg小型案例研究再探 28

2.7迭代和增量的风险及其他 29

2.8管理迭代与增量 31

2.9其他生命周期模型 31

2.9.1边写边改生命周期模型 32

2.9.2瀑布生命周期模型 32

2.9.3快速原型生命周期模型 33

2.9.4开源生命周期模型 34

2.9.5敏捷过程 35

2.9.6同步稳定生命周期模型 37

2.9.7螺旋生命周期模型 38

2.10生命周期模型的比较 40

本章回顾 41

延伸阅读材料 41

习题 42

参考文献 43

第3章 软件过程 46

3.1统一过程 47

3.2迭代与增量 48

3.3需求工作流 49

3.4分析工作流 50

3.5设计工作流 51

3.6实现工作流 52

3.7测试工作流 52

3.7.1需求制品 53

3.7.2分析制品 53

3.7.3设计制品 53

3.7.4实现制品 53

3.8交付后维护 54

3.9退役 55

3.10统一过程的阶段 55

3.10.1初始阶段 56

3.10.2细化阶段 57

3.10.3构造阶段 58

3.10.4移交阶段 58

3.11一维与二维生命周期模型对比 59

3.12改进软件过程 60

3.13能力成熟度模型 60

3.14软件过程改进的其他方面 62

3.15软件过程改进的成本与收益 62

本章回顾 64

延伸阅读材料 64

习题 65

参考文献 65

第4章 软件团队 68

4.1团队组织 68

4.2民主团队方式 69

4.3主程序员团队方式 70

4.3.1《纽约时报》项目 71

4.3.2主程序员团队方式的不切实际性 72

4.4超越主程序员和民主团队 72

4.5同步-稳定团队 73

4.6敏捷过程团队 74

4.7开源编程团队 74

4.8人力资源能力成熟度模型 75

4.9选择合适的团队组织 75

本章回顾 76

延伸阅读材料 76

习题 77

参考文献 77

第5章 软件工程工具 79

5.1逐步求精 79

5.2成本-效益分析法 82

5.3软件度量 83

5.4CASE 84

5.5CASE的分类 85

5.6CASE的范围 86

5.7软件版本 88

5.7.1修订版 89

5.7.2变体 89

5.8配置控制 89

5.8.1交付后维护期间的配置控制 91

5.8.2基线 91

5.8.3产品开发过程中的配置控制 91

5.9建造工具 92

5.10使用CASE技术提高生产力 93

本章回顾 93

延伸阅读材料 93

习题 94

参考文献 95

第6章 测试 97

6.1质量问题 97

6.1.1软件质量保证 98

6.1.2管理独立性 98

6.2基于非执行的测试 99

6.2.1走查 99

6.2.2管理走查 100

6.2.3审查 100

6.2.4走查和审查的对比 102

6.2.5评审的优缺点 102

6.2.6审查的度量方法 102

6.3基于执行的测试 103

6.4应该测试什么 103

6.4.1实用性 104

6.4.2可靠性 104

6.4.3健壮性 104

6.4.4性能 105

6.4.5正确性 105

6.5测试与正确性证明 106

6.5.1正确性证明的例子 106

6.5.2正确性证明小型实例研究 108

6.5.3正确性证明和软件工程 109

6.6由谁来完成基于执行的测试 111

6.7测试何时停止 112

本章回顾 112

延伸阅读材料 112

习题 113

参考文献 114

第7章 从模块到对象 117

7.1什么是模块 117

7.2内聚 119

7.2.1偶然性内聚 119

7.2.2逻辑性内聚 120

7.2.3时间性内聚 120

7.2.4过程性内聚 121

7.2.5通信性内聚 121

7.2.6功能性内聚 121

7.2.7信息性内聚 121

7.2.8内聚示例 122

7.3耦合 122

7.3.1内容耦合 122

7.3.2公共耦合 123

7.3.3控制耦合 124

7.3.4印记耦合 125

7.3.5数据耦合 125

7.3.6耦合示例 126

7.3.7耦合的重要性 126

7.4数据封装 127

7.4.1数据封装和开发 128

7.4.2数据封装和维护 129

7.5抽象数据类型 133

7.6信息隐藏 134

7.7对象 135

7.8继承、多态和动态绑定 137

7.9面向对象范型 139

本章回顾 140

延伸阅读材料 141

习题 141

参考文献 142

第8章 可复用性和可移植性 144

8.1复用的概念 145

8.2复用的障碍 146

8.3复用案例研究 147

8.3.1雷锡恩导弹系统部门 147

8.3.2欧洲航天局 148

8.4对象和复用 149

8.5在设计和实现过程中的复用 149

8.5.1设计复用 149

8.5.2应用架构 150

8.5.3设计模式 151

8.5.4软件体系结构 152

8.5.5基于组件的软件工程 153

8.6关于设计模式的更多内容 153

8.6.1FLIC小型案例研究 153

8.6.2适配器设计模式 154

8.6.3桥接设计模式 154

8.6.4迭代器设计模式 155

8.6.5抽象工厂设计模式 156

8.7设计模式的范畴 159

8.8设计模式的优点和缺点 159

8.9复用和交付后的维护 160

8.10可移植性 161

8.10.1硬件的不兼容性 161

8.10.2操作系统的不兼容性 162

8.10.3数值计算软件的不兼容性 162

8.10.4编译器的不兼容性 163

8.11为什么需要可移植性 165

8.12实现可移植性的技术 166

8.12.1可移植的系统软件 166

8.12.2可移植的应用软件 166

8.12.3可移植数据 167

8.12.4基于Web的应用程序 167

本章回顾 168

延伸阅读材料 168

习题 169

参考文献 170

第9章 计划与估算 174

9.1计划活动与软件过程 174

9.2估算项目周期和成本 175

9.2.1产品规模的衡量标准 176

9.2.2成本估算技术 178

9.2.3中级COCOMO 180

9.2.4COCOMOⅡ 182

9.2.5跟踪周期和成本估算 183

9.3估算探讨 183

9.4软件项目管理计划的组成 184

9.5软件项目管理计划框架 185

9.6IEEE软件项目管理计划 186

9.7对测试进行计划 188

9.8培训需求 188

9.9文档标准 189

9.10计划和估算的CASE工具 189

9.11测试软件项目管理计划 190

本章回顾 190

延伸阅读材料 190

习题 191

参考文献 192

第二部分 软件生命周期工作流 196

第10章 需求工作流 196

10.1确定什么是客户所需 196

10.2需求工作流概述 197

10.3域的理解 197

10.4业务模型 198

10.4.1访谈 198

10.4.2其他技术 198

10.4.3用例 199

10.5初始需求 200

10.6对应用域的初始理解:MSG基金会实例研究 200

10.7初始业务模型:MSG基金会实例研究 202

10.8初始需求:MSG基金会实例研究 204

10.9需求工作流继续:MSG基金会实例研究 205

10.10修订需求:MSG基金会实例研究 206

10.11测试工作流:MSG基金会实例研究 211

10.12什么是面向对象的需求 217

10.13快速原型 218

10.14人为因素 218

10.15 复用快速原型 219

10.16需求工作流的CASE工具 220

10.17需求工作流的度量 220

10.18需求工作流的挑战 220

本章回顾 221

延伸阅读材料 222

习题 222

参考文献 223

第11章 分析工作流 224

11.1规格说明文档 224

11.2非形式化规格说明 225

11.3小型案例研究的正确性证明回顾 226

11.4分析工作流 227

11.5实体类的提取 228

11.6电梯问题 228

11.7功能建模:电梯问题案例研究 229

11.8实体类建模:电梯问题案例研究 230

11.8.1名词提取 230

11.8.2CRC卡片 232

11.9动态建模:电梯问题案例研究 233

11.10测试工作流:电梯问题案例研究 235

11.11提取边界类和控制类 237

11.12初始功能建模:MSG基金会案例研究 238

11.13初始类图:MSG基金会案例研究 239

11.14初始动态建模:MSG基金会案例研究 240

11.15修订实体类:MSG基金会案例研究 242

11.16提取边界类:MSG基金会案例研究 243

11.17提取控制类:MSG基金会案例研究 243

11.18用例实现:MSG基金会案例研究 243

11.18.1Estimate Funds Available for Week用例 244

11.18.2Manage an Asset用例 248

11.18.3 Update Estimated Annual Operating Expenses用例 251

11.18.4 Produce a Report用例 252

11.19类图增量:MSG基金会案例研究 256

11.20软件项目管理计划:MSG基金会案例研究 257

11.21测试工作流:MSG基金会案例研究 257

11.22统一过程中的规格说明文档 257

11.23更多关于参与者和用例的内容 258

11.24支持分析工作流的CASE工具 259

11.25分析工作流的挑战 259

本章回顾 259

延伸阅读材料 260

习题 260

参考文献 262

第12章 设计工作流 264

12.1面向对象设计 264

12.2面向对象设计:电梯问题案例研究 268

12.3面向对象设计:MSG基金会案例研究 270

12.4设计工作流 272

12.5测试工作流:设计 273

12.6测试工作流:MSG基金会案例 273

12.7详细设计的形式化技术 273

12.8实时设计技术 274

12.9用于设计的CASE工具 274

12.10设计的度量 275

12.11设计工作流面临的挑战 276

本章回顾 277

延伸阅读材料 277

习题 277

参考文献 278

第13章 实现工作流 280

13.1选择编程语言 280

13.2良好的编程实践 282

13.2.1使用一致和有意义的变量名 282

13.2.2自文档化代码的问题 283

13.2.3使用参数 284

13.2.4为增加可读性的代码编排 284

13.2.5嵌套的if语句 285

13.3编码标准 286

13.4代码复用 286

13.5集成 286

13.5.1自顶向下的集成 287

13.5.2自底向上的集成 288

13.5.3三明治集成 288

13.5.4集成技术 289

13.5.5集成管理 290

13.6实现工作流 290

13.7实现工作流:MSG基金会案例研究 290

13.8测试工作流:实现 290

13.9测试用例的选择 290

13.9.1规格说明测试与代码测试 291

13.9.2规格说明测试的可行性 291

13.9.3代码测试的可行性 291

13.10黑盒单元测试技术 293

13.10.1等价测试和边界值分析 293

13.10.2功能测试 294

13.11黑盒测试用例:MSG基金会案例研究 294

13.12玻璃盒单元测试技术 296

13.12.1结构测试:语句、分支和路径覆盖 296

13.12.2复杂性度量 297

13.13代码走查和审查 298

13.14单元测试技术的比较 298

13.15 净室 298

13.16测试中的问题 299

13.17单元测试的管理方面内容 301

13.18何时重写而不是调试代码制品 301

13.19集成测试 302

13.20产品测试 303

13.21验收测试 303

13.22测试流:MSG基金会案例研究 304

13.23用于实现的CASE工具 304

13.23.1软件开发全过程的CASE工具 304

13.23.2集成开发环境 304

13.23.3商业应用环境 305

13.23.4公共工具基础结构 305

13.23.5环境的潜在问题 306

13.24测试工作流的CASE工具 306

13.25实现工作流的度量 306

13.26实现工作流面临的挑战 307

本章回顾 307

延伸阅读材料 308

习题 309

参考文献 310

第14章 交付后维护 313

14.1开发与维护 313

14.2为什么交付后维护是必要的 314

14.3交付后维护程序员要求具备什么 314

14.4交付后维护小型案例研究 316

14.5交付后维护的管理 317

14.5.1缺陷报告 317

14.5.2授权对产品的修改 318

14.5.3确保可维护性 318

14.5.4反复维护的问题 319

14.6维护问题 319

14.7交付后维护技能与开发技能 321

14.8逆向工程 321

14.9交付后维护期间的测试 322

14.10交付后维护的CASE工具 323

14.11交付后维护的度量 323

14.12交付后维护:MSG基金会案例研究 323

14.13交付后维护面临的挑战 323

本章回顾 323

延伸阅读材料 324

习题 324

参考文献 325

第15章 UML的进一步讨论 327

15.1UML不是一种方法学 327

15.2类图 327

15.2.1聚合 328

15.2.2多重性 329

15.2.3组合 329

15.2.4泛化 330

15.2.5关联 330

15.3注释 330

15.4用例图 330

15.5构造型 331

15.6交互图 331

15.7状态图 333

15.8活动图 335

15.9包 335

15.10组件图 336

15.11部署图 336

15.12UML图回顾 336

15.13UML和迭代 336

本章回顾 337

延伸阅读材料 337

习题 337

参考文献 337

附录 338

附录A学期项目:Osric办公用品和装饰公司项目 338

附录B软件工程资源 340

附录C需求工作流:MSG基金会案例研究 341

附录D分析工作流:MSG基金会案例研究 341

附录E软件工程管理计划:MSG基金会案例研究 341

附录F设计工作流:MSG基金会案例研究 345

附录G实现工作流:MSG基金会案例研究(C++版) 349

附录H实现工作流:MSG基金会案例研究(Java版) 349

附录Ⅰ测试工作流:MSG基金会案例研究 350

相关图书
作者其它书籍
返回顶部