软件工程英语JAVA_软件工程-Java语言实现(英文版,第4版)

本书深入探讨了软件工程的各个方面,包括软件过程的范围、问题、生命周期模型、逐步精化、CASE工具和其他实践。通过Java语言阐述了软件工程的原理,并详细介绍了需求分析、规格说明、设计、实现、集成和维护等阶段。内容涵盖测试原则、对象导向分析、项目计划和实施,以及维护阶段的管理。书中还提供了多个案例研究和实用工具,以帮助读者理解并应用软件工程最佳实践。
摘要由CSDN通过智能技术生成

CONTENTS

Prologue 1

PART I

Introduction to the

Software Process 3

CHAPTIR I

Scope of Software Engineering 5

1.1 Historical Aspects 6

1.2 Economic Aspects 9

1.3 Maintenance Aspects 10

1.4 Specification and Design Aspects 14

1.5 Team Programming Aspects 16

1.6 The Object-Oriented Paradigm 17

1.7 Terminology 22

Chapter Review 24

For Further Reading 25

Problems 26

References 27

CHAPTER 2

The Software Process and

Its Problems 30

2.1 Client, Developer, and User 32

2.2 Requirements Phase 33

2.2.1Requirements Phase Testing 34

2.3 Specification Phase 35

2.3.1Specification Phase Testing 36

2.4 Planning Phase 36

2.4.1Planning Phase Testing 37

2.5 Design Phase 38

2.5.1Design Phase Testing 39

2.6 Implementation Phase 39

2.6.1Implementation Phase Testing 39

2.7 Integration Phase 40

2.7.1Integration Phase Testing 40

2.8 Maintenance Phase 41

2.8.1Maintenance Phase Testing 42

2.9 Retirement 42

2.10 Problems with Software Production:

Essence and Accidents 43

2.10.1Complexity 44

2.10.2Conformity 46

2.10.3Changeability 47

2.10.4Invisibility 48

2.10.5No Silver Bullet? 49

Chapter Review 50

For Further Reading 50

Problems 51

References 52

CHAPTER 3

Software Life-Cycle Models 53

3.1 Build-and-Fix Model 53

3.2 Waterfall Model 54

3.2.1Analysis of the Waterfall Model 57

3.3Rapid Prototyping Model 59

3.3.1Integrating the Waterfall and RapidPrototyping Models 61

3.4Incremental Model 61

3.4.1Analysis of the IncrementalModel 63

3.5 Spiral Model 66

3.5.1Analysis of the Spiral Model 70

3.6 Comparison of Life-Cycle Models 71

3.7 Capability Maturity Model 71

3.8 ISO 9000 75

Chapter Review 76

For Further Reading 77

Problems 78

References 78

CHAPTER 4

Stepwise Refinement, CASE, and

Other Tools of the Trade 82

4.1 Stepwise Refinement 82

4.1.1Stepwise Refinement Example 83

4.2 Cost-Benefit Analysis 89

4.3 CASE (Computer-Aided Software

Engineering) 90

4.3.1Taxonomy of CASE 90

4.4 Scope of CASE 92

4.5 Software Versions 96

4.5.1Revisions 96

4.5.2Variations 97

4.6 Configuration Control 98

4.6.1Configuration Control during Product

Maintenance 100

4.6.2Baselines 101

4.6.3Configuration Control during Product

Development 10 1

4.7 Build Tools 102

4.8 Productivity Gains with CASE

Technology 103

4.9 Software Metrics 103

Chapter Review 105

For Further Reading 105

Problems 106

References 108

CHAPTER 5

Testing Principles 110

5.1 Quality Issues III

5.1.1Software Quality Assurance I 11

5.1.2Managerial Independence 112

5.2 Nonexecution-Based Testing 113

5.2.1Walkthroughs 113

5.2.2Managing Walkthroughs 114

5.2.3Inspections 115

5.2.4Comparison of Inspections and

Walkthroughs 117

5.2.5Metrics for Inspections 118

5.3 Execution-Based Testing 118

5.4 What Should Be Tested? 119

5.4.1Utility 120

5.4.2Reliability120

5.4.3Robustness121

5.4.4Performance121

5.4.5Correctness 122

5.5 Testing versus Correctness Proofs 124

5.5.1Example of a Correctness Proof 124

5.5.2Correctness Proof Case Study 128

5.5.3Correctness Proofs and Software

Engineering 129

5.6 Who Should Perform Execution-Based

Testing? 131

5.7 When Testing Stops 133

