《软件工程Java语言实现 英文版·第4版》PDF下载

  • 购买积分:18 如何计算积分?
  • 作  者:(美)(S.R.沙赫)Stephen R.Schach著
  • 出 版 社:北京:机械工业出版社
  • 出版年份:1999
  • ISBN:7111067142
  • 页数:618 页
图书介绍:

PART 1 Introduction to the Software Process 3

PART 1 Introduction to the Software Process 3

Prologue 1 3

Prologue 1 3

CHAPTER 1 Scope of Software Engineering 5

CHAPTER 1 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

CHAPTER 2 The Software Process and Its Problems 30

2.1 Client,Developer,and User 32

2.2 Requirements Phase 33

2.2.1 Requirements Phase Testing 34

2.3 Specification Phase 35

2.3.1 Specification Phase Testing 36

2.4 Planning Phase 36

2.4.1 Planning Phase Testing 37

2.5 Design Phase 38

2.6.1 Implementation Phase Testing 39

2.6 Implementation Phase 39

2.5.1 Design Phase Testing 39

2.7 Integration Phase 40

2.7.1 Integration Phase Testing 40

2.8 Maintenance Phase 41

2.8.1 Maintenance Phase Testing 42

2.9 Retirement 42

2.10 Problems with Software Production:Essence and Accidents 43

20.10.1 Complexity 44

20.10.2 Conformity 46

20.10.3 Changeability 47

20.10.4 Invisibility 48

20.10.5 No Silver Bullet? 49

Chapter Review 50

For Further Reading 50

Problems 51

References 52

CHAPTER 3 Software Life-Cycle Models 53

CHAPTER 3 Software Life-Cycle Models 53

3.2 Waterfall Model 54

3.2.1 Analysis of the Waterfall Model 57

3.3 Rapid Prototyping Model 59

3.3.1 Integrating the Waterfall and Rapid Prototyping Models 61

3.4 Incremental Model 61

3.4.1 Analysis of the Incremental Model 63

3.5 Spiral Model 66

3.5.1 Analysis 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

CHAPTER 4 Stepwise Refinement,CASE,and Other Tools of the Trade 82

4.1 Stepwise Refinement 82

4.1.1 Stepwise Refinement Example 83

4.2 Cost-Benefit Analysis 89

4.3 CASE(Computer-Aided Software Engineering) 90

4.3.1 Taxonomy of CASE 90

4.4 Scope of CASE 92

4.5.1 Revisions 96

4.5 Software Versions 96

4.5.2 Variations 97

4.6 Configuration Control 98

4.6.1 Configuration Control during Product Maintenance 100

4.6.2 Baselines 101

4.6.3 Configuration Control during Product Development 101

4.7 Build Tools 102

4.8 Productivity Gains with CASE Technology 103

4.9 Software Metrics 103

For Further Reading 105

Chapter Review 105

Problems 106

References 108

CHAPTER 5 Testing Principles 110

CHAPTER 5 Testing Principles 110

5.1 Quality Issues 111

5.1.1 Software Quality Assurance 111

5.1.2 Managerial Independence 112

5.2 Nonexecution-Based Testing 113

5.2.1 Walkthroughs 113

5.2.2 Managing Walkthroughs 114

5.2.3 Inspections 115

5.2.4 Comparison of Inspections and Walkthroughs 117

5.2.5 Metrics for Inspections 118

5.3 Execution-Based Testing 118

5.4 What Should Be Tested? 119

5.4.2 Reliability 120

5.4.1 Utility 120

5.4.3 Robustness 121

5.4.4 Performance 121

5.4.5 Correctness 122

5.5 Testing versus Correctness Proofs 124

5.5.1 Example of acorrectness Proof 124

5.5.2 Correctness Proof Case Study 128

5.5.3 Correctness 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

CHAPTER 6 Introduction to Objects 140

6.1 What Is a Module? 140

6.2 Cohesion 144

6.2.1 Coincidental Cohesion 145

6.2.2 Logical Cohesion 145

6.2.3 Temporal Cohesion 146

6.2.4 Procedural Cohesion 147

6.2.6 Informational Cohesion 148

6.2.5 Communicational Cohesion 148

6.2.7 Functional Cohesion 149

