Diretriz: Implementação
Esta diretriz descreve os diferentes tipos de elementos em uma implementação.
Relacionamentos
Descrição Principal
Reuso de Código 

O reuso de código e as ferramentas de geração de código produzem código mais robusto e são preferenciais em relação ao código escrito à mão. O código existente é frequentemente testado e mesmo implantado, tornando-se mais estável e compreensível do que o código novo. O código fonte criado por uma ferramenta de geração de código (tal como uma ferramenta de modelagem visual) automatiza tarefas enfadonhas de codificação tais como a criação de métodos get e set.

Existem muitos lugares onde se pode colher código para reuso:

  • Bibliotecas internas (corporativas) de código.
  • Bibliotecas de terceiros.
  • Bibliotecas embutidas nas ferramentas.
  • Exemplos de código extraídos de tutoriais, exemplos, livros, etc.
  • Um guru local ou colega com bastante conhecimento de código.
  • Código dos sistemas existentes.
  • Produtos de código aberto (tenha certeza de estar respeitando os acordos de licenciamento) 
Transformação do Design em Implementação

Transformar o design em código gera a estrutura do sistema na linguagem de programação escolhida, implementando também o comportamento do sistema definido nos requisitos funcionais. Implementar o comportamento do sistema significa escrever código que permita que as diferentes partes da aplicação (classes ou componentes) colaborem para realizar o comportamento desejado do sistema.

Existem várias técnicas para transformar automaticamente o design em implementação. Aqui estão alguns exemplos:

  • Os modelos visuais específicos de uma plataforma podem ser usados para gerar uma estrutura inicial de código. Esta estrutura pode mais tarde ser elaborada com código adicional não especificado no design.
  • Os modelos podem ser detalhados e usados para gerar uma implementação. A estrutura (diagramas de classe e pacote) e os diagramas de comportamento (tais como o diagrama de estado e de atividade) podem ser usados para gerar código executável. Se for necessário, estes protótipos podem ser refinados posteriormente.
  • O design pode ser independente da plataforma em vários graus. Os modelos de design específicos da plataforma ou mesmo o código podem ser gerados através das transformações que aplicam várias regras para mapear abstrações de alto nível de elementos específicos da plataforma. Este é o foco da Arquitetura Orientada a Modelo (MDA) do Object Management Group (OMG) (http://www.omg.org).
  • Os padrões de projeto podem ser aplicados para gerar elementos de design e de código a partir de designs relacionados e implementações. Por exemplo, um padrão de projeto de transformação pode ser aplicado a uma tabela de dados para criar classes java que irão acessar a tabela dos dados. Um outro exemplo é usar um modelo do Framework de Modelagem do Eclipse (http://www.eclipse.org/emf/) model to generate code for storing data that matches the model and to generate a user interface implementation for populating data. para gerar o código necessário para armazenar os dados que combine com o modelo e para gerar uma implementação de interface de usuário para povoar os dados. Um gerador de padrão ou de transformação pode ser usado para criar a implementação, ou esta poderá ser feita à mão. Os geradores de padrões são mais fáceis e confiáveis, mas o código escrito à mão que implementa um padrão definido terá menos erros do que código escrito à mão que implementa um design original.

Em alguns casos, entretanto, algumas abstrações de design (classes, componentes, etc.) são detalhadas para transformar-se em implementação.