Chapter Review 134

For Further Reading 134

Problems 135

References 137

CHAPTER 6

Introduction to Objects 140

6.1 What Is a Module? 140

6.2 Cohesion 144

6.2.1Coincidental Cohesion 145

6.2.2Logical Cohesion 145

6.2.3Temporal Cohesion 146

6.2.4Procedural Cohesion 147

6.2.5Communicational Cohesion 148

6.2.6Informational Cohesion 148

6.2.7Functional Cohesion 149

6.2.8Cohesion Example 150

6.3 Coupling 151

6.3.1Content Coupling 151

6.3.2Common Coupling 151

6.3.3Control Coupling 154

6.3.4Stamp Coupling 154

6.3.5Data Coupling 155

6.3.6Coupling Example 156

.6.4 Data Encapsulation 157

6.4.1 Data Encapsulation and Product

Development 161

6.4.2Data Encapsulation and Product

Maintenance 163

6.5 Abstract Data Types 166

6.6 Information Hiding 168

6.7Objects 171

6.8Polymorphism and Dynamic Binding 175

6.9Cohesion and Coupling of Objects 177

6.10Reuse 178

6.10.1Impediments to Reuse 179

6.11Reuse Case Studies 180

6.11.1Raytheon Missile Systems

Division 180

6.11.2Toshiba Software Factory182

6.11.3NASA Software 183

6.11.4 GTE Data Services 184

6.11.5 Hewlett-Packard 184

6.12 Reuse and Maintenance 185

6.13 Objects and Productivity 186

Chapter Review 188

For Further Reading 188

Problems 189

References 191

PART 2

The Phases of the

Software Process 195

CHAPTER 7

Requirements Phase 197

7.1Requirements Analysis Techniques 198

7.2Rapid Prototyping 199

7.3Human Factors 201

7.4Rapid Prototyping as a Specification

Technique 203

7.5Reusing the Rapid Prototype 205

7.6Other Uses of Rapid Prototyping 207

7.7Management Implications of the Rapid

Prototyping Model 208

7.8Experiences with Rapid Prototyping 209

7.9Joint Application Design 211

7.10Comparison of Requirements Analysis

Techniques 211

7.11Testing during the Requirements Phase 212

7.12CASE Tools for the Requirements

Phase 212

7.13Metrics for the Requirements Phase 213

7.14MSG Case Study: Requirements Phase 214

7.15MSG Case Study: Rapid Prototype 216

Chapter Review 217

For Further Reading 218

Problems 219

References 220

CHAPTER 8

Specification Phase 222

8.1The Specification Document 222

8.2 Informal Specifications 224

8.2.1Case Study: Text Processing 225

8.3 Structured Systems Analysis 226

8.3.1Sally’s Software Shop 226

8.4 Other Semiformal Techniques 234

8.5 Entity-Relationship Modeling 235

8.6 Finite State Machines 237

8.6.1Elevator Problem: Finite State

Machines 239

8.7 Petri Nets 244

8.7.1Elevator Problem: Petri Nets 247

8.8 Z 250

8.8.1Elevator Problem: Z 251

8.8.2Analysis of Z 253

8.9 Other Formal Techniques 255

8.10 Comparison of Specification

Techniques 256

8.11 Testing during the Specification Phase 256

8.12 CASE Tools for the Specification

Phase257

8.13 Metrics for the Specification Phase 258

8.14 MSG Case Study: Structured Systems

Analysis 258

Chapter Review 260

For Further Reading 261

Problems 262

References 264

CHAPTER 9

object-Oriented

Analysis Phase 268

9.1 Object-Oriented versus Structured

Paradigm 268

9.2 Object-Oriented Analysis 270

9.3 Elevator Problem: Object-Oriented

Analysis 272

9.3.1Class Modeling 272

9.3.2Dynamic Modeling 275

9.3.3Functional Modeling 278

9.4 Object-Oriented Life-Cycle Models 280

9.5 CASE Tools for the Object-Oriented

Analysis Phase 282

9.6 MSG Case Study: Object-Oriented

Analysis 283

Chapter Review 286

For Further Reading 286

Problems 288

References 289

CHAPTER 10

Planning Phase 291

10.1 Estimating Duration and Cost 291

10.1.1Metrics for the Size of a

Product 293

10.1.2Techniques of Cost Estimation 297

10.1.3Intermediate COCOMO 299

10.1.4Tracking Duration and Cost

Estimates 303

10.2Components of a Software Project

