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.
-
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
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 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.
|