图书介绍

软件工程 实践者的研究方法 第8版 英文版PDF|Epub|txt|kindle电子书版本网盘下载

软件工程 实践者的研究方法 第8版 英文版
  • (美)普莱斯曼,(美)马克西姆著 著
  • 出版社: 北京:机械工业出版社
  • ISBN:9787111489504
  • 出版时间:2015
  • 标注页数:941页
  • 文件大小:160MB
  • 文件页数:969页
  • 主题词:软件工程-英文

PDF下载


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

下载说明

软件工程 实践者的研究方法 第8版 英文版PDF格式电子书版下载

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

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

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

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

图书目录

CHAPTER 1 THE NATURE OF SOFTWARE1

1.1 The Nature of Software3

1.1.1 Defining Software4

1.1.2 Software Application Domains6

1.1.3 Legacy Software7

1.2 The Changing Nature of Software9

1.2.1 WebApps9

1.2.2 Mobile Applications9

1.2.3 Cloud Computing10

1.2.4 Product Line Software11

1.3 Summary11

PROBLEMS AND POINTS TO PONDER12

FURTHER READINGS AND INFORMATION SOURCES12

CHAPTER 2 SOFTWARE ENGINEERING14

2.1 Defining the Discipline15

2.2 The Software Process16

2.2.1 The Process Framework17

2.2.2 Umbrella Activities18

2.2.3 Process Adaptation18

2.3 Software Engineering Practice19

2.3.1 The Essence of Practice19

2.3.2 General Principles21

2.4 Software Development Myths23

2.5 How It All Starts26

2.6 Summary27

PROBLEMS AND POINTS TO PONDER27

FURTHER READINGS AND INFORMATION SOURCES27

PART ONE THE SOFTWAREP ROCESS29

CHAPTER 3 SOFTWARE PROCESS STRUCTURE30

3.1 A Generic Process Model31

3.2 Defining a Framework Activity32

3.3 Identifying a Task Set34

3.4 Process Patterns35

3.5 Process Assessment and Improvement37

3.6 Summary38

PROBLEMS AND POINTS TO PONDER38

FURTHER READINGS AND INFORMATION SOURCES39

CHAPTER 4 PROCESS MODELS40

4.1 Prescriptive Process Models41

4.1.1 The Waterfall Model41

4.1.2 Incremental Process Models43

4.1.3 Evolutionary Process Models45

4.1.4 Concurrent Models49

4.1.5 A Final Word on Evolutionary Processes51

4.2 Specialized Process Models52

4.2.1 Component-Based Development53

4.2.2 The Formal Methods Model53

4.2.3 Aspect-Oriented Software Development54

4.3 The Unified Process55

4.3.1 A Brief History56

4.3.2 Phases of the Unified Process56

4.4 Personal and Team Process Models59

4.4.1 Personal Software Process59

4.4.2 Team Software Process60

4.5 Process Technology61

4.6 Product and Process62

4.7 Summary64

PROBLEMS AND POINTS TO PONDER64

FURTHER READINGS AND INFORMATION SOURCES65

CHAPTER 5 AGILE DEVELOPMENT66

5.1 What Is Agility?68

5.2 Agility and the Cost of Change68

5.3 What Is an Agile Process?69

5.3.1 Agility Principles70

5.3.2 The Politics of Agile Development71

5.4 Extreme Programming72

5.4.1 The XP Process72

5.4.2 Industrial XP75

5.5 Other Agile Process Models77

5.5.1 Scrum78

5.5.2 Dynamic Systems Development Method79

5.5.3 Agile Modeling80

5.5.4 Agile Unified Process82

5.6 A Tool Set for the Agile Process83

5.7 Summary84

PROBLEMS AND POINTS TO PONDER85

FURTHER READINGS AND INFORMATION SOURCES85

CHAPTER 6 HUMAN ASPECTS OF SOFTWARE ENGINEERING87

6.1 Characteristics of a Software Engineer88

6.2 The Psychology of Software Engineering89

6.3 The Software Team90

6.4 Team Structures92

6.5 Agile Teams93

6.5.1 The Generic Agile Team93

6.5.2 The XP Team94

6.6 The Impact Of Social Media95

6.7 Software Engineering Using the Cloud97

6.8 Collaboration Tools98

6.9 Global Teams99

6.10 Summary100

PROBLEMS AND POINTS TO PONDER101

FURTHER READINGS AND INFORMATION SOURCES102

PART TWO MODELING103

CHAPTER 7 PRINCIPLES THAT GUIDE PRACTICE104

7.1 Software Engineering Knowledge105

