The UML has become the de facto standard for the analysis and design of complex software. Tool support today includes the generation of code realizing the structural model described by class diagrams as well as code realizing the reactive behavior of the dynamic model described by statecharts. However, the CASE tool support for service-based architectures and especially later process phases addressed with component and deployment diagrams is rather limited. In this paper a seamless support of the whole service life cycle of service-based software architectures by means of UML is presented. We present the employed concepts to support the design of services (including full code generation), to compose applications out of services at design time, and to deploy services at run-time. Additionally, we describe our realization of these concepts in form of a CASE tool extension and a run-time framework.