اشکال‌زدایی و ترمیم برنامه‌ها

Program Debugging and Repair

مقطع: تحصیلات تکمیلی گرایش: نرم‌افزار
نوع درس: نظری تعداد واحد: ۳
پیش‌نیاز: – هم‌نیاز: –

هدف کلی

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

سرفصل‌ها

  1. بررسی رویکردهای اصلی به اشکال‌زدایی
  2. مروری بر روش‌های تحلیل ایستا نرم‌افزار
  3. مروری بر روش‌های تحلیل پویای نرم‌افزار
  4. مروری بر فنون یادگیری ماشین مورد استفاده در اشکال‌زدایی
  5. پیش‌بینی خرابی نرم‌افزار (defect prediction)
  6. روش‌های جداسازی خطا (fault isolation)
  7. رویکردهای مکان‌یابی خطا (fault localization)
  8. ترمیم خودکار برنامه‌ها (program repair)

ارزیابی پیشنهادی

منابع پیشنهادی

  1. X. Jing, H. Chen, and B. Xu. Intelligent Software Defect Prediction. Springer Nature, 2024.
  2. Q. Zhang, et al. A Survey of Learning-based Automated Program Repair. ACM Transactions on Software Engineering and Methodology, 33 (2), Article 55, pp. 1-69, 2023.
  3. L. Gazzola, D. Micucci, and L. Mariani. Automatic Software Repair: A Survey. IEEE Transactions on Software Engineering, vol. 45, pp. 34-67, 2019.
  4. A. Zeller. Why Programs Fail: A Guide to Systematic Debugging. 2nd Edition, Morgan Kaufman, 2009.
  5. C. S. Păsăreanu. Symbolic Execution and Quantitative Reasoning: Applications to Software Safety and Security. Morgan & Claypool Publishers, 2020.