۱٫۳٫ مقدمه
مخازن خطای نرم افزار سالهاست که به کمک مهندسین نرم افزار و مدیران برای پیاده سازی پروژه ها کوچک و بزرگ نرم افزاری ، متن باز یا بسته آمده است. هر خطا در این مخازن به صورت فرآیندی جداگانه برای ثبت تمام رویدادها و اعمال نظرهای منطقی وموثر، درطول رفع مشکل و خطا از روی پروژه، از سوی افراد دخیل در پروژه ثبت می شود. این کار علاوه بر مزایای مربوط به پی- گیری روند رفع خطا ، مجموعه ای از دانش نهفته در این اطلاعات را در اختیار ذینفعان قرار می دهد. اگر این اطلاعات با حساسیت لازم و دقت کافی استخراج شود در روند تکمیل پروژه اثر به سزایی خواهد داشت. از آنجا که این داده ها بیشتر حاوی متون هستند نیاز به الگوریتم ها و معیارهایی برای بررسی متن احساس می شود. بیشتر این مخازن و کارهای قبلی انجام شده از روش های ساده و یا از موتورهای جستجوگر معمول برای استخراج دانش مفید استفاده کرده اند.
یکی از نکاتی که پایه این تحقیق و روش قرار گرفته است، تشابه بین متن توضیحی درباره خطای جدید و متون موجود در موضوع، توضیحات و دیگر متون ثبت شده مربوط به هر خطا است. این تشابه قابل اندازه گیری است و به یقین متن با تشابه بالاتر مربوط به خطا با تشابه بالاتر به خطای جدید است. این خطا شانس برطرف کردن خطای جدید را بالاتر برده و زمان رفع آن و در نتیجه هزینه های مربوط به آن را کاهش می دهد. به خاطر دلایلی که در فصل قبل بیان شد، انتخاب یک روش بر پایه تشابه معنایی ضروری است. در این فصل از روش محاسبه تشابه معنایی بر پایه مجموعه و تشابه خطی برای استفاده در یک بانک خطای نرم افزاری نمونه برای یافتن راه حل خطا و در نهایت محاسبه پیچیدگی خطا با بهره گرفتن از محاسبه طول عمر خطا استفاده می شود. شکل ۳-۱ مراحل مختلف روش ارائه شده در این تحقیق را نشان می دهد .
شکل ۳-۱- مراحل مختلف روش ارائه شده
در مرحله اول تعدادی خطا به عنوان نمونه کوچکی از یک بانک داده از داده های موجود در Bugzilla انتخاب شده. خلاصه، زمان ایجاد و زمان خاتمه (پاسخ قابل قبول) هر کدام استخراج می شود. در مرحله بعد میزان تشابه بین نمونه ها با جمله نمونه خطای جدید در پنج مرحله محاسبه و لیست این تشابهات که اعدادی بین ۰ و ۱ هستند استخراج می شود. در مرحله سوم طول عمر خطا ها محاسبه می شود این عدد پیچیدگی آنها را نشان می دهد.(شکل ۳-۲)
شکل ۳-۲- مراحل دسته بندی خطا
و در مرحله نهایی این دو لیست داده عددی خوشه بندی می شوند تا بتوان نمونه های منتخب را برای کمک به حل خطا و نیز پیش بینی مقادیر لازم مورد استفاده قرار می گیرند.
۲٫۳ . محاسبه تشابه معنایی بر پایه مجموعه و تشابه خطی
Islam در روش خود۳ روش تشابه را برای برطرف کردن ضعف آنها ترکیب کرد. این روش روشی متداول در رفع نواقص الگوریتم هاست. برای محاسبه تشابه بین دو جمله یا متن در این روش سه مرحله کلی وجود دارد. ۱٫ محاسبه تشابه خطی بین کلمات ۲٫ محاسبه تشابه معنایی بر پایه مجموعه ۳٫ محاسبه تشابه بر اساس کلمات متداول ۴ . محاسبه تشابه مجموع(محاسبه نهایی).
۱٫۲٫۳ . شباهت خطی بین کلمات
یکی از روش های مورد انتظار در این نوع اندازه گیری روش طولانی ترین زیردنباله مشترک (LCS )[52]با کمی تغییرات و نرمال سازی است. سه نسخه اصلاح شده متفاوت از LCS به کار رفته و سپس وزن های بدست آمده با هم جمع می شوند. به این نکته باید توجه کرد که نسخه های اصلاح شده LCS نتایج بهتری (دقت و جامعیت بالاتر) را نسبت به LCS و یا معیارهای شباهت دیگر خواهند داشت.
Melamed با تقسیم طولانی ترین زیر رشته مشترک به طول رشته طولانی دیگر سعی کرد که LCS را نرمال سازی کند. وی روش را LCSR نامید. اما در این روش طول رشته های کوتاهتر که گاهی اوقات در محاسبه شباهت دارای ارزش بالاتری بودند، در نظر گرفته نمی شود و این خود ضعف محسوب می شود.
اما در این روش LCS با در نظر گرفتن توامان طول رشته کوتاهتر و بلندتر نرمالسازی می شود(NLCS)[53].
در حالی که در LCS توالی کاراکترها مهم و ضروری نیست، اما این توالی برای داشتن درجه بالایی از تطبیق در رشته لازم است. این نکته در روش [۵۴]MCLS مورد توجه قرار گرفته است. در این روش ابتدا با توالی حداقل کاراکتر MCLS1 شروع و تا حداکثر کاراکتر MCLSn پیش می رود. الگوریتم ۱ MCLS1 در زیر نشان داده است. همچنین الگوریتم۲ MCLSn ، روند کار را مشخص کرده است.
الگوریتم ۱MCLS1:( LCSباحداکثرتوالیn=1 )
الگوریتم۲ :MCLSn ( LCSبا حداکثر توالیn=n )
در الگوریتم اول دو رشته به عنوان ورودی گرفته حداکثر رشته متوالی مشترک در هر دو رشته که با کاراکتر اول رشته کوتاه تر آغاز شده باشد به عنوان خروجی برگردانده می شود. اگر الگوریتم ۲ همین کار را برای تک تک کاراکترها تکرار کرده و بزرگترین رشته متوالی از هر دو رشته را به عنوان خروجی باز می گرداند. این دو الگوریتم نیز نرمالسازی می شوند.
فرمول ۳-۱
فرمول ۳-۲
مقادیر وزنی بدست آمده از سه قبلی₁ و ₂ و ₃ با ضرایب وزنی₁ و₂ و ₃ که ₁+₂+₃=۱ با هم جمع شده و میزان شباهت دو جمله بدست می آید.
در این جا برای ها ارزش برابر در نظر گرفته می شود. به عنوان مثال فرض کنید که روش را روی دو رشته زیر پیاده کنیم.
میزان شباهت
۲٫۲٫۳ .تشابه معنایی بین کلمات
در روش مورد بررسی توجه بر روش های اندازه گیری بر پایه مجموعه است، زیرا این روش ها انواع گسترده ای از متون را پوشش می دهند متونی که در دنیای واقعی استفاده می شود در حالی که در روش های بر پایه دانش به این نکته توجه نشده است.
PMI-IRیک روش ساده برای محاسبه شباهت متنی مجموعه ای از کلمات است که با بهره گرفتن از اطلاعات نقطه به نقطه متقابل به صورت زیر تعریف می شود
وکلمات و احتمال رخ داد توامان دو واژه است. اگر دو کلمه از نظرآماری مستقل باشند و در غیراینصورت امکان پدیدار شدن همزمان را با هم در متن دارند و .
PMI-IR توسط موتور جستجوگر آلتاویستا[۵۵] برای جستجو نحوی و محاسبه احتمالات استفاده می شود. در ساده ترین حالت دو کلمه هنگامی که در یک سند یافت شوند، احتمال رخ داد همزمان را دارند. این احتمال با بازیابی اسناد قابل اندازه گیری به صورت تقریبی است.
تعداد متونی است که حاوی کلمه x بوده اند.
روش رخ داد همزمان مرتبه دوم (SOC-PMI)PMI[56] لیستی از کلمات همسایه با دو کلمه مورد نظر در یک مجموعه بزرگ را، بر اساس اطلاعات متقابل نقطه به نقطه مرتب می کند.
مزیت دیگر این روش این است که شباهت میان دو کلمه در هر جای متن نیز می توان اندازه گیری کرد. حتی اگر در کنار هم نباشد. تنها کافی است کلمات همسایه مشابه داشته باشند.
مزیت دیگر این روش (PMI-IR ) این است که شباهت میان دو کلمه در هرجای متن نیز می توان اندازه گیری کرد. حتی اگر در کنار هم نباشند. تنها کافی است که کلمات همسایه مشابه داشته باشند.
در این روش از مجموعه ملی بریتانیا (BNC) به عنوان یک منبع برای متون استفاده می شود. کلماتی که در هر دو فهرست مشترک است لیست شده و جمع ارزش PMI ( از لیست مقابل) برای محاسبه برای بدست آوردن نسبت ارزش معنایی محاسبه می شود. تابع نقطه به نقطه اطلاعات متقابل برای کلماتی که دارند، تعریف می شود.
فرمول ۳-۳ تعداد دفعاتی است که ti در مجموعه ظاهر می شود. تعداد دفعاتی را کهو در یک قاب[۵۷] ظاهر می شود را نشان می دهد. تعداد کل توکن ها در مجموعه است. برای کلمه مجموعه کلمات به صورت زیر تعریف می شود.