فهرست مطالب

فصل اول

اگرچه طراحی یک نرم¬افزار شی¬گرا دشواری¬های خاص خود را دارد، دشوار¬تر از آن، طراحی یک نرم¬افزار شی¬گرا با قابلیت استفاده مجدد است. الگوهای طراحی، استفاده از طراحی¬ها و معماری¬های موفق را آسان می¬کنند [1]. الگوهای طراحی راه¬حل¬های اثبات شده و قابل اطمینان هستند که به منظور حل مسائلی که به طور مکرر در طراحی یک نرم افزار شی¬گرا رخ می¬دهد، مورد استفاده قرار می¬گیرند. یک الگوی طراحی هدف و ساختار واحد خودش را دارد. الگوها نقش¬ها، مسئولیت¬ها، نحوه¬ همکاری کلاس¬ها و نمونه¬های شرکت کننده در این همکاری را توصیف می¬کنند. بنابراین با استخراج الگو¬های طراحی از کد منبع، قادر به آشکار کردن هدف و طرح یک سیستم نرم¬افزاری هستیم [5].
بکارگیری صحیح الگو¬های طراحی در توسعه یک نرم¬افزار شی¬گرا، می¬تواند به طور چشمگیری کیفیت کد منبع را بر حسب نگهداشت پذیری و قابلیت استفاده مجدد بهبود دهد. مهمترین مساله¬ نگهداشت¬پذیری سیستم¬های نرم¬افزاری خصوصا سیستم¬های قدیمی این است که فاقد سند کامل از طرح سیستم و اهداف آن هستند. بنابراین شناسایی الگوهای طراحی به صورت خودکار یا نیمه خودکار، سندسازی سیستم، نگهداشت¬پذیری و قابلیت استفاده مجدد آن را تسهیل می¬کند.
محققان بسیاری در زمینه شناسایی الگوهای طراحی، کار کرده¬اند (خودکار یا نیمه خودکار). اما هیچ کدام نتوانسته¬اند یک خروجی مطمئن و بدون مثبت کاذب را در اختیار توسعه-دهندگان قرار دهند. به طورکلی شیوه¬های شناسایی الگو¬های طراحی به دودسته تقسیم می-شوند. آنهایی که بر اساس جنبه¬های ساختاری الگوها، کار شناسایی را انجام می¬دهند و آنهایی که از جنبه¬های رفتاری موجود در الگو¬ها نیز جهت شناسایی بهره می¬گیرند [5].
هدف قرار دادن جنبه¬های ساختاری
برخی از شیوه¬ها، برای شناسایی الگوها، تنها جنبه¬ ساختاری آنها را در نظر می¬گیرند. ابتدا خصوصیات ساختاری هرکلاس موجود در کد منبع با هر نقش تشکیل¬ دهنده¬ یک الگو مقایسه و کاندیدهای هر نقش شناسایی می¬شود. سپس کاندیدهای نقش¬هایی که می¬توانند به هم مرتبط شوند، ترکیب می¬شوند. در نهایت روابط میان کلاسی را بدون توجه به خصوصیات رفتاری، تجزیه و تحلیل و با الگوها مقایسه می¬کنند. روابط¬ میان کلاسی شامل ارث بری، انواع برگشتی، تعریف ، تعمیم ، پیوند ، و … می¬شوند. به ¬عنوان¬ مثال¬ SPOOL [19]،DP++ [18]، Osprey [20]، و [21] به شیوه ساختاری فوق، الگوها را شناسایی می¬کنند.
بالانیا و همکارانش [3] با استفاده ازیک چارچوب به نام کولامبوس، گراف¬های معنایی منتزع را استخراج، و برای شناسایی الگو¬ها بر اساس مقایسه گراف¬ها عمل کردند [5]. همچنین [2] از معناشناسی صریح برای پیدا کردن الگوها روی گراف معنایی منتزع بهره می¬گیرد. در هر حال برای شناسایی الگوها، علاوه بر خصوصیات ساختاری، تجزیه و تحلیل خصوصیات رفتاری نیز ضروری است.
هدف قرار دادن جنبه های رفتاری
شیوه¬های بحث شده در بخش قبل قادر به تشخیص الگوهایی که از نظر ساختاری یکسان اما رفتار متفاوتی دارند نظیر الگوی” استراتژی” در مقابل الگوی”وضعیت ” نیستند. شیوه¬هایی که جنبه¬های رفتاری را هدف قرار می¬دهند، سعی می¬کنند این مساله را با استفاده از یاد-گیری ماشین، تحلیل پویا [24] یا تحلیل ایستا حل کنند [5].
تجزیه و تحلیل پویا
این شیوه¬ها از داده¬های زمان اجرا برای تشخیص جنبه¬های رفتاری الگو¬ها استفاده می¬کنند. کی تی [22]، تنها از تجزیه و تحلیل پویا برای تشخیص الگوی “زنجیره مسئولیت¬ها ” استفاده کرد اما نتیجه¬اش موفقیت¬آمیز نبود (به دلیل نامناسب بودن مکانیزم رخداد نگارى كردن پیام و ناکافی بودن داده آزمایش). تجزیه و تحلیل پویا به پوشش خوبی از داده¬ آزمایش به منظور اعمال هر مسیر اجرایی ممکن نیازمند است. چنین داده آزمایش اغلب موجود نیست. حتی اگر داده¬ آزمایش هم موجود باشد، نتایج زمان اجرا ممکن است گمراه کننده باشند. چون چنین داده¬هایی اصولا برای تشخیص دادن رفتار الگو¬های خاص، طراحی نشده¬اند [5].

