图书介绍

软件工程 实践者的研究方法 英文版·第7版2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载

软件工程 实践者的研究方法 英文版·第7版
  • (美)普雷斯曼著 著
  • 出版社: 北京:机械工业出版社
  • ISBN:9787111318712
  • 出版时间:2010
  • 标注页数:898页
  • 文件大小:160MB
  • 文件页数:925页
  • 主题词:软件工程-英文

PDF下载


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

下载说明

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

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

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

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

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

图书目录

CHAPTER 1 SOFTWARE AND SOFTWARE ENGINEERING1

1.1 The Nature of Software3

1.1.1 Defining Software4

1.1.2 Software Application Domains7

1.1.3 Legacy Software9

1.2 The Unigue Nature of WebApps10

1.3 Software Engineering12

1.4 The Software Process14

1.5 Software Engineering Practice17

1.5.1 The Essence of Practice17

1.5.2 General Principles19

1.6 Software Myths21

1.7 How It All Starts24

1.8 Summary25

PROBLEMS AND POINTS TO PONDER25

FURTHER READINGS AND INFORMATION SOURCES26

PART ONE THE SOFTWARE PROCESS29

CHAPTER 2 PROCESS MODELS30

2.1 A Generic Process Model31

2.1.1 Defining a Framework Activity32

2.1.2 Identifying a Task Set34

2.1.3 Process Patterns35

2.2 Process Assessment and Improvement37

2.3 Prescriptive Process Models38

2.3.1 The Waterfall Model39

2.3.2 Incremental Process Models41

2.3.3 Evolutionary Process Models42

2.3.4 Concurrent Models48

2.3.5 A Final Word on Evolutionary Processes49

2.4 Specialized Process Models50

2.4.1 Component-Based Development50

2.4.2 The Formal Methods Model51

2.4.3 Aspect-Oriented Software Development52

2.5 The Unified Process53

2.5.1 A Brief History54

2.5.2 Phases of the Unified Process54

2.6 Personal and Team Process Models56

2.6.1 Personal Software Process(PSP)57

2.6.2 Team Software Process(TSP)58

2.7 Process Technology59

2.8 Product and Process60

2.9 Summary61

PROBLEMS AND POINTS TO PONDER62

FURTHER READINGS AND INFORMATION SOURCES63

CHAPTER 3 AGILE DEVELOPMENT65

3.1 What Is Agility?67

3.2 Agility and the Cost Of Change67

3.3 What Is an Agile Process?68

3.3.1 Agility Principles69

3.3.2 The Politics of Agile Development70

3.3.3 Human Factors71

3.4 Extreme Programming(XP)72

3.4.1 XP Values72

3.4.2 The XP Process73

3.4.3 Industrial XP77

3.4.4 The XP Debate78

3.5 Other Agile Process Models80

3.5.1 Adaptive Software Development(ASD)81

3.5.2 Scrum82

3.5.3 Dynamic Systems Development Method(DSDM)84

3.5.4 Crystal85

3.5.5 Feature Driven Development(FDD)86

3.5.6 Lean Software Development(LSD)87

3.5.7 Agile Modeling(AM)88

3.5.8 Agile Unified Process(AUP)89

3.6 A Tool Set for the Agile Process91

3.7 Summary91

PPOBLEMS AND POINTS TO PONDER92

FURTHER READINGS AND INFORMATION SOURCES93

PART TWO MODELING95

CHAPTER 4 PRINCIPLES THAT GUIDE PRACTICE96

4.1 Software Engineering Knowledge97

4.2 Core Principles98

4.2.1 Principles That Guide Process98

4.2.2 Principles That Guide Practice99

4.3 Principles That Guide Each Framework Activity101

4.3.1 Communication Principles101

4.3.2 Planning Principles103

4.3.3 Modeling Principles105

4.3.4 Construction Principles111

4.3.5 Deployment Principles113

4.4 Summary115

PROBLEMS AND POINTS TO PONDER116

FURTHER READINGS AND INFORMATION SOURCES116

CHAPTER 5 UNDERSTANDING REQUIREMENTS119

5.1 Requirements Engineering120

5.2 Establishing the Groundwork125

