《基于项目的软件工程 面向对象方法 影印版》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:(美)EvelynStiller,(美)CathieLeBlanc著
  • 出 版 社:北京:高等教育出版社
  • 出版年份:2002
  • ISBN:7040114038
  • 页数:382 页
图书介绍:

CHAPTER 1 Introduction to Software Engineering 1

1.1 Key Concepts 1

1.2 Why Engineer Software? 1

1.3 Elements of a Software Development Paradigm 7

1.3.1 Project Conceptualization 7

1.3.2 Project Representation 9

1.3.3 Project Implementation 10

1.4 A Brief History of Software Engineering Techniques 10

1.4.1 Structured Programming 12

1.4.2 Functional Decomposition 12

1.4.3 Structured Analysis and Design 14

1.4.4 Data-Centered Paradigm 16

1.4.5 Object-Oriented Paradigm 18

1.5 The Costs of Not Engineering Software 22

1.6 Why Software Engineering Is Not Universal 22

1.7 The Role of the Project 23

1.8 Working in Teams 24

1.9 Creating the Project Team 24

1.10 CLASS PROJECT:Functional Requirements 26

1.10.1 Project Overview 27

1.10.2 Game Elements 28

1.10.3 The Game Sequence of Events 28

1.10.4 Moving and Landing on Planets 30

1.10.5 Winning the Game 31

1.10.6 Project Time Frame 31

1.11 Questions for Review 32

CHAPTER 2 Object-Oriented Paradigm Overview 35

2.1 Key Concepts 35

2.2 Getting Acquainted with the Class Project 35

2.2.1 Guidelines for Creating Informal Scenarios 36

2.2.2 Sample Informal Scenario:User Makes a Move 37

2.3 Object-Oriented Conceptualization 38

2.3.1 Application-Specific Relationships 39

2.3.2 Inheritance 40

2.3.3 Aggregation/Composition 41

2.3.4 Other Categorizations of Relationships 42

2.4 The Software Life Cycle 43

2.4.1 The Software Development Process 43

2.5 Object-Oriented Modeling 49

2.5.1 Role of Model Building 49

2.5.2 Creating Quality Modules 50

2.5.3 Modeling Notation 53

2.5.4 Use of Models in Software Engineering 54

2.6 Qualities of a Good Object-Oriented System 55

2.7 Working in Teams 57

2.7.1 The Chief Programmer Team 57

2.7.2 Holding Effective Team Meetings 58

2.8 Questions for Review 60

CHAPTER 3 Object-Oriented Analysis 63

3.1 Key Concepts 63

3.2 Introduction to Requirements Analysis 63

3.3 The Importance of Requirements Analysis 64

3.4 Requirements Specification 67

3.5 CASE STUDY:Library Management System Specification 69

3.6 Evaluating the Requirements Specification 71

3.7 Refining the Requirements Specification 73

3.7.1 Prototyping as a Refinement Tool 73

3.8 Verifying the Requirements Specification 80

3.9 Propagating Requirements throughout Development 82

3.10 The Process of Requirements Analysis 82

3.10.1 Identifying Classes of UCCD 83

3.10.2 CASE STUDY:Identifying Classes for LMS 86

3.10.3 Identifying Use Cases 88

3.10.4 CASE STUDY:Identifying Use Cases in LMS 89

3.10.5 Scenario Development 92

3.10.6 CASE STUDY:Sample Scenarios in LMS 93

3.10.7 Modeling the System with UML 95

3.10.8 Class Diagrams 96

3.10.9 CASE STUDY:Class Diagrams for LMS 98

3.10.10 Use Case Diagrams 101

3.10.11 CASE STUDY:Use Case Diagrams for LMS 103

3.10.12 Requirements Analysis Summary 105

3.10.13 Evolving the System 107

3.11 Analyzing the CLASS PROJECT 107

3.12 Working in Teams 108

3.13 Questions for Review 109

CHAPTER 4 Product Design 111

4.1 Key Concepts 111

4.2 Objectives of Design 111

4.3 Class Design versus Product Design 112

4.4 Product Design Overview and Objectives 112

4.5 Object Persistence 114

