إدارة التبعية المرنة والمثلى عبر 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% من الحالات. جميع أكوادنا وبياناتنا مفتوحة ومتاحة.