5.2.1 Identifying Stakeholders125

5.2.2 Recognizing Multiple Viewpoints126

5.2.3 Working toward Collaboration126

5.2.4 Asking the First Questions127

5.3 Eliciting Requirements128

5.3.1 Collaborative Requirements Gathering128

5.3.2 Quality Function Deployment131

5.3.3 Usage Scenarios132

5.3.4 Elicitation Work Products133

5.4 Developing Use Cases133

5.5 Building the Requirements Model138

5.5.1 Elements of the Requirements Model139

5.5.2 Analysis Patterns142

5.6 Negotiating Requirements142

5.7 Volidating Requirements144

5.8 Summary145

PROBLEMS AND POINTS TO PONDER145

FURTHER READINGS AND INFORMATION SOURCES146

CHAPTER 6 REQUIREMENTS MODELING:SCENARIOS,INFORMATION,AND ANALYSIS CLASSES148

6.1 Requirements Analysis149

6.1.1 Overall Objectives and Philosophy150

6.1.2 Analysis Rules of Thumb151

6.1.3 Domain Analysis151

6.1.4 Requirements Modeling Approaches153

6.2 Scenario-Based Modeling154

6.2.1 Creating a Preliminary Use Case155

6.2.2 Refining a Preliminary Use Case158

6.2.3 Writing a Formal Use Case159

6.3 UML Models That Supplement the Use Case161

6.3.1 Developing an Activity Diagram161

6.3.2 Swimlane Diagrams162

6.4 Data Modeling Concepts164

6.4.1 Data Objects164

6.4.2 Data Attributes164

6.4.3 Relationships165

6.5 Class-Based Modeling167

6.5.1 Identifying Analysis Classes167

6.5.2 Specifying Attributes171

6.5.3 Defining Operations171

6.5.4 Class-Responsibility-Collaborator(CRC)Modeling173

6.5.5 Associations and Dependencies180

6.5.6 Analysis Packages182

6.6 Summary183

PROBLEMS AND POINTS TO PONDER183

FURTHER READINGS AND INFORMATION SOURCES184

CHAPTER 7 REQUIREMENTS MODELING:FLOW,BEHAVIOR,PATTERNS,AND WEBAPPS186

7.1 Requirements Modeling Strategies186

7.2 Flow-Oriented Modeling187

7.2.1 Creating a Data Flow Model188

7.2.2 Creating a Control Flow Model191

7.2.3 The Control Specification191

7.2.4 The Process Specification192

7.3 Creating a Behavioral Model195

7.3.1 Identifying Events with the Use Case195

7.3.2 State Representations196

7.4 Patterns for Requirements Modeling199

7.4.1 Discovering Analysis Patterns200

7.4.2 A Requirements Pattern Example:Actuator-Sensor200

7.5 Requirements Modeling for WebApps205

7.5.1 How Much Analysis Is Enough?205

7.5.2 Requirements Modeling Input206

7.5.3 Requirements Modeling Output207

7.5.4 Content Model for WebApps207

7.5.5 Interaction Model for WebApps209

7.5.6 Functional Model for WebApps210

7.5.7 Configuration Models for WebApps211

7.5.8 Navigation Modeling212

7.6 Summary213

PROBLEMS AND POINTS TO PONDER213

FURTHER READINGS AND INFORMATION SOURCES214

CHAPTER 8 DESIGN CONCEPTS215

8.1 Design within the Context of Software Engineering216

8.2 The Design Process219

8.2.1 Software Quality Guidelines and Attributes219

8.2.2 The Evolution of Software Design221

8.3 Design Concepts222

8.3.1 Abstraction223

8.3.2 Architecture223

8.3.3 Patterns224

8.3.4 Separation of Concerns225

8.3.5 Modularity225

8.3.6 Information Hiding226

8.3.7 Functional Independence227

8.3.8 Refinement228

8.3.9 Aspects228

8.3.10 Refactoring229

8.3.11 Object-Oriented Design Concepts230

8.3.12 Design Classes230

8.4 The Design Model233

8.4.1 Data Design Elements234

8.4.2 Architectural Design Elements234

8.4.3 Interface Design Elements235