4.5.1 Object Serialization 115

4.5.2 Evaluating Object Persistence 118

4.6 CASE STUDY:Object Persistence in LMS 118

4.7 Process Architecture 120

4.7.1 Modeling Multiple Nodes 121

4.7.2 Modeling Interprocess Communication 123

4.7.3 State Machines 123

4.7.4 Modeling Multiple Threads of Control 126

4.7.5 Effective Use of Network Resources 126

4.8 CASE STUDY:Interprocess Communication in LMS 127

4.9 CLASS PROJECT:Interprocess Communication in Galaxy Sleuth 127

4.10 User Interfaces 131

4.11 User Interface Design 132

4.11.1 User-Friendliness 133

4.12 User Interface Design Principles 135

4.12.1 Know the User 135

4.12.2 Rules for Interface Design 137

4.12.3 Interaction Styles 140

4.13 CASE STUDY:User Interface for LMS 150

4.14 Working in Teams 159

4.15 Class Project Product Design 159

4.16 Questions for Review 160

CHAPTER 5 Class Design 163

5.1 Key Concepts 163

5.2 The Class Design Process 163

5.2.1 Class Skeletons 165

5.2.2 CASE STUDY:Class Skeletons in LMS 165

5.2.3 System Decomposition 168

5.3 More UML 170

5.3.1 Notational Adornments for Class Diagrams 170

5.3.2 Interaction Diagrams 173

5.3.3 CASE STUDY:Interaction Diagrams for LMS 174

5.3.4 Collaboration Diagram Creation 178

5.3.5 CASE STUDY:More Interaction Diagrams in LMS 180

5.3.6 Evaluating Design 183

5.3.7 CASE STUDY:Evaluating Design of LMS 183

5.3.8 Object Diagrams 184

5.3.9 CASE STUDY:Object Diagrams for LMS 184

5.3.10 Object Diagram Creation 185

5.4 Objectives of the Class Design Phase 186

5.4.1 Code Reuse 186

5.4.2 CASE STUDY:Code Reuse in LMS 187

5.4.3 Well-Designed Classes and Methods 188

5.4.4 Data Integrity 188

5.5 Verification of the Class Design 189

5.6 Designing the CLASS PROJECT 191

5.7 Questions for Review 192

CHAPTER 6 CASE STUDY:Game2D with Method Design 193

6.1 Key Concepts 193

6.2 Overview 193

6.3 Requirements Specification 194

6.4 Refined Requirements Specification 194

6.5 Requirements Analysis 198

6.5.1 List of Nouns 198

6.5.2 Analysis of List of Nouns 198

6.5.3 List of Primary Classes 200

6.5.4 Use Case Development 200

6.5.5 Scenarios 205

6.5.6 Refined Class List 207

6.5.7 Modeling 208

6.6 Product Design 210

6.6.1 Process Architecture 211

6.6.2 Graphical User Interface Review 214

6.7 Class Design 214

6.7.1 Interaction Diagrams 214

6.7.2 Object Diagrams 216

6.7.3 Reuse 218

6.7.4 Class Skeletons 221

6.8 Method Design 227

6.8.1 Specifying Methods 227

6.8.2 Method Design for Game2D 228

6.8.3 Creating Quality Methods 231

6.9 Questions for Review 233

CHAPTER 7 Implementation 235

7.1 Key Concepts 235

7.2 Introduction 235

7.3 Implementation Approaches 236

7.3.1 Big Bang Implementation 236

7.3.2 Top-Down versus Bottom-Up Implementation 237

7.3.3 Combining the Top-Down and Bottom-Up Approaches 241

7.3.4 Threads Approach to Implementation 242

7.4 Implementation Plan 242

7.5 CASE STUDY:Implementation Plan for the LMS 245

7.6 Programming Style 248

7.6.1 Shorter Is Simpler 250

7.6.2 Simpler Code Has Fewer Decisions 251

7.6.3 Excessively Nested Logic Should Be Avoided 253

7.7 Comments and Internal Documentation 254

7.7.1 Header Comment Block 255

7.7.2 Line Comments 256

7.8 Project Coding Standards 257

