<< Chapter < Page Chapter >> Page >

O problema da inconsistência da arquitetura com o código aconteceporque, em muitos processos de desenvolvimento, arquitetura evolui ao longo do tempo,seja uma evolução planejada ou não. Uma evolução não-planejada pode acontecerda forma descrita no exemplo a seguir.

Lembrando da arquitetura do SASF, que foi dividida em trêscamadas: apresentação, lógica de negócio e persistência, uma dasdecisões impostas dita que a camada de apresentação só pode se comunicarcom a lógica de negócio. No entanto, um desenvolvedor, medindo que aexibição da interface está demorando porque o carregamento das imagensnecessárias está lento, resolve modificar a interface para queproceda da seguinte maneira. O pedido das imagens é feito diretamenteà camada de persistência, contornando assim o overhead da camada lógica para tanto. Uma vez que ele nota que o desempenhoda exibição da interface com o usuário agora está satisfatório,ele adiciona essa mudança ao código.

Acontece que, com isso, ele adicionou uma mudançatambém na arquitetura do sistema. A partir daí, há comunicação entreo módulo de interface e de persistência, fazendo assim que a documentaçãoda arquitetura esteja inconsistente em relação ao código do sistema.

Por que documentar a arquitetura de software?

Como já foi mencionado no padrão ISO/IEEE 1471-2000, a arquiteturade um sistema existe independentemente dela ter sido documentada ou planejada.No entanto, em pequenos sistemas, pensar, planejar, documentar e manter a arquiteturapode não ser necessário: um conjunto de classes e pacotes ou de módulos com suasrelações e evolução minimamente pensados (ou uma Big Ball of Mud) pode atender aosrequisitos funcionais e os atributos de qualidade do sistema. Normalmente, issoacontece quando os requisitos não são difíceis de serem atendidos. Assim, todos os interessadosficam satisfeitos – que podem não ser muitos ou conflitantes – e o sistema atinge osucesso esperado.

Pensemos num pequeno sistema que servirá para a organizaçãode uma modesta locadora de filmes. Ele será capaz de cadastrar, recuperar,atualizar e remover filmes, cadastrar, recuperar, atualizar e remover DVDsde filmes, cadastrar, recuperar, atualizar e remover clientes, realizar locações,devoluções e reservas.

Se a execução desse sistema estiver restrita apenas a umaúnica loja física, seus requisitos serão simples o suficiente para nemprecisarmos de uma documentação abrangente (ou mesmo precisar de qualquer documentação!):ele será desktop, terá apenas um usuário atuando sobre o sistema, sua carga,por ter apenas um usuário, será baixíssima, além dos dados armazenados no sistema,que por maior que seja a loja, não chegará a limites intratáveis por umsistema simples. Podemos observar que um sistema com esses requisitos podeser desenvolvido e mantido até por um programador menos experiente.

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Arquitetura de software. OpenStax CNX. Jan 05, 2010 Download for free at http://cnx.org/content/col10722/1.9
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Arquitetura de software' conversation and receive update notifications?

Ask