pse logo

Maciaszek L.A. and Liong B.L. (2005):
Practical Software Engineering
Addison Wesley, 864p.

addison logo

Detailed Table of Content

Preface. I

The Book's Story. I

The Book Outline and Organization. I

Distinguishing Features. III

Intended Readership. V

Supplementary Materials. V

Acknowledgements. VI

Part A - Software Projects. 1

1      Software Development Lifecycle. 3

1.1   Software Engineering Quintessence. 4

1.1.1   Software System Is Less Than Enterprise Information System.. 5

1.1.2   Software Process Is Part Of Business Process. 6

1.1.3   Software Engineering Is Different From Traditional Engineering. 7

1.1.4   Software Engineering Is More Than Programming. 8

1.1.5   Software Engineering Is About Modeling. 9

1.1.6   Software System Is Complex. 10

1.2      Lifecycle Phases. 12

1.2.1   Requirements Analysis. 13

1.2.2   System Design. 14

1.2.3   Implementation. 15

1.2.4   Integration and Deployment 16

1.2.5   Operation and Maintenance. 18

1.3      Lifecycle Models. 18

1.3.1   Waterfall Lifecycle With Feedback. 19

1.3.2   Iterative Lifecycle With Increments. 21

1.3.2.1  Spiral Model 23

1.3.2.2  Rational Unified Process (RUP) 24

1.3.2.3  Model Driven Architecture (MDA) 25

1.3.2.4  Agile Lifecycle With Short Cycles. 27

Summary. 28

Key Terms. 30

Review Questions. 31

2      Software Modeling Language. 33

2.1      Structured Modeling Language. 34

2.1.1   Data Flow Modeling. 34

2.1.2   Entity-Relationship Modeling. 37

2.2      Object-Oriented Modeling Language. 39

2.2.1   Class Diagrams. 39

2.2.2   Use Case Diagrams. 44

2.2.3   Interaction Diagrams. 46

2.2.3.1  Sequence Diagrams. 46

2.2.3.2  Collaboration (Communication) Diagrams. 48

2.2.4   Statechart Diagrams. 49

2.2.5   Activity Diagrams. 51

2.2.6   Implementation Diagrams. 52

2.2.6.1  Component Diagrams. 53

2.2.6.2  Deployment Diagrams. 55

Summary. 56

Key Terms. 57

Review Questions. 58

Problem-Solving Exercises. 59

3      Software Engineering Tools. 61

3.1      Project Management Tools. 62

3.1.1   Project Scheduling and Controlling. 63

3.1.2   Aligning Project and Performance Management with Strategic Objectives. 64

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

3.1.4   Unifying Project Management with Web-Based Portfolio Management 66

3.1.5   Integrating Project Management with Metrics. 68

3.1.6   Integrating Project Management with Risk Management 70

3.2      System Modeling Tools. 73

3.2.1   Managing Requirements. 74

3.2.2   Visual UML Modeling. 79

3.2.3   Report Generation. 81

3.2.4   Database Modeling. 82

3.3      Integrated Development Environments. 83

3.3.1   Routine Programming Tasks. 84

3.3.1.1  Writing the Program.. 85

3.3.1.2  Executing the Program.. 89

3.3.1.3  Debugging the Program.. 89

3.3.2   Integration with Software Modeling. 92

3.3.3   Enterprise Application Development 93

3.3.4   Integration with Business Components. 94

3.3.5   Integration with Change and Configuration Management 96

3.4      Change and Configuration Management Tools. 98

3.4.1   Support for Changes. 99

3.4.2   Support for Versions. 101

3.4.3   Support for System Building. 102

3.4.4   Support for Reengineering. 104

Summary. 106

Key Terms. 107

Review Questions. 108

Problem-Solving Exercises. 108

4      Software Project Planning and Tracking. 112

4.1      Project Plan Development 112

4.2      Project Scheduling. 116

4.2.1   Tasks, Milestones and Deliverables. 116

4.2.2   Task Scheduling in Bar Chart 118

4.2.3   Resources and Resource Calendars. 120

4.2.4   Effort-driven Scheduling in 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. 132

4.3.2.1  Principles of Algorithmic Models. 132

4.3.2.2  COCOMO 81. 133