7.8.1 CASE STUDY:Programming Standards for the LMS 259

7.9 Implementing the CLASS PROJECT 261

7.10 Questions for Review 261

CHAPTER 8 Testing 263

8.1 Key Concepts 263

8.2 What Is Testing? 263

8.3 Principles of Object-Oriented Testing 264

8.4 Definitions 265

8.4.1 Error,Fault,and Failure 265

8.4.2 Test Plan 266

8.4.3 Test Oracle 268

8.4.4 Test Cases 268

8.4.5 White Box Testing 269

8.4.6 Black Box Testing 270

8.4.7 Unit Testing 271

8.4.8 Integration Testing 272

8.4.9 System Testing 274

8.5 Testing Steps 275

8.5.1 Analysis of Test Results 276

8.6 Special Issues for Testing Object-Oriented Systems 277

8.7 CASE STUDY:Testing the LMS 279

8.7.1 Test Plan 280

8.7.2 Unit Testing Phase I 282

8.7.3 Formulating Test Cases 283

8.8 Testing the CLASS PROJECT 285

8.9 Testing in the Face of Change:Configuration Management 285

8.10 Questions for Review 289

CHAPTER 9 Project Management 291

9.1 Key Concepts 291

9.2 Introduction 291

9.3 Project Manager Responsibilities 293

9.3.1 Software Metrics 294

9.3.2 CASE STUDY:Project Estimation 301

9.3.3 Quality Control Metrics 303

9.3.4 The Mythical Staff-Month 304

9.4 Configuration Management 305

9.4.1 Version Control 306

9.4.2 Change Control 307

9.4.3 Configuration Audit 308

9.4.4 Configuration Status Reporting 308

9.5 Project Planning and Monitoring 309

9.5.1 Evolving the Project 310

9.5.2 CASE STUDY:Evolving Game2D 311

9.5.3 The Project Plan 312

9.5.4 CASE STUDY:Project Plan for Game2D 313

9.5.5 Scheduling 315

9.5.6 Monitoring Progress 317

9.6 Project Teams 319

9.6.1 Building a Project Team 319

9.6.2 The Four Stages of Team Development 321

9.6.3 Conflict 323

9.6.4 Conflict Resolution 324

9.7 Risk Management 325

9.7.1 Sources of Technical Risk 326

9.7.2 Sources of Human Risk 329

9.7.3 Consequences of Risk 331

9.8 Reducing Risk 332

9.8.1 Early Product Evaluation 332

9.8.2 Early Implementation of Risky System Aspects 333

9.8.3 Early Use of New Technology 333

9.8.4 Early Resolution of Class Interaction Problems 333

9.9 Further Readings on Risk Management 333

9.10 CASE STUDY:Risk Analysis in the LMS 334

9.10.1 Risk Trade-Offs in the LMS 334

9.10.2 Technical Risks in the LMS 334

9.11 Questions for Review 335

CHAPTER 10 Design Patterns 337

10.1 Key Concepts 337

10.2 Motivation for Design Patterns 337

10.3 What Are Design Patterns? 338

10.4 Exploring Design Patterns 341

10.4.1 CASE STUDY:Decorator Design Pattern 341

10.4.2 CASE STUDY:Iterator Design Pattern 342

10.4.3 CASE STUDY:State Design Pattern 344

10.4.4 CASE STUDY:Singleton Design Pattern 347

10.5 Questions for Review 348

CHAPTER 11 Software Development Horror Stories 349

11.1 Key Concepts 349

11.2 Introduction 349

11.2.1 Causes of Failure 350

11.3 Therac-25 351

11.4 CONFIRM 354

11.5 Telephones and Communications 356

CHAPTER 12 Completing and Presenting the CLASS PROJECT 359

12.1 Succeeding with the Class Project 359

12.2 Reflecting on the Project 361

12.2.1 Analyzing What Went Wrong 362

12.3 Presenting the Project 363

12.3.1 Categories of Nontechnical Users 363

12.3.2 Elements of the Nontechnical Presentation 364

12.3.3 Elements of the Technical Presentation 364

12.3.4 The Project Presentation 365

References 367

Index 375