Atividade:
| ||||||||||||||||
| Finalidade | |
| Passos | |
| Artefatos Informados: | Artefatos Resultantes:
|
| Freqüência: Uma vez por iteração | |
| Conceitos: | |
| Papel: Arquiteto de Software | |
| Detalhamentos do Fluxo de Trabalho: |
Os mecanismos de análise fornecem conjuntos conceituais de serviços que são usados por objetos 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 mecanismo de análise específico, observando as características que exigem para esse mecanismo. Por exemplo, diversos objetos de análise podem utilizar um mecanismo de Persistência, mas os requisitos exigidos podem variar consideravelmente: uma classe que terá mil instâncias persistentes possui requisitos de persistência muito diferentes do que 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. É possível encontrar uma grande variedade de perfis de características que fornecem diferentes graus de desempenho, base, segurança, custo econômico etc. Cada mecanismo de análise é diferente; portanto, características distintas serão aplicadas a cada um deles. 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 clientes de acordo com o uso que fazem dos perfis de características. Forme grupos de clientes que parecem 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 mecanismo de análise de exemplo, "comunicação entre processos", pode ser mapeado para um mecanismo de design, "agente de solicitação de objetos". 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 único na análise dará origem a diversos mecanismos de persistência no design: persistência na memória, baseada em arquivos, baseada em banco de dados, distribuída etc. Os mecanismos de design são refinamentos dos mecanismos de análise, com base nos diferentes perfis de características.
Com uma abordagem do tipo bottom-up, faça um inventário dos mecanismos de implementação (consulte Conceitos: Mecanismos de Design e Implementação) disponíveis:
Verifique onde os mecanismos de implementação existentes podem ser usados e onde novos mecanismos de implementação precisam ser criados.
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.
Determine os intervalos de características. Com as características identificadas para os mecanismos de design, determine intervalos de valores razoáveis, econômicos ou viáveis a serem usados na sugestão de mecanismo de implementação.
Considere o custo de aquisição para componentes comprados. 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.
Efetue uma busca pelos componentes corretos ou crie os componentes. Em geral, você achará que, aparentemente, não há um mecanismo de implementação adequado para alguns mecanismos de design. Isso levará a uma busca pelo produto correto ou à identificação da necessidade de desenvolvimento interno. Você também poderá achar que alguns mecanismos de implementação não são usados.
A escolha de mecanismos de implementação se baseia em uma correspondência satisfatória não só para as características técnicas, mas também para as não-técnicas, como custo. Algumas escolhas podem ser provisórias; quase todas trazem alguns riscos: desempenho, capacidade e escalabilidade são quase sempre itens preocupantes e precisam ser validados por meio de avaliação, criação de protótipos exploratórios ou inclusão no protótipo de arquitetura.
O papel do Arquiteto de Software nesta atividade é definir e validar esses mecanismos através da criação e integração deles, bem como da verificação do seu funcionamento correto e da sua imposição consistente ao restante do design do sistema. Documente os mecanismos e os detalhes referentes ao seu uso no Artefato: Guia de Design específico do projeto. Documente o relacionamento (ou mapeamento) entre os mecanismos de análise, de design e de implementação, e os fundamentos associados dessas alternativas, no Documento de Arquitetura de Software.
|
Rational Unified Process
|