Management Plan 303

10.3Software Project Management Plan

Framework 305

10.4IEEE Software Project Management

Plan 305

10.5Planning of Testing 308

10.6Planning of Object-Oriented Projects 310

10.7Training Requirements 310

10.8Documentation Standards 311

10.9CASE Tools for the Planning Phase 312

10.10Testing during the Planning Phase 315

10.11MSG Case Study: Planning Phase 315

Chapter Review 315

For Further Reading 316

Problems 317

References 318

C HAPTE RI I

Design Phase 322

11.1Design and Abstraction 322

11.2Action-Ofiented Design 324

11.3Data Flow Analysis 324

11.3.1Data Flow Analysis Example 325

11.3.2Extensions 329

11.4Transaction Analysis 329

11.5Data-Oriented Design 332

11.6Jackson System Development 333

11.6.1Overview of Jackson System

Development 333

11. 6.2Why Jackson System Development

Is Presented in This Chapter 335

11.6.3Elevator Problem: Jackson Syst em

Development 336

11.6.4Analysis of Jackson System

Development 344

11.7 Techniques of Jackson, Warnier, and

Orr 345

11.8 Object-Oriented Design 346

11.8.1Elevator Problem: Object-Oriented

Design 347

11.9 Detailed Design 350

11.10 Comparison of Action-, Data-, and

Object-Oriented Design 352

11.11 Difficulties Associated with Real-Time

Systems 353

11.12 Real-Time Design Techniques 354

11.13 Testing during the Design Phase 355

11.14 CASE Tools for the Design Phase 356

11.15 Metrics for the Design Phase 357

11.16 MSG Case Study: Object-Oriented

Design358

Chapter Review 359

For Further Reading 361

Problems 363

References 364

CHAPTER 12

Implementation Phase 368

12.1 Choice of Programming Language 368

12.2 Fourth Generation Languages 372

12.3 Structured Programming 375

12.3.1History of Structured

Programming 375

12.3.2Why the goto Statement Is

Considered Harmful 377

12.4 Good Programming Practice 378

12.5 Coding Standards 383

12.6 Team Organization 385

12.7 Democratic Team Approach 387

12.7.1Analysis of the Democratic Team

Approach 388

12.8 Classical Chief Programmer Team

Approach 388

12.8.1The New York Times Project 390

12.8.2Impracticality of the Classical Chief

Programmer Team Approach 391

12.9Beyond Chief Programmer and

Democratic Teams 392

12.10Portability 396

12.10.1 Hardware Incompatibilities 396

12.10.2 Operating System

Incompatibilities 398

12.10.3 Numerical Software

Incompatibilities 398

12.10.4 Compiler Incompatibilities 399

12.11 Why Portability? 402

12.12 Techniques for Achieving Portability 404

12.12.1Portable System Software 404

12.12.2Portable Application Software 405

12.12.3Portable Data 406

12.13 Module Reuse 407

12.14 Module Test Case Selection 407

12.14.1Testing to Specifications versus

Testing to Code 408

12.14.2Feasibility of Testing to

Specifications 408

12.14.3Feasibility of Testing to Code 409

12.15 Black-Box Module-Testing

Techniques 411

12.15.1Equivalence Testing and Boundary

Value Analysis 411

12.15.2Functional Testing 413

12.16 Glass-Box Module-Testing

Techniques 414

12.16.1Structural Testing: Statement,

Branch, and Path Coverage 414

12.16.2 Complexity Metrics 415

12.17Code Walkthroughs and Inspections 418

12.18 Comparison of Module-Testing

Techniques 418

12.19 Cleanroom 419

12.20 Testing Objects 420

12.21 Management Aspects of Module-Testing 423

12.21.1 When to Rewrite Rather Than

Debug a Module 424

12.22 Testing Distributed Software 425

12.23 Testing Real-Time Software 427

12.24 CASE Tools for the Implementation

Phase 429

12.25 MSG Case Study: Black-Box Test

Cases429

Chapter Review 431

For Further Reading 431

Problems 433

References 435

CHAPTER 13

Implementation and

Integration Phase 441

13.1 Implementation and Integration 441

13.1.1Top-Down Implementation and

Integration 442

13.1.2Bottom-Up Implementation and

Integration 444

13.1.3Sandwich Implementation and

Integration 445

13.1.4Implementation and Integration of

Object-Oriented Products 446

13.1.5Management Issues during the Implementation and Integration Phase 446

13.2 Testing during the Implementation and

