عنوان
ترميم خودكار برنامه به روش شباهت هاي كد
نويسنده اصلي
محسن اميريان
مقطع تحصيلي
كارشناسي ارشد
چكيده
يكي از پرهزينهترين فرآيندهاي توسعهي يك نرمافزار، اشكالزدايي خطاهاي برنامه است. مطالعات اخير نشان ميدهد فعاليتهاي مربوط به اشكالزدايي كد برنامه، به طور ميانگين، 50 درصد از هزينهي توسعهي محصول نرمافزاري را در بر ميگيرد. دستهاي از پژوهشها با عنوان «ترميم خودكار برنامه» سعي دارند روشهايي ارائه نمايند كه بتوان با استفاده از آنها وصلههايي براي كد يك برنامهي خطا دار به صورت خودكار توليد نمود. در ادامه ميبايست برنامه تعمير شده را اعتبارسنجي كرد؛ به اين معني كه برنامه بايد بهگونهاي تعمير شده باشد كه هيچگونه اثر جانبي بر روي ساير نقاط برنامه نداشته باشد.
بسياري از روشهاي موجود در حوزه تعمير خودكار برنامه از فرض افزونگي استفاده ميكنند. اين فرض ادعا ميكند كه برنامههاي بزرگ حاوي قطعه كد مورد نياز براي تعمير خود هستند. با اين حال، بسياري از روشهاي تعمير خودكار برنامه مبتني بر افزونگي، قطعه كد مدنظر جهت استفاده در محل خطا را به صورت تصادفي انتخاب ميكنند. اين امر موجب توليد وصلههاي نادرست بسيار زيادي خواهد شد. بعدها روشهايي مطرح شدند كه سعي داشته اند با به كار گيري فنون مختلف، الگوهايي از خطاهاي رايج را استخراج نموده و از آنها در ترميم برنامههاي خطادار استفاده كنند.
در اين پژوهش با استفاده از روشهاي يادگيري ژرف، مدلي ارائه خواهيم كرد كه توالي كلمات و دستورات استفاده شده در برنامههاي صحيح را آموزش ديده و به كمك آن، در محل خطاي يك برنامهي خطادار جملات صحيح توليد نمايد. روش پيشنهادي بر روي مجموعه دادهي Defect4j آزمايش شده است. نتايج به دست آمده نشان دهندهي اين است كه روش پيشنهادي اين پژوهش در توليد وصلههاي صحيح از نظر كامپايل شدن، وصلههاي به مراتب با كيفيت تري نسبت به روش پايه ارائه ميكند. در خصوص توليد وصلههايي كه توانايي گذراندن مجموعه آزمون مربوط به برنامهي خطادار را دارند، روش پيشنهادي در مواردي كه برنامهي خطادار از لحاظ حوزهي كاربردي (به عنوان مثال برنامههاي محاسباتي و يا برنامههاي سيستمي) با مجموعه دادهاي كه جهت آموزش مدل شبكهي عصبي استفاده شده است، يكسان باشد، بهبود چشم گيري را نشان ميدهد. اين موضوع به آن معنا است كه در صورت جمعآوري و استفاده از مجموعه دادههاي با كيفيت در روش پيشنهادي براي آموزش شبكهي عصبي، ميتوان به نتايج به مراتب بهتري نيز دست يافت.
شماره ركورد
193403
دانشگاه
دانشگاه علم و صنعت ايران
رشته تحصيلي
نرم افزار
استاد راهنما
دكتر سعيد پارسا