تلاشهای گذشته با هدف پیشبینی خطا را در سه گروه مورد بررسی قرار میدهیم: معیارهای نرمافزار ، معیارهای وابستگی  و معیارهای تاریخی . ابتدا به بیان توضیحی در مورد شیوه کار کردن این معیارها میپردازیم.
 
2-1 معیارهای نرمافزار:
 معیارهای نرمافزار برای اندازهگیری درجه پیشرفته بودن یک محصول و یا یک فرآیند نرمافزاری به کار میروند. معیارهای نرمافزاری به چندین گروه تقسیم میشوند: معیارهای محصول ، معیارهای فرآیند ، معیارهای پروژه  و معیارهای منبع . معیارهای نرمافزاری که در پیشبینی خطا به کار میروند معیارهای محصول میباشند که از مشخصات کد سیستم نرمافزاری استخراج میشوند. این معیارها به سه گروه تقسیم میشوند: معیارهای اندازه ، معیارهای پیچیدگی  و معیارهای کیفیت . (Mills, 1988) 
معیارهای اندازه بر اساس تعداد خطوط کد برنامه محاسبه میشوند مانند تعداد کل خطوط برنامه ، تعداد خطوط توضیحات و ... معیارهای میزان نگهداشتپذیری و قابلیت تست برنامه وابسته است از جمله معروفترین معیارهای پیچیدگی معیارهای پیچیدگی مک کیب و معیارهای هالستد میباشند. معیارهای مککیب پیچیدگی کد را بر اساس تعداد مسیرهای کنترلی محاسبه مینماید. (McCabe, 1976) هالستد معیارهای خود را بر اساس ارتباطات ریاضی بین اجزای کد، پیچیدگی کد و نوع زبان برنامه نویسی مطرح کرد. (Halstead M. H., 1975) معیارهای اتصال و پیوستگی از معروفترین معیارهای کیفیت میباشند که بالا و یا پایین بودن اندازه این دو معیار نشان دهنده کیفیت محصول و یا فرآیند نرمافزاری است. (Pressman, 1982) معیارهای کیفیت معیارهایی میباشند که درجه آنها میتواند تولیدکنندگان نرمافزار را در مورد توانایی دست کار کردن سیستمشان مطمئن سازد.
فهرست مطالب
1-مقدمه:    13
2- پیشینه پژوهشی:    16
2-1-معیارهای نرمافزار    16
2-2-معیارهای وابستگی:    17
2-3-معیارهای تاریخی:    18
2-4-بررسی فعالیتهای گذشته    19
2-4-1- بررسی فعالیتها در زمینه معیارهای کد :    19
2-4-2- بررسی فعالیتها در زمینه معیارهای تاریخی:    22
2-4-3- بررسی فعالیتها در زمینه معیارهای وابستگی:    25
7-مراجع:    
 
 
                                         
                                             
                                            