O artigo trata das novas funcionalidades presentes na versão 2010 do Visual Studio para as atividades relacionadas à arquitetura e também ao desenvolvimento de softwares. Entenderemos os pilares desses recursos na visão do arquiteto de software e também do desenvolvedor. Um exemplo destes recursos é quando necessitamos entender um código antigo ou até mesmo quando o conhecemos pela primeira vez.
Em que situação o tema é útil
Esse tema é de grande utilidade durante toda a fase do design da arquitetura de um software, bem como o acompanhamento e validação da estrutura proposta pelo arquiteto de software. Além disso, durante o desenvolvimento de um software, veremos como garantir que os desenvolvedores estão realmente seguindo a estrutura inicial proposta pelo arquiteto de software.
Visual Studio 2010 para arquitetos de software
Com o crescente avanço dos recursos de hardware e software, tivemos também como consequência o aumento da complexidade dos softwares produzidos. Entender e desenhar a estrutura de um software empregando boas práticas, com um baixo acoplamento, permitir o máximo de reutilização da estrutura, aderência ao domínio do negócio, exige um esforço considerável por parte da equipe de desenvolvimento. As features presentes na versão 2010 do Visual Studio vieram para tornar esse trabalho menos dispendioso. Veremos como podemos criar arquiteturas de camadas e garantir que nenhum desenvolvedor quebre essa estrutura. Outro ponto interessante é como o Visual Studio pode auxiliar alguém que é novo na equipe ou alguém que precisa alterar algum código que não é modificado a muito tempo e não lembra como foi feito para entender sua estrutura de classes, namespaces, membros etc. Além disso, veremos como gerar uma user story a partir de um caso de uso e também como podemos gerar códigos a partir do nosso diagrama de classes.
Quando falamos em arquitetos de software estamos nos referindo a um profissional cujas habilidades necessárias devem compreender um bom raciocínio estratégico a nível de componentes, reutilização e a nível de estrutura do software. Deve também ter um domínio organizacional de qualidade.
Uma arquitetura é concebida com base em um conjunto de decisões que estão fundamentadas em um determinado tipo de negócio e uma determinada tecnologia. Nesse contexto, podemos considerar também a estrutura e a natureza da organização que irá montar essa arquitetura. Ainda nesse cenário, não podemos esquecer que existem várias pessoas envolvidas em um determinado projeto e que compõe um time, assim sendo, a arquitetura desenhada está sob a ótica de várias pessoas envolvidas no projeto como analistas de negócios, desenvolvedores, o próprio arquiteto de software.
O desenvolvimento de uma arquitetura deve sem dúvida fazer parte do cronograma do projeto, além do orçamento. Isso se justifica por um simples motivo, porque o padrão de arquitetura que foi criado deve conduzir o projeto dentro daquilo que foi estabelecido no início do design da arquitetura. Contudo, se após a elaboração do padrão de arquitetura, e todos os acordos definidos no projeto, o time começar a se desviar daquilo que foi anteriormente proposto, temos então um desperdício de tempo e também de dinheiro do cliente sendo jogado fora.
A partir de agora temos uma ferramenta muito boa para dar apoio as práticas de arquitetura de um software. Com as novas features de arquitetura presentes no Visual Studio 2010 ficará mais fácil um desenvolvimento, acompanhamento e a evolução de toda a parte de arquitetura de software, não apenas por parte do arquiteto, mas também dos desenvolvedores. O alinhamento entre o definido e o executado está mais fácil de acompanhar e controlar mesmo quando o desenvolvedor resolver enviar o código fonte ao servidor de fontes sem uma validação prévia de arquitetura, o servidor de builds garantirá que as regras estão sendo cumpridas e a sua arquitetura será preservada.
Hoje também temos outra abordagem para o desenvolvimento de uma arquitetura, essa abordagem chama-se arquitetura evolucionária. Quando falamos em arquitetura evolucionária, estamos falando do desenvolvimento de uma arquitetura que recebe melhorias de acordo com a necessidade do momento, ou seja, quando a criamos não pensamos em tudo o que pode vir a ser necessário para atender o contexto atual. A palavra chave nesse cenário é a simplicidade.
Os recursos de arquitetura no Visual Studio 2010
Na versão 2010 do Visual Studio, um dos grandes investimentos por parte da Microsoft foram os recursos de arquitetura na ferramenta. Esses recursos estão disponíveis apenas na edição Ultimate. Essa edição traz nativamente os recursos de modelagem, validação e exploração de códigos, tudo isso forma o que iremos chamar de Pilares de Arquitetura dentro do Visual Studio 2010. Em sua edição Premium é possível visualizar esses diagramas em UML, camadas e os gráficos criados na linguagem DGML.
Contudo, pode ser que todos esses recursos não sejam suficientes para determinada situação, nesse caso a ferramenta permite que você possa criar as suas próprias extensões para visualização, validação, exportação etc. E incorporar na IDE do Visual Studio 2010 através do recurso de extensibilidade.
Os pilares de arquitetura no Visual Studio 2010
A edição Ultimate do Visual Studio 2010 tem suporte aos recursos de arquitetura baseados em três grandes pilares. O primeiro deles está direcionado ao entendimento e compreensão de códigos já existentes. Umas das dificuldades que ocorre com frequência é o entendimento de um código fonte por alguém que acabou de chegar à organização, na maioria das vezes isso leva um certo tempo para que a pessoa esteja familiarizada com o mesmo. Além disso, outro ponto a considerar é que passado algum tempo, nós mesmos não lembramos por completo de um código que criamos no passado e precisamos olhar novamente e lembrar como aquele fonte foi criado e qual é seu propósito. Diante desse cenário, o Visual Studio 2010 Ultimate traz um recurso que permite ao arquiteto ou desenvolvedor explorar o código e a arquitetura anteriormente concebida, esse recurso chama-se Architecture Explorer. Esse então é o primeiro pilar arquitetural presente no Visual Studio 2010 Ultimate. Ainda dentro dessa linha que visa a exploração e o entendimento do fonte, temos também os gráficos de dependências que nos auxiliam de forma visual a entender as ligações e o nível de acoplamento entre os diversos artefatos produzidos.
...