Tarefa: Desenvolver a Arquitetura
Tome decisões concretas a respeito da arquitetura para fornecer orientação e sentido ao trabalho de desenvolvimento a ser feito na iteração
Disciplinas: Analysis & Design
Objetivo

Fornecer um design básico para permitir que atividades de design mais detalhadas sejam executadas coerentemente pela equipe..

Relacionamentos
Funções Executor Primário: Executores Adicionais:
Entradas Obrigatório: Opcional:
  • Nenhum
Saídas
Descrição Principal

Esta tarefa constrói o trabalho executado durante a Análise dos Requisitos Arquiteturais para produzir uma abordagem concreta para que o principal trabalho de desenvolvimento prossiga.

O objetivo é resolver as questões que afetam as atividades de design e desenvolvimento para a iteração atual, que são:

  • Especificar os padrões ou mecanismos comuns a serem usados.
  • Especificar que uso será feito dos recursos de software existentes e como eles integrarão com toda a solução.
  • Especificar que software novo necessita ser desenvolvido.
  • Assegurar que os recursos apropriados de hardware e software estejam especificados para suportar o desenvolvimento e o teste da solução.
  • Assegurar que a arquitetura seja útil e usada pela equipe de projeto.

As decisões técnicas tomadas como parte desta tarefa são concretas e não ambíguas. Capture as decisões arquiteturais no Caderno da Arquitetura. Certifique-se que sejam divulgadas para toda a equipe.

Esta tarefa é aplicada iterativamente; as iterações posteriores a primeira necessitarão dar conta dos produtos de Design e Construção que forem desenvolvidos.

Etapas
Identifique as prioridades arquiteturais

Determine as prioridades do trabalho de arquitetura para esta iteração. Equilibre os objetivos da iteração atual com todos os objetivos do projeto, assegurando que a arquitetura possa suportar as necessidades correntes e futuras.

Refine os mecanismos arquiteturais

Refine cada mecanismo arquitetural em um Mecanismo de Design olhando para os requisitos no contexto da iteração atual. Inclua cada cenário arquiteturalmente significativo no escopo. Procure aquilo que é comum nos cenários e proponha padrões e componentes comuns para a solução. Trabalhe com os desenvolvedores e os analistas para obter consenso a respeito dos mecanismos de arquitetura.

Identifique padrões de negócio

A arquitetura do sistema pode normalmente ser melhor comunicada mostrando-se como ela lida com o comportamento de importantes áreas de negócio.

Veja Padrão de Negócio. Trabalhe com os Stakeholders para assegurar que os padrões de negócio estejam baseados em conhecimentos sedimentados.

Identifique oportunidades de reuso

Estimule o reuso de componentes existentes avaliando suas interfaces e o comportamento que fornecem. Reuse os componentes quando suas interfaces sejam iguais ou similares as interfaces dos componentes que você necessita desenvolver. Se não forem similares, modifique as interfaces recentemente identificadas para se ajustarem às interfaces dos componentes existentes.

Trabalhe com os desenvolvedores para obter consenso sobre a viabilidade do uso de componentes existentes.

Identifique elementos de design arquiteturalmente significativos

Refine as principais abstrações para decidir quais são os elementos importantes de design (tais como classes e subsistemas) que compõem a arquitetura e forneça pelo menos um nome e uma breve descrição para cada um. Adicione-os ao Design. Obtenha consenso com os desenvolvedores sobre as escolhas arquiteturalmente significativas de design.

Associe o software ao hardware
Associe os elementos de design arquiteturalmente significantes ao ambiente definido para implantação. Trabalhe com os especialistas de rede e hardware para assegurar que o hardware seja suficiente para atender as necessidades do sistema; e que qualquer hardware novo esteja disponível a tempo.
Defina a arquitetura de desenvolvimento e a arquitetura de teste

Assegure-se de que as arquiteturas de desenvolvimento e de teste estejam definidas. Identifique qualquer diferença arquiteturalmente significante entre estes ambientes e trabalhe com a equipe para planejar estratégias para atenuar qualquer risco que eles possam gerar.

Valide a arquitetura

Verifique que as decisões de arquitetura sejam apropriadas para as suas finalidades.

Algum trabalho de desenvolvimento deve ser executado para produzir uma Construção que mostre que a arquitetura de software é viável. Isto deve fornecer a base definitiva para validar a viabilidade da arquitetura. Como o software deve ser desenvolvido de forma iterativa, mais de um incremento da construção pode ser necessário para provar a arquitetura. Durante os estágios iniciais do projeto (até o fim da Elaboração), pode ser aceitável que o software tenha uma aparência incompleta ou protótica, porque será considerado inicialmente como linha base da arquitetura para fornecer uma base estável para a fase de Construção.

Comunique as decisões

Assegure-se de que aqueles que necessitam agir sobre o trabalho arquitetural compreendam-no e possam trabalhar com ele. Certifique-se de que a descrição da arquitetura explica claramente não somente a solução mas também a motivação e os objetivos relacionados às decisões que foram tomadas na elaboração da arquitetura. Isto tornará mais fácil aos outros a compreensão da arquitetura e sua adaptação no tempo.

Principais Considerações

O arquiteto deve executar esta tarefa com a colaboração de toda a equipe para promover consenso e compreensão comum de toda a solução. O arquiteto deve trabalhar para coordenar e guiar as atividades técnicas da equipe, ao invés de procurar fazer todo o trabalho sozinho. O arquiteto deve colocar ênfase no envolvimento dos desenvolvedores durante toda esta tarefa.

Informações Adicionais