Unlike Domain model, Design model describes the designed solution. (To not confuse with Code model.)
Design model can be divided into two main sub-models:
- Boundary model describes the system as viewed from the outside. It is useful for others who need to interact with the system or get an overview, and don’t need to know the details.
- Internals model refines the boundary model and adds internal details (i.e., how the system is to be implemented).
The following views are useful.
- Use case diagram
- Functionality scenarios (can refine scenarios from domain model with implementation details)
- System context
- Design decisions
- Quality attribute scenarios
- Component assembly—what components consist of (other components) / specific configuration of component instances
- Two-level functionality scenarios—add details of how internal components interact
- Responsibilities—what ports and components are responsible for (a table would do)
- Constraints as guide rails
- Architectural styles
- (most of the diagrams for boundary model can be used for internal model)