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

2.2. انواع مخازن داده
1.2.2.کد اصلی:
کد اصلی بخش قابل اجرا و رفتار یک توسعه نرمافزاری است. که در نهایت به صورت فرمت اجرایی به مشتری تحویل داده میشود. که عموما به عنوان مهمترین داده از سوی توسعهدهندگان مورد توجه قرار میگیرد. مخزن حاوی این اطلاعات شامل تعدادی از منابع کد و اسناد در یک یا چند زبان مختلف برنامهنویسی است. این اسناد معمولا به موجودیتهای منطقی به نامهای ماژول13یا بسته گروهبندی میشوند. تمام این مجموعه اطلاعات کد اصلی سیستم نامیده میشود. برای کاوش این متون تمرکز روی شناسهها (متغیر، نام)، توضیحات و رشتههای اصلی داخل کد اصلی است. معمولا کلمات کلیدی و نمادها در نظر گرفته نمیشوند.

2.2.2. مخازن خطا(سیستم ردیابی خطا BTS14)
این مخازن برای ذخیره اطلاعات مربوط به ایجاد و حل خطا، مشخصات ارتقاء سیستم و کلیه اقدامات دیگر در مرحله تعمیر و نگهداری استفاده میشوند. معمولا هنگامیکه توسعهدهندگان و کاربران به مشکل یا خطایی در یک سیستم نرمافزاری مواجه میشوند، یادداشتی درباره این خطا در پایگاه داده خطا در موضوع مربوطه ذخیره میشود. این اطلاعات شامل: علت و مکان وقوع خطا در برنامه و اینکه چگونه خطا باعث ایجاد اشکال و خلل در روند برنامه شده است. پس از آن یک یا چند متخصص، موضوع ایجاد شده را برای رفع مشکل بررسی میکنند. چنانچه خطا برطرف شود موضوع در فرم مربوطه بسته میشود. تمام این اطلاعات در مخازن و پایگاههای خطا ذخیره میشوند. عمومیترین سیستمهای مخازن خطا Bugzilla ، Trac هستند.
اگرچه تا به امروز سیستمهای متعددی ساخته شدهاند. در حالت عادی بین خطا15، نقص16، عیب17 تفاوت قائل میشویم، اما در این تحقیق همه را با لفظ خطا و هم معنی در نظر میگیریم.
3.2.2. لیست نامهها و گفتگوهای ثبت شده
لیست ایمیلها (یا آرشیو بحثها) همراه با گفتگوهای ثبت شده بین افراد دخیل در یک پروژه آرشیوی از ارتباطات متنی توسعهدهندگان ، مدیران و ذینفعان آن پروژه هستند. لیست متنی متشکل از بستههای الکترونیکی که شامل سه قسمت:
سرآیند (فرستنده ،گیرنده و زمان ارسال)
بدنه پیغام(متن داخل ایمیل)
مجموعهایاز فایلهای پیوستشده(مستندات اضافی که همراه ایمیل فرستاده میشود) میباشد.
شرح گفتگوها شامل ثبت مکالمات فوری بین ذینفعان پروژه، که بر حسب زمان یا نویسنده دستهبندی شدهاند، میباشد.
4.2.2 .پایگاه داده کنترل منبع (پایگاه داده کنترل ویرایش ها)
سیستمی برای ثبت تاریخ تغییرات (ویرایشها) بههمراه خود ویرایش و اطلاعات دیگر به صورت اسناد و اطلاعات متنی است. توسعهدهندگان معمولا تاریخ و زمان ویرایش یک کد اصلی را در پایگاه دادههایی ذخیره میکنند. پایگاه دادههای کنترل کد رایج مانند] cvs 13[ و] svn 14[ ، به توسعه دهندگان اجازه میدهند به یک کپی از مخزن سراسری و جهانی، در سیستم فایلهای محلی خود، دسترسی داشته باشند. اسناد موجود را ویرایش کند، یا اطلاعاتی اضافه یا کم کند و یا ساختار دایرکتوری این مخازن را تغییر دهند. همچنین میتواند در مخزن اصلی سند یا اطلاعات جدید محلی ایجاد کند.
بنابراین کنترل بازبینیها دو نتیجه مهم در بر خواهد داشت:

اول اینکه به توسعهدهندگان اجازه میدهد، مستقل از کسانی که به مخازن دسترسی دارند، فایلهای روی سیستمهای خود را تغییر دهند . پس از آن که تغییرات تایید شده ایجاد شد بقیه میتوانند این تغیرات را بررسیکنند. این استقلال کاری اجازه میدهد که یک چرخه کار موازی بدون نیاز به ارسال ایمیل و گفتگو و نیز بدون تغیرات ورژن برنامه به عقب و جلو تشکیل شود.
دوم اینکه زمان و تاریخ همه اطلاعات و مستندات به صورت خودکار ثبت و نگهداری میشود. اگر نسخههای قبل نرمافزار نیاز بود، توسعهدهندگان بهراحتی میتوانند به نسخههای قبل سیستم دسترسی داشته باشند و سیستم را به نسخه قبلی برگردانند.
5.2.2. اطلاعات طراحی و نیازمندیهای سیستم
مستندات نیازمندیها، معمولا در ارتباط با مشتری و یا با تاییدهای او تنظیم میشود. این اسناد لیستی از نیازهای مشتری است که خواهان انجام آن توسط سیستم است. این نیازها به دو صورت دستهبندی میشوند. اینکه چه نیازهایی را سیستم باید برطرف کند و چگونه و با چه کیفیتی موردانتظار مشتری است. اطلاعات طراحی نیز شامل تمام اطلاعات مربوط به طراحیمعماری و الگوریتمهای مهم و مورد استفاده18 سیستم است. طراحی سیستم میتواند به شکل نمودار(مانند UML) و یا بهصورت متون جریان کار نمایش داده شوند.

6.2.2. مخازن شرح اجرا
اطلاعات مربوط به خروجی یک برنامه در حین یک یا چند بار اجرا، بر حسب آن چه که در قسمت تست مشخص شده ثبت میشود. این اطلاعات شامل لیستی از زمان و دلیل اجرا شدن متدهای یک سیستم، مقادیر قطعی متغیرها و جزئیات مربوط به شرایط اجراست. این لیست هنگامی مفید است که فرآیند اشکالزدایی در مقیاس وسیع همزمان با هزاران یا میلیونها فرآیند دیگر از سوی افراد مختلف انجام شود. در این هنگام پیدا کردن اشکالات فردی لازم اما کاری دشوار و زمان بر است. این مخازن کمک میکنند به تک تک این اجراها با جزئیات دسترسی داشته باشیم.
7.2.2. مخازن سیستم نرم افزار
مخازن سیستم نرمافزار شامل مجموعهای از سیستمهای مختلف به همراه کد اصلی آنها که افراد علاقهمند میتوانند بهراحتی در آن جستجو کرده و از آنها استفاده نمایند. از مخازن مهم رایج در این حوزه میتوان به Source Forge ]15 [وGoogle Code ]16[ اشاره کرد.
این مخازن شامل آرایه وسیعی از اطلاعات در حوزههای مختلف پروژههای نرمافزاری است که میتوان اطلاعات غنی را در فازهای مختلف آن استخراج کرد. آنچه بهعنوان منابع داده در این تحقیق مورد استفاده قرار میگیرد همان مخازن خطا است. که با استفاده از یک سیستم ردیابی خطا نمونههای آماری لازم استخراج می شود]17[.

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

1.3.2.سیستم ردیابی خطا
سیستم ردیابی خطا یک برنامه نرمافزاری است که برای کمک در سهولت پیگیری خطاهای نرم افزاری در طول عمر پروژه طراحی و ارائه شدهاست. این سیستم یک نرمافزار کاربردی برای تیم توسعه است بهطوری که به آنها در تضمین کیفیت و کاهش هزینه ها و پیشرفت سریع پروژه کمک میکند. این سیستمها به کلیه افراد دخیل در یک پروژه اعم از کاربران، توسعهدهندگان و ذینفعان دیگر اجازه میدهد که خطای رویت شده در نرمافزار را در هر مرحله از روند تولید که باشد گزارش داده و پیگیری کنند. بسیاری از پروژههای بزرگ از این نرمافزارها استفادهکرده و پروژههای خود را در نسخههای مختلف ارائه میدهند. تا در مراحل مختلف از ارائه نسخه جدید خطاهای نسخه قبلی که دیگران گزارش دادهاند پیگیری و رفع کنند. پروژه در هر حالتی ارائه شود، چه بهصورت مرحلهای یا کامل، متنباز یا بسته و با هر متد استفاده شده در مهندسی نرمافزار ، یک سیستم ردیابی خطا در پیشبرد بهتر و سریعتر فرآیند مهندسی نرمافزار بسیار ارزشمند است.
بسیاری از این نرمافزارها برای استفاده عموم طراحی شده و بقیه تنها برای استفاده در یک پروژه طراحی میشوند. معمولا سیستمهای ردیابی خطا با دیگر اپلیکیشنهای مدیریت پروژه یکپارچه و مجتمع میشوند]18[. مهمترین قسمت این سیستمها مخازن اطلاعاتی آنهاست که کلیه اطلاعات مربوط به خطا را در خود ذخیره میکنند. باید دید در یک سیستم ردیابی خطا ایدهال چه اتفاقی میافتد و یک خطا چه چرخهای را در طول عمر خود در آن طی میکند. بهعنوان مثال باگزیلا20یک سیستم ردیابی خطا است که در سال 1998 توسط تری ویسمن21 برای شرکت موزیلا22 نوشته شد.
در ابتدا باگزیلا بهعنوان یک سیستم ردیابی خطا متنباز از داخل خانه برای کاربران مرتبط با نت اسکیپ23 طراحی شد. ابتدا به زبان TCL24 و سپس به Perl برای راحتی و سهولت استفاده و دخالت همگان در پیشرفت کار برگردانده شد. این سیستم برای استفاده در پروژههای متن باز بهینهسازی شد. بهطوری که شرکتها و پروژههای بزرگی چون یاهو، ناسا،Gnome ، KDE ، Apache ، RedHat، ویکی مدیا و خود موزیلا از آن استفاده کردند هر خطا یک شناسه(ID)، عنوان، تاریخ، وضعیت، نام محصول و مولفه، میزان شدت سختی و پیچیدگی، اولویت و غیره را در خصوصیات خود دارد]9 [(شکل2-1).
شکل2- 1-مشخصات یک موضوع (خطا)در نرم افزار Bugzilla

یک خطا از زمان ایجاد تا زمان بستهشدن(حل مشکل) چرخهای را در سیستم دارد(شکل2-2) نمودار فعالیت برای یک مخزن خطا در شکل2-3 نشان داده شدهاست.

شکل2- 2 – چرخه یک خطا در یک سیستم مدیریت خطا]19[

شکل2- 3 – نمودار جریان کار25 یک سیستم ردیابی خطا
خطا جدید (NEW ) یا تایید شده وارد سیستم میشود(unconfirmed) اگر اعتبار خطا توسط یکی از اعضای تیم یا هسته مدیریتی تایید شد، بهعنوان یک گروه جدید ثبت میشود.
مدیران وکسانی که مسئول ارزیابی خطاها هستند باید وجود خطا را تایید کنند. اعتبار و غیرتکراری بودن آن را نیز بررسیکنند. اگر خطا تایید شد به قسمت تایید شدهها (Assigned) رفته، تا در اختیار تیم توسعه برای حل و فصل و رفع خطا قرار گیرد. در غیر این صورت به قسمت تایید نشده ( unconfirmed ) برای بررسی بیشتر میرود.
اگر خطا رفع شد برچسب حل شده ( Resolved ) خورده و آن را به وضعیت حل شده انتقال میدهند.
اعضای تیم ممکن است یک خطا حلشده را به یکی از حالتهای سازگار(Verified) و سپس بسته (Closed) اتصال دهند. یا دوباره به شکلی در رابطه با این خطا مواجه شدند و آن را به حالت دوباره باز یا تایید شده بفرستند.
خطاهایی که به مرحله Resolved بازگردانده میشوند یا نامعتبرند یا تکراری هستند و نیاز به بررسی مجدد دارند و یا بهطور کامل رفع شدهاند. چرخه عمر یک خطا از مرحلهی جدید تا مرحله خروج از حل تعریف میشود. شکل2-4 وظایف هر یک از اشخاص در ارتباط با مخزن خطا را نشان میدهد. دو کادر قرمز دردو نمودار شکل2-4 و شکل2-3 محدوده کاری این تحقیق را نشان میدهند.

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

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

ولی برای دانلود فایل اصلی با فرمت ورد حاوی تمامی قسمت ها با منابع کامل

اینجا کلیک کنید

شکل2-4- نمودار مورد کاربرد26 یک سیستم ردیابی خطا
همانطور که در شکل2-5 میبینید، یک خطا دارای مشخصات متنی است. برچسب، وضعیت خلاصه و در قسمت جزئیات توضیحات و راهحلهای ارائه شده با ذکر نام نویسنده و تاریخ برای هر خطا درج شده است. همین اطلاعات و متون ثبت شده دامنه کار تحقیقاتی ماست. این دادهها منبع غنی اطلاعات و دانش سودمند است. اینکه چگونه این دادهها را کاوش کنیم و چه اطلاعاتی در آنها نهفته است، گامهای تحقیق ما را میسازند. از آنجایی که این دادهها توسط افراد مختلف و با استفاده از قوانین نحوی صحیح و ناصحیح و گاه کلمات مشابه دریک حوزه استفاده شدهاند نیاز به یک جستجو معنایی به شدت احساس میشوند.
شکل2- 5-مشخصات یک خطا
پایه و اساس این تحقیق جستجو جملات مشابه معنایی است. بهصورتی که آندسته از جملات که دارای تشابه معنایی بیشتری با جمله یا کلمه کاندیدای ما هستند، جداسازی شوند. چگونگی این کار در سه مرحله خلاصه می شود: ابتدا با استفاده از تکنیکهایی که در ادامه پیشنهاد میشود از میان دادههای آماریکه از یک مخزن خطا انتخاب شده، میزان تشابه هر خطا (بر اساس دادههای متنی مانند توضیحات، سرآمد، راهحل و غیره) با خطای جدید اندازهگیری میشود. در مرحله بعد این خطا با استفاده از یک الگوریتم خوشهبندی که سعی شده یک الگوریتم بهینه باشد به دستههای جدا بر اساس ضریب تشابه محاسبه شده تقسیم میشوند.
این کار به کاربر کمک میکند که نمونههای مشابه گزینش شده را در خوشههای طبقهبندی شده از نظر سختی و پیچیدگی کار در اختیار داشتهباشد.گاهی ممکن است کاربر خود بر اساس تجربه حدس بزند که مشکل زیاد پیچیده نیست. یا برعکس مشکل به زمان زیادی برای حل نیاز داشته باشد، در این حالت این خوشهبندی میتواند در کاستن زمان یافتن راهحل کمک قابل توجهی داشته باشد. آنچه این کار را از کارهای انجام شده قبلی متمایز میکند توجه به بهرهوری و بهبود کارایی است. یک مخزن خطا مجموعهای گسترده و بزرگ از دادههاست که هر روز بزرگتر میشود. با بزرگ شدن نمونه آماری و نیاز به دقت در کار ابعاد پیچیدگی این عمل روشن خواهد شد. هدف اصلی این کار استفاده از تکنیکی است که دقت بالاتری داشته باشد. جستجو در یک بانک داده که متون در آن از قانون خاص برای رعایت اصول تحریر و قواعد نحوی استفاده نشده است، و کسانی که دادهها را ثبت کردهاند ممکن است از کلمات مشابه زیادی استفاده کرده باشند، نیاز بیشتری به یک جستجوی معنایی دارد.

4.2.تحقیقات پیشین در حوزه دادهکاوی در مخازن خطا
در سال 1992 اولین نرمافزار ردیابی خطا GNATS27 شروعی برای MSR بود. با ارائه اولین نرمافزار ردیابی خطا، مدیریت و استفاده از دانش نهفته در خطاها اولین قدمهای خود را برداشت. در این مدت محققان سعیکردند برای استخراج بهینه و مفیدتر دانش، مدلها و روشهای جدیدی با استفاده از الگوریتمهای مختلف ارائه کنند. بیشتر این روشها از الگوریتمهای دستهبندی برای دستهبندی اطلاعات و استفاده از دانش آنها بهصورت طبقهبندی شده استفاده کردند. ابتدا مروری کوتاه بر تحقیقات قبلی و روش های بررسی شده خواهیم داشت. نواقص و کمبودهایی که به موجب آن ها این تحقیق انجام شده و روش ارائه شدهاست نیز بررسی خواهد شد.
سال 2000، JunzoWatada به منظور برآورد تعداد خطاها در یک پروژه نرمافزاری از رگرسیون فازی استفادهکرد]6[. وی مجموعه سئوالاتی را برای استفاده در سیستم فازی در مراحل مختلف از یک پروژه مطرح کرد. در این روش تمام دادهها برای جستجو هدف قرار نمیگیرد و این خود ضعف بزرگی است.
Lucas D.Panger در سال 2007 مقایسهای برای دستهبندی مخازن خطا با استفاده از پنج الگوریتم دسته بندی 0-R ،1-R، درخت تصمیمگیری C4.5 ،Naïve Bayes و رگرسیون لجستیک، در دادههای گرفته شده از Bugzilla انجام دادهاست]5[. این کار با محاسبه درصد خطاهایی که دستهبندی شدهاند و ضریب Kappa برای هر کدام با استفاده از نرمافزار Weka انجام داده است. دادهها بر اساس طول عمروتوضیحات متنی دستهبندی شدهاند. این تحقیق تنها مقایسهای بین الگوریتمهای مختلف در یک دستهبندی ساده برای دادههای موجود در یک مخزن است، که کمتر به شباهت بین یک خطا جدید و خطاهای دیگر پرداخته شده است.
در همان سال CathrinWeib و همکارانش با استفاده از دادههای گرفته شده از JBoss در سه مرحله طول عمر خطای جدید را تخمین زدند]9[. ابتدا بهکمک الگوریتم نزدیکترین همسایهKNN-? گزارشهای مشابه را از منبع استخراج میکند و در مرحله بعد با استفاده از موتور جستجوLucene دادهها با شباهت متنی بیشتر استخراج میشود. Lucene ازSVM و یک مدل بولی28 برای جستجو و ارزیابی متون استفاده میکند. در این تحقیق اگر موضوع با شباهت با توضیحات خطای جدید پیدا نشد، باز الگوریتم نزدیکترین همسایه KNN-? را برای استخراج داده استفاده میشود پس از این مراحل دادههای فیلترشده میتواند در تخمین طول عمر خطا جدید و حل آن کمک میکند. این روش جزء روشهای ابتدایی با بهکارگیری اندازهگیری تشابه بین متون بود. اما موتور و الگوریتم آن نهتنها به معنای کلمات توجه نمیکرد بلکه جزه روشهای ابتدایی جستجو در متون متشابه بود.
Nagwani در سال 2009 روشی را با دامنه خطاهای حوزه GUI ارائه کرد. در این تحقیق خطاهای مربوط به GUI را از پروژه مختلف را به عنوان داده در نظر گرفت. از نظر او خطا در طول فرآیندی رخ می دهد که این فرآیند شامل چند رویداد متوالی است]1[. مدل وی در سه مرحله داده ها را فیلتر می کند. در مرحله اول داده ها بر اساس رویداد، در مرحله بعد برای قسمتهای مختلف هر رویداد مقایسه میشوند. در مرحله آخر براساس ملزومات هر قسمت تفکیک و با هم مقایسه میشوند. در این روش خطاهایی که از نظر مرحله و رویدادهای موجود در فرآیند دارای تشابه بیشتر با خطای جدید هستند از منابع استخراج میشود. این روش اگرچه به مفاهیم و معانی توضیحات هر موضوع خطا بیشتر توجه کرده، اما در پیادهسازی موانع زیادی وجود دارد. مراحل توسط نیروی انسانی مجزا و مشخص شوند و تمام این رویدادها در طول یک فرآیند خطا دار باید مشخص باشند. همچنین محدود به خطاهایی از که در یک فرآیند مشخص در GUI است.
یک سال بعد Nagwani وBhansali با استفاده از الگوریتمK-means مجموعهای از دادهها شامل طول عمر و شماره داده را به خوشههایی تقسیم کردند، تا بتوانند میزان پیچیدگییک خطا را با تخمین ذهنی طول عمر یک خطای جدید را مشخص کند. به این ترتیب ابتدا کاربر برای طول عمر خطا جدید تخمینی میزند و این تخمین با مراکز خوشههای ایجاد شده بر اساس طول عمر دادهها، پیچیدگی خطا جدید را مشخص میکند]11[. این روش دو مورد مهم توجه نشده اول اینکه تخمین ذهنی طول عمر یک خطا زیاد اصولی و دقیق نیست. دوم اینکه تعیین میزان پیچیدگی یک خطا با یک پسزمینه ذهنی کمک چندانی در پیشرفت پروژه و بهرهوری در هزینه و زمان آن ندارد.
در تحقیقی دیگر در همان سال، وی با استفاده از سه الگوریتم تشابه جاکارد، کسینوسی و TF-IDF میانگینی از تشابه موجود بین قسمتهای متنی مختلف از خطای جدید و خطاهای دیگر در منبع خطا را محاسبه میکند]10.[ نتایج را برای هر الگوریتم با هم مقایسه کرده است. این کار با محاسبه تشابه بین بخش موضوع، توضیحات و دیگر بخشهای متنی از هر موضوع موجود در منبع خطا را با خطایجدید، بهصورت جداگانه محاسبه میکند. این نتایج با ضرایب وزنی مشابه با هم جمع میشوند و به عنوان میزان شباهت خطایجدید با خطا داخل مخزن در نظر گرفته میشود. برنامهای که Nagwani ارائه کرده است این کار را با استفاده از هرسه الگوریتم انجام میدهد.
برای نمونه در این تحقیق، با استفاده از ضریب کسینوسی برای یک نمونه جدید، نتایج محاسبه و چهارخطا با شباهت بیشتر، بهعنوان کمک برای حل خطا و محاسبه میانگین طول عمر آنها، بهعنوان تخمینی برای طول عمر خطا استخراج شدهاست. در این روش برای بررسی میزان تشابه بین متون خطا جدید و داخل مخزن از روشهای خطی استفاده شده که برای شروع مناسب است، اما کافی نیست. این الگوریتمها معایبی دارند که الگوریتمهای بهتری را میتوان استفادهکرد.
بهعنوان مثال الگوریتمهای معنایی که در آنها علاوه بر تشابه لغوی و نحوی تشابه معنایی بین جملات و متون را در نظر گرفته میشود.
در سال 2011، Nagwani تحقیق خود را روی نویسندگان و توسعهدهندگان ثبت شده در مخزن خطا وموضوعاتی که جوابگوی آنها بودهاند یا نظرات موثری در رفع خطا داشتهاند، متمرکز کردند]12[. بهاینصورت که روی تعدادی داده که از Bugzilla استخراج شده بود کلمات تکراری مهم در این موضوعها را بهعنوان داده استخراج میکند. لیستی ازتوسعهدهندگان و کاربران ثبت کننده به تفکیک کلمات اصلی تکرار شده لیست میشود. در این حالت میتوان کسانی را که در حوزه موضوع خطای جدید کار کردهاند، برای کمک به حل مشکل شناسایی کرد. در این روش تشخیص موضوع اصلی و کلمات مهم باید مطابق با مجموعه و در مقایسه با آن استخراج شود. انتخاب و یا تشکیل مجموعه بهینه خود نیازمند ارائه روشی مناسب است.
Suma.V و همکارانش در سال 2012 به استفاده ازچند روش خوشهبندی و مقایسه آنها اکتفا کرد.آنها هشت الگوریتم را برای دستهبندی دادهها در مخازن خطا استفاده کردند که در میان آنها K-means در برابر افزایش دادهها نتایج بهینهتری در اختیار کاربر میگذارد]8[. الگوریتمها با استفاده از نرمافزار Weka پیادهسازی شدهاند. این روش نیز تنها به دستهبندی ساده اکتفا شده و به نوع دادهها که متنی هستند توجه نشده است.
Nagwani در جدیدترین تحقیق خود در 2013 الگوریتمهایNB ، J84 ،SVM ، CC و CLUBAS را روی دادههای گرفته شده از پروژه Mozilla برای دستهبندی استفاده کرد و نتایج را تحلیل کردهاست]20[. بهعنوان نتیجه نشان دادهاست که NB و J84 با زیاد شدن حجم دادهها افت دقت ندارد.
پس از مطالعهای اجمالی روی BTS ها و روشهایی که تاکنون برای جستجو و استفاده دانش موجود در این سیستمها نشان میدهد، که سیر پیشرفت آن مدتی است که متوقف شده. در واقع پیشرفتی چشمگیر در آنها دیده نمیشود. آنچه نبودش بیش از همه درکاوش در دادههای مهم موجود در این مخازن، به چشم می آید، هوشمند سازی این کاوش هاست . داده های موجود در این مخازن مجموعه ای از متون و ارقام است. پس جستجو و کاوش پیشرفته با در نظر گرفتن جنبه های معنایی موجود در آنها، مطمئنا نتایج بهتری را در اختیار کاربران قرار خواهد داد .
در این تحقیق سعی شده به این جنبه از داده کاوی مخازن، یعنی استفاده از الگوریتم هایی که به مفهوم و معنای داده ها و استخراج دانشی بهینه و مختصرتر توجه شود.

5.2. اندازه گیری شباهت بین متون
پیدا کردن شباهت بین دو متن و جمله با پیدا کردن شباهت بین کلمات آغاز می شود. کلمات به صورت معنایی یا لغوی می توانند به هم شبیه باشند.شباهت لغوی به این معنی است که حروف کلمات با هم مشابه باشند. و شباهت معنایی حالتی است که دو کلمه در یک زمینه و به یک نوع و معنی استفاده شوند.


پاسخ دهید