8.4.4 Component-Level Design Elements237

8.4.5 Deployment-Level Design Elements237

8.5 Summary239

PROBLEMS AND POINTS TO PONDER240

FURTHER READINGS AND INFORMATION SOURCES240

CHAPTER 9 ARCHITECTURAL DESIGN242

9.1 Software Architecture243

9.1.1 What Is Architecture?243

9.1.2 Why Is Architecture Important?245

9.1.3 Architectural Descriptions245

9.1.4 Architectural Decisions246

9.2 Architectural Genres246

9.3 Architectural Styles249

9.3.1 A Brief Taxonomy of Architectural Styles250

9.3.2 Architectural Patterns253

9.3.3 Organization and Refinement255

9.4 Architectural Design255

9.4.1 Representing the System in Context256

9.4.2 Defining Archetypes257

9.4.3 Refining the Architecture into Components258

9.4.4 Describing Instantiations of the System260

9.5 Assessing Alternative Architectural Designs261

9.5.1 An Architecture Trade-Off Analysis Method262

9.5.2 Architectural Complexity263

9.5.3 Architectural Description Languages264

9.6 Architectural Mapping Using Data Flow265

9.6.1 Transform Mapping265

9.6.2 Refining the Architectural Design272

9.7 Summary273

PROBLEMS AND POINTS TO PONDER274

FURTHER READINGS AND INFORMATION SOURCES274

CHAPTER 10 COMPONENT-LEVEL DESIGN276

10.1 What Is a Component?277

10.1.1 An Object-Oriented View277

10.1.2 The Traditional View279

10.1.3 A Process-Related View281

10.2 Designing Class-Based Components282

10.2.1 Basic Design Principles282

10.2.2 Component-Level Design Guidelines285

10.2.3 Cohesion286

10.2.4 Coupling288

10.3 Conducting Component-Level Design290

10.4 Component-Level Design for WebApps296

10.4.1 Content Design at the Component Level297

10.4.2 Functional Design at the Component Level297

10.5 Designing Traditional Components298

10.5.1 Graphical Design Notation299

10.5.2 Tabular Design Notation300

10.5.3 Program Design Language301

10.6 Component-Based Development303

10.6.1 Domain Engineering303

10.6.2 Component Qualification,Adaptation,and Composition304

10.6.3 Analysis and Design for Reuse306

10.6.4 Classifying and Retrieving Components307

10.7 Summary309

PROBLEMS AND POINTS TO PONDER310

FURTHER READINGS AND INFORMATION SOURCES311

CHAPTER 11 USER INTERFACE DESIGN312

11.1 The Golden Rules313

11.1.1 Place the User in Control313

11.1.2 Reduce the User's Memory Load314

11.1.3 Make the Interface Consistent316

11.2 User Interface Analysis and Design317

11.2.1 Interface Analysis and Design Models317

11.2.2 The Process319

11.3 Interface Analysis320

11.3.1 User Analysis321

11.3.2 Task Analysis and Modeling322

11.3.3 Analysis of Display Content327

11.3.4 Analysis of the Work Environment328

11.4 Interface Design Steps328

11.4.1 Applying Interface Design Steps329

11.4.2 User Interface Design Patterns330

11.4.3 Design Issues331

11.5 WebApp Interface Design335

11.5.1 Interface Design Principles and Guidelines336

11.5.2 Interface Design Workflow for WebApps340

11.6 Design Evaluation342

11.7 Summary344

PROBLEMS AND POINTS TO PONDER345

FURTHER READINGS AND INFORMATION SOURCES346

CHAPTER 12 PATTERN-BASED DESIGN347

12.1 Design Patterns348

12.1.1 Kinds of Patterns349

12.1.2 Frameworks352

12.1.3 Describing a Pattern352

12.1.4 Pattern Languages and Repositories353

12.2 Pattern-Based Software Design354

12.2.1 Pattern-Based Design in Context354

12.2.2 Thinking in Patterns356

12.2.3 Design Tasks357

12.2.4 Building a Pattern-Organizing Table358

12.2.5 Common Design Mistakes359

12.3 Architectural Patterns360

12.4 Component-Level Design Patterns362

12.5 User Interface Design Patterns364

