فا   |   En
Login

توصیه‌گر راه‌حل استثنائات در محیط یکپارچه ایجاد نرم‌افزار

Author: وحید امین‌تبار و عباس حیدرنوری

در فرآیند ایجاد نرم‌افزار، استثناءها اجتناب‌ناپذیر هستند. ولیکن، استثناءها در بسیاری از موارد توسط برنامه‌نویسان دیگری نیز تجربه ‌شده‌اند و به‌ احتمال‌ زیاد در فضای مجازی راه‌حل آن‌ها موجود است. با رخ دادن یک استثناء در زمان اجرا، معمولاً یک پیغام خطا و موارد بالای پشته فراخوانی ، نمایش داده می‌شوند. با گسترش استفاده از سایت‌های پرسش و پاسخ برنامه‌نویسی مانند Stack Overflow و یا سایت‌های حاوی کدهای متن‌باز مانند Source Forge، برنامه‌نویسان اغلب برای پیدا کردن راه‌حل یک استثناء، با استفاده از مرورگر و موتورهای جست‌وجو به دنبال مشکلات و راه‌حل‌های مشابه می‌گردند. در اینجا شکاف بین محیط ایجاد نرم‌افزار و مرورگر وجود دارد. همچنین جست‌وجوی دستی، تمام اطلاعات کد برنامه‌نویس را دارا نمی‌باشد و کاری زمان‌بر است. در این مقاله قصد آن داریم تا Exception Tracer را معرفی نماییم. در این روش با استفاده از پشته فراخوانی مربوط به استثناء و کد برنامه‌نویس ابتدا در پروژه‌های Source Forge فایل‌های مرتبط بازیابی می‌شوند و در ادامه با ساخت گراف GROUM از کد برنامه‌نویس و فایل‌های مرتبط، قطعه کدها رتبه‌بندی می‌شوند و بعد از تغییر نام متغیرهای آن‌ها به زمینه برنامه‌نویس، قطعه کدهایی که می‌توانند حاوی راه حل استثناء باشند، به او پیشنهاد داده می‌شوند. GROUM گرافی است که در آن توالی فراخوانی متدها و وابستگی داده‌ای بین آن‌ها را شامل می‌شود و نتیجه بهتری نسبت به جست‌وجوی متنی و یا درخت نحو می‌دهد. این روش،علاوه بر قطعه کد، مباحثه‌های مرتبط را نیز از Stack Overflow استخراج می‌کند و به برنامه‌نویس نمایش می‌دهد. روش پیشنهادی این مقاله، به صورت یک افزونه Eclipse پیاده‌سازی شده است. دقت این روش با استفاده از تعدادی از نمونه کدهای مربوط به کتابخانه‌های Apache جاوا اندازه‌گیری شده است. در ارزیابی‌های انجام شده، در 75 درصد مواقع، راه‌حل استثناء رخ‌داده در 5 نتیجه ابتدایی وجود دارد. علاوه بر محاسبه دقت، میزان صرفه‌جویی زمانی نسبت به استفاده ساده از مرورگر نیز از طریق مطالعه کاربران سنجیده شده است. طبق این ارزیابی، میزان صرفه‌جویی زمانی، در حدود 38 درصد است.

فایل مقاله