مهندسی نرمافزار پیشرفته
Advanced Software Engineering
مقطع: تحصیلات تکمیلی | گرایش: نرمافزار |
نوع درس: نظری | تعداد واحد: ۳ |
پیشنیاز: – | همنیاز: – |
هدف کلی
هدف از این درس آشنایی دانشجویان با پارادایمهای مختلف مورد استفاده در توسعه نرمافزار است که شامل متدلوژیهای مختلف توسعه نرمافزار و همچنین رویکردهای مختلف به مدیریت پیچیدگی توسعه نرمافزار میشود.
سرفصلها
- پیچیدگیهای توسعه نرمافزار
- تکامل متدلوژیهای توسعه نرمافزار
- رویکردهای مدیریت پیچیدگی نرمافزار (توسعه نرمافزار شیءگرا، رویکرد جنبهگرا، مهندسی نرمافزار سرویسگرا، مهندسی نرمافزار مبتنی بر عامل)
- توسعه نرمافزار مبتنی بر مدل
- مهندسی خط محصول نرمافزار
- روشهای چابک توسعه نرمافزار
- فرهنگ توسعه و عملیات (DevOps)
- روشهای نیمهصوری و صوری در توسعه نرمافزار
- مهندسی نرمافزار مبتنی بر جستجو
ارزیابی پیشنهادی
- فعالیتهای کلاسی شامل تمرینات، پروژه و تحقیق: ۵۰ درصد نمره
- آزمونها: ۵۰ درصد نمره
منابع پیشنهادی
- D. Farley. Modern Software Engineering: Doing What Works to Build Better Software Faster. Pearson Education, 2021.
- V. Gruhn and R. Striemer. The Essence of Software Engineering. Springer Cham, 2020.
- 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.
- K. Pohl, G., Böckle, and F. J. van der Linden. Software Product Line Engineering: Foundations, Principles and Techniques. Springer Berlin Heidelberg, 2005.
- M. Derek and M. Jones. Search-Based Software Engineering. Knowledge Software, Ltd. 2020.