4.3.2.3  COCOMO II 135

4.4      Tracking Project Progress. 138

4.4.1   Tracking the Schedule. 139

4.4.2   Tracking the Budget 142

4.4.2.1  Actual Costs from Schedule. 142

4.4.2.2  Actual Costs from Accounting. 144

4.4.2.3  Earned Value. 147

Summary. 149

Key Terms. 151

Review Questions. 151

Problem-Solving Exercises. 152

5      Software Process Management 155

5.1      People Management 157

5.1.1   Acquiring and Motivating People. 157

5.1.1.1  Team Creation. 158

5.1.1.2  Motivational Theories. 159

5.1.2   Project Communications. 160

5.1.2.1  Forms of Communication. 160

5.1.2.2  Lines of Communication. 161

5.1.2.3  Factors in Communication. 162

5.1.2.4  Communication in Conflict Resolution. 163

5.1.3   Team Development 164

5.2      Risk Management 165

5.2.1   Risk Identification. 165

5.2.2   Risk Assessment 166

5.2.3   Risk Handling. 169

5.3      Quality Management 170

5.3.1   Software Qualities. 171

5.3.2   Quality Control 173

5.3.2.1  Software Testing. 173

5.3.2.2  Testing Techniques. 175

5.3.2.3  Test Planning. 177

5.3.3   Quality Assurance. 179

5.3.3.1  Checklists. 179

5.3.3.2  Reviews. 180

5.3.3.3  Audits. 181

5.4      Change and Configuration Management 181

5.4.1   Requirements Changes. 182

5.4.2   Artifact Versions. 184

5.4.3   Defects and Enhancements. 186

5.4.4   Metrics. 189

Summary. 192

Key Terms. 193

Review Questions. 194

Part B - From Requirements via Architectural Design to Software Release. 196

6      Business Object Model 198

6.1      Advertising Expenditure Measurement - The Business. 199

6.2      Business Context Diagram.. 199

6.3      Business Use Case Model 200

6.3.1   Business Use Cases and Business Actors. 200

6.3.2   Business Use Case Model for Advertising Expenditure Measurement 201

6.3.3   Alternative Business Use Case Model for Advertising Expenditure Measurement 203

6.4      Business Glossary. 204

6.4.1   Business Glossary for Advertising Expenditure Measurement 205

6.5      Business Class Model 206

6.5.1   Business Entities. 206

6.5.2   Business Class Model for Advertising Expenditure Measurement 207

6.5.3   Alternative Business Class Model for Advertising Expenditure Measurement 208

Summary. 209

Key Terms. 209

Review Questions. 210

Discussion Questions. 210

Case-Study Questions. 210

Problem-Solving Exercises. 211

Case-Study Exercises. 211

Minicase - Advertising Expenditure Measurement 211

7      Domain Object Model 214

7.1      Contact Management - The Domain. 215

7.2      Domain Use Case Model 215

7.2.1   Use Cases and Actors. 216

7.2.2   Use Case Relationships. 216

7.2.3   Use Case Model for Contact Management 217

7.2.4   Alternative Use Case Model for Contact Management 219

7.3      Domain Glossary. 221

7.3.1   Domain Glossary for Contact Management 221

7.4      Domain Class Model 223

7.4.1   Classes and Attributes. 224

7.4.2   Class Relationships. 225

7.4.3   Class Model for Contact Management 226

7.4.4   Alternative Class Model for Contact Management 227

Summary. 229

Key Terms. 229

Review Questions. 230

Discussion Questions. 230

Case-Study Questions. 231

Problem-Solving Exercises. 231

Case-Study Exercises. 231

Minicase  - Time Logging. 232

8      Iteration 1 Requirements and Object Model 234

8.1      Use Case Model 235

8.2      Use Case Document 236

8.2.1   Brief Description, Preconditions and Postconditions. 237

8.2.2   Basic Flow.. 238

8.2.3   Subflows. 239

8.2.4   Exception Flows. 242

8.3      Conceptual Classes. 243

8.4      Supplementary Specification. 244

Summary. 247

Key Terms. 247

Review Questions. 248

Discussion Questions. 248

Case-Study Questions. 248

Problem-Solving Exercises. 248

Case-Study Exercises. 248

Minicase - Time Logging. 249

9      Architectural Design. 250

9.1      Architectural Layers and Dependency Management 250

9.1.1   Architectural Modules. 251

9.1.1.1  Design Classes. 251

9.1.1.2  Packages. 252

9.1.2   Package Dependencies. 253

9.1.3   Layer Dependencies. 254

9.1.4   Class Dependencies. 256

9.1.5   Inheritance Dependencies. 257

9.1.5.1  Inheritance without Polymorphism.. 260

9.1.5.2  Extension and Restriction Inheritance. 261

9.1.5.3  Down-calls. 261

9.1.5.4  Up-calls. 262

9.1.6   Method Dependencies. 263

9.1.6.1  Method Dependencies in Presence of Delegation. 264

9.1.6.2  Method Dependencies in Presence of Implementation Inheritance. 265

9.1.7   Interfaces. 267

9.1.7.1  Implementation Dependency. 268

9.1.7.2  Usage Dependency. 269

9.1.7.3  Breaking Circular Dependencies with Interfaces. 269

9.1.8   Event Processing. 271

9.1.8.1  Event Processing and Layer Dependencies. 272

9.1.8.2  Event Processing and Interfaces. 273

9.1.9   Acquaintance. 275

9.1.9.1  Acquaintance Dependencies and Interfaces. 276

9.1.9.2  Acquaintance Package. 277

9.2      Architectural Frameworks. 280

9.2.1   Model-View-Controller 280

9.2.2   Presentation-Control-Mediator-Entity-Foundation. 282

9.2.2.1  PCMEF Layers. 282

9.2.2.2  PCMEF Principles. 284

9.2.2.3  Acquaintance in PCMEF+. 285

9.2.2.4  Deployment of PCMEF Layers. 287

9.3      Architectural Patterns. 287

9.3.1   Facade. 288

9.3.2   Abstract Factory. 289

9.3.3   Chain of Responsibility. 290

9.3.4   Observer 291

9.3.5   Mediator 292

Summary. 294

Key Terms. 295

Review Questions. 296

Problem-Solving Exercises. 297

Case-Study Exercises. 297

Minicase - Contact Information Management 297

10       Database Design and Programming. 303

10.1    Quick Tutorial in Relational Databases from Software Engineering Viewpoint 304

10.1.1   Table. 304

10.1.2   Referential Integrity. 306

10.1.3   Conceptual versus Logical Database Models. 308

10.1.4   Implementing Business Rules. 309

10.1.5   Programming Database Application Logic. 311

10.1.6   Indexes. 314

10.2    Mapping Transient Objects to Persistent Records. 317

10.2.1   Object Databases, SQL:1999, and Impedance Mismatch. 317

10.2.2   Object-Relational Mapping. 318

10.2.2.1 Mapping One-to-Many Association and Aggregation. 319

10.2.2.2 Mapping Many-to-Many Association. 320

10.2.2.3 Mapping One-to-One Association. 321

10.2.2.4 Mapping One-to-Many Recursive Association. 322

10.2.2.5 Mapping Many-to-Many Recursive Association. 323

10.2.2.6 Mapping Generalization. 324

10.3    Database Design and Creation for Email Management 325

10.3.1   Database Model 326

10.3.2   Creating Database Schema. 327

10.3.3   Sample Database Content 328

Summary. 329

Key Terms. 330

Review Questions. 331

Discussion Questions. 331

Case-Study Questions. 331

Problem-Solving Exercises. 332

Case-Study Exercises. 332

Minicase - Contact Information Management 332

11    Class and Interaction Design. 333

11.1    Finding Classes from Use Case Requirements. 334

11.1.1   Finding Classes from Use Case Requirements for Email Management 335

11.1.2   Initial Class Design for Email Management 339

11.1.2.1 Constants in Interface. 341

11.2    Architectural Elaboration of Class Design. 341

11.2.1   Architectural Elaboration of Class Design for Email Management 342

11.2.2   Class Design for Email Management after Architectural Elaboration. 346

11.2.3   Class Instantiation. 347

11.2.3.1 Who Instantiates the First Object?. 348

11.2.3.2 Instantiation Diagram for Email Management 348

