Diretriz: Decisões Importantes na Análise e Design
Esta orientação descreve coisas importantes a serem consideradas ao adaptar os aspectos de Análise e Design do processo.
Relacionamentos
Descrição Principal

Decidir Como Utilizar Produtos de Trabalho

Decida sobre quais produtos de trabalho devem ser utilizados e como utilizar cada um deles.  Além de identificar quais produtos de trabalho devem ser utilizados, também é importante ajustar cada produto de trabalho a ser utilizado deforma a atender às necessidades do projeto. 

A tabela a seguir especifica quais produtos de trabalho de Análise e Design são recomendados e quais são considerados opcionais (ou seja, apenas podem ser utilizados em determinados casos). Para conhecer considerações de ajuste adicionais, consulte a seção de ajuste da página de descrição do produto de trabalho.

Produto de Trabalho Finalidade

Adaptação (Opcional, Recomendada)

Modelo de Análise (Classe de Análise) Um modelo de análise ajuda a compreender melhor os requisitos antes da tomada de decisões sobre design. Em sistemas complexos, ele pode ser mantido para fornecer uma visão geral conceitual do sistema.

Opcional

Em muitos projetos, um Modelo de Design inicial é usado em lugar do Modelo de Análise.

Em projetos que efetivamente criam um Modelo de Análise, normalmente é um artefato temporário que acaba se transformando em um modelo de design.

Mapa de Navegação, Protótipo da Interface com o Usuário

Projetos com uma interface com o usuário grande e complexa devem considerar o design da interface com o usuário.

Opcional

O design mais informal da interface com o usuário pode ser suficiente em esforços de desenvolvimento menores.

Modelo de Design

É recomendável que a maioria dos sistemas (mesmo os menores) sejam projetados antes de serem implementados, a fim de evitar um retrabalho dispendioso decorrente de erros de design. Os modelos visuais permitem que o design seja facilmente comunicado. O uso de ferramentas de engenharia direta e de engenharia reversa pode assegurar a consistência com o modelo de implementação, além de poupar trabalho.

Recomendada para a maioria dos projetos.

Em projetos menores, o uso de ferramentas automatizadas não é crítico, mas pode beneficiar a produtividade a longo prazo.

Classe de Design; Pacote de Design

As classes e os pacotes são uma parte básica de qualquer design orientado a objetos. O design orientado a objetos é o método de design padrão utilizado na maior parte dos projetos.

Recomendada para a maioria dos projetos.

Um dos principais problemas de adaptação é decidir quais estereótipos devem ser usados (isso poderá ser abordado no Guia de Design).

Realização de Casos de Uso

Estabelece a conexão entre casos de uso e design.

Recomendada para a maioria dos projetos.

Interface

Normalmente, as interfaces são utilizadas para definir um comportamento, independentemente dos componentes de grande granularidade que realizam o comportamento.

Recomendada para a maioria dos projetos.

O design baseado em componentes está se tornando uma abordagem de design padrão.

Subsistema de Design

Os subsistemas de design são utilizados para encapsular comportamento em um componente que forneça interfaces. São usados para encapsular as interações de classes e/ou outros subsistemas.

Recomendada para a maioria dos projetos.

Em geral, os subsistemas ajudam a elevar o nível de abstração do design. Eles tornam mais fácil a compreensão dos sistemas.

Evento

Pode ser útil para sistemas que respondem a muitos eventos externos. Recomendada para sistemas em tempo real.

Protocolo

Obrigatório para sistemas em tempo real. Recomendada para sistemas em tempo real.

Sinal

Pode ser útil para sistemas que necessitem de simultaneidade e sejam controlados por eventos.

Obrigatório para sistemas em tempo real.

Pode ser útil para sistemas que necessitem de simultaneidade e sejam controlados por eventos.

Recomendada para sistemas em tempo real.

Cápsula

Destina-se a sistemas em tempo real, mas pode ser útil na modelagem e no design de qualquer sistema com alto grau de simultaneidade.

Recomendada para sistemas em tempo real.

Modelo de Dados Usado para descrever a estrutura lógica e possivelmente física das informações persistentes.

Recomendada para projetos que utilizam um banco de dados.

Modelo de Implementação Mostra a configuração de nós de processamento em tempo de execução e os vínculos de comunicação entre eles, assim como as instâncias de componentes e os objetos que neles residem.

Opcional.

