مهندسی نرمافزار
Software Engineering
مقطع: کارشناسی | گرایش: نرمافزار |
نوع درس: نظری | تعداد واحد: ۳ |
پیشنیاز: تحلیل و طراحی نرمافزار | همنیاز: – |
هدف کلی
هدف از این درس پرداختن به آن دسته از موضوعات مهندسی است که در کلیه مراحل تولید و توسعه نرمافزار باید رعایت شوند. به عبارت دیگر، هدف درس، آموزش نحوه تولید نرمافزار به صورت یک محصول مهندسی است، مانند سایر محصولاتی که در سایر رشتههای مهندسی تولید میشوند. به این ترتیب، تاکید اصلی این درس بر مرور روشهای مختلف تولید و توسعه نرمافزار و فعالیتهای اصلی آنها از جمله مدلسازی، اندازهگیری و ارزیابی کیفیت است. در همین راستا، فعالیتهای پشتیبان فرایند توسعه نرمافزار، از جمله مدیریت پروژه، مدیریت ریسک، مدیریت پیکربندی و تضمین کیفیت نیز با تاکید بر تاثیر آنها در توسعه نرمافزار به صورت مهندسی مرور میشود.
سرفصلها
- مقدمهای بر مهندسی نرمافزار
- مروری بر چرخه حیات توسعه نرمافزار
- مرور مدلهای فرایند و روشهای توسعه سامانههای نرمافزاری
- مقدمهای بر RUP
- روشهای توسعه چابک نرمافزار
- معرفی اجمالی XP و Kanban
- معرفی کامل متدولوژی SCRUM
- الگوهای طراحی نرمافزار
- مدیریت کیفیت نرمافزار
- مفاهیم و ابعاد کیفیت
- مدلهای کیفیت نرمافزار
- روشهای مرور نرمافزار
- مقدمهای بر آزمون نرمافزار
- مدیریت پیکربندی و تغییرات
- مفهوم مدیریت پیکربندی و تغییرات
- کنترل نسخه
- آیتمهای پیکربندی
- مخزن پیکربندی
- فرآیند کلی مدیریت تغییرات
- روشهای مختلف برآورد هزینه نرمافزار
- تخمین مبتنی بر LoC
- تحلیل Function point
- تخمین بر اساس فعالیت
- تخمین بر اساس Use-case point
- مدل تجربی COCOMO
- امکانسنجی سامانه
- تحلیل امکانسنجی و بررسی نقاط وارسی
- انجام آزمونهای امکانسنجی
- پیشنهاد سیستم
- مدیریت ریسک پروژههای نرمافزاری
- حوزههای وقوع ریسک
- نحوه محاسبه شدت ریسک
- تکنیکهای کاهش ریسک
- مدیریت پروژههای توسعه نرمافزاری
- وظایف اصلی مدیر پروژه در طول حیات توسعه نرمافزار
- دلایل اصلی شکست پروژهها
- تفاوت پروژه نرمافزاری با سایر پروژهها
- ساختار شکست کار
- سازماندهی تیم
- مدیریت در متدولوژیهای چابک
ارزیابی پیشنهادی
- فعالیتهای کلاسی (ترجیحا عملی) در طول نیمسال: ۴۰ درصد
- آزمونهای میانترم و پایانترم: ۶۰ درصد
منابع پیشنهادی
- R. S. Pressman and B. R. Maxim. Software Engineering: A Practitioner’s Approach. 9th Edition, McGraw-Hill, 2019.
- I. Sommerville. Software Engineering. 10th Edition, Pearson, 2015.
- K. S. Rubin. Essential Scrum: A practical guide to the most popular Agile process. Addison-Wesley, 2012.
- E. Freeman, E. Robson, B. Bates, and K. Sierra. Head First Design Patterns. second Edition, O’Reilly Media, 2020.
- E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, 1995.