c# - tools - static code analyzers




Quais ferramentas de análise estática estão disponíveis para o C#? (6)

A Optimyth Software acaba de lançar um serviço de análise estática na nuvem www.checkinginthecloud.com . Apenas envie com segurança seu código para executar a análise e obter os resultados. Sem aborrecimentos.

Ele suporta vários idiomas, incluindo C #, mais informações podem ser encontradas em wwww.optimyth.com

Quais ferramentas existem disponíveis para análise estática em relação ao código C #? Eu sei sobre o FxCop e o StyleCop. Existem outros? Já conheci o NStatic antes, mas ele está em desenvolvimento há um tempo que parece ser para sempre - parece bem escorregadio pelo pouco que vi dele, então seria bom se algum dia visse a luz do dia.

Ao longo destas mesmas linhas (este é principalmente o meu interesse pela análise estática), as ferramentas para testar códigos para problemas multithreading (deadlocks, condições de corrida, etc.) também parecem um pouco escassas. Typemock Racer acabou de aparecer, então eu vou estar olhando para isso. Alguma coisa além disso?

Opiniões da vida real sobre ferramentas que você usou são apreciadas.


A ferramenta NDepend é citada como Quality Metric Tools, mas é também uma ferramenta de detecção de violação de código . Disclaimer: Eu sou um dos desenvolvedores da ferramenta

Com o NDepend, pode-se escrever a Regra de Código em Consultas LINQ (o que chamamos de CQLinq) . Mais de 200 regras de código CQLinq são propostas por padrão. A força do CQLinq é que é simples escrever uma regra de código e obter resultados imediatos . As instalações são propostas para procurar elementos de código correspondentes. Por exemplo:

Além disso, o NDepend vem com muitas outras análises estáticas, como recursos. Esses incluem:




Axivion Bauhaus Suite é uma ferramenta de análise estática que funciona com C # (assim como C, C ++ e Java).

Ele fornece os seguintes recursos:

  • Visualização de Arquitetura de Software (incluindo dependências)
  • Aplicação de regras de arquitetura, por exemplo, camadas, subsistemas, regras de chamada
  • Clone Detection - realce de cópia e colado (e código modificado)
  • Detecção de Código Morto
  • Detecção de Ciclo
  • Métricas de Software
  • Verificações de estilo de código

Esses recursos podem ser executados em uma base única ou como parte de um processo de Integração Contínua. Os problemas podem ser destacados por projeto ou por desenvolvedor, quando o sistema é integrado a um sistema de controle de código-fonte.


Ferramentas de detecção de violação de código:

  • Fxcop , excelente ferramenta da Microsoft. Verifique a conformidade com as diretrizes da estrutura .net.

    Editar outubro de 2010: não está mais disponível como um download independente. Agora está incluído no SDK do Windows e após a instalação pode ser encontrada em Programas \ Microsoft SDKs \ Windows \ [v7.1] \ Bin \ FXCop \ FxCopSetup.exe

    Editar fevereiro de 2018 : essa funcionalidade foi agora integrada no Visual Studio 2012 e posterior como análise de código

  • Clocksharp , com base na análise de origem de código (para C # 2.0)
  • Mono.Gendarme , semelhante ao Fxcop, mas com uma licença de código aberto (com base no Mono.Cecil )
  • Smokey , semelhante ao Fxcop e Gendarme, baseado no Mono.Cecil . Não mais no desenvolvimento, o desenvolvedor principal trabalha com a equipe Gendarme agora.
  • Coverity Prevent ™ para C # , produto comercial
  • PRQA QA · C # , produto comercial
  • PVS-Studio , produto comercial
  • CAT.NET , addin visual studio que ajuda na identificação de falhas de segurança
  • CodeIt.Right
  • Spec#
  • Pex

Ferramentas métricas de qualidade:

  • NDepend , ótima ferramenta visual. Útil para métricas de código, regras, diferenças, acoplamentos e estudos de dependência.
  • O Nitriq , gratuito, pode facilmente escrever suas próprias métricas / restrições, visualizações agradáveis. Editar fevereiro de 2018: links para download estão mortos.
  • RSM Squared , com base na análise da origem de código
  • C # Metrics , usando uma análise completa de c #
  • SourceMonitor , uma ferramenta antiga que ocasionalmente recebe atualizações
  • Métricas de Código , um complemento do Reflector
  • Vil , antiga ferramenta que não suporta o .NET 2.0. Editar janeiro de 2018: Link já está morto

Verificando as ferramentas de estilo:

  • StyleCop , ferramenta Microsoft (executado de dentro do Visual Studio ou integrado em um projeto MSBuild). Também disponível como uma extensão para o Visual Studio 2015 e C # 6.0
  • Agente Smith , plugin de validação de estilo de código para ReSharper

Detecção de Duplicação:

  • Simian , baseado no código fonte. Trabalha com muitos idiomas.
  • CloneDR , detecta clones parametrizados somente em limites de idioma (também lida com muitos idiomas além de C #)
  • Clone Detective, um plugin do Visual Studio. (Ele usa ConQAT internamente)
  • Atomiq , baseado no código fonte, muitas linguagens, visualização "roda" legal

Ferramentas gerais de refatoração

  • ReSharper - Principais recursos de análise de código C # e refatoração






static-analysis