المستخلص: |
من الخطوات الرئيسة في إنتاج البرمجيات هي فحصها، حيث هدفت هذه الدراسة إلى إيجاد الأخطاء الموجودة في البرامج المكتوبة بإحدى لغات البرمجة أثناء تنفيذها، نتائج هذه العملية يمكن استخدامها لإيجاد وتصحيح أخطاء البرامج. للحفاظ على حياة البرمجية، فإنه من الضروري التنبؤ بالأخطاء التي قد تحدث خلال تنفيذ البرنامج، مما يؤدي إلى تحسين مرحلة الفحص وجودة البرنامج. تعلم الآلة هي احدى تطبيقات الذكاء الاصطناعي الفعالة لتوقع الأخطاء المستقبلية عن طريق بناء نموذج اعتمادا على تدريب البيانات وفحص النظام. في هذه الرسالة، استعرضنا خوارزميات تعلم الالة المستخدمة في التنبؤ بالأخطاء، وقيمنا أداء خمسة من هذه الخوارزميات باستخدام مجموعة من البيانات المخصصة لهذا الغرض وهذه الخوارزميات تضمنت SVM, ANN, NB, DT and KNN. حيث تمت مقارنة أداء الخوارزميات باستخدام معاملات مختلفة. أظهرت النتائج قدرة خوارزميات تعلم الالة على تصنيف البيانات إلى مصابة/ غير مصابة، لذلك من المفضل استخدام هذه الخوارزميات على الطرق التقليدية الإحصائية، قمنا بإجراء تجارب عديدة لتحسين كفاءة التنبؤ بالأخطاء، ولذلك قمنا بتقسيم النتائج إلى أربعة أقسام هي: مقارنة خوارزميات التصنيف المختلفة لفحص أداء أنظمة التنبؤ، وقياس تأثير الخطوة القبلية (PCA) لتصفية الميزات، وتحسين أداء خوارزميات التصنيف من خلال تعديل المعاملات الافتراضية للمصنف. وأخيرا، اقترحت هذه الدراسة نظاما هجينا باستخدام تقنيتين هما Voting وBagging التي تعتمد على استخدام أكثر من خوارزمية تصنيف واحدة. من خلال النتائج التي تم تقديمها في هذه الدراسة، خلصنا إلى أن خوارزميات تعلم الالة يمكن استخدامها للتنبؤ بعيوب البرمجيات، مما يساعد المطورين في تجنب المشاكل في المراحل المبكرة. وأظهرت النتائج أن استخدام PCA لم يحدث تأثيرا ملحوظا على أداء أنظمة التنبؤ، في حين أن تعديل المعاملات الافتراضية تؤثر إيجابيا على نتائج التصنيف، وخاصة مع ANN. تم الحصول على النتائج المميزة لهذه الدراسة من خلال تطبيق الطرق الهجينة، حيث حقق Bagging دقة (95.1%) مع مجموعة بيانات Mozilla وال Votingحقق (93.79%) دقة مع مجموعة البيانات kc1. ومع ذلك، يظل تطبيق خوارزميات الذكاء الاصطناعي في مجال التنبؤ بعيوب البرمجيات محدودا ويحتاج إلى مزيد من البحث للحصول على نتائج مرضية. وأخيرا، اقترحنا عدة توصيات للعمل عليها في المستقبل اعتمادا على نتائج الدراسة الحالية. وأخيرا اقترحنا عدة توصيات للعمل عليها في المستقبل اعتمادا على نتائج الدراسة الحالية ومنها التحسين من نوعية النماذج المستخدمة للتنبؤ في حدوث الأخطاء من خلال تطبيق نوع آخر من أنظمة التعلم وزيادة حجم مجموعات البيانات التي تحتوي على عينات تساعد على التنبؤ للحصول على نتائج أكثر دقة واستخدام أنواع أخرى من الخوارزميات عند بناء أكثر من خوارزمية تصنيف واحدة وتطبيقها على المجالات الصناعية مستقبلا.
|