یکی ­از مراحل مهم و اساسی در مهندسی ­و تولید نرم­افزار مرحله یافتن و رفع خطا­های موجود در نرم­افزار است. این مرحله از تولید نرم­افزار جزء وقت­گیرترین و پرهزینه ­ترین مراحل به­ حساب می­آید]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. استفاده ازراه­کارهای رفع ­خطا با جستجوی خطا­هایی با ضریب تشابه بالاتر با خطای ­جدید

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

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

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

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

موضوعات: بدون موضوع  لینک ثابت


فرم در حال بارگذاری ...