《实用软件工程 英文版》PDF下载

  • 购买积分:22 如何计算积分?
  • 作  者:(澳)马查斯泽克(Maciaszek,L.A.)等著
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2006
  • ISBN:7111173287
  • 页数:826 页
图书介绍:本书提供了针对大型系统开发的软件工程,全面论述了开发生命周期、建模语言、过程工具、项目规划以及过程管理,说明了迭代和增量式开发的概念。

Part 1 Software Projects 1

Chapter 1 Software Development Lifecycle 5

1.1.1 Software System is less than Enterprise Information System 7

Guided tour 7

1.1 Software Engineering Quintessence 7

Contents 7

1.1.2 Software Process is part of Business Process 8

Preface 9

1.1.3 Software Engineering is different from Traditional Engineering 10

1.1.4 Software Engineering is more than Programming 11

1.1.5 Software Engineenng is about Modeling 12

1.1.6 Software System is Complex 13

1.2 Lifecycle Phases 15

Acknowledgements 15

1.2.1 Requirements Analysis 16

1.2.2 System Design 17

1.2.3 Implementation 18

1.2.4 Integration and Deployment 19

1.3 Lifecycle Models 21

1.2.5 Operation and Maintenance 21

1.3.1 Waterfall Lifecycle with Feedback 22

Spiral model 25

1.3.2 Iterative Lifecycle with Increments 25

Rational Unified Process(RUP) 27

Agile lifecycle with short cycles 29

Model Driven Architecture(MDA) 29

Summary 32

Key Terms 34

Review Questions 35

Chapter 2 Software Modeling Language 37

2.1 Structured Modeling Language 38

2.1.1 Data Flow Modeling 39

2.1.2 Entity-Relationship Modeling 42

2.2.1 Class Diagrams 43

2.2 Object-Oriented Modeling Language 43

2.2.2 Use Case Diagrams 46

Sequence diagrams 50

2.2.3 Interaction Diagrams 50

Collaboration(communication)diagrams 51

2.2.4 Statechart Diagrams 53

2.2.5 Activity Diagrams 55

Component diagrams 56

2.2.6 Implementation Diagrams 56

Summary 59

Deployment diagrams 59

Key Terms 60

Review Questions 61

Problem-Solving Exercises 62

Chapter 3 Software Engineering Tools 63

3.1 Project Management Tools 64

3.1.1 Project Scheduling and Controlling 65

3.1.2 Aligning project and Performance Management with Strategic Objectives 66

3.1.3 Unifying Project Management with Web-Based Collaboration and Content Management 67

3.1.4 Unifying Project Management with Web-Based Portfolio Management 68

3.1.5 Integrating project Management with Metrics 69

3.1.6 Integrating Project Management with Risk Management 72

3.2 System Modeling Tools 73

3.2.1 Managing Requirements 74

3.2.2 Visual UML Modeling 79

3.2.4 Database Modeling 82

3.2.3 Report Generation 82

3.3 Integrated Development Environments 83

3.3.1 Routine Programming Tasks 85

Writing the program 86

Executing the program 89

Debugging the program 90

3.3.3 Enterprise Application Development 93

3.3.2 Integration with Software Modeling 93

3.3.4 Integration with Business Components 95

3.3.5 Integration with Change and Configuration Management 97

3.4.1 Support for Changes 99

3.4 Change and Configuration Management Tools 99

3.4.3 Support for System Building 102

3.4.2 Support for Versions 102

3.4.4 Support for Reengineering 104

Summary 107

Key Terms 108

Problem-SolvingExercises 109

Review Questions 109

Chapter 4 Software Project Planning and Tracking 112

4.1 Project Plan Development 113

4.2 Project Scheduling 116

4.2.1 Tasks,Milestones,and Deliverables 117

4.2.2 Task Scheduling in a Bar Chart 118

4.2.3 Resources and Resource Calendars 121

4.2.4 Effort-Driven Scheduling in a Bar Chart 122

4.2.5 Resource Underallocation and Overallocation 123

4.3 Project Budget Estimation 126

4.3.1 Schedule-Driven Budget Estimation 127

4.3.2 Algorithmic Budget Estimation 130

Principles of algorithmic models 131

COCOMO 81 133

COCOMO Ⅱ 135

4.4 Tracking Project Progress 138

4.4.1 Tracking the Schedule 139

4.4.2 Tracking the Budget 141

Actual costs from schedule 142

Actual costs from accounting 143

Earned value 146

Summary 149

Review Questions 150

Key Terms 150

Problem-Solving Exercises 151

Chapter 5 Software Process Management 153

5.1.1 Acquiring and Motivating People 155

5.1 People Management 155

Team creation 156

Motivational theories 157

Forms of communication 158

5.1.2 Project Communications 158

Lines of communication 159

Factors in communication 160

Communication in conflict resolution 161

5.1.3 Team Development 162

5.2.1 Risk Identification 163

5.2 Risk Management 163

5.2.2 Risk Assessment 164

5.2.3 Risk Handling 167

5.3 Quality Management 168

5.3.1 Software Qualities 169

Softwaretesting 171

5.3.2 Quality Control 171

Testing techniques 173

Test planning 176

5.3.3 Quality Assurance 177

Reviews 178

Checklists 178

Audits 179

5.4 Change and Configuration Management 180

5.4.1 Requirements Changes 181

5.4.2 Artifact Versions 182

5.4.3 Defects and Enhancements 185

5.4.4 Metrics 187

Summary 190

Key Terms 191

Review Questions 193

Part 2 From Requirements via Architectural Design to Software Release 195

Chapter 6 Business Object Model 199

6.1 Advertising Expenditure Measurement-The Business 200

6.2 Business Context Diagram 201

6.3.1 Business Use Cases and Business Actors 202

6.3 Business Use Case Model 202

6.3.2 Business Use Case Model for AEM 203

6.3.3 Alternative Business Use Case Model for AEM 204

6.5.1 Business Entities 207

6.5 Business Class Model 207

6.4 Business Glossary 207

6.4.1 Business Glossary for AEM 207

6.5.2 Business Class Model for AEM 208

6.5.3 Alternative Business Class Model for AEM 209

Summary 210

Case Study Questions 211

Discussion Questions 211

Key Terms 211

ReviewQuestions 211

Minicase-Advertising Expenditure Measurement 212

Case Study Exercises 212

Problem-Solving Exercises 212

Chapter 7 Domain Object Model 215

7.1 Contact Management-The Domain 216

7.2.2 Use Case Relationships 217

7.2.1 Use Cases and Actors 217

7.2 Domain Use Case Model 217

7.2.3 Use Case Model for Contact Management 219

7.2.4 Alternative Use Case Model for Contact Management 220

7.3.1 Domain Glossary for Contact Management 222

7.3 Domain Glossary 222

7.4.1 Classes and Attributes 224

7.4 Domain Class Model 224

7.4.2 Class Relationships 226

7.4.3 Class Model for Contact Management 227

7.4.4 Alternative Class Model for Contact Management 228

Summary 229

Key Terms 230

Case Study Exercises 231

Problem-Solving Exercises 231

Review Questions 231

Discussion Questions 231

CaseStudyQuestions 231

Minicase-Time Logging 232

Chapter 8 Iteration 1 Requirements and Object Model 234

8.1 Use Case Model 235

8.2.1 Brief Description,Preconditions,and Postconditions 236

8.2 Use Case Document 236

8.2.2 Basic Flow 237

8.2.3 Subflows 239

8.3 Conceptual Classes 241

8.2.4 Exception Flows 241

8.4 Supplementary Specification 243

Key Terms 245

Summary 245

Case Study Exercises 246

Problem-Solving Exercises 246

Review Questions 246

Discussion Questions 246

CaseStudy Questions 246

Minicase-Time Logging 247

Chapter 9 Architectural Design 248

9.1.1 Architectural Modules 249

9.1 Architectural Layers and Dependency Management 249

Packages 250

Design classes 250

9.1.2 Package Dependencies 251

9.1.3 Layer Dependencies 253

9.1.4 Class Dependencies 254

9.1.5 Inheritance Dependencies 255

Inheritance without polymorphism 258

Extension and restriction inheritance 258

Down-calls 259

9.1.6 Method Dependencies 260

Up-calls 260

Method dependencies in the presence of implementation inheritance 262

Method dependencies in the presence of delegation 262

9.1.7 Interfaces 264

Usage dependency 266

Implementation dependency 266

Breaking circular dependencies with interfaces 267

9.1.8 Event Processing 268

Event processing and interfaces 270

Event processing and layer dependencies 270

Acquaintance dependencies and interfaces 273

9.1.9 Acquaintance 273

Acquaintance package 275

9.2.1 Model-View-Controller 277

9.2 Architectural Frameworks 277

9.2.2 Presentation-Control-Mediator-Entity-Foundation 279

PCMEF layers 280

PCMEF principles 282

Acquaintance in PCMEF+ 283

9.3 Architectural Patterns 285

Deployment of PCMEF layers 285

9.3.2 Abstract Factory 286

9.3.1 Fa?ade 286

9.3.3 Chain of Responsibility 287

9.3.4 Observer 288

9.3.5 Mediator 290

Summary 292

Key Terms 293

Review Questions 294

Minicase-Contact Information Management 295

Case Study Exercises 295

Problem-Solving Exercises 295

Chapter 10 Database Design and Programming 301

10.1 Quick Tutorial in Relational Databases from a Software Engineering Viewpoint 302

10.1.1 Table 303

10.1.2 ReferentialIntegrity 305

10.1.3 Conceptual versus Logical Database Models 306

10.1.4 Implementing Business Rules 307

10.1.5 Programming Database Application Logic 310

10.1.6 Indexes 311

10.2 Mapping Transient Objects to Persistent Records 315

10.2.1 Object Databases,SQL:1999,and Impedance Mismatch 316

Mapping a one-to-many association and aggregation 317

10.2.2 Object-Relational Mapping 317

Mapping a many-to-many association 319

Mapping a one-to-many recursive association 320

Mapping a one-to-one association 320

Mapping generalization 321

Mapping a many-to-many recursive association 321

10.3 Database Design and Creation for Email Management 322

10.3.1 Database Model 323

10.3.2 Creating the Database Schema 325

10.3.3 Sample Database Content 326

Key Terms 328

Summary 328

CaseStudyQuestions 329

Discussion Questions 329

Review Questions 329

Minicase-ContactInformationManagement 330

Case Study Exercises 330

Problem-Solving Exercises 330

Chapter 11 Class and Interaction Design 331

11.1 Finding Classes from Use Case Requirements 332

11.1.1 Finding Classes from Use Case Requirements for Email Management 333

11.1.2 Initial Class Design for Email Management 337

11.2 Architectural Elaboration of Class Design 339

Constants in interface 339

11.2.1 Architectural Elaboration of Class Design for Email Management 342

11.2.2 Class Design for Email Management after Architectural Elaboration 343

11.2.3 Class Instantiation 344

Instantiation diagram for Email Management 345

Who instantiates the first object? 345

11.3 Interactions 346

11.3.1 Sequence Diagrams 347

11.3.2 Communication Diagrams 349

11.4 Interactions for Email Management 351

11.3.3 Interaction Overview Diagrams 351

11.4.1 The'Login'Interaction 352

11.4.2 The'Exit'Interaction 353

11.4.3 The'View Unsent Messages'Interaction 354

11.4.4 The'Display Message Text'Interaction 356

11.4.5 The'Email Message'Interaction 357

11.4.7 The'Incorrect Option'Interaction 358

11.4.6 The'Incorrect User Name or Password'Interaction 358

11.4.8 The'Too Many Messages'Interaction 359

Summary 361

11.4.9 The'Email Couid Not Be Sent'Interaction 361

CaseStudyQuestions 362

Discussion Questions 362

Key Terms 362

Review Questions 362

Minicase-Time Logging System 363

Case Study Exercises 363

Problem-Solving Exercises 363

Minicase-ContactInformationManagement 364

Chapter 12 Programming and Testing 365

12.1.1 Class 366

12.1 Quick Tutorial in Java from a Software Engineenng Viewpoint 366

From conceptual to design class model 369

12.1.2 Class Associations and Collections 369

