Conceito: Mecanismos de Análise
Os mecanismos de análise representam um padrão que constituem uma solução comum para um problema comum. Os mecanismos de análise mostram padrões de estrutura, padrões de comportamento ou ambos.
Relacionamentos
Descrição Principal

Introdução aos Mecanismos de Análise

Os mecanismos de análise representam um padrão que constituem uma solução comum para um problema comum. Os mecanismos de análise mostram padrões de estrutura, padrões de comportamento ou ambos. Eles são utilizados durante a análise para reduzir a complexidade da análise e aprimorar sua consistência, fornecendo aos designers uma representação abreviada de um comportamento complexo. Os mecanismos permitem que o esforço de análise enfatize a conversão dos requisitos funcionais em conceitos de software, sem se aprofundar na especificação do comportamento relativamente complexo, que é necessário para suportar a funcionalidade, mas não é fundamental para o mesmo. Os mecanismos de análise freqüentemente resultam da instanciação de um ou mais padrões de arquitetura ou de análise. 

Os mecanismos de análise são usados basicamente para representar 'espaços reservados' de tecnologia complexa nas camadas intermediária e inferior da arquitetura. Usando os mecanismos como 'espaços reservados' na arquitetura, será bem menos provável que o esforço de arquitetura seja perturbado pelos detalhes do comportamento do mecanismo. Como exemplo disso, a necessidade de ter casos de uso de vida útil de objeto, vida útil de processos ou momentos de encerramento e inicialização do sistema define a necessidade da persistência do objeto. A persistência é um mecanismo particularmente complexo e, durante a análise, não queremos ser perturbados por detalhes que nos informem como estamos nos saindo na conquista da persistência. Isso traz à tona um mecanismo de análise de 'persistência' que nos permite falar de objetos persistentes e capturar os requisitos que precisaremos cumprir no mecanismo de persistência, sem nos preocuparmos exatamente com o que esse mecanismo fará ou em como ele funcionará.

Os mecanismos de análise são geralmente, mas não necessariamente, desassociados do domínio do problema. No entanto, eles são conceitos da "ciência de computação" e, portanto, normalmente ocupam as camadas intermediária e inferior da arquitetura. Eles fornecem comportamentos específicos para uma classe ou subsistema relacionado ao domínio ou correspondem à implementação de cooperação entre classes e/ou subsistemas. Eles podem ser implementados como uma estrutura. Exemplos incluem os mecanismos para manipular a persistência, a comunicação entre processos, a manipulação de erros ou falhas, a notificação e o sistema de mensagens, para nomear alguns. 

No entanto, à medida que mais padrões de análise forem estabelecidos em vários domínios, a instanciação parcial ou completa deles nos mecanismos de análise levarão esses mecanismos a aparecerem nas camadas superiores da arquitetura.

Exemplos de Mecanismos de Análise

  • Persistência

    Para todas as classes cujas instâncias podem se tornar persistentes, é necessário identificar:
    • Granularidade: Intervalo de tamanho dos objetos para manter a persistência
    • Volume: Número de objetos para manter a persistência
    • Duração: Quanto tempo normalmente o objeto precisa ser mantido?
    • Mecanismo de recuperação: Como um determinado objeto é exclusivamente identificado e recuperado?
    • Freqüência de atualização: Os objetos são mais ou menos constantes; eles são permanentemente atualizados?
    • Confiabilidade: Os objetos sobreviverão a um travamento do processo, do processador ou do sistema inteiro?

  • Comunicação entre Processos

    Para todos os elementos de modelo que precisam se comunicar com componentes ou serviços que estejam sendo executados em outros processos ou encadeamentos, precisamos identificar:
    • Latência: Com que rapidez os processos devem se comunicar uns com os outros?
    • Sincronização: Comunicação assíncrona
    • Tamanho da mensagem: Um espectro pode ser mais apropriado que um único número.
    • Protocolo, controle de fluxo, armazenamento em buffer, e assim por diante.

Outros mecanismos comuns incluem:

  • Roteamento de mensagens
  • Controle e sincronização de processos
  • Gerenciamento de transações
  • Troca de informações
  • Segurança
  • Redundância
  • Relatório de erros
  • Conversão de formato

Descrevendo Mecanismos de Análise

Este é o processo de descrição dos mecanismos de análise:

  1. Coletar todos os mecanismos de análise em uma lista

    O mesmo mecanismo de análise pode aparecer sob diferentes nomes em diferentes realizações de caso de uso ou designers. Por exemplo, armazenamento, persistência, banco de dados e repositório podem se referir a um mecanismo de persistência. OU comunicação entre processos, transmissão de mensagens ou chamada remota podem se referir a um mecanismo de comunicação entre processos.

  2. Desenhar um mapa das classes de cliente para os mecanismos de análise
  3. Diagrama é descrito no conteúdo.

    As classes e os subsistemas identificados precisam ser mapeados nos Mecanismos de Análise identificados: as setas indicam que a classe utiliza o mecanismo. É comum uma classe cliente exigir os serviços de vários mecanismos.

  4. Identificar as Características dos Mecanismos de Análise

    Para fazer a distinção em um intervalo de designs possíveis, identifique as principais características utilizadas para qualificar cada mecanismo de análise. Essas características são, por um lado, consideradas funcionalidades e, de outro lado, consideradas tamanho e desempenho.

  5. Modelar Utilizando Colaborações

    Após ter identificado e nomeado os mecanismos de análise, eles devem, finalmente, ser modelados por meio da colaboração de uma 'sociedade de classes' (consulte [BOO98]), algumas delas não oferecem diretamente funcionalidade de aplicativo, mas existem somente para suportá-la. Muito freqüentemente, essas 'classes de suporte' ficam nas camadas intermediária ou inferior de uma arquitetura em camadas, fornecendo, assim, a todas as classes de nível de aplicativo um serviço de suporte comum.

    Se o mecanismo identificado for comum o suficiente, talvez os padrões existam, a partir dos quais o mecanismo pode ser instanciado, ligando as classes existentes e implementando as novas conforme exigido pelo padrão. Um mecanismo de análise produzido dessa forma será abstrato e exigirá posteriormente um refinamento por meio do design e da implementação.

Os mecanismos de análise são documentados no Produto de Trabalho: Documento de Arquitetura de Software. Conforme a arquitetura de software se desenvolve, o Produto de Trabalho: Documento de Arquitetura de Software inclui um relacionamento (ou mapeamento) entre os mecanismos de análise, de design e de implementação e os fundamentos associados a essas escolhas.