تمت ترجمة المحتوى الموجود على هذا الموقع باستخدام الذكاء الاصطناعي (AI) أو تقنية الترجمة الآلية، وقد تحتوي على أخطاء.

Skip to content
Systems

إدارة التبعية المرنة والمثلى عبر Max-SMT

Author

دونالد بينكني (نورث إيسترن)، فيديريكو كاسانو (نورث إيسترن)، أرجون غوها، جوناثان بيل (نورث إيسترن)، ماسيميليانو كولبو (مستقل)، تود غامبلين (مختبر لورانس ليفرمور الوطني)

Venue

المؤتمر الدولي IEEE/ACM لهندسة البرمجيات (ICSE)، 2023

Abstract

أصبحت أدوات إدارة الحزم مثل NPM أساسية لتطوير البرمجيات. يستضيف مستودع NPM أكثر من 2 مليون حزمة ويقدم أكثر من 43 مليار عملية تنزيل كل أسبوع. للأسف، يعاني محلل التبعيات في NPM من عدة عيوب. 1) NPM جشع وغالبًا ما يفشل في تثبيت أحدث إصدارات التبعيات؛ 2) تؤدي خوارزمية NPM إلى تكرار التبعيات وتضخم الكود، وهو أمر سيئ بشكل خاص لتطبيقات الويب التي تحتاج إلى تقليل حجم الكود؛ 3) خوارزمية إصلاح الثغرات الأمنية في NPM جشعة أيضًا، ويمكن أن تؤدي حتى إلى ظهور ثغرات أمنية جديدة؛ و 4) قدرة NPM على تكرار التبعيات يمكن أن تعطل أطر العمل ذات الحالة وتتطلب الكثير من العناية للتغلب عليها. على الرغم من أن الأدوات الحالية تحاول معالجة هذه المشاكل، إلا أنها إما هشة، أو تعتمد على تغييرات لاحقة في شجرة التبعيات، أو لا تضمن الكفاءة المثلى، أو غير قابلة للتركيب. نقدم Pacsolve، وهو إطار عمل موحد وتنفيذ لحل التبعيات يسمح بقيود قابلة للتخصيص وأهداف تحسين. نستخدم Pacsolve لبناء Maxnpm، وهو بديل كامل وجاهز للاستخدام لـ NPM، والذي يمكّن المطورين من الجمع بين أهداف متعددة عند تثبيت التبعيات. نقوم بتقييم Maxnpm باستخدام عينة كبيرة من الحزم من نظام NPM البيئي ونظهر أنه يمكنه: 1) تقليل المزيد من نقاط الضعف في التبعيات مقارنة بأداة التدقيق الخاصة بـ NPM في 33% من الحالات؛ 2) اختيار تبعيات أحدث من NPM في 14% من الحالات؛ و3) اختيار تبعيات أقل من NPM في 21% من الحالات. جميع أكوادنا وبياناتنا مفتوحة ومتاحة.