لملاحظة الأساتذة: استخدم PVS-Studio لتعريف الطلاب بأدوات تحليل الشفرة

الصورة 1

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

تطوير البرامج الحديثة أمر مستحيل دون اتباع نهج متكامل لضمان جودة البرمجيات وموثوقيتها. والسبب هو أن حجم قاعدة الشفرة لتطبيقات اليوم ينمو بسرعة. دع الأرقام تتحدث عن نفسها. على سبيل المثال ، لنأخذ أنظمة التشغيل:

  • MS DOS 1.0: 4000 سطر من التعليمات البرمجية. يمكن لشخص واحد قراءة هذا الرمز بالكامل ، وتصنيفه ، والعثور على الأخطاء.
  • Linux 1.0.0 kernel: 176،000 سطر من التعليمات البرمجية. لا يزال بإمكان الفريق مراجعة الرمز بالكامل ، رغم أن الأمر سيستغرق الكثير من الوقت والجهد.
  • Linux 5.0 kernel: أكثر من 26،000،000 سطر من التعليمات البرمجية. لا يمكن للمرء أن يقبل مثل هذا المشروع الذي لا حدود له.

يوضح مثال Linux kernel أن حجم قاعدة الكود زاد 150 مرة في 25 عامًا. الآن أصبح من المستحيل على مبرمج مراجعة شفرة التطبيق بالكامل في جلسة واحدة ، أي لفهمه ، والعثور على الأخطاء ، وتحسين الحلول المعمارية. قد تكون الأعمال الداخلية للبرامج الحديثة ساحقة للغاية بالنسبة لشخص واحد. في الوقت الحالي ، لا يوجد المزيد من المتخصصين الذين يمكنهم الإجابة على أي سؤال يتعلق بالداخلية للمشروع.

عدم القدرة على فهم المشروع هو نصف المشكلة فقط. مع نمو حجم المشروع ، تزداد كثافة الخطأ. أود التأكيد على أن الأمر لا يتعلق فقط بزيادة عدد الأخطاء ، بل يتعلق بكثافتها! في برنامج الدورات الدراسية ، يمكنك كتابة 1000 سطر من التعليمات البرمجية وتجنب خطأ واحد. بينما لا توجد طريقة يمكنك إضافة 1000 سطر من التعليمات البرمجية في تطبيق كبير وتجنب بعض الأخطاء. لتوضيح أننا سوف نلجأ مرة أخرى إلى الأرقام:

الشكل 1. كثافة خطأ نموذجي في مشاريع مختلفة الأحجام. البيانات مأخوذة من كتاب Steve McConnell & quot؛ Code Complete & quot ؛.

الشكل 1. كثافة خطأ نموذجي في مشاريع مختلفة الأحجام. البيانات مأخوذة من كتاب ستيف ماكونيل "اكتمل الكود".

لذلك ، من المستحيل كتابة برامج موثوقة باستخدام نفس النهج التي اتبعت منذ 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. ولكن لا تخلط بين الدعم والإشعارات حول الأخطاء. هذه هي النقاط التي تصفها المقالة أعلاه.

شكرا لاهتمامكم في حال وجود أي أسئلة ، نحن على استعداد لتقديم المساعدة والمشاورات. لا تتردد في الكتابة إلى دعمنا.

روابط إضافية:

  1. قدّم تحليلًا ثابتًا في هذه العملية ، لا تبحث فقط عن الأخطاء باستخدامه
  2. طرق للحصول على رخصة PVS-Studio مجانية
  3. PVS-Studio الوثائق

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


All Articles