من خلال التواصل في الدعم وبعض العلامات غير المباشرة الأخرى ، لاحظنا أنه من بين مستخدمينا المجانيين كان هناك العديد من الطلاب. السبب: بدأ محلل PVS-Studio في استخدامه من قبل بعض المعلمين في التخصصات المتعلقة بتطوير البرمجيات. هذا ممتع للغاية بالنسبة لنا ، وقررنا كتابة هذه المذكرة الصغيرة لجذب انتباه المعلمين الآخرين. يسرنا أن يتم تعريف الطلاب بمنهجية تحليل الكود الثابت بشكل عام وأداة PVS-Studio بشكل خاص. سيحاول فريقنا المساهمة في تطوير هذا الاتجاه.
لا يمكن تطوير البرامج الحديثة دون اتباع نهج متكامل لضمان جودة وموثوقية البرامج. والسبب هو أن حجم قاعدة الكود للتطبيقات الحديثة ينمو بسرعة. ساوضح هذا على الأرقام. خذ على سبيل المثال ، أنظمة التشغيل:
- MS DOS 1.0: 4000 سطر من التعليمات البرمجية. يمكن لشخص واحد قراءة الكود بالكامل ، ومعرفة ذلك ، والعثور على الأخطاء.
- Linux kernel 1.0.0: 176،000 سطر من التعليمات البرمجية. لا يزال لدى الفريق الفرصة لإجراء مراجعة مفصلة للرمز ، على الرغم من أن الأمر سيستغرق الكثير من الوقت والجهد.
- Linux kernel 5.0: أكثر من 26،000،000 سطر من التعليمات البرمجية. من المستحيل تحقيق المشروع.
باستخدام Linux kernel كمثال ، يمكنك أن ترى أن حجم قاعدة الكود زاد 150 مرة على مدى 25 عامًا. الآن أصبح من المستحيل على مبرمج الجلوس والاستعراض لمراجعة رمز التطبيق بالكامل وفهمه والعثور على الأخطاء وتحسين الحلول المعمارية. جهاز البرامج الحديثة ببساطة لا يناسب رأس شخص واحد ، ولا يوجد المزيد من المتخصصين الذين يمكنهم الإجابة على أي سؤال يتعلق بتصميم المشروع.
عدم القدرة على تحقيق المشروع هو نصف المشكلة فقط. مع نمو حجم المشروع ، تزداد كثافة الخطأ. أؤكد:
هذا ليس مجرد زيادة في عدد الأخطاء ، ولكن عن كثافتها ! في برنامج مكتوب كجزء من ورقة مصطلح ، يمكنك كتابة 1000 سطر من التعليمات البرمجية وعدم ارتكاب خطأ واحد. وليس من الواقعي إضافة 1000 سطر من التعليمات البرمجية إلى تطبيق كبير ومنع حدوث بعض الأخطاء. للتوضيح ، نلجأ مرة أخرى إلى الأرقام:
الشكل 1. كثافة خطأ نموذجي في مشاريع مختلفة الأحجام. البيانات مأخوذة من كتاب ستيف ماكونيل ، Perfect Code.لذلك ، من المستحيل كتابة برامج موثوقة باستخدام نفس النهج التي اتبعت منذ 20 إلى 30 عامًا. من الضروري استخدام مجموعة من المنهجيات التي تساعد على التحكم في نمو تعقيد مشروع البرنامج وضمان جودة الكود الضروري:
- معايير الترميز
- كود الاستعراضات
- اختبارات الوحدة
- اختبار الانحدار
- اختبار الحمل
- الاختبار اليدوي
- ....
- التحليل الديناميكي
- تحليل ثابت
تعتبر منهجيات الجزء العلوي من القائمة مألوفة تمامًا للمبرمجين وقد طبقتها جميع الفرق تقريبًا بنجاح. لكن المنهجيتين الأخيرين ، رغم أنهما ليسا جديدتين ، أقل شيوعًا بكثير. لذلك ، الآن أثناء إعداد الطلاب ، يجدر إيلاء اهتمام إضافي لدراسة أدوات التحليل الثابت والديناميكي.
لن أتحدث الآن عن التحليل الديناميكي ، على الرغم من أنه لا يقل
أهمية عن التحليل الثابت.
لكن التحليل الثابت هو عنصرنا ، وأدعو المعلمين إلى الاهتمام بمنتجنا PVS-Studio.
PVS-Studio هي أداة للكشف عن الأخطاء ونقاط الضعف المحتملة في الكود المصدري للبرامج المكتوبة بلغات C و C ++ و C # و Java. إنه يعمل على أنظمة 64 بت على Windows و Linux و macOS ويمكنه تحليل الكود المخصص لأنظمة ARM 32 بت و 64 بت والمضمنة.
يمكن اعتبار محلل PVS-Studio مثالاً على أداة حديثة لتحليل الكود الثابت. أولاً ، من الجيد إظهار قدرات أدوات التحليل الثابتة في اكتشاف
الأخطاء والعيوب الأمنية (
SAST ) باستخدام مثاله. ثانياً ، يمكنك إثبات تكاملها في دورة تطوير البرمجيات بحيث يكون التحكم في الشفرة مستمرًا. باستخدام مثاله ، يمكنك إظهار إمكانية التكامل مع أنظمة مثل
Jenkins و
TeamCity و
Azure DevOps و
SonarQube و
Travis CI ، إلخ.
من أجل البدء في استخدام PVS-Studio كجزء من التدريب ، ليست هناك حاجة لفعل أي شيء خاص أو تنسيق.
نحن نقدم العديد من
الخيارات للترخيص المجاني لـ PVS-Studio ، بما في ذلك المشاريع المفتوحة المصدر. على وجه التحديد لأغراض تعليمية ، عندما يكون عمل الطالب غير مفتوح ، فإن الخيار الأفضل هو إضافة التعليق التالي إلى الكود:
// 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
لبدء استخدام محلل ثابت PVS-Studio مجانًا ، يجب عليك إكمال الخطوتين التاليتين:
الخطوة الأولىإذا كنت تستخدم PVS-Studio كمكون إضافي لبرنامج Visual Studio أو تستخدم الأداة المساعدة المستقلة ، فأدخل مفتاح الترخيص التالي:
Name: PVS-Studio Free
Key: FREE-FREE-FREE-FREE
إذا كنت تستخدم PVS-Studio لنظام التشغيل Linux ، فانتقل مباشرةً إلى الخطوة الثانية ، فلن تحتاج إلى ملف برخصة.
الخطوة الثانيةيجب إدخال سطرين مع تعليق في بداية كل ملف. قم بإجراء تصحيحات على جميع الملفات المترجمة لمشروعك. يشير هذا إلى الملفات ذات الامتدادات c و cc و cpp و cs و java وما إلى ذلك. رأس h الملفات لا تحتاج إلى تغيير.
يمكنك إضافة التعليقات يدويًا واستخدام الأداة المساعدة لهذا الغرض. يمكنك تنزيل الأداة المساعدة (إلى جانب الكود المصدري) هنا:
how-to-to-use-pvs-studio-free .
تم توضيح كل ذلك بمزيد من التفصيل في المقالة "
كيفية استخدام PVS-Studio مجانًا ." اطلب من الطلاب التعرف على ذلك. على وجه الخصوص ، ينبغي أن يؤخذ في الاعتبار أننا نقدم الدعم للمستخدمين مجانًا من خلال موقع StackOverflow. ولكن يجب ألا تخلط بين الدعم والإعلامات الخطأ. فقط عن مثل هذه اللحظات ويرد وصفها في المقال.
شكرا لاهتمامكم في حال وجود أي أسئلة ، نحن على استعداد لتقديم المساعدة والمشورة. لا تتردد في
الاتصال بنا في الدعم.
روابط إضافية:- إيفان بونوماريف. تقرير في مؤتمر Heisenbug 2019 في موسكو: تحليل الكود الثابت المستمر .
- سيرجي خرينوف ، فيليب هاندليانتس. درجة الماجستير في مؤتمر Saint HighLoad ++ 2019: محلل كود PVS-Studio .
- أندريه كاربوف. خيارات الترخيص المجانية من PVS-Studio .
- PVS استوديو. وثائق .

إذا كنت ترغب في مشاركة هذا المقال مع جمهور يتحدث الإنجليزية ، فالرجاء استخدام الرابط الخاص بالترجمة: Andrey Karpov.
لملاحظة الأساتذة: استخدم PVS-Studio لتعريف الطلاب بأدوات تحليل الشفرة .