1- مقدمه……………………………………………………………………………….8
1-1- فرضیات و محدودیت های مساله……………………………………………..12
1-2- ضرورت انجام تحقیق……………………………………………………………13
1-3- هدف از انجام تحقیق…………………………………………………………..13
1-4- سرفصل مطالب…………………………………………………………………..14

برای دانلود رایگان قسمت های بیشتراز فایل به انتهای مطلب مراجعه کنید

فصل دوم

در داده¬کاوی با دو مجموعه داده مواجه هستیم، داده¬ آموزشی و داده آزمایشی. صفات داده¬ آموزشی را مجموعه معیارهایی تشکیل می¬دهند که هویت موجودیت¬های قرارگرفته درر¬کورد¬ها را پیشگویی می¬کنند. موجودیت¬های داده¬ی آموزشی، مشاهداتی هستند که از قبل هویت¬شان شناسایی شده¬ است. داده¬ی آموزشی حاوی یک ستون پیش¬گویی است. مقادیر این ستون، با برچسب¬هایی پر می¬شوند که هویت اصلی موجودیت¬ها را نشان می¬دهد (مثلا درست یا غلط). داده¬ آزمایشی حاوی مشاهداتی است که هویت اصلیشان شناخته شده نیست. با تجزیه ¬و¬ تحلیلی که به واسطه¬ الگوریتم¬های داده¬کاوی روی داده¬ی آموزشی صورت می¬گیرد مدل¬هایی ساخته می¬شود. مدل¬سازی، دانش موجود در مشاهدات داده¬ آموزشی را در قالب یک سری قوانین استخراج می¬کند. داده¬ آزمایشی برای ارزیابی دقت پیش¬گویی مدل ساخته شده روی داده¬ آموزشی بکار برده میشود. در واقع پیشگویی یک فرایند دو مرحله¬ای دارد، فاز یادگیری و فاز دسته¬بندی.
‌‌‌در فاز یادگیری بر اساس مجموعه داده¬ی آموزشی، مدل طبقه¬بند ساخته می¬شود و در فاز طبقه¬بندی بر اساس مدل ساخته شده در فاز قبل، مجموعه داده¬ جدید که در فاز یادگیری استفاده نشده است (مجموعه داده آزمایشی) دسته¬بندی می¬شود (پیش¬گویی می¬شود که مشاهدات جدید چه برچسبی به خود بگیرند). جهت خودکار سازی عملگر تصحیح برچسب در این تحقیق، از روش¬های داده¬کاوی (الگوریتم¬های طبقه بندی) استفاده شده است [17].
دقت مدل، درصد نمونه¬هایی از مجموعه داده آزمایش است که به درستی طبقه بندی شده-اند. مجموعه داده لازم جهت ساخت مدل طبقه بندی، از متغیر¬های مستقل و وابسته تشکیل شده است. متغیر¬های مستقل همان خصیصه¬ها هستند که جهت طبقه بندی متغیر وابسته که در واقع بر چسب کلاس¬ها می باشد، مورد استفاده قرار می¬گیرند [17]. توضیح مختصری در مورد انواع طبقه¬بندی¬هایی که در این تحقیق مورد استفاده قرار گرفته اند در ادامه آمده است.