12.6 WebApp Design Patterns368

12.6.1 Design Focus368

12.6.2 Design Granularity369

12.7 Summary370

PROBLEMS AND POINTS TO PONDER371

FURTHER READING AND INFORMATION SOURCES372

CHAPTER 13 WEBAPP DESIGN373

13.1 WebApp Design Quality374

13.2 Design Goals377

13.3 A Design Pyramid for WebApps378

13.4 WebApp Interface Design378

13.5 Aesthetic Design380

13.5.1 Layout Issues380

13.5.2 Graphic Design Issues381

13.6 Content Design382

13.6.1 Content Objects382

13.6.2 Content Design Issues382

13.7 Architecture Design383

13.7.1 Content Architecture384

13.7.2 WebApp Architecture386

13.8 Navigation Design388

13.8.1 Navigation Semantics388

13.8.2 Navigation Syntax389

13.9 Component-Level Design390

13.10 Object-Oriented Hypermedia Design Method(OOHDM)390

13.10.1 Conceptual Design for OOHDM391

13.10.2 Navigational Design for OOHDM391

13.10.3 Abstract Interface Design and Implementation392

13.11 Summary393

PROBLEMS AND POINTS TO PONDER394

FURTHER READINGS AND INFORMATION SOURCES395

PART THREE QUALITY MANAGEMENT397

CHAPTER 14 QUALITY CONCEPTS398

14.1 What Is Quality?399

14.2 Software Quality400

14.2.1 Garvin's Quality Dimensions401

14.2.2 McCall's Quality Factors402

14.2.3 ISO 9126 Quality Factors403

14.2.4 Targeted Quality Factors404

14.2.5 The Transition to a Quantitative View405

14.3 The Software Quality Dilemma406

14.3.1 “Good Enough”Software406

14.3.2 The Cost of Quality407

14.3.3 Risks409

14.3.4 Negligence and Liability410

14.3.5 Quality and Security410

14.3.6 The Impact of Management Actions411

14.4 Achieving Software Quality412

14.4.1 Software Engineering Methods412

14.4.2 Project Management Techniques412

14.4.3 Quality Control412

14.4.4 Quality Assurance413

14.5 Summary413

PROBLEMS AND POINTS TO PONDER414

FURTHER READINGS AND INFORMATION SOURCES414

CHAPTER 15 REVIEW TECHNIQUES416

15.1 Cost Impact of Software Defects417

15.2 Defect Amplification and Removal418

15.3 Review Metrics and Their Use420

15.3.1 Analyzing Metrics420

15.3.2 Cost Effectiveness of Reviews421

15.4 Reviews:A Formality Spectrum423

15.5 Informal Reviews424

15.6 Formal Technical Reviews426

15.6.1 The Review Meeting426

15.6.2 Review Reporting and Record Keeping427

15.6.3 Review Guidelines427

15.6.4 Sample-Driven Reviews429

15.7 Summary430

PROBLEMS AND POINTS TO PONDER431

FURTHER READINGS AND INFORMATION SOURCES431

CHAPTER 16 SOFTWARE QUALITY ASSURANCE432

16.1 Background Issues433

16.2 Elements of Software Quality Assurance434

16.3 SQA Tasks,Goals,and Metrics436

16.3.1 SQA Tasks436

16.3.2 Goals,Attributes,and Metrics437

16.4 Formal Approaches to SQA438

16.5 Statistical Software Quality Assurance439

16.5.1 A Generic Example439

16.5.2 Six Sigma for Software Engineering441

16.6 Software Reliability442

16.6.1 Measures of Reliability and Availability442

16.6.2 Software Safety443

16.7 The ISO 9000 Quality Standards444

16.8 The SQA Plan445

16.9 Summary446

PROBLEMS AND POINTS TO PONDER447

FURTHER READINGS AND INFORMATION SOURCES447

CHAPTER 17 SOFTWARE TESTING STRATEGIES449

17.1 A Strategic Approach to Software Testing450

17.1.1 Verification and Validation450

17.1.2 Organizing for Software Testing451

17.1.3 Software Testing Strategy—The Big Picture452

17.1.4 Criteria for Completion of Testing455

