Component-Level Design
- •
def
- •
the process of elaborating software components in detail — specifying their data structures, algorithms, and interfaces — based on the architectural model
- •
- •
three views of a component
- •
object-oriented view — a component is a set of one or more collaborating classes
- •
conventional view — a component is a functional element (module) incorporating processing logic, internal data structures, and an interface
- •
process-related view — emphasis on building systems from existing reusable components in a library
- •
- •
conducting component-level design steps
- •
- identify all design classes corresponding to the problem domain (from analysis model)
- •
- identify all design classes corresponding to the infrastructure domain (GUI, OS, data management, networking)
- •
- elaborate all design classes not acquired as reusable components
- •
- describe persistent data sources and identify managing classes
- •
- develop and elaborate behavioral representations (state diagrams, use cases)
- •
- elaborate deployment diagrams for additional implementation detail
- •
- factor every design representation and consider alternatives
- •
- •
roles of a conventional component
- •
- •
- •