ارائه دهنده:
رعنا صاحب نسق
استاد راهنما:
دکتر بهروز مینایی بیدگلی
استاد مشاور:
دکتر مهرداد آشتیانی
هیات داوران:
دکتر سیدصالح اعتمادی، دکتر رامتین خسروی
زمان:
چهارشنبه ۱۳۹۹/۰۶/۲۶
خانم رعنا صاحب نسق دانشجوی کارشناسی ارشد دکتر بهروز مینایی بیدگلی چهارشنبه ۲۶ شهریورماه از پروژه کارشناسی ارشد خود تحت عنوان "ارائهی روشی بهمنظور شناسایی و بازسازی خودکار ضدالگوهای کد بر پایهی مدلهای گرافی احتمالی" دفاع خواهند نمود.
چکیده پایان نامه:
روزانه برنامههای نرمافزاری فراوانی توسعه داده میشوند و به مرحله تولید میرسند. تولید برنامهای انعطافپذیر با قابلیت بهروزرسانی سریع و ساده، یکی از اهداف اصلی برنامه نویسان است. متأسفانه دلایل گوناگونی همچون کمبود وقت، هزینههای زیاد، فشار کاری و همچنین سهلانگاری خود برنامه نویسان منجر به تولید نرمافزارهایی با ساختارهای نامناسب، پیچیده و غیرقابل تغییر میشود. این ساختارهای پیچیده، فرایند گسترش و توسعه دادن نرمافزارها را معمولاً غیرممکن میکند و درنهایت باعث نابودی کل سیستم میشود. برنامه نویسان در پی آن هستند تا این ساختارهای سخت را - که به ضدالگوهای نرمافزاری معروف هستند - در سیستمها شناسایی و در اولین فرصت آنها را تصحیح یا به عبارتی بازسازی کنند. جهت شناسایی و بازسازی ضدالگوهای نرمافزاری، تحقیقات فراوانی به کمک هوش مصنوعی مخصوصاً در زمینه یادگیری ماشین شده است تا این فرایند دقیقتر، سریعتر و همچنین بهصورت خودکار انجام گیرد. در حال حاضر هنوز روشی جامع ارائه نشده است تا بتواند تمامی ضدالگوها را شناسایی و بازسازی کند. همچنین در بسیاری از روشها مسئله شناسایی بهصورت یک مسئله ردهبندی در نظر گرفته میشود و با استخراج ویژگیهای فراوانی همراه است. باوجوداینکه برخی از کارهای پیشین دقت خوبی در شناسایی ضدالگوها به دست آوردند، نیاز به روشی است که علاوه بر ویژگیهای سیستم، روابط موجود بین ساختارهای مختلف را نمایان کند. همچنین نیاز به روشی کاربردی است که مطابق با ویژگیهای هر برنامه آموزش داده شود.
در این پایاننامه چارچوبی بر مبنای مدلهای گرافی احتمالی هم برای شناسایی و همجهت بازسازی ضدالگوها پیشنهادشده است. در این مدل ابتدا کلاسهای برنامهنویسی، روابط بینشان و ویژگی هر کلاس از کد برنامه استخراجشده است و سپس به مدلی گرافی احتمالی نگاشت شده است. این نگاشت بر اساس روابط علت معلولی موجود بهصورت ساختارهای مختلفی پیادهسازی شده است. درنهایت با داشتن ضدالگوهای کد، شبکه بیزی متناسبی آموزش دادهشده است که بر اساس ویژگیهای کلاسهای همسایه، احتمال وجود یا عدم وجود ضدالگو را تعیین میکند. جهت ارزیابی؛ مدل موردنظر روی شش ضدالگو مختلف و شش برنامه جاوا آموزش دادهشده است. مدل پیشنهادی بهطور میانگین با دقت ۸۵.۱۶% و بازخوانی ۷۹% به شناسایی این ضدالگوها پرداخته است. همچنین به کمک همین مدل روشهایی جهت بازسازی معرفیشده است و اثباتشده است که این بازسازیها باعث درنهایت ایجاد سیستمی با انسجام بیشتر و وابستگی کمتر میشود. هدف اصلی این کار ارائه مدلی است تا روابط مختلف را حفظ کند و نگاشت کاملی از کد باشد. همچنین این مدل با ضدالگوهای دیگری قابلگسترش است بدون آنکه در آموزش ضدالگوهای دیگر، مشکلی ایجاد شود.
دفاع بهصورت آنلاین برگزار میشود
دانشکده مهندسی کامپیوتر مدیریت تحصیلات تکمیلی
|