17.2 Strategic Issues455

17.3 Test Strategies for Conventional Software456

17.3.1 Unit Testing456

17.3.2 Integration Testing459

17.4 Test Strategies for Object-Oriented Software465

17.4.1 Unit Testing in the OO Context466

17.4.2 Integration Testing in the OO Context466

17.5 Test Strategies for WebApps467

17.6 Validation Testing467

17.6.1 Validation-Test Criteria468

17.6.2 Configuration Review468

17.6.3 Alpha and Beta Testing468

17.7 System Testing470

17.7.1 Recovery Testing470

17.7.2 Security Testing470

17.7.3 Stress Testing471

17.7.4 Performance Testing471

17.7.5 Deployment Testing472

17.8 The Art of Debugging473

17.8.1 The Debugging Process473

17.8.2 Psychological Considerations474

17.8.3 Debugging Strategies475

17.8.4 Correcting the Error477

17.9 Summary478

PROBLEMS AND POINTS TO PONDER478

FURTHER READINGS AND INFORMATION SOURCES479

CHAPTER 18 TESTING CONVENTIONAL APPLICATIONS481

18.1 Software Testing Fundamentals482

18.2 Internal and External Views of Testing484

18.3 White-Box Testing485

18.4 Basis Path Testing485

18.4.1 Flow Graph Notation485

18.4.2 Independent Program Paths487

18.4.3 Deriving Test Cases489

18.4.4 Graph Matrices491

18.5 Control Structure Testing492

18.5.1 Condition Testing492

18.5.2 Data Flow Testing493

18.5.3 Loop Testing493

18.6 Black-Box Testing495

18.6.1 Graph-Based Testing Methods495

18.6.2 Equivalence Partitioning497

18.6.3 Boundary Value Analysis498

18.6.4 Orthogonal Array Testing499

18.7 Model-Based Testing502

18.8 Testing for Specialized Environments,Architectures,and Applications503

18.8.1 Testing GUIs503

18.8.2 Testing of Client-Server Architectures503

18.8.3 Testing Documentation and Help Facilities505

18.8.4 Testing for Real-Time Systems506

18.9 Patterns for Software Testing507

18.10 Summary508

PROBLEMS AND POINTS TO PONDER509

FURTHER READINGS AND INFORMATION SOURCES510

CHAPTER 19 TESTING OBJECT-ORIENTED APPLICATIONS511

19.1 Broadening the View of Testing512

19.2 Testing OOA and OOD Models513

19.2.1 Correctness of OOA and OOD Models513

19.2.2 Consistency of Object-Oriented Models514

19.3 Object-Priented Testing Strategies516

19.3.1 Unit Testing in the OO Context516

19.3.2 Integration Testing in the OO Context516

19.3.3 Validation Testing in an OO Context517

19.4 Object-Oriented Testing Methods517

19.4.1 The Test-Case Design Implications of OO Concepts518

19.4.2 Applicability of Conventional Test-Case Design Methods518

19.4.3 Fault-Based Testing519

19.4.4 Test Cases and the Class Hierarchy519

19.4.5 Scenario-Based Test Design520

19.4.6 Testing Surface Structure and Deep Structure522

19.5 Testing Methods Applicable at the Class Level522

19.5.1 Random Testing for OO Classes522

19.5.2 Partition Testing at the Class Level524

19.6 Interclass Test-Case Design524

19.6.1 Multiple Class Testing524

19.6.2 Tests Derived from Behavior Models526

19.7 Summary527

PROBLEMS AND POINTS TO PONDER528

FURTHER READINGS AND INFORMTION SOURCES528

CHAPTER 20 TESTING WEB APPLICATIONS529

20.1 Testing Concepts for WebApps530

20.1.1 Dimensions of Quality530

20.1.2 Errors within a WebApp Environment531

20.1.3 Testing Strategy532

20.1.4 Test Planning532

20.2 The Testing Process—An Overview533

20.3 Content Testing534

20.3.1 Content Testing Objectives534

20.3.2 Database Testing535

20.4 User Interface Testing537

20.4.1 Interface Testing Strategy537

20.4.2 Testing Interface Mechanisms538

