Arquitetura de software envolve a integração de metodologias e modelos de desenvolvimento de software, mas não podemos confundi-la com metodologias para a análise e projeto de sistema. A arquitetura de software é um corpo de métodos e técnicas que nos ajuda a gerenciar as complexidades do desenvolvimento de software.

Evolução de software é o fenômeno de mudança que ocorre no software ao longo dos anos e das múltiplas versões, desde seu início até o completo abandono do sistema.

Essa mudança não está só relacionada com a adição e remoção de funcionalidades, mas também está relacionada com a manutenção do código ao longo do ciclo de vida do software. Essa manutenção pode melhorar ou deteriorar tanto atributos externos de qualidade do software, os quais são percebidos pelos usuários (desempenho, tolerância a falhas, disponibilidade), quanto os atributos internos de qualidade do software, os quais são percebidos pelos envolvidos no desenvolvimento (testabilidade, legibilidade, reusabilidade).

Uma vez que um dos principais objetivos de se projetar uma arquitetura é o de atingir a qualidade desejada pelos interessados no sistema, se torna claro o papel da arquitetura em conduzir a evolução do software, uma vez que ela conterá decisões que contribuirão para a preservação da qualidade do sistema durante seu ciclo de vida.

Existem três entendimentos fundamentais sobre a arquitetura que ajudam a contextualizá-la em relação à engenharia de software:

  1. Toda a aplicação tem uma arquitetura;
  2. Toda aplicação tem pelo menos uma arquitetura;
  3. Arquitetura não é uma fase do desenvolvimento.
Copyright © 2016 AIEC.