Tarefa: Identificar Mecanismos de Design
Esta tarefa descreve como refinar Mecanismos de Análise para Mecanismos de Design.
Disciplinas: Análise e Design
Objetivo
  • Refinar os mecanismos de análise em mecanismos de design com base nas restrições impostas pelo ambiente de implementação.
Relacionamentos
Etapas
Categorizar Clientes de Mecanismos de Análise

Os mecanismos de análise fornecem conjuntos conceituais de serviços que são utilizados pelas Classes de Análise. Eles oferecem uma notação simplificada conveniente para comportamentos muito complexos, com os quais, por fim, você terá que se preocupar, mas estão fora do escopo do esforço de análise. Destinam-se principalmente a permitir a captura dos requisitos do sistema nesses serviços que ainda serão projetados, sem a necessidade de se preocupar com os detalhes do provedor de serviços propriamente dito.

Comece agora a refinar as informações coletadas nos mecanismos de análise. Para isso, execute os seguintes passos:

Identifique os clientes de cada mecanismo de análise. Examine todos os clientes de um determinado mecanismo de análise, observando as características exigidas para esse mecanismo. Por exemplo, diversas Classes de Análise podem utilizar um mecanismo de persistência, mas seus requisitos podem variar consideravelmente; por exemplo, uma classe que terá mil instâncias persistentes possui requisitos de persistência significativamente diferentes de uma classe que terá quatro milhões de instâncias persistentes. Da mesma forma, uma classe cujas instâncias devem fornecer respostas em submilissegundos para dados de instância exigirá uma abordagem de persistência diferente de uma classe cujos dados de instância são acessados somente através de consultas ad hoc e aplicativos de elaboração de relatórios em lotes.

Identifique perfis de características para cada mecanismo de análise. Pode haver uma grande variedade de perfis de características que fornecem graus variados de desempenho, base, segurança, economia de custo, etc. Cada mecanismo de análise é único - características diferentes serão aplicadas a cada um. Muitos mecanismos exigirão estimativas do número de instâncias a ser gerenciado e do seu tamanho esperado em termos de número de bytes. A movimentação de grandes volumes de dados através de qualquer sistema criará sérios problemas de desempenho que deverão ser administrados.

Agrupe os clientes de acordo com o uso de perfis de características. Forme grupos de clientes que pareçam compartilhar a necessidade de um mecanismo de análise com um perfil de características semelhante; identifique um mecanismo de design com base em cada necessidade. Esses agrupamentos permitem um corte inicial nos mecanismos de design. Um exemplo de mecanismo de análise, "comunicação entre processos", pode ser mapeado para um mecanismo de design, "object request broker". Perfis de características distintos levarão a diferentes mecanismos de design que são provenientes do mesmo mecanismo de análise. O mecanismo de persistência simples na análise produzirá vários mecanismos de persistência no design: na memória, persistência, baseado em arquivo, baseado em banco de dados, distribuído, etc. Os mecanismos de design são refinamentos dos mecanismos de análise, com base em diferentes perfis de características.

Fazer Inventário dos Mecanismos de Implementação

Prossiga de baixo para cima e faça um inventário dos mecanismos de implementação (consulte Conceito: Projetar e Implementar Mecanismos) que estão disponíveis:

  • Mecanismos oferecidos por um produto middleware ou por uma estrutura de componentes.
  • Mecanismos oferecidos por sistemas operacionais.
  • Mecanismos oferecidos por um componente.
  • Mecanismos oferecidos por uma biblioteca de classes.
  • Código legado (consulte também Tarefa: Incorporar Elementos de Design Existentes)
  • Pacotes para finalidades especiais: construtor da GUI, Sistema de Informações Geográficas, DBMS, etc.

Verifique onde os mecanismos de implementação existentes podem ser usados e onde novos mecanismos de implementação precisam ser criados.

Mapear Mecanismos de Design para Mecanismos de Implementação

Os mecanismos de design fornecem uma abstração dos mecanismos de implementação, fazendo a ligação entre os Mecanismos de Análise e os Mecanismos de Implementação. O uso de mecanismos de arquitetura abstratos durante o design permite considerar como serão fornecidos mecanismos de arquitetura, sem ocultar o problema em questão com os detalhes de um mecanismo específico. Também permite a possível substituição de um mecanismo de implementação específico por outro sem prejudicar o design.

Determinar os intervalos das características. Selecione as características identificadas nos mecanismos de design para determinar intervalos de valores justos, econômicos ou praticáveis para uso no mecanismo de implementação sugerido.

Considere o custo da aquisição de componentes. Para as sugestões de mecanismos de implementação, considere o custo de aquisição ou licenciamento, o vencimento do produto, o relacionamento com o fornecedor, o suporte etc., além de critérios exclusivamente técnicos.

Procure os componentes corretos ou crie-os. Muitas vezes, você perceberá que não há mecanismo de implementação que pareça adequado para alguns mecanismos de design; isso fará com que uma busca pelo produto certo seja acionada ou identificará a necessidade de desenvolvimento interno. Talvez você também descubra que alguns mecanismos de implementação não são utilizados de nenhum modo.

A escolha dos mecanismos de implementação é feita com base não somente em uma correspondência satisfatória para as características técnicas, mas também para as características não técnicas, como custo, por exemplo. Algumas das opções podem ser temporárias; quase tudo oferece algum risco: desempenho, robustez e escalabilidade quase sempre são itens preocupantes e devem ser comprovados pela avaliação, criação de protótipo exploratório ou inclusão no protótipo arquitetural.

Documentar Mecanismos Arquiteturais

O papel do Arquiteto de Software nesta tarefa é definir e validar esses mecanismos através da construção ou integração deles, da verificação de que fazem a tarefa e de impô-los consistentemente ao restante do design do sistema. A função de arquiteto de software colabora com a função de engenheiro de processos para documentar os mecanismos e detalhes relacionados ao uso nas diretrizes de design específicas do projeto. Consulte Tarefa: Preparar Diretrizes Específicas do Projeto. A relação (ou mapeamento) entre mecanismos de análise, de design e de implementação, bem como a análise racional associada dessas opções, deverão ser documentadas no Documento de Arquitetura de Software. Os próprios mecanismos são os elementos do Modelo de Design (como Pacote de Design, Classe de Design e Subsistema de Design), que são detalhados em Produto de Trabalho: Modelo de Design, como parte de suas respectivas tarefas de design.



Informações Adicionais