You have created the use case model that describes the
requirements for the application and created an analysis model that
identifies the application domain requirements and describes how
the application will be structured. The next step in the development
process is to build on the analysis model by exploring the architecture
and implementation choices for the application.
The design phase takes the high-level model created during
analysis and adds details to the actual implementation of the system.
Using a variety of diagrams, including sequence, state machine,
component, and deployment diagrams, you can create a model that
describes, in detail, how the application is structured and how
it will be implemented. Programming constructs and technologies,
such as those used for persistence, distribution, security, and
logging, are described. You can further refine the design model
by applying design patterns that capture frequently used or complex
structures and processes.
When you are ready to move to the implementation
phase, the design model can be transformed to application code.