11.3    Interactions. 349

11.3.1   Sequence Diagrams. 349

11.3.2   Communication Diagrams. 351

11.3.3   Interaction Overview Diagrams. 353

11.4    Interactions for Email Management 354

11.4.1   The "Login" Interaction. 355

11.4.2   The "Exit" Interaction. 357

11.4.3   The "View Unsent Messages" Interaction. 357

11.4.4   The "Display Message Text" Interaction. 359

11.4.5   The "Email Message" Interaction. 360

11.4.6   The "Incorrect User Name or Password" Interaction. 362

11.4.7   The "Incorrect Option" Interaction. 362

11.4.8   The "Too Many Messages" Interaction. 363

11.4.9   The "Email Could Not Be Sent" Interaction. 364

Summary. 365

Key Terms. 366

Review Questions. 366

Discussion Questions. 366

Case-Study Questions. 367

Problem-Solving Exercises. 367

Case-Study Exercises. 367

Minicase - Time Logging System.. 367

Minicase - Contact Information Management 368

12       Programming and Testing. 370

12.1    Quick Tutorial in Java from Software Engineering Viewpoint 370

12.1.1   Class. 371

12.1.2   Class Associations and Collections. 374

12.1.2.1 From Conceptual to Design Class Model 374

12.1.2.2 Java Collections. 375

12.1.2.3 Associations on Entity Objects. 377

12.1.2.4 C++ Parameterized Types. 378

12.1.3   Database Access in Java. 381

12.1.3.1 Comparison of JDBC and SQLJ. 381

12.1.3.2 Establishing Database Connection. 382

12.1.3.3 Executing SQL Statements. 384

12.1.3.4 Calling Stored Procedures and Functions. 387

12.2    Test-Driven Development 389

12.2.1   JUnit Framework. 391

12.2.2   Test-Driven Development in Email Management 394

12.3    Acceptance and Regression Testing. 399

12.3.1   Test Scripts in Email Management 401

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

12.3.3   Implementation of Test Script in Email Management 404

12.4    Iteration 1 Runtime Screenshots. 408

Summary. 413

Key Terms. 413

Review Questions. 414

Problem-Solving Exercises. 416

Tutorial and Case-Study Exercises. 416

Minicase - Time Logging System.. 417

Minicase - Contact Information Management 417

13       Iteration 1 Annotated Code. 418

13.1    Code Overview.. 418

13.2    Package Acquaintance. 420

13.2.1   Interface IAConstants. 421

13.2.2   Interface IAEmployee. 421

13.2.3   Interface IAContact 422

13.2.4   Interface IAOutMessage. 424

13.3    Package Presentation. 425

13.3.1   Class PMain. 425

13.3.2   Class PConsole. 426

13.3.2.1 Constructing PConsole object 427

13.3.2.2 Displaying Login and Menu. 428

13.3.2.3 Viewing Outmessages. 429

13.3.2.4 Requesting to Email an Outmessage. 432

13.4    Package Control 433

13.4.1   Class CActioner 433

13.4.1.1 Constructing CActioner object 435

13.4.1.2 Initiating Login. 435

13.4.1.3 Routing Retrieval of Outmessages. 436

13.4.1.4 Emailing an Outmessage. 436

13.4.1.5 Using JavaMailT API 437

13.5    Package Entity. 439

13.5.1   Interface IEDataSupplier 439

13.5.1.1 Object Identifiers and Identity Field Pattern. 440

13.5.2   Class EEmployee. 441

13.5.2.1 Constructing EEmployee object 442

13.5.2.2 Getting Unsent Outmessages. 442

13.5.2.3 Removing Sent Outmessages. 443

13.5.3   Class EContact 443

13.5.3.1 Constructing EContact objects. 444

13.5.3.2 Getting Unsent Outmessages. 445

13.5.3.3 Removing Sent Outmessages. 445

13.5.4   Class EOutMessage. 445

13.5.4.1 Constructing EOutMessage objects. 447

13.5.4.2 Getting and Setting a Contact for Outmessage. 447

13.5.4.3 Getting and Setting a Creator Employee for Outmessage. 448

13.5.4.4 Getting and Setting a Sender Employee for Outmessage. 448

