![]() |
Maciaszek L.A. and Liong B.L. (2005):
| ![]() |
The Book Outline and Organization
1 Software Development Lifecycle
1.1 Software Engineering Quintessence
1.1.1 Software
System Is Less Than Enterprise Information System
1.1.2 Software
Process Is Part Of Business Process
1.1.3 Software
Engineering Is Different From Traditional Engineering
1.1.4 Software
Engineering Is More Than Programming
1.1.5 Software
Engineering Is About Modeling
1.1.6 Software
System Is Complex
1.2.4 Integration
and Deployment
1.2.5 Operation
and Maintenance
1.3.1 Waterfall
Lifecycle With Feedback
1.3.2 Iterative
Lifecycle With Increments
1.3.2.2 Rational
Unified Process (RUP)
1.3.2.3 Model
Driven Architecture (MDA)
1.3.2.4 Agile
Lifecycle With Short Cycles
2.1 Structured Modeling Language
2.1.2 Entity-Relationship
Modeling
2.2 Object-Oriented Modeling Language
2.2.3.2 Collaboration
(Communication) Diagrams
3.1.1 Project
Scheduling and Controlling
3.1.2 Aligning
Project and Performance Management with Strategic Objectives
3.1.3 Unifying
Project Management with Web-Based Collaboration and Content Management
3.1.4 Unifying
Project Management with Web-Based Portfolio Management
3.1.5 Integrating
Project Management with Metrics
3.1.6 Integrating
Project Management with Risk Management
3.3 Integrated Development Environments
3.3.1 Routine
Programming Tasks
3.3.2 Integration
with Software Modeling
3.3.3 Enterprise
Application Development
3.3.4 Integration
with Business Components
3.3.5 Integration
with Change and Configuration Management
3.4 Change and Configuration Management Tools
3.4.3 Support
for System Building
3.4.4 Support
for Reengineering
4 Software Project Planning and Tracking
4.2.1 Tasks,
Milestones and Deliverables
4.2.2 Task
Scheduling in Bar Chart
4.2.3 Resources
and Resource Calendars
4.2.4 Effort-driven
Scheduling in Bar Chart
4.2.5 Resource
Underallocation and Overallocation
4.3.1 Schedule-driven
Budget Estimation
4.3.2 Algorithmic
Budget Estimation
4.3.2.1 Principles
of Algorithmic Models
4.4.2.1 Actual
Costs from Schedule
4.4.2.2 Actual
Costs from Accounting
5.1.1 Acquiring
and Motivating People
5.1.2.1 Forms
of Communication
5.1.2.2 Lines
of Communication
5.1.2.3 Factors
in Communication
5.1.2.4 Communication
in Conflict Resolution
5.4 Change and Configuration Management
5.4.3 Defects
and Enhancements
Part B - From Requirements via Architectural
Design to Software Release
6.1 Advertising Expenditure Measurement - The Business
6.3.1 Business
Use Cases and Business Actors
6.3.2 Business
Use Case Model for Advertising Expenditure Measurement
6.3.3 Alternative
Business Use Case Model for Advertising Expenditure Measurement
6.4.1 Business
Glossary for Advertising Expenditure Measurement
6.5.2 Business
Class Model for Advertising Expenditure Measurement
6.5.3 Alternative
Business Class Model for Advertising Expenditure Measurement
Minicase
- Advertising Expenditure Measurement 211
7.1 Contact Management - The Domain
7.2.3 Use
Case Model for Contact Management
7.2.4 Alternative
Use Case Model for Contact Management 219
7.3.1 Domain
Glossary for Contact Management
7.4.3 Class
Model for Contact Management
7.4.4 Alternative
Class Model for Contact Management
8 Iteration 1 Requirements and Object Model
8.2.1 Brief
Description, Preconditions and Postconditions
8.4 Supplementary Specification
9.1 Architectural Layers and Dependency Management
9.1.5 Inheritance
Dependencies
9.1.5.1 Inheritance
without Polymorphism
9.1.5.2 Extension
and Restriction Inheritance
9.1.6.1 Method
Dependencies in Presence of Delegation. 264
9.1.6.2 Method
Dependencies in Presence of Implementation Inheritance
9.1.7.1 Implementation
Dependency
9.1.7.3 Breaking
Circular Dependencies with Interfaces. 269
9.1.8.1 Event
Processing and Layer Dependencies
9.1.8.2 Event
Processing and Interfaces
9.1.9.1 Acquaintance
Dependencies and Interfaces
9.2.2 Presentation-Control-Mediator-Entity-Foundation
9.2.2.3 Acquaintance
in PCMEF+
9.2.2.4 Deployment
of PCMEF Layers
Minicase
- Contact Information Management
10 Database Design and Programming
10.1 Quick Tutorial in Relational Databases from Software Engineering
Viewpoint
10.1.3 Conceptual
versus Logical Database Models
10.1.4 Implementing
Business Rules
10.1.5 Programming
Database Application Logic
10.2 Mapping Transient Objects to Persistent Records
10.2.1 Object
Databases, SQL:1999, and Impedance Mismatch
10.2.2 Object-Relational
Mapping
10.2.2.1 Mapping
One-to-Many Association and Aggregation
10.2.2.2 Mapping
Many-to-Many Association
10.2.2.3 Mapping
One-to-One Association
10.2.2.4 Mapping
One-to-Many Recursive Association
10.2.2.5 Mapping
Many-to-Many Recursive Association
10.2.2.6 Mapping
Generalization
10.3 Database Design and Creation for Email Management
10.3.2 Creating
Database Schema
10.3.3 Sample
Database Content
Minicase
- Contact Information Management
11 Class and Interaction Design
11.1 Finding Classes from Use Case Requirements
11.1.1 Finding
Classes from Use Case Requirements for Email Management
11.1.2 Initial
Class Design for Email Management
11.1.2.1 Constants
in Interface
11.2 Architectural Elaboration of Class Design
11.2.1 Architectural
Elaboration of Class Design for Email Management
11.2.2 Class
Design for Email Management after Architectural Elaboration
11.2.3.1 Who
Instantiates the First Object?
11.2.3.2 Instantiation
Diagram for Email Management
11.3.3 Interaction
Overview Diagrams
11.4 Interactions for Email Management
11.4.1 The
"Login" Interaction
11.4.3 The
"View Unsent Messages" Interaction
11.4.4 The
"Display Message Text" Interaction
11.4.5 The
"Email Message" Interaction
11.4.6 The
"Incorrect User Name or Password" Interaction
11.4.7 The
"Incorrect Option" Interaction
11.4.8 The
"Too Many Messages" Interaction
11.4.9 The
"Email Could Not Be Sent" Interaction. 364
Minicase
- Time Logging System
Minicase
- Contact Information Management
12.1 Quick Tutorial in Java from Software Engineering Viewpoint
12.1.2 Class
Associations and Collections
12.1.2.1 From
Conceptual to Design Class Model
12.1.2.3 Associations
on Entity Objects
12.1.2.4 C++
Parameterized Types
12.1.3 Database
Access in Java
12.1.3.1 Comparison
of JDBC and SQLJ
12.1.3.2 Establishing
Database Connection
12.1.3.3 Executing
SQL Statements
12.1.3.4 Calling
Stored Procedures and Functions
12.2.2 Test-Driven
Development in Email Management
12.3 Acceptance and Regression Testing
12.3.1 Test
Scripts in Email Management
12.3.2 Test
Input, Output, and Regression Testing in Email Management
12.3.3 Implementation
of Test Script in Email Management
12.4 Iteration 1 Runtime Screenshots
Tutorial
and Case-Study Exercises
Minicase
- Time Logging System
Minicase
- Contact Information Management
13.3.2.1 Constructing
PConsole object
13.3.2.2 Displaying
Login and Menu
13.3.2.4 Requesting
to Email an Outmessage
13.4.1.1 Constructing
CActioner object
13.4.1.3 Routing
Retrieval of Outmessages
13.4.1.4 Emailing
an Outmessage
13.5.1 Interface
IEDataSupplier
13.5.1.1 Object
Identifiers and Identity Field Pattern. 440
13.5.2.1 Constructing
EEmployee object
13.5.2.2 Getting
Unsent Outmessages
13.5.2.3 Removing
Sent Outmessages
13.5.3.1 Constructing
EContact objects
13.5.3.2 Getting
Unsent Outmessages
13.5.3.3 Removing
Sent Outmessages
13.5.4.1 Constructing
EOutMessage objects
13.5.4.2 Getting
and Setting a Contact for Outmessage
13.5.4.3 Getting
and Setting a Creator Employee for Outmessage
13.5.4.4 Getting
and Setting a Sender Employee for Outmessage
13.6.1.1 Constructing
MBroker Object
13.6.1.2 Requesting
Login Connection
13.6.1.3 Creating
Employees Cache
13.6.1.4 Retrieving
Unsent Outmessages
13.6.1.5 Creating
Outmessages Cache
13.6.1.6 Creating
Contacts Cache
13.6.1.7 Updating
Outmessage after Emailing and Restoring the Cache
13.7.1.1 Constructing
FConnection Object
13.7.1.2 Obtaining
Database Connection
Iteration 1 Questions and Exercises
Part C - Software Refactoring and User
Interface Development
14 Iteration 2 Requirements and Object Model
14.2.1 Brief
Description, Preconditions and Postconditions
14.3 Conceptual Classes and Relational Tables
14.4 Supplementary Specification
15.3.3 Alternative
Data Mapper Strategies
15.3.4.3.1 Navigation
in Identity Map
15.3.4.3.2 Navigation
in Entity Classes
16 User Interface Design and Programming
16.1 User Interface Design Guidelines
16.2 User Interface Components
16.3 User Interface Event Handling
16.4.3 Chain
of Responsibility
16.5 User Interface For Email Management
17 Web-based User Interface Design and
Programming
17.1 Enabling Technologies for Web Client Tier
17.2 Enabling Technologies for Web Server Tier
17.3 Transactions on Stateless Internet Systems
17.4.9 Decoupled
Control: Struts
17.5 Servlet Implementation of Email Management
18.3.1.1 Constructing
and Launching PWindow
18.3.1.2 Data
Retrieval in PWindow
18.3.2 Class
PMessageDetailWindow
18.3.3 Class
PMessageTableModel
18.3.5 Class
PDisplayList.Filter
18.6.2.1 Outmessage
Retrievals and Loading
18.6.2.2 Outmessage
Saving and Unloading
18.7 Presentation Layer: Applet Version
18.8 Presentation Layer: Servlet Version
18.8.1.2 Show
Outmessages in Servlet
Iteration 2 Questions and Exercises
Part D - Data Engineering and Business Components
19 Iteration 3 Requirements and Object Model
19.2.1 Brief
Description, Preconditions and Postconditions
19.3 Conceptual Classes and Relational Tables
19.4 Supplementary Specification
20.1.1 Discretionary
Authorization
20.1.1.1 System
and Object Privileges
20.1.1.2 Programmatic
Discretionary Authorization
20.1.1.2.3 Using
Stored Procedures and Functions
20.1.2 Mandatory
Authorization
20.1.3 Enterprise
Authorization
20.2.1 Null
and Default Constraints
20.2.2 Domain
and Check Constraints
20.2.3 Unique
and Primary Keys
20.3 Security and Integrity in Email Management
20.3.1 Security
in Email Management
20.3.1.1 Explicit
Authorization Table
20.3.1.2 Using
Individual Schemas, Global Schema, and Stored Procedures
20.3.1.3 Using
Individual Schemas, Global Schema, Views, and Stored Procedures
20.3.1.4 Authorization
Administration
20.3.2 Integrity
in Email Management
21 Transactions and Concurrency
21.1 Concurrency in System Transactions
21.1.5 Concurrency
Control Schemes
21.2 Concurrency in Business Transactions
21.2.1 Business
Transaction Execution Contexts
21.2.2 Business
Transactions and Component Technology. 709
21.2.3 Transaction
Services Across Tiers
21.2.4 Offline
Concurrency Patterns
21.2.4.2 Optimistic
Offline Lock
21.2.4.3 Pessimistic
Offline Lock
21.3 Transactions and Concurrency in Email Management
21.3.2 Unit
of Work and Transactional Support
22.2 Business Components for Java
22.2.1 Creating
Entity Components
22.2.1.1 XML for
Entity Components
22.2.1.2 Java for
Entity Components
22.2.2 Creating
View Components
22.2.2.1 XML for
View Components
22.2.2.2 Java for
View Components
22.2.3 Creating
Application Module
23.2.1 Interface
IAReportEntry
23.3.1.1 Populating
Report Contact List
23.3.1.5 Populating
Report Table
23.3.1.6 Show
Authorization Window
23.3.1.7 Conversion
from Rule Matrix to Authorization Table
23.3.1.8 Saving
Modified Authorization Rules
23.3.1.9 Conversion
from Authorization Table to Rule Matrix
23.3.2.1 Dynamic
Registration of Buttons
23.3.2.2 Adding
Listeners to Dynamically Generated Button
23.3.2.4 Printing
in PTableWindow
23.5.1.1 Report
Registration and Removal
23.6.2.1 Changes
to Previous Methods
23.6.2.2 Report
Retrieval in MDataMapper
23.6.2.3 Authorization
Rules Loading in MDataMapper
23.6.2.4 Saving
Authorization Rules in MDataMapper
23.6.3.1 Acquiring
MUnitOfWork
23.6.3.2 New
Entity Registration in MUnitOfWork
23.6.3.3 Dirty
Entity Registration in MUnitOfWork
23.6.3.4 Entity
Removal in MUnitOfWork
23.6.3.5 Committing
MUnitOfWork
23.6.3.6 Execution
of Transaction
23.7.1 Transactions
on FConnection
23.7.2 Execute
Statements in FWriter
23.7.3 Querying
Database in FReader
23.8.1 Ref
Cursor for ResultSet
23.8.2 Retrieval
of OutMessages
23.8.3 Retrieval
of Departmental Outmessages
23.8.7 Trigger
on OutMessage Table
Iteration 3 Questions and Exercises