7.2 Core Principles106

7.2.1 Principles That Guide Process106

7.2.2 Principles That Guide Practice107

7.3 Principles That Guide Each Framework Activity109

7.3.1 Communication Principles110

7.3.2 Planning Principles112

7.3.3 Modeling Principles114

7.3.4 Construction Principles121

7.3.5 Deployment Principles125

7.4 Work Practices126

7.5 Summary127

PROBLEMS AND POINTS TO PONDER128

FURTHER READINGS AND INFORMATION SOURCES129

CHAPTER 8 UNDERSTANDING REQUIREMENTS131

8.1 Requirements Engineering132

8.2 Establishing the Groundwork138

8.2.1 Identifying Stakeholders139

8.2.2 Recognizing Multiple Viewpoints139

8.2.3 Working toward Collaboration140

8.2.4 Asking the First Questions140

8.2.5 Nonfunctional Requirements141

8.2.6 Traceability142

8.3 Eliciting Requirements142

8.3.1 Collaborative Requirements Gathering143

8.3.2 Quality Function Deployment146

8.3.3 Usage Scenarios146

8.3.4 Elicitation Work Products147

8.3.5 Agile Requirements Elicitation148

8.3.6 Service-Oriented Methods148

8.4 Developing Use Cases149

8.5 Building the Analysis Model154

8.5.1 Elements of the Analysis Model154

8.5.2 Analysis Patterns157

8.5.3 Agile Requirements Engineering158

8.5.4 Requirements for Self-Adaptive Systems158

8.6 Negotiating Requirements159

8.7 Requirements Monitoring160

8.8 Validating Requirements161

8.9 Avoiding Common Mistakes162

8.10 Summary162

PROBLEMS AND POINTS TO PONDER163

FURTHER READINGS AND OTHER INFORMATION SOURCES164

CHAPTER 9 REQUIREMENTS MODELING:SCENARIO-BASED METHODS166

9.1 Requirements Analysis167

9.1.1 Overall Objectives and Philosophy168

9.1.2 Analysis Rules of Thumb169

9.1.3 Domain Analysis170

9.1.4 Requirements Modeling Approaches171

9.2 Scenario-Based Modeling173

9.2.1 Creating a Preliminary Use Case173

9.2.2 Refining a Preliminary Use Case176

9.2.3 Writing a Formal Use Case177

9.3 UML Models That Supplement the Use Case179

9.3.1 Developing an Activity Diagram180

9.3.2 Swimlane Diagrams181

9.4 Summary182

PROBLEMS AND POINTS TO PONDER182

FURTHER READINGS AND INFORMATION SOURCES183

CHAPTER 10 REQUIREMENTS MODELING:CLASS-BASED METHODS184

10.1 Identifying Analysis Classes185

10.2 Specifying Attributes188

10.3 Defining Operations189

10.4 Class-Responsibility-Collaborator Modeling192

10.5 Associations and Dependencies198

10.6 Analysis Packages199

10.7 Summary200

PROBLEMS AND POINTS TO PONDER201

FURTHER READINGS AND INFORMATION SOURCES201

CHAPTER 11 REQUIREMENTS MODELING:BEHAVIOR,PATTERNS,AND WEB/MOBILE APPS202

11.1 Creating a Behavioral Model203

11.2 Identifying Events with the Use Case203

11.3 State Representations204

11.4 Patterns for Requirements Modeling207

11.4.1 Discovering Analysis Patterns208

11.4.2 A Requirements Pattern Example:Actuator-Sensor209

11.5 Requirements Modeling for Web and Mobile Apps213

11.5.1 How Much Analysis Is Enough?214

11.5.2 Requirements Modeling Input214

11.5.3 Requirements Modeling Output215

11.5.4 Content Model216

11.5.5 Interaction Model for Web and Mobile Apps217

11.5.6 Functional Model218

11.5.7 Configuration Models for Web Apps219

11.5.8 Navigation Modeling220

11.6 Summary221

PROBLEMS AND POINTS TO PONDER222

FURTHER READINGS AND INFORMATION SOURCES222

CHAPTER 12 DESIGN CONCEPTS224

12.1 Design within the Context of Software Engineering225

12.2 The Design Process228

12.2.1 Software Quality Guidelines and Attributes228

12.2.2 The Evolution of Software Design230

12.3 Design Concepts231

12.3.1 Abstraction232

12.3.2 Architecture232

12.3.3 Patterns233

12.3.4 Separation of Concerns234

12.3.5 Modularity234

12.3.6 Information Hiding235