13.6    Package Mediator. 449

13.6.1   Class MBroker 449

13.6.1.1 Constructing MBroker Object 451

13.6.1.2 Requesting Login Connection. 452

13.6.1.3 Creating Employees Cache. 452

13.6.1.4 Retrieving Unsent Outmessages. 453

13.6.1.5 Creating Outmessages Cache. 455

13.6.1.6 Creating Contacts Cache. 455

13.6.1.7 Updating Outmessage after Emailing and Restoring the Cache. 456

13.7    Package Foundation. 457

13.7.1   Class FConnection. 457

13.7.1.1 Constructing FConnection Object 458

13.7.1.2 Obtaining Database Connection. 459

13.7.2   Class FReader 460

13.7.3   Class FWriter 460

Summary. 461

Key Terms. 461

Iteration 1 Questions and Exercises. 462

Part C - Software Refactoring and User Interface Development 463

14       Iteration 2 Requirements and Object Model 464

14.1    Use Case Model 464

14.2    Use Case Document 466

14.2.1   Brief Description, Preconditions and Postconditions. 466

14.2.2   Basic Flow.. 467

14.2.3   Subflows. 468

14.2.4   Exception Flows. 473

14.3    Conceptual Classes and Relational Tables. 474

14.4    Supplementary Specification. 476

Summary. 478

Key Terms. 478

Review Questions. 478

15       Architectural Refactoring. 479

15.1    Refactoring Targets. 480

15.2    Refactoring Methods. 480

15.2.1   Extract Class. 481

15.2.2   Subsume Method. 482

15.2.3   Extract Interface. 484

15.3    Refactoring Patterns. 485

15.3.1   Identity Map. 486

15.3.2   Data Mapper 488

15.3.2.1 Load - Check-out 490

15.3.2.2 Unload - Check-in. 490

15.3.3   Alternative Data Mapper Strategies. 492

15.3.3.1 Many Data Mappers. 493

15.3.3.2 Metadata Mapping. 493

15.3.4   Lazy Load. 495

15.3.4.1 Lazy Initialization. 495

15.3.4.2 Virtual Proxy. 496

15.3.4.3 OID Proxy. 498

15.3.4.3.1 Navigation in Identity Map. 499

15.3.4.3.2 Navigation in Entity Classes. 502

15.3.5   Unit of Work. 504

15.4    Refactored Class Model 505

Summary. 507

Key Terms. 508

Review Questions. 509

Discussion Questions. 509

Case-Study Questions. 509

Problem-Solving Exercises. 510

16       User Interface Design and Programming. 511

16.1    User Interface Design Guidelines. 512

16.1.1   User in Control 513

16.1.2   Interface Consistency. 513

16.1.3   Interface Forgiveness. 514

16.1.4   Interface Adaptability. 515

16.2    User Interface Components. 515

16.2.1   Containers. 516

16.2.1.1 Layout Management 519

16.2.1.2 Layering Management 521

16.2.2   Menus. 521

16.2.3   Controls. 523

16.3    User Interface Event Handling. 525

16.4    Patterns and UI. 529

16.4.1   Observer 529

16.4.2   Decorator 531

16.4.3   Chain of Responsibility. 531

16.4.4   Command. 532

16.5    User Interface For Email Management 533

Summary. 537

Key Terms. 538

Review Questions. 539

Problem-Solving Exercises. 540

17       Web-based User Interface Design and Programming. 542

17.1    Enabling Technologies for Web Client Tier. 543

17.1.1   Basic HTML. 544

17.1.2   Scripting Language. 546

17.1.3   Applet: Thin and Thick. 548

17.2    Enabling Technologies for Web Server Tier. 553

17.2.1   Servlet 553

17.2.2   JSP. 556

17.3    Transactions on Stateless Internet Systems. 559

17.4    Patterns and the Web. 561

17.4.1   Observer 562

17.4.2   Composite. 563

17.4.3   Factory Method. 564

17.4.4   Strategy. 564

17.4.5   Decorator 565

17.4.6   Model-View-Controller 565

17.4.7   Front Controller 566

17.4.8   Reuse of Tags in JSP. 567

17.4.9   Decoupled Control: Struts. 571