2-2-1- طبقه بند C5.0
این طبقه بند در واقع براساس تقسیم مبتنی بر نمونه روی فیلدی که بیشترین سود اطلاعاتی را با خود دارد، کار می¬کند. سپس هر زیرنمونه تعریف شده با اولین تقسیم، دوباره تقسیم می¬شود (معمولا بر اساس یک فیلد متفاوت). این فرایند تکرار می¬شود تا اینکه هیچ زیرنمونه قابل تقسیم نداشته باشیم. سرانجام پایین ترین سطح تقسیم ها دوباره بررسی می شوند. آنهایی که تاثیر قابل توجهی بر مقدار مدل ندارند حذف یا هرس می¬شوند [16].

2-2-2- طبقه بند SVM
یک طبقه بند و الگوریتم رگرسیون است که از تئوری یادگیری ماشین با حداکثر دقت پیش بینی بدون” اُور فیتینگ ” داده ها استفاده می¬کند. این روش از یک تبدیل غیر خطی بر داده های یادگیری استفاده می¬کند، و با جستجوی برای تساوی های رگرسیون در داده¬های تبدیل شده کلاس¬ها (اهداف) را جدا می¬کنند.SVM خصوصا برای آنالیز داده¬ها با تعداد زیادی از فیلد¬های پیش گویی کننده مناسب می¬باشد [16].
2-2-3- طبقه بند BOOSTED C5.0
یک الگوریتم داده¬کاوی است که برای کاهش خطای الگوریتم¬های یادگیری ضعیف (به آرامی به سمت طبقه بندی صحیح میل می¬کنند) مورد استفاده قرار می¬گیرد و آنها را به یک الگوریتم یادگیری قوی تبدیل می¬کند. در این کار برای قدرت بیشتر بخشیدن به الگوریتم تصمیم گیری C5.0 استفاده شده است [27].
2-3- معیارهای ارزیابی کارایی
ارزیابی دقت مدل¬های پیش¬بینی¬کننده این تحقیق برای عملگر تصحیح برچسب، برحسب نسبت تعداد تصمیم گیری¬های درست از سیستم¬های یادگیری در مقایسه با طبقه بندی دستی به تعداد کل کاندیدا است. ماتریس درهم جهت ارزیابی طبقه بندی¬های دودویی می¬باشد که در این تحقیق برای ارزیابی بخش پالایش نمونه¬ها وتصحیح برچسب استفاده می-شود [17]. همانطور که در جدول 2-1 مشاهده می شود ماتریس درهم کلاس های واقعی را در مقابل کلاس های پیش بینی شده در داده آزمایش نشان می¬دهد.

– تعاریف و مفاهیم اولیه……………………………………………………………..17
2-1- مقدمه……………………………………………………………………………17
2-2- تکنیک های طبقه بندی………………………………………………………..18
2-3- معیارهای ارزیابی کارایی………………………………………………………19
2-4- جمع بندی………………………………………………………………………..21

فصل سوم