20.4.3 Testing Interface Semantics540

20.4.4 Usability Tests540

20.4.5 Compatibility Tests542

20.5 Component-Level Testing543

20.6 Navigation Testing545

20.6.1 Testing Navigation Syntax545

20.6.2 Testing Navigation Semantics546

20.7 Configuration Testing547

20.7.1 Server-Side Issues547

20.7.2 Client-Side Issues548

20.8 Security Testing548

20.9 Performance Testing550

20.9.1 Performance Testing Objectives550

20.9.2 Load Testing551

20.9.3 Stress Testing552

20.10 Summary553

PROBLEMS AND POINTS TO PONDER554

FURTHER READINGS AND INFORMATION SOURCES555

CHAPTER 21 FORMAL MODELING AND VERIFICATION557

21.1 The Cleanroom Strategy558

21.2 Functional Specification560

21.2.1 Black-Box Specification561

21.2.2 State-Box Specification562

21.2.3 Clear-Box Specification562

21.3 Cleanroom Design563

21.3.1 Design Refinement563

21.3.2 Design Verification564

21.4 Cleanroom Testing566

21.4.1 Statistical Use Testing566

21.4.2 Certification567

21.5 Formal Methods Concepts568

21.6 Applying Mathematical Notation for Formal Specification571

21.7 Formal Specification Languages573

21.7.1 Object Constraint Language(OCL)574

21.7.2 The Z Specification Language577

21.8 Summary580

PROBLEMS AND POINTS TO PONDER581

FURTHER READINGS AND INFORMATION SOURCES582

CHAPTER 22 SOFTWARE CONFIGURATION MANAGEMENT584

22.1 Software Configuration Management585

22.1.1 An SCM Scenario586

22.1.2 Elements of a Configuration Management System587

22.1.3 Baselines587

22.1.4 Software Configuration ltems589

22.2 The SCM Repository590

22.2.1 The Role of the Repository590

22.2.2 General Features and Content591

22.2.3 SCM Features592

22.3 The SCM Process593

22.3.1 Identification of Objects in the Software Configuration594

22.3.2 Version Control595

22.3.3 Change Control596

22.3.4 Configuration Audit599

22.3.5 Status Reporting600

22.4 Configuration Management for WebApps601

22.4.1 Dominant Issues601

22.4.2 WebApp Configuration Objects603

22.4.3 Content Management603

22.4.4 Change Management606

22.4.5 Version Control608

22.4.6 Auditing and Reporting609

22.5 Summary610

PROBLEMS AND POINTS TO PONDER611

FURTHER READINGS AND INFORMATION SOURCES612

CHAPTER 23 PRODUCT METRICS613

23.1 A Framework for Product Metrics614

23.1.1 Measures,Metrics,and Indicators614

23.1.2 The Challenge of Product Metrics615

23.1.3 Measurement Principles616

23.1.4 Goal-Oriented Software Measurement617

23.1.5 The Attributes of Effective Software Metrics618

23.2 Metrics for the Requirements Model619

23.2.1 Function-Based Metrics620

23.2.2 Metrics for Specification Quality623

23.3 Metrics for the Design Model624

23.3.1 Architectural Design Metrics624

23.3.2 Metrics for Object-Oriented Design627

23.3.3 Class-Oriented Metrics—The CK Metrics Suite628

23.3.4 Class-Oriented Metrics—The MOOD Metrics Suite631

23.3.5 OO Metrics Proposed by Lorenz and Kidd632

23.3.6 Component-Level Design Metrics632

23.3.7 Operation-Oriented Metrics634

23.3.8 User Interface Design Metrics635

23.4 Design Metrics for WebApps636

23.5 Metrics for Source Code638

23.6 Metrics for Testing639

23.6.1 Halstead Metrics Applied to Testing639

23.6.2 Metrics for Object-Oriented Testing640

23.7 Metrics for Maintenance641

23.8 Summary642

PROBLEMS AND POINTS TO PONDER642

FURTHER READINGS AND INFORMATION SOURCES643

PART FOUR MANAGING SOFTWARE PROJECTS645

CHAPTER 24 PROJECT MANAGEMENT CONCEPTS646