17.5    Servlet Implementation of Email Management 572

Summary. 580

Key Terms. 581

Review Questions. 582

Problem-Solving Exercises. 583

18       Iteration 2 Annotated Code. 584

18.1    Code Overview.. 584

18.2    Package Acquaintance. 586

18.2.1   Interface IAEmployee. 587

18.3    Package Presentation. 588

18.3.1   Class PWindow.. 589

18.3.1.1 Constructing and Launching PWindow.. 590

18.3.1.2 Data Retrieval in PWindow.. 591

18.3.1.3 Filter Activation. 593

18.3.2   Class PMessageDetailWindow.. 595

18.3.3   Class PMessageTableModel 597

18.3.4   Class PDisplayList 601

18.3.5   Class PDisplayList.Filter 603

18.4    Control Package. 605

18.4.1   Class CAdmin. 605

18.4.2   Class CMsgSeeker 606

18.5    Package Entity. 608

18.5.1   Class EIdentityMap. 609

18.6    Package Mediator. 611

18.6.1   Class MModerator 611

18.6.2   Class MDataMapper 612

18.6.2.1 Outmessage Retrievals and Loading. 614

18.6.2.2 Outmessage Saving and Unloading. 616

18.7    Presentation Layer: Applet Version. 618

18.8    Presentation Layer: Servlet Version. 620

18.8.1   Class PEMS. 620

18.8.1.1 Login in Servlet 622

18.8.1.2 Show Outmessages in Servlet 623

18.8.2   Class PEMSEdit 626

Summary. 628

Key Terms. 629

Iteration 2 Questions and Exercises. 629

Part D - Data Engineering and Business Components. 632

19       Iteration 3 Requirements and Object Model 634

19.1    Use Case Model 634

19.2    Use Case Document 636

19.2.1   Brief Description, Preconditions and Postconditions. 636

19.2.2   Basic Flow.. 637

19.2.3   Subflows. 639

19.2.4   Exception Flows. 647

19.3    Conceptual Classes and Relational Tables. 648

19.4    Supplementary Specification. 652

19.5    Database Specification. 653

Summary. 655

Key Terms. 655

Review Questions. 655

20       Security and Integrity. 657

20.1    Designing Security. 657

20.1.1   Discretionary Authorization. 658

20.1.1.1 System and Object Privileges. 659

20.1.1.2 Programmatic Discretionary Authorization. 662

20.1.1.2.1 Using Views. 662

20.1.1.2.2 Using Synonyms. 664

20.1.1.2.3 Using Stored Procedures and Functions. 665

20.1.2   Mandatory Authorization. 667

20.1.3   Enterprise Authorization. 669

20.2    Designing Integrity. 673

20.2.1   Null and Default Constraints. 673

20.2.2   Domain and Check Constraints. 674

20.2.3   Unique and Primary Keys. 675

20.2.4   Foreign Keys. 676

20.2.5   Triggers. 677

20.3    Security and Integrity in Email Management 682

20.3.1   Security in Email Management 682

20.3.1.1 Explicit Authorization Table. 685

20.3.1.2 Using Individual Schemas, Global Schema, and Stored Procedures. 686

20.3.1.3 Using Individual Schemas, Global Schema, Views, and Stored Procedures. 687

20.3.1.4 Authorization Administration. 689

20.3.2   Integrity in Email Management 691

Summary. 693

Key Terms. 694

Review Questions. 695

Problem-Solving Exercises. 696

21       Transactions and Concurrency. 697

21.1    Concurrency in System Transactions. 698

21.1.1   ACID Properties. 699

21.1.2   Isolation Levels. 700

21.1.3   Lock Modes and Levels. 701

21.1.4   Transactional Models. 702

21.1.5   Concurrency Control Schemes. 705

21.2    Concurrency in Business Transactions. 708

21.2.1   Business Transaction Execution Contexts. 708

21.2.2   Business Transactions and Component Technology. 709

21.2.3   Transaction Services Across Tiers. 710

21.2.3.1 Web Tier 711

21.2.3.2 Application Tier 711

21.2.3.3 Database Tier 713

21.2.4   Offline Concurrency Patterns. 715

21.2.4.1 Unit of Work. 715

21.2.4.2 Optimistic Offline Lock. 717