در سال 1998 [10] یک روش سه مرحله¬ای برای شناسایی الگوها ارائه شد. ابتدا از طریق محاسبه¬ مقادیر یک سری معیارهای عام شی¬گرا، نظیر شمارش تعداد صفات، تعریف¬ها، و … برای هر کلاس موجود در کد و هر نقش الگوی مورد جستجو، کاندیدهای هر نقش شناسایی شد. در گام اول، فضای جستجو (از طریق حذف کلاسهایی که کاندید نشدند) تا حد زیادی کاهش داده شد. در مرحله دوم از طریق مسأله¬ کوتاهترین مسیر، نزدیکترین مسیر بین کاندیدهایی که می¬توانند به هم مرتبط شوند، شناسایی شد. سپس هر ترکیب بدست آمده از مرحله دوم به عنوان کاندیدهای الگوی مورد جستجو شناخته شد. در مرحله سوم به دلیل وجود مثبت کاذب بسیار زیاد در مرحله دوم، از محدودیت واگذاری مسئولیت استفاده شد. چنانچه الگویی باید این محدودیت را داشته باشد، ترکیب بدست آمده از مرحله دو، برای داشتن این محدودیت مورد بررسی قرار داده شد، چنانچه چنین محدودیتی نداشت آن ترکیب حذف می¬شد. با این حال، روش [10]، میزان مثبت کاذب بالایی دارد. عیب اصلی [10]، در محوریت اصلی کارشان، استفاده از معیارهای عام شی¬گرایی بود که از پایه با هدف سنجش الگوها استخراج نشده بودند.
درسال 2005 [4]، بجای ابداع یک ابزار جدید، یک روش پالایش ابزار خودکار ارائه داد. ورودی پالایش، خروجی ابزار 2003 [3] بود که توسط خودشان ابداع شده بود و میزان مثبت کاذب بالایی داشت. در[4]، براساس انعطاف¬پذیری¬ها و تنوع پیاده¬سازی¬های هر الگو، یک سری معیار استخراج شد. این معیارها از پایه با هدف سنجش و بررسی حضور الگوها استخراج شدند. روش کار به این صورت بود که خروجی بدست آمده از ابزار[3]، به صورت دستی تجزیه و تحلیل شد، و هر نمونه¬ شناسایی شده، مورد بازبینی قرار گرفت. بطوریکه اگر نمونه به درستی شناسایی شده بود، برچسب درست، و اگر ابزار در شناسایی آن دچار اشتباه شده بود، برچسب نادرست می¬گرفت. سپس یک مجموعه داده تهیه شد. نمونه¬ها به عنوان رکوردهای آن، معیارها به عنوان صفات توصیف کننده نمونه¬ها، و هویت آنها (درست و نادرست) به عنوان ستون خروجی مجموعه داده قرار گرفت. نهایتا با استفاده از الگوریتم¬های داده¬کاوی و مقادیر معیارها روی نمونه¬ها، یک سری قوانین استخراج شد که با کمک آنها می-توان نمونه¬های ناشناخته در مجموعه داده را تعیین هویت کرد.
کار[4] انجام شد تا، نمونه¬های مثبت کاذب ابزار شناسایی، و از خروجی حذف شوند. پالایش [4]، خروجی [3] را تاحد زیادی بهبود داد، اما معیارهای [4]، تنها بر اساس تنوع پیاده-سازی¬های یک الگو استخراج شده بودند و ساختار و عملکرد مشابه الگوهای دیگر در تولید معیارها در نظر گرفته نشده بودند. از طرفی با اینکه حذف نمونه¬های مثبت کاذب خروجی مطمئن¬تری را در اختیار توسعه دهنده قرار می¬دهد، در همان حال، خیلی از اطلاعات را نیز از بین می¬رود.
فرانسیسکا و همکارانش [12][11] ابزاری تحت نام مارپل متشکل از پنج ماژول اصلی را توسعه دادند. این ابزار نه تنها فعالیت شناسایی الگوهای طراحی را بلکه بازسازی معماری نرم افزار را نیز پشتیبانی می¬کند. اولین ماژول آن، موتور شناسایی اطلاعات نامیده می¬شود این ماژول مدلی از سیستم می¬سازد و یک سری معیارها و ساختارهای ریز را جمع آوری می¬کند. دومین ماژول که وصل کننده نامیده می¬شود تمام کاندیدای الگوهای طراحی که معیارهای یک تعریف داده شده از هر الگو را برآورده می¬کنند استخراج می¬کند. سومین ماژول، طبقه بندی است که کمک می¬کند مثبت کاذب های بخش قبلی را شناسایی کرده و شباهت آنها را با پیاده سازی¬های صحیح هر الگوی مورد نظر، با انتساب مقادیر اطمینان مختلف مورد سنجش قرار می¬دهد. دو ماژول آخر جهت بازسازی معماری نرم افزار مورد استفاده قرار می-گیرند. معیارهای اندازه گیری شده توسط مارپل، معیار¬های شی¬گرایی هستند که در تولید بعضی از منظر¬های معماری بهره¬گیری می¬شوند. بخش یادگیری ماشین از فرایند شناسایی، توسط ماژول سوم پیاده سازی می¬شود که کاندیدای استخراج شده از ماژول دوم را به عنوان ورودی می¬گیرد و سپس از الگوریتم¬های گروه¬ بندی و طبقه بند موجود در نرم افزار weka برای پالایش کردن نمونه¬های مثبت کاذب استفاده می¬کند. عملیات پالایش این شیوه با محاسبه نمره مشابهت بین نمونه صحیح هر الگو با کاندیدای شناسایی شده انجام می¬گیرد. نمره دهی بر حسب مشابهت، به ساختار پایه الگو بسیار محدود می¬شود درحالیکه الگوهای طراحی در خیلی از موقعیت¬ها از ساختار پایه¬ خود به دلیل انعطاف پذیری که دارند، دور می¬شوند.
ستورا و همکارانش [13] شیوه¬ای را ارائه دادند که بر اساس آن، کاندیدای نقش¬هایی که ترکیب آنها کاندیدهای الگوها را تشکیل می¬دهد، با اندازه¬گیری یک سری معیار¬ها و تکنیک-های داده¬کاوی، جستجو می¬شود. سپس با آنالیز رابطه¬ی بین کلاسی کاندید¬ها، الگوی مورد نظر شناسایی می¬شود. در این شیوه سعی می¬شود الگوهایی که ساختار مشابهی به یکدیگر دارند از هم تشخیص داده شوند، اما در واقع معیارهای استخراج شده برای الگوهایی با ساختار مشابه را دقیقا یکسان در نظر گرفته¬اند و آنها را در یک گروه شناسایی می¬کنند. در این روش از تکنیک شرایط محدود کننده استفاده نمی¬شود و خصوصا به همین دلیل روششان آماده پذیرش مثبت کاذب بسیاری می¬باشد.
تی سن تا لیس و همکارانش [12][9] ابزاری به نام SSAارائه دادند. در SSA از یک الگوریتم نمره¬دهی که نمره¬ مشابهت هر زیر گراف سیستم را (فضای جستجو) با هر گراف الگوی مورد جستجو محاسبه می¬کرد، استفاده شد. چون الگوریتم SSA خواص انتقال را در ارث بری و واگذاری مسئولیت در نظر می¬گیرد، تنوع پیاده¬سازی¬های یک الگو که از ساختار پایه خود فاصله گرفته¬اند را نیز شناسایی می¬کند. SSA درصد بازیابی بالایی دارد، تعداد زیادی از الگوهای موجود را شناسایی می¬کند، به راحتی قابل استفاده است، و همچنین سرعت بالایی دارد. اما بدلیل اینکه الگوریتم SSA تنها بر قواعد ساختاری تاکید دارد، الگوهایی که ساختار یکسانی دارند و تنها در رفتار متفاوت می¬شوند، و یا آنهایی که عملکرد مشابهی دارند، توسط SSA قابل متمایز شدن نیستند و SSA آنها را در یک گروه شناسایی می¬کند (مثل “وضعیت/ استراتژی”).

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

