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

    عليرضا اردلاني

  • عنوان
    طراحي معماري نرم‌افزار بر اساس مدل سلسله مراتبي اهداف و اصل تك مسئوليتي
  • مقطع تحصيلي
    كارشناسي ارشد
  • رشته تحصيلي
    مهندسي كامپيوتر- نرم‌افزار
  • سال تحصيل
    1398
  • تاريخ دفاع
    1401/6/30
  • استاد راهنما
    سعيد پارسا
  • دانشكده
    مهندسي كامپيوتر
  • چكيده
    اصل تك مسئوليتي يكي از مهم¬ترين اصول مهندسي¬ نرم¬افزار است. اين اصل بيان مي‌كند كه يك پيمانه بايد فقط يك دليل براي تغيير داشته باشد، و آن دليل به منزله‌ي مسئوليت پيمانه تعريف مي‌شود. سادگي بيان در تعريف اصل تك مسئوليتي، كج انديشي و انتقادات بسياري را به همراه داشته است. از نظر منتقدين، در اين اصل تعريف مسئوليت مبهم بوده، و بر اين باورند كه اجتناب از جفت¬شدگي و افزايش انسجام، عملكرد بهتري را به ارمغان مي¬آورد. با بررسي دلايل مخالفان، به اين نتيجه رسيده¬ايم كه نارسايي از ماهيت اصل نيست، بلكه اغلب منتقدين تحليل نادرستي از اين اصل داشته¬اند. در اين پايان‌نامه، يك معماري مبتني بر مدل اهداف به منظور تعريف مسئوليت در تمامي سطوح نرم‌افزاري ارائه مي‌شود. در بالاترين سطح از مدل اهداف، هر نرم‌افزار داراي يك هدف خواهد بود، كه اين هدف در سطوح بعدي به زيراهداف تجزيه مي‌شود. زيراهداف غالبا متشكل از يك يا چند نيازمندي هستند، و هر نيازمندي مجموعه‌اي از عمليات‌ها را شامل مي‌شود. بدين ترتيب به ازاي هر زيرهدفي يك بسته، و به ازاي هر نيازمندي يك زيربسته يا كلاس پياده‌سازي مي‌شود. و در نهايت مسئوليت پياده‌سازي هر عملياتي بر عهده‌ي يك متد خواهد بود. همچنين در اين پايان‌نامه، يك ابزار استخراج متد خودكار بر اساس اصل تك مسئوليتي ارائه مي‌شود. از آن‌جايي كه هر متدي بايد فقط يك عمليات را پياده‌سازي كند، يك دستور خروجي خواهد داشت. از اين‌رو تعدد دستورات خروجي، به عنوان نشانه‌اي از نقض اصل تك مسئوليتي منظور مي‌شود. تحقيقات متعددي نشان مي‌دهند كه، اعمال صحيح اصل تك مسئوليتي در طراحي پروژه¬هاي نرم‌افزاري موجب بهبود ساختار و افزايش معيارهاي كيفي نرم¬افزاري مي¬گردد، از اين‌رو شايسته است كه اين قانون را در چرخه¬ي توسعه¬ي نرم¬افزار به بهترين نحو ممكن جامه¬ي عمل بپوشانيم. آزمايش‌هاي ما نشان مي‌دهند، كه پس از اعمال روش پيشنهادي به منظور تك مسئوليتي شدن، معيارهاي تك مسئوليتي، 17.6% در سطح متد و 31.9% در سطح كلاس، بهبود يافته‌اند. همچنين ابزار استخراج متد پيشنهادي در مقايسه با ساير ابزارهاي حال حاضر اين حوزه، حداقل 12.1% بهبود در يادآوري و 29.6% بهبود در دقت را كسب كرده است.
  • تاريخ ورود اطلاعات
    1401/11/25
  • عنوان به انگليسي
    Software Architecture Design Based on the Hierarchical Goal Model and the Single Responsibility Principle
  • تاريخ بهره برداري
    9/21/2023 12:00:00 AM
  • دانشجوي وارد كننده اطلاعات

    عليرضا اردلاني

  • چكيده به لاتين
    The single responsibility principle is one of the most important principles of software engineering. This principle states that a module should have one and only one reason to change, and that reason is defined as the module's responsibility. The simplicity of the definition of the single responsibility principle has brought many biases and criticisms. According to critics, the definition of responsibility is vague in this principle, and they believe that avoiding coupling and increasing cohesion brings better performance. Considering the reasons of the opponents, we have concluded that the inadequacy is not related to the nature of the principle. However, most critics have made an incorrect understanding of this principle. To define responsibility at all levels of software, an architecture based on the goals model is presented in this thesis. At the highest level of the goals model, each software will have a goal, which is broken down into sub-goals at the lower levels. Subgoals often consist of one or more requirements, and each requirement includes a set of operations. In this way, a package is implemented for each subgoal, and a sub-package or class is implemented for each requirement. And finally, the responsibility of implementing each operation will allocate to a method. Also, this thesis presents an automatic method extraction tool based on the single responsibility principle. Since each method should implement only one operation, it will have one output statement. As a result, a multiplicity of output statements is considered a violation of the single responsibility principle. Several pieces of research show that using the single responsibility principle correctly in the design of software projects improves the software architecture structure and increases the software quality metrics. Therefore it is appropriate to apply this principle in the software development cycle. Our experiments show that after applying the proposed method for single responsibility, the single responsibility quantity metrics have improved by 17.6% at the method level and 31.9% at the class level. Also, compared to other existing tools in this field, our extraction method tool has achieved at least a 12.1% improvement in recall and a 29.6% improvement in accuracy.
  • كليدواژه هاي فارسي
    اصل تك مسئوليتي , مدل اهداف , دستورات خروجي , استخراج متد , انتقال متد , استخراج كلاس
  • كليدواژه هاي لاتين
    Single Responsibility Principle , Goals Model , output instructions , Extract method , Move method , Extract Class
  • Author
    Alireza Ardalani
  • SuperVisor
    Dr. Saeed Parsa