6.2.8 Cohesion Example 150

6.3 Coupling 151

6.3.1 Content Coupling 151

6.3.2 Common Coupling 151

6.3.3 Control Coupling 154

6.3.4 Stamp Coupling 154

6.3.5 Data Coupling 155

6.3.6 Coupling Example 156

6.4 Data Encapsulation 157

6.4.1 Data Encapsulation and Product Development 161

6.4.2 Data Encapsulation and Product Maintenance 163

6.5 Abstract Data Types 166

6.6 Information Hiding 168

6.7 Objects 171

6.8 Polymorphism and Dynamic Binding 175

6.9 Cohesion and Coupling of Objects 177

6.10 Reuse 178

6.10.1 Impediments to Reuse 179

6.11 Reuse Case Studies 180

6.11.1 Raytheon Missile Systems Division 180

6.11.2 Toshiba Software Factory 182

6.11.3 NASA 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 192

PART 2 The Phases of the Software Process 195

CHAPTER 7 Requirements Phase 197

CHAPTER 7 Requirements Phase 197

7.1 Requirements Analysis Techniques 198

7.2 Rapid Prototyping 199

7.3 Human Factors 201

7.4 Rapid Prototyping as a Specification Technique 203

7.5 Reusing the Rapid Prototype 205

7.6 Other Uses of Rapid Profotyping 207

7.7 Management Implications of the Rapid Prototyping Model 208

7.8 Experiences with Rapid Prototyping 209

7.9 Joint Application Design 211

7.10 Comparison of Requirements Analysis Techniques 211

7.11 Testing during the Requirements Phase 212

7.12 CASE Tools for the Requirements Phase 212

7.13 Metrics for the Requirements Phase 213

7.14 MSG Case Study:Requirements Phase 214

7.15 MSG Case Study:Rapid Prototype 216

Chapter Review 217

For Further Reading 218

Problems 219

References 220

8.1 The Specification Document 222

CHAPTER 8 Specificaton Phase 222

CHAPTER 8 Specification Phase 222

8.2 Informal Specifications 224

8.2.1 Case Study:Text Processing 225

8.3.1 Sally s Software Shop 226

8.3 Structured Systems Analysis 226

8.4 Other Semiformal Techniques 234

8.5 Entity-Relationship Modeling 235

8.6 Finite State Machines 237

8.6.1 Elevator Problem:Finite State Machines 239

8.7 Petri Nets 244

8.7.1 Elevator Problem:Petri Nets 247

8.8 Z 250

8.8.1 Elevator Problem:Z 251

8.8.2 Analysis 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 Phase 257

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

CHAPTER 9 Object-Oriented Analysis Phase 268

9.2 Object-Oriented Analysis 270

9.3 Elevator Problem:Object-Oriented Analysis 272

9.3.1 Class Modeling 272

9.3.2 Dynamic Modeling 275

9.3.3 Functional 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

CHAPTER 10 Planning Phase 291

10.1.1 Metrics for the Size of a Product 293

10.1.2 Techniques of Cost Estimation 297

10.1.3 Intermediate COCOMO 299

10.1.4 Tracking Duration and Cost Estimates 303

10.2 Components of a Software Project Management Plan 303

10.3 Software Project Management Plan Framework 305

10.4 IEEE Software Project Management Plan 305

10.5 Planning of Testing 308

10.6 Planning of Object-Oriented Projects 310

10.7 Training Requirements 310

10.8 Documentation Standards 311

10.9 CASE Tools for the Planning Phase 312

Chapter Review 315

10.11 MSG Case Study:Planning Phase 315

10.10 Testing during the Planning Phase 315

For Further Reading 316

Problems 317

Refrences 318

CHAPTER 11 Design Phase 322

11.1 Design and Abstraction 322

CHAPTER 11 Design Phase 322

11.2 Action-Oriented Design 324

11.3 Data Flow Analysis 324

11.3.1 Data Flow Analysis Example 325

11.4 Transaction Analysis 329

11.3.2 Extensions 329

11.5 Data-Oriented Design 332

11.6 Jackson System Development 333

11.6.1 Overview of Jackson System Development 333

11.6.2 Why Jackson System Development Is Presented in This Chapter 335

11.6.3 Elevator Problem:Jackson System Development 336

