Nuestros chats de soporte y algunos otros signos indirectos mostraron que hay muchos estudiantes entre nuestros usuarios gratuitos. Esta es la razón: PVS-Studio ahora es más utilizado por los profesores en cursos relacionados con el desarrollo de software. Estamos muy satisfechos con esto, y decidimos escribir este pequeño artículo para que otros maestros lo notifiquen. Nos complace que los estudiantes conozcan la metodología del análisis de código estático en general y la herramienta PVS-Studio en particular. Nuestro equipo intentará contribuir a esta tendencia.
El desarrollo de software moderno es imposible sin un enfoque integrado para garantizar la calidad y confiabilidad del software. La razón es que el tamaño de la base de código de las aplicaciones actuales está creciendo rápidamente. Deje que los números hablen por sí mismos. Por ejemplo, tomemos sistemas operativos:
- MS DOS 1.0: 4,000 líneas de código. Una persona podría leer este código en su totalidad, resolverlo, encontrar errores.
- Kernel Linux 1.0.0: 176,000 líneas de código. Un equipo aún podría revisar a fondo el código, aunque tomaría mucho tiempo y esfuerzo.
- Kernel Linux 5.0: más de 26,000,000 líneas de código. Uno no puede aceptar un proyecto tan ilimitado.
El ejemplo del kernel de Linux muestra que el tamaño de la base de código ha crecido 150 veces en 25 años. Ahora es imposible para un programador revisar el código de toda la aplicación de una sola vez, es decir, comprenderlo, encontrar errores, mejorar las soluciones arquitectónicas. El funcionamiento interno de los programas modernos puede ser demasiado abrumador para una persona. En la actualidad, no hay más especialistas que puedan responder cualquier pregunta sobre los aspectos internos del proyecto.
La incapacidad de comprender el proyecto es solo la mitad del problema. A medida que crece el tamaño de un proyecto, también lo hace la densidad de errores. ¡Me gustaría enfatizar que
no se trata solo del aumento en el número de errores, sino también de su densidad! En un programa de cursos, puede escribir 1,000 líneas de código y evitar un solo error. Mientras que no hay forma de agregar 1000 líneas de código en una aplicación grande y evitar algunos errores. Para explicar recurriremos nuevamente a los números:
Figura 1. Densidad de error típica en proyectos de diferentes tamaños. Los datos están tomados del libro de Steve McConnell "Código completo".Por lo tanto, es imposible escribir programas confiables utilizando los mismos enfoques que hace 20-30 años. Debe utilizar un conjunto de metodologías para ayudar a controlar la creciente complejidad de un proyecto de software y garantizar la calidad de código necesaria:
- Estándares de codificación
- Revisiones de código
- Pruebas unitarias
- Prueba de regresión
- Prueba de carga
- Prueba manual
- ....
- Análisis dinámico
- Análisis estático
Las metodologías de la parte superior de la lista son bastante familiares para los programadores y han sido aplicadas con éxito por casi todos los equipos. Pero las dos últimas metodologías son aún mucho menos comunes, aunque no nuevas. Por lo tanto, ahora en el curso de la capacitación de los estudiantes, los profesores deben prestar atención adicional al estudio de las herramientas de análisis estático y dinámico.
No diré nada sobre el análisis dinámico ahora, aunque no es menos
importante que el estático.
En cuanto al análisis estático, es lo nuestro e invito a los profesores a prestar atención a nuestro producto de software PVS-Studio.
PVS-Studio es una herramienta diseñada para detectar errores y vulnerabilidades potenciales en el código fuente de los programas, escritos en C, C ++, C # y Java. Funciona en sistemas de 64 bits en Windows, Linux y macOS y puede analizar código para plataformas ARM integradas y de 32 bits.
El analizador PVS-Studio puede considerarse como un buen ejemplo de una herramienta moderna de análisis de código estático. Primero, es un gran ejemplo para mostrar las capacidades de las herramientas de análisis estático para detectar
errores y defectos de seguridad (
SAST ). En segundo lugar, puede demostrar su integración en el ciclo de desarrollo de software para permitir el control continuo del código. En su ejemplo, puede mostrar la integración con sistemas como
Jenkins ,
TeamCity ,
Azure DevOps ,
SonarQube ,
Travis CI y otros.
Para comenzar a usar PVS-Studio como parte de la capacitación, no necesita hacer nada especial.
Ofrecemos varias
opciones para la licencia gratuita de PVS-Studio, incluidas las para proyectos abiertos. Específicamente para fines educativos, en caso de que los trabajos del alumno no estén abiertos, la mejor opción es agregar el siguiente comentario al 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
Debe seguir dos pasos para comenzar a usar el analizador de código PVS-Studio de forma gratuita:
Paso unoSi está utilizando PVS-Studio como un complemento de Visual Studio, ingrese la siguiente clave de licencia:
Name: PVS-Studio Free
Key: FREE-FREE-FREE-FREE
Si está utilizando PVS-Studio para Linux, vaya al segundo paso, no necesitará un archivo de licencia.
Paso dosTienes que escribir dos líneas de comentarios al comienzo de cada archivo. Realice ediciones en todos los archivos compilables de su proyecto. Nos referimos a archivos con las extensiones c, cc, cpp, cs, java y otros. No tiene que cambiar los archivos h.
Puede agregar comentarios manualmente y usar una utilidad auxiliar para hacerlo. Puede descargar la utilidad (junto con el código fuente) aquí:
how-to-use-pvs-studio-free .
Puede encontrar los detalles en el artículo: "
Cómo usar PVS-Studio de forma gratuita ". Pídales a los estudiantes que lo revisen. En particular, debemos tener en cuenta que brindamos soporte para usuarios gratuitos en el sitio web de StackOverflow. Pero no confunda el soporte y las notificaciones sobre errores. Estos son los puntos que describe el artículo anterior.
Gracias por su atencion En caso de cualquier pregunta, estamos listos para brindar asistencia y consultas. No dudes en
escribir a nuestro soporte.
Enlaces adicionales:- Introduzca el análisis estático en el proceso, no solo busque errores con él
- Formas de obtener una licencia gratuita de PVS-Studio
- Documentación de PVS-Studio