فصل چهارم

برای آماده¬سازی مجموعه داده مورد نیاز جهت خودکار¬کردن عملیات تصحیح برچسب و پالایش، دو فعالیت مهم باید صورت بگیرد. اول، مجموعه کاملی از الگوهایی که با قرار¬گیری در موقعیت¬های متفاوت از ساختار پایه دور شده¬اند و توسط ابزارهای خودکار شناسایی با الگویی نظیر استراتژی اشتباه گرفته شده¬اند و همچنین مجموعه کاملی از انعطافاتی که مربوط به هر الگو می¬باشد، باید فراهم گردد. سپس تولید مقادیر برای معیارهای استخراج شده در این تحقیق که همان پیش¬بینی کننده¬ها می¬باشند انجام می¬گیرد. بنابراین در این فصل ابتدا تمام معیارهای استخراج شده در این تحقیق شرح داده می¬شود. سپس توضیحی در مورد چگونگی تولید مجموعه داده برای عملیات تصحیح برچسب و پالایش فراهم می-گردد.

4-2- معیارهای استخراج شده
معیارهای جدید استخراج شده در این تحقیق، با بررسی و مشاهده دقیق مجموعه¬ای تقریبا کامل از انعطاف پذیری¬های هر الگو¬ی طراحی از کد منبع استخراج شده¬اند. در استخراج این معیارها سعی شده است که علاوه بر بررسی انعطافات یک الگو، ابزار¬های خودکار مختلف در شناسایی آن الگو به منظور مشاهد¬ه¬ نقص و کمبود¬های آنها مورد بررسی قرار گیرند. ابزار¬ها بررسی می شوند چون در این تحقیق قصد بر آن است که نتایج شناسایی شده توسط آن ابزار ها به حد قابل قبولی بهبود یابند.
با بررسی ابزار¬ها، خطاها و کمبودهای هر ابزار شناسایی را جستجو و با استخراج معیارها سعی بر رفع آن می¬کنیم. مجموعه معیارهای استخراج شده برای تصحیح برچسب الگوی استراتژی و تشخیص صحیح آن از هشت الگوی “وضعیت”، “استراتژی”، “تطبیق دهنده”، “فرمان”، “ملاقات کننده”، “میانجی”، “آذیین کننده”، “ترکیب” و”کارخانه انتزاعی” به کار گرفته می شوند.