21.2.4.3 Pessimistic Offline Lock. 718

21.3    Transactions and Concurrency in Email Management 719

21.3.1   Flat Transaction Model 720

21.3.2   Unit of Work and Transactional Support 720

Summary. 723

Key Terms. 724

Review Questions. 725

Problem-Solving Exercises. 726

22       Business Components. 728

22.1    Enterprise JavaBeans. 728

22.1.1   EJB Fundamentals. 731

22.1.2   Entity Beans. 733

22.1.3   Session Beans. 738

22.2    Business Components for Java. 739

22.2.1   Creating Entity Components. 739

22.2.1.1 XML for Entity Components. 740

22.2.1.2 Java for Entity Components. 742

22.2.2   Creating View Components. 743

22.2.2.1 XML for View Components. 743

22.2.2.2 Java for View Components. 744

22.2.3   Creating Application Module. 745

Summary. 746

Key Terms. 747

Review Questions. 747

23       Iteration 3 Annotated Code. 749

23.1    Code Overview.. 749

23.2    Package Acquaintance. 750

23.2.1   Interface IAReportEntry. 751

23.3    Package Presentation. 752

23.3.1   Class PWindow.. 753

23.3.1.1 Populating Report Contact List 753

23.3.1.2 Report Window.. 753

23.3.1.3 Activity Report 755

23.3.1.4 Printing Report 756

23.3.1.5 Populating Report Table. 757

23.3.1.6 Show Authorization Window.. 758

23.3.1.7 Conversion from Rule Matrix to Authorization Table. 760

23.3.1.8 Saving Modified Authorization Rules. 762

23.3.1.9 Conversion from Authorization Table to Rule Matrix. 762

23.3.1.10 Delete Outmessage. 763

23.3.1.11 Modify Outmessage. 764

23.3.1.12 Create Outmessage. 765

23.3.2   Class PTableWindow.. 765

23.3.2.1 Dynamic Registration of Buttons. 766

23.3.2.2 Adding Listeners to Dynamically Generated Button. 767

23.3.2.3 Button Return Status. 768

23.3.2.4 Printing in PTableWindow.. 768

23.4    Package Control 769

23.5    Package Entity. 770

23.5.1   Class EIdentityMap. 771

23.5.1.1 Report Registration and Removal 772

23.5.1.2 Report Retrieval 773

23.6    Package Mediator. 775

23.6.1   Class MModerator 775

23.6.1.1 Authorization Rules. 776

23.6.1.2 Report Retrieval 777

23.6.1.3 Creating Outmessage. 779

23.6.1.4 Updating Outmessage. 779

23.6.2   Class MDataMapper 780

23.6.2.1 Changes to Previous Methods. 781

23.6.2.2 Report Retrieval in MDataMapper 782

23.6.2.3 Authorization Rules Loading in MDataMapper 784

23.6.2.4 Saving Authorization Rules in MDataMapper 785

23.6.3   Class MUnitOfWork. 786

23.6.3.1 Acquiring MUnitOfWork. 787

23.6.3.2 New Entity Registration in MUnitOfWork. 788

23.6.3.3 Dirty Entity Registration in MUnitOfWork. 789

23.6.3.4 Entity Removal in MUnitOfWork. 789

23.6.3.5 Committing MUnitOfWork. 790

23.6.3.6 Execution of Transaction. 791

23.6.3.7 Starting Transaction. 792

23.7    Package Foundation. 792

23.7.1   Transactions on FConnection. 793

23.7.2   Execute Statements in FWriter 794

23.7.3   Querying Database in FReader 795

23.8    Database Code. 796

23.8.1   Ref Cursor for ResultSet 796

23.8.2   Retrieval of OutMessages. 797

23.8.3   Retrieval of Departmental Outmessages. 798

23.8.4   Deleting Outmessage. 799

23.8.5   Creating Outmessage. 800

23.8.6   Report Generation. 801

23.8.7   Trigger on OutMessage Table. 803

Summary. 804

Key Terms. 805

Iteration 3 Questions and Exercises. 805

Bibliography. 807

Index. 813

 


 

About Us | Site Map | Contact Us | ©2005 Pearson Education - Addison Wesley