• شماره ركورد
    23646
  • پديد آورنده

    مريم عالي زاده اروانق

  • عنوان
    ترميم خطا در سيستم هاي نرم افزاري با استفاده از الگوها
  • مقطع تحصيلي
    كاشناسي ارشد
  • رشته تحصيلي
    مهندسي كامپيوتر - نرم افزار
  • سال تحصيل
    1399-1400
  • تاريخ دفاع
    99/11/28
  • استاد راهنما
    دكتر سعيد پارسا
  • دانشكده
    كامپيوتر
  • چكيده
    يكي از پرهزينه‌ترين فرايندهاي توسعه نرم‌افزار، اشكال‌زدايي خطاهاي برنامه است. فنون ترميم خودكار نرم‌افزار به‌منظور تصحيح خطاها و آسيب‌پذيري‌هاي نرم‌افزار نياز به ارايه روش‌هايي دارند كه بتوانند با كمك آن‌ها وصله‌هايي را به‌طور خودكار براي برنامه خطادار توليد نمايند. از سويي ديگر رويكردهاي ترميم خودكار برنامه‌ها اغلب به‌عنوان يك مسئله جستجو درنظر گرفته مي‌شود كه فضاي جستجو شامل تمام وصله‌هاي محتمل است و هدف شناسايي وصله‌هاي صحيح از اين فضاي جستجو است. مسئله چالش‌برانگيزي كه وجود دارد بزرگ بودن فضاي جستجو است، به‌عبارتي‌ديگر فضاي جستجو شامل حجم زيادي از وصله‌هاي موجه اما نادرست است. افزون بر اين، بررسي‌ها نشان مي‌دهد كه بسياري از وصله‌هاي توليد شده كه از شباهت كد استفاده مي‌كنند به دليل آن‌كه كد منبع، احتمال تغيير مربوط به تصحيح خطا را مشخص نمي‌كند ممكن است وصله‌هاي نادرست و نامفهومي توليد نمايد. علاوه براين روش‌هاي مبتني بر الگو نيز به‌دليل محدود بودن تعداد الگوها نمي‌توانند تمام حالت‌هاي مختلف خطا را پوشش دهند. با اين‌حال الگوها و شباهت كد اطلاعات مكملي فراهم مي‌كنند. درواقع الگوها باعث تخمين احتمال وصله‌ها و محدودسازي فضاي جستجو مي‌شوند و شباهت كد نيز به درك ساختار داخلي قطعه كدي بايد ترميم شود كمك مي‌كند تا درنهايت وصله‌هايي كه مناسب با ساختار كد هستند انتخاب شود. در اين پژوهش از تركيب دو منبع داده‌اي الگوها و شباهت كد براي پيش‌برد بهتر ترميم خودكار نرم‌افزار استفاده شده ‌است. رويكرد موردنظر ما يك فضاي جستجو انتزاعي را از وصله‌هاي موجود كاوش مي‌كند و با ديفرانسيل قطعه كدهاي مشابه يك فضاي جستجوي واقعي نيز به‌دست مي‌آورد. سپس اشتراك اين دو فضا، مورد جستجو قرار مي‌گيرد. چارچوب پياده‌سازي ‌شده بر روي مجموعه داده Defects4j ارزيابي شده ‌است. نتايج اين ارزيابي نشان مي‌دهد كه روش پيشنهادي اين پژوهش در توليد وصله‌هاي صحيح، به‌مراتب وصله‌هاي با كيفيت‌تر و دقيق‌تري توليد مي‌كند. چارچوب ارايه‌شده توانسته ‌است 33 خطا را با موفقيت تصحيح نمايد و هم‌جنين توانسته است چندين وصله توليد كند كه توسط روش‌‌هاي ديگر ترميم توليد نشده بود. در مجموع روش پيشنهادي 22 وصله نادرست نيز توليد كرده است و در كل دقتي برابر با 60% دارد كه در مقايسه با بسياري از روش‌ها از دقت بالاتري برخوردار است. اين موضوع بدان معناست كه درصورت جمع‌آوري داده‌ها و اطلاعات ارزشمندتر مي‌توان اكتشافات بهتري براي انتخاب و فيلترسازي زودهنگام وصله‌ها به‌كاربرد. واژه‌هاي كليدي:ترميم خودكار برنامه – الگوها – شباهت كد .
  • تاريخ ورود اطلاعات
    1400/03/05
  • عنوان به انگليسي
    Error Repair in Software Systems using Patterns
  • تاريخ بهره برداري
    2/17/2022 12:00:00 AM
  • دانشجوي وارد كننده اطلاعات

    مريم عالي زاده اروانق

  • چكيده به لاتين
    One of the most costly processes of developing a software program is the debugging of software failures. In order to fix software errors and vulnerabilities, Automatic Software Repair techniques need to give methods that can be used to automatically generate patches for the code faulty program automatically. Automatic program repairs are often treated as a search problem where the search space consists of all the possible patches, and the goal is to find the correct patch in the space. The problem is challenging because the space is usually huge and has a lot of plausible (patches that pass all the tests) but incorrect patches. In addition, recent studies show that many patches produced that use code similarity may produce incorrect and incomprehensible patches because the source code does not specify the possibility of error correction. In addition, pattern-based approaches cannot cover all different error situations because of the limited number of patterns. However, patterns and similar code provide complementary information. In fact, the patterns estimate the probability of patches and limit the search space, and the similarity of the code helps to understand the internal structure of the code snippet that needs to be repaired to finally select the patches that fit the code structure. In this research, a combination of two data sources, patterns and code similarity has been used to better promote software automatic repair. Our approach mines an abstract search space from existing patches and obtains a concrete search space by differencing with similar code snippets. Then we search within the intersection of the two search spaces. The implemented framework has been tested on the Defect4j data set. The results of this evaluation show that the proposed method of this research in producing correct patches produces high quality and more accurate patches. The proposed framework has been able to successfully fix 33 errors and has also been able to produce several patches that were not produced by other repair methods. In total, the proposed method has produced 22 incorrect patches and has precision of 60%, which is more than many other methods.This means that richer data and information can be used to make better discoveries to select and filter patches early. Keywords: Automatic Software Repair, patterns, code similarity
  • كليدواژه هاي فارسي
    ترميم خودكار برنامه , الگوها , شباهت كد
  • كليدواژه هاي لاتين
    Automatic Software Repair , patterns , code similarity