sexta-feira, 13 de junho de 2008

Documentação da arquitetura de um sistema (de 11/02/08)

Durante a fase de elaboração de um projeto baseado no RUP (Rational Unified Process), um artefato chave é o documento de arquitetura do sistema. Este artefato define a estrutura, a comunicação de componentes e endereça requisitos não-funcionais do sistema.

O documento de arquitetura tem como propósito comunicar a estrutura do sistema para as partes interessadas no mesmo, como patrocinadores, vendedores, técnicos, desenvolvedores, usuários e outros. Estes nitidamente com conhecimentos, interesses e foco totalmente distintos uns dos outros. Para isto tipicamente são utilizados diferentes níveis de abstração, onde visões distintas são criadas sobre os componentes da arquitetura e estes componentes são hierarquicamente decompostos para satisfazer diferentes níveis de interesse.

Tipicamente utilizo dois diagramas clássicos da UML para a descrição geral da arquitetura de um sistema:

Visão de componentes:

Aqui utilizo o diagrama de componentes para descrever os elementos significativos da arquitetura e as suas relações. Estes elementos podem ser componentes desenvolvidos no projeto, bibliotecas de terceiros, subsistemas e classes, entre outros.

Dentro da idéia de decomposição, são criados tantos diagramas quantos forem necessários para detalhar componentes complexos.

Visão de implantação:

Nesta visão o diagrama de implantação explora o cenário físico de alocação dos componentes em máquinas e como eles se comunicam através de redes, bancos de dados e arquivos.

Esta visão apresenta o potencial de escalabilidade do sistema, necessidades de hardware, entre outros.

Em interações com usuários e equipes de desenvolvimento, percebi que uma outra visão bastante esclarecedora e muito importante é a Visão de Desenvolvimento.

Esta explora idéias fundamentais da organização do sistema, de particular interesse da equipe de desenvolvimento: A estrutura interna dos componentes do sistema, como os códigos-fonte e outros artefatos são manipulados no ambiente de desenvolvimento e como estes são mantidos em repositórios de controle de versão.

Creio que o sucesso do documento de arquitetura passa por conseguir levar aos diferentes tipos de indivíduos envolvidos os diversos aspectos da estrutura do sistema de forma clara e objetiva.

0 Comments: