内容简介
Part 1 Software Projects
Chapter 1 Software Development Lifecycle
1.1.1 Software System is less than Enterprise Information System
Guided tour
1.1 Software Engineering Quintessence
Contents
1.1.2 Software Process is part of Business Process
Preface
1.1.3 Software Engineering is different from Traditional Engineering
1.1.4 Software Engineering is more than Programming
1.1.5 Software Engineenng is about Modeling
1.1.6 Software System is Complex
1.2 Lifecycle Phases
Acknowledgements
1.2.1 Requirements Analysis
1.2.2 System Design
1.2.3 Implementation
1.2.4 Integration and Deployment
1.3 Lifecycle Models
1.2.5 Operation and Maintenance
1.3.1 Waterfall Lifecycle with Feedback
Spiral model
1.3.2 Iterative Lifecycle with Increments
Rational Unified Process(RUP)
Agile lifecycle with short cycles
Model Driven Architecture(MDA)
Summary
Key Terms
Review Questions
Chapter 2 Software Modeling Language
2.1 Structured Modeling Language
2.1.1 Data Flow Modeling
2.1.2 Entity-Relationship Modeling
2.2.1 Class Diagrams
2.2 Object-Oriented Modeling Language
2.2.2 Use Case Diagrams
Sequence diagrams
2.2.3 Interaction Diagrams
Collaboration(communication)diagrams
2.2.4 Statechart Diagrams
2.2.5 Activity Diagrams
Component diagrams
2.2.6 Implementation Diagrams
Summary
Deployment diagrams
Key Terms
Review Questions
Problem-Solving Exercises
Chapter 3 Software Engineering Tools
3.1 Project Management Tools
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.2 System Modeling Tools
3.2.1 Managing Requirements
3.2.2 Visual UML Modeling
3.2.4 Database Modeling
3.2.3 Report Generation
3.3 Integrated Development Environments
3.3.1 Routine Programming Tasks
Writing the program
Executing the program
Debugging the program
3.3.3 Enterprise Application Development
3.3.2 Integration with Software Modeling
3.3.4 Integration with Business Components
3.3.5 Integration with Change and Configuration Management
3.4.1 Support for Changes
3.4 Change and Configuration Management Tools
3.4.3 Support for System Building
3.4.2 Support for Versions
3.4.4 Support for Reengineering
Summary
Key Terms
Problem-SolvingExercises
Review Questions
Chapter 4 Software Project Planning and Tracking
4.1 Project Plan Development
4.2 Project Scheduling
4.2.1 Tasks,Milestones,and Deliverables
4.2.2 Task Scheduling in a Bar Chart
4.2.3 Resources and Resource Calendars
4.2.4 Effort-Driven Scheduling in a Bar Chart
4.2.5 Resource Underallocation and Overallocation
4.3 Project Budget Estimation
4.3.1 Schedule-Driven Budget Estimation
4.3.2 Algorithmic Budget Estimation
Principles of algorithmic models
COCOMO 81
COCOMO Ⅱ
4.4 Tracking Project Progress
4.4.1 Tracking the Schedule
4.4.2 Tracking the Budget
Actual costs from schedule
Actual costs from accounting
Earned value
Summary
Review Questions
Key Terms
Problem-Solving Exercises
Chapter 5 Software Process Management
5.1.1 Acquiring and Motivating People
5.1 People Management
Team creation
Motivational theories
Forms of communication
5.1.2 Project Communications
Lines of communication
Factors in communication
Communication in conflict resolution
5.1.3 Team Development
5.2.1 Risk Identification
5.2 Risk Management
5.2.2 Risk Assessment
5.2.3 Risk Handling
5.3 Quality Management
5.3.1 Software Qualities
Softwaretesting
5.3.2 Quality Control
Testing techniques
Test planning
5.3.3 Quality Assurance
Reviews
Checklists
Audits
5.4 Change and Configuration Management
5.4.1 Requirements Changes
5.4.2 Artifact Versions
5.4.3 Defects and Enhancements
5.4.4 Metrics
Summary
Key Terms
Review Questions
Part 2 From Requirements via Architectural Design to Software Release
Chapter 6 Business Object Model
6.1 Advertising Expenditure Measurement-The Business
6.2 Business Context Diagram
6.3.1 Business Use Cases and Business Actors
6.3 Business Use Case Model
6.3.2 Business Use Case Model for AEM
6.3.3 Alternative Business Use Case Model for AEM
6.5.1 Business Entities
6.5 Business Class Model
6.4 Business Glossary
6.4.1 Business Glossary for AEM
6.5.2 Business Class Model for AEM
6.5.3 Alternative Business Class Model for AEM
Summary
Case Study Questions
Discussion Questions
Key Terms
ReviewQuestions
Minicase-Advertising Expenditure Measurement
Case Study Exercises
Problem-Solving Exercises
Chapter 7 Domain Object Model
7.1 Contact Management-The Domain
7.2.2 Use Case Relationships
7.2.1 Use Cases and Actors
7.2 Domain Use Case Model
7.2.3 Use Case Model for Contact Management
7.2.4 Alternative Use Case Model for Contact Management
7.3.1 Domain Glossary for Contact Management
7.3 Domain Glossary
7.4.1 Classes and Attributes
7.4 Domain Class Model
7.4.2 Class Relationships
7.4.3 Class Model for Contact Management
7.4.4 Alternative Class Model for Contact Management
Summary
Key Terms
Case Study Exercises
Problem-Solving Exercises
Review Questions
Discussion Questions
CaseStudyQuestions
Minicase-Time Logging
Chapter 8 Iteration 1 Requirements and Object Model
8.1 Use Case Model
8.2.1 Brief Description,Preconditions,and Postconditions
8.2 Use Case Document
8.2.2 Basic Flow
8.2.3 Subflows
8.3 Conceptual Classes
8.2.4 Exception Flows
8.4 Supplementary Specification
Key Terms
Summary
Case Study Exercises
Problem-Solving Exercises
Review Questions
Discussion Questions
CaseStudy Questions
Minicase-Time Logging
Chapter 9 Architectural Design
9.1.1 Architectural Modules
9.1 Architectural Layers and Dependency Management
Packages
Design classes
9.1.2 Package Dependencies
9.1.3 Layer Dependencies
9.1.4 Class Dependencies
9.1.5 Inheritance Dependencies
Inheritance without polymorphism
Extension and restriction inheritance
Down-calls
9.1.6 Method Dependencies
Up-calls
Method dependencies in the presence of implementation inheritance
Method dependencies in the presence of delegation
9.1.7 Interfaces
Usage dependency
Implementation dependency
Breaking circular dependencies with interfaces
9.1.8 Event Processing
Event processing and interfaces
Event processing and layer dependencies
Acquaintance dependencies and interfaces
9.1.9 Acquaintance
Acquaintance package
9.2.1 Model-View-Controller
9.2 Architectural Frameworks
9.2.2 Presentation-Control-Mediator-Entity-Foundation
PCMEF layers
PCMEF principles
Acquaintance in PCMEF+
9.3 Architectural Patterns
Deployment of PCMEF layers
9.3.2 Abstract Factory
9.3.1 Fa?ade
9.3.3 Chain of Responsibility
9.3.4 Observer
9.3.5 Mediator
Summary
Key Terms
Review Questions
Minicase-Contact Information Management
Case Study Exercises
Problem-Solving Exercises
Chapter 10 Database Design and Programming
10.1 Quick Tutorial in Relational Databases from a Software Engineering Viewpoint
10.1.1 Table
10.1.2 ReferentialIntegrity
10.1.3 Conceptual versus Logical Database Models
10.1.4 Implementing Business Rules
10.1.5 Programming Database Application Logic
10.1.6 Indexes
10.2 Mapping Transient Objects to Persistent Records
10.2.1 Object Databases,SQL:1999,and Impedance Mismatch
Mapping a one-to-many association and aggregation
10.2.2 Object-Relational Mapping
Mapping a many-to-many association
Mapping a one-to-many recursive association
Mapping a one-to-one association
Mapping generalization
Mapping a many-to-many recursive association
10.3 Database Design and Creation for Email Management
10.3.1 Database Model
10.3.2 Creating the Database Schema
10.3.3 Sample Database Content
Key Terms
Summary
CaseStudyQuestions
Discussion Questions
Review Questions
Minicase-ContactInformationManagement
Case Study Exercises
Problem-Solving Exercises
Chapter 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.2 Architectural Elaboration of Class Design
Constants in interface
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 Class Instantiation
Instantiation diagram for Email Management
Who instantiates the first object?
11.3 Interactions
11.3.1 Sequence Diagrams
11.3.2 Communication Diagrams
11.4 Interactions for Email Management
11.3.3 Interaction Overview Diagrams
11.4.1 The'Login'Interaction
11.4.2 The'Exit'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.7 The'Incorrect Option'Interaction
11.4.6 The'Incorrect User Name or Password'Interaction
11.4.8 The'Too Many Messages'Interaction
Summary
11.4.9 The'Email Couid Not Be Sent'Interaction
CaseStudyQuestions
Discussion Questions
Key Terms
Review Questions
Minicase-Time Logging System
Case Study Exercises
Problem-Solving Exercises
Minicase-ContactInformationManagement
Chapter 12 Programming and Testing
12.1.1 Class
12.1 Quick Tutorial in Java from a Software Engineenng Viewpoint
From conceptual to design class model
12.1.2 Class Associations and Collections
Java collections
Associations on entity objects
C++ parameterized types
12.1.3 Database Access in Java
Comparison of JDBC and SQLJ
Executing SQL statements
Establishing a database connection
Calling stored procedures and functions
12.2 Test-Driven Development
12.2.1 JUnit Framework
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
Summary
Key Terms
Tutorial and Case Study Exercises
Problem-Solving Exercises
Review Questions
Minicase-Time Logging System
Minicase-ContactInformation Management
Chapter 13 Iteration 1 Annotated Code
13.1 Code Overview
13.2.1 Interface IAConstants
13.2 Package Acquaintance
13.2.3 Interface IAContact
13.2.2 Interface IAEmployee
13.2.4 Interface IAOutMessage
13.3.1 Class PMain
13.3 Package Presentation
13.3.2 Class PConsole
Constructing a PConsole object
Viewing outmessages
Displaying login and menu
Requesting to email an outmessage
13.4.1 Class CActioner
13.4 Package Control
Constructing a CActioner object
Routing retrieval of outmessages
Initiating login
Emailing an outmessage
13.5.1 Interface IEDataSupplier
13.5 Package Entity
Using JavaMailTM API
Object identifiers and identity field pattern
Constructing an EEmployee object
13.5.2 Class EEmployee
Removing sent outmessages
Getting unsent outmessages
13.5.3 Class EContact
Removing sent outmessages
Getting unsent outmessages
Constructing an EContact object
13.5.4 Class EOutMessage
Getting and setting a contact for Outmessage
Constructing an EOutMessage object
Getting and setting a sender employee for outmessage
Getting and setting a creator employee for outmessage
13.6 Package Mediator
13.6.1 Class MBroker
Requesting login connection
Constructing an MBroker object
Retrieving unsent outmessages
Creating Employees Cache
Creating an outmessages cache
Creating a contacts cache
Updating outmessages after emailing and restoring the cache
13.7.1 Class FConnection
13.7 Package Foundation
Obtaining database connection
Constructing an FConnection object
13.7.3 Class FWriter
13.7.2 Class FReader
Iteration 1 Questions and Exercises
Key Terms
Summary
Part 3 Software Refactoring and User Interface Development
Chapter 14 Iteration 2 Requirements and Object Model
14.1 Use Case Model
14.2 Use Case Document
14.2.2 Basic Flow
14.2.1 Brief Description,Preconditions,and Postconditions
14.2.3 Subflows
14.2.4 Exception Flows
14.3 Conceptual Classes and Relational Tables
14.4 Supplementary Specification
Review Questions
Key Terms
Summary
Chapter 15 Architectural Refactoring
15.2 Refactoring Methods
15.1 Refactoring Targets
15.2.1 Extract Class
15.2.2 Subsume Method
15.2.3 Extract Interface
15.3 Refactoring Patterns
15.3.1 Identity Map
Load-check-out
15.3.2 Data Mapper
Unload-check-in
Many data mappers
15.3.3 Alternative Data Mapper Strategies
Metadata mapping
15.3.4 Lazy Load
Lazy Initialization
OID Proxy
Virtual Proxy
Navigation in Identity Map
Navigation in Entity Classes
15.3.5 Unit of Work
15.4 Refactored Class Model
Summary
Key Terms
Problem-Solving Exercises
CaseStudy Questions
Review Questions
Discussion Questions
Chapter 16 User Interface Design and Programming
16.1 User Interface Design Guidelines
16.1.1 User in Control
16.1.2 Interrace Consistency
16.1.3 Interface Forgiveness
16.1.4 Interface Adaptability
16.2 User Interface Components
16.2.1 Containers
Layout management
Layering management
16.2.2 Menus
16.2.3 Controls
16.3 User Interface Event Handling
16.4 Patterns and the User Interface
16.4.1 Observer
16.4.3 Chain of Responsibility
16.4.2 Decorator
16.4.4 Command
16.5 User Interface for Email Management
Summary
Key Terms
Review Questions
Problem-Solving Exercises
Chapter 17 Web-Based User Interface Design and Programming
17.1.1 Basic HTML
17.1 Enabling Technologies for the Web Client Tier
17.1.2 Scripting Language
17.1.3 Applet:Thin and Thick
17.2.1 Servlet
17.2 Enabling Technologies for the Web Server Tier
17.2.2 JSP
17.3 Transactions on Stateless Internet Systems
17.4 Patterns and the Web
17.4.2 Composite
17.4.1 Observer
17.4.3 Factory Method
17.4.5 Decorator
17.4.4 Strategy
17.4.6 Model-View-Controller
17.4.8 Reuse of Tags in JSP
17.4.7 Front Controller
17.4.9 Decoupled Control:Struts
17.5 Servlet Implementation of Email Management
Summary
Review Questions
Key Terms
Problem-Solving Exercises
Chapter 18 Iteration 2 Annotated Code
18.1 Code Overview
18.2 Package Acquaintance
18.2.1 Interface IAEmployee
Constructing and launching PWindow
18.3.1 Class PWindow
18.3 Package Presentation
Data retrievalin PWindow
Filter activation
18.3.2 Class PMessageDetailWindow
18.3.3 Class PMessageTableModel
18.3.4 Class PDisplayList
18.3.5 Class PDisplayList.Filter
18.4.2 Class CMsgSeeker
18.4.1 Class CAdmin
18.4 Package Control
18.5 Package Entity
18.5.1 Class EldentityMap
18.6 Package Mediator
18.6.2 Class MDataMapper
18.6.1 Class MModerator
Outmessage retrievals and loading
Outmessage saving and unloading
18.7 Presentation Layer:Applet Version
18.8 Presentation Layer:Servlet Version
18.8.1 Class PEMS
Login in servlet
Showing outmessages in servlet
18.8.2 Class PEMSEdit
Summary
Iteration 2 Questions andExercises
Key Terms
Part 4 Data Engineering and Business Components
Chapter 19 Iteration 3 Requirements and Object Model
19.1 Use Case Model
19.2.1 Brief Description,Preconditions,and Postconditions
19.2 Use Case Document
19.2.2 Basic Flow
19.2.3 Subflows
19.2.4 Exception Flows
19.3 Conceptual Classes and Relational Tables
19.4 Supplementary Specification
19.5 Database Specification
Review Questions
Key Terms
Summary
Chapter 20 Security and Integrity
20.1 Designing Secunty
20.1.1 Discretionary Authorization
System and object privileges
Programmatic discretionary authorization
20.1.2 Mandatory Authorization
20.1.3 Enterprise Authorization
20.2 Designing Integrity
20.2.1 Null and Default Constraints
20.2.3 Unique and Primary Keys
20.2.2 Domain and Check Constraints
20.2.4 Foreign Keys
20.2.5 Triggers
20.3.1 Secunty in Email Management
20.3 Security and Integrity in Email Management
Explicit Authorization table
Using individual schemas,global schema,views,and stored procedures
Using individual schemas,global schema,and stored procedures
Authorization administration
20.3.2 Integrity in Email Management
Summary
Key Terms
Problem-Solving Exercises
Review Questions
Chapter 21 Transactions and Concurrency
21.1 Concurrency in System Transactions
21.1.1 ACID Properties
21.1.2 Isolation Levels
21.1.3 Lock Modes and Levels
21.1.4 Transactional Models
21.1.5 Concurrency Control Schemes
21.2.1 Business Transaction Execution Contexts
21.2 Concurrency in Business Transactions
21.2.3 Transaction Services across Tiers
21.2.2 Business Transactions and Component Technology
Webtier
Application tier
Database tier
21.2.4 Offline Concurrency Patterns
Unit of Work
Optimistic Offline Lock
Pessimistic Offline Lock
21.3.1 Flat Transaction Model
21.3 Transactions and Concurrency in Email Management
21.3.2 Unit of Work and Transactional Support
Summary
Key Terms
Problem-Solving Exercises
Review Questions
Chapter 22 Business Components
22.1 Enterprise JavaBeans
22.1.1 EJB Fundamentals
22.1.2 Entity Beans
22.1.3 Session Beans
22.2.1 Creating Entity Components
22.2 Business Components for Java
XML for entity components
22.2.2 Creating View Components
Java for entity components
XML for view components
Java for view components
22.2.3 Creating the Application Module
Summary
Review Questions
Key Terms
Chapter 23 Iteration 3 Annotated Code
23.2.1 Interface IAReportEntry
23.2 Package Acquaintance
23.1 Code Overview
23.3 Package Presentation
Populating the report contact list
23.3.1 Class PWindow
Report window
Printing the report
Activity report
Populating the report table
Showing the authorization window
Saving modified authorization rules
Conversion from rule matrix to authorization table
Deleting an outmessage
Conversion from authorization table to rule matrix
Creating an outmessage
Modifying an outmessage
Dynamic registration of buttons
23.3.2 Class PTableWindow
Adding listeners to dynamically generated buttons
Button return status
Printing in PTabieWindow
23.4 Package Control
23.5 Package Entity
23.5.1 Class EldentityMap
Report registration and removal
Report retrieval
23.6 Package Mediator
23.6.1 Class MModerator
Authorization rules
Report retrieval
Creating an outmessage
Updating an outmessage
Changes to previous methods
23.6.2 Class MDataMapper
Report retrievalin MDataMapper
Authorization rules loading in MDataMapper
Saving authorization rules in MDataMapper
23.6.3 Class MUnitOfWork
Acquiring MUnitOfWork
New entity registration in MUnitOfWork
Dirty entity registration in MUnitOfWork
Entity removal in MUnitOfWork
Committing MUnitOfWork
Execution of a transaction
Starting a transaction
23.7 Package Foundation
23.7.1 Transactions on FConnection
23.7.2 Execute Statements in FWriter
23.7.3 Querying the Database in FReader
23.8 Database Code
23.8.1 Ref Cursor for ResultSet
23.8.2 Retrieval of Outmessages
23.8.3 Retrieval of Departmental Outmessages
23.8.4 Deleting an Outmessage
23.8.5 Creating an Outmessage
23.8.6 Report Generation
23.8.7 Trigger on OutMessage Table
Summary
Key Terms
Iteration 3 Questions andExercises
Bibliography
Index
The accompanying CD