Para observação dos professores: use o PVS-Studio para familiarizar os alunos com as ferramentas de análise de código

Quadro 1

Nossos bate-papos de suporte e alguns outros sinais indiretos mostraram que há muitos estudantes entre nossos usuários gratuitos. Aqui está o motivo: o PVS-Studio agora é mais usado pelos professores em cursos relacionados ao desenvolvimento de software. Estamos muito satisfeitos com isso e decidimos escrever este pequeno artigo para ser notado por outros professores. É com satisfação que os alunos se familiarizam com a metodologia de análise de código estático em geral e com a ferramenta PVS-Studio em particular. Nossa equipe tentará contribuir para essa tendência.

O desenvolvimento de software moderno é impossível sem uma abordagem integrada para garantir a qualidade e a confiabilidade do software. O motivo é que o tamanho da base de código dos aplicativos atuais está crescendo rapidamente. Deixe os números falarem por si mesmos. Por exemplo, vamos considerar os sistemas operacionais:

  • MS DOS 1.0: 4.000 linhas de código. Uma pessoa poderia ler todo esse código, resolvê-lo, encontrar bugs.
  • Kernel do Linux 1.0.0: 176.000 linhas de código. Uma equipe ainda pode revisar completamente o código, embora isso leve muito tempo e esforço.
  • Kernel Linux 5.0: mais de 26.000.000 de linhas de código. Não se pode abraçar um projeto sem limites.

O exemplo do kernel do Linux mostra que o tamanho da base de código cresceu 150 vezes em 25 anos. Agora é impossível para um programador revisar o código de todo o aplicativo de uma só vez, ou seja, entendê-lo, encontrar erros, melhorar as soluções arquiteturais. O funcionamento interno dos programas modernos pode ser muito esmagador para uma pessoa. Atualmente, não há mais especialistas que possam responder a qualquer pergunta sobre os aspectos internos do projeto.

A incapacidade de entender o projeto é apenas metade do problema. À medida que o tamanho de um projeto aumenta, o mesmo ocorre com a densidade de erros. Gostaria de enfatizar que não se trata apenas do aumento do número de erros, mas da densidade deles! Em um programa de curso, você pode escrever 1.000 linhas de código e evitar um único erro. Considerando que não há como você adicionar 1000 linhas de código em um aplicativo grande e evitar alguns erros. Para explicar, recorreremos novamente aos números:

Figura 1. Densidade de erro típica em projetos de diferentes tamanhos. Os dados são retirados do livro de Steve McConnell "Code complete".

Figura 1. Densidade de erro típica em projetos de diferentes tamanhos. Os dados são retirados do livro de Steve McConnell "Code complete".

Portanto, é impossível escrever programas confiáveis ​​usando as mesmas abordagens de 20 a 30 anos atrás. Você precisa usar um conjunto de metodologias para ajudar a controlar a crescente complexidade de um projeto de software e garantir a qualidade de código necessária:

  • Padrões de codificação
  • Revisões de código
  • Testes unitários
  • Teste de regressão
  • Teste de carga
  • Teste manual
  • ....
  • Análise dinâmica
  • Análise estática

As metodologias do topo da lista são bastante familiares aos programadores e há muito tempo são aplicadas com sucesso por quase todas as equipes. Mas as duas últimas metodologias ainda são muito menos comuns, embora não sejam novas. Portanto, agora, durante o treinamento dos alunos, os professores devem prestar atenção extra ao estudo das ferramentas de análise estática e dinâmica.

Não vou dizer nada sobre análise dinâmica agora, embora não seja menos importante que a estática.

Quanto à análise estática, é nosso objetivo e convido os professores a prestar atenção ao nosso produto de software PVS-Studio.

O PVS-Studio é uma ferramenta projetada para detectar erros e possíveis vulnerabilidades no código fonte dos programas, escritos em C, C ++, C # e Java. Funciona em sistemas de 64 bits no Windows, Linux e macOS e pode analisar o código para plataformas ARM de 32 bits, 64 bits e incorporadas.

O analisador PVS-Studio pode ser considerado um bom exemplo de uma moderna ferramenta de análise de código estático. Primeiro, é um ótimo exemplo para mostrar as habilidades das ferramentas de análise estática na detecção de erros e defeitos de segurança ( SAST ). Segundo, você pode demonstrar sua integração ao ciclo de desenvolvimento de software para permitir o controle contínuo do código. Neste exemplo, você pode mostrar a integração com sistemas como Jenkins , TeamCity , Azure DevOps , SonarQube , Travis CI e outros.

Para começar a usar o PVS-Studio como parte do treinamento, você não precisa fazer nada de especial.

Fornecemos várias opções para licenciamento gratuito do PVS-Studio, incluindo as de projetos abertos. Especificamente para fins educacionais, caso os trabalhos do aluno não estejam abertos, a melhor opção é adicionar o seguinte comentário ao código:

// This is a personal academic project. Dear PVS-Studio, please check it.
// PVS-Studio Static Code Analyzer for C, C++, C#, and Java: http://www.viva64.com

Você precisa seguir duas etapas para começar a usar o analisador de código PVS-Studio gratuitamente:

Passo um

Se você estiver usando o PVS-Studio como um plug-in do Visual Studio, insira a seguinte chave de licença:

Name: PVS-Studio Free
Key: FREE-FREE-FREE-FREE

Se você estiver usando o PVS-Studio para Linux, vá para a segunda etapa, não precisará de um arquivo de licença.

Passo dois

Você precisa escrever duas linhas de comentários no início de cada arquivo. Faça edições em todos os arquivos compiláveis ​​do seu projeto. Nós queremos dizer arquivos com as extensões c, cc, cpp, cs, java e outros. Você não precisa alterar os arquivos h.

Você pode adicionar comentários manualmente e usar um utilitário auxiliar para fazer isso. Você pode baixar o utilitário (junto com o código fonte) aqui: how-to-use-pvs-studio-free .

Você pode encontrar os detalhes no artigo: " Como usar o PVS-Studio gratuitamente ." Peça aos alunos que dêem uma olhada. Em particular, devemos levar em consideração que fornecemos suporte para usuários gratuitos no site StackOverflow. Mas não confunda suporte e notificações sobre bugs. Esses são os pontos que o artigo acima descreve.

Obrigado pela atenção. Em caso de dúvida, estamos prontos para fornecer assistência e consultas. Não hesite em escrever para o nosso apoio.

Links adicionais:

  1. Introduzir análise estática no processo, não basta procurar bugs com ele
  2. Formas de obter uma licença gratuita do PVS-Studio
  3. Documentação PVS-Studio

Source: https://habr.com/ru/post/pt470069/


All Articles