4-2-1. استراتژی

هدف الگو استراتژی، تعریف خانواده¬ای از الگوریتم¬ها برای یک عمل مشترک (مثل الگوریتم های quik sort- buble sort برای عمل sort)، در پوشینه قرار دادن هرکدام و ایجاد امکانی برای تعویض آنها در یک زمینه¬ خاص و در زمان اجرا است [14][1]. این الگو از سه نقش تشکیل می¬شود : استراتژی، استراتژیهای عملی، و زمینه. استراتژی، رابط یا یک کلاس منتزع است که از یک متدکه اسکلت مشترک این خانواده را معین می¬کند تشکیل شده است. این متد توسط هر یک از کلاس¬های استراتژی عملی برای دربرگرفتن یکی از تنوع الگوریتم¬ها، پیاده¬سازی می¬شود. زمینه، کلاسی است که از الگوریتم¬ها استفاده می¬کند و شرایطی را ایجاد می¬کند که بتوانیم استراتژی¬ها یا الگوریتم¬ها را بر حسب شرایط مختلف در زمان اجرا تعویض¬کنیم.
در ساده¬ترین شکل همانطور که در شکل 1-4 نشان داده شده است، الگوی استراتژی یک رابط مشترک را مثل ” Interface Algorithm¬ ” برای پیاده¬کردن خانواده¬ای از الگوریتم¬های مرتبط به هم استفاده می¬کند. بطوریکه هر استراتژی وارث در چارچوب این رابط مشترک، یک تنوع از الگوریتم را پیاده¬سازی می¬کند. در واقع مشترک بودن رابط (بین گونه¬های مختلف الگوریتم) این امکان را فراهم می¬کند که در یک زمینه خاص با فراخوانی¬های ثابت، اشیا استراتژی بتوانند در زمان اجرا جابجا شوند. شکل 2-4 را مشاهده کنید.

– تولید مجموعه داده ………………………………………………………………..30
4-1- مقدمه……………………………………………………………………………30
4-2- معیارهای استخراج شده………………………………………………………31
4-3- چارچوب آنالیز جهت شناسایی اولیه و تصحیح برچسب الگوهای طراحی………………………………………………………………………………….48
4-4- جمع بندی…………………………………………………………………………50

فصل پنجم

