Last week at OOPSLA panel on Design and Modern Software Practices Grady Booch gave one answer: when the project gets closer to the delivery you normally throw away UML models. This is a natural choice since the efforts needed for keeping the design - user view, dynamics, behavior, interaction etc. - linked with the implementation are simply too high. DSM is different as models are the primary design artifacts. With DSM, the problem is solved only once by visually modeling the solution using familiar domain concepts. The final products are then automatically generated from these high-level specifications with domain-specific code generators. You can use the same DSM models also to generate test cases, documentation, configuration etc. If you have created something valuable you don’t throw it away!