Integration Phase 447

13.3 Integration Testing of Graphical User

Interfaces 447

13.4 Product Testing 448

13.5 Acceptance Testing 449

13.6 CASE Tools for the Implementation and

Integration Phase 450

13.7 CASE Tools for the Complete Software

Process451

13.8 Language-Centered Environments 451

13.9 Structure-Oriented Environments 452

13.10 Toolkit Environments 452

13.11 Integrated Environments 452

13.11.1 Process Integration 453

13.11.2 Tool Integration 454

13.11.3 Other Forms of Integration 456

13.12Environments for Business

Applications 456

13.13Public Tool Infrastructures 457

13.14Comparison of Environment Types 458

13.15 Metrics for the Implementation and

Integration Phase 458

13.16 MSG Case Study: Implementation and

Integration Phase 459

Chapter Review 460

For Further Reading 460

Problems 461

References 462

CHAPTER 14

Maintenance Phase 465

14.1 Why Maintenance Is Necessary 465

14.2 What Is Required of Maintenance

Programmers 466

14.3 Maintenance Case Study 468

14.4 Management of Maintenance 470

14.4.1Fault Reports 470

14.4.2Authorizing Changes to the

Product 471

14.4.3Ensuring Maintainability 472

14.4.4Problem of Repeated

Maintenance 472

14.5Maintenance of Object-Oniented

Software 473

14.6Maintenance Skills versus Development

Skills 476

14.7Reverse Engineering 476

14.8Testing during the Maintenance

Phase 477

14.9CASE Tools for the Maintenance

Phase 478

14.10Metrics for the Maintenance Phase 479

Chapter Review 479

For Further Reading 480

Problems 480

References 481

Epilogue 483

Appendices

APPENDIX A

Osbert Oglesby-Art Dealer 491

APPENDIX B

Software

Engineering Resources 494

APPENDIX C

MSG Case Study:

Rapid Prototype 496

APPENDIX D

MSG Case Study: Structured

Systems Analysis 509

APPENDIX E

MSG Case Study:

Object-Oriented Analysis 513

APPENDIX F

MSG Case Study: Software Project

Management Plan 514

APPENDIX G

MSG Case Study: Design 519

APPENDIX H

MSG Case Study: Black-Box

Test Cases 539

APPENDIX I

MSG Case Study: Source

Code 542

Bibliography 581

Author Index 605

Subject Index 608

Book Description Written for the moderately experienced Java programmer, this book builds on readers¿ existing knowledge of object-oriented programming and covers all important aspects of Standard C++—emphasizing more lower-level C-style details later in the presentation. Chapter topics include philosophy of C++, simplest C++, pointers and reference variables, object-based programming: classes, operator overloading, object-oriented programming: inheritance, templates, abnormal control flow, input and output, collections: the standard template library, primitive arrays and strings, C-style C++, and using Java and C++: the JNI. For new C++ programmers converted from Java. For experienced Java programmers and students who require the skills of C++ programming, best-selling author Mark Allen Weiss bridges the gap. He efficiently presents the complex C++ language in this well-designed tutorial/reference that both students and seasoned programmers will appreciate. The book is ideal as a primary text for intermediate C++ courses, as a supplemental no-nonsense reference for other courses, or for independent learning by professionals. C++ for Java Programmers is a concise, well-written text that provides authoritative and up-to-date coverage of key features and details of C++, with a special focus on how C++ compares to Java. The book's approach shows knowledgeable students or professionals how to grasp the complexities of C++ and harness its power by mutually addressing the benefits and the pitfalls of the two languages. By highlighting the features and comparative elements of each language, and building on the reader's existing knowledge of object-oriented programming, C++ for Java Programmers enables users to master the essentials of C++ quickly and thoroughly. Key Features Includes insightful comparisons of the two programming languages throughout the text and points out the subtleties of C++ Succinctly covers the pertinent highlights of STL (Standard Template Library) and the most effective use of templates Explains the use of the powerful JNI (Java Native Interface) for combining Java and C++ Includes a summary of key C++ features and issues with each chapter Provides extensive treatment of C details the programmer is likely to encounter in C++ Companion Website for complete online source code at: http://www.prenhall.com/weiss Available Instructors Resource CD-ROM Product Details Paperback: 304 pages Publisher: Prentice Hall; 1 edition (November 7, 2003) Language: English ISBN-10: 013919424X ISBN-13: 978-0139194245 Product Dimensions: 9.5 x 6.8 x 0.6 inches
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值