Diretriz: Subsistema de Implementação
O Subsistema de Implementação ajuda a organizar um Modelo de Implementação e, portanto, reduzir sua complexidade. Esta diretriz descreve algumas opções a serem consideradas ao projetar o subsistema de implementação.
Relacionamentos
Elementos Relacionados
Descrição Principal

Explicação

Uma forma básica de reduzir a complexidade de um modelo de implementação com centenas de elementos é utilizar subsistemas de implementação.

Normalmente, os subsistemas assumem a forma de diretórios, com informações adicionais sobre estrutura ou gerenciamento. Por exemplo, um subsistema pode ser criado como um diretório ou uma pasta em um sistema de arquivos, como um subsistema no Rational Apex para C++ ou Ada, ou como pacotes que usem Java. Em desenvolvimentos do Rational XDE, um Subsistema é um "projeto" conforme definido pelo IDE (Integrated Development Environment).

O subsistema de implementação é o análogo da implementação de pacote de design (ou Subsistema de Design de granularidade maior). O modelo de implementação e os subsistemas de implementação são o destino da visualização de implementação e, portanto, de primordial importância no tempo de desenvolvimento.

Exportando Elementos

Um subsistema de implementação controla a visibilidade externa do conteúdo nele presente. Um elemento pode ser referenciado por elementos fora do subsistema, caso ele se torne visível ("exportado") pelo respectivo subsistema declarante.

Por padrão, todos os elementos (e os subsistemas contidos) em um subsistema são geralmente visíveis fora dele. Isso significa que qualquer elemento fora desse subsistema pode referenciar todos os elementos. Por exemplo, em C++, isso significa que os elementos externos podem incluir (#include) todos os elementos no subsistema.

Uso

O modelo de implementação pode ser mais ou menos parecido com o modelo de design, de acordo com a forma como os pacotes de design são mapeados para os subsistemas de implementação no modelo de implementação.

É recomendável manter o mapeamento com uma equivalência de um para um, ou seja, um pacote de design mapeado para um subsistema de implementação. O principal motivo disso é obter uma rastreabilidade uniforme do design para o código.

Existem situações em que os subsistemas na implementação precisam ser diferentes dos pacotes e subsistemas no design. Para obter informações adicionais, consulte a Tarefa: Estruturar o Modelo de Implementação. A decisão e a forma de representar esse mapeamento será abrangido pelo Produto de Trabalho: Diretrizes Específicas do Projeto.

Muitos são os motivos para particionar um sistema em subsistemas. Os mesmos critérios usados no design se aplicam à implementação. Para obter informações adicionais, consulte Diretriz: Pacote de Design.