• عنوان

    ارائه‌ي روشي به‌منظور شناسايي و بازسازي خودكار ضدالگوهاي كد بر پايه‌ي مدل‌هاي گرافي احتمالي

  • نويسنده اصلي

    رعنا صاحب نسق

  • مقطع تحصيلي
    كارشناسي ارشد
  • چكيده
    روزانه برنامه‌هاي نرم‌افزاري فراواني توسعه داده مي‌شوند و به مرحله توليد مي‌رسند. توليد برنامه‌اي انعطاف‌پذير با قابليت به‌روزرساني سريع و ساده، يكي از اهداف اصلي برنامه نويسان است. متأسفانه دلايل گوناگوني همچون كمبود وقت، هزينه‌هاي زياد، فشار كاري و همچنين سهل‌انگاري خود برنامه نويسان منجر به توليد نرم‌افزارهايي با ساختارهاي نامناسب، پيچيده و غيرقابل تغيير مي‌شود. اين ساختارهاي پيچيده، فرايند گسترش و توسعه دادن نرم‌افزارها را معمولاً غيرممكن مي‌كند و درنهايت باعث نابودي كل سيستم مي‌شود. برنامه نويسان در پي آن هستند تا اين ساختارهاي سخت را - كه به ضدالگوهاي نرم‌افزاري معروف هستند - در سيستم‌ها شناسايي و در اولين فرصت آن‌ها را تصحيح يا به عبارتي بازسازي كنند. جهت شناسايي و بازسازي ضدالگوهاي نرم‌افزاري، تحقيقات فراواني به كمك هوش مصنوعي مخصوصاً در زمينه يادگيري ماشين شده است تا اين فرايند دقيق‌تر، سريع‌تر و همچنين به‌صورت خودكار انجام گيرد. در حال حاضر هنوز روشي جامع ارائه نشده است تا بتواند تمامي ضدالگوها را شناسايي و بازسازي كند. همچنين در بسياري از روش‌ها مسئله شناسايي به‌صورت يك مسئله رده‌بندي در نظر گرفته مي‌شود و با استخراج ويژگي‌هاي فراواني همراه است. باوجوداينكه برخي از كارهاي پيشين دقت خوبي در شناسايي ضدالگوها به دست آوردند، نياز به روشي است كه علاوه بر ويژگي‌هاي سيستم، روابط موجود بين ساختارهاي مختلف را نمايان كند. همچنين نياز به روشي كاربردي است كه مطابق با ويژگي‌هاي هر برنامه آموزش داده شود. در اين پايان‌نامه چارچوبي بر مبناي مدل‌هاي گرافي احتمالي هم براي شناسايي و هم‌جهت بازسازي ضدالگوها پيشنهادشده است. در اين مدل ابتدا كلاس‌هاي برنامه‌نويسي، روابط بينشان و ويژگي هر كلاس از كد برنامه استخراج‌شده است و سپس به مدلي گرافي احتمالي نگاشت شده است. اين نگاشت بر اساس روابط علت معلولي موجود به‌صورت ساختارهاي مختلفي پياده‌سازي شده است. درنهايت با داشتن ضدالگوهاي كد، شبكه بيزي متناسبي آموزش داده‌شده است كه بر اساس ويژگي‌هاي كلاس‌هاي همسايه، احتمال وجود يا عدم وجود ضدالگو را تعيين مي‌كند. جهت ارزيابي؛ مدل موردنظر روي شش ضدالگو مختلف و شش برنامه جاوا آموزش داده‌شده است. مدل پيشنهادي به‌طور ميانگين با دقت 85.16% و بازخواني 79% به شناسايي اين ضدالگوها پرداخته است. همچنين به كمك همين مدل روش‌هايي جهت بازسازي معرفي‌شده است و اثبات‌شده است كه اين بازسازي‌ها باعث درنهايت ايجاد سيستمي با انسجام بيشتر و وابستگي كمتر مي‌شود. هدف اصلي اين كار ارائه مدلي است تا روابط مختلف را حفظ ‌كند و نگاشت كاملي از كد باشد. همچنين اين مدل با ضدالگوهاي ديگري قابل‌گسترش است بدون آنكه در آموزش ضدالگوهاي ديگر، مشكلي ايجاد شود.
  • شماره ركورد
    195292
  • دانشگاه
    دانشگاه علم و صنعت ايران
  • استاد مشاور
    دكتر مهرداد آشتياني
  • رشته تحصيلي
    هوش مصنوعي و رباتيكز
  • استاد راهنما
    دكتر بهروز مينايي