A indústria de desenvolvimento de software está em constante evolução e em busca de novos desafios, como por exemplo: novas tecnologias, linguagens de programação e estratégias para aumentar a produtividade no desenvolvimento. Com o passar do tempo, essa evolução desejada tem se concretizado, em especial com o surgimento de conceitos como Service Oriented Architecture (SOA) e Model-Driven Development (MDD). Nesse contexto, ganha importância a reutilização de software, por exemplo por meio do uso de serviços que facilitam a interoperabilidade entre diferentes sistemas. Ambientes de desenvolvimento de software, em especial ambientes de reúso de software, poderiam se adequar à arquitetura SOA para facilitar a disponibilização de serviços a outros ambientes, promovendo sua integração e aumentando a possibilidade de reúso. Após um levantamento bibliográfico sobre ambientes integrados de reúso que utilizassem serviços para permitir o compartilhamento de recursos, percebeu-se que os trabalhos nessa direção são poucos. Ao mesmo tempo, observou-se que para integração de sistemas por meio de serviços é necessário criar camadas de acesso às entidades dos sistemas que compartilharão informações. A implementação desses serviços de forma manual é repetitiva e sujeita a erros, principalmente por programadores que não estão familiarizados com SOA. Por outro lado, diagramas de classes em UML (Unified Modeling Language) são de amplo conhecimento por parte de desenvolvedores e estão em um nível de abstração que é suficientemente detalhado para permitir a derivação de serviços de acesso às suas classes. Desta forma, para atender uma demanda crescente de sistemas que precisam oferecer serviços para possibilitar sua integração com outros sistemas, este mestrado tem por objetivo promover a geração automatizada de código de serviços por meio de transformações de modelo para texto, em que o modelo de entrada é um diagrama de classes derivado da UML e os serviços gerados cobrem operações básicas do tipo CRUD. O gerador resultante foi validado por meio de duas provas de conceito e mostrou-se adequado para cumprir os objetivos estabelecidos, visto que o desenvolvedor trabalha com um modelo em alto nível de abstração, não precisando conhecer os detalhes inerentes à implementação dos serviços.The software development industry is constantly evolving and looking for challenges, such as: new technologies, programming languages and strategies to increase developers productivity. During the course of time, this required evolution has been concretized, especially with the emergency of concepts such as Service Oriented Architecture (SOA) and Model-Driven Development (MDD). In this context, software reuse gains importance, for example through the use of services that ease the interoperability of different systems. Software development environments, in special reuse environments, could be adapted to the SOA architecture to ease the availability of services to other environments, thus promoting its integration and possibility of reuse. After a literatu...