Tarefa: Descrever a Arquitetura
Descreva a arquitetura através da análise dos requisitos arquiteturalmente significantes e pela identificação de restrições, decisões e objetivos arquiteturais.
Disciplinas: Arquitetura
Objetivo
Para fornecer orientação e sentido suficientes de forma que a equipe possa iniciar ou continuar a evolução da arquitetura.
Relacionamentos
Descrição Principal

Esta tarefa foca a identificação das metas arquiteturais para uma iteração que irão orientar o desenvolvimento e os testes. Baseia-se na experiência obtida em domínios do problema ou sistemas similares para restringir e focar a arquitetura de modo que o esforço não seja desperdiçado na re-invenção da arquitetura.

Passos
Identifique as metas arquiteturais

Trabalhe com a equipe, especialmente com os Stakeholder e o Analista, para descrever as metas da arquitetura restantes e identificar quais são adequadas para esta iteração. Examine a Visão e os requisitos. Estas metas irão priorizar e guiar a abordagem para decisões técnicas importantes.

Será importante revisar periodicamente o status dessas metas em todo o projeto para certificar que elas ainda são válidas e que o sistema está no caminho certo para entregá-las.

Identifique os requisitos arquiteturalmente significantes

Identifique quais dos requisitos atuais são arquiteturalmente significantes Explore e refine aqueles que devem ser implementados para alcançar as metas arquiteturais da iteração atual. Veja Concept: Requisitos Arquiteturalmente Significantes e Guideline: Determinar os Requisitos Arquiteturalmente Significantes para mais informações.

Referencie os requisitos arquiteturalmente significantes no Caderno de Arquitetura assim que eles forem identificados. Será importante revisar essa lista periodicamente em consonância com as alterações nos requisitos para certificar que eles ainda são válidos.

Identifique as restrições na arquitetura

Liste quaisquer restrições na arquitetura e eventuais compensações entre os requisitos e os recursos concorrentes. Decida como a arquitetura irá resolver essas questões. Justifique cada decisão tomada e capture essas informações. Revise periodicamente a lista de restrições para certificar que elas ainda são válidas e que não apareceram outras novas.

Examine, avalie e selecione os recursos disponíveis

Identifique os recursos de outras áreas que podem ser reutilizados na arquitetura atual. Podendo ser:

  • Frameworks Arquiteturais
  • Mecanismos Arquiteturais
  • Decisões Arquiteturais
  • Restrições
  • Aplicações
  • Componentes
  • Software COTS
Defina a abordagem para estruturar o sistema

Decida como estruturar o software em termos lógicos e físicos. No mínimo defina:

  • Como decompor o software ao gerenciar o desenvolvimento (o uso de divisão em camadas como uma estratégia de decomposição, por exemplo).
  • Como o software será composto em tempo de execução.

Para cada decomposição do software, descreva resumidamente

  • Seu nome e finalidade.
  • Seus relacionamentos com outras decomposições.

Estas definições irão construir a base para estruturar o Design e a Construção.

Defina a abordagem para implantar o sistema

Descreva como o software será distribuído nos nós da rede. Trabalhe com os Stakeholders bem como com as equipes de implantação e de suporte de rede para assegurar que a abordagem proposta seja uma boa opção para todo o ambiente técnico.

Identifique os mecanismos arquiteturais

Faça uma lista dos serviços técnicos que o sistema precisa fornecer e capture algumas informações básicas sobre cada item na lista. Normalmente, é uma boa idéia fazer uma lista inicial de todos os mecanismos necessários ao projeto e, em seguida, priorizar o desenvolvimento dos que devem ser entregues, para alcançar as metas da iteração atual. Veja Concept: Mecanismo Arquitetural para descobrir quais são os mecanismos arquiteturais e como descreve-los. Veja Guideline: Mecanismos Arquiteturais para entender como desenvolvê-los. Veja Guideline: Descrever a Arquitetura para perspectivas e questões a serem consideradas na definição da arquitetura.

Identifique as principais abstrações

Identifique as principais abstrações que o sistema precisa tratar. Elas podem normalmente ser encontradas procurando pelos substantivos que os requisitos enfatizam ou repetem, porque eles ajudam a identificar o que é importante para o negócio. O Glossário também é uma fonte útil para as principais abstrações e uma lista dos substantivos do negócio. Nem todos os substantivos serão abstrações importantes no sistema, por isso trabalhe com o Analista e os Stakeholder visto que eles poderão ter conhecimento e material que sejam relevantes para esta etapa.

Verifique a coerência arquitetural
O arquiteto trabalha com o Desenvolvedor e o Gerente de Projeto, para verificar se a arquitetura está consistente com os requisitos, e se as descrições da arquitetura estão claras, significativas e completas.
Capture as decisões arquiteturais

Capture decisões importantes sobre a arquitetura para referência futura. Considere o uso dos templates fornecidos para o Caderno de Arquitetura. Os Desenvolvedor em particular, devem compreender claramente o estado atual da arquitetura em cada iteração antes do desenvolvimento da arquitetura.

Principais Considerações

Esta tarefa é mais benéfica quando do desenvolvimento de sistemas novos e sem precedentes. Nos sistemas onde já haja uma arquitetura bem definida, esta tarefa pode ser omitida, ou executada rapidamente como uma revisão da arquitetura existente.

É crítico que esta tarefa seja executada de forma colaborativa com a participação ativa dos outros membros da equipe e dos Stakeholders do projeto de modo que o consenso e a compreensão comum sejam alcançados. É particularmente vital para o arquiteto envolver os desenvolvedores durante toda esta tarefa. O esforço de arquitetura deve fornecer liderança e coordenação do trabalho técnico ao invés de executar o trabalho sozinho.

Informações Adicionais