24.1 The Management Spectrum647

24.1.1 The People647

24.1.2 The Product648

24.1.3 The Process648

24.1.4 The Project648

24.2 People649

24.2.1 The Stakeholders649

24.2.2 Team Leaders650

24.2.3 The Software Team651

24.2.4 Agile Teams654

24.2.5 Coordination and Communication Issues655

24.3 The Product656

24.3.1 Software Scope656

24.3.2 Problem Decomposition656

24.4 The Process657

24.4.1 Melding the Product and the Process657

24.4.2 Process Decomposition658

24.5 The Project660

24.6 The W5HH Principle661

24.7 Critical Practices662

24.8 Summary663

PROBLEMS AND POINTS TO PONDER663

FURTHER READINGS AND INFORMATION SOURCES664

CHAPTER 25 PROCESS AND PROJECT METRICS666

25.1 Metrics in the Process and Project Domains667

25.1.1 Process Metrics and Software Process Improvement667

25.1.2 Project Metrics670

25.2 Software Measurement671

25.2.1 Size-Oriented Metrics672

25.2.2 Function-Oriented Metrics673

25.2.3 Reconciling LOC and FP Metrics673

25.2.4 Object-Oriented Metrics675

25.2.5 Use-Case-Oriented Metrics676

25.2.6 WebApp Project Metrics677

25.3 Metrics for Software Quality679

25.3.1 Measuring Quality680

25.3.2 Defect Removal Efficiency681

25.4 Intecgrating Metrics within the Software Process682

25.4.1 Arguments for Software Metrics683

25.4.2 Establishing a Baseline683

25.4.3 Metrics Collection,Computation,and Evaluation684

25.5 Metrics for Small Organizations684

25.6 Establishing a Software Metrics Program686

25.7 Summary688

PROBLEMS AND POINTS TO PONDER688

FURTHER READINGS AND INFORMATION SOURCES689

CHAPTER 26 ESTIMATION FOR SOFTWARE PROJECTS691

26.1 Observations on Estimation692

26.2 The Project Planning Process693

26.3 Software Scope and Feasibility694

26.4 Resources695

26.4.1 Human Resources695

26.4.2 Reusable Software Resources696

26.4.3 Environmental Resources696

26.5 Software Project Estimation697

26.6 Decomposition Techniques698

26.6.1 Software Sizing698

26.6.2 Problem-Based Estimation699

26.6.3 An Example of LOC-Based Estimation701

26.6.4 An Example of FP-Based Estimation702

26.6.5 Process-Based Estimation703

26.6.6 An Example of Process-Based Estimation704

26.6.7 Estimation with Use Cases705

26.6.8 An Example of Use-Case-Based Estimation706

26.6.9 Reconciling Estimates707

26.7 Empirical Estimation Models708

26.7.1 The Structure of Estimation Models709

26.7.2 The COCOMO II Model709

26.7.3 The Softwgre Equation711

26.8 Estimation for Object-Oriented Projects712

26.9 Specialized Estimation Techniques713

26.9.1 Estimation for Agile Development713

26.9.2 Estimation for WebApp Projects714

26.10 The Make/Buy Decision715

26.10.1 Creating a Decision Tree715

26.10.2 Outsourcing717

26.11 Summary718

PROBLEMS AND POINTS TO PONDER719

FURTHER READINGS AND INFORMATION SOURCES719

CHAPTER 27 PROJECT SCHEDULING721

27.1 Basic Concepts722

27.2 Project Scheduling724

27.2.1 Basic Principles725

27.2.2 The Relationship Between People and Effort725

27.2.3 Effort Distribution727

27.3 Defining a Task Set for the Software Project728

27.3.1 A Tosk Set Example729

27.3.2 Refinement of Software Engineering Actions730

27.4 Defining a Task Network731

27.5 Scheduling732

27.5.1 Time-Line Charts732

27.5.2 Tracking the Schedule734

27.5.3 Tracking Progress for an OO Project735

27.5.4 Scheduling for WebApp Projects736

27.6 Earned Value Analysis739

27.7 Summary741

PROBLEMS AND POINTS TO PONDER741

FURTHER READINGS AND INFORMATION SOURCES743

