تکامل نرم‌افزار

Software Evolution

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

هدف کلی

تولیدکنندگان نرم‌افزار اغلب به جای تولید سیستم‌های نرم‌افزاری جدید، حجم زیادی از منابع خود را صرف مراقبت و نگهداری از سیستم‌های موجود می‌کنند. این مراقبت و نگهداری اغلب شامل بهبود طراحی و پیاده‌سازی سیستم، پیدا کردن و رفع خطاها و افزودن امکانات جدید به نرم‌افزار می‌باشد. هدف از فرآیند «تکامل نرم‌افزار»، حصول اطمینان از ادامه کار موفقیت‌آمیز یک سیستم نرم‌افزاری بعد از مرحله تولید آن است که خود فرآیندی پیچیده و زمان‌بر است. هدف این درس، آشنا کردن دانشجویان با مفاهیم «تکامل نرم‌افزار» و آخرین پژوهش‌ها، ابزارها و روش‌های ارائه‌شده در این زمینه می‌باشد.

سرفصل‌ها

  1. مفاهیم مقدماتی تکامل نرم‌افزار
  2. مهندسی معکوس سیستم‌های نرم‌افزاری
  3. بازمهندسی سیستم‌های موروثی
  4. معماری نرم‌افزار تکاملی
  5. مفاهیم جدید در تکامل نرم‌افزار

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

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

  1. B. Vogel-Heuser, J. Keim, L. Märtin, M. Goedicke, R. Reussner, and W. Hasselbring. Managed Software Evolution. Springer International Publishing, 2019.
  2. N. Ford, R. Parsons, P. Kua, and P. Sadalage. Building Evolutionary Architectures. 2nd Edition, O'Reilly Media, 2022.
  3. T. Mens and S. Demeyer (Eds.). Software Evolution. Springer, 2008.
  4. C. Bird, T. Menzies, and T. Zimmermann. The Art and Science of Analyzing Software Data. 1st Edition, Morgan Kaufmann, 2015.
  5. P. Tripathy and K. Naik. Software Evolution and Maintenance: A Practitioner's Approach. 1st Edition, Wiley, 2014.