rent-now

Rent More, Save More! Use code: ECRENTAL

5% off 1 book, 7% off 2 books, 10% off 3+ books

9780321204653

Practical Software Engineering : An Interactive Case-Study Approach to Information Systems Development

by ;
  • ISBN13:

    9780321204653

  • ISBN10:

    0321204654

  • Edition: CD
  • Format: Paperback w/CD
  • Copyright: 2004-01-01
  • Publisher: Addison Wesley
  • Purchase Benefits
List Price: $82.40

Summary

The distinctive character of this book stems from two endeavors. First, this book is about the way software engineering is done in practice. Second, it is about software engineering for enterprise applications. Enterprise applications include payroll, patient records, shipping tracking, cost analysis, credit scoring, insurance, supply chain, accounting, customer service, and foreign exchange trading. Enterprise applications dont include automobile fuel injection, word processors, elevator controllers, chemical plant controllers, telephone switches, operating systems, compilers, and games. (Fowler, 2003, p.3). The book is pivoted on one main case-study, a large number of supporting examples, and end-of-chapter problem-solving exercises consisting of case-study exercises and minicases. A particular organization that the case-study, problem-solving exercises and most examples are derived from is a company specializing in advertising expenditure measurement. The book endeavors to give broad software engineering knowledge and to provide background information prior to presenting case-study solutions. However, a distinguishing emphasis of the book is to concentrate on support skills for system design and programming. For given requirements, the book iteratively develops design and implementation models. Case-study, examples and problem-solving exercises are carefully selected to emphasize various aspects of software development as necessitated by unique characteristics of different applications and target software solutions.  The book consists of four parts. Part A (Software projects) discusses software lifecycle, software engineering tools, project planning, budgeting and scheduling, project quality, risk management, and change management. The next three parts (B, C, and D) concentrate on methods, techniques, processes, and development environments of software engineering.  The case-study, examples and problem-solving exercises are based on the experience gained from a large ACNielsen project. For pedagogical reasons, industrial problems and solutions have been simplified and re-implemented specifically for the purpose of the book. Occasionally, for comparative purposes, more than one programming environment has been used in presented solutions. All programming code, including code not presented in the text, is available on the books website. The code is mostly Java accessing Oracle database.      

Author Biography

Leszek Maciaszek is an Associate Professor of Computing at Macquarie University, Sydney, Australia.

Table of Contents

