Danilo,
Ainda hoje se debate na indústria de software sobre qual é a definição para
Arquitetura de Software. Não há consenso sobre o tema e, portanto, existem
várias definições para Arquitetura de Software. Você pode encontrar uma
compilação de definições neste link - Inglês:
http://www.sei.cmu.edu/architecture/definitions.html
Na primeira definição da lista temos:
"A arquitetura de software de um sistema ou programa de computador é a
estrutura ou as estruturas do sistema, as quais compreendem elementos de
software, as propriedades externamente visíveis destes elementos, e os
relacionamentos entre eles."
Há pouco tempo li, não me lembro mais onde, uma definição interessante para
arquitetura - mais ou menos assim:
“Engenharia define as paredes enquanto Arquitetura define os espaços entre a
paredes. “
Eu gosto desta definição pois leva a reflexão a respeito de fluxo, fluidez,
e capacidade de acomodação. Traduzindo para mundo do software seria a
capacidade dos elementos de uma solução em dar vazão aos requerimentos de
negócio bem como técnicos funcionais - entre eles: performance, usability,
scalability, availability, reliability and security, etc. Já sei que vão
dizer: está ficando muito abstrato! É verdade, fica difícil fugir disso para
abordar um assunto tão abrangente e controverso. Para não estender muito,
vamos a definição do IEEE (ANSI/IEEE Std 1471-2000):
“a organização fundamental de um sistema, personificado por seus
componentes, o relacionamentos estes componentes bem como ao ambiente que os
cerca, e os princípios que governam sua estrutura e evolução.”
Essa é uma discussão interessante e gostaria da opinião dos gurus de plantão
bem como dos mortais em geral.
Abraço,
Pedro Manfredi
Post by Danilo LutzEu não tenho a menor idéia da definição do que vem a ser engenharia de
software, se alguém puder por favor me explique!
--
Danilo Lutz