Submarino.com.br




Introdução à Arquitetura de Software

Introdução à Arquitetura de Software

A Arquitetura de Software é a área do desenvolvimento de software preocupada com a infraestrutura sobre a qual o software irá assentar. O termo remete a semelhanças com a arquitetura tradicional de edificações, porém, a idéia não é controlar o processo de construção do software, mas guiar a posição dos alicerces sobre os quais o software será construído.

A Arquitetura de Software é baseada em definir plataformas, formas de distribuição de informação e reutilizar componentes, e em pouco ou nada se relaciona com a programação do software propriamente dita. Definir estes componentes e a sua organização é uma das tarefas mais importantes do arquiteto, pois são eles que sedimentam como o software será criado. Esta é a semelhança com a arquitetura de edificações, onde a planta define os alicerces da edificação. Tal como o edifício nunca poderá ir além do suporte dos seus alicerces, um software não pode ir além dos componentes da sua arquitetura.

A expressão uma arquitetura, refere-se a um conjunto específico desses componentes para utilizar em determinada aplicação.

Arquitetura de Software é uma daquelas disciplinas que permitem a discussão sem ter que entrar muito no detalhes da programação, mas obriga a detalhar tecnologias, plataformas e paradigmas que irão permear a programação e a organização interna do software.

A definição de arquitetura que será utilizada em um software é tanto mais importante quanto maior for o tempo de vida previsto para esse software. Se o software se destina a ser um produto, ou seja, se ele tende a evoluir naturalmente sob demanda dos seus utilizadores, ele tem que ser capaz de comportar modificações com baixo esforço e que acompanhem a evolução natural da tecnologia, ou, então, o software ficará obsoleto antes do tempo previsto.

Estabelecer uma boa arquitetura é, portanto, uma forma de proteger o investimento feito no software e como tal assenta um conjunto de decisões que tem que conter as expectativas futuras para o software, para todo o seu ciclo de vida, e não apenas as expectativas imediatas relacionadas à construção da primeira versão. Uma má arquitetura, uma arquitetura inexistente ou criada por pessoas sem a experiência e conhecimento necessários, torna o software obsoleto antes do tempo. Muitas vezes o torna obsoleto antes mesmo de ser terminada a primeira versão.

A pessoa, ou as pessoas, responsáveis pela definição da arquitetura de um software desempenham o papel de Arquiteto. O Arquiteto é responsável pelo equilíbrio entre os aspectos que formam a arquitetura, as necessidade dos software, e as expectativas de investimento a médio e longo prazo.