الگوهای طراحی و معماری نرم‌افزار

مدرس: رامان رامسین گواهی: رسمی دوزبانه
ترم: پاییز ۱۴۰۳ پیش‌نیاز: برنامه‌سازی پیشرفته
زمان ارائه: پنج‌شنبه ساعت ۱۵:۰۰ تا ۱۸:۰۰ محل برگزاری: کلاس مجازی

هدف کلی

هدف این درس، آشنا کردن دانشجویان با الگوها و کاربرد آن‌ها در مهندسی نرم‌افزار است. دانشجویان ضمن آشنایی با الگوهای رایج طراحی و معماری، با پادالگوها نیز آشنا‌ می‌شوند. به دلیل تعدد الگوها، سعی می‌شود ضمن تأکید بر معرفی تفصیلی الگوهای پرکاربرد، آشنایی کافی با ساختارها و اصول مبنایی و روش‌های مدیریت پیچیدگی و تحلیل الگوها نیز حاصل شود.

سرفصل‌ها

  • مقدمه: مبانی و تاریخچه (۱ جلسه)
  • الگوهای GoF - Gamma et al (۸ جلسه)
    • الگوهای آفرینشی
    • الگوهای ساختاری
    • الگوهای رفتاری
  • اصول و قواعد شیءگرا در قالب الگوها (۲ جلسه)
    • اصول شش‌گانه
    • الگوهای GRASP
    • طراحی بر اساس قرارداد
  • الگوهای معماری GoV - Buschmann et al (۵ جلسه)
  • پادالگوها (۲ جلسه)

ارزیابی

  • تمرین‌ها: ۶ نمره
  • آزمون پایان دوره: ۱۴ نمره

منابع

  1. E. Gamma, R. Helm, R. Johnson, J. Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, 1995.
  2. E. Freeman, E. Robson. Head First Design Patterns. 2nd ed. O'Reilly Media, 2020.
  3. F. Buschmann, R. Meunier, H. Rohnert, P. Sommerlad, M. Stal. Pattern-Oriented Software Architecture: A System of Patterns. Vol. 1. Wiley, 1996.
  4. . C.J. Neill, P.A. Laplante, J.F. DeFranco. Antipatterns: Managing Software Organizations and People. 2nd ed. CRC Press, 2012.