Guided tour xxvi
Preface xxix
Acknowledgements xxxv
Part 1 Software Projects 1(194)
Chapter 1 Software Development Lifecycle
5(32)
1.1 Software Engineering Quintessence
7(8)
1.1.1 Software System is less than Enterprise Information System
7(1)
1.1.2 Software Process is part of Business Process
8(2)
1.1.3 Software Engineering is different from Traditional Engineering
10(1)
1.1.4 Software Engineering is more than Programming
11(1)
1.1.5 Software Engineering is about Modeling
12(1)
1.1.6 Software System is Complex
13(2)
1.2 Lifecycle Phases
15(6)
1.2.1 Requirements Analysis
16(1)
1.2.2 System Design
17(1)
1.2.3 Implementation
18(1)
1.2.4 Integration and Deployment
19(2)
1.2.5 Operation and Maintenance
21(1)
1.3 Lifecycle Models
21(11)
1.3.1 Waterfall Lifecycle with Feedback
22(3)
1.3.2 Iterative Lifecycle with Increments
25(13)
Spiral model
25(2)
Rational Unified Process (RUP)
27(2)
Model Driven Architecture (MDA)
29(1)
Agile lifecycle with short cycles
29(3)
Summary
32(2)
Key Terms
34(1)
Review Questions
35(2)
Chapter 2 Software Modeling Language
37(26)
2.1 Structured Modeling Language
38(5)
2.1.1 Data Flow Modeling
39(3)
2.1.2 Entity-Relationship Modeling
42(1)
2.2 Object-Oriented Modeling Language
43(16)
2.2.1 Class Diagrams
43(3)
2.2.2 Use Case Diagrams
46(4)
2.2.3 Interaction Diagrams
50(3)
Sequence diagrams
50(1)
Collaboration (communication) diagrams
51(2)
2.2.4 Statechart Diagrams
53(2)
2.2.5 Activity Diagrams
55(1)
2.2.6 Implementation Diagrams
56(8)
Component diagrams
56(3)
Deployment diagrams
59(1)
Summary
59(1)
Key Terms
60(1)
Review Questions
61(1)
Problem-Solving Exercises
62(1)
Chapter 3 Software Engineering Tools
63(49)
3.1 Project Management Tools
64(9)
3.1.1 Project Scheduling and Controlling
65(1)
3.1.2 Aligning Project and Performance Management with Strategic Objectives
66(1)
3.1.3 Unifying Project Management with Web-Based Collaboration and Content Management
67(1)
3.1.4 Unifying Project Management with Web-Based Portfolio Management
68(1)
3.1.5 Integrating Project Management with Metrics
69(3)
3.1.6 Integrating Project Management with Risk Management
72(1)
3.2 System Modeling Tools
73(10)
3.2.1 Managing Requirements
74(5)
3.2.2 Visual UML Modeling
79(3)
3.2.3 Report Generation
82(1)
3.2.4 Database Modeling
82(1)
3.3 Integrated Development Environments
83(16)
3.3.1 Routine Programming Tasks
85(8)
Writing the program
86(3)
Executing the program
89(1)
Debugging the program
90(3)
3.3.2 Integration with Software Modeling
93(1)
3.3.3 Enterprise Application Development
93(2)
3.3.4 Integration with Business Components
95(2)
3.3.5 Integration with Change and Configuration Management
97(2)
3.4 Change and Configuration Management Tools
99(8)
3.4.1 Support for Changes
99(3)
3.4.2 Support for Versions
102(1)
3.4.3 Support for System Building
102(2)
3.4.4 Support for Reengineering
104(3)
Summary
107(1)
Key Terms
108(1)
Review Questions
109(1)
Problem-Solving Exercises
109(3)
Chapter 4 Software Project Planning and Tracking
112(41)
4.1 Project Plan Development
113(3)
4.2 Project Scheduling
116(10)
4.2.1 Tasks, Milestones, and Deliverables
117(1)
4.2.2 Task Scheduling in a Bar Chart
118(3)
4.2.3 Resources and Resource Calendars
121(1)
4.2.4 Effort-Driven Scheduling in a Bar Chart
122(1)
4.2.5 Resource Underallocation and Overallocation
123(3)
4.3 Project Budget Estimation
126(12)
4.3.1 Schedule-Driven Budget Estimation
127(3)
4.3.2 Algorithmic Budget Estimation
130(8)
Principles of algorithmic models
131(2)
COCOMO 81
133(2)
COCOMO II
135(3)
4.4 Tracking Project Progress
138(11)
4.4.1 Tracking the Schedule
139(2)
4.4.2 Tracking the Budget
141(14)
Actual costs from schedule
142(1)
Actual costs from accounting
143(3)
Earned value
146(3)
Summary
149(1)
Key Terms
150(1)
Review Questions
150(1)
Problem-Solving Exercises
151(2)
Chapter 5 Software Process Management
153(42)
5.1 People Management
155(8)
5.1.1 Acquiring and Motivating People
155(3)
Team creation
156(1)
Motivational theories
157(1)
5.1.2 Project Communications
158(4)
Forms of communication
158(1)
Lines of communication
159(1)
Factors in communication
160(1)
Communication in conflict resolution
161(1)
5.1.3 Team Development
162(1)
5.2 Risk Management
163(5)
5.2.1 Risk Identification
163(1)
5.2.2 Risk Assessment
164(3)
5.2.3 Risk Handling
167(1)
5.3 Quality Management
168(12)
5.3.1 Software Qualities
169(2)
5.3.2 Quality Control
171(6)
Software testing
171(2)
Testing techniques
173(3)
Test planning
176(1)
5.3.3 Quality Assurance
177(3)
Checklists
178(1)
Reviews
178(1)
Audits
179(1)
5.4 Change and Configuration Management
180(10)
5.4.1 Requirements Changes
181(1)
5.4.2 Artifact Versions
182(3)
5.4.3 Defects and Enhancements
185(2)
5.4.4 Metrics
187(3)
Summary
190(1)
Key Terms
191(2)
Review Questions
193(2)
Part 2 From Requirements via Architectual Design to Software Release 195(266)
Chapter 6 Business Object Model
199(16)
6.1 Advertising Expenditure Measurement - The Business
200(1)
6.2 Business Context Diagram
201(1)
6.3 Business Use Case Model
202(5)
6.3.1 Business Use Cases and Business Actors
202(1)
6.3.2 Business Use Case Model for AEM
203(1)
6.3.3 Alternative Business Use Case Model for AEM
204(3)
6.4 Business Glossary
207(1)
6.4.1 Business Glossary for AEM
207(1)
6.5 Business Class Model
207(3)
6.5.1 Business Entities
207(1)
6.5.2 Business Class Model for AEM
208(1)
6.5.3 Alternative Business Class Model for AEM
209(1)
Summary
210(1)
Key Terms
211(1)
Review Questions
211(1)
Discussion Questions
211(1)
Case Study Questions
211(1)
Problem-Solving Exercises
212(3)
Case Study Exercises
212(1)
Minicase - Advertising Expenditure Measurement
212(3)
Chapter 7 Domain Object Model
215(19)
7.1 Contact Management - The Domain
216(1)
7.2 Domain Use Case Model
217(5)
7.2.1 Use Cases and Actors
217(1)
7.2.2 Use Case Relationships
217(2)
7.2.3 Use Case Model for Contact Management
219(1)
7.2.4 Alternative Use Case Model for Contact Management
220(2)
7.3 Domain Glossary
222(2)
7.3.1 Domain Glossary for Contact Management
222(2)
7.4 Domain Class Model
224(5)
7.4.1 Classes and Attributes
224(2)
7.4.2 Class Relationships
226(1)
7.4.3 Class Model for Contact Management
227(1)
7.4.4 Alternative Class Model for Contact Management
228(1)
Summary
229(1)
Key Terms
230(1)
Review Questions
231(1)
Discussion Questions
231(1)
Case Study Questions
231(1)
Problem-Solving Exercises
231(3)
Case Study Exercises
231(1)
Minicase - Time Logging
232(2)
Chapter 8 Iteration 1 Requirements and Object Model
234(14)
8.1 Use Case Model
235(1)
8.2 Use Case Document
236(5)
8.2.1 Brief Description, Preconditions, and Postconditions
236(1)
8.2.2 Basic Flow
237(2)
8.2.3 Subflows
239(2)
8.2.4 Exception Flows
241(1)
8.3 Conceptual Classes
241(2)
8.4 Supplementary Specification
243(2)
Summary
245(1)
Key Terms
245(1)
Review Questions
246(1)
Discussion Questions
246(1)
Case Study Questions
246(1)
Problem-Solving Exercises
246(2)
Case Study Exercises
246(1)
Minicase - Time Logging
247(1)
Chapter 9 Architectural Design
248(53)
9.1 Architectural Layers and Dependency Management
249(28)
9.1.1 Architectural Modules
249(2)
Design classes
250(1)
Packages
250(1)
9.1.2 Package Dependencies
251(2)
9.1.3 Layer Dependencies
253(1)
9.1.4 Class Dependencies
254(1)
9.1.5 Inheritance Dependencies
255(5)
Inheritance without polymorphism
258(1)
Extension and restriction inheritance
258(1)
Down-calls
259(1)
Up-calls
260(1)
9.1.6 Method Dependencies
260(4)
Method dependencies in the presence of delegation
262(1)
Method dependencies in the presence of implementation inheritance
262(2)
9.1.7 Interfaces
264(4)
Implementation dependency
266(1)
Usage dependency
266(1)
Breaking circular dependencies with interfaces
267(1)
9.1.8 Event Processing
268(5)
Event processing and layer dependencies
270(1)
Event processing and interfaces
270(3)
9.1.9 Acquaintance
273(4)
Acquaintance dependencies and interfaces
273(2)
Acquaintance package
275(2)
9.2 Architectural Frameworks
277(8)
9.2.1 Model-View-Controller
277(2)
9.2.2 Presentation-Control -Mediator-Entity-Foundation
279(6)
PCMEF layers
280(2)
PCMEF principles
282(1)
Acquaintance in PCMEF+
283(2)
Deployment of PCMEF layers
285(1)
9.3 Architectural Patterns
285(7)
9.3.1 Facade
286(1)
9.3.2 Abstract Factory
286(1)
9.3.3 Chain of Responsibility
287(1)
9.3.4 Observer
288(2)
9.3.5 Mediator
290(2)
Summary
292(1)
Key Terms
293(1)
Review Questions
294(1)
Problem-Solving Exercises
295(6)
Case Study Exercises
295(1)
Minicase - Contact Information Management
295(6)
Chapter 10 Database Design and Programming
301(30)
10.1 Quick Tutorial in Relational Databases from a Software Engineering Viewpoint
302(13)
10.1.1 Table
303(2)
10.1.2 Referential Integrity
305(1)
10.1.3 Conceptual versus Logical Database Models
306(1)
10.1.4 Implementing Business Rules
307(3)
10.1.5 Programming Database Application Logic
310(1)
10.1.6 Indexes
311(4)
10.2 Mapping Transient Objects to Persistent Records
315(7)
10.2.1 Object Databases, SQL:1999, and Impedance Mismatch
316(1)
10.2.2 Object-Relational Mapping
317(5)
Mapping a one-to-many association and aggregation
317(2)
Mapping a many-to-many association
319(1)
Mapping a one-to-one association
320(1)
Mapping a one-to-many recursive association
320(1)
Mapping a many-to-many recursive association
321(1)
Mapping generalization
321(1)
10.3 Database Design and Creation for Email Management
322(6)
10.3.1 Database Model
323(2)
10.3.2 Creating the Database Schema
325(1)
10.3.3 Sample Database Content
326(2)
Summary
328(1)
Key Terms
328(1)
Review Questions
329(1)
Discussion Questions
329(1)
Case Study Questions
329(1)
Problem-Solving Exercises
330(1)
Case Study Exercises
330(1)
Minicase - Contact Information Management
330(1)
Chapter 11 Class and Interaction Design
331(34)
11.1 Finding Classes from Use Case Requirements
332(7)
11.1.1 Finding Classes from Use Case Requirements for Email Management
333(4)
11.1.2 Initial Class Design for Email Management
337(2)
Constants in interface
339(1)
11.2 Architectural Elaboration of Class Design
339(7)
11.2.1 Architectural Elaboration of Class Design for Email Management
342(1)
11.2.2 Class Design for Email Management after Architectural Elaboration
343(1)
11.2.3 Class Instantiation
344(2)
Who instantiates the first object?
345(1)
Instantiation diagram for Email Management
345(1)
11.3 Interactions
346(5)
11.3.1 Sequence Diagrams
347(2)
11.3.2 Communication Diagrams
349(2)
11.3.3 Interaction Overview Diagrams
351(1)
11.4 Interactions for Email Management
351(10)
11.4.1 The 'Login' Interaction
352(1)
11.4.2 The 'Exit' Interaction
353(1)
11.4.3 The 'View Unsent Messages' Interaction
354(2)
11.4.4 The 'Display Message Text' Interaction
356(1)
11.4.5 The 'Email Message' Interaction
357(1)
11.4.6 The 'Incorrect User Name or Password' Interaction
358(1)
11.4.7 The 'Incorrect Option' Interaction
358(1)
11.4.8 The 'Too Many Messages' Interaction
359(2)
11.4.9 The 'Email Could Not Be Sent' Interaction
361(1)
Summary
361(1)
Key Terms
362(1)
Review Questions
362(1)
Discussion Questions
362(1)
Case Study Questions
362(1)
Problem-Solving Exercises
363(2)
Case Study Exercises
363(1)
Minicase - Time Logging System
363(1)
Minicase - Contact Information Management
364(1)
Chapter 12 Programming and Testing
365(49)
12.1 Quick Tutorial in Java from a Software Engineering Viewpoint
366(19)
12.1.1 Class
366(3)
12.1.2 Class Associations and Collections
369(8)
From conceptual to design class model
369(2)
Java collections
371(2)
Associations on entity objects
373(2)
C++ parameterized types
375(2)
12.1.3 Database Access in Java
377(8)
Comparison of JDBC and SQLJ
378(1)
Establishing a database connection
379(1)
Executing SQL statements
379(4)
Calling stored procedures and functions
383(2)
12.2 Test-Driven Development
385(10)
12.2.1 JUnit Framework
386(3)
12.2.2 Test-Driven Development in Email Management
389(6)
12.3 Acceptance and Regression Testing
395(9)
12.3.1 Test Scripts in Email Management
396(2)
12.3.2 Test Input, Output, and Regression Testing in Email Management
398(3)
12.3.3 Implementation of Test Script in Email Management
401(3)
12.4 Iteration 1 Runtime Screenshots
404(5)
Summary
409(1)
Key Terms
410(1)
Review Questions
411(1)
Problem-Solving Exercises
411(3)
Tutorial and Case Study Exercises
411(1)
Minicase - Time Logging System
412(1)
Minicase - Contact Information Management
413(1)
Chapter 13 Iteration 1 Annotated Code
414(47)
13.1 Code Overview
415(2)
13.2 Package Acquaintance
417(5)
13.2.1 Interface IAConstants
417(2)
13.2.2 Interface IAEmployee
419(1)
13.2.3 Interface IAContact
419(1)
13.2.4 Interface IAOutMessage
420(2)
13.3 Package Presentation
422(8)
13.3.1 Class PMain
422(1)
13.3.2 Class PConsole
423(7)
Constructing a PConsole object
424(2)
Displaying login and menu
426(1)
Viewing outmessages
426(3)
Requesting to email an outmessage
429(1)
13.4 Package Control
430(5)
13.4.1 Class CActioner
430(5)
Constructing a CActioner object
432(1)
Initiating login
433(1)
Routing retrieval of outmessages
433(1)
Emailing an outmessage
434(1)
Using JavaMail™ API
435(1)
13.5 Package Entity
435(11)
13.5.1 Interface IEDataSupplier
435(4)
Object identifiers and identity field pattern
438(1)
13.5.2 Class EEmployee
439(2)
Constructing an EEmployee object
439(1)
Getting unsent outmessages
440(1)
Removing sent outmessages
440(1)
13.5.3 Class EContact
441(2)
Constructing an EContact object
442(1)
Getting unsent outmessages
442(1)
Removing sent outmessages
442(1)
13.5.4 Class EOutMessage
443(3)
Constructing an EOutMessage object
444(1)
Getting and setting a contact for Outmessage
444(1)
Getting and setting a creator employee for outmessage
445(1)
Getting and setting a sender employee for outmessage
445(1)
13.6 Package Mediator
446(9)
13.6.1 Class MBroker
447(8)
Constructing an MBroker object
448(1)
Requesting login connection
448(2)
Creating Employees Cache
450(1)
Retrieving unsent outmessages
450(2)
Creating an outmessages cache
452(1)
Creating a contacts cache
453(1)
Updating outmessages after emailing and restoring the cache
454(1)
13.7 Package Foundation
455(4)
13.7.1 Class FConnection
455(3)
Constructing an FConnection object
456(1)
Obtaining database connection
456(2)
13.7.2 Class FReader
458(1)
13.7.3 Class FWriter
458(1)
Summary
459(1)
Key Terms
459(1)
Iteration 1 Questions and Exercises
459(2)
Part 3 Software Refactoring and User Interface Development 461(176)
Chapter 14 Iteration 2 Requirements and Object Model
463(15)
14.1 Use Case Model
464(1)
14.2 Use Case Document
465(9)
14.2.1 Brief Description, Preconditions, and Postconditions
466(1)
14.2.2 Basic Flow
466(2)
14.2.3 Subflows
468(4)
14.2.4 Exception Flows
472(2)
14.3 Conceptual Classes and Relational Tables
474(2)
14.4 Supplementary Specification
476(1)
Summary
477(1)
Key Terms
477(1)
Review Questions
477(1)
Chapter 15 Architectural Refactoring
478(31)
15.1 Refactoring Targets
479(1)
15.2 Refactoring Methods
479(5)
15.2.1 Extract Class
480(1)
15.2.2 Subsume Method
481(2)
15.2.3 Extract Interface
483(1)
15.3 Refactoring Patterns
484(18)
15.3.1 Identity Map
485(2)
15.3.2 Data Mapper
487(3)
Load - check-out
487(1)
Unload - check-in
488(2)
15.3.3 Alternative Data Mapper Strategies
490(3)
Many data mappers
490(2)
Metadata mapping
492(1)
15.3.4 Lazy Load
493(8)
Lazy Initialization
494(1)
Virtual Proxy
495(1)
OID Proxy
495(3)
Navigation in Identity Map
498(2)
Navigation in Entity Classes
500(1)
15.3.5 Unit of Work
501(1)
15.4 Refactored Class Model
502(3)
Summary
505(1)
Key Terms
506(1)
Review Questions
507(1)
Discussion Questions
507(1)
Case Study Questions
507(1)
Problem-Solving Exercises
507(2)
Chapter 16 User Interface Design and Programming
509(32)
16.1 User Interface Design Guidelines
510(4)
16.1.1 User in Control
511(1)
16.1.2 Interface Consistency
512(1)
16.1.3 Interface Forgiveness
512(1)
16.1.4 Interface Adaptability
513(1)
16.2 User Interface Components
514(9)
16.2.1 Containers
515(5)
Layout management
518(1)
Layering management
519(1)
16.2.2 Menus
520(1)
16.2.3 Controls
521(2)
16.3 User Interface Event Handling
523(4)
16.4 Patterns and the User Interface
527(5)
16.4.1 Observer
528(2)
16.4.2 Decorator
530(1)
16.4.3 Chain of Responsibility
530(1)
16.4.4 Command
531(1)
16.5 User Interface for Email Management
532(5)
Summary
537(1)
Key Terms
538(1)
Review Questions
539(1)
Problem-Solving Exercises
540(1)
Chapter 17 Web-Based User Interface Design and Programming
541(43)
17.1 Enabling Technologies for the Web Client Tier
543(8)
17.1.1 Basic HTML
543(2)
17.1,2 Scripting Language
545(2)
17.1.3 Applet: Thin and Thick
547(4)
17.2 Enabling Technologies for the Web Server Tier
551(8)
17.2.1 Servlet
551(4)
17.2.2 JSP
555(4)
17.3 Transactions on Stateless Internet Systems
559(2)
17.4 Patterns and the Web
561(12)
17.4.1 Observer
563(1)
17.4.2 Composite
563(1)
17.4.3 Factory Method
564(1)
17.4.4 Strategy
565(1)
17.4.5 Decorator
565(1)
17.4.6 Model-View-Controller
566(1)
17.4.7 Front Controller
567(1)
17.4.8 Reuse of Tags in JSP
567(5)
17.4.9 Decoupled Control: Struts
572(1)
17.5 Servlet Implementation of Email Management
573(8)
Summary
581(1)
Key Terms
582(1)
Review Questions
582(1)
Problem-Solving Exercises
583(1)
Chapter 18 Iteration 2 Annotated Code
584(53)
18.1 Code Overview
585(1)
18.2 Package Acquaintance
586(2)
18.2.1 Interface IAEmployee
587(1)
18.3 Package Presentation
588(19)
18.3.1 Class PWindow
588(7)
Constructing and launching PWindow
588(2)
Data retrieval in PWindow
590(3)
Filter activation
593(2)
18.3.2 Class PMessageDetailWindow
595(3)
18.3.3 Class PMessageTableModel
598(3)
18.3.4 Class PDisplayList
601(3)
18.3.5 Class PDisplayList.Filter
604(3)
18.4 Package Control
607(1)
18.4.1 Class CAdmin
607(1)
18.4.2 Class CMsgSeeker
607(1)
18.5 Package Entity
608(4)
18.5.1 Class EldentityMap
609(3)
18.6 Package Mediator
612(8)
18.6.1 Class MModerator
613(1)
18.6.2 Class MDataMapper
613(9)
Outmessage retrievals and loading
615(3)
Outmessage saving and unloading
618(2)
18.7 Presentation Layer: Applet Version
620(2)
18.8 Presentation Layer: Servlet Version
622(10)
18.8.1 Class PEMS
623(7)
Login in servlet
624(2)
Showing outmessages in servlet
626(4)
18.8.2 Class PEMSEdit
630(2)
Summary
632(1)
Key Terms
633(1)
Iteration 2 Questions and Exercises
633(4)
Part 4 Data Engineering and Business Components 637(174)
Chapter 19 Iteration 3 Requirements and Object Model
639(21)
19.1 Use Case Model
640(1)
19.2 Use Case Document
641(12)
19.2.1 Brief Description, Preconditions, and Postconditions
641(1)
19.2.2 Basic Flow
642(2)
19.2.3 Subflows
644(7)
19.2.4 Exception Flows
651(2)
19.3 Conceptual Classes and Relational Tables
653(2)
19.4 Supplementary Specification
655(2)
19.5 Database Specification
657(2)
Summary
659(1)
Key Terms
659(1)
Review Questions
659(1)
Chapter 20 Security and Integrity
660(40)
20.1 Designing Security
661(14)
20.1.1 Discretionary Authorization
662(9)
System and object privileges
663(1)
Programmatic discretionary authorization
664(7)
20.1.2 Mandatory Authorization
671(1)
20.1.3 Enterprise Authorization
672(3)
20.2 Designing Integrity
675(10)
20.2.1 Null and Default Constraints
676(1)
20.2.2 Domain and Check Constraints
677(1)
20.2.3 Unique and Primary Keys
677(1)
20.2.4 Foreign Keys
678(2)
20.2.5 Triggers
680(5)
20.3 Security and Integrity in Email Management
685(12)
20.3.1 Security in Email Management
685(8)
Explicit Authorization table
688(1)
Using individual schemas, global schema, and stored procedures
689(1)
Using individual schemas, global schema, views, and stored procedures
689(3)
Authorization administration
692(1)
20.3.2 Integrity in Email Management
693(4)
Summary
697(1)
Key Terms
698(1)
Review Questions
699(1)
Problem-Solving Exercises
699(1)
Chapter 21 Transactions and Concurrency
700(29)
21.1 Concurrency in System Transactions
701(10)
21.1.1 ACID Properties
702(1)
21.1.2 Isolation Levels
703(2)
21.1.3 Lock Modes and Levels
705(1)
21.1.4 Transactional Models
706(1)
21.1.5 Concurrency Control Schemes
707(4)
21.2 Concurrency in Business Transactions
711(11)
21.2.1 Business Transaction Execution Contexts
711(1)
21.2.2 Business Transactions and Component Technology
712(1)
21.2.3 Transaction Services across Tiers
712(5)
Web tier
713(1)
Application tier
714(2)
Database tier
716(1)
21.2.4 Offline Concurrency Patterns
717(5)
Unit of Work
718(1)
Optimistic Offline Lock
719(2)
Pessimistic Offline Lock
721(1)
21.3 Transactions and Concurrency in Email Management
722(3)
21.3.1 Flat Transaction Model
722(1)
21.3.2 Unit of Work and Transactional Support
723(2)
Summary
725(1)
Key Terms
726(1)
Review Questions
727(1)
Problem-Solving Exercises
727(2)
Chapter 22 Business Components
729(21)
22.1 Enterprise JavaBeans
730(11)
22.1.1 EJB Fundamentals
732(3)
22.1.2 Entity Beans
735(4)
22.1.3 Session Beans
739(2)
22.2 Business Components for Java
741(7)
22.2.1 Creating Entity Components
741(3)
XML for entity components
742(2)
Java for entity components
744(1)
22.2.2 Creating View Components
744(3)
XML for view components
745(1)
Java for view components
746(1)
22.2.3 Creating the Application Module
747(1)
Summary
748(1)
Key Terms
749(1)
Review Questions
749(1)
Chapter 23 Iteration 3 Annotated Code
750(61)
23.1 Code Overview
751(1)
23.2 Package Acquaintance
751(2)
23.2.1 Interface IAReportEntry
751(2)
23.3 Package Presentation
753(18)
23.3.1 Class PWindow
754(13)
Populating the report contact list
754(1)
Report window
755(2)
Activity report
757(1)
Printing the report
757(1)
Populating the report table
758(1)
Showing the authorization window
759(3)
Conversion from rule matrix to authorization table
762(1)
Saving modified authorization rules
762(2)
Conversion from authorization table to rule matrix
764(1)
Deleting an outmessage
764(2)
Modifying an outmessage
766(1)
Creating an outmessage
766(1)
23.3.2 Class PTableWindow
767(4)
Dynamic registration of buttons
767(2)
Adding listeners to dynamically generated buttons
769(1)
Button return status
770(1)
Printing in PTableWindow
770(1)
23.4 Package Control
771(1)
23.5 Package Entity
771(5)
23.5.1 Class EldentityMap
773(3)
Report registration and removal
773(1)
Report retrieval
774(2)
23.6 Package Mediator
776(19)
23.6.1 Class MModerator
777(5)
Authorization rules
777(2)
Report retrieval
779(2)
Creating an outmessage
781(1)
Updating an outmessage
781(1)
23.6.2 Class MDataMapper
782(7)
Changes to previous methods
782(2)
Report retrieval in MDataMapper
784(2)
Authorization rules loading in MDataMapper
786(1)
Saving authorization rules in MDataMapper
786(3)
23.6.3 Class MUnitOfWork
789(6)
Acquiring MUnitOfWork
790(1)
New entity registration in MUnitOfWork
791(1)
Dirty entity registration in MUnitOfWork
791(1)
Entity removal in MUnitOfWork
792(1)
Committing MUnitOfWork
792(1)
Execution of a transaction
793(2)
Starting a transaction
795(1)
23.7 Package Foundation
795(4)
23.7.1 Transactions on FConnection
796(1)
23.7.2 Execute Statements in FWriter
796(2)
23.7.3 Querying the Database in FReader
798(1)
23.8 Database Code
799(10)
23.8.1 Ref Cursor for ResultSet
800(1)
23.8.2 Retrieval of Outmessages
801(1)
23.8.3 Retrieval of Departmental Outmessages
801(1)
23.8.4 Deleting an Outmessage
802(1)
23.8.5 Creating an Outmessage
803(2)
23.8.6 Report Generation
805(2)
23.8.7 Trigger on OutMessage Table
807(2)
Summary
809(1)
Key Terms
810(1)
Iteration 3 Questions and Exercises
810(1)
Bibliography 811(5)
Index 816(10)
The accompanying CD 826

Supplemental Materials

What is included with this book?

The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.

The Used, Rental and eBook copies of this book are not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.

Rewards Program