Diretrizes: Modelo de Design
Tópicos
Identificando
Elementos de Design de Classes de Análise
Mapeando para o Modelo de Análise
Mapeando para o Modelo de Implementação
Características de um
Bom Modelo de Design
Artefato: Classes de Análise representam
funções desempenhadas por instâncias de elementos de design; essas funções podem ser
executadas por um ou mais elementos de modelo de design. Além disso, um único elemento de design pode desempenhar vários papéis.
As observações abaixo abordam as maneiras como os papéis de análise podem ser desempenhados:
- Uma classe de análise pode tornar-se uma única classe de design no modelo de design.
- Uma classe de análise pode tornar-se parte de uma classe de design no modelo de design.
- Uma classe de análise pode tornar-se de uma classe de design agregada no modelo de design.
(Ou seja, as partes dessa agregação podem não estar modeladas explicitamente como
classes de análise.)
- Uma classe de análise pode tornar-se um grupo de classes de design que herda
da mesma classe no modelo de design.
- Uma classe de análise pode tornar-se um grupo de classes de design funcionalmente
relacionadas no modelo de design.
- Uma classe de análise pode tornar-se de um subsistema de design no modelo de design.
- Uma classe de análise pode tornar-se parte de um subsistema de design, como
uma ou mais interfaces e suas implementações correspondentes.
- Uma classe de análise pode vir a ser um relacionamento no modelo de design.
- Um relacionamento entre classes de análise pode tornar-se uma classe de design
no modelo de design.
- As classes de análise manipulam principalmente os requisitos funcionais e objetos de
modelo provenientes do domínio de "problema", as classes de design manipulam os requisitos
não-funcionais e objetos de modelo provenientes do domínio de "solução".
- As classes de análise podem ser utilizadas para representar "os objetos que
desejamos que sejam suportados pelo sistema", sem tomar uma decisão sobre
quantos devem ser suportados com hardware e quantos com software. Assim, parte de uma classe de análise pode ser usada pelo hardware e não estar definida no modelo de design.
Qualquer combinação dos itens descritos acima também é possível.
Se um Modelo de Análise separado for mantido, certifique-se de manter a rastreabilidade
do elemento de design identificado para as Classes de Análise às quais corresponderem.
Para obter informações adicionais, consulte Mapeando para
o Modelo de Análise.
Esta seção se aplicará apenas se um Modelo de Análise for mantido.
Durante o design, são identificados elementos de design que suportam um alinhamento
mais estrito com a arquitetura e as tecnologias escolhidas. Toda Classe de Análise no
Modelo de Análise deve ser associada a pelo menos uma classe de design no
Modelo de Design.
Para modelar essa rastreabilidade, uma dependência de <<rastreio>> deve ser desenhada do
elemento de design para a(s) classe(s) que ela representa, conforme mostrado no diagrama a seguir:

Nota: Os links de rastreabilidade são desenhados dos elementos do Modelo de Design
aos elementos do Modelo de Análise, de modo que o Modelo de Design seja dependente
do Modelo de Análise e não ao contrário.
Antes de iniciar o design, você deve escolher como as classes do modelo de design devem se relacionar às classes de implementação. No Guia de Design, você pode obter mais informações específicas sobre o projeto.
O modelo de design pode se aproximar mais ou menos do modelo de implementação, dependendo
de como você mapeia classes, pacotes e subsistemas para classes de implementação,
arquivos, pacotes e subsistemas no modelo de implementação. Durante a implementação, você abordará muitas vezes pequenas questões táticas relacionadas ao ambiente de implementação que não devem impactar o modelo de design.
Por exemplo, as classes e os subsistemas podem ser adicionados durante a implementação para lidar com o desenvolvimento paralelo ou ajustar dependências de importação.
Para obter informações adicionais, consulte Atividade:
Estruturar o Modelo de Implementação e Conceitos:
Mapeando de Design para Código.
O mapeamento do modelo de design para o modelo de implementação deve ser consistente.
O Artefato: Diretrizes Específicas
do Projeto deve definir este mapeamento e um nível consistente de abstração
deverá ser aplicado em todo o modelo de design.
Um bom modelo de design
tem as características a seguir:
- Satisfaz os requisitos do sistema.
- Resiste a mudanças efetuadas no ambiente de implementação.
- É de fácil manutenção em relação a outros possíveis modelos de objeto e à implementação do sistema.
- Tem um procedimento de implementação claro.
- Não inclui informações que estejam melhor documentadas no código do programa.
- Adapta-se facilmente a mudanças efetuadas em requisitos.
Para obter características específicas, consulte Pontos de Verificação:
Modelo de Design.
|