Muitos sistemas apresentam vários nós de processamento e, por isso, precisam utilizar o Modelo de Implementação. No entanto, ele pode ser abordado como uma seção do Documento de Arquitetura de Software, sem precisar existir como um artefato identificado separadamente.

Prova de Conceito de Arquitetura Usada para determinar se existe uma solução que satisfaça os requisitos significativos do ponto de vista arquitetural Recomendada para a maioria dos projetos.

Muitos projetos utilizam uma Prova de Conceito Arquitetural para determinar a viabilidade dos requisitos. Estas são algumas das muitas formas que ela pode assumir:

  • uma lista de tecnologias conhecidas que pareça adequada à solução
  • um esboço de um modelo conceitual de uma solução
  • uma simulação de uma solução
  • um protótipo executável
Arquitetura de Referência As Arquiteturas de Referência aceleram o desenvolvimento e reduzem os riscos reutilizando soluções já aprovadas.

Recomendada para a maioria dos projetos.

Se existir material de Arquitetura de Referência apropriado, ela pode acelerar o desenvolvimento e reduzir os riscos consideravelmente.

SAD (Documento de Arquitetura de Software) O Documento de Arquitetura de Software é usado para fornecer uma ampla visão geral da arquitetura do sistema. Essa visão geral ajuda a compreender o sistema e a captar decisões arquiteturais importantes.

Recomendada para a maioria dos projetos.

Uma visão geral de alto nível da arquitetura do software é útil para todos os sistemas, exceto os menores. Normalmente, os sistemas complexos necessitam de um nível maior de detalhes e de mais visões que os projetos menores.

Protótipo da Interface com o Usuário Usado para expor e testar a funcionalidade e a usabilidade antes do início efetivo do desenvolvimento. É um meio eficaz de validar o design antes de desperdiçar muito tempo.

Recomendada para a maioria dos projetos.



Decidir quais Relatórios Utilizar

A decisão sobre os relatórios a serem utilizados depende das ferramentas de relatório disponíveis para o projeto. Se as ferramentas de geração de relatórios estiverem disponíveis, será recomendável gerar relatórios para produtos de trabalho orientados a modelos, como Classes de Design e Realizações de Casos de Uso. Os relatórios existentes na configuração do RUP estão disponíveis nas páginas de descrição do produto de trabalho ou agrupadas sob o produto de trabalho relevante no navegador de árvore.

Decidir Como Revisar

Decida o nível de revisão a ser utilizado para cada produto de trabalho que será utilizado.  Especificamente, decida como revisar e aprovar os resultados de Análise e Design e qual será o grau de revisão dos resultados.  

As vantagens de realizar revisões durante a Análise e o Design incluem:

  • Detectar problemas que são impossíveis, ou muitos difíceis, de se detectar durante os testes. Por exemplo, problemas de estilo e de layout. 
  • É uma maneira de impor um estilo de modelagem comum e uma oportunidade para as pessoas aprenderem uma com as outras. 
  • Detectar defeitos que só seriam detectados mais tarde no projeto, durante os testes.

As desvantagens das revisões durante a Análise e o Design incluem:

  • Exige tempo e recursos. 
  • Se não houver um bom gerenciamento, pode ser utilizada impropriamente.

Os fatores que podem ser alterados para revisões de Análise e Design são as técnicas de revisão, os recursos e o escopo. Aqui estão alguns exemplos do que você pode decidir fazer em seu projeto:

  • Decidir que as mudanças locais em um subsistema serão revisadas apenas por uma pessoa, que realizará uma inspeção e encaminhará os resultados por escrito.
  • Decidir que partes do design não sofrerão nenhuma revisão; por exemplo, revisar apenas algumas classes para cada membro do projeto e esperar que isso assegure que a qualidade do estilo seja semelhante no restante dos resultados.
  • Decidir que o Documento de Arquitetura de Software será revisado pelo cliente durante uma reunião separada.
  • Decidir fazer reuniões de revisão formais para implementar mudanças em interfaces importantes, ou seja, interfaces que afetam o trabalho de vários membros do projeto.

Para obter informações adicionais sobre níveis de revisão, consulte Diretriz: Níveis de Revisão

Decidir se Deve Gerar Código

A maneira como você elabora o design varia dependendo se o código é ou não gerado a partir do modelo de design. Se o código for gerado a partir do modelo de design, o design precisará ser muito detalhado. Por outro lado, se o código não for gerado a partir do modelo de design, não é necessário que o design seja muito detalhado. Pelo contrário, os detalhes do design terão de ser sincronizados manualmente com o código.