Bridging from analysis to implementation, how to decompose a proposed system so that it can
be implemented in a reliable and cost effective manner. Object-oriented design of component-based
software is emphasized, and utilizing tools to document the design. The relationship
between component design and component implementation is explored. Design Patterns will also be emphasized.