مهندسی و توسعه نرم‌افزار (Software Engineering)

آموزش چرخه کامل حیات تولید نرم‌افزار، متدولوژی چابک (Agile)، تحلیل سیستم با نمودارهای UML، الگوهای طراحی شی‌گرا (Design Patterns) و آزمون‌های خودکار. دانشجویان برتر به تیم نرم‌افزاری دانش‌بنیان دعوت می‌شوند.

سرفصل هفتگی درس:
• هفته ۱-۲: متدولوژی‌های سنتی در برابر روش‌های چابک (Agile و Scrum)
• هفته ۳-۴: استخراج نیازمندی‌ها، داستان‌های کاربر (User Stories) و معیارهای پذیرش
• هفته ۵-۷: تحلیل و طراحی شی‌گرا با نمودارهای UML (Class, Sequence, State)
• هفته ۸-۱۰: الگوهای طراحی نرم‌افزار (Creational, Structural, Behavioral Patterns)
• هفته ۱۱-۱۲: اصول طراحی تمیز (Clean Code و SOLID) و بازآرایی کد
• هفته ۱۳-۱۴: آزمون نرم‌افزار (Unit Test, Integration Test) و فرآیند CI/CD

منابع و تکالیف درس:
• اسلایدهای متدولوژی‌های چابک و الگوهای طراحی (هفته ۲)
• پروژه تیمی: تحلیل و پیاده‌سازی سامانه مدیریت دوره با اصول SOLID (هفته ۷) — تحویل: سامانه بوستان

کتاب اصلی درس: متدها و الگوهای مهندسی نرم‌افزار (Software Engineering Methods) — لارا لیتاو