فصل اول: کلیات

1-1- مقدمه

آن چیز که که بین تمام علوم مشترک می باشد، حجم وسیعی از اطلاعات و داده به شکل­های مختلف می باشد، که همراه با پیشرفت و وسعت علوم بزرگتر و ارزشمندتر می­گردد. با رشد سریع علوم کامپیوتر و بهره گیری از آن در چند دهه اخیر، تقریبا همه سازمان­ها در پروژه­های مختلف خود حجم عظیمی داده در پایگاه­های داده ذخیره می­کنند. این سازمان­ها و کسانی که به نوعی در پروژه­ها سهیم هستند به فهم این داده­ها و بهتر بگوییم کشف دانش نهفته در آن نیازمندند. این نیاز، باعث به­وجود آمدن حوزه جدید میان رشته­ای کشف دانش و داده­کاوی[1] شده می باشد، که حوزه­های مختلف همچون پایگاه داده، آمار، یادگیری ماشین را برای کشف دانش ارزشمند نهفته در اطلاعات و داده­ها را با هم تلفیق می­کند. اصطلاح Data­ Mining همان­گونه که از ترجمه آن به معنی داده­کاوی مشخص می گردد، به مفهوم استخراج اطلاعات نهان، و یا الگوها وروابط مشخص در حجم زیادی از داده‌ها در یک یا چند بانک اطلاعاتی بزرگ می باشد.

