Conceitos: Mecanismos de Análise
Tópicos
Introdução a 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, dissociados
do domínio do problema. No entanto, eles são conceitos da "ciência de computação"
e, portanto, ocupam com freqüência 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.
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.
- 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 geralmente 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
Este é o processo de descrição dos mecanismos de análise:
- 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.
- Desenhar um mapa das classes de cliente para os mecanismos de análise

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.
- 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.
-
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 estejam
em um local em que o mecanismo possa 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 Artefato:
Documento de Arquitetura de Software. Conforme a arquitetura de software se desenvolve, o
Artefato: 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.
| |
|