مهندسی نرمافزار
Software Engineering
شماره درس: ۴۰۴۷۴ | تعداد واحد: ۳ |
مقطع: کارشناسی | نوع درس: نظری |
پیشنیاز: تحلیل و طراحی سیستمها | همنیاز: – |
اهداف درس
هدف از این درس پرداختن به نکات مهندسی است که در کلیه مراحل تولید نرمافزار باید رعایت گردد. دانشجویان با مباحث ساخت نرمافزار(برنامهسازی) ، تجزیه و تحلیل نیازمندیها و طراحی نرمافزار در درسهای قبلی آشنا شدهاند. در این درس هدف آموزش روش جدیدی برای تجزیه و تحلیل نیازها و یا طراحی نرمافزار نیست، بلکه هدف آموزش تولید نرمافزار به صورت یک محصول مهندسی است، مانند سایر محصولاتی که در سایر رشتههای مهندسی تولید میگردد. در این درس ابتدا تفاوت محصولی که به روش مهندسی تولید میگردد با محصولی که به روش هنری تولید میشود بیان میشود، سپس انتظاراتی که یک محصول مهندسی باید برآورده سازد تشریح میگردد. در ادامه درس با تاکید بر روشهای مهندسی تولید از جمله مدلسازی، قابل اندازهگیری و ارزیابی بودن، درستییابی و اعتبارسنجی محصولات بینابینی، مروری بر دستآوردهای علمی در این زمینه در کلیه مراحل تولید نرمافزار انجام میشود. با توجه به اینکه در درسهای قبلی دانشجویان با مباحث توصیف صوری نیازها، اندازهگیری، تخمین و آزمون کمتر آشنا شدهاند در این درس این فصول مورد تاکید بیشتر قرار میگیرد. در انتها فعالیتهای حمایتی از جمله مدیریت پروژه، زمانبندی، مدیریت ریسک، مدیریت پیکربندی و تضمین کیفیت با تاکید بر تاثیر آنها در تولید نرمافزار به صورت مهندسی مرور میشود.
ریز مواد
- مقدمه (۲ جلسه)
- فرایند-مدل (۲ جلسه)
- تولید چابک (۱ جلسه)
- درک نیازها (۱ جلسه)
- روشهای صوری (۵ جلسه)
- مفاهیم طراحی (۱ جلسه)
- طراحی معماری (۱ جلسه)
- طراحی واسط (۱ جلسه)
- طراحی مبتنی بر الگو (۱ جلسه)
- استراتژیهای آزمون (۱ جلسه)
- روشهای آزمون (۴ جلسه)
- اندازهگیری محصول (۱ جلسه)
- اندازهگیری فرایند و پروژه (۱ جلسه)
- برآورد (۱ جلسه)
- مفاهیم کیفیت (۱ جلسه)
- روشهای مرور (۱ جلسه)
- تضمین کیفیت (۱ جلسه)
- مدیریت پیکربندی (۱ جلسه)
- مدیریت پروژه (۱ جلسه)
- زمانبندی (۱ جلسه)
- مدیریت ریسک (۱ جلسه)
ارزیابی
- ۳ تمرین نظری-عملی در طول ترم ( ۲۰٪ کل نمره)
- ۳ آزمون تستی از مطالب درس در طول ترم (۳۰٪ کل نمره)
- حدود ۵ آزمون کوچک در طول ترم (۱۰٪ کل نمره (نمره اضافه))
- آزمون نهایی تشریحی و تستی (۵۰٪ کل نمره)
- دانشجویان به طور اختیاری سمیناری را از فصولی از کتاب که تدریس نمیشود و موضوعات مرتبط با مطالب درس پس از گرفتن تایید ارایه مینمایند (۱۰٪ کل نمره (نمره اضافه)).
مراجع
- R. S. Pressman. Software Engineering: A Practitioner’s Approach. 8th Edition, McGraw-Hill, 2014.
- P. Ammann and J. Offutt. Introduction to Software Testing. Cambridge University Press, 2008.
- J. Woodcock and J. Davies. Using Z: Specification, Refinement, and Proof. Prentice-Hall, 1996.