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

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

برای رعایت حریم خصوصی نام نگارنده درج نمی گردد

تکه هایی از متن به عنوان نمونه :

فهرست مطالب:

1- مقدمه………………………………………………………………………………………………8

1-1- فرضیات و محدودیت های مساله………………………………………………………12

2-1- ضرورت انجام پژوهش……………………………………………………………………….13

3-1- هدف از انجام پژوهش………………………………………………………………………..13

4-1- سرفصل مطالب…………………………………………………………………………….14

2- تعاریف و مفاهیم اولیه…………………………………………………………………………17

2-1- مقدمه…………………………………………………………………………………………17

2-2- تکنیک های طبقه بندی……………………………………………………………………..18

3-2- معیارهای ارزیابی کارایی……………………………………………………………………19

4-2- جمع بندی……………………………………………………………………………………….21

3- مروری بر تحقیقات پیشین………………………………………………………………..23

3-1- مقدمه…………………………………………………………………………………23

3-2- مطالعات قبلی در شناسایی خودکار و نیمه خودکار الگوهای طراحی و محدودیت هایشان…….24

3-3- جمع بندی…………………………………………………………………………………28
جستجو در سایت :   


4- تولید مجموعه داده ……………………………………………………………………..30

4-1- مقدمه…………………………………………………………………………………….30

4-2- معیارهای استخراج شده………………………………………………………….31

4-3- چارچوب واکاوی جهت شناسایی اولیه و تصحیح برچسب الگوهای طراحی…….48

4-4- جمع بندی……………………………………………………………………………50

5- آزمایشات و نتایج عددی…………………………………………………………51

5-1- مقدمه………………………………………………………………………………52

5-2- کارایی یادگیری………………………………………………………………..52

5-3- جمع بندی…………………………………………………………………………56

6- نتیجه گیری و کارهای آتی……………………………………………………….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

قیمت : 14700 تومان

 

***

—-

دانلود متن کامل در سایت sabzfile.com

پشتیبانی سایت :       

****         serderehi@gmail.com