Dengan komunikasi dalam dukungan dan beberapa tanda tidak langsung lainnya, kami perhatikan bahwa di antara pengguna gratis kami ada banyak siswa. Alasan: Penganalisa PVS-Studio mulai digunakan oleh beberapa guru dalam disiplin ilmu yang terkait dengan pengembangan perangkat lunak. Ini sangat menyenangkan bagi kami, dan kami memutuskan untuk menulis catatan kecil ini untuk menarik perhatian guru lain. Kami senang bahwa siswa diperkenalkan dengan metodologi analisis kode statis secara umum dan alat PVS-Studio pada khususnya. Tim kami akan mencoba berkontribusi pada perkembangan tren ini.
Pengembangan perangkat lunak modern tidak mungkin dilakukan tanpa pendekatan terpadu untuk memastikan kualitas dan keandalan perangkat lunak. Alasannya adalah bahwa ukuran basis kode aplikasi modern berkembang pesat. Saya akan menjelaskan ini pada angka. Ambil, misalnya, sistem operasi:
- MS DOS 1.0: 4.000 baris kode. Satu orang dapat membaca seluruh kode, mencari tahu, menemukan kesalahan.
- Kernel Linux 1.0.0: 176.000 baris kode. Tim masih memiliki kesempatan untuk melakukan tinjauan terperinci terhadap kode, meskipun akan membutuhkan banyak waktu dan upaya.
- Kernel Linux 5.0: lebih dari 26.000.000 baris kode. Tidak mungkin mewujudkan proyek.
Dengan menggunakan kernel Linux sebagai contoh, Anda dapat melihat bahwa ukuran basis kode telah tumbuh 150 kali selama 25 tahun. Sekarang tidak mungkin bagi seorang programmer untuk hanya duduk dan meninjau kode seluruh aplikasi, memahaminya, menemukan kesalahan, dan meningkatkan solusi arsitektur. Perangkat program modern sama sekali tidak sesuai di kepala satu orang, dan tidak ada lagi spesialis yang dapat menjawab pertanyaan mengenai desain proyek.
Ketidakmampuan untuk mewujudkan proyek hanya setengah dari masalah. Ketika ukuran proyek bertambah, demikian juga kepadatan kesalahan. Saya menekankan:
ini bukan hanya tentang peningkatan jumlah kesalahan, tetapi tentang kepadatannya ! Dalam sebuah program yang ditulis sebagai bagian dari makalah, Anda dapat menulis 1000 baris kode dan tidak membuat kesalahan tunggal. Dan itu tidak realistis untuk menambahkan 1000 baris kode ke aplikasi besar dan tidak membuat beberapa kesalahan. Untuk klarifikasi, kami kembali menggunakan nomor:
Gambar 1. Kepadatan kesalahan tipikal dalam proyek berbagai ukuran. Data diambil dari buku Steve McConnell, Perfect Code.Jadi, tidak mungkin untuk menulis program yang andal menggunakan pendekatan yang sama seperti 20-30 tahun yang lalu. Penting untuk menggunakan serangkaian metodologi yang membantu mengendalikan pertumbuhan kompleksitas proyek perangkat lunak dan memastikan kualitas kode yang diperlukan:
- Standar pengkodean
- Ulasan Kode
- Tes unit
- Pengujian regresi
- Uji beban
- Pengujian manual
- ....
- Analisis dinamis
- Analisis statis
Metodologi dari daftar paling atas cukup familiar bagi para programmer dan telah lama berhasil diterapkan oleh hampir semua tim. Tetapi dua metodologi terakhir, meskipun bukan baru, jauh lebih jarang terjadi. Oleh karena itu, sekarang selama persiapan siswa perlu membayar perhatian ekstra untuk mempelajari alat analisis statis dan dinamis.
Saya tidak akan berbicara tentang analisis dinamis sekarang, meskipun tidak kalah
pentingnya daripada statis.
Tetapi analisis statis adalah elemen kami, dan saya mengundang guru untuk memperhatikan produk perangkat lunak kami PVS-Studio.
PVS-Studio adalah alat untuk mendeteksi kesalahan dan kerentanan potensial dalam kode sumber program yang ditulis dalam C, C ++, C # dan Java. Ini bekerja pada sistem 64-bit pada Windows, Linux dan macOS dan dapat menganalisis kode yang dirancang untuk platform ARM 32-bit, 64-bit dan tertanam.
Alat analisis PVS-Studio dapat dianggap sebagai contoh alat modern untuk analisis kode statis. Pertama, baik untuk menunjukkan kemampuan alat analisis statis dalam mendeteksi
kesalahan dan cacat keamanan (
SAST ) menggunakan contohnya. Kedua, Anda dapat menunjukkan integrasinya ke dalam siklus pengembangan perangkat lunak sehingga kontrol kode kontinu. Dengan menggunakan contohnya, Anda dapat menunjukkan kemungkinan integrasi dengan sistem seperti
Jenkins ,
TeamCity ,
Azure DevOps ,
SonarQube ,
Travis CI , dll.
Untuk mulai menggunakan PVS-Studio sebagai bagian dari pelatihan, tidak perlu melakukan sesuatu yang khusus atau berkoordinasi.
Kami menyediakan beberapa
opsi untuk lisensi PVS-Studio gratis, termasuk untuk proyek open source. Khusus untuk tujuan pendidikan, ketika pekerjaan siswa tidak terbuka, opsi terbaik adalah menambahkan komentar berikut ke kode:
// 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
Untuk mulai menggunakan analisa statis PVS-Studio secara gratis, Anda harus menyelesaikan dua langkah berikut:
Langkah pertamaJika Anda menggunakan PVS-Studio sebagai plug-in untuk Visual Studio atau menggunakan utilitas Standalone, masukkan kunci lisensi berikut:
Name: PVS-Studio Free
Key: FREE-FREE-FREE-FREE
Jika Anda menggunakan PVS-Studio untuk Linux, maka langsung ke langkah kedua, Anda tidak perlu file dengan lisensi.
Langkah keduaAnda harus memasukkan dua baris dengan komentar di awal setiap file. Buat koreksi untuk semua file yang dikompilasi dari proyek Anda. Ini merujuk ke file dengan ekstensi c, cc, cpp, cs, java dan sebagainya. Header h-file tidak perlu diubah.
Anda dapat menambahkan komentar secara manual dan menggunakan utilitas bantu untuk ini. Anda dapat mengunduh utilitas (bersama dengan kode sumber) di sini:
cara menggunakan pvs-studio-gratis .
Semua ini dijelaskan secara lebih rinci dalam artikel "
Cara menggunakan PVS-Studio gratis ." Mintalah siswa untuk membiasakan diri dengannya. Secara khusus, harus diingat bahwa kami menyediakan dukungan untuk pengguna gratis melalui situs web StackOverflow. Tetapi Anda tidak harus mengacaukan pemberitahuan dukungan dan bug. Hanya tentang momen seperti itu dan dijelaskan dalam artikel.
Terima kasih atas perhatian anda Jika ada pertanyaan, kami siap memberikan bantuan dan saran. Jangan ragu untuk
menghubungi kami dalam dukungan.
Tautan tambahan:- Ivan Ponomarev. Laporan di konferensi Heisenbug 2019 Moskow: Analisis Kode Statis Berkelanjutan .
- Sergey Khrenov, Philip Handelyants. Kelas master di konferensi Saint HighLoad ++ 2019: Penganalisis kode PVS-Studio .
- Andrey Karpov. Opsi lisensi gratis untuk PVS-Studio .
- PVS-Studio. Dokumentasi

Jika Anda ingin berbagi artikel ini dengan audiens yang berbahasa Inggris, silakan gunakan tautan ke terjemahan: Andrey Karpov.
Sebagai catatan profesor: gunakan PVS-Studio untuk membuat siswa terbiasa dengan alat analisis kode .