A muito tempo atrás , indo para banca de revista para comprar a primeira edição de uma revista recem lançada chamada Java Magazine, estava conversando com um amigo desenvolvedor de software sobre o futuro do desenvolvimento de software e chegamos a conclusão que o futuro seria das máquinas virtuais, e portanto do Java, no entanto tinha uma questão que eu não conseguia responder : “Eu não entendo para que é necessário um arquiteto de software.” Quando iniciei a desenvolver em Java entendi o porquê. Ao contrário do Delphi que vem com uma arquitetura “pronta” no Java você precisa definir a sua.
Embora nos anos subsequentes eu tenha efetivamente criado algumas arquiteturas para atender aos meus clientes eu o fazia de uma forma ad-hoc sem notar como esta área crescia. Ao ler o paper de Kruchten The Past,Present, and Future of Software Architecture observei esta evolução. Após ler este artigo me dei conta de como tinha evoluido a área e iniciei de imediato o processo de estudo, afinal : “nós(desenvolvedores de software) como os tubarões precisamos sempre nadar(aprender) para não morrermos afogados”[1].
Eu tenho um método para estudar um assunto. Inicio lendo um tutorial ou um paper sobre o assunto e depois passo para um livro sobre o assunto depois começo a fazer alguns projetos exploratórios na área. No caso do estudo de Arquitetura de Software fiz o mesmo só que tive a ajuda do excelente artigo sobre The Past,Present, and Future of Software Architecture. Que possui uma excelente lista de referências.
Os principais papers são:
- An Introduction to Software Architecture - neste paper é apresentado os estilos arquiteturais
- Foundations for the Study of Software Architecture é lançado a formula Software Architecture={elements, forms, rationale}
- 4+1 view architecture - uma única visão não é suficiente explana as 4+1 visões, excelente
- A Field Guide to Boxology - explana os trade offs entre os diversos estilos arquiteturais
- A Field Guide to Boxology(tabela)
Após ler os papers, você pode ler os livros:
- Software Architecture , Perspectives on an Emerging Discipline, que repete muito do que eu já tinha lido nos papers
- Software Architecture in Practice ,espetacular
- Documenting Software Architectureestou atualmente lendo
Espero que este blog seja útil para aqueles que querem iniciar em arquitetura de software. Caso este seja seu caso deixe seu comentário.
- 1. Sandro Alves[Escovador de bits]