12.3.7 Functional Independence236

12.3.8 Refinement237

12.3.9 Aspects237

12.3.10 Refactoring238

12.3.11 Object-Oriented Design Concepts238

12.3.12 Design Classes239

12.3.13 Dependency Inversion241

12.3.14 Design for Test242

12.4 The Design Model243

12.4.1 Data Design Elements244

12.4.2 Architectural Design Elements244

12.4.3 Interface Design Elements245

12.4.4 Component-Level Design Elements247

12.4.5 Deployment-Level Design Elements248

12.5 Summary249

PROBLEMS AND POINTS TO PONDER250

FURTHER READINGS AND INFORMATION SOURCES251

CHAPTER 13 ARCHITECTURAL DESIGN252

13.1 Software Architecture253

13.1.1 What Is Architecture?253

13.1.2 Why Is Architecture Important?254

13.1.3 Architectural Descriptions255

13.1.4 Architectural Decisions256

13.2 Architectural Genres257

13.3 Architectural Styles258

13.3.1 A Brief Taxonomy of Architectural Styles258

13.3.2 Architectural Patterns263

13.3.3 Organization and Refinement263

13.4 Architectural Considerations264

13.5 Architectural Decisions266

13.6 Architectural Design267

13.6.1 Representing the System in Context267

13.6.2 Defining Archetypes269

13.6.3 Refining the Architecture into Components270

13.6.4 Describing Instantiations of the System272

13.6.5 Architectural Design for Web Apps273

13.6.6 Architectural Design for Mobile Apps274

13.7 Assessing Alternative Architectural Designs274

13.7.1 Architectural Description Languages276

13.7.2 Architectural Reviews277

13.8 Lessons Learned278

13.9 Pattern-based Architecture Review278

13.10 Architecture Conformance Checking279

13.11 Agility and Architecture280

13.12 Summary282

PROBLEMS AND POINTS TO PONDER282

FURTHER READINGS AND INFORMATION SOURCES283

CHAPTER 14 COMPONENT-LEVEL DESIGN285

14.1 What Is a Component?286

14.1.1 An Object-Oriented View286

14.1.2 The Traditional View288

14.1.3 A Process-Related View291

14.2 Designing Class-Based Components291

14.2.1 Basic Design Principles292

14.2.2 Component-Level Design Guidelines295

14.2.3 Cohesion296

14.2.4 Coupling298

14.3 Conducting Component-Level Design299

14.4 Component-Level Design for WebApps305

14.4.1 Content Design at the Component Level306

14.4.2 Functional Design at the Component Level306

14.5 Component-Level Design for Mobile Apps306

14.6 Designing Troditional Components307

14.7 Component-Based Development308

14.7.1 Domain Engineering308

14.7.2 Component Qualification,Adaptation,and Composition309

14.7.3 Architectural Mismatch311

14.7.4 Analysis and Design for Reuse312

14.7.5 Classifying and Retrieving Components312

14.8 Summary313

PROBLEMS AND POINTS TO PONDER315

FURTHER READINGS AND INFORMATION SOURCES315

CHAPTER 15 USER INTERFACE DESIGN317

15.1 The Golden Rules318

15.1.1 Place the User in Control318

15.1.2 Reduce the User's Memory Load319

15.1.3 Make the Interface Consistent321

15.2 User Interface Analysis and Design322

15.2.1 Interface Analysis and Design Models322

15.2.2 The Process323

15.3 Interface Analysis325

15.3.1 User Analysis325

15.3.2 Task Analysis and Modeling326

15.3.3 Analysis of Display Content331

15.3.4 Analysis of the Work Environment331

15.4 Interface Design Steps332

15.4.1 Applying Interface Design Steps332

15.4.2 User Interface Design Patterns334

15.4.3 Design Issues335

15.5 WebApp and Mobile Interface Design337

15.5.1 Interface Design Principles and Guidelines337

15.5.2 Interface Design Workflow for Web and Mobile Apps341

15.6 Design Evaluation342

15.7 Summary344

PROBLEMS AND POINTS TO PONDER345

FURTHER READINGS AND INFORMATION SOURCES346

CHAPTER 16 PATTERN-BASED DESIGN347

16.1 Design Patterns348

16.1.1 Kinds Of Patterns349

16.1.2 Frameworks351

16.1.3 Describing a Pattern352

16.1.4 Pattern Languages and Repositories353

16.2 Pattern-Based Software Design354

16.2.1 Pattern-Based Design in Context354

16.2.2 Thinking in Patterns354

16.2.3 Design Tasks356

