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

    علي مجيدزاده

  • عنوان
    ارائه روشي به منظور بهبود ردپذيري نيازمندي‌ها در نرم‌افزار با استفاده از مدل زبان
  • مقطع تحصيلي
    كارشناسي ارشد
  • رشته تحصيلي
    مهندسي كامپيوتر
  • سال تحصيل
    1399
  • تاريخ دفاع
    1401/10/24
  • استاد راهنما
    دكتر مهرداد آشتياني
  • دانشكده
    مهندسي كامپيوتر
  • چكيده
    ردپذيري نرم‌افزار، به توانايي پيدا كردن پيوندهاي بين فرآورده‌هاي ساخته شده در توسعه نرم‌افزار مثل كد، نيازمندي و آزمون گفته مي‌شود. ترميم پيوندهاي ردپذيري نرم‌افزار به بهبود كيفيت و فهم نرم‌افزار كمك مي‌كند. توسعه دهندگان معمولا به نگه‌داري پيوندهاي ردپذيري اولويت نمي‌دهند، بنابراين، ترميم خودكار پيوندهاي ردپذيري روشي موثر براي بهبود كيفيت نرم‌افزار است. در پژوهش‌هاي انجام شده در اين حوزه سعي شده است كه ترميم پيوندهاي ردپذيري با دقت و يادآوري بالا انجام شود. پژوهش‌هاي ترميم پيوندهاي ردپذيري روي پيوندهاي نيازمندي به كد و آزمون به كد تمركز دارند. در اين روش‌ها از ابزار مختلف بازيابي اطلاعات و يادگيري ماشين و همچنين به علت كد بودن موارد آزمون، از اطلاعات استخراج شده از كد در آن‌ها استفاده شده است. بدست آوردن پيوندهاي ردپذيري نيازمندي براي فهم برنامه، تحليل تاثير و مديريت توسعه نرم‌افزار ضروري بوده و پيوندهاي ردپذيري آزمون به بهبود ايمني تغييرات سيستم كمك مي‌كند. در اين پژوهش، سعي شده براي ترميم پيوندهاي ردپذيري نيازمندي از مدل زبان بهره‌بري حداكثري شود. همچنين مجموعه داده از نوع موضوع به تابع كه مي‌تواند در ردپذيري نيازمندي به كد كاربرد داشته باشد، استخراج شده و براي بهبود عملكرد مدل با آن تلاش شده است. براي استفاده موثرتر از مدل زبان، افزايش داده كد و آموزش سه مرحله‌اي با استفاده از داده‌هاي استخراج شده ارائه شده‌اند. افزايش داده در داده‌هاي كد براي پيش‌بيني ردپذيري، به علت دشواري آن كاري نوين بوده كه در طرح پيشنهادي با سه روش كلي تغيير نام متغير، جابه‌جايي عملوندها و جابه‌جايي جملات انجام شده است. در بين اين سه روش، تغيير نام متغير بيشترين توليد داده را داشته و جابه‌جايي جملات كمترين تعداد، در حالي كه جابه‌جايي جملات پيچيده‌ترين روش ارائه شده در بين اين سه روش بوده كه علت كم بودن توليد داده آن، نبود اطلاعات معنايي و محدود بودن به تابع بدون اطلاعات از بيرون تابع است. در آموزش سه مرحله‌اي، به جاي يك مرحله ميان‌آموزش و يك تنظيم دقيق، مدل زبان پيش‌آموزش شده، در دو مرحله ميان‌آموزش كه مرحله دوم آن مرتبط‌تر به كاربرد هدف بوده آموزش مي‌شود و سپس براي كاربرد براي يك پروژه نرم‌افزاري يك مرحله تنظيم دقيق مي‌شود. طبق نتايج ارزيابي، افزايش داده در انواع پيوند مستندات به تابع و موضوع به تصديق عملكرد مدل را به صورت معنادار بهبود داده، و آموزش سه مرحله‌اي بهبود معناداري براي داده‌هاي موضوع به تابع دارد. با استفاده از روش پيشنهادي، براي داده‌هاي مستندات به كد CodeSearchNet دقت 0.722 و يادآوري 0.601، براي داده‌هاي موضوع به تصديق بين 14 پروژه نرم‌افزاري به طور متوسط دقت 0.706 و يادآوري 0.725 و براي داده‌هاي موضوع به تابع بين 14 پروژه به طور متوسط دقت 0.51 و يادآوري 0.545 بدست آمده است.
  • تاريخ ورود اطلاعات
    1402/01/28
  • عنوان به انگليسي
    A method to improve software requirements traceability using language model
  • تاريخ بهره برداري
    1/14/2024 12:00:00 AM
  • دانشجوي وارد كننده اطلاعات

    علي مجيدزاده

  • چكيده به لاتين
    Software traceability, is the ability to find the links between the artifacts created during software development. Some artifacts include code, requirements and tests. Software traceability links help to improve software quality and code understandability. Since developers don't prioritize on maintaining traceability links manually, automatic traceability link recovery is an important challenge and researchers are trying to propose methods to recover traceability links with high precision and recall. The research work done on traceability link recovery is focused on requirements-to-code and test-to-code links. Different information retrieva‎l and machine learning tools are used to recover traceability links. Also, information extracted from code can be used in the case of test-to-code traceability links, because of the test cases being code themselves. Finding requirement traceability links is essential for code understandability, impact analysis and software development management, while test-to-code traceability links make the changes made to the system safer. Among the latest related work done on requirement-to-code traceability, CodeBERT that is a pretrained language model has been used. This research focuses on making the most out of BERT for requirement-to-code traceability and to improve it for a dataset extracted from software projects with issue-to-method format that is more practical for requirement traceability uses. To use language model more efficiently, code data augmentation and 3-stage training using the extracted data are proposed. Data augmentation for code data is a new way to improve training because of its difficulty in code data. Code data augmentation in this research includes rename variable, swap operands and swap statements. Among these 3 methods, rename variable produces the most amount of data and swap statements produces the least, even though swap statements is the most sophisticated among the 3, but the transformations done by it are limited because of the lack of semantic information from outside the method that's being transformed and being limited to the method code itself. In 3-stage training, instead of one intermediate training and one finetuning, the pretrained language is trained in 2 intermediate training stages with more relevant data in the second stage and 1 final finetuning with the data extracted from one software project for usage on that project. eva‎luation results show that data augmentation improves the model in some cases and 3-stage training using the extracted dataset significantly improves the model for recovering issue-to-method links. Using the proposed method, precision of 0.706 and recall of 0.725 for CodeSearchNet doc-to-code data, 0.706 average precision and 0.725 average recall for issue-to-commit, and 0.51 average precision and 0.545 average recall for issue-to-method data extracted from 14 projects have been achieved.
  • كليدواژه هاي فارسي
    ردپذيري نرم‌افزار , ردپذيري موضوع به كد , مدل زبان , افزايش داده
  • كليدواژه هاي لاتين
    Software Traceability , Issue-to-Code Traceability , Language Model , Data Augmentation
  • Author
    Ali Majidzadeh
  • SuperVisor
    Dr. Mehrdad Ashtiani