علم داده در مهندسی نرم‌افزار

Data Science in Software Engineering

شماره درس: ۴۰۸۰۳.۱ تعداد واحد: ۳
مقطع: کارشناسی ارشد نوع درس: نظری
پیش‌نیاز: – هم‌نیاز: –

اهداف درس

مخزن‌های نرم‌افزاری مانند مخازن کد، مخازن خطاها، سایت‌های پرسش و پاسخ نرم‌افزاری، فروشگاه‌های برنامک‌های همراه، و … حاوی داده‌های ارزشمندی راجع به یک نرم‌افزار و تاریخچه آن می‌باشند. تحلیل این داده‌ها به پژوهشگران حوزه مهندسی نرم‌افزار این امکان را می‌دهد تا به صورت تجربی درک کنند که چه روش‌هایی اغلب در عمل مورد استفاده مهندسین نرم‌افزار قرار گرفته است. به خود توسعه‌دهندگان و مهندسین نرم‌افزار نیز این امکان را می‌دهد تا بهتر بتوانند یک سیستم نرم‌افزاری پیچیده را مدیریت و نگهداری کنند. با گسترش روزافزون استفاده از تکنیک‌های علم داده و هوش مصنوعی مانند یادگیری ماشین و یادگیری عمیق، استفاده از این تکنیک‌ها در تحلیل داده‌های موجود در مخازن نرم‌افزاری و مهندسی نرم‌افزار نیز کاربردهای فراوانی یافته است. به عنوان نمونه، می‌توان به رفع خودکار خطاهای نرم‌افزاری، خلاصه‌سازی مصنوعات نرم‌افزاری، و تحلیل نظرات راجع به برنامک‌های همراه اشاره نمود. هدف از این درس، آشناسازی دانشجویان با استفاده از این تکنیک‌ها در عمل به منظور حل مسائل مهندسی نرم‌افزار می‌باشد.

ریز مواد

  1. معرفی علم داده‌ و کلان داده‌ها
  2. مقدمه‌ای بر کاربردهای علم داده‌ در مهندسی نرم‌افزار
  3. آشنایی با کتابخانه‌های مرتبط در زبان برنامه‌نویسی پایتون برای تحلیل داده‌ها
  4. آشنایی با تکنیک‌های یادگیری ماشینی
  5. درخت‌های تصمیم‌گیری
  6. شبکه‌های عصبی
  7. یادگیری ژرف
  8. خوشه‌بندی
  9. پردازش زبان طبیعی
  10. کاربردهای تحلیل متن در مهندسی نرم‌افزار
  11. کاربردهای LDA در استخراج موضوعات از مصنوعات نرم‌افزاری
  12. بازبینی کد
  13. تحلیل داده‌های IDE
  14. خلاصه‌سازی مصنوعات نرم‌افزاری
  15. تحلیل فروشگاه‌های برنامک‌های همراه
  16. تحلیل انرژی در برنامک‌های همراه
  17. استفاده از زیرساخت BOA برای تحلیل مخازن نرم‌افزاری

ارزیابی

  • آزمون میان ترم: ۲۵٪  کل نمره
  • آزمون پایان ترم: ۳۰٪ کل نمره
  • ارائه مقاله علمی: هر دانشجو موظف به ارائه حداقل یک مقاله علمی می‌باشد که در یکی از بهترین کنفرانس‌ها یا مجلات مرتبط به درس در سال‌های اخیر به چاپ رسیده باشد. (۱۵٪ کل نمره)
  • پروژه و گزارش پژوهشی: موضوع پروژه پژوهشی قبل از آزمون نیم‌سال تعیین می‌شود. دانشجو کار پژوهش را با کمک استاد درس آغاز نموده و پس از انجام پروژه، نتیجه پژوهش را در قالب گزارش ارائه می‌دهد. (۳۰٪ کل نمره)

مراجع

  1. Joel Grus, Data Science from Scratch, O’Reilly, 2019.
  2. Christian Bird, Tim Menzies, and Thomas Zimmermann, The Art and Science of Analyzing Software Data, Morgan Kaufmann, 2015.
  3. Tim Menzies, Laurie Williams, and Thomas Zimmermann, Perspectives on Data Science for Software Engineering, Morgan Kaufmann, First edition, 2016.