16.2.4 Building a Pattern-Organizing Table358

16.2.5 Common Design Mistakes359

16.3 Architectural Patterns359

16.4 Component-Level Design Patterns360

16.5 User Interface Design Patterns362

16.6 WebApp Design Patterns364

16.6.1 Design Focus365

16.6.2 Design Granularity365

16.7 Patterns for Mobile Apps366

16.8 Summary367

PROBLEMS AND POINTS TO PONDER368

FURTHER READINGS AND INFORMATION SOURCES369

CHAPTER 17 WEBAPP DESIGN371

17.1 WebApp Design Quality372

17.2 Design Goals374

17.3 A Design Pyramid for WebApps375

17.4 WebApp Interface Design376

17.5 Aesthetic Design377

17.5.1 Layout Issues378

17.5.2 Graphic Design Issues378

17.6 Content Design379

17.6.1 Content Objects379

17.6.2 Content Design Issues380

17.7 Architecture Design381

17.7.1 Content Architecture381

17.7.2 WebApp Architecture384

17.8 Navigation Design385

17.8.1 Navigation Semantics385

17.8.2 Navigation Syntax387

17.9 Component-Level Design387

17.10 Summary388

PROBLEMS AND POINTS TO PONDER389

FURTHER READINGS AND INFORMATION SOURCES389

CHAPTER 18 MOBILEAPP DESIGN391

18.1 The Challenges392

18.1.1 Development Considerations392

18.1.2 Technical Considerations393

18.2 Developing MobileApps395

18.2.1 MobileApp Quality397

18.2.2 User Interface Design398

18.2.3 Context-Aware Apps399

18.2.4 Lessons Learned400

18.3 MobileApp Design-Best Practices401

18.4 Mobility Environments403

18.5 The Cloud405

18.6 The Applicability of Conventional Software Engineering407

18.7 Summary408

PROBLEMS AND POINTS TO PONDER409

FURTHER READINGS AND INFORMATION SOURCES409

PART THREE QUALITY MANAGEMENT411

CHAPTER 19 QUALITY CONCEPTS412

19.1 What Is Quality?413

19.2 Software Quality414

19.2.1 Garvin's Quality Dimensions415

19.2.2 McCall's Quality Factors416

19.2.3 ISO 9126 Quality Factors418

19.2.4 Targeted Quality Factors418

19.2.5 The Transition to a Quantitative View420

19.3 The Software Quality Dilemma420

19.3.1 "Good Enough"Software421

19.3.2 The Cost of Quality422

19.3.3 Risks424

19.3.4 Negligence and Liability425

19.3.5 Quality and Security425

19.3.6 The Impact of Management Actions426

19.4 Achieving Software Quality427

19.4.1 Software Engineering Methods427

19.4.2 Project Management Techniques427

19.4.3 Quality Control427

19.4.4 Quality Assurance428

19.5 Summary428

PROBLEMS AND POINTS TO PONDER429

FURTHER READINGS AND INFORMATION SOURCES429

CHAPTER 20 REVIEW TECHNIQUES431

20.1 Cost Impact of Software Defects432

20.2 Defect Amplification and Removal433

20.3 Review Metrics and Their Use435

20.3.1 Analyzing Metrics435

20.3.2 Cost-Effectiveness Of Reviews436

20.4 Reviews:A Formality Spectrum438

20.5 Informal Reviews439

20.6 Formal Technical Reviews441

20.6.1 The Review Meeting441

20.6.2 Review Reporting and Record Keeping442

20.6.3 Review Guidelines442

20.6.4 Sample-Driven Reviews444

20.7 Post-Mortem Evaluations445

20.8 Summary446

PROBLEMS AND POINTS TO PONDER446

FURTHER READINGS AND INFORMATION SOURCES447

CHAPTER 21 SOFTWARE QUALITY ASSURANCE448

21.1 Background Issues449

21.2 Elements of Software Quality Assurance450

21.3 SQA Processes and Product Characteristics452

21.4 SQA Tasks,Goals,and Metrics452

21.4.1 SQA Tasks453

21.4.2 Goals,Attributes,and Metrics454

21.5 Formal Approaches to SQA456

21.6 Statistical Software Quality Assurance456

21.6.1 A Generic Example457

21.6.2 Six Sigma for Software Engineering458

21.7 Software Reliability459

21.7.1 Measures of Reliability and Availability459

21.7.2 Software Safety460

21.8 The ISO 9000 Quality Standards461

21.9 The SQA Plan463

21.10 Summary463

PROBLEMS AND POINTS TO PONDER464

