ر شکل2-3 نشان داده شدهاست.

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

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

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

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

[do_widget id=search-2]

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

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

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