图书介绍

软件工程 面向对象和传统的方法 原书第8版【2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载】

软件工程 面向对象和传统的方法 原书第8版
  • (美)沙赫著 著
  • 出版社: 北京:机械工业出版社
  • ISBN:711136273X
  • 出版时间:2012
  • 标注页数:380页
  • 文件大小:254MB
  • 文件页数:396页
  • 主题词:软件工程

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

软件工程 面向对象和传统的方法 原书第8版PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第1章 软件工程的范畴1

1.1历史方面2

1.2经济方面4

1.3维护性方面4

1.3.1维护的传统和现代观点5

1.3.2交付后维护的重要性7

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

1.5小组编程方面9

1.6为什么没有计划阶段10

1.7为什么没有测试阶段11

1.8为什么没有文档阶段11

1.9面向对象范型11

1.10正确看待面向对象范型14

1.11术语15

1.12道德问题17

本章回顾18

进一步阅读指导18

习题19

第一部分软件工程概念23

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

2.1理论上的软件开发23

2.2 Winburg小型实例研究23

2.3 Winburg小型实例研究心得25

2.4野鸭拖拉机公司小型实例研究26

2.5迭代和递增26

2.6修订的Winburg小型实例研究29

2.7迭代和递增的风险和其他方面30

2.8迭代和递增的控制32

2.9其他生命周期模型32

2.9.1编码-修补生命周期模型32

2.9.2瀑布生命周期模型32

2.9.3快速原型开发生命周期模型34

2.9.4开源生命周期模型34

2.9.5敏捷过程36

2.9.6同步-稳定生命周期模型38

2.9.7螺旋生命周期模型38

2.10生命周期模型的比较41

本章回顾41

进一步阅读指导42

习题43

第3章 软件过程44

3.1统一过程45

3.2面向对象范型内的迭代和递增46

3.3需求流47

3.4分析流47

3.5设计流49

3.6实现流50

3.7测试流50

3.7.1需求制品50

3.7.2分析制品50

3.7.3设计制品51

3.7.4实现制品51

3.8交付后维护52

3.9退役52

3.10统一过程的各阶段53

3.10.1开始阶段53

3.10.2细化阶段55

3.10.3构建阶段55

3.10.4转换阶段55

3.11一维与二维生命周期模型56

3.12改进软件过程57

3.13能力成熟度模型57

3.14软件过程改进方面的其他努力60

3.15软件过程改进的代价和收益60

本章回顾61

进一步阅读指导62

习题62

第4章 软件小组64

4.1小组组织64

4.2民主小组方法65

4.3传统的主程序员小组方法66

4.3.1《纽约时报》项目67

4.3.2传统的主程序员小组方法的不实用性67

4.4主程序员小组和民主小组之外的编程小组68

4.5同步-稳定小组69

4.6敏捷过程小组70

4.7开源编程小组70

4.8人员能力成熟度模型71

4.9选择合适的小组组织71

本章回顾72

进一步阅读指导72

习题73

第5章 软件工程工具74

5.1逐步求精法74

5.2成本-效益分析法78

5.3分治79

5.4关注分离79

5.5软件度量79

5.6 CASE80

5.7 CASE的分类81

5.8 CASE的范围82

5.9软件版本84

5.9.1修订版85

5.9.2变种版85

5.10配置控制85

5.10.1交付后维护期间的配置控制87

5.10.2基准87

5.10.3产品开发过程中的配置控制87

5.11建造工具88

5.12使用CASE技术提高生产力88

本章回顾89

进一步阅读指导89

习题90

第6章 测试92

6.1质量问题92

6.1.1软件质量保证93

6.1.2管理独立93

6.2非执行测试94

6.2.1走查94

6.2.2管理走查94

6.2.3审查95

6.2.4审查与走查的对比96

6.2.5评审的优缺点96

6.2.6审查的度量97

6.3执行测试97

6.4应该测试什么97

6.4.1实用性98

6.4.2可靠性98

6.4.3健壮性98

6.4.4性能98

6.4.5正确性99

6.5测试与正确性证明100

6.5.1正确性证明的例子100

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

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

6.6谁应当完成执行测试104

6.7测试什么时候停止105

本章回顾105

进一步阅读指导106

习题106

第7章 从模块到对象108

7.1什么是模块108

7.2内聚110

7.2.1偶然性内聚110

7.2.2逻辑性内聚111

7.2.3时间性内聚111

7.2.4过程性内聚112

7.2.5通信性内聚112

7.2.6功能性内聚112

7.2.7信息性内聚113

7.2.8内聚示例113

7.3耦合114

7.3.1内容耦合114

7.3.2共用耦合114

7.3.3控制耦合115

7.3.4印记耦合116

7.3.5数据耦合117

7.3.6耦合示例117

7.3.7耦合的重要性118

7.4数据封装118

7.4.1数据封装和产品开发120

7.4.2数据封装和产品维护121

7.5抽象数据类型125

7.6信息隐藏126

7.7对象127

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

7.9面向对象范型131

本章回顾133

进一步阅读指导133

习题134

第8章 可重用性和可移植性136

8.1重用的概念136

8.2重用的障碍138

8.3重用实例研究139

8.3.1 Raytheon导弹系统部139

8.3.2欧洲航天局140

8.4对象和重用140

8.5设计和实现期间的重用141

8.5.1设计重用141

8.5.2应用框架141

8.5.3设计模式142

8.5.4软件体系结构143

8.5.5基于组件的软件工程144

8.6其他设计模式144

8.6.1 FLIC小型实例研究144

8.6.2适配器设计模式145

8.6.3桥设计模式145

8.6.4迭代器设计模式146

8.6.5抽象工厂设计模式147

8.7设计模式的种类149

8.8设计模式的优缺点150

8.9重用及互联网151

8.10重用和交付后维护151

8.11可移植性152

8.11.1硬件的不兼容性152

8.11.2操作系统的不兼容性153

8.11.3数值计算软件的不兼容性153

8.11.4编译器的不兼容性154

8.12为什么需要可移植性156

8.13实现可移植性的技术157

8.13.1可移植的系统软件157

8.13.2可移植的应用软件157

8.13.3可移植的数据158

8.13.4模型驱动结构158

本章回顾159

进一步阅读指导159

习题160

第9章 计划和估算162

9.1计划和软件过程162

9.2周期和成本估算163

9.2.1产品规模的度量164

9.2.2成本估算技术166

9.2.3中间COCOMO167

9.2.4 COCOMO11170

9.2.5跟踪周期和成本估算170

9.3软件项目管理计划的组成171

9.4软件项目管理计划框架171

9.5 IEEE软件项目管理计划172

9.6计划测试174

9.7计划面向对象的项目175

9.8培训需求175

9.9文档标准176

9.10用于计划和估算的CASE工具176

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

本章回顾176

进一步阅读指导177

习题177

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

第10章 第一部分的关键内容180

10.1软件开发:理论与实践180

10.2迭代和递增180

10.3统一过程183

10.4工作流概述183

10.5软件小组184

10.6成本-效益分析法184

10.7度量184

10.8 CASE184

10.9版本和配置185

10.10测试术语185

10.11执行测试和非执行测试185

10.12模块性185

10.13重用186

10.14软件项目管理计划186

本章回顾186

习题186

第11章 需求188

11.1确定客户需要什么188

11.2需求流概述189

11.3理解应用域189

11.4业务模型190

11.4.1访谈190

11.4.2其他技术190

11.4.3用例191

11.5初始需求192

11.6对应用域的初始理解:MSG基金实例研究192

11.7初始业务模型:MSG基金实例研究194

11.8初始需求:MSG基金实例研究196

11.9继续需求流:MSG基金实例研究197

11.10修订需求:MSG基金实例研究198

11.11测试流:MSG基金实例研究203

11.12传统的需求阶段209

11.13快速原型开发209

11.14人的因素210

11.15 重用快速原型211

11.16需求流的CASE工具212

11.17需求流的度量212

11.18需求流面临的挑战213

本章回顾214

进一步阅读指导214

习题215

第12章 传统的分析217

12.1规格说明文档217

12.2非形式化规格说明218

12.3结构化系统分析219

12.4结构化系统分析:MSG基金实例研究224

12.5其他半形式化技术225

12.6建造实体-关系模型226

12.7有穷状态机227

12.8 Petri网231

12.9 Z234

12.9.1 Z:电梯问题实例研究234

12.9.2 Z的分析236

12.10其他的形式化技术236

12.11传统分析技术的比较237

12.12在传统分析阶段测试238

12.13传统分析阶段的CASE工具238

12.14传统分析阶段的度量239

12.15软件项目管理计划:MSG基金实例研究239

12.16传统分析阶段面临的挑战239

本章回顾239

进一步阅读指导240

习题241

第13章 面向对象分析244

13.1分析流244

13.2抽取实体类245

13.3面向对象分析:电梯问题实例研究245

13.4功能建模:电梯问题实例 研究246

13.5实体类建模:电梯问题实例研究247

13.5.1名词抽取248

13.5.2 CRC卡片249

13.6动态建模:电梯问题实例研究249

13.7测试流:面向对象分析251

13.8抽取边界类和控制类257

13.9初始功能模型:MSG基金实例研究257

13.10初始类图:MSG基金实例研究258

13.11初始动态模型:MSG基金实例研究260

13.12修订实体类:MSG基金实例研究261

13.13抽取边界类:MSG基金实例研究262

13.14抽取控制类:MSG基金实例研究263

13.15 用例实现:MSG基金实例研究263

13.15.1 Estimate Funds Availablefor Week用例263

13.15.2 Manage an Asset用例268

13.15.3 Update Estimated AnnualOperating Expenses用例271

13.15.4 Produce a Report用例271

13.16类图递增:MSG基金实例研究276

