Chapter
Two Paths: Static and Functional
Collecting and Analyzing Requirements
Getting the Best Out of Use Cases
User Interface Specification
Collecting and Analyzing End Users' Operations
Specifying the Structure of the User Interface
Specifying the Layout of the Dialogs
Writing the First Version of the User's Guide
Component Specification with Run-time and Development Views
Component Collaboration Specification with Scenario View
Architecture of Interactive Components
The Core of Object Paradigm
Design Patterns: An Example
Using Abstract Partners and MVC++
PROJECTS AND PROJECT TYPES
Early Launch of Next Phase
Increments and Iterations
Incremental and Iterative Projects
Iterating Design and Programming
Solving Waterfall Problems with Increments
Need for a Controlled Process
CHAPTER 2: OBJECT-ORIENTED DATA MANAGEMENT
Persistent and Transitory Objects
Navigating with Persistent Objects
Making Objects Persistent
Identifying the Persistent Objects
Selecting the Persistence Mechanism
IMPLEMENTING OBJECT PERSISTENCE WITH FILES
USING RELATIONAL DATABASES TO PROVIDE OBJECT PERSISTENCE
Basic Relational Concepts
Interfacing with a Relational Database
General Third-Party Database Class Lbraries
Mapping Class Diagrams onto Database Tables
Common Pitfalls and Problems
IMPLEMENTING PERSISTENT OBJECTS WITH OBJECT RELATIONAL DATABASES
Status of the SQL Standard
Extensions to the Table Concept
Extensions to the Type Concept
Interfacing with an Object Relational Database
Implementing Class Diagrams
Issues to Take into Consideration
OBJECT DATABASES FOR STORING PERSISTENT OBJECTS
Object Database Standardization
Scope of the ODMG 2.0 Standard
Interfacing with Object Databases
Navigation vs. Query Language Usage
Programming Language Interfaces
Implementing Class Diagrams
Issues to Take into Consideration
Choosing the Right Object Database Product
MAKING THE RIGHT DATABASE DECISION
THE FUTURE OF OBJECT DATA MANAGEMENT
The Struggle Between ORDBMSs and Pure ODBMSs
CHAPTER 3: LARGE-SCALE DEVELOPMENT
Case Study: GSM Network Manager
Systems as Product Families
Application Platforms and Product Lines
Managing the Dependencies
Impacts of Levelized Design
Software Engineering Concerns
3 + 1 VIEWS TO ARCHITECTURE
EVOLUTIONARY SYSTEM DEVELOPMENT PROCESS
System Product Development
Making the Product Decisions
Caring for the Architecture
Making the Architecture Visible
System Product Architecture
Application Product Architecture
Feature Development Process
CHAPTER 4: SMALL-SCALE DEVELOPMENT
NEED FOR A STREAMLINED APPROACH
INCREMENTAL SOFTWARE DEVELOPMENT
USING THE SIMPLIFIED PROCESS
SUMMARY OF OUR STANDARD PROCESS
The Feasibility Study Document
The User Interface Specification Document
The Architectural Design Document
The Detailed Design Document