پایان نامه ارشد رشته نرم افزار: گسترش ابزارهای خودکار شناسایی الگوهای طراحی با عملیات پالایش و تصحیح برچسب

دانلود متن کامل پایان نامه با فرمت ورد

پایان نامه مقطع کارشناسی ارشد رشته کامپیوتر

دانشگاه شیراز

دانشکده مهندسی برق و کامپیوتر

پایان نامه کارشناسی ارشد در رشته مهندسی کامپیوتر(نرم افزار)

عنوان:

گسترش ابزارهای خودکار شناسایی الگوهای طراحی با عملیات پالایش و تصحیح برچسب

استاد راهنما :

دکتر اشکان سامی

برای رعایت حریم خصوصی نام نگارنده درج نمی شودتکه هایی از متن به عنوان نمونه :فهرست مطالب:1- مقدمه............................................................................................................81-1- فرضیات و محدودیت های مساله...............................................................122-1- ضرورت انجام تحقیق..................................................................................133-1- هدف از انجام تحقیق...................................................................................134-1- سرفصل مطالب........................................................................................142- تعاریف و مفاهیم اولیه....................................................................................172-1- مقدمه......................................................................................................172-2- تکنیک های طبقه بندی................................................................................183-2- معیارهای ارزیابی کارایی..............................................................................194-2- جمع بندی....................................................................................................213- مروری بر تحقیقات پیشین..........................................................................233-1- مقدمه.............................................................................................233-2- مطالعات قبلی در شناسایی خودکار و نیمه خودکار الگوهای طراحی و محدودیت هایشان.......243-3- جمع بندی.............................................................................................284- تولید مجموعه داده ................................................................................304-1- مقدمه.................................................................................................304-2- معیارهای استخراج شده...................................................................314-3- چارچوب آنالیز جهت شناسایی اولیه و تصحیح برچسب الگوهای طراحی.......484-4- جمع بندی.......................................................................................505- آزمایشات و نتایج عددی..................................................................515-1- مقدمه..........................................................................................525-2- کارایی یادگیری..........................................................................525-3- جمع بندی....................................................................................566- نتیجه گیری و کارهای آتی................................................................58- فهرست منابع و مآخذ.........................................................................59- چکیده به زبان انگلیسی ......................................................................62چکیده:الگوهای طراحی، راه­حل­های اثبات شده و قابل اطمینانی هستند که، برای پاسخ به برخی از مسائل با رخداد مکرر در طراحی نرم افزار شی­گرا، ارائه شده­اند.‌ شناسایی آنها درکد، به منزله بازیابی طرح و هدف مخفی طراح و سهولت در امر نگهداشت­­پذیری است. از آنجاییکه سهولت در نگهداشت­­پذیری سیستم بسیار مهم و اجتناب ناپذیر است، لذا تولید ابزارهای خودکار برای شناسایی الگوها، مورد توجه قرار گرفت. اکثر ابزارهای شناسایی کنونی درصد بازیابی بالایی دارند. اما در شناسایی الگوها، به ویژه با ساختار و عملکرد مشابه، مثبت کاذب بالایی تولید می­کنند. از اینرو عملگر پالایش نیز پیشنهاد شد. پالایش، سعی بر شناسایی مثبت­­های کاذب، و حذف آنها دارد. در این کار، یک عملگر جدید به نام "تصحیح برچسب" ارائه شده است. این عملگر ابتدا مثبت­های کاذب را شناسایی، سپس بجای اینکه آنها را از خروجی حذف کند، هویت صحیح آنها را به کمک یک مجموعه معیارجدید معرفی شده در این کار، تشخیص و برچسب مثبت کاذب را تصحیح می­کند­­. خودکارسازی عملگر با داده ­کاوی است. نتایج حاصل از روش ارائه شده، با دقت یادگیری 97.8% در دسته­بندی "چندبرچسبه"، با متوسط 99.3% در دسته­بندی "یکی درمقابل همه"و متوسط 99.6% در دسته­بندی "دو به دو" خروجی ابزارها را تصحیح می­کند.فصل اول1- مقدمهاگرچه طراحی یک نرم­افزار شی­گرا دشواری­های خاص خود را دارد، دشوار­تر از آن، طراحی یک نرم­افزار شی­گرا با قابلیت استفاده مجدد است. الگوهای طراحی، استفاده از طراحی­ها و معماری­های موفق را آسان می­کنند [1]. الگوهای طراحی راه­حل­های اثبات شده و قابل اطمینان هستند که به منظور حل مسائلی که به طور مکرر در طراحی یک نرم افزار شی­گرا رخ می­دهد، مورد استفاده قرار می­گیرند. یک الگوی طراحی هدف و ساختار واحد خودش را دارد. الگوها نقش­ها، مسئولیت­ها، نحوه­ همکاری کلاس­ها و نمونه­های شرکت کننده در این همکاری را توصیف می­کنند. بنابراین با استخراج الگو­های طراحی از کد منبع، قادر به آشکار کردن هدف و طرح یک سیستم نرم­افزاری هستیم [5].بکارگیری صحیح الگو­های طراحی در توسعه یک نرم­افزار شی­گرا، می­تواند به طور چشمگیری کیفیت کد منبع را بر حسب نگهداشت پذیری و قابلیت استفاده مجدد بهبود دهد. مهمترین مساله­ نگهداشت­پذیری سیستم­های نرم­افزاری خصوصا سیستم­های قدیمی این است که فاقد سند کامل از طرح سیستم و اهداف آن هستند. بنابراین شناسایی الگوهای طراحی به صورت خودکار یا نیمه خودکار، سندسازی سیستم، نگهداشت­پذیری و قابلیت استفاده مجدد آن را تسهیل می­کند.محققان بسیاری در زمینه شناسایی الگوهای طراحی، کار کرده­اند (خودکار یا نیمه خودکار). اما هیچ کدام نتوانسته­اند یک خروجی مطمئن و بدون مثبت کاذب را در اختیار توسعه­دهندگان قرار دهند. به طورکلی شیوه­های شناسایی الگو­های طراحی به دودسته تقسیم می­شوند. آنهایی که بر اساس جنبه ­های ساختاری الگوها، کار شناسایی را انجام می­دهند و آنهایی که از جنبه­های رفتاری موجود در الگو­ها نیز جهت شناسایی بهره می­گیرند [5].هدف قرار دادن جنبه­ های ساختاری:برخی از شیوه­ها، برای شناسایی الگوها، تنها جنبه­ ساختاری آنها را در نظر می­گیرند. ابتدا خصوصیات ساختاری هرکلاس موجود در کد منبع با هر نقش تشکیل­ دهنده­ یک الگو مقایسه و کاندیدهای هر نقش شناسایی می­شود. سپس کاندیدهای نقش­هایی که می­توانند به هم مرتبط شوند، ترکیب می­شوند. در نهایت روابط میان کلاسی را بدون توجه به خصوصیات رفتاری، تجزیه و تحلیل و با الگوها مقایسه می­کنند. روابط­ میان کلاسی شامل ارث بری، انواع برگشتی، تعریف[1]، تعمیم[2]، پیوند[3]، و ... می­شوند. به ­عنوان­ مثال­ SPOOL [19]،DP++ [18]، Osprey [20]، و [21] به شیوه ساختاری فوق، الگوها را شناسایی می­کنند.بالانیا و همکارانش [3] با استفاده ازیک چارچوب به نام کولامبوس، گراف­های معنایی منتزع[4] را استخراج، و برای شناسایی الگو­ها بر اساس مقایسه گراف­ها[5] عمل کردند [5]. همچنین [2] از معناشناسی صریح[6] برای پیدا کردن الگوها روی گراف معنایی منتزع بهره می­گیرد. در هر حال برای شناسایی الگوها، علاوه بر خصوصیات ساختاری، تجزیه و تحلیل خصوصیات رفتاری نیز ضروری است.هدف قرار دادن جنبه های رفتاری:شیوه­های بحث شده در بخش قبل قادر به تشخیص الگوهایی که از نظر ساختاری یکسان اما رفتار متفاوتی دارند نظیر الگوی" استراتژی" در مقابل الگوی"وضعیت " نیستند. شیوه­هایی که جنبه­های رفتاری را هدف قرار می­دهند، سعی می­کنند این مساله را با استفاده از یاد­گیری ماشین، تحلیل پویا[7] [24] یا تحلیل ایستا[8] حل کنند [5].تجزیه و تحلیل پویا:این شیوه­ها از داده­های زمان اجرا[9] برای تشخیص جنبه­های رفتاری الگو­ها استفاده می­کنند. کی تی [22]، تنها از تجزیه و تحلیل پویا برای تشخیص الگوی "زنجیره مسئولیت­ها[10]" استفاده کرد اما نتیجه­اش موفقیت­آمیز نبود (به دلیل نامناسب بودن مکانیزم رخداد نگارى کردن پیام[11] و ناکافی بودن داده آزمایش). تجزیه و تحلیل پویا به پوشش خوبی از داده­ آزمایش به منظور اعمال هر مسیر اجرایی ممکن نیازمند است. چنین داده آزمایش اغلب موجود نیست. حتی اگر داده­ آزمایش هم موجود باشد، نتایج زمان اجرا ممکن است گمراه کننده باشند. چون چنین داده­هایی اصولا برای تشخیص دادن رفتار الگو­های خاص، طراحی نشده­اند [5].تجزیه وتحلیل ایستا:‌‌‌این روش­ها اصولا شیوه­های تجزیه و تحلیل ایستا را به درخت معنایی منتزع[12] در بدنه متدها اعمال می­کنند. مرجع [25] بیانیه­های "ایجاد شی غیرحساس به مسیر"[13] را برای تشخیص الگوهای "[14]کارخانه­ انتزاعی" و"متد کارخانه"[15] استفاده کرد. برای شناسایی الگوها با ساختار و عملکرد مشابه، بیرون کشیدن هدف الگو در پیاده­­سازی، به منظور متمایزسازی آنها بسیار مهم است. اما اکثر چنین شیوه­هایی قادر نیستند هدف برنامه را بیرون بکشند [5].در این کار، ابزارهای خودکار شناسایی الگوهای طراحی با دو عمل "پالایش" و "تصحیح برچسب" گسترش می­یابند. عمل پالایش، بیشترین یا حتی همه­ مثبت کاذب­های تولید شده در خروجی ابزارهای خودکار را شناسایی می­کند. در­حالیکه تصحیح برچسب، هویت صحیح نمونه مثبت کاذب را (بر حسب اینکه مثبت کاذب، به دلیل شباهت با کدام الگو مثبت کاذب شده است) با استفاده از معیارهای تعریف شده در این کار و روش­های داده ­کاوی شناسایی می­کند. به طور مثال اگر نمونه­ شناسایی شده توسط ابزارهای خودکار، با برچسب "استراتژی" شناسایی شده است اما در حقیقت این نمونه استراتژی نبوده، ابتدا به عنوان مثبت کاذب شناخته می­شود (پالایش)، سپس برچسب صحیح آن (بر حسب مقادیر معیارها) تشخیص داده می­شود.به طور­مثال بر­چسب صحیح آن ممکن است الگوی "وضعیت" باشد. بنابراین برچسب استراتژی به وضعیت تغییر می­کند. با­ استفاده از این معیار­ها و روش­های داده ­کاوی علاوه برنمونه­های مثبت­­­کاذب، نمونه­های منفی­کاذب نیز در برخی موقعیت­ها کاهش می­یابند. چون وقتی یک برچسب تصحیح می­شود مثلا از استراتژی به وضعیت، ممکن است این نمونه وضعیت جزء نمونه­­های شناسایی شده برای الگوی وضعیت نباشد، بنابراین این نمونه­ وضعیت یک منفی­کاذب شمرده شده که با شناسایی آن، یک منفی کاذب را حذف کرده­ایم.با توجه به اینکه ابزارها و روش­های پیشین، بیشترین مثبت کاذب را در شناسایی الگوهای با ساختار و عملکرد مشابه تولید می­کنند، در این­کار، سعی شده تا خروجی ابزارها با توانایی شناسایی چنین الگوهایی تصحیح گردد. لذا، تصحیح برچسب روی نمونه­های استخراج شده­ الگوی استراتژی (به دلیل داشتن شباهت­های ساختاری و عملکردی با الگوهای دیگر، بر حسب خروجی ابزارها بیشترین مثبت کاذب در شناسایی آن تولید شده است) انجام می­شود. ابتدا براساس روش­های عرف داده ­کاوی، با نمونه­های مثبت کاذب و مثبت صحیح الگوی استراتژی بدست آمده توسط ابزارها، یک مجموعه داده­ تهیه شده است. سپس بر اساس مستندات موجود و همچنین بازبینی دستی، به منظور پیش­بینی هویت صحیح هر نمونه، دو ستون در مجموعه داده تعیین شده است. یک ستون با "درست" و "نادرست" (درست، در صورت شناسایی صحیح توسط ابزارها و نادرست در صورت مثبت کاذب بودن) برچسب می­خورد، و ستون دیگر با نام الگو صحیح آن نمونه یا در صورت ناشناس بودن، با بدون الگو برچسب می­گیرد. سپس مقادیر معیارها یا پیش­­بینی کننده­های استخراج شده در این کار، روی هر نمونه محاسبه می­شوند و نهایتآَ مجموعه داده در اختیار الگوریتم­های داده ­کاوی جهت مدل­سازی قرار می­گیرند. در مدل­سازی سعی می­شود دانش موجود در داده­ها، در قالب یک سری قوانین استخراج شوند. این قوانین برای شناسایی نمونه­های ناشناخته (جدید) در مجموعه داده­ مورد استفاده قرار می­گیرند.آزمایش­ها، با استفاده از سه الگوریتم یادگیری ماشینC5.0 ، Boostingو SVMانجام شده است. روش پیشنهادی روی سه نرم افزارمتن باز jhotdraw6[6]، jrefactory[7] و  javaio [8] انجام شده است. الگوهای پیاده شده در این پروژه­ها از ساختار پایه­ای که برای آنها در کتاب­ها معرفی شده است بسیار فاصله گرفته­اند (الگو ها بسیار انعطاف پذیر هستند و توسط هر برنامه­نویس می­توانند به روش­های متفاوتی پیاده­سازی شوند و هم چنین ترکیب شوند) بنابراین شناسایی چنین الگوهایی دشواری­های خاص خودش را دارد [2].در این کار، معیارهای جدید به عنوان پیش­گویی کننده­های عملیات تصحیح برچسب و پالایش، روی نمونه­های خروجی الگوی طراحی "استراتژی" یافت شده توسط ابزار­های [9] SSA و [5] PINOT استفاده شده­اند. ابتدا مثبت کاذب­های استراتژی تشخیص داده می­شوند و سپس الگوی طراحی صحیح موجود در نمونه مثبت کاذب شناسایی می­شود. نمونه­های مثبت کاذب به سمت نمونه­ها­ی مثبت صحیح با تشخیص آنها از الگوهای "وضعیت[16]"، "استراتژی[17]"، "تطبیق­دهنده[18]"، "فرمان[19]"، "ملاقات­کننده[20]"، "میانجی[21]"، "آذیین کننده[22]"، "ترکیب[23]" و"کارخانه انتزاعی[24]"حرکت می­کنند. همچنین این معیارها می­توانند الگوهایی که ساختار کاملا مشابهی به یکدیگر دارند نظیر"وضعیت از استراتژی "، "تطبیق دهنده از فرمان"، "آذیین کننده از ترکیب" و استراتژی را از هشت الگوی دیگر مورد مطالعه در این تحقیق متمایز کنند. این الگوها در نظر گرفته شدند، چون بیشترین مثبت کاذب موجود در نتایج الگوی استراتژی با اشتباه گرفتن با این الگو­ها بر حسب ساختار و عملکرد مشابه تولید شده است.به طور کلی غیر از الگوهایی که از پایه ساختار یکسانی دارند بقیه الگو­ها به دلیل انعطاف، وقتی که از ساختار پایه دور می­شوند ساختار مشابهی به برخی الگوهای دیگر پیدا می­کنند. در واقع معیارهای استخراج شده در این کار، با استفاده از الگوریتم­های داده ­کاوی، نقص­ها و کمبود­های دیده نشده در ابزار­ها را رفع می­کنند.ادامه­ این تحقیق به بخشهای زیر سازماندهی می­شود. در بخش دوم بر چند مقاله که اهداف و شیوه­ مشابه­ای با شیوه و هدف این تحقیق دارند، مروری خواهیم داشت. در بخش سوم الگوهای مورد مطالعه در این تحقیق و معیار­های استخراج شده شرح داده می­شوند. در بخش چهارم نگاهی بر شیوه­های داده ­کاوی و مجموعه داده ایجاد شده خواهیم داشت. در بخش پنجم نتایج ارائه خواهند شد و نهایتا در بخش ششم نتیجه­گیری و کار­های آتی پیشنهاد می­شوند.[1] Declaration[2] Generalization[3] Association[4] Abstract Semantic Graph[5] Graph Matching[6]Denotational semantics[7] Dynamic analysis[8] Static analysis[9] Run time data[10]The Chain of Responsibility pattern allows a number of  classes to attempt to handle a request, without any of them knowing about the capabilities of the other classes.[11] Log[12] Abstract Semantic Tree[13] Insensitive[14]الگوی Abstract Factory امکان ایجاد خانواده­ای از اشیاء مرتبط به هم را بدون توجه به پیاده­سازی آنها، فراهم میکند. درواقع این امکان را ایجاد می­کند که استاندارد­های تولید اشیا مختلف را تنها یکبار پیاده­سازی، و برای جابجایی بین آنها تنها نام استاندارد را عوض کنیم به جای اینکه تک تک اشیا را به استاندارد دیگر تغییر دهیم. به الگویFactory Method شباهت دارد.[15] یک مکانیزم برای ایجاد نمونه از یک کلاس را فراهم میکند.[16] State[17] Strategy[18] Adapter[19] Command[20] Visitor[21] Mediator[22] Decorator[23] Composite[24] Abstract factory***ممکن است هنگام انتقال از فایل اصلی به داخل سایت بعضی متون به هم بریزد یا بعضی نمادها و اشکال درج نشود ولی در فایل دانلودی همه چیز مرتب و کامل و با فرمت ورد موجود است***

