We've seen some of the ways in which UML can be utilized in documenting the design of a system comprising prebuilt components and a minimum of fresh code. The physical aspects of the design, as well as the interfaces between the components, can be represented using deployment diagrams and component diagrams. The database schema can be represented as a class diagram. Interaction diagrams and activity diagrams can be used to translate use cases into representations of the dynamic design. Where software does need to be written from scratch, UML also provides tools for ensuring a consistent integration with the predetermined objects and processes of the existing components. Other aspects of the requirements and design can also be captured using UML, but the physical deployment is normally the foundation upon which integration projects are based. Recording the deployment design is of great benefit to those who must maintain and enhance the system after the integration team has moved on to its next project.