Engenharia de Software: Ferramentas de Design de Software

Após ler a matéria do diretor da Phidelis, o grande Alisson Vale, da revista Mundo.Net, a qual questiona o porquê de se medir softwares (referente a design de código fonte), acabei chegando a uma conclusão semelhante a ele.

Não importa quantas ferramentas de análise de código ou Refactoring você disponha, nem quantos diagramas, tabelas, gráficos ou estatísticas você tenha a disposição para modelagem correta da orientação a objeto. Nada, mas nada mesmo substituirá a intuição humana!

Que fique claro que não queremos desmerecer nenhum software do mercado, inclusive o SourceMonitor, programado em C++, a qual checa milhares de linhas de código por segundo, retornando estatísticas como por exemplo: porcentagem de código comentada, número de métodos na classe, grau mais profundo da aninhação de blocos, valor da complexidade (esse dado é computado através da contagem de estruturas de controle if, while, else, switch, for, somada com número de combinações bitwise, incluindo OR, XOR, AND, NOT e por ai vai) , entre outros, sendo que a ferramenta lê códigos em C++, C#, Delphi, Java, VisualBasic etc.

O problema é, na verdade, uma questão didática. Pense um pouco caro leitor do PTI. O que vai acontecer se somente usarmos as novas ferramentas de design de código fonte para modelarem, ou ainda gerarem componentes, ou seja, utilizarmos dessas técnicas para “popular” nosso código fonte?

Futuramente, quem fará essas ferramentas? Quem fará se todos nós desconhecemos detalhes?

E agora eu pergunto, por que eu vou reformular meu código de acordo com normas da abstração de objetos se eu posso gerá-lo? A resposta é simples. Você vai gerá-lo, mas você vai revisá-lo, e entender o porquê da estrutura gerada, e o que acontece debaixo do pano, pois futuramente, seremos NÓS que faremos tais ferramentas, que, como ditas, não geram código propriamente dito (elas geram, mas será que vale a pena?), mas sim nos auxiliam a entender qual a melhor forma de programar.

Concluindo, quero novamente salientar que de forma alguma estou criticando qualquer ferramenta de desenvolvimento, a questão discutida são as ferramentas de design de software, que por sinal são muito convincentes desde que os desenvolvedores, analistas e “programalistas”, saibam o que a ferramenta faz debaixo dos panos, pois se o software alterou seu código, é porque algo estava errado.

E você não quer continuar errando não é mesmo?

Um grande abraço.

Marcelo Bernart Schmidt

Mais artigos deste autor »

Programador .NET certificado MCP, MCTS F2.0, MCTS F3.5 e MCTS W2.0 nas linguagens VB.Net e C#.Net. Tem como hobbie ministrar cursos de programação em C# e orientação a objeto. O pai de Marcelo gostaria que ele fosse fazendeiro, fato ao qual não se concretizou. Marcelo ainda sente remorso do conselho do pai ao ver um programa com problemas de compilação.


Deixe seu comentário

Seu endereço de e-mail não será publicado. Campos com * são obrigatórios!