متن کامل را می توانید دانلود نمائید

چون فقط تکه هایی از متن پایان نامه در این صفحه درج شده (به طور نمونه)

ولی در فایل دانلودی متن کامل پایان نامه

 با فرمت ورد word که قابل ویرایش و کپی کردن می باشند

موجود است

تعداد صفحه : 74 قیمت : چهارده هزار تومان  

بلافاصله پس از پرداخت ، لینک دانلود به شما نشان داده می شود

و به ایمیل شما ارسال می شود.

پشتیبانی سایت :        09124404335        info@arshadha.ir

در صورتی که مشکلی با پرداخت آنلاین دارید می توانید مبلغ مورد نظر برای هر فایل را کارت به کارت کرده و فایل درخواستی و اطلاعات واریز را به ایمیل ما ارسال کنید تا فایل را از طریق ایمیل دریافت کنید.

--  -- --

مطالب مشابه را هم ببینید

فایل مورد نظر خودتان را پیدا نکردید ؟ نگران نباشید . این صفحه را نبندید ! سایت ما حاوی حجم عظیمی از پایان نامه های دانشگاهی است. مطالب مشابه را هم ببینید. برای یافتن فایل مورد نظر کافیست از قسمت جستجو استفاده کنید. یا از منوی بالای سایت رشته مورد نظر خود را انتخاب کنید و همه فایل های رشته خودتان را ببینید