Existem ferramentas disponíveis para calcular as métricas de código (por exemplo, número de linhas de código, complexidade ciclomática, acoplamento, coesão) para o seu projeto e, com o tempo, produzir um gráfico mostrando as tendências?
87
Respostas:
No meu último projeto, usei o SourceMonitor . É uma boa ferramenta gratuita para análise de métricas de código.
Aqui está um trecho do site oficial do SourceMonitor:
Para .NET além do NDepend, que é simplesmente a melhor ferramenta, posso recomendar vil .
As seguintes ferramentas podem realizar análises de tendências:
fonte
Sonar é definitivamente uma ferramenta que você deve considerar, especialmente para projetos Java. No entanto, também irá lidar com código PHP ou C / C ++, Flex e Cobol.
Aqui está uma captura de tela que mostra algumas métricas de um projeto:
texto alternativo http://sonar.codehaus.org/wp-content/uploads/2009/05/squid-metrics.png
Observe que você pode experimentar a ferramenta usando o site de demonstração em http://nemo.sonarsource.org
fonte
NDepend para .net
fonte
Eu também estava procurando por uma ferramenta / plugin de métricas de código para meu IDE, mas até onde eu sei, não há nenhum (para o eclipse) que também mostre um gráfico da complexidade em um período de tempo especificado. No entanto, encontrei o plug - in eclipse metrics , ele pode lidar com:
E ao usá-lo, não perdi a opção de gráfico que você está procurando também.
Eu acho que, se você não encontrar nenhum plug-in / ferramenta que possa lidar com a representação gráfica ao longo do tempo, você deve procurar a ferramenta que mais se adapta a você e oferece todas as informações de que você precisa; mesmo que as informações fornecidas sejam apenas para a construção atual do seu projeto.
Como uma observação lateral, o plugin eclipse metrics permite que você exporte os dados para um arquivo externo (o link vai para um exemplo), então se você usar uma ferramenta de controle de origem, e você deve !, você sempre pode exportar os dados para o arquivo específico construir e armazenar o arquivo junto com o código-fonte, dessa forma você ainda tem uma maneira (básica) de voltar no tempo e verificar as diferenças.
fonte
tenha em mente que o que você mede é o que você obtém. loc não diz nada sobre produtividade ou eficiência.
classifique um programador por linhas de código e você obterá .. linhas de código. o mesmo argumento vale para outras métricas.
otoh .. http://www.crap4j.org/ é uma métrica muito conservadora e útil. estabelece complexidade em relação à cobertura.
fonte
NDepend, estou usando e é o melhor para esse fim. Verifique isto: http://www.codeproject.com/KB/dotnet/NDepend.aspx
fonte
Em relação à ferramenta NDepend, ela vem com 82 métricas de código diferentes, de Número de Linhas de Código, a Classificação de Método (popularidade), Complexidade Ciclomática, Falta de Coesão de Métodos, Cobertura Percentual (extraída de NCover ou VSTS), Profundidade de Herança .. .
Com seu sistema de regras, o NDepend também pode encontrar problemas e estimar o débito técnico, o que é uma métrica de código interessante (quantidade de esforço de desenvolvimento para corrigir problemas x quantidade de tempo de desenvolvimento estragado por ano para deixar problemas não corrigidos).
Todas essas métricas são detalhadas aqui .
fonte
Se você estiver no espaço .NET, o CodeRush do Developer Express fornece LOC, Cyclomatic Complexity e a (excelente, IMHO) análise de Complexidade de Manutenção de código em tempo real.
(Desculpe pelo link de Complexidade de Manutenção; está indo para o cache do Google. O original parece ser um ATM offline).
fonte
Atlassian FishEye é outra ferramenta excelente para o trabalho. Ele se integra ao seu sistema de controle de origem (atualmente suporta CVS, SVN e Perforce) e analisa todos os seus arquivos dessa forma. A análise é bastante básica, porém, e o produto em si é comercial (mas com preços muito razoáveis, IMO).
Você também pode obter um complemento para ele chamado Crucible, que facilita as revisões de código por pares.
fonte
Para Visual Studio .NET (pelo menos C # e VB.NET), considero o StudioTools gratuito extremamente útil para métricas. Ele também adiciona uma série de recursos encontrados em ferramentas comerciais, como ReSharper .
fonte
O Code Analyzer é uma ferramenta simples que gera esse tipo de métrica.
(fonte: teel.ws )
fonte
Para Python, o pylint pode fornecer algumas métricas de qualidade de código.
fonte
Há também um plugin de métricas de código para refletor , caso você esteja usando .NET.
fonte
Eu recomendaria o Code Metrics Viewer Exention para o visual studio.
É muito fácil analisar a solução de uma vez, também fazer a comparação se você progrediu ;-)
Leia mais aqui sobre os recursos
fonte
No front do PHP, acredito, por exemplo, que o phpUnderControl inclui métricas através do phpUnit (se não me engano).
Lembre-se de que as métricas costumam apresentar falhas. Por exemplo, um codificador que está trabalhando em problemas triviais produzirá mais código e, ali, para uma melhor aparência em seus gráficos, do que um codificador que está resolvendo problemas complexos.
fonte
Se você está atrás de alguma análise de tendência, isso realmente significa algo além do SLOC?
Mesmo se você apenas fizer um grep para o ponto-e-vírgula final e contar o número de linhas retornadas, o que você está procurando é consistência na técnica de medição SLOC. Desta forma, a medição de hoje pode ser comparada com a medição do mês passado de uma forma significativa.
Eu realmente não consigo ver o que uma tendência da Complexidade Ciclométrica McCabe me daria? Eu acho que o CC deve ser usado mais para um instantâneo de qualidade para fornecer feedback aos desenvolvedores.
Edit: Ooh. Pensei apenas em algumas outras medidas que podem ser úteis. Comentários como porcentagem do SLOC e cobertura do teste. Nenhum dos quais você quer deixar escapar. Voltar para reformar qualquer um desses nunca é tão bom quanto fazê-los "no calor do momento!"
HTH.
Felicidades,
Roubar
fonte
O Scitools 'Understand tem a capacidade de gerar várias métricas de código para você. Não tenho muita experiência com os recursos de métricas de código, mas os recursos de análise estática em geral eram bons e o preço muito razoável. O suporte foi excelente.
fonte
O medidor de código de projeto fornece um relatório de histórico de desenvolvimento diferencial (em formato Excel) que mostra suas métricas de progresso de codificação em SLOC, tempo e porcentagem de produtividade (sua estimativa de tempo é baseada na complexidade ciclomática e outras métricas). Então, no Excel, você pode produzir facilmente o gráfico que deseja.
consulte este artigo que o descreve passo a passo: http://www.projectcodemeter.com/cost_estimation/help/FN_monsizing.htm
fonte
Para Java, você pode experimentar nossa ferramenta, QualityGate , que calcula mais de 60 métricas de código-fonte, rastreia todas as alterações ao longo do tempo e também fornece uma classificação geral para a manutenção do código-fonte.
fonte