CHAPTER 28 RISK MANAGEMENT744

28.1 Reactive versus Proactive Risk Strategies745

28.2 Software Risks745

28.3 Risk Identification747

28.3.1 Assessing Overall Project Risk748

28.3.2 Risk Components and Drivers749

28.4 Risk Projection749

28.4.1 Developing a Risk Table750

28.4.2 Assessing Risk Impact752

28.5 Risk Refinement754

28.6 Risk Mitigation,Monitoring,and Management755

28.7 The RMMM Plan757

28.8 Summary759

PROBLEMS AND POINTS TO PONDER759

FURTHER READINGS AND INFORMATION SOURCES760

CHAPTER 29 MAINTENANCE AND REENGINEERING761

29.1 Software Maintenance762

29.2 Software Suppportability764

29.3 Reengineering764

29.4 Business Process Reengineering765

29.4.1 Business Processes765

29.4.2 A BPR Model766

29.5 Software Reengineering768

29.5.1 A Software Reengineering Process Model768

29.5.2 Software Reengineering Activities770

29.6 Reverse Engineering772

29.6.1 Reverse Engineering to Understand Data773

29.6.2 Reverse Engineering to Understand Processing774

29.6.3 Reverse Engineering User Interfaces775

29.7 Restructuring776

29.7.1 Code Restructuring776

29.7.2 Data Restructuring777

29.8 Forward Engineering778

29.8.1 Forward Engineering for Client-Server Architectures779

29.8.2 Forward Engineering for Object-Oriented Architectures780

29.9 The Economics of Reengineering780

29.10 Summary781

PROBLEMS AND POINTS TO PONDER782

FURTHER READINGS AND INFORMATION SOURCES783

PART FIVE ADVANCED TOPICS785

CHAPTER 30 SOFTWARE PROCESS IMPROVEMENT786

30.1 What Is SPI?787

30.1.1 Approachesto SPI787

30.1.2 Maturity Models789

30.1.3 Is SPI for Everyone?790

30.2 The SPI Process791

30.2.1 Assessment and Gap Analysis791

30.2.2 Education and Training793

30.2.3 Selection and Justification793

30.2.4 Installation/Migration794

30.2.5 Evaluation795

30.2.6 Risk Management for SPI795

30.2.7 Critical Success Factors796

30.3 The CMMI797

30.4 The People CMM801

30.5 Other SPI Frameworks802

30.6 SPI Return on Investment804

30.7 SPI Trends805

30.8 Summary806

PROBLEMS AND POINTS TO PONDER806

FURTHER READINGS AND INFORMATION SOURCES807

CHAPTER 31 EMERGING TRENDS IN SOFTWARE ENGINEERING808

31.1 Technology Evolution809

31.2 Observing Software Engineering Trends811

31.3 Identifying“Soft Trends”812

31.3.1 Managing Complexity814

31.3.2 Open-World Software815

31.3.3 Emergent Requirements816

31.3.4 The Talent Mix816

31.3.5 Software Building Blocks817

31.3.6 Changing Perceptions of“Value”818

31.3.7 Open Source818

31.4 Technology Directions819

31.4.1 Process Trends819

31.4.2 The Grand Challenge821

31.4.3 Collaborative Development822

31.4.4 Requirements Engineering824

31.4.5 Model-Driven Software Development825

31.4.6 Postmodern Design825

31.4.7 Test-Driven Development826

31.5 Tools-Related Trends827

31.5.1 Tools That Respond to Soft Trends828

31.5.2 Tools That Address Technology Trends830

31.6 Summary830

PROBLEMS AND POINTS TO PONDER831

FURTHER READINGS AND INFORMATION SOURCES831

CHAPTER 32 CONCLUDING COMMENTS833

32.1 The Importance of Software—Revisited834

32.2 People and the Way They Build Systems834

32.3 New Modes for Representing Information835

32.4 The Long View837

32.5 The Software Engineer's Responsibility838

32.6 A Final Comment839

APPENDIX 1 AN INTRODUCTION TO UML841

APPENDIX 2 OBJECT-ORIENTED CONCEPTS863

REFERENCES871

INDEX889

热门推荐