مهندسی نرم‌افزار پیشرفته

Advanced Software Engineering

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

هدف کلی

هدف از این درس آشنایی دانشجویان با پارادایم‌های مختلف مورد استفاده در توسعه نرم‌افزار است که شامل متدلوژی‌های مختلف توسعه نرم‌افزار و همچنین رویکردهای مختلف به مدیریت پیچیدگی توسعه نرم‌افزار می‌شود.

سرفصل‌ها

  1. پیچیدگی‌های توسعه نرم‌افزار
  2. تکامل متدلوژی‌های توسعه نرم‌افزار
  3. رویکردهای مدیریت پیچیدگی نرم‌افزار (توسعه نرم‌افزار شیءگرا، رویکرد جنبه‌گرا، مهندسی نرم‌افزار سرویس‌گرا، مهندسی نرم‌افزار مبتنی بر عامل)
  4. توسعه نرم‌افزار مبتنی بر مدل
  5. مهندسی خط محصول نرم‌افزار
  6. روش‌های چابک توسعه نرم‌افزار
  7. فرهنگ توسعه و عملیات (DevOps)
  8. روش‌های نیمه‌صوری و صوری در توسعه نرم‌افزار
  9. مهندسی نرم‌افزار مبتنی بر جستجو

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

  • فعالیت‌های کلاسی شامل تمرینات، پروژه و تحقیق: ۵۰ درصد نمره
  • آزمون‌ها: ۵۰ درصد نمره

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

  1. D. Farley. Modern Software Engineering: Doing What Works to Build Better Software Faster. Pearson Education, 2021.
  2. V. Gruhn and R. Striemer. The Essence of Software Engineering. Springer Cham, 2020.
  3. G. Booch, R. A. Maksimchuk, M. W. Engle, B. j. Young, J. Connallen, and k. A. Houston. Object-oriented analysis and design with applications. 3rd Edition, Addison-Wesley Professional, 2008.
  4. K. Pohl, G., Böckle, and F. J. van der Linden. Software Product Line Engineering: Foundations, Principles and Techniques. Springer Berlin Heidelberg, 2005.
  5. M. Derek and M. Jones. Search-Based Software Engineering. Knowledge Software, Ltd. 2020.