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!