Documento de Arquitetura (Errando que se aprende)

 
Olá,
     Essa semana aconteceu algo inusitado, acho que pela decima vez me deparei com o seguinte pedido:
     – Natan, você pode elaborar o documento de arquitetura pra essa solução !
     Estou em um projeto um tanto diferente, tecnologias novas, metodologias novas, enfim,  apesar desse documento ser o mais importante do ponto de vista de um arquiteto de software, confesso que por mais que o faça, sempre me pergunto se ficou a contento, as seguintes perguntas sempre me vem na cabeça:
      – Todos irão entender o que eu modelei ?
      – Como saber se o documento que estou usando é de fato um padrão amplamente usado ?
      – Será que ele reflete a realidade ?
      – Qual a melhor maneira de representar a arquitetura de um sistema ?
     É pessoal, a verdade é que por mais você leia excelentes livros como, por exemplo, Documenting Software Architectures: Views and  Beyond ou Software Architecture in Practice, você irá aprender vários conceitos muito uteis, mas a utilização dessa sopa de letrinha vem mesmo sabe com o quê ? A prática !
     Por via das dúvidas, a melhor coisa para minimizar os erros é seguir um Architectural Blueprint já bastante utilizado, conhecido como: “The “4+1” View Model of Software Architecture”, escrito por Philippe Kruchten. O que ele sugere, é a utilização de cinco views para representar a sua arquitetura, são elas:

     •The logical view: O modelo de objetos do “design”, essa view desse ser criada sempre pensando do ponto de vista das funcionalidades espostas ao cliente, o objetivo é descrever as estruturas do software que resolvem os requisitos funcionais do sistema;

     •The process view:  É a visão que irá representar os processos que estão rodando, objetos instanciados que existem no sitema e descreve requisitos não funcionais como: Sincronização e Concorrencia;

     •The physical view:  Essa é a minha favorita, descreve os hardwares(Servidores e etc) que executam o software e como os componentes, objetos e processos estão disponibilizados nessas maquinas e quais
suas configurações em tempo de execução;

     •The development view
:   Essa view descreve a organização dos módulos da aplicação, mostra como as classes são organizadas dentro dos pacotes e suas dependencia. Alguns autores ainda acrescentam uma visão em camadas(Layers) do software e qual a responsabilidade de cada camada no sistema.

     Acho que seguindo essa receita de bolo, já dá pra ter alguma coisa, sempre pensando é claro, que cada sistema tem sua particularidade, que outras views podem ser acrescentadas. No mais, espero que essa dica seja profícua para quem estiver buscando sobre este assunto na internet.

Abrcs.

Referencias

http://www.ibm.com/developerworks/library/ar-archdoc1/
http://www.ibm.com/developerworks/library/ar-archdoc2/
http://www.ibm.com/developerworks/library/ar-archdoc3/
http://www.ibm.com/developerworks/library/ar-archdoc4/index.html
http://www.ics.uci.edu/~michele/Teaching/INF117/Krutchten%204+1View%20SWArch.pdf

http://shapingsoftware.com/2008/10/05/4-1-view-model-of-software-architecture/

3 Comments

  1. Achei legal esse post pra uma coisa que algumas pessoas não dão tanta importância: para a documentação de um sistema.Há programadores que começam seus projetos a partir de um código fonte e se perdem no meio do caminho.Gostei de ver a preocupação quanto ao que você quer passar no projeto, se as pessoas o entederão ou não. Por mais que a gente comece um projeto, nem sempre somos nós que prosseguimos com ele.Post ótimo

    Like

    Reply

  2. Achei teu blog Natan. Gosto de escrever e acho que esse é um dos ótimos lugares pra exercitar isso. Parabéns pela iniciativa !Agora uma reclamação: kd os links dos links heeheh ? não vai fazer a gente copiar e colar toda vez heheh

    Like

    Reply

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s