FURTHER READINGS AND INFORMATION SOURCES464

CHAPTER 22 SOFTWARE TESTING STRATEGIES466

22.1 A Strategic Approach to Software Testing466

22.1.1 Verification and Validation468

22.1.2 Organizing for Software Testing468

22.1.3 Software Testing Strategy-The Big Picture469

22.1.4 Criteria for Completion of Testing472

22.2 Strategic Issues472

22.3 Test Strategies for Conventional Software473

22.3.1 Unit Testing473

22.3.2 Integration Testing475

22.4 Test Strategies for Object-Oriented Software481

22.4.1 Unit Testing in the OO Context481

22.4.2 Integration Testing in the OO Context481

22.5 Test Strategies for WebApps482

22.6 Test Strategies for MobileApps483

22.7 Validation Testing483

22.7.1 Validation-Test Criteria484

22.7.2 Configuration Review484

22.7.3 Alpha and Beta Testing484

22.8 System Testing486

22.8.1 Recovery Testing486

22.8.2 Security Testing486

22.8.3 Stress Testing487

22.8.4 Performance Testing487

22.8.5 Deployment Testing487

22.9 The Art of Debugging488

22.9.1 The Debugging Process488

22.9.2 Psychological Considerations490

22.9.3 Debugging Strategies491

22.9.4 Correcting the Error492

22.10 Summary493

PROBLEMS AND POINTS TO PONDER493

FURTHER READINGS AND INFORMATION SOURCES494

CHAPTER 23 TESTING CONVENTIONAL APPLICATIONS496

23.1 Software Testing Fundamentals497

23.2 Internal and External Views of Testing499

23.3 White-Box Testing500

23.4 Basis Path Testing500

23.4.1 Flow Graph Notation500

23.4.2 Independent Program Paths502

23.4.3 Deriving Test Cases504

23.4.4 Graph Matrices506

23.5 Control Structure Testing507

23.6 Black-Box Testing509

23.6.1 Graph-Based Testing Methods509

23.6.2 Equivalence Partitioning511

23.6.3 Boundary Value Analysis512

23.6.4 Orthogonal Array Testing513

23.7 Model-Based Testing516

23.8 Testing Documentation and Help Facilities516

23.9 Testing for Real-Time Systems517

23.10 Patterns for Software Testing519

23.11 Summary520

PROBLEMS AND POINTS TO PONDER521

FURTHER READINGS AND INFORMATION SOURCES521

CHAPTER 24 TESTING OBJECT-ORIENTED APPLICATIONS523

24.1 Broadening the View of Testing524

24.2 Testing OOA and OOD Models525

24.2.1 Correctness of OOA and OOD Models525

24.2.2 Consistency of Object-Oriented Models526

24.3 Object-Oriented Testing Strategies528

24.3.1 Unit Testing in the OO Context528

24.3.2 Integration Testing in the OO Context529

24.3.3 Validation Testing in an OO Context529

24.4 Object-Oriented Testing Methods529

24.4.1 The Test-Case Design Implications of OO Concepts530

24.4.2 Applicability of Conventional Test-Case Design Methods531

24.4.3 Fault-Based Testing531

24.4.4 Scenario-Based Test Design532

24.5 Testing Methods Applicable at the Class Level532

24.5.1 Random Testing for OO Classes532

24.5.2 Partition Testing at the Class Level533

24.6 Interclass Test-Case Design534

24.6.1 Multiple Class Testing534

24.6.2 Tests Derived from Behavior Models536

24.7 Summary537

PROBLEMS AND POINTS TO PONDER538

FURTHER READINGS AND INFORMATION SOURCES538

CHAPTER 25 TESTING WEB APPLICATIONS540

25.1 Testing Concepts for WebApps541

25.1.1 Dimensions of Quality541

25.1.2 Errors within a WebApp Environment542

25.1.3 Testing Strategy543

25.1.4 Test Planning543

25.2 The Testing Process-An Overview544

25.3 Content Testing545

25.3.1 Content Testing Objectives545

25.3.2 Database Testing547

25.4 User Interface Testing549

25.4.1 Interface Testing Strategy549

25.4.2 Testing Interface Mechanisms550

25.4.3 Testing Interface Semantics552

25.4.4 Usability Tests552

25.4.5 Compatibility Tests554

25.5 Component-Level Testing555

25.6 Navigation Testing556

25.6.1 Testing Navigation Syntax556

25.6.2 Testing Navigation Semantics556

25.7 Configuration Testing558

25.7.1 Server-Side Issues558

25.7.2 Client-Side Issues559

25.8 Security Testing559

25.9 Performance Testing560

25.9.1 Performance Testing Objectives561

25.9.2 Load Testing562

25.9.3 Stress Testing562

25.10 Summary563

PROBLEMS AND POINTS TO PONDER564

FURTHER READINGS AND INFORMATION SOURCES565

CHAPTER 26 TESTING MOBILEAPPS567

26.1 Testing Guidelines568

26.2 The Testing Strategies569

26.2.1 Are Conventional Approaches Applicable?570

26.2.2 The Need for Automation571

26.2.3 Building a Test Matrix572

26.2.4 Stress Testing573

26.2.5 Testing in a Production Environment573

26.3 Considering the Spectrum of User Interaction574

26.3.1 Gesture Testing575

26.3.2 Voice Input and Recognition576

26.3.3 Virtual Key Board Input577

26.3.4 Alerts and Extraordinary Conditions577

26.4 Test Across Borders578

26.5 Real-Time Testing Issues578

26.6 Testing Tools and Environments579

26.7 Summary581

PROBLEMS AND POINTS TO PONDER582

FURTHER READINGS AND INFORMATION SOURCES582

CHAPTER 27 SECURITY ENGINEERING584

27.1 Analyzing Security Requirements585

27.2 Security and Privacy in an Online Warld586

27.2.1 Social Media587

27.2.2 Mobile Applications587

27.2.3 Cloud Computing587

27.2.4 The Internet of Things588

27.3 Security Engineering Analysis588

27.3.1 Security Requirement Elicitation589

27.3.2 Security Modeling590

27.3.3 Measures Design591

27.3.4 Correctness Checks591

27.4 Security Assurance592

27.4.1 The Security Assurance Process592

27.4.2 Organization and Management593

27.5 Security Risk Analysis594

27.6 The Role of Conventional Software Engineering Activities595

27.7 Verification of Trustworthy Systems597

27.8 Summary599

PROBLEMS AND POINTS TO PONDER599

FURTHER READINGS AND INFORMATION SOURCES600

CHAPTER 28 FORMAL MODELING AND VERIFICATION601

28.1 The Cleanroom Strategy602

28.2 Functional Specification604

28.2.1 Black-Box Specification605

28.2.2 State-Box Specification606

28.2.3 Clear-Box Specification607

28.3 Cleanroom Design607

28.3.1 Design Refinement608

28.3.2 Design Verification608

28.4 Cleanroom Testing610

28.4.1 Statistical Use Testing610

28.4.2 Certification612

28.5 Rethinking Formal Methods612

28.6 Formal Methods Concepts615

28.7 Alternative Arguments618

28.8 Summary619

PROBLEMS AND POINTS TO PONDER620

FURTHER READINGS AND INFORMATION SOURCES621

CHAPTER 29 SOFTWARE CONFIGURATION MANAGEMENT623

29.1 Software Configuration Management624

29.1.1 An SCM Scenario625

29.1.2 Elements of a Configuration Management System626

29.1.3 Baselines626

29.1.4 Software Configuration Items628

29.1.5 Management of Dependencies and Changes628

29.2 The SCM Repository630

29.2.1 General Features and Content630

29.2.2 SCM Features631

29.3 The SCM Process632

29.3.1 Identification of Objects in the Software Configuration633

29.3.2 Version Control634

29.3.3 Change Control635

29.3.4 Impact Management638

29.3.5 Configuration Audit639

29.3.6 Status Reporting639

29.4 Configuration Management for Web and MobileApps640

29.4.1 Dominant Issues641

29.4.2 Configuration Objects642

29.4.3 Content Management643

29.4.4 Change Management646

29.4.5 Version Control648

29.4.6 Auditing and Reporting649

29.5 Summary650

PROBLEMS AND POINTS TO PONDER651

FURTHER READINGS AND INFORMATION SOURCES651

CHAPTER 30 PRODUCT METRICS653

30.1 A Framework for Product Metrics654

30.1.1 Measures,Metrics,and Indicators654

30.1.2 The Challenge of Product Metrics655

30.1.3 Measurement Principles656

30.1.4 Goal-Oriented Software Measurement656

30.1.5 The Attributes of Effective Software Metrics657

30.2 Metrics for the Requirements Model659

30.2.1 Function-Based Metrics659

30.2.2 Metrics for Specification Quality662

30.3 Metrics for the Design Model663

30.3.1 Architectural Design Metrics663

30.3.2 Metrics for Object-Oriented Design666

30.3.3 Class-Oriented Metrics-The CK Metrics Suite667

30.3.4 Class-Oriented Metrics-The MOOD Metrics Suite670

30.3.5 OO Metrics Proposed by Lorenz and Kidd671

30.3.6 Component-Level Design Metrics671

30.3.7 Operation-Oriented Metrics671

30.3.8 User Interface Design Metrics672

30.4 Design Metrics for Web and Mobile Apps672

30.5 Metrics for Source Code675

30.6 Metrics for Testing676

30.6.1 Halstead Metrics Applied to Testing676

30.6.2 Metrics for Object-Oriented Testing677

30.7 Metrics for Maintenance678

30.8 Summary679

PROBLEMS AND POINTS TO PONDER679

FURTHER READINGS AND INFORMATION SOURCES680

PART FOUR MANAGING SOFTWARE PROJECTS683

CHAPTER 31 PROJECT MANAGEMENT CONCEPTS684

31.1 The Management Spectrum685

31.1.1 The People685

31.1.2 The Product686

31.1.3 The Process686

31.1.4 The Project686

31.2 People687

31.2.1 The Stakeholders687

31.2.2 Team Leaders688

31.2.3 The Software Team689

31.2.4 Agile Teams691

31.2.5 Coordination and Communication Issues692

31.3 The Product693

31.3.1 Software Scope694

31.3.2 Problem Decomposition694

31.4 The Process694

31.4.1 Melding the Product and the Process695

31.4.2 Process Decomposition696

31.5 The Project697

31.6 The W5HH Principle698

31.7 Critical Practices699

31.8 Summaty700

PROBLEMS AND POINTS TO PONDER700

FURTHER READINGS AND INFORMATION SOURCES701

CHAPTER 32 PROCESS AND PROJECT METRICS703

32.1 Metrics in the Process and Project Domains704

32.1.1 Process Metrics and Software Process Improvement704

32.1.2 Project Metrics707

32.2 Software Measurement708

32.2.1 Size-Oriented Metrics709

32.2.2 Function-Driented Metrics710

32.2.3 Reconciling LOC and FP Metrics711

32.2.4 Object-Oriented Metrics713

32.2.5 Use Case-Oriented Metrics714

32.2.6 WebApp Project Metrics714

32.3 Metrics for Software Quality716

32.3.1 Measuring Quality717

32.3.2 Defect Removal Efficiency718

32.4 Integrating Metrics within the Software Process719

32.4.1 Arguments for Software Metrics720

32.4.2 Establishing a Baseline720

32.4.3 Metrics Collection,Computation and Evaluation721

32.5 Metrics for Small Organizations721

32.6 Establishing a Software Metrics Program722

32.7 Summary724

PROBLEMS AND POINTS TO PONDER724

FURTHER READINGS AND INFORMATION SOURCES725

CHAPTER 33 ESTIMATION FOR SOFTWARE PROJECTS727

33.1 Observations on Estimation728

33.2 The Project Planning Process729

33.3 Software Scope and Feasibility730

33.4 Resources731

33.4.1 Human Resources731

33.4.2 Reusable Software Resources732

33.4.3 Environmental Resources732

33.5 Software Project Estimation733

33.6 Decomposition Techniques734

33.6.1 Software Sizing734

33.6.2 Problem-Based Estimation735

33.6.3 An Example of LOC-Based Estimation736

33.6.4 An Example of FP-Based Estimation738

33.6.5 Process-Based Estimation739

33.6.6 An Example of Process-Based Estimation740

33.6.7 Estimation with Use Cases740

33.6.8 An Example of Estimation Using Use Case Points742

33.6.9 Reconciling Estimates742

33.7 Empirical Estimation Models743

33.7.1 The Structure of Estimation Models744

33.7.2 The COCOMOⅡ Model744

33.7.3 The Software Equation744

33.8 Estimation for Object-Oriented Projects746

33.9 Specialized Estimation Techniques746

33.9.1 Estimation for Agile Development746

33.9.2 Estimation for WebApp Projects747

33.10 The Make/Buy Decision748

33.10.1 Creating a Decision Tree749

33.10.2 Outsourcing750

33.11 Summary752

PROBLEMS AND POINTS TO PONDER752

FURTHER READINGS AND INFORMATION SOURCES753

CHAPTER 34 PROJECT SCHEDULING754

34.1 Basic Concepts755

34.2 Project Scheduling757

34.2.1 Basic Principles758

34.2.2 The Relationship between People and Effort759

34.2.3 Effort Distribution760

34.3 Defining a Task Set for the Software Project761

34.3.1 A Task Set Example762

34.3.2 Refinement of Major Tasks763

34.4 Defining a Task Network764

34.5 Scheduling765

34.5.1 Time-Line Charts766

34.5.2 Tracking the Schedule767

34.5.3 Tracking Progress for an OO Project768

34.5.4 Scheduling for WebApp and Mobile Projects769

34.6 Earned Value Analysis772

34.7 Summary774

PROBLEMS AND POINTS TO PONDER774

FURTHER READINGS AND INFORMATION SOURCES776

CHAPTER 35 RISK MANAGEMENT777

35.1 Reactive versus Proactive Risk Strategies778

35.2 Software Risks778

35.3 Risk Identification780

35.3.1 Assessing Overall Project Risk781

35.3.2 Risk Components and Drivers782

35.4 Risk Projection782

35.4.1 Developing a Risk Table783

35.4.2 Assessing Risk Impact785

35.5 Risk Refinement787

35.6 Risk Mitigation,Monitoring,and Management788

35.7 The RMMM Plan790

35.8 Summary792

PROBLEMS AND POINTS TO PONDER792

FURTHER READINGS AND INFORMATION SOURCES793

CHAPTER 36 MAINTENANCE AND REENGINEERING795

36.1 Software Maintenance796

36.2 Software Supportability798

36.3 Reengineering798

36.4 Business Process Reengineering799

36.4.1 Business Processes799

36.4.2 A BPR Model800

36.5 Software Reengineering802

36.5.1 A Software Reengineering Process Model802

36.5.2 Software Reengineering Activities803

36.6 Reverse Engineering805

36.6.1 Reverse Engineering to Understand Data807

36.6.2 Reverse Engineering to Understand Processing807

36.6.3 Reverse Engineering User Interfaces808

36.7 Restructuring809

36.7.1 Code Restructuring809

36.7.2 Data Restructuring810

36.8 Forward Engineering811

36.8.1 Forward Engineering for Client-Server Architectures812

36.8.2 Forward Engineering for Object-Oriented Architectures813

36.9 The Economics of Reengineering813

36.10 Summary814

PROBLEMS AND POINTS TO PONDER815

FURTHER READINGS AND INFORMATION SOURCES816

PART FIVE ADVANCED TOPICS817

CHAPTER 37 SOFTWARE PROCESS IMPROVEMENT818

37.1 What Is SPI?819

37.1.1 Approaches to SPI819

37.1.2 Maturity Models821

37.1.3 Is SPI for Everyone?822

37.2 The SPI Process823

37.2.1 Assessment and Gap Analysis823

37.2.2 Education and Trainina825

37.2.3 Selection and Justification825

37.2.4 Installation/Migration826

37.2.5 Evaluation827

37.2.6 Risk Management for SPI827

37.3 The CMMI828

37.4 The People CMM832

37.5 Other SPI Frameworks832

37.6 SPI Return on Investment834

37.7 SPI Trends835

37.8 Summary836

PROBLEMS AND POINTS TO PONDER837

FURTHER READINGS AND INFORMATION SOURCES837

CHAPTER 38 EMERGING TRENDS IN SOFTWARE ENGINEERING839

38.1 Technology Evolution840

38.2 Prospects for a True Engineering Discipline841

38.3 Observing Software Engineering Trends842

38.4 Identifying"Soft Trends"843

38.4.1 Managing Complexity845

38.4.2 Open-World Software846

38.4.3 Emergent Requirements846

38.4.4 The Talent Mix847

38.4.5 Software Building Blocks847

38.4.6 Changing Perceptions of"Value"848

38.4.7 Open Source848

38.5 Technology Directions849

38.5.1 Process Trends849

38.5.2 The Grand Challenge851

38.5.3 Collaborative Development852

38.5.4 Requirements Engineering852

38.5.5 Model Driven Software Development853

38.5.6 Postmodern Design854

38.5.7 Test-Driven Development854

38.6 Tools-Related Trends855

38.7 Summary857

PROBLEMS AND POINTS TO PONDER857

FURTHER READINGS AND IN FORMATION SOURCES858

CHAPTER 39 CONCLUDING COMMENTS860

39.1 The Importance of Software-Revisited861

39.2 People and the Way They Build Systems861

39.3 New Modes for Representing Information862

39.4 The Long View864

39.5 The Software Engineer's Responsibility865

39.6 A Final Comment from RSP867

APPENDIX 1 AN INTRODUCTION TO UML869

APPENDIX 2 OBJECT-ORIENTED CONCEPTS891

APPENDIX 3 FORMAL METHODS899

REFERENCES909

INDEX933

热门推荐