Java collections 371

Associations on entity objects 373

C++ parameterized types 375

12.1.3 Database Access in Java 377

Comparison of JDBC and SQLJ 378

Executing SQL statements 379

Establishing a database connection 379

Calling stored procedures and functions 383

12.2 Test-Driven Development 385

12.2.1 JUnit Framework 386

12.2.2 Test-Driven Development in Email Management 389

12.3 Acceptance and Regression Testing 395

12.3.1 Test Scripts in Email Management 396

12.3.2 Test Input,Output,and Regression Testing in Email Management 398

12.3.3 Implementation of Test Script in Email Management 401

12.4 Iteration 1 Runtime Screenshots 404

Summary 409

Key Terms 410

Tutorial and Case Study Exercises 411

Problem-Solving Exercises 411

Review Questions 411

Minicase-Time Logging System 412

Minicase-ContactInformation Management 413

Chapter 13 Iteration 1 Annotated Code 414

13.1 Code Overview 415

13.2.1 Interface IAConstants 417

13.2 Package Acquaintance 417

13.2.3 Interface IAContact 419

13.2.2 Interface IAEmployee 419

13.2.4 Interface IAOutMessage 420

13.3.1 Class PMain 422

13.3 Package Presentation 422

13.3.2 Class PConsole 423

Constructing a PConsole object 424

Viewing outmessages 426

Displaying login and menu 426

Requesting to email an outmessage 429

13.4.1 Class CActioner 430

13.4 Package Control 430

Constructing a CActioner object 432

Routing retrieval of outmessages 433

Initiating login 433

Emailing an outmessage 434

13.5.1 Interface IEDataSupplier 435

13.5 Package Entity 435

Using JavaMailTM API 435

Object identifiers and identity field pattern 438

Constructing an EEmployee object 439

13.5.2 Class EEmployee 439

Removing sent outmessages 440

Getting unsent outmessages 440

13.5.3 Class EContact 441

Removing sent outmessages 442

Getting unsent outmessages 442

Constructing an EContact object 442

13.5.4 Class EOutMessage 443

Getting and setting a contact for Outmessage 444

Constructing an EOutMessage object 444

Getting and setting a sender employee for outmessage 445

Getting and setting a creator employee for outmessage 445

13.6 Package Mediator 446

13.6.1 Class MBroker 447

Requesting login connection 448

Constructing an MBroker object 448

Retrieving unsent outmessages 450

Creating Employees Cache 450

Creating an outmessages cache 452

Creating a contacts cache 453

Updating outmessages after emailing and restoring the cache 454

13.7.1 Class FConnection 455

13.7 Package Foundation 455

Obtaining database connection 456

Constructing an FConnection object 456

13.7.3 Class FWriter 458

13.7.2 Class FReader 458

Iteration 1 Questions and Exercises 459

Key Terms 459

Summary 459

Part 3 Software Refactoring and User Interface Development 461

Chapter 14 Iteration 2 Requirements and Object Model 463

14.1 Use Case Model 464

14.2 Use Case Document 465

14.2.2 Basic Flow 466

14.2.1 Brief Description,Preconditions,and Postconditions 466

14.2.3 Subflows 468

14.2.4 Exception Flows 472

14.3 Conceptual Classes and Relational Tables 474

14.4 Supplementary Specification 476

Review Questions 477

Key Terms 477

Summary 477

Chapter 15 Architectural Refactoring 478

15.2 Refactoring Methods 479

15.1 Refactoring Targets 479

15.2.1 Extract Class 480

15.2.2 Subsume Method 481

15.2.3 Extract Interface 483

15.3 Refactoring Patterns 484

15.3.1 Identity Map 485

Load-check-out 487

15.3.2 Data Mapper 487

Unload-check-in 488

Many data mappers 490

15.3.3 Alternative Data Mapper Strategies 490

Metadata mapping 492

15.3.4 Lazy Load 493

Lazy Initialization 494

OID Proxy 495

Virtual Proxy 495

Navigation in Identity Map 498

Navigation in Entity Classes 500

15.3.5 Unit of Work 501

15.4 Refactored Class Model 502

Summary 505

