تکامل نرمافزار
Software Evolution
مقطع: تحصیلات تکمیلی | گرایش: نرمافزار |
نوع درس: نظری | تعداد واحد: ۳ |
پیشنیاز: – | همنیاز: – |
هدف کلی
تولیدکنندگان نرمافزار اغلب به جای تولید سیستمهای نرمافزاری جدید، حجم زیادی از منابع خود را صرف مراقبت و نگهداری از سیستمهای موجود میکنند. این مراقبت و نگهداری اغلب شامل بهبود طراحی و پیادهسازی سیستم، پیدا کردن و رفع خطاها و افزودن امکانات جدید به نرمافزار میباشد. هدف از فرآیند «تکامل نرمافزار»، حصول اطمینان از ادامه کار موفقیتآمیز یک سیستم نرمافزاری بعد از مرحله تولید آن است که خود فرآیندی پیچیده و زمانبر است. هدف این درس، آشنا کردن دانشجویان با مفاهیم «تکامل نرمافزار» و آخرین پژوهشها، ابزارها و روشهای ارائهشده در این زمینه میباشد.
سرفصلها
- مفاهیم مقدماتی تکامل نرمافزار
- مهندسی معکوس سیستمهای نرمافزاری
- بازمهندسی سیستمهای موروثی
- معماری نرمافزار تکاملی
- مفاهیم جدید در تکامل نرمافزار
ارزیابی پیشنهادی
- آزمونهای میانترم و پایانترم: ۶۰ درصد نمره
- تمرینهای در طول ترم: ۲۰ درصد نمره
- پروژه پژوهشی: ۲۰ درصد نمره
منابع پیشنهادی
- B. Vogel-Heuser, J. Keim, L. Märtin, M. Goedicke, R. Reussner, and W. Hasselbring. Managed Software Evolution. Springer International Publishing, 2019.
- N. Ford, R. Parsons, P. Kua, and P. Sadalage. Building Evolutionary Architectures. 2nd Edition, O'Reilly Media, 2022.
- T. Mens and S. Demeyer (Eds.). Software Evolution. Springer, 2008.
- C. Bird, T. Menzies, and T. Zimmermann. The Art and Science of Analyzing Software Data. 1st Edition, Morgan Kaufmann, 2015.
- P. Tripathy and K. Naik. Software Evolution and Maintenance: A Practitioner's Approach. 1st Edition, Wiley, 2014.