Engenharia de Software é geralmente definido como todo o conjunto de disciplinas utilizadas apra a construção de um software.
Arquitetura é o conjunto de macro-decisões de um sistema. Arquitetura diz quais são os macro-componentes e como eles se comportam e relacionam.
Um livro que vai ter dar uma excelente base é o Patterns of Enterprise Application Architecture, do Martin Fowler, mas não espere que um livro vá te dar nem 50% do conhecimento necessário.
[quote=pcalcado]Engenharia de Software é geralmente definido como todo o conjunto de disciplinas utilizadas apra a construção de um software.
Arquitetura é o conjunto de macro-decisões de um sistema. Arquitetura diz quais são os macro-componentes e como eles se comportam e relacionam.
Um livro que vai ter dar uma excelente base é o Patterns of Enterprise Application Architecture, do Martin Fowler, mas não espere que um livro vá te dar nem 50% do conhecimento necessário.[/quote]
Só pra complementar …
Arquitetura além disso é a escolha de tecnologias, definições de camadas, e de como será feita a comunicação entre elas, tudo isso claro baseado nos requisitos funcionais e não-funcionais do sistema.
Acho que pra arquitetura não existe um livro, e sim uma série deles, que envolve temas como ejb ou web-services ou clusters ou mobile, etc… a não ser que você queira se especializar em um tipo de arquitetura, como arquiteto ejb, ou arquiteto .net, ou arquiteto mobile, etc…
Acho que a melhor prática pra vc aprender arquitetura é participar do início do projeto, participar das decisões e de o que será utilizado pra implementar o software, depois que isso foi feito, dificilmente ou raramente a arquitetura é mudada, só em casos de por exemplo, migrações ou melhorias em caso de baixa performance ou adaptações com novas tecnologias ( modismo ) .