您的位置:首页 > 百科 > 正文

面向对象软件工程

《面向对象软件工程》一书是由美国作者StephenR.schach 撰写的著作 

  • 书名 面向对象软件工程
  • 作者 (美国)(StephenR.schach)沙赫查
  • 出版社 机械工业出版社
  • 出版时间 2009年2月
  • 页数 2009 页

简介

  该书从面向对象范型出发对软件工程进行重新演绎,全面、系统、清晰地结台济刑专课毫介绍了面向对象软件工程的基本概念、原理、方法和工具,通过实例说明了面向对象软件开发的整个过程。是一部值得推荐的经典之作

  《面向对象软件工程》分为来自两个部分:第一部分介绍了面向对象软件工程的基本理论;第二部分以工作流的形式介绍了软件生360百科命周期。

  《面向对象软件工程解罗写低顾西输比另娘》特色

  ●包括面向对象生命周期模型、面向对象分析、面向设音读员律构入爱裂对象设计,以及面向对象软件的测试和维护。

  ●讨论了文档、维护、复用、可移植性、测试和CASE工具等的重要性终孔火字机烈土督西延

  ●包括了能力成熟度模型(CMM)和人员服成穿宁缩输能力成熟度模型(P-CMM)的内容。

  ●与语言无关。实例代志大跟比促理脚香弱码对于C++和Java语胶实源绿批学神东场巴医言背景的读者同样清晰。

  ●包括600余异负篇当前热点研究文章、经典文献和书籍的参考文献。

  ●包含2个用于说明完整规钟旧预观软件生命周期的运行实例,还有7个较小的实例,分别用于眼政伤乱冷而快兰评京突出说明特定的主题。

  ●包谓样称触记等法式研括5种类型的习题,分别是概念理解、项目分析、课程设计、论文研读和决证宣执策裂的满难话转实例修改。

  面向对象软件工程方法具有下述4个特点:

  (1) 把对象作为融合了数据及在数据上的操作行为的统一软件构架,用对象分解取代了传统方法的功能分解

  (2) 把所有对象都划分为类。每个类定义象积迫验雷了一组数据和一组操作,类是对具有相同数据刻洲和相同操作的一组相似对象的定义

  (3) 按照父类与子类的关系,把若干个相关类组成一个层次结构的系统。下层派生类自动拥有上层基类中定义的数据和操作,这种现象称为继承

  (4) 对象彼此之间仅能通过发送消息互相联系,对象的所有私有信息都被封装在该对象内,不能从外界直接含由特规必并往模保越福访问,这就是封装性

者简介

  StephenR.Schach,1972年头兰千民越浓剂过盐获魏兹曼科学院理科硕士学位,1973年获开普敦大学应用数学博士学位,任教于美国范德比尔特大学计算机科学系。他著有多部有关软件工程、面向对象软件工程、面向对象系统分析与设计的教材。他还在国际上广泛讲授软件工程方面的课程,包括复用、置官必满军妈兰鸡推三移CASE和面向对象范型等。

图书目录

  出版者的话

  译者序

  前言

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

  第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

360百科  习题19

  参考文献20

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

  2.1理想软件开发23

  2.2Winburg小型案例研究23

  2.3赶斯华流线绝走四终河响Winburg小型案例研究经验25

  2.4占界视利TealTractors通放深机状湖光公司小型案例研究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迭代与增量4明挥也层不报事问8

  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.4CASE84

  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中级COCOMO180

  9.2.4COCOMOII182

  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

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

  第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.1EstimateFundsAvailableforWeek用例244

  11.18.2ManageanAsset用例248

  11.18.3UpdateEstimatedAnnualOperatingExpenses用例251

  11.18.4ProduceaReport用例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

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

  ……

发表评论

评论列表