هر نرم­افزار در طول فرآیند­تولید و پس از آن، انبوهی از اطلاعات ­و مستندات دارد که قابل کاوش و بهره گیری­ مفید می باشد. این داده­ها معمولا در پایگاه­ داده­هایی به­نام مخازن نرم­افزاری[2] ذخیره و نگهداری می­شوند. مخازن نرم­افزاری نمایش دقیقی از مسیر­تولید یک سیستم ­نرم­افزاری ارائه می­دهند]1 .[هدف ازکاوش مخازن نرم­افزاری[3]MSR بهره گیری هوشمند از تحلیل داده­های نهفته در آن­ها برای کمک به تصمیم­گیری های بهتر و سریعتر در پروژه تولید و پشتیبانی آن­ها می باشد. آن­چه که در اینجا مورد توجه این پژوهش می باشد، استخراج اطلاعات مهم برای همه ذینفعان پروژه نرم­افزاری می باشد. این اطلاعات از مجموعه داده­های مرتبط با خطا­های رخ داده در طول تولید و پشتیبانی پروژه استخراج می گردد.

در سال­های گذشته مدل­های مختلفی با بهره گیری از الگوریتم­های داده­کاوی، تشابه متن و دسته­بندی و خوشه­بندی داده­ها ارائه شده. اما از آن­جا که جستجو و استخراج اطلاعات از میان داده­های متنی نیازمند روشی هوشمند برای تطبیق جنبه­های معنایی و دستوری می باشد، نیاز به مدل­هایی که از الگوریتم­ها معنایی بهره گیری­کنند هست.در پژوهش­های مورد مطالعه این نیاز حس می­گردد.

کوشش بر این شده که با بهره گیری از الگوریتم معنایی برپایه مجموعه تشابه جملات[4]بر پایه LCS[5]]3[ و تشابه کلمات (SOC-PMI[6] )]3[، روی مستندات ذخیره­ شده در مخازن خطای نرم­افزار، مانند راه­حل­های ارائه ­شده برای خطا­های مشابه مدل­های قبلی را تکمیل­کرده و جوابی بهینه و سریع­تر برای خطای پیش آمده پیدا کنیم. همچنین می­توان زمانی تخمینی نیز برای تصحیح خطا پیش­بینی نمود تا راهنمای تیم توسعه و ذینفعان دیگر نرم­افزار باشد. همچنین دید بهتری نسبت به طریقه پیشرفت و تکامل نرم­افزار مورد نظر ارائه ­گردد.

2-1- تعریف مسئله

یکی ­از مراحل مهم و اساسی در مهندسی ­و تولید نرم­افزار مرحله یافتن و رفع خطا­های موجود در نرم­افزار می باشد. این مرحله از تولید نرم­افزار جزء وقت­گیرترین و پرهزینه ­ترین مراحل به­ حساب می­آید]4[. سال­هاست که دانش داده­کاوی و استخراج دانش به کمک مهندسین نرم­افزار آمده­می باشد. رفع خطا در فرآیند تولید بسته به مدل توسعه نرم­افزار چندین بار انجام می­گیرد. خطا­ها و معضلات برطرف ­شده معمولا به روش­های مختلف تحت عنوان مخازن خطای نرم افزار، مستند­سازی و ذخیره می­گردد. این مخازن منابع عظیم دانش هستند، که کمک بزرگی در تسریع زمان تولید نرم­افزار و پایین­آوردن هزینه­ها خواهد­بود]5[. روش­هایی نیاز­می باشد که این دانش و اطلاعات مفید استخراج گردد. در این پژوهش روشی برای سرعت بخشیدن به رفع­خطای جدید با بهره گیری از اطلاعات موجود در مخازن خطای نرم­افزار، ارائه شده­می باشد. مدل­های زیادی تا به­حال ارائه­شده که یا مکمل هم بوده یا از الگوریتم­های جدید بهره گیری شده­می باشد. مدل­های پیشنهادی با بهره گیری از تشابه متن همگی از الگوریتم­های معمولی و ساده بهره گیری کرده اند. در این مدل ها به این نکته مهم کمتر توجه شده که مخازن حجم بالا و پیچیده­ای از اطلاعات را شامل می­شوند، که بعضاً تشابه بین کلمات و معانی مختلف یک جمله نتیجه­گیری را سخت­تر می­کند. پس نیاز به الگوریتم­های معنایی در مطالعه تشابه متن احساس می­گردد. همچنین بایستی به این نکته مهم توجه نمود که الگوریتم معنایی انتخاب ­شده بهینه می باشد و قادر باشد میان این حجم اطلاعات که از سوی کاربران مختلف ثبت می­گردد، بهترین جواب با تشابه بیشتر را انتخاب کند. اگرچه تا به­حال روش­های بسیاری برای تکمیل مخازن خطا و بهره گیری از دانش نهفته در آن صورت­گرفته اما می­توان گفت که ضرورت اهمیت به تشابه معنایی بین داده­ها در نظر گرفته نشده ­می باشد. در این پژوهش کوشش شده که این اشکال در جستجو و بهره­گیری دانش نهفته در این مخازن داده پوشش داده ­گردد.

مدل ارائه ­شده در اینجا آغاز لیستی از خطا­های مشابه خطای جدید با بهره گیری ازیک الگوریتم تشابه معنایی مناسب، با در نظر داشتن اطلاعات متنی ذخیره­شده ارائه می­دهد. در مرحله بعد این خطا­ها براساس چرخه ­عمر خطا با بهره گیری از روش خوشه­بندی K-means، خوشه بندی می­شوند.

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

3-1- پیشینه تحقیقاتی

شاید بتوان گفت که بنیان MSR و نرم­افزارهای ردیابی­خطا[7]با تولید [8]GNATS در سال­1992 نهاده ­گردید. پس از آن نرم­افزارهای­متعددی به یاری مهندسی ­نرم­ افزار شتافت ه­می باشد. در این مدت کوشش و اهتمام محققان بر تکمیل مدل­ها و موتورهای­جستجو مورد ­بهره گیری در این نرم­افزارها بوده ­می باشد. در سال 2000 مدلی با بهره گیری­از رگرسیون ­فازی[9] برای تخمین تعداد خطا­های ­موجود در نرم­افزار ارائه­گردید]6[. در]5[ همین کار با بهره گیری از شبکه­های­عصبی انجام­گردید. در­سال 2007 LucasD.Panjerداده­کاوی را برای تخمین زمان­خطا با مقایسه پنج الگوریتم دسته­بندی داده­ها مطرح نمود­]7[. Suma.V و همکارانش به سراغ روش­های خوشه­بندی رفته و ثابت­کردند که روش K-mean در میان روش­های مورد مطالعه آنها بهینه­تر بوده ­می باشد]8[. CathrinWeiß و همکارانش از روش نزدیکترین همسایه و تشابه جملات با بهره گیری از موتور­ارزیابیLucene[10] بهره گیری­ کردند]9[.Lucene خود از SVM و یک مدل بولی[11] برای جستجو و ارزیابی متون بهره گیری ­می­کند. Nagwani نیزدرمدل­های­ مختلفی از الگوریتم ­های داده­­کاوی متعددی برای اهداف مختلف بهره گیری­­نمود]10[،]11[،]12[. اما همه این روش­ها یا به جنبه­­ معنایی تشابه متون و کلمات توجه نداشتند. یا برای استخراج ضریب ­تشابه دو متن از الگوریتم­های­ مناسب برای این محیط بهره ­نبردند. الگوریتم­های بهره گیری­ شده بیشتر به تاثیر یک متن و یافتن ضریب ­تشابه آنها با متن کاربرتوجه داشتند­، معمولا استاتیک بودند و هیچگاه به بهره­وری روش در محیط با حجم بالا توجه نداشتند. نوآوری کار تحقیقاتی ارائه­شده نسبت به مدل­های قبلی بهره گیری از یک الگوریتم بهینه با دقت بیشتر در اندازه­گیری تشابه میان دو متن می باشد به­طوری­که با حجم زیاد مستندات و کلمه­های مشابه در مخازن نرم­افزاری سازگار باشد. این الگوریتم تشابه جملات و تشابه ­معنایی بین کلمات را با هم ترکیب می­کند. به­طوری­که­، مشابه­ترین جملات را، با توضیحات داده­شده برای خطا از سوی کاربر، از میان داده­های قبلی در مخزن استخراج کند.

4.1. فرضیه های پژوهش

  1. مخازن خطای هر نرم افزار منابع ارزشمند دانش هستند.
  2. اطلاعات ثبت شده در مخازن خطا به پیشبرد سریعتر و کم هزینه تر فرآیند تولید نرم افزار کمک می کند
  3. ثبت روش حل مشکل یا خطا در طول فرآیند تولید می تواند به توسعه دهنده پروژه برای حل خطا جدید کمک کند.
  4. برای پیش بینی قسمتی از زمان انجام پروژه و هزینه آن می توان از این اطلاعات بهره گیری نمود.

5.1. اهداف پژوهش

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

  1. ارائه یک روش برای کاوش مخازن خطای نرم­افزار که کاستی­های روش­های قبلی در اندازه­گیری اندازه تشابه بین نمونه و خطا را پوشش­دهد.
  2. یافتن خطا­های مشابه با خطای­ جدیدواستفاده از آنها برای تخمین زمان لازم برای رفع­خطا
  3. تعیین اندازه پیچیدگی خطای­ جدیدبا محاسبه میانگین طول عمر خطا­هایی با شباهت بیشتر
  4. بهره گیری ازراه­کارهای رفع ­خطا با جستجوی خطا­هایی با ضریب تشابه بالاتر با خطای ­جدید

دانلود متن کامل در سایت sabzfile.com
هدف نهایی کاهش هزینه­های مالی پروژه­های نرم­افزاری و تسریع درفرآیند مهندسی­نرم­افزار می باشد.

6.1. نوآوری پژوهش

آن چیز که بیش از همه به ­عنوان نوآوری در کار و بهبود روش­های گذشته مطرح می باشد:

  1. بهره گیری از یک الگوریتم معنایی مناسب به­همراه تشابه خطی در مرحله اول
  2. بهره گیری از الگوریتم­های خوشه­بندی در مرحله دوم.

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

7.1. ساختار پایان نامه

این پژوهش شامل 5 فصل می باشد که ترتیب فصول و موضوعات مطرح ­شده به­صورت کلی در زیر اظهار شده­می باشد:

1.7.1. فصل اول: کلیات(همین فصل)

در این فصل یک مقدمه از حوزه این پژوهش ارائه ­شده و در آن مشخص­شده که هدف از این پژوهش چیست و خواهان پاسخ­گویی به چه سوالی هستیم. در ادامه همین فصل یک تبیین مختصر از تحقیقات انجام­شده در مورد موضوع این پژوهش ارائه ­شده می باشد. در نهایت نیز یک دید کلی از فصل­های مختلف این پژوهش ذکر گردیده­می باشد. جستجو در سایت :   

2.7.1 .فصل دوم: ادبیات پژوهش

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

3.7.1. فصل سوم : بهره گیری از تکنیک­های داده ­کاوی برای کشف و رفع خطاهای نرم ­افزار بر پایه ضریب تشابه­ معنایی متن و خوشه­ بندی

ضریب ­تشابه رشته ای یا خطی بر پایه LCS ، روش SOC-PMI به­عنوان یک روش معنایی و تشابه جملات بر اساس عبارات مشترک معرفی­می شوند. و در نهایت روش اندازه­گیری شباهت ترکیبی با ادغام و بهینه­سازی این روش­ها معرفی می­گردد. روش­های خوشه­بندی و محاسبه میانگین داده­ها مورد نیاز این پژوهش هم اظهار می­شوند. روش پیشنهادی با بهره گیری­از استراتژی­ها و روش­های انتخاب­شده که با محیط ­داده­ای مخازن سازگار هستند، برای یافتن خطای مشابه­تر با خطای ­جدید تشریح ­می­گردد و تبیین­می­دهیم که چگونه با یک خوشه­بندی و محاسبه می­توانیم اندازه پیچیدگی و تخمینی برای زمان رفع­خطا ارائه­نمود.

4.7.1.فصل چهارم: اعتبارسنجی و توسعه

پیاده سازی روش بر روی نمونه داده­ های واقعی که از مخزن خطا استخراج ­شده با بهره گیری از برنامه­نویسی و نرم­افزار Rapid miner[12]، مقایسه روش از نظر زمان و دقت پاسخ­گویی با روش­های دیگر. همچنین روش ارائه ­شده را با روشهای قبلی مورد مقایسه و تحلیل موضوعی قرار می­دهیم.

5.7.1. فصل پنجم : نتیجه گیری

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

[1]-Knowledge Discovery and Data Mining(KDD)

[2]-Software Repositories

[3]-Mining Software Repositories

[4]-String Similarity

[5]-longest common subsequence

[6]-Second-order co-occurrence pointwise mutual information

[7] -Bug Tracking

[8] -GNU product’s issue-tracking software

[9] -Fuzzy Regresion

[10]– www.lucene.apache.org

[11]Boolean model 

[12]-www.apidminer.com

***ممکن می باشد هنگام انتقال از فایل اصلی به داخل سایت بعضی متون به هم بریزد یا بعضی نمادها و اشکال درج نشود اما در فایل دانلودی همه چیز مرتب و کامل و با فرمت ورد موجود می باشد***

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

این مطلب رو هم توصیه می کنم بخونین:   دانلود پایان نامه ارشد:بررسی تطبیقی متدولوژی های مبتنی بر عامل

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

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

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

موجود می باشد

تعداد صفحه : 83

قیمت : 14700 تومان

 

***

—-

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

****         serderehi@gmail.com