As Atividades de Arquitetura do OpenUP

Conforme abordamos anteriormente, o OpenUP é uma derivação do Processo Unificado e, assim como este, é centrado na arquitetura de software. Ao mesmo tempo que aplica os princípios do ciclo de vida do RUP, o OpenUP adota uma “filosofia pragmática e ágil que foca no colaboração natural” para o desenvolvimento do software.

Diferentemente das outras abordagens ágeis, como o XP, a forte orientação à mitigação de riscos do OpenUP (premissa do UP, claro) enfatiza o trabalho arquitetural no início do ciclo de desenvolvimento. Ao balancear o ataque aos riscos técnicos com as práticas ágeis, o OpenUP adota a Arquitetura Evolucionária (Evolutionary Architecture), uma influência da Arquitetura Ágil (Agile Architecture) de Ambler. A Arquitetura Evolucionária se baseia em: realizar o trabalho arquitetural “just in time”, isto é, na medida que é necessário; documentar principais premissas arquiteturais; implementar e testar capacidades-chave através de protótipos.

As tarefas cujo principalmente responsável é do arquiteto são “Esboçar a Arquitetura” (Outline the Architecture) e “Refinar a Arquitetura” (Refine the Architecture). Basicamente, a tarefa de “Refinar a Arquitetura” complementa com maiores detalhes as informações identificadas em “Esboçar a Arquitetura”.

Relacionamentos do Arquiteto de Software (OpenUP)

Relacionamentos do Arquiteto de Software (OpenUP)

Fonte: OpenUP – Licença EPL

Abaixo apresentamos uma correlação entre os passos das tarefas arquiteturais:

Passos de “Esboçar Arquitetura”
Passos de “Refinar Arquitetura”
Identificar objetivos arquiteturais. Refinar os objetivos arquiteturais e os requisitos arquiteturalmente significativos.
Identificar requisitos arquiteturalmente significativos.
Identificar restrições sobre a arquitetura. Identificar elementos de design arquiteturalmente significativos.
Identificar mecanismos arquiteturais.
Identificar interfaces com sistemas externos.
Identificar abstrações-chave.
Identificar oportunidades de reuso. Identificar oportunidades adicionais de reuso.
Definir abordagem para particionamento do sistema. Mapear o software ao hardware.
Definir abordagem para implantação do sistema.
Verificar a consistência arquitetural. Validar a arquitetura.
Capturar e comunicar decisões arquiteturais. Comunicar decisões.
N.A. Definir arquitetura de desenvolvimento e arquitetura de testes.

Apesar de ser um processo minimalista, as tarefas arquiteturais indicadas pelo OpenUP são suficientes para suprir as necessidades de modelagem da arquitetura de grande parte dos projetos de software. Ambas tarefas fornecem insumos para o preenchimento do “Caderno de Arquitetura” (”Architecture Notebook”, também traduzido por “Descrição Arquitetural” no OpenUP 0.9 em português). O Caderno de Arquitetura, único artefato da disciplina, registra todos os apontamentos relevantes do time de arquitetura. Não é pretensão do OpenUP documentar toda a atividade de arquitetura – para isto, conta com o valor ágil de “Comunicação”.

Para maiores informações aos interessados, seguem referências.

  1. As Atividades de Arquitetura do Processo Unificado 
  2. OpenUP
  3. Agile Manifesto
  4. Agile Architecture: Strategies for Scaling Agile Development
  5. Architecture Envisioning: An Agile Best Practice
  6. Agile Enterprise Architecture
  7. Architecture Paradox

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *