بخشی از پاورپوینت
اسلاید 1 :
بِسـمِ اللهِ الرَحـــمنِ الرَحيم
اسلاید 2 :
عنوان : یک رویکرد مبتنی بر درجه برای کاوش در الگوهای طراحی بر اساس گراف تطابق
اسلاید 3 :
کلیات پژوهش
آنچه در این پژوهش بیان می گردد
اسلاید 4 :
مقدمه
الگوهای طراحی به طور گسترده ای در توسعه نرم افزار مورد استفاده قرار می گیرد. و نقش مهمی در درک و اجرای فرایند طراحی نرم افزار و همچنین ترمیم معماری دارد.
بازیابی نمونه های الگوهای طراحی از سیستم نرم افزاری, نه تنها تصمیمات کلی در مورد طراحی سیستم را ممکن می سازد ، بلکه به راحت تر کردن پالایش سیستم نیز کمک می کند.
طی سالهای گذشته رویکردهای مختلف کشف، مانند رویکرد مبتنی بر میکرو ساختار ، رویکرد مبتنی بر machine-learning، رویکرد مبتنی بر rule ، رویکرد مبتنی بر متریک و رویکرد مبتنی بر query ارائه شده است .
کلیات پژوهش| ضرورت تحقیق | روش شناسی تحقیق | روند کلی | یافته های تحقیق | نتایج تحقیق
اسلاید 5 :
مراحل کشف در مطالعات قبلی, همیشه به سه دسته طبقه بندی می شوند:
تجزیه و تحلیل ساختاری
تحلیل رفتاری
یا ترکیبی از این دو
تجزیه و تحلیل ساختاری بر روابط interclass ، مانند تعمیم ، تجمیع ، ارتباط ، وابستگی و ویژگی های جنبه های ساختاری مانند صفات، رویکردهای کلاس یا interface ، انواع بازگشتی(return type ) و پارامترها , تمرکز دارد.
در همین حال ، تجزیه و تحلیل رفتاری با ترکیب تکنیک تجزیه و تحلیل استاتیک و پویا روی ویژگی های رفتار, متمرکز می شود.
با این حال ، بسیاری از این تکنیک ها خسته کننده هستند.
اسلاید 6 :
اکثر رویکردها بر اساس گراف تطابق با انفجارهای فضای جستجو و کارآیی کم از نظر سرعت کاوش روبرو هستند.
برای پرداختن به این مشکل ، این مقاله رویکردی را برای کاوش نمونه های الگوی طراحی در کد منبع با تطبیق مبتنی بر درجه, ارائه می دهد که به دو بخش تقسیم شده است.
بخش اول مربوط به بخش فرعی سیستم است که در آن کلیه اطلاعات مربوط به کشف در ناحیه مربوطه, برای گراف داده ها درج می شود.
مورد دیگر مربوط به مطابقت با توالی اعتبارسنجی متقابل براساس قوانین خاص برای بدست آوردن نمونه های ناحیه مؤثر است.
اسلاید 7 :
بخش مختلف پژوهش انجام شده بشرح ذیل است:
در مرحله اول، یک رویکرد کارآمد مبتنی بر گراف برای تشخیص نمونه های الگوی طراحی پیشنهاد شده، که در آن می توان یک سری از ساده ترین گراف های زیر سیستم و توالی بهینه را بدست آورد ، به گونه ای که فقط باید معرف ترین کلاسها را در سیستم در نظر گرفته شود ، در حالی که تعداد زیادی از کلاسهای بی ربط بیرون نگه داشته شده اند. با کاهش قابل توجه فضای اکتشاف ، می توان عملکرد عملیاتی, به ویژه در مورد سیستم های بزرگ نرم افزاری را بسیار افزایش داد.
در مرحله دوم ، بر روی 23 الگوهای GOF با روش اعتبارسنجی متقابل تجزیه و تحلیل ساختاری و رفتاری تمرکز شده است که به یک دقت رضایت بخش می رسد و معیار در فیلد کاوش الگوی طراحی که تاکنون گزارش شده است، یادآوری میشود. سرانجام ، رویکرد ارائه شده در این مقاله می تواند برخی از تغییراتی را که به طور مکرر در سیستم رخ می دهد را پوشش دهد. علاوه بر این ، آزمایش های گسترده ای انجام شده که شامل اندازه های مختلف سیستم است و نتایج مرتبط را برای راحتی ارائه می دهد. در مقایسه با مطالعات دیگر ، ما از نظر روش و عملکرد سهم بیشتری درکاوش فرایند داریم.
اسلاید 8 :
پس از تشریح کار مرتبط با تشخیص الگوی طراحی در بخش 2 ، یک بخش کلی از رویکرد و مراحل خاص آن در بخش 3 معرفی شده است.
در بخش 4، آزمایش ها در هر دو سیستم open-source با مقیاس کوچک و بزرگ در جزئیات ارائه شده است.
سرانجام ، درباره تهدیدهای مربوط به اعتبار در بخش 5 و کار احتمالی آینده در بخش 6 ، صحبت شده است.
اسلاید 9 :
ضرورت تحقیق
ضرورت پژوهش در ادامه مورد بررسی قرار می گیرد
اسلاید 10 :
ضرورت پژوهش
روند تشخیص یک الگوی طراحی به دلیل ماهیت موقتی بودن برنامه نویسی و انواع الگو, ساده نیست.
کشف یک الگوی طراحی یک مسئله اساسی برای درک بسیاری از سیستم های نرم افزاری پیچیده را نشان می دهد.
به طور کلی پذیرفته شده است که یک راه حل مطلوب گریزپذیر است.
علاوه بر این ، برخی رویکردها فقط روی یک دسته از الگوهای طراحی تمرکز می کنند ، یا با ویژگی های خاص الگوهای طراحی بدون در نظر گرفتن آنها به طور جامع مطابقت میکنند.
نتایج آزمایش و تست عملکرد , با ارزش ترین شاخص ها را برای ارزیابی اینکه آیا رویکرد تشخیص الگوی طراحی, یکنواخت و مؤثر است ارائه می دهد.
اسلاید 11 :
اهداف پژوهش
در این مقاله ، یک الگوریتم تطبیق گراف اعتبار سنجی متقابل جدید برای کشف موثر نمونه الگوی طراحی در source code ، که از یک روش مبتنی بر درجه استفاده می کند، پیشنهاد شده است.
در مقایسه با تکنیک های قبلی ، این رویکرد می تواند فضای جستجو را برای به دست آوردن ساده ترین گراف زیر سیستم از طریق تکنیک فیلترینگ داده به میزان زیادی کاهش دهد. علاوه بر این، در مرحله تحلیل رفتاری، ویژگی های رفتاری با محصول اعداد اول نشان داده شده.
این رویکرد از نظر سادگی و عملکرد مدرن, ارزیابی شده است.
اسلاید 12 :
ساختار پژوهش
به طور کلی ، به راحتی می توان عناصر ساختاری source code (به عنوان مثال کلاس ها ، ویژگی ها ، متود ها ، روابط بین آنها) را بدست آورد.
سپس source code را به یک گراف تبدیل کرد. علاوه بر این ، الگوهای طراحی Gang of Four یا دسته ی چهارGOF) ) خود می توانند به عنوان نمودارهای کلاس بر اساس زبان مدل سازی یکپارچه یا unified modelling language (UML) ارائه شوند.
بنابراین ، بدیهی است که برای کشف الگوهای طراحی ، باید رویکرد مبتنی بر گراف گنجانده شود.
با این حال ، در برخی موارد ، این سیستم چنان غنی است که ما در اجرای موثر برای تشخیص نمونه های الگوی طراحی از گراف های بزرگ، موفق نیستیم ، زیرا کشف ایزومورفیسم یا همریختی زیر گراف یک مشکل NP کامل است.
به حداقل رساندن تعداد رأس و یال ها تا حد امکان, می تواند این مشکل را برطرف کند.
اسلاید 13 :
روش شناسی تحقیق
بررسی روش تحقیق صورت گرفته
اسلاید 14 :
الگوهای طراحی با توجه به اینکه می توانند مهندسی کد را با محاسبه اطلاعات کلیدی تحقق بخشند ، در سالهای اخیر مورد توجه مهندسین نرم افزار و محققان قرار گرفته است، که به نوبه خود کیفیت طراحی را تعیین می کند.
علاوه بر این ، برای حل مشکل احیا در سیستم هایlegacy ، و همچنین تعمیق درک آن ، تحقیقات در زمینه کشف الگوهای طراحی از جهات مختلف انجام شده است.
اسلاید 15 :
جدول 1. طبقه بندی مختصر روش های تشخیص الگوی طراحی فعلی.
اسلاید 16 :
در کنار جدول 1 ، بررسی زیر در مورد رویکردهای مختلف در این زمینه باید به ما در درک تشخیص الگوی طراحی، کمک کند.
رویکردهای تحلیل ساختاری(Structural analysis approaches) :
تقریباً همه رویکردها بر جنبه های ساختاری الگوها، به ویژه خصوصیات ساختاری آشکار, متمرکز شده اند. چندین گروه اصلی درگیر هستند، که در زیر به تفصیل مورد بحث قرار گرفته است.
رویکردهای میکرو ساختاری(Micro-structural approaches ) :
روش های مربوط به ساختارهای میکرو و نشانه های الگوی طراحی برای تشخیص الگوهای طراحی مفید هستند که به قسمت های ریزی که به راحتی تشخیص داده می شوند ، تقسیم می شوند و سپس در الگوهای کامل طراحی کاندید, ادغام می شوند. این روش یک دنباله کاوش یا ماینینگ منحصر به فرد دارد و این روند بسیار دقیق است تا دقیق ترین نتایج را در هر مرحله بدست آورد. با این حال ، کار دستی و پیش پردازش باید از قبل انجام شود ، که می تواند بسیار زمانبر باشد.
کلیات پژوهش| ضرورت تحقیق | روش شناسی تحقیق | روند کلی | یافته های تحقیق | نتایج تحقیق
اسلاید 17 :
رویکردهای ماشین یادگیری (Machine learning approaches ) :
چندین رویکرد برای ماشین یادگیری برای تشخیص الگوهای طراحی ، مانند رویکرد طبقه بندی ، درخت تصمیم گیری ، شبکه های عصبی و ماشینهای بردار پشتیبانی استفاده شده است. رویکرد طبقه بندی بیشترین تحقیق و مبحث اصلی در زمینه ماشین یادگیرپیشرفته برای الگوهای طراحی است. این مسئله , مسئله تشخیص الگوی طراحی را به یک مسئله یادگیری نگاشت می کند ، که می تواند برخی از الگوهای طراحی احتمالی را شناسایی کند.
در شرایط عادی ، ترکیبی از رویکردهای مبتنی بر یادگیری و الگوریتم های داده کاوی برای طبقه بندی و دستیابی به این هدف استفاده می شود.
رویکردهای مبتنی بر قانون ( Rule-based approaches ) :
در این روشها ، کد منبع یا source code توسط فرمالیسم هستی شناسی نشان داده می شود ، در حالی که ساختارها و رفتارهای الگوهای طراحی را می توان از طریق قوانین معنایی بدست آورد.
با این حال ، همانطور که ارائه شده است ، رویکرد آنها به طور کلی وقت گیر است ، و همچنین توسط پوشش ناقص نسبتاً نادرست است.
رویکردهای مبتنی بر متریک (Metric-based approaches):
رویکردهای مبتنی بر متریک ها ، از نظر محاسباتی مؤثر هستند. با این حال ، آنها معمولاً از دقت و یادآوری کم برخوردارند زیرا مقادیر متریک کلاسها در برابر مقادیر متریک تئوری, برای نقشها مقایسه می شوند ، نه مقادیر معتبر آزمایشی. علاوه بر این ، رویکردهای مبتنی بر متریک نمی توانند تعامل بین دو نقش را تحقق بخشند. مهمترین نکته روش فیلترینگ است که می تواند فضای جستجو را کاهش دهد و ما در روش خود از مزیت این فاکتور استفاده کرده ایم.
اسلاید 18 :
رویکردهای مبتنی بر پرس و جو(Query-based approaches) :
در این نوع از رویکردهای کشف الگوی طراحی ، الگوی طراحی به انواع مختلفی از نمایش های واسطه تبدیل می شود که حاوی مهمترین اطلاعات در مورد الگوی طراحی مانند درخت نحو انتزاعی (AST) ، تبادل داده های متا XML (XMI)، UML ، XML و گراف معنایی انتزاعی (ASG) است.
با استفاده از نمایش های واسطه ، می توان اطلاعات ساختاری و رفتاری را تأیید کرد که به ترتیب وجود دارد. اگرچه فرآیند کاوی می تواند ساده شود ، هنوز هم محدودیت هایی در مورد اطلاعات استخراج شده برای هر نمایش واسطه وجود دارد. بنابراین ، نتایج میزان دقت و یادآوری بسته به شرایط, ممکن است افزایش یا کاهش یابد.
رویکردهای مبتنی بر دلیل( Reason-based approaches ) :
معمولاً از روشهای استدلال منطقی و فازی استفاده می شود. استدلال منطقی عمدتاً از یک حساب منطقی برای تحقق فرآیند کاوی یا پروسه ماینینگ استفاده می کند. اولین قدم, اطلاعات اولیه طراحی ساختاری را از source code استخراج می کند. سپس با استفاده از محیط ، الگوی طراحی, مشخص و شناسایی شده است. از این طریق می توان به دقت بالایی دست یافت. در مقایسه با استدلال منطقی ، استدلال فازی از مجموعه قانون فازی برای توصیف الگوی طراحی استفاده می کند ، به این معنی که می تواند با اطلاعات ناقص تر سروکار داشته باشد تا انواع مختلف را در همان الگوی طراحی مشخص کند.
اسلاید 19 :
رویکردهای تحلیل رفتاری( behavioural analysis approaches) :
رویکردهای تحلیل رفتاری برای دستیابی به یک نتیجه دقیق ضروری هستند. همانطور که در ادبیات توضیح داده شده است ، آنها یک رویکرد بازیابی الگوی طراحی کاملاً یا نیمه خودکار را، بصورت استاتیک یا دینامیک ، یا ترکیبی از هر دو ارائه می دهند .
رویکردهای مبتنی بر گراف( Graph-based approaches) :
رویکردهای مبتنی بر گراف ها از ویژگیهای رفتاری استفاده می کنند تا جنبه های رفتاری نمونه های الگوی طراحی را بطور ثابت بررسی کنند ، و همچنین بیشترین استفاده از انواع نمایش های متوسط را برای تبدیل سیستم نرم افزاری و الگوی طراحی به طور جداگانه انجام دهند.
آنها تطبیق را بین هر نمایش واسطه مقایسه و پیدا میکنند. با این حال ، الگوهای طراحی کاوش یک گراف بزرگ, بی کیفیت است.
رویکردهای زیر الگویی( Sub-pattern approaches) :
روشهای قبلی تشخیص زیرالگو , تجزیه و تحلیل ساختاری و رفتاری را با هم ترکیب کرده اند. پیشرفت های بسیار خوبی حاصل شده است و نتایج معنی دار ارائه شده است ، اما با هزینه زمان عملکرد. بنابراین ، کارهای آینده در این زمینه باید روی یک روش کارآمد تر متمرکز شوند.
اسلاید 20 :
رویکردهای تحلیل معنایی( Semantic analysis approaches) :
تجزیه و تحلیل معنایی برای تشخیص دو الگوی طراحی با ساختارها و رفتارهای مشابه (به عنوان مثال ، الگوهای حالت و استراتژی) ضروری است.
رویکردهای مبتنی بر معنا( Semantic-based approaches) :
تقریباً همه رویکردهای موجود در نظر دارند که design pattern از طریق ساختار یا رفتار آن یا هر دو تشخیص داده می شود.
در حالی که گزاره های فعلی در تشخیص معنایی تمایل دارند معیارهای معنایی را در مورد نام کلاس و نام متود تدوین کنند ، این قوانین شناسایی به وضوح برای توسعه دهندگان محدود است که ازتکنیک برنامه نویسی خوبی استفاده می کنند.
رویکردهای مبتنی بر ماتریس( Matrix-based approaches) :
یک ماتریس مشترک و رویکرد معنایی برای جستجو به روشی جدید در طی یک فرآیند پیدا شده است.
رویکردهای مبتنی بر حاشیه نویسی Annotation-based approaches) :
تک آهنگ و همچنین الگوی استراتژی را می توان با روش حاشیه نویسی ارائه داد ، که گشایش دیگری در معناشناسی است. با این حال ، چنین روشی به شرایط حاکم بستگی دارد.