– آزمایشات و نتایج عددی……………………………………………………………51
5-1- مقدمه…………………………………………………………………………….52
5-2- کارایی یادگیری………………………………………………………………….52
5-3- جمع بندی………………………………………………………………………..56
6- نتیجه گیری و کارهای آتی………………………………………………………..58
– فهرست منابع و مآخذ………………………………………………………………59
– چکیده به زبان انگلیسی …………………………………………………………62

فهرست جدول ها

جدول2-1ماتریس درهم………………………………………………………………..19
جدول 4-1بخش کوچکی از مجموعه داده برای عملگر تصحیح برچسب…………49
جدول4-2 بخش کوچکی از مجموعه داده برای عملگر پالایش…………………..50
جدول 5-1ارزیابی دقت بکارگیری معیارها و روش داده¬کاوی C5.0 با روش یکی در مقابل همه……………………………………………………………………………………..53
جدول 5-2 ارزیابی دقت بکارگیری روش داده¬کاوی SVMو معیارها با روش یکی در مقابل همه………………………………………………………………………………………53
جدول 5-3 ارزیابی دقت بکارگیری روش داده¬کاویBoosting و معیارها با روش یکی در مقابل همه………………………………………………………………………………………54
جدول 5-4 ارزیابی دقت بکارگیری روش داده¬کاوی SVM و معیارها با روش دو در دو………………………………………………………………………………………….55
جدول 5-5 ارزیابی دقت بکارگیری روش داده¬کاوی Boosting و معیارها با روش دو در دو………………………………………………………………………………………….55
جدول 5-6 ارزیابی دقت بکارگیری روش¬های داده¬کاوی و معیارها با روش چند برچسب……………………………………………………………………………………55

برای دانلود رایگان قسمت های بیشتراز فایل به انتهای مطلب مراجعه کنید

فهرست شکل ها

شکل4-1الگوی استراتژی……………………………………………………………….32
شکل4-2یک نمونه الگوی استراتژی حقیقی………………………………………….32
شکل4-3 رابط های یک نمونه الگوی استراتژی حقیقی……………………………..33
شکل4-4ترتیب فراخوانی از رابط های یک استراتژی حقیقی………………………33
شکل 4-5 الگوی وضعیت…………………………………………………………………35
شکل 4-6الگوی تطبیق دهنده شی……………………………………………………37
شکل4-7الگوی کارخانه انتزاعی…………………………………………………………39
شکل4-8الگوی فرمان…………………………………………………………………….40
شکل4-9شباهت ساختاری الگوی فرمان و تطبیق دهنده شی……………………..41
شکل4-10 الگوی ملاقات کننده………………………………………………………….42
شکل4-11 الگوی میانجی……………………………………………………………….43
شکل4-12الگوی آذیین کننده……………………………………………………………44
شکل4-13الگوی ترکیب…………………………………………………………………46
شکل 4-14 مراحل ایجاد مدل¬های تصمیم¬گیری…………………………………49
شکل 5-1 بهبود روی ابزار شناسایی خودکار الگوهای طراحی ” SSA”ا………..55
شکل 5-2 بهبود روی ابزار شناسایی خودکار الگوهای طراحی ” PINOT “..ا…..56

 

Abstract

Design patterns are reliable and stable solutions to frequently occurring problems in object oriented software design. Trace the design pattern contributes to recovery hidden design and purpose in code. Also contributes easy maintainability. Whereas easy maintainability is very important and inevitable, so automatic design pattern detection is very considerable. Majority automatic design pattern detection tools have high recall, but in recognizing design patterns, especially structurally and behaviorally similar patterns high false positive is produced yet. Hence filtering operation is purposed. The filtering identifies and removes false positives. In this paper an operation entitled “label correcting” is presented, label correcting firstly recognizes false positives and then corrects tools output. Automatic label correcting is performed by data mining techniques. This approach corrects outputs with learning accuracy about 97.8% in “multi classifications”, 99.3% average in “one versus rest” classification and 99.6% average in “pairwise” classification.



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


فایل pdf غیر قابل ویرایش

قیمت25000تومان

خرید فایل word

قیمت35000تومان