11.6.4 Analysis of Jackson System Development 344

11.7 Techniques of Jackson ,Wamier,and Orr 345

11.8 Object-Oriented Design 346

11.8.1 Elevator 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 Design 358

Chapter Review 359

For Further Reading 361

Problems 363

References 364

12.1 Choice of Programming Language 368

CHAPTER 12 Implementation Phase 368

CHAPTER 12 Implementation Phase 368

12.2 Fourth Generation Languages 372

12.3.1 History of Structured Programming 375

12.3 Structured Programming 375

12.3.2 Why 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.1 Analysis of the Democratic Team Approach 388

12.8 Classical Chief Programmer Team Approach 388

12.8.1 The New York Times Project 390

12.8.2 Impracticality of the Classical Chief Programmer Team Approach 391

12.9 Beyond Chief Programmer and Democratic Teams 392

12.10 Portability 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.1 Portable System Software 404

12.12.2 Portable Application Software 405

12.12.3 Portable Data 406

12.13 Module Reuse 407

12.14 Module Test Case Selection 407

12.14.1 Testing to Specifications versus Testing to Code 408

12.14.2 Feasibility of Testing to Specifications 408

12.14.3 Feasibility of Testing to Code 409

12.15 Black-Box Module-Testing Techniques 411

12.15.1 Equivalence Testing and Boundary Value Analysis 411

12.15.2 Functional Testing 413

12.16 Glass-Box Module-Testing Techniques 414

12.16.1 Structural Testing:Statement,Branch,and Path Coverage 414

12.16.2 Complexity Metrics 415

12.17 Code Walkthroughs and Inspections 418

12.18 Comparison of Module-Testng 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 Cases 429

Chapter Review 431

For Further Reading 431

Problems 433

References 435

CHAPTER 13 Implementation and Integration Phase 441

CHAPTER 13 Implementation and Integration Phase 441

13.1 Implementation and Integration 441

13.1.1 Top-Down Implementation and Integration 442

13.1.2 Bottom-Up Implementation and Integration 444

13.1.3 Sandwich Implementation and Integration 445

13.1.4 Implementation and Integration of Object-Oriented Products 446

13.1.5 Management 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 Process 451

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.12 Environments for Business Applications 456

13.13 Public Tool Infrastructures 457

13.14 Comparison 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

CNAPTER14 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.1 Fault Reports 470

14.4.2 Authorizing Changes to the Product 471

14.4.3 Ensuring Maintainability 472

14.4.4 Problem of Repeated Maintenance 472

14.5 Maintenance of Object-Oriented Software 473

14.6 Maintenance Skills versus Development Skills 476

14.7 Reverse Engineering 476

14.8 Testing during the Maintenance Phase 477

14.9 CASE Tools for the Maintenance Phase 478

14.10 Metrics for the Maintenance Phase 479

Chapter Review 479

For Further Reading 480

Problems 480

References 481

Epilogue 483

Appendices 483

Epilogue 483

Appendices 483

APPENDIX A Osbert Oglesby,Art Dealer 491

APPENDIX A Osbert Oglesby—Art Dealer 491

APPENDIX B Software Engineering Resources 494

APPENDIX B Software Engineering Resources 494

APPENDIX C MSG Case Study:Rapid Prototype 496

APPENDIX C MSG Case Study:Rapid Prototype 496

APPENDIX D MSG Case Study:Structured Systems Analysis 509

APPENDIX D MSG Case Study:Structured Systems Analysis 509

APPENDIX E MSG Case Study:Object-Oriented Analysis 513

APPENDIX E MSG Case Study:Object-Oriented Analysis 513

APPENDIX F MSG Case Study:Software Project Management Plan 514

APPENDIX F MSG Case Study:Software Project Management Plan 514

APPENDIX G MSG Case Study:Design 519

APPENDIX G MSG Case Study:Design 519

APPENDIX H MSG Case Study:Black-Box Test Cases 539

APPENDIX H MSG Case Study:Black-Box Test Cases 539

APPENDIX I MSG Case Study:Source Code 542

APPENDIX I MSG Case Study:Source Code 542

Bibliography 581

Bibliography 581

Author Index 605

Author Index 605

Subject Index 608

Subject Index 608