13.17测试流:MSG基金实例研究277

13.18统一过程中的规格说明文档277

13.19关于参与者和用例更详细的内容278

13.20面向对象分析流的CASE工具279

13.21面向对象分析流的度量279

13.22面向对象分析流面临的挑战279

本章回顾280

进一步阅读指导281

习题281

第14章 设计283

14.1设计和抽象283

14.2面向操作设计284

14.3数据流分析284

14.3.1小型实例研究:字数统计285

14.3.2数据流分析扩展287

14.4事务分析289

14.5面向数据设计290

14.6面向对象设计290

14.7面向对象设计:电梯问题实例研究291

14.8面向对象设计:MSG基金实例研究293

14.9设计流297

14.10测试流:设计298

14.11测试流:MSG基金实例研究299

14.12详细设计的形式化技术299

14.13实时设计技术299

14.14设计的CASE工具300

14.15 设计的度量300

14.16设计流面临的挑战301

本章回顾301

进一步阅读指导302

习题302

第15章 实现304

15.1编程语言的选择304

15.2第四代语言306

15.3良好的编程实践308

15.3.1使用一致和有意义的变量名308

15.3.2自文档代码的问题309

15.3.3使用参数310

15.3.4为增加可读性的代码编排310

15.3.5嵌套的if语句310

15.4编码标准311

15.5代码重用312

15.6集成312

15.6.1自顶向下的集成312

15.6.2自底向上的集成314

15.6.3三明治集成314

15.6.4面向对象产品的集成315

15.6.5集成的管理315

15.7实现流315

15.8实现流:MSG基金实例研究315

15.9测试流:实现316

15.10测试用例选择316

15.10.1规格说明测试与代码测试316

15.10.2规格说明测试的可行性316

15.10.3代码测试的可行性317

15.11黑盒单元测试技术318

15.11.1等价测试和边界值分析319

15.11.2功能测试320

15.12黑盒测试用例:MSG基金实例研究320

15.13玻璃盒单元测试技术322

15.13.1结构测试:语句、分支和路径覆盖322

15.13.2复杂性度量323

15.14代码走查和审查324

15.15 单元测试技术的比较324

15.16净室325

15.17测试对象时潜在的问题325

15.18单元测试的管理方面327

15.19何时该重实现而不是调试代码制品327

15.20集成测试328

15.21产品测试329

15.22验收测试329

15.23测试流:MSG基金实例研究330

15.24实现的CASE工具330

15.24.1软件开发全过程的CASE工具330

15.24.2集成化开发环境330

15.24.3商业应用环境331

15.24.4公共工具基础结构331

15.24.5环境的潜在问题332

15.25测试流的CASE工具332

15.26实现流的度量332

15.27实现流面临的挑战333

本章回顾333

进一步阅读指导334

习题335

第16章 交付后维护337

16.1开发与维护337

16.2为什么交付后维护是必要的338

16.3对交付后维护程序员的要求是什么338

16.4交付后维护小型实例研究340

16.5交付后维护的管理341

16.5.1缺陷报告341

16.5.2批准对产品的修改341

16.5.3确保可维护性342

16.5.4迭代维护造成的问题342

16.6面向对象软件的维护342

16.7交付后维护技能与开发技能344

16.8逆向工程345

16.9交付后维护期间的测试345

16.10交付后维护的CASE工具346

16.11交付后维护的度量346

16.12交付后维护:MSG基金实例研究346

16.13交付后维护面临的挑战346

本章回顾347

进一步阅读指导347

习题347

第17章UML的进一步讨论349

17.1 UML不是一种方法349

17.2类图350

17.2.1聚合350

17.2.2多重性350

17.2.3组合352

17.2.4泛化352

17.2.5关联352

17.3注解353

17.4用例图353

17.5构造型353

17.6交互图354

17.7状态图355

17.8活动图357

17.9包358

17.10组件图358

17.11部署图359

17.12 UML图回顾359

17.13 UML和迭代359

本章回顾359

进一步阅读指导359

习题359

第18章 新兴技术361

18.1面向层面技术361

18.2模型驱动技术363

18.3基于组件技术364

18.4面向服务技术364

18.5面向服务技术和基于组件技术的比较364

18.6社交计算365

18.7 Web工程365

18.8云技术366

18.9 Web 3.0366

18.10计算机安全366

18.11模型检查367

18.12目前和未来367

本章回顾367

进一步阅读指导367

附录368

附录A学期项目:巧克力爱好者匿名368

附录B软件工程资源370

附录C需求流:MSG基金实例研究371

附录D结构化系统分析:MSG基金实例研究371

附录E分析流:MSG基金实例研究373

附录F软件项目管理计划:MSG基金实例研究373

附录G设计流:MSG基金实例研究375

附录H实现流:MSG基金实例研究(C++版)380

附录I实现流:MSG基金实例研究(Java版)380

附录J测试流:MSG基金实例研究380

热门推荐