Key Terms 506

Problem-Solving Exercises 507

CaseStudy Questions 507

Review Questions 507

Discussion Questions 507

Chapter 16 User Interface Design and Programming 509

16.1 User Interface Design Guidelines 510

16.1.1 User in Control 511

16.1.2 Interrace Consistency 512

16.1.3 Interface Forgiveness 512

16.1.4 Interface Adaptability 513

16.2 User Interface Components 514

16.2.1 Containers 515

Layout management 518

Layering management 519

16.2.2 Menus 520

16.2.3 Controls 521

16.3 User Interface Event Handling 523

16.4 Patterns and the User Interface 527

16.4.1 Observer 528

16.4.3 Chain of Responsibility 530

16.4.2 Decorator 530

16.4.4 Command 531

16.5 User Interface for Email Management 532

Summary 537

Key Terms 538

Review Questions 539

Problem-Solving Exercises 540

Chapter 17 Web-Based User Interface Design and Programming 541

17.1.1 Basic HTML 543

17.1 Enabling Technologies for the Web Client Tier 543

17.1.2 Scripting Language 545

17.1.3 Applet:Thin and Thick 547

17.2.1 Servlet 551

17.2 Enabling Technologies for the Web Server Tier 551

17.2.2 JSP 555

17.3 Transactions on Stateless Internet Systems 559

17.4 Patterns and the Web 561

17.4.2 Composite 563

17.4.1 Observer 563

17.4.3 Factory Method 564

17.4.5 Decorator 565

17.4.4 Strategy 565

17.4.6 Model-View-Controller 566

17.4.8 Reuse of Tags in JSP 567

17.4.7 Front Controller 567

17.4.9 Decoupled Control:Struts 572

17.5 Servlet Implementation of Email Management 573

Summary 581

Review Questions 582

Key Terms 582

Problem-Solving Exercises 583

Chapter 18 Iteration 2 Annotated Code 584

18.1 Code Overview 585

18.2 Package Acquaintance 586

18.2.1 Interface IAEmployee 587

Constructing and launching PWindow 588

18.3.1 Class PWindow 588

18.3 Package Presentation 588

Data retrievalin PWindow 590

Filter activation 593

18.3.2 Class PMessageDetailWindow 595

18.3.3 Class PMessageTableModel 598

18.3.4 Class PDisplayList 601

18.3.5 Class PDisplayList.Filter 604

18.4.2 Class CMsgSeeker 607

18.4.1 Class CAdmin 607

18.4 Package Control 607

18.5 Package Entity 608

18.5.1 Class EldentityMap 609

18.6 Package Mediator 612

18.6.2 Class MDataMapper 613

18.6.1 Class MModerator 613

Outmessage retrievals and loading 615

Outmessage saving and unloading 618

18.7 Presentation Layer:Applet Version 620

18.8 Presentation Layer:Servlet Version 622

18.8.1 Class PEMS 623

Login in servlet 624

Showing outmessages in servlet 626

18.8.2 Class PEMSEdit 630

Summary 632

Iteration 2 Questions andExercises 633

Key Terms 633

Part 4 Data Engineering and Business Components 637

Chapter 19 Iteration 3 Requirements and Object Model 639

19.1 Use Case Model 640

19.2.1 Brief Description,Preconditions,and Postconditions 641

19.2 Use Case Document 641

19.2.2 Basic Flow 642

19.2.3 Subflows 644

19.2.4 Exception Flows 651

19.3 Conceptual Classes and Relational Tables 653

19.4 Supplementary Specification 655

19.5 Database Specification 657

Review Questions 659

Key Terms 659

Summary 659

Chapter 20 Security and Integrity 660

20.1 Designing Secunty 661

20.1.1 Discretionary Authorization 662

System and object privileges 663

Programmatic discretionary authorization 664

20.1.2 Mandatory Authorization 671

20.1.3 Enterprise Authorization 672

20.2 Designing Integrity 675

20.2.1 Null and Default Constraints 676

20.2.3 Unique and Primary Keys 677

20.2.2 Domain and Check Constraints 677

20.2.4 Foreign Keys 678

20.2.5 Triggers 680

20.3.1 Secunty in Email Management 685

20.3 Security and Integrity in Email Management 685

Explicit Authorization table 688

Using individual schemas,global schema,views,and stored procedures 689

Using individual schemas,global schema,and stored procedures 689

Authorization administration 692

20.3.2 Integrity in Email Management 693

Summary 697

Key Terms 698

Problem-Solving Exercises 699

Review Questions 699

Chapter 21 Transactions and Concurrency 700

21.1 Concurrency in System Transactions 701

21.1.1 ACID Properties 702

21.1.2 Isolation Levels 703

21.1.3 Lock Modes and Levels 705

21.1.4 Transactional Models 706

21.1.5 Concurrency Control Schemes 707

21.2.1 Business Transaction Execution Contexts 711

21.2 Concurrency in Business Transactions 711

21.2.3 Transaction Services across Tiers 712

21.2.2 Business Transactions and Component Technology 712

Webtier 713

Application tier 714

Database tier 716

21.2.4 Offline Concurrency Patterns 717

Unit of Work 718

Optimistic Offline Lock 719

Pessimistic Offline Lock 721

21.3.1 Flat Transaction Model 722

21.3 Transactions and Concurrency in Email Management 722

21.3.2 Unit of Work and Transactional Support 723

Summary 725

Key Terms 726

Problem-Solving Exercises 727

Review Questions 727

Chapter 22 Business Components 729

22.1 Enterprise JavaBeans 730

22.1.1 EJB Fundamentals 732

22.1.2 Entity Beans 735

22.1.3 Session Beans 739

22.2.1 Creating Entity Components 741

22.2 Business Components for Java 741

XML for entity components 742

22.2.2 Creating View Components 744

Java for entity components 744

XML for view components 745

Java for view components 746

22.2.3 Creating the Application Module 747

Summary 748

Review Questions 749

Key Terms 749

Chapter 23 Iteration 3 Annotated Code 750

23.2.1 Interface IAReportEntry 751

23.2 Package Acquaintance 751

23.1 Code Overview 751

23.3 Package Presentation 753

Populating the report contact list 754

23.3.1 Class PWindow 754

Report window 755

Printing the report 757

Activity report 757

Populating the report table 758

Showing the authorization window 759

Saving modified authorization rules 762

Conversion from rule matrix to authorization table 762

Deleting an outmessage 764

Conversion from authorization table to rule matrix 764

Creating an outmessage 766

Modifying an outmessage 766

Dynamic registration of buttons 767

23.3.2 Class PTableWindow 767

Adding listeners to dynamically generated buttons 769

Button return status 770

Printing in PTabieWindow 770

23.4 Package Control 771

23.5 Package Entity 771

23.5.1 Class EldentityMap 773

Report registration and removal 773

Report retrieval 774

23.6 Package Mediator 776

23.6.1 Class MModerator 777

Authorization rules 777

Report retrieval 779

Creating an outmessage 781

Updating an outmessage 781

Changes to previous methods 782

23.6.2 Class MDataMapper 782

Report retrievalin MDataMapper 784

Authorization rules loading in MDataMapper 786

Saving authorization rules in MDataMapper 786

23.6.3 Class MUnitOfWork 789

Acquiring MUnitOfWork 790

New entity registration in MUnitOfWork 791

Dirty entity registration in MUnitOfWork 791

Entity removal in MUnitOfWork 792

Committing MUnitOfWork 792

Execution of a transaction 793

Starting a transaction 795

23.7 Package Foundation 795

23.7.1 Transactions on FConnection 796

23.7.2 Execute Statements in FWriter 796

23.7.3 Querying the Database in FReader 798

23.8 Database Code 799

23.8.1 Ref Cursor for ResultSet 800

23.8.2 Retrieval of Outmessages 801

23.8.3 Retrieval of Departmental Outmessages 801

23.8.4 Deleting an Outmessage 802

23.8.5 Creating an Outmessage 803

23.8.6 Report Generation 805

23.8.7 Trigger on OutMessage Table 807

Summary 809

Key Terms 810

Iteration 3 Questions andExercises 810

Bibliography 811

Index 816

The accompanying CD 826