برنامه درسی

لیست برنامه های درسی

منابع

کتاب سیستم‌های اطلاعات مدیریت (MIS)، مولف کنت سی لادن و جین پی لادن

طرح درس
ردیف موضوع هر جلسه توضیحات
۱ مقدمه و اهمیت درس
  • دلایل اهمیت درس سیستم‌های اطلاعات مدیریت
۲ تاثیر فناوری اطلاعات بر بهره‌وری سازمانی
  • مقایسه کارایی و اثربخشی
  • نقدی بر بکارگیری تفکر مهندسی در مدیریت
۳ مقایسه مفاهیم سنتی و مدرن 
  • مقایسه فناوری متناسب با اقلیم و فناوری‌های مدرن 
۴ ایجاد مزیت رقابتی با کمک فناوری اطلاعات
  • معرفی مزیت رقابتی با کمک فناوری اطلاعات
۵ تغییر سازمان با فناوری اطلاعات
  • معرفی چهار روش تغییر سازمانی
  • کاربرد فناوری اطلاعات در تغییر سازمانی
  • مقایسه BPR و TQM
۶

جایگاه نوآوری در رشد و بلوغ سازمان

  • فناوری‌های به‌هم زننده
  • مقایسه نوآوری با ابداع و تجاری‌سازی
  • قاعده ۱، ۹، ۹۰ در پذیرش فناوری
  • معرفی مفهوم تله بنیانگذار
  • تفکر چابک و چرخش در بازار 
۷ مهندسی مجدد فرایندهای کسب‌و‌کار
  • معرفی پنج نوع از ساختارهای سازمانی بر اساس ماموریت سازمان
  • مقایسه تفکر وظیفه‌ای و تفکر فرایندی
  • معرفی ابعاد مهندسی مجدد فرایندهای کسب‌وکار
  • معرفی چند نمونه BPR موفق در صنعت
۸ سیستم و تفکر سیستمی
  • معرفی سیستم و تفکر سیستمی
  • چرا در دانشگاه باید فلسفه تدریس شود؟
  • آنتروپی و سیستم باز و بسته
  • معرفی مفاهیم برنامه، نرم‌افزار، سیستم اطلاعاتی، سیستم سازمانی و سیستم اقتصادی اجتماعی
۹ جایگاه سیستم‌های اطلاعاتی در کسب‌وکار
  • رابطه استراتژی فناوری اطلاعات با استراتژی کسب‌وکار و بالعکس
  • تشریح ابعاد اجتماعی اقتصادی سیستم‌های اطلاعاتی 
  • کوه یخ تفکر سیستمی
  • تشریح سلسله مراتب رویداد، الگوهای رفتاری، سیستم‌ها و ساختارها و الگوهای فکری
۱۰ تعریف فناوری اطلاعات
  • تبیین ابعاد مختلف مفهوم فناوری
  • تعریف فناوری اطلاعات
  • تعریف هرم سلسله مرتب اطلاعات شامل مفاهیم داده، اطلاعات اتمی، اطلاعات تجمیعی، دانش، بینش و زمینه
۱۱ هرم اطلاعات و مدیریت دانش
  • ارائه مثال در زمینه هرم اطلاعات
  • مقایسه دانش ضمنی و صریح
۱۲ موج‌های سه‌گانه تافلر
  • معرفی ابعاد جامعه کشاورزی
  • معرفی ابعاد جامعه صنعتی
  • معرفی ابعاد جامعه اطلاعاتی
۱۳

موج‌های سه‌گانه تافلر

  • مقایسه جامعه صنعتی و جامعه اطلاعاتی
  • مقایسه رسانه، تولید، مصرف، خانواده در جامعه صنعتی و جامعه اطلاعاتی
  • ویژگی‌های سازمان‌ها و کسب‌وکارها در جامعه اطلاعاتی
  • سازمان سلسله مراتبی در مقابل سازمان شبکه‌ای شبکه‌ای
۱۴ جامعه اطلاعاتی
  • عوامل موثر بر توسعه جامعه اطلاعاتی
  • ظرفیت پذیرش فناوری
  • شکاف دیجیتالی
۱۵ تجربه ایجاد جامعه اطلاعاتی توسط دولت فرانسه
  • چرایی توسعه جامعه اطلاعاتی در فرانسه
  • عوامل موفقیت اولیه کیس مینیتل
  • عوامل شکست نهایی کیس مینیتل
۱۶ تاثیر فناوری اطلاعات بر صنعت
  • فراز و نشیب انتظارات از فناوری های مختلف (امواج گارتنر)
  • تاثیر اینترنت بر ساختار صنعت
  • تفاوت رویکرد فشاری و کششی در تولید و مصرف
  • سفارشی‌سازی انبوه
۱۷ مفاهیم تحول‌ساز در جامعه اطلاعاتی
  • واسطه‌گری مجدد
  • جایگاه Reach و Richness در رشد کسب‌وکارهای نوین
  • تاثیر فناوری اطلاعات بر زنجیره ارزش سازمان (CRM + SCM)
  • تاثیر فناوری اطلاعات بر تفکیک سازمان به سه بخش مجزا (Unbundling)
۱۸

انواع سیستم‌های اطلاعاتی سازمانی

  • معرفی سیستم‌های پردازش تراکنش (TPS)
  • معرفی سیستم اطلاعات مدیریت (MIS)
  • معرفی سیستم پشتیبان از مدیران ارشد (ESS)
  • معرفی سیستم پشتیبان تصمیم (DSS)
۱۹

سیستم‌های اطلاعاتی پشتیبان تصمیم (DSS)

  • تشریح فرایند تصمیم‌گیری
  • تشریح جایگاه سیستم‌های DSS در فرایند تصمیم‌گیری
  • مقایسه رویکرد تصمیم‌گیری مدل‌محور با رویکرد داده‌محور
۲۰ سیستم‌های مدیریت ارتباط با مشتری (CRM)
  • مقایسه سیستم‌های CRM تحلیلی و عملیاتی
۲۱ سیستم‌های تعاملی و آموزشی
  • ماتریس زمان و مکان در سیستم‌های تعاملی
  • اثربخشی روش‌های مختلف یادگیری
  • معرفی سه نوع از سیستم‌های مدیریت دانش
۲۲

مباحث اخلاقی و حقوقی فناوری اطلاعات

  • مبانی و اصول قانونی و اخلاقی تاثیرگذار بر گسترش فناوری اطلاعات
۲۳ ارزش‌آفرینی
  • ایجاد ارزش
  • جذب ارزش توسط تولید کننده و مصرف‌کننده یا دلال
۲۴ تجارت و کسب‌‌وکار الکترونیکی
  • تجارت و کسب‌‌وکار الکترونیکی
  • معرفی بوم مدل کسب‌وکار کلاسیک و ناب

اطلاعات کلاس

زمان برگزاری مکان برگزاری توضیحات فایل پیوست اول فایل پیوست دوم فایل پیوست سوم
شنبه ساعت ۱۰ تا ۱۲ و دوشنبه ساعت ۸ تا ۱۰ چرخشی اتاق ۲۱۱ دانشکده مهندسی کامپیوتر و صنایع - - -

اطلاعات کلاس

زمان برگزاری مکان برگزاری توضیحات فایل پیوست اول فایل پیوست دوم فایل پیوست سوم
یکشنبه ساعت ۸ تا ۱۰ چرخشی فرد و سه شنبه ساعت ۸ تا ۱۰ کلاس ۱۰۹ دانشکده مهندسی کامپیوتر و صنایع - - -
منابع

کتاب مهندسی نرم‌افزار پرسمن

طرح درس
ردیف موضوع هر جلسه توضیحات
۱ مقدمه و اهمیت درس
  • دلایل اهمیت درس مهندسی نرم‌افزار
۲ مهندسی نرم‌افزار چیست؟
  • معرفی مهندسی نرم‌افزار
  • معرفی مفاهیم مرتبط با مهندسی نرم‌افزار
  • تبیین تفاوت تحلیل سیستم و طراحی نرم‌افزار
۳

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

  • مروری بر مشکلات توسعه آبشاری در تولید نرم‌افزار
  • مقایسه مفهوم افزایش و تکرار
  • معرفی روش‌های تکاملی
۴

متدولوژی چابک

  • تبیین مبانی و اصول تفکر چابک
  • ارائه مثال در زمینه توسعه چابک
  • معرفی روش‌های اجایل مانند اسکرام و کانبان و غیره
۵ معرفی روش RUP
  • تشریح تفاوت RUP با اجایل
  • معرفی مفاهیم فاز و دیسیپلین
  • معرفی اسناد مهم RUP
۶ نیازمندی‌ها
  • تشریح جایگاه نیازمندی در فرایند توسعه نرم‌افزار
  • تشریح نحوه تدوین مسئله، دامنه و کلیات سند SRS
۷ نیازمندی‌ها
  • تشریح نحوه تدوین نیازمندی‌های عملکردی در سند SRS
  • تشریح نحوه تدوین نیازمندی‌های غیرعملکردی در سند SRS
۸

مفاهیم کلیدی تحلیل سیستم

  • تشریح جایگاه تحلیل و مدل‌های تحلیلی در رویکرد توسعه چابک
  • مقایسه رویکرد تحلیل و طراحی ساخت‌یافته (SSADM) و رویکرد تحلیل و طراحی شی‌گرا (OOADM)
  • تبیین مفاهیم برنامه، نرم‌افزار، سیستم اطلاعاتی، سیستم سازمانی و سیستم اقتصادی اجتماعی
  • مقایسه نگاه کلان و خرد در تحلیل سیستم
۹ انواع رویکردهای تحلیل سیستم جهت تغییر سازمان
  • معرفی چهار رویکرد در تحلیل جهت تغییر سازمان با کمک فناوری و نرم افزار
۱۰ طراحی نمودار موردکاربرد و نمودار فعالیت
  • مقایسه نمودار موردکاربرد تحلیلی با موردکاربرد طراحی
  • آموزش مبانی نظری ترسیم نمودار موردکاربرد با رویکرد طراحی 
  • مقایسه نمودارهای فعالیت تحلیلی و طراحی
۱۱ طراحی نمودار موردکاربرد و نمودار فعالیت
  • آموزش عملی ترسیم نمودار موردکاربرد و نمودار فعالیت با رویکرد طراحی در ابزار ویژوال پارادایم
۱۲ طراحی نمودار کلاس
  • تبیین تفاوت نمودار کلاس تحلیلی و طراحی
  • آموزش مبانی نظری نمودار کلاس با رویکرد تحلیلی
۱۳ طراحی نمودار کلاس
  • آموزش عملی ترسیم نمودار کلاس در ویژوال پارادایم
۱۴ طراحی نمودار ERD
  • آموزش مبانی نظری و عملی ترسیم نمودار ERD
۱۵ طراحی نمودار وضعیت
  • آموزش مبانی نظری و عملی ترسیم نمودار وضعیت با رویکرد طراحی
۱۶ طراحی نمودار توالی و نمودار استقرار
  • آموزش مبانی نظری و عملی ترسیم نمودار توالی و نمودار استقرار
۱۷ اصول معماری نرم‌افزار و رویکردهای توسعه نرم‌افزار 
  • تبیین مفاهیم ماژولاریتی در نرم‌افزار
  • مقایسه مفاهیم پیوند ضعیف، قوی و چسبندگی
  • معرفی رویکردها و معماری‌ها مختلف در توسعه نرم‌افزار
۱۸

اصول معماری نرم‌افزار و رویکردهای توسعه نرم‌افزار 

  • معرفی الگوها و چارچوب‌ها در توسعه نرم‌افزار
  • معرفی سبک‌های معماری مطرح در طراحی نرم‌افزار
۱۹ طراحی در سطح مولفه 
  • معرفی انواع روش‌های طراحی در سطح مولفه مانند روش گرافیکی، شبه‌کد و جدول تصمیم‌گیری
۲۰ اصول طراحی رابط کاربری
  • معرفی مفاهیم کلیدی طراحی رابط کاربری
۲۱ آزمون نرم‌افزار
  • تببین اهمیت آزمون نرم‌افزار
  • تشریح چهار راهبرد آزمون واحد، آزمون یکپارچه‌سازی، آزمون اعتبارسنجی و آزمون سیستم
  • تشریح رویکرد آزمون بالا به پایین، پایین به بالا و ساندویچی
۲۲ آزمون نرم‌افزار
  • تشریح فرایند رفع باگ (خطای) نرم‌افزار
  • تشریح دلایل و نشانه‌های خطاهای نرم‌افزاری
  • تشریح کاربرد رگرسیون و همبستگی در آزمون نرم‌افزار
  • مقایسه روش آزمون جعبه سفید و جعبه سیاه
۲۳ آزمون جعبه سفید
  • تبیین مفهوم V&V
  • معرفی مفهوم مسیر ساده (Basic path)
  • تشریح مفهوم پیچیدگی سیکلوماتیک و نحوه محاسبه آن با مثال
۲۴ بهبود فرایند تولید نرم‌افزار
  • تشریح روش مدل بلوغ توانمند‌ی‌ها (CMMI) و کاربرد آن در بهبود فرایند تولید نرم‌افزار

اطلاعات کلاس

زمان برگزاری مکان برگزاری توضیحات فایل پیوست اول فایل پیوست دوم فایل پیوست سوم
یکشنبه ساعت ۸ تا ۱۰ و سه شنبه ساعت ۸ تا ۱۰ چرخشی اتاق ۲۱۱ دانشکده مهندسی کامپیوتر و صنایع - - -
منابع
  • کتاب Next Generation Application Integration: From Simple Information to Web Services اثر David Linthicum
  • اسلایدها و فایل‌های آموزشی که در کلاس درس به اشتراک گذاشته می‌شود 
طرح درس

جلسه

عنوان بحث هر جلسه

شرح موضوعات و فعالیت­ها

1

مقدمه و اهمیت درس

  • دلایل اهمیت درس یکپارچه‌سازی کاربردهای سازمانی

2

یکپارچه‌سازی چیست؟

  • معرفی تفاوت یکپارچه‌سازی بزرگ و کوچک
  • معرفی پیوند ضعیف، قوی و چسبندگی 
  • معرفی معماری سازمانی و ارتباط آن با یکپارچه‌سازی
3 معرفی مفاهیم کلیدی مهندسی نرم‌افزار مرتبط با EAI 
  • معرفی مفاهیم Separation of concerns, Reusability, Extensibility, Interoperability, Modularity
  • تشریح دقیق مفاهیم پیوند و چسبندگی و انواع پیوند و چسبندگی و مزایا و معایب هر یک و ارتباط آنها با Usability
  • معرفی دانه‌بندی Fine-grained و Coarse-grained

4

معرفی روش‌های توسعه نرم‌افزار
  • معرفی اجزای تشکیل دهنده روش‌های توسعه نرم‌افزار شامل روش ساخت‌یافته، شی‌گرا، مبتنی بر مولفه، سرویس‌گرا و جنبه‌گرا

5

معرفی معماری‌های مهم در توسعه نرم‌افزار
  • معرفی معماری‌های CBD ،SOA ،MSA و Monolithic
  • مقایسه دقیق معماری سرویس‌گرا (SOA) و معماری مایکروسرویس (MSA)

6

معرفی چهار رویکرد یکپارچه‌سازی برنامه‌های کاربردی
  • معرفی و مقایسه چشم‌انداز چهار رویکرد یکپارچه‌سازی اطلاعات‌گرا، فرایندگرا، سرویس‌گرا و پورتال‌گرا

7

رویکرد یکپارچه‌سازی اطلاعات‌گرا
  • معرفی رویکرد یکپارچه‌سازی اطلاعات‌گرا
  • مقایسه مفاهیم داده با اطلاعات اتمی و تجمیعی

8

رویکرد یکپارچه‌سازی اطلاعات‌گرا
  • مقایسه دو رویکرد دسترسی به داده و رونوشت‌گرفتن از داده
  • مقایسه انباره‌سازی داده‌ها و پایگاه‌داده مجازی

9

تبدیل داده در رویکرد یکپارچه‌سازی اطلاعات‌گرا
  • مقایسه مفاهیم تبدیل نحوی، معنایی و محتوایی

10

انواع نقاط اتصال و رابط‌های یکپارچه‌سازی 

 

  • معرفی مهم‌ترین نقاط اتصال به برنامه‌های کاربردی
  • معرفی انواع رابط‌های یکپارچه‌سازی
  • معرفی مفاهیم دیکشنری داده، تاخیر داده‌ای و جامعیت داده‌ای و کاربرد آنها در یکپارچه‌سازی

11

معرفی رویکرد یکپارچه‌سازی سرویس‌گرا
  • معرفی سه الگوی سرویس‌گرای شناخته شده شامل رویدادرانده (Event-driven)، سرویس ترکیبی (Composite service) و خودمختار توزیع شده (Autonomous-distributed) 
12 معرفی انواع توپولوژی‌های سرویس‌گرایی
  • معرفی انواع توپولوژی‌های سرویس‌گرایی نقطه‌به نقطه، مبتنی بر دلال، مبتنی بر گذرگاه و توزیع شده

13

معرفی رویکرد یکپارچه‌سازی پورتال‌گرا 
  • معرفی پورتال تک‌سیستمی، پورتال سازمانی (چندسیستمی) و پورتال جامعه تجاری

14

معرفی رویکرد یکپارچه‌سازی فرایندگرا
  • معرفی مفاهیم اولیه و لایه‌های رویکرد یکپارچه‌سازی فرایندگرا

15

انواع میان‌افزار (Middleware)  و مودهای ارتباطی آنها
  • معرفی و مقایسه میان‌افزارهای یک‌به‌یک و چند به چند
  • مقایسه میان‌افزارهای همگام و ناهمگام

16

انواع میان‌افزار (Middleware)  و مودهای ارتباطی آنها
  • میان‌افزارهای اتصال‌گرا و بدون اتصال،
  • میان‌افزارهای مستقیم و مبتنی بر صف
  • میان‌افزارهای درخواست/پاسخ، انتشار/اشتراک و Fire and Forget

17

مقایسه میان‌افزارهای ارتباطی پایه‌ای
  • مقایسه میان‌افزارهای ارتباطی RPC و MOM

18

معرفی میان‌افزارهای ارتباط با پایگاه‌داده
  • معرفی رویکرد پایگاه‌داده بومی، Call-Level Interfaces (شامل ODBC و JDBC) و Database Gateways

19

معرفی میان‌افزارهای اشیا توزیع شده، مبتنی بر مولفه و تراکنش‌گرا
  • معرفی انواع میان‌افزارهای اشیا توزیع شده و مبتنی بر مولفه شامل COM، DCOM، CORBA و میان‌افزارهای تراکنش‌گرا 

20

معرفی سرویس‌دهنده‌های یکپارچه‌سازی و آداپترهای اتصال به برنامه‌های کاربردی
  • معرفی سرویس‌دهنده‌های یکپارچه‌سازی (Integration servers) 
  • معرفی انواع آداپترهای یکپارچه‌سازی شامل thin و thick، متمرکز و غیرمتمرکز، ایستا و پویا، و اطلاعات‌گرا و سرویس‌گرا

21

فناوری‌ها و توپولوژی‌های یکپارچه‌سازی B2B
  • مقایسه EDI و XML
  • مقایسه XML و JSON
  • معرفی توپولوژی‌های اصلی یکپارچه‌سازی بین سازمانی
22 مقایسه انواع فناوری‌های یکپارچه‌سازی 
  • دسته‌بندی انواع فناوری‌های یکپارچه‌سازی 
  • بررسی لایه‌های معماری و قابلیت‌های کلیدی ارائه شده توسط فناوری‌های یکپارچه‌سازی
23 آموزش ساخت وب‌سرویس REST
  • آموزش ساخت وب‌سرویس REST در یک زبان برنامه‌نویس وب مانند PHP و فراخوانی آن با ابزار Postman
24 آموزش ساخت وب‌سرویس‌های پیشرفته
  • آموزش ساخت وب سرویس‌های مبتنی بر SOAP و فراخوانی آن با ابزار SoapUI
  • آموزش طراحی، ساخت و استقرار وب‌سرویس‌های ترکیبی و سرویس‌های فرایندی روی یک BPEL Engine

اطلاعات کلاس

زمان برگزاری مکان برگزاری توضیحات فایل پیوست اول فایل پیوست دوم فایل پیوست سوم
شنبه ساعت ۱۲ تا ۱۴ و یکشنبه ساعت ۱۲ تا ۱۴ چرخشی اتاق ۲۰۹ دانشکده مهندسی کامپیوتر و صنایع - - -
منابع
  • کتاب مهندسی نرم‌افزار پرسمن 
  • اسلایدها و جزوه ارائه شده در کلاس
طرح درس
ردیف موضوع هر جلسه توضیحات
۱ مقدمه و اهمیت درس
  • دلایل اهمیت درس مهندسی نرم‌افزار
۲ مهندسی نرم‌افزار چیست؟
  • معرفی مهندسی نرم‌افزار
  • معرفی مفاهیم مرتبط با مهندسی نرم‌افزار
  • تبیین تفاوت تحلیل سیستم و طراحی نرم‌افزار
۳

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

  • مروری بر مشکلات توسعه آبشاری در تولید نرم‌افزار
  • مقایسه مفهوم افزایش و تکرار
  • معرفی روش‌های تکاملی
۴

متدولوژی چابک

  • تبیین مبانی و اصول تفکر چابک
  • ارائه مثال در زمینه توسعه چابک
۵ متدولوژی چابک
  • معرفی روش‌های اجایل مانند اسکرام و کانبان و غیره
۶ معرفی روش RUP
  • تشریح تفاوت RUP با اجایل
  • معرفی مفاهیم فاز و دیسیپلین
  • معرفی اسناد مهم RUP
۷ مسئله و نیازمندی‌ها
  • تشریح جایگاه نیازمندی در فرایند توسعه نرم‌افزار
  • تشریح نحوه تدوین مسئله، دامنه و کلیات سند SRS
۸ نیازمندی‌های عملکردی و غیرعملکردی
  • تشریح نحوه تدوین نیازمندی‌های عملکردی در سند SRS
  • تشریح نحوه تدوین نیازمندی‌های غیرعملکردی در سند SRS
۹

مفاهیم کلیدی تحلیل سیستم

  • تشریح جایگاه تحلیل و مدل‌های تحلیلی در رویکرد توسعه چابک
  • مقایسه رویکرد تحلیل و طراحی ساخت‌یافته (SSADM) و رویکرد تحلیل و طراحی شی‌گرا (OOADM)
  • تبیین مفاهیم برنامه، نرم‌افزار، سیستم اطلاعاتی، سیستم سازمانی و سیستم اقتصادی اجتماعی
  • مقایسه نگاه کلان و خرد در تحلیل سیستم
۱۰ انواع رویکردهای تحلیل سیستم جهت تغییر سازمان
  • معرفی چهار رویکرد در تحلیل جهت تغییر سازمان با کمک فناوری و نرم افزار
۱۱ مدلسازی نمودار یوزکیس تحلیلی
  • ترسیم نمودار یوزکیس با رویکرد تحلیلی
۱۲ مدلسازی نمودار فعالیت تحلیلی
  • ترسیم نمودار فعالیت با رویکرد تحلیلی
۱۳ تبیین مفاهیم پایه‌ای نمودار ساختاری کلاس
  • تبیین مفاهیم پایه‌ای نمودار ساختاری کلاس
۱۴ مدلسازی نمودار کلاس تحلیلی
  • مدلسازی نمودار کلاس با رویکرد تحلیلی
۱۵ مدلسازی نمودار وضعیت با رویکرد تحلیلی
  • مدلسازی نمودار وضعیت با رویکرد تحلیلی
۱۶ طراحی نمودار موردکاربرد
  • تبیین مفاهیم ترسیم یوزکیس با رویکرد طراحی
  • مقایسه نمودار موردکاربرد تحلیلی با موردکاربرد طراحی
۱۷ طراحی نمودار موردکاربرد 
  • ترسیم چند نمونه مدل یوزکیس با رویکرد طراحی
۱۸

بازخورد به دانشجویان در خصوص سند SRS بارگذاری شده 

  • ارائه بازخورد در خصوص سند SRS بارگذاری شده توسط دانشجویان
۱۹ بازخورد به دانشجویان در خصوص مدل‌های تحلیلی بارگذاری شده 
  • ارائه بازخورد در خصوص مدل‌های تحلیلی یوزکیس و فعالیت که توسط دانشجویان بارگذاری شده
۲۰ ارائه بازخورد در خصوص مدل‌های تحلیلی ارسالی توسط دانشجویان
  • ارائه بازخورد در خصوص مدل‌های تحلیلی کلاس  و وضعیت که توسط دانشجویان بارگذاری شده
۲۱ طراحی نمودار فعالیت
  • آموزش مبانی نظری ترسیم نمودار فعالیت با رویکرد طراحی 
  • مقایسه نمودارهای فعالیت تحلیلی و طراحی
  • آموزش عملی ترسیم نمودار موردکاربرد و نمودار فعالیت با رویکرد طراحی در ابزار ویژوال پارادایم
۲۲

طراحی نمودار کلاس

  • تبیین تفاوت نمودار کلاس تحلیلی و طراحی
  • آموزش مبانی نظری نمودار کلاس با رویکرد تحلیلی
۲۳ طراحی نمودار کلاس
  • آموزش عملی ترسیم نمودار کلاس در ویژوال پارادایم
۲۴ طراحی نمودار ERD
  • آموزش مبانی نظری و عملی ترسیم نمودار ERD
۲۵ طراحی نمودار وضعیت
  • آموزش مبانی نظری و عملی ترسیم نمودار وضعیت با رویکرد طراحی
۲۶ طراحی نمودار توالی و نمودار استقرار
  • آموزش مبانی نظری و عملی ترسیم نمودار توالی و نمودار استقرار
۲۷

اصول معماری نرم‌افزار و رویکردهای توسعه نرم‌افزار 

  • معرفی الگوها و چارچوب‌ها در توسعه نرم‌افزار
  • معرفی سبک‌های معماری مطرح در طراحی نرم‌افزار
۲۸ طراحی در سطح مولفه 
  • معرفی انواع روش‌های طراحی در سطح مولفه مانند روش گرافیکی، شبه‌کد و جدول تصمیم‌گیری
۲۹ اصول طراحی رابط کاربری
  • معرفی مفاهیم کلیدی طراحی رابط کاربری
۳۰ بهبود فرایند تولید نرم‌افزار
  • تشریح روش مدل بلوغ توانمند‌ی‌ها (CMMI) و کاربرد آن در بهبود فرایند تولید نرم‌افزار
۳۱  بازخورد به دانشجویان در خصوص مدل‌های طراحی بارگذاری شده
  •  ارائه بازخورد به دانشجویان در خصوص مدل‌های طراحی یوزکیس و نمودار فعالیت بارگذاری شده 

۳۲ بازخورد به دانشجویان در خصوص مدل‌های طراحی بارگذاری شده 
  •  ارائه بازخورد به دانشجویان در خصوص مدل‌های طراحی نمودار کلاس، نمودار وضعیت، ERD و غیره

اطلاعات کلاس

زمان برگزاری مکان برگزاری توضیحات فایل پیوست اول فایل پیوست دوم فایل پیوست سوم
یکشنبه ساعت ۱۰ تا ۱۲ و سه‌شنبه ساعت ۱۰ تا ۱۲ 109 - - -
منابع

جزوه ارایه شده در کلاس درس

طرح درس
  • ردیف عنوان شرح
    ۱ معرفی واژگان و مفاهیم بنیادی
    • معرفی مفاهیم بنیادی مرتبط با کسب‌وکار نوپا شامل پروژه، فرایند، تولید، خدمات، کارآفرینی، ارزش‌آفرینی، استارتاپ، کسب‌وکار کوچک و متوسط
    ۲ معرفی واژگان و مفاهیم بنیادی
    • معرفی سایر مفاهیم مرتبط با کسب‌وکار نوپا شامل تجارت، خواشتغالی، آزادکار، سرمایه‌گذاری، بنگاه‌داری، فعالیت صنفی، پیمانکار، کارفرما، شرکت خصوصی، شرکت دولتی، شرکت تعاونی، شرکت خصولتی
    ۳ معرفی مفاهیم مرتبط با مراکز رشد و پارک‌های علم و فناوری
    • معرفی ثبت اختراع، ثبت پتنت، نوآوری، تجاری سازی، دانش فنی، شرکت دانش‌بنیان، شرکت فناور، شرکت خلاق‌بنیان، مرکز رشد، پارک علم و فناوری شهرک علم و فناوری، مرکز نوآوری، کارخانه نوآوری
    ۴ شم اقتصادی
    • جایگاه پول و سرمایه در کسب‌وکار نوپا
    • جایگاه کسب‌وکار نوپا در اقتصاد خرد و کلان
    • موقعیت‌یابی و فرصت‌شناسی
    • کسب‌وکار پایدار (sustainable)
    ۵

    چرخه عمر کسب‌وکارهای نوپا

    • چرخه عمر کسب‌وکارهای نوپا
    • تله بنیان‌گذار
    • قواعد پذیرش فناوری
    ۶ نیازسنجی و شناسایی ایده کسب‌وکار
    • تبیین تفاوت مفهوم مسئله و فرصت
    • تبیین نیاز گذشته، حال و آینده
    • تبیین فناوری‌های به‌هم‌زننده (disruptive)
    ۷ محصول فناورانه
    • مفهوم راه‌حل و تفاوت آن با محصول
    ۸ ساخت نمونه اولیه و کمینه محصول پذیرفتنی (MVP)
    • تبیین مفهوم نمونه اولیه و تفاوت آن با MVP
    ۹ کمینه محصول پذیرفتنی (MVP)
    • انواع روش‌های ساخت و اعتبارسنجی MVP
    ۱۰ اعتبارسنجی ایده
    • روش‌های اعتبارسنجی ایده استارتاپی
    ۱۱ بازاریابی کسب‌وکارهای نوپا
    • انواع روش‌های بازاریابی کسب‌وکارهای نوپا
    ۱۲ استراتژی‌های ورود به بازار
    • داستان مرغ و تخم‌مرغ
    • استراتژی‌های ورود به بازار
    • هک رشد و کاربرد آن در کسب‌وکار نوپا
    ۱۳ برنامه‌ریزی و تفکر راهبردی
    • مقایسه دیدگاه کوتاه مدت و بلندمدت
    • مطالعه امکان‌سنجی
    • تدوین برنامه کسب‌وکار (BP)
    • تدوین برنامه راهبردی
    ۱۴ برنامه‌ریزی و تفکر راهبردی
    • نقدی بر سازوکار برنامه‌ریزی و تعریف برنامه راهبردی در کسب‌وکارهای نوپا
    • معرفی تفکر راهبردی و جایگاه آن در موفقیت کسب‌وکارهای نوپا
    ۱۵

    مقایسه کسب‌وکار سنتی بزرگ با کسب‌وکار چابک

    • چابک‌سازی کسب‌وکار
    • اصول تفکر چابک
    • مقایسه کسب‌‌وکار چابک با کسب‌وکار سنتی بزرگ
    ۱۶ بوم کسب‌وکار
    • تفاوت برنامه کسب‌وکار با بوم کسب‌وکار
    • معرفی نحوه تکمیل بوم کسب‌وکار 
    ۱۷ بوم کسب‌وکار ناب
    • معرفی نحوه تکمیل بوم کسب‌و‌کار ناب
    ۱۸ ارزش‌گذاری استارتاپ‌ها
    • انواع روش‌های ارزش‌گذاری استارتاپ‌ها
    ۱۹ مباحث حقوقی و مالکیت معنوی
    • قرارداد هم بنیان‌گذاران و توافقنامه سهام‌داران  

    • قرارداد وستینگ سهام (واگذاری سهام تشویقی)

    • توافقنامه عدم افشاء 

    • مالکیت معنوی
    • مسئولیت‌های قانونی
    ۲۰ چالش‌‌های کسب‌وکار در ایران
    • اخذ مجوزها
    • بیمه
    • مالیات
    • انحصار در بازار
    ۲۱ اهمیت مباحث توسعه فردی و موفقیت در کسب‌وکار نوپا
    • توسعه فردی چیست؟
    • عوامل داخل اثرگذار بر موفقیت یک شخص یا کسب‌وکار
    • عوامل بیرونی اثرگذار بر موفیت یک شخص یا کسب‌وکار
    • الگوی فکری و تفاوت آن با الگوی رفتاری
    ۲۲ تفکر برد-برد
    • جایگاه تفکر برد-برد در کسب‌وکارهای نوپا و کسب‌وکارهای سنتی
    ۲۳ تیم‌سازی و فرهنگ کاری استارتاپی
    • آزادی و نوآوری
    • نظم و دیسیپلین
    • آسیب‌شناسی فرهنگ کاری استارتاپی
    ۲۴

    رویدادهای استارتاپی

    • معرفی رویدادهای ایده‌شو، استارتاپ‌ویکند، هکاتون، بوت‌کمپ و غیره

 

اطلاعات کلاس

زمان برگزاری مکان برگزاری توضیحات فایل پیوست اول فایل پیوست دوم فایل پیوست سوم
شنبه ساعت ۱۲ تا ۱۴ و سه‌شنبه ۸ تا ۱۰ (چرخشی فرد) 209 و 211 - - -
منابع

 

  • کتاب مفاهیم سیستم پایگاه داده‌ها آبراهام سیلبرشاتس
  • اسلایدها و جزوه ارائه شده در کلاس
طرح درس
ردیف موضوع هر جلسه توضیحات
۱ مقدمه و اهمیت درس
  • دلایل اهمیت درس پایگاه داده
۲ هرم اطلاعات
  • معرفی داده، اطلاعات اتمی، اطلاعات تجمیعی، دانش، بینش و زمینه
۳ هرم اطلاعات
  • ارائه مثال در زمینه هرم اطلاعاتی 
۴ مفاهیم اولیه پایگاه‌داده
  • انواع سیستم‌های مدیریت پایگاه داده
  • مسیر تکامل و بلوغ سیستم‌های مدیریت داده
  • معماری کلی سیستم‌های مدیریت داده
  • معریف مهم‌ترین نرم‌افزارها و سخت‌افزارهای محیط پایگاه داده
۵ مدلسازی معنایی داده‌ها
  • تبیین اهمیت مدلسازی ساختاری داده‌ها
  • معرفی انواع روش‌های مدلسازی داده‌ها
  • معرفی مدل ERD
  • معرفی مفاهیم موجودیت، ارتباط و صفت
۶

مدلسازی ERD 

  • طبقه‌بندی و معرفی انواع موجودیت‌ها
  • طبقه‌بندی و معرفی انواع صفت‌ها
  • مفهوم وابستگی وجودی
  • مقایسه موجودیت قوی و ضعیف
۷ مدلسازی ERD
  • معرفی مفهوم چندی روابط و درجه ارتباط
  • مقایسه مشارکت الزامی با مشارکت اختیاری 
  • مقایسه روابط یک به یک با یک به چند و چند به چند
۸

مدلسازی Extended ER

 

  • معرفی روش EER (Extended ER) 
  • مقایسه ERD با EER
  • مقایسه مفاهیم تجزیه/ ترکیب و تجمع
  • معرفی مفاهیم تخصیص و تعمیم و وراثت چندگانه
  • معرفی مفهوم دسته‌بندی
۹ مدلسازی داده‌ای با کلاس دیاگرام 
  • مقایسه روش ERD با کلاس دیاگرام 
  • تشریح مفهوم ترکیب و تجمیع 
  • تفاوت ارتباط با بستگی
  • جایگاه وراثت در مدلسازی کلاس
۱۰ معماری سیستم‌های مدیریت پایگاه داده
  • معرفی اجزای اساسی مدل داده‌ای (ساختاری، عملیاتی و جامعیتی)
  • معرفی دید داخلی/فیزیکی، دید ادراکی و دید خارجی
  • مقایسه انواع ساختارهای داده‌ای (ساختار داده‌ای رابطه‌ای، سلسله مراتبی، شبکه‌ای و غیره)
۱۱ تشریح اجزای ساختار داده‌ای رابطه‌ای و جدولی
  • تشریح ساختار داده‌ای رابطه‌ای
  • ویژگی‌های ساختار داده‌ای جدولی
  • معرفی مفهوم تراکنش 
  • معرفی مفهوم دیکشنری داده 
۱۲ طراحی منطقی پایگاه داده (در ساختار داده‌ای رابطه‌ای)
  • تناظر ساختار داده‌ای رابطه‌ای/جدولی
  • اعمال اصلی در ساختار داده‌ای جدولی 
  • معرفی مفهوم کلید در ساختار داده‌ای رابطه‌ای
  • معرفی انواع کلیدها در ساختار داده‌ای رابطه‌ای (ابرکلید، کلید کاندید، کلید اصلی، کلید بدیل و کلید خارجی)
۱۳

انواع کلیدها در ساختار داده‌ای رابطه‌ای

  • ارائه مثال در زمینه انواع کلیدها در مدل رابطه‌ای
۱۴ جبر رابطه‌ای
  • معرفی عملگرهای ساده جبر رابطه‌ای (عملگر گزینش، پرتو، اجتماع، اشتراک و تفاضل)
۱۵ جبر رابطه‌ای
  • معرفی عملگرهای پیشرفته جبر رابطه‌ای (عملگر ضرب درکارتی، پیوند طبیعی، نیم‌پیوند، پیوند شرطی)
۱۶ جبر رابطه‌ای
  • معرفی عملگرهای پیشرفته جبر رابطه‌ای (عملگر نام‌گذاری، انتساب و تقسیم)
  • تشریح روش‌های بهینه‌سازی پرس‌وجو در جبر رابطه‌ای
۱۷

سایر اعمال در جبر رابطه‌ای

 

  • تشریح اعمال درج، حذف و بروزرسانی در جبر رابطه‌ای
  • ارائه مثال در این زمینه
۱۸

معرفی زبان SQL

  • تشریح مفهوم زبان داده‌ای فرعی (شامل دستورات تعریف داده‌ها، دستکاری داده‌ها و کنترل داده‌ها)
  • معرفی دستورات دستکاری داده‌ها (CRUD) شامل درج، حذف، بروزرسانی و خواندن
۱۹ معرفی زبان SQL
  • معرفی دستورات محاسباتی شامل معد‌ل‌گیری، حداقل، حداکثر و غیره 
  • معرفی دستورات پیوند ساده
۲۰ معرفی زبان SQL
  • معرفی دستورات پیشرفته پیوند در SQL
  • معرفی محاسباتی شامل معد‌ل‌گیری، حداقل، حداکثر و غیره 
۲۱

وابستگی تابعی

  • معرفی مفهوم وابستگی تابعی
  • معرفی قواعد وابستگی تابعی
  • معرفی روش شناسایی مجموعه وابستگی پوششی بهینه
۲۲ نرمال‌سازی
  • تشریح مفهوم آنومالی و نرمال‌سازی در پایگاه داده‌ها
  • انواع افزونگی در پایگاه داده‌ها
  • معرفی صورت اول و دوم نرمال با مثال
۲۳ نرمال‌سازی
  • معرفی صورت سوم و چهارم نرمال و ‌BCNF با مثال
۲۴ جمع‌بندی نهایی
  • معرفی جمع‌بندی نهایی درس

اطلاعات کلاس

زمان برگزاری مکان برگزاری توضیحات فایل پیوست اول فایل پیوست دوم فایل پیوست سوم
یکشنبه ساعت ۱۰ تا ۱۲ چرخشی فرد و دوشنبه ساعت ۱۰ تا ۱۲ کلاس ۲۰۹ دانشکده مهندسی کامپیوتر و صنایع - - -
منابع
  • اسلایدها و جزوه ارائه شده در کلاس 
  • کتاب اصول مهندسی نرم‌افزار پیشرفته برای مواجهه با پیچیدگی، ف. شمس و د. گلپایگانی. انتشارات دانشگاه شهید بهشتی، ۱۴۰۰
  • کتاب Next Generation Application Integration: From Simple Information to Web Services اثر David Linthicum
  • کتاب مهندسی نرم افزار مدل رانده، ب. زمانی و ل. صمیمی دهکردی. انتشارات دانشگاه اصفهان، ۱۴۰۰
طرح درس

جلسه

عنوان بحث هر جلسه

شرح موضوعات و فعالیت­ها

۱

مقدمه و اهمیت درس

  • دلایل اهمیت درس مهندسی نرم‌افزار پیشرفته

۲

پیچیدگی نرم‌افزار

  • تشریح دلایل فنی پیچیدگی توسعه نرم‌افزار
۳ پیچیدگی نرم‌افزار
  • تشریح دلایل غیرفنی پیچیدگی توسعه نر‌م‌افزار
۴ روش‌های چابک در مهندسی نرم‌افزار
  • دلایل اهمیت روش چابک در توسعه نرم‌افزار
  • معرفی مانیفست چابک
  • مقایسه رویکرد چابک با رویکرد غیرچابک در توسعه نرم‌افزار
۵ روش‌های چابک در توسعه نرم‌افزار
  • مقایسه انواع روش‌های توسعه نرم‌افزار چابک با یکدیگر

۶

روش‌های نیمه رسمی مدلسازی نرم‌افزار برای مقابله با پیچیدگی
  • مقایسه متدولوژی تحلیل و طراحی ساخت‌یافته (SSADM) با متدولوژی تحلیل و طراحی ساخت‌یافته (OOADM)
  • معرفی UML
  • معرفی روش مدلسازی مبتنی بر سناریو (یوزکیس)
  • مقایسه دو روش مدلسازی رفتاری DFD و اکتیویتی دیاگرام
۷ روش‌های نیمه رسمی مدلسازی نرم‌افزار برای مقابله با پیچیدگی
  • معرفی روش مدلسازی ساختاری کلاس دیاگرام 
۸ روش‌های نیمه رسمی مدلسازی نرم‌افزار برای مقابله با پیچیدگی
  • معرفی روش مدلسازی ساختاری ERD
۹ روش‌های نیمه رسمی مدلسازی نرم‌افزار برای مقابله با پیچیدگی
  • معرفی روش مدلسازی رفتاری نمودار وضعیت 
  • معرفی روش نمونه اولیه رابط کاربری (UI prototype)

۱۰

روش‌های رسمی (formal) 
  • شبکه‌های پتری، روشی رسمی برای مدلسازی نرم‌افزار
۱۱ تعاریف کلیدی مهندسی نرم‌افزار
  • مقایسه مفاهیم توسعه (develop) با گسترش (extend)
  • تشریح مفهوم تفکیک نگرانی‌ها (separation of concerns)
  • مقایسه دو مفهوم استفاده مجدد (reuse) با کاربردپذیری (usability)
  • تشریح ماژولاریتی و رابطه آن با بهبود استفاده مجدد و کاربردپذیری
۱۲ الگوهای طراحی در مهندسی نرم‌افزار
  • معرفی چرایی استفاده از الگوهای طراحی
  • معرفی نقش الگوها در بهبود قابلیت استفاده مجدد نرم‌افزار
  • مقایسه الگوها با چارچوب‌ها (framework) در توسعه نرم‌افزار
۱۳ مهندسی نرم‌افزار مبتنی بر مولفه (CBD)
  • معرفی روند پیدایش انواع رویکردهای مختلف توسعه نرم‌افزار
  • معرفی روش توسعه مبتنی بر مولفه
  • تبیین نقش رویکرد شی‌گرا در توسعه مبتنی بر مولفه

۱۴

مهندسی نرم‌افزار مبتنی بر مولفه
  • معرفی انواع فناوری‌های توسعه نرم‌افزار مبتنی بر مولفه
  • مقایسه دو مفهوم رابط مولفه با پیاده‌سازی مولفه

۱۵

مهندسی نرم‌افزار سرویس‌گرا
  • مقایسه مفهوم مولفه با سرویس
  • تشریح مفهوم سرویس و وب‌سرویس
  • معرفی مفهوم ارائه نرم‌افزار به‌صورت سرویس (SaaS)
  • معرفی معماری سرویس‌گرا (SOA)
  • مقایسه مفهوم رابط سرویس با پیاده‌سازی سرویس

۱۶

معماری‌ها و توپولوژی‌های مرتبط با مهندسی نر‌م‌افزار سرویس‌گرا
  • معرفی سه الگوی سرویس‌گرای شناخته شده شامل رویدادرانده (Event-driven)، سرویس ترکیبی (Composite service) و خودمختار توزیع شده (Autonomous-distributed) 
  • معرفی انواع توپولوژی‌های سرویس‌گرایی نقطه‌به نقطه، مبتنی بر دلال، مبتنی بر گذرگاه و توزیع شده

۱۷

معماری مایکروسرویس (MSA)
  • مقایسه کلی معماری‌های CBD ،SOA ،MSA و Monolithic

  • مقایسه تفصیلی معماری سرویس‌گرا (SOA) و معماری مایکروسرویس (MSA)

۱۸

معماری مایکروسرویس (MSA)
  • پیچیدگی‌ها و محدودیت‌های معماری مایکروسرویس (MSA)
  • مقایسه روش SOAP با REST
  • مقایسه XML و JSON
  • تشریح ابعاد پیاده‌سازی یک مایکروسرویس بر اساس روش REST
۱۹ مباحث جدید در مهندسی نرم‌افزار 
  • معرفی روش مهندسی نرم‌افزار جنبه‌گرا (aspect-oriented)
  • معرفی روش مهندسی نرم‌افزار مبتنی بر عامل (تک‌عاملی و چندعاملی)
  • معرفی روش مهندسی نرم‌افزار مبتنی بر جستجو
۲۰ محاسبات فراگیر و سیستم‌های نرم‌افزاری آگاه به زمینه
  • محاسبات فراگیر چیست؟
  • زمینه چیست؟
  • معرفی سیستم‌های نرم‌افزاری آگاه به زمینه

۲۱

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

  • چرایی استفاده از روش مدل رانده
  • مدل‌رانده چیست
  • ابعاد روش مدل‌رانده
  • معرفی مفهوم متامدل و زبان خاص دامنه
۲۲

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

  • معرفی مفهوم متامدل و زبان خاص دامنه
  • معرفی مفهوم تبدیل مدل (تبدیل مدل به مدل، مدل به کد، کد به مدل و غیره)

۲۳

مهندسی نرم‌افزار مدل‌رانده
  • تشریح ابعاد پژوهشی روش مهندسی نر‌م‌افزار مدل‌رانده 

۲۴

جمع‌بندی نهایی
  • پرسش و پاسخ و جمع‌بندی نهایی درس

اطلاعات کلاس

زمان برگزاری مکان برگزاری توضیحات فایل پیوست اول فایل پیوست دوم فایل پیوست سوم
چهارشنبه ساعت ۱۲ تا ۱۴ و پنجشنبه ساعت ۱۲ تا ۱۴ چرخشی زوج کلاس ۲۱۱ دانشکده مهندسی کامپیوتر و صنایع - - -
منابع
  • Model-Driven Software Engineering in Practice,  Marco Brambilla, Jordi Cabot, Manuel Wimmer. Morgan & Claypool, USA, 2017
  • کتاب مهندسی نرم افزار مدل رانده، بهمن زمانی و لیلا صمیمی دهکردی. انتشارات دانشگاه اصفهان، ۱۴۰۰
طرح درس

جلسه

عنوان بحث هر جلسه

شرح موضوعات و فعالیت­ها

۱

مقدمه و اهمیت درس

  • دلایل اهمیت درس متدولوژی های ایجاد نرم افزار 

۲

تشریح اهمیت متدولوژی و فرایند در توسعه نرم‌افزار

  • تشریح دلایل اهمیت متدولوژی و فرایند در توسعه نرم‌افزار
۳ بهبود فرایند تولید نرم‌افزار
  • تشریح روش مدل بلوغ توانمند‌ی‌ها (CMMI) و کاربرد آن در بهبود فرایند تولید نرم‌افزار
۴ تفاوت روش‌های تکاملی و چابک با روش‌های کلاسیک در توسعه نرم‌افزار
  • دلایل اهمیت روش چابک در توسعه نرم‌افزار
  • معرفی مانیفست چابک
  • مقایسه رویکرد چابک با رویکرد غیرچابک در توسعه نرم‌افزار
۵ روش‌ RUP در توسعه نرم‌افزار
  • تشریح رویکرد RUP در توسعه نرم‌افزار
  • تشریح مفاهیم فاز و دیسیپلین
  • تشریح جایگاه تکرار و افزایش در ‌RUP

۶

روش‌های نیمه رسمی مدلسازی نرم‌افزار برای مقابله با پیچیدگی
  • مقایسه روش‌های بالا به پایین، پایین به بالا و وسط به بیرون
  • مقایسه متدولوژی تحلیل و طراحی ساخت‌یافته (SSADM) با متدولوژی تحلیل و طراحی ساخت‌یافته (OOADM)
۷ تعاریف کلیدی مهندسی نرم‌افزار
  • مقایسه مفاهیم توسعه (develop) با گسترش (extend)
  • تشریح مفهوم تفکیک نگرانی‌ها (separation of concerns)
  • مقایسه دو مفهوم استفاده مجدد (reuse) با کاربردپذیری (usability)
  • تشریح ماژولاریتی و رابطه آن با بهبود استفاده مجدد و کاربردپذیری
۸ مدل‌ها و کاربرد آن در مهندسی نرم‌افزار
  • مدل چیست 
  • کاربرد مدل‌ها در مهندسی نرم‌افزار
۹ معرفی رویکرد مدل رانده
  • مقایسه رویکردهای مختلف مدل‌رانده شامل توسعه مدل رانده (MDD)، مهندسی نرم افزار مدل رانده (MDSE)، معماری مدل رانده (MDA) و مهندسی نرم افزار مبتنی بر مدل (model-based)
۱۰ چرا مدل رانده
  • تشریح تاثیر رویکرد مدل رانده بر افزایش بهره وری (شامل کارایی و اثربخشی) و کیفیت فرایند تولید نرم افزار
۱۱ زبان های مدلسازی
  • مقایسه زبان های مدلسازی با زبان های خاص دامنه

۱۲

مفاهیم مرتبط با فرامدل
  • معرفی مفهوم فرامدل
  • مقایسه مدل با فرامدل و فرافرامدل
۱۳ مفاهیم پایه ای ابزارهای مدلسازی 
  • معرفی مفهوم نحو انتزاعی و عینی و معنایی
۱۴ مفاهیم پایه ای ابزارهای مدلسازی
  • معرفی مفاهیم نحو انتزاعی، عینی و معنایی
  • معرفی ابزارهای مدلسازی متنی و گرافیکی
۱۵ مفاهیم پایه ای تبدیل مدل
  • تبدیل مدل چیست
  • معرفی انواع تبدیل مدل مدل به مدل، مدل به متن و متن به مدل
۱۶ مفاهیم پایه ای تبدیل مدل
  • معرفی انواع تبدیل مدل مدل به مدل، مدل به متن و متن به مدل
۱۷ OCL و کاربرد آن در مدل‌رانده
  • کاربرد OCL در مدل رانده
۱۸ کلاس عملی مدل رانده
  • آموزش نصب ابزارهای مدل رانده
۱۹ کلاس عملی مدل رانده
  • آموزش عملی ساخت یک متامدل
۲۰ کلاس عملی مدل رانده
  • آموزش ساخت یک ابزار مدلسازی
۲۱ کلاس عملی مدل رانده
  • آموزش ساخت یک ابزار تبدیل مدل به کد
۲۲ الگوهای طراحی در مهندسی نرم‌افزار
  • معرفی چرایی استفاده از الگوهای طراحی
  • معرفی نقش الگوها در بهبود قابلیت استفاده مجدد نرم‌افزار
  • مقایسه الگوها با چارچوب‌ها (framework) در توسعه نرم‌افزار
۲۳ محاسبات فراگیر و سیستم‌های نرم‌افزاری آگاه به زمینه
  • محاسبات فراگیر چیست؟
  • زمینه چیست؟
  • معرفی سیستم‌های نرم‌افزاری آگاه به زمینه

۲۴

جمع‌بندی نهایی
  • تشریح ابعاد پژوهشی روش مهندسی نر‌م‌افزار مدل‌رانده 
  • پرسش و پاسخ و جمع بندی نهایی درس
منابع
  • کتاب مهندسی نرم‌افزار پرسمن 
  • اسلایدها و جزوه ارائه شده در کلاس
طرح درس
ردیف موضوع هر جلسه توضیحات
۱ مقدمه و اهمیت درس
  • دلایل اهمیت درس مهندسی نرم‌افزار
۲ مقایسه مهندسی نرم‌افزار با سایر رشته‌های مهندسی 
  • مقایسه ویژگی‌های خاص نرم‌افزار با سایر رشته‌های مهندسی 
  • تشریح دلایل فنی پیچیدگی توسعه نرم‌افزار
۳ مهندسی نرم‌افزار چیست؟
  • معرفی مهندسی نرم‌افزار
  • معرفی مفاهیم مرتبط با مهندسی نرم‌افزار
  • تبیین تفاوت تحلیل سیستم و طراحی نرم‌افزار
۴

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

  • مروری بر مشکلات توسعه آبشاری در تولید نرم‌افزار
  • مقایسه مفهوم افزایش و تکرار
  • معرفی روش‌های تکاملی
۵

متدولوژی چابک

  • تبیین مبانی و اصول تفکر چابک
  • ارائه مثال در زمینه توسعه چابک
۶ متدولوژی چابک
  • معرفی روش‌های اجایل مانند اسکرام و کانبان و غیره
۷ معرفی روش RUP
  • تشریح تفاوت RUP با اجایل
  • معرفی مفاهیم فاز و دیسیپلین
  • معرفی اسناد مهم RUP
۸ مسئله و نیازمندی‌ها
  • تشریح جایگاه نیازمندی در فرایند توسعه نرم‌افزار
  • تشریح نحوه تدوین مسئله، دامنه و کلیات سند SRS
۹ نیازمندی‌های عملکردی و غیرعملکردی
  • تشریح نحوه تدوین نیازمندی‌های عملکردی در سند SRS
  • تشریح نحوه تدوین نیازمندی‌های غیرعملکردی در سند SRS
۱۰

مفاهیم کلیدی تحلیل سیستم

  • تشریح جایگاه تحلیل و مدل‌های تحلیلی در رویکرد توسعه چابک
  • مقایسه رویکرد تحلیل و طراحی ساخت‌یافته (SSADM) و رویکرد تحلیل و طراحی شی‌گرا (OOADM)
  • تبیین مفاهیم برنامه، نرم‌افزار، سیستم اطلاعاتی، سیستم سازمانی و سیستم اقتصادی اجتماعی
۱۱ سیستم و تفکر سیستمی 
  • معرفی تفکر سیستمی
  • معرفی سیستم های باز و بسته
  • مقایسه نگاه کلان و خرد در تحلیل سیستم
۱۲ انواع رویکردهای تحلیل سیستم جهت تغییر سازمان
  • معرفی چهار رویکرد در تحلیل جهت تغییر سازمان با کمک فناوری و نرم افزار
۱۳ مدلسازی نمودار یوزکیس تحلیلی
  • ترسیم نمودار یوزکیس با رویکرد تحلیلی
۱۴ مدلسازی نمودار فعالیت تحلیلی
  • ترسیم نمودار فعالیت با رویکرد تحلیلی
۱۵ تبیین مفاهیم پایه‌ای نمودار ساختاری کلاس
  • تبیین مفاهیم پایه‌ای نمودار ساختاری کلاس
۱۶ مدلسازی نمودار کلاس تحلیلی
  • مدلسازی نمودار کلاس با رویکرد تحلیلی
۱۷ مدلسازی نمودار وضعیت با رویکرد تحلیلی
  • مدلسازی نمودار وضعیت با رویکرد تحلیلی
۱۸ مدلسازی نمودار DFD 
  • مدلسازی نمودار رفتاری DFD 
۱۹ مدلسازی نمودار ERD
  • مدلسازی نمودار ERD
۲۰

بازخورد به دانشجویان در خصوص سند SRS بارگذاری شده 

  • ارائه بازخورد در خصوص سند SRS بارگذاری شده توسط دانشجویان
۲۱ بازخورد به دانشجویان در خصوص مدل‌های تحلیلی بارگذاری شده 
  • ارائه بازخورد در خصوص مدل‌های تحلیلی یوزکیس و فعالیت که توسط دانشجویان بارگذاری شده
۲۲ ارائه بازخورد در خصوص مدل‌های تحلیلی ارسالی توسط دانشجویان
  • ارائه بازخورد در خصوص مدل‌های تحلیلی کلاس  و وضعیت که توسط دانشجویان بارگذاری شده
۲۳ بهبود فرایند تولید نرم‌افزار
  • تشریح روش مدل بلوغ توانمند‌ی‌ها (CMMI) و کاربرد آن در بهبود فرایند تولید نرم‌افزار
۲۴ اصول طراحی رابط کاربری
  • معرفی مفاهیم کلیدی طراحی رابط کاربری
منابع

اسلایدها و مقالات ارائه شده در کلاس درس

طرح درس
ردیف عنوان شرح
۱ مقدمه
  • معرفی چرایی اهمیت درس سمینار
۲ پژوهش چیست و پژوهشگر کیست؟
  • معرفی مفهوم پژوهش
  • معرفی نقش پژوهشگر
  •  
۳ انواع پژوهش
  • مقایسه انواع پژوهش (پژوهش کاربردی، بنیادی، توسعه‌ای، دانشگاهی، صنعتی)
۴ اختراع
  • تبیین مفهوم اختراع و سطح‌بندی آن
  • جایگاه اختراع در فرایند نوآوری 
۵

نحوه انتخاب موضوع تحقیق

  • چرایی اهمیت انتخاب درست موضوع تحقیق
  • مقایسه پژوهش عمیق و سطحی
۶ مراحل اجرای تحقیق
  1. تجزیه و تحلیل مسئله 
  2.  فرضیه‌سازی
  3. پیاده‌سازی و آزمون فرضیه (سنتز)
  4. اعتبارسنجی پژوهش
۷ آشنایی با ساختار مقالات علمی
  • آشنایی با ساختار مقالات علمی
  • ارائه یک متدولوژی تحقیق کاربردی در حوزه مهندسی نرم‌افزار
۸ آشنایی با ساختار گزارش‌های علمی
  • آشنایی با ساختار پیشنهادیه پژوهش (proposal)
۹ آشنایی با ساختار گزارش‌های علمی
  • آشنایی با ساختار گزارش‌های رسمی علمی
۱۰ آشنایی با اصول رفرنس‌نویسی
  • آشنایی با اصول رفرنس‌نویسی
  • چالش‌های استفاده از هوش مصنوعی در مقالات
۱۱ ارائه دانشجویی
  • ارائه مستندات علمی توسط دانشجویان
۱۲ ارائه دانشجویی
  • ارائه مستندات علمی توسط دانشجویان
۱۳ ارائه دانشجویی
  • ارائه مستندات علمی توسط دانشجویان
۱۴ ارائه دانشجویی
  • ارائه مستندات علمی توسط دانشجویان
۱۵ ارائه دانشجویی
  • ارائه مستندات علمی توسط دانشجویان
۱۶ ارائه دانشجویی
  • ارائه مستندات علمی توسط دانشجویان
منابع
  • اسلایدهای ارائه شده در کلاس درس
  • کتاب ”اصول ساختمان داده ها در C++“، تالیف حسن علیزاده
طرح درس
ردیف موضوع هر جلسه توضیحات
۱ مقدمه و اهمیت درس
  • دلایل اهمیت درس ساختمان داده و الگوریتم‌ها و تبیین جایگاه ساختمان داده‌ها در فرایند توسعه نرم‌افزار
  • معرفی انواع ساختمان داده‌ها
۲ معیارهای سنجش کارایی 
  • معیارهای سنجش کارایی الگوریتم ها و ساختمان داده‌ها 
  • پیچیدگی حافظه
  • پیچیدگی زمانی (زمان واقعی، تابع زمانی، ترتیب زمانی)
۳ معرفی تابع زمانی
  • معرفی مفهوم تابع زمانی
  • حل چند مثال در زمینه تابع زمانی
۴ معرفی ترتیب زمانی
  • معرفی مفهوم ترتیب زمانی
  • مقایسه انواع ترتیب های زمانی مهم
۵

انواع ترتیب های زمانی

  • معرفی حد بالای مجانبی در ترتیب زمانی: تابع O(f(n)) 
  • معرفی حد پایین محانبی در ترتیب زمانی: تابع Ω(f(n))
  • معرفی مرتبه دقیق در ترتیب زمانی: تابع Θ(f(n))
  • سایر خصوصیات مرتبه های زمانی
  • مرتب سازی رتبه‌های معروف
۶ محاسبه پیچیدگی زمانی توابع بازگشتی
  • محاسبه پیچیدگی زمانی به روش جایگذاری
  • محاسبه پیچیدگی زمانی به روش حدس و استقرار
۷ آرایه
  • معرفی روش جستجوی دودویی 
  • ترتیب و میزان حافظه مصرفی آرایه‌های یک‌بعدی، دوبعدی، سه‌بعدی و بالاتر
  • نحوه تبدیل آدرس منطقی به آدرس فیزیکی و بالعکس
  • ماتریس بالامثلثی و پایین مثلثی
۸ پشته
  • معرفی پشته و کاربردهای آن
  • تابع درج و حذف از پشته
  • اهمیت سرریز پشته و ته‌ریز پشته در امنیت نرم افزار
۹

عبارات میانوندی، پسوندی و پیشوندی و نحوه تبدیل آنها به یکدیگر

  • معرفی عبارت میانوندی، پسوندی و پیشوندی
  • نحوه تبدیل این عبارات به یکدیگر
۱۰ کاربرد پشته در ارزیابی و تبدیل عبارات میانوندی، پسوندی و پیشوندی به یکدیگر
  • الگوریتم ارزیابی عبارات پسوندی با کمک پشته
  • جدول اولویت عملگرها
  • الگوریتم تبدیل عبارات میانوندی به پسوندی
۱۱

صف

  • معرفی ساختمان داده صف و کاربردهای آن
  • معرفی صف ساده و نواقص آن 
  • معرفی صف حلقوی و توابع درج و حذف در صف حلقوی
  • پشته و صف چندگانه
۱۲ لیست پیوندی
  • معرفی انواع لیست پیوندی (ساده، حلقوی و دوطرفه)
  • تفاوت آرایه و لست پیوندی با ذکر مثال
۱۳ لیست پیوندی ساده
  • معرفی توابع درج، حذف، جستجو، یافتن عنصر قبلی، پیمایش لیست و حذف کامل لیست پیوندی یکطرفه
۱۴ لیست پیوندی حلقوی
  • معرفی گره راسی و کاربرد آن در لیست حلقوی
  • معرفی توابع درج، حذف، جستجو، یافتن عنصر قبلی، پیمایش لیست و حذف کامل لیست پیوندی حلقوی
  • معرفی تفاوتهای پیاده سازی لیست پیوندی دوطرفه با لیست پیوندی ساده و حلقوی
۱۵

درخت

 

  • معرفی مفاهیم کلیدی ساختمان داده درخت
  • تعاریف مرتبط با درخت‌ها (ریشه ،برگ، فرزند، پدر، نسل، جد، همزاد، مسیر، طول مسیر، سطح، عمق، ارتفاع، درجه درخت)
  • انواع درخت‌ها (درخت پر، کامل، متوازن و کاملا متوازن)
۱۶ درخت دودویی
  • خواص درخت دودویی
  • نحوه تبدیل درخت عمومی به دودویی 
  • نحوه ذخیره و بازیابی درخت دودویی با کمک آرایه
۱۷ پیاده‌سازی درخت دودویی با اشاره‌گر
  • معایب پیاده‌سازی درخت دودویی با آرایه
  • نحوه پیاده‌سازی درخت دودویی با کمک اشاره‌گرها
  • نحوه پیمایش بازگشتی درخت دودویی
  • پیمایش درخت دودویی با کمک پشته
۱۸

پیمایش عمقی (میانوندی، پیشوندی، پسوندی) و سطحی درخت

  • پیمایش درخت به صورت عمقی (میانوندی، پسوندی و پیشوندی) با ذکر مثال
  • پیمایش سطحی درخت به کمک صف
۱۹ درخت ارزیابی عبارات
  • تشریح مفهوم درخت ارزیابی عبارات
  • رسم درخت دودویی به کمک پیمایش‌های آن
۲۰ درخت نخی دودویی
  • ساختار و نحوه پیاده‌سازی درخت نخی دودویی
  • الگوریتم‌های پیمایش و یافتن عنصر بعدی در درخت نخی دودویی
۲۱ هرم
  • هرم حداکثر و حداقل
  • پیاده‌سازی هرم با آرایه و توابع درج و حذف در هرم
  • مرتب‌سازی هرمی
۲۲ درخت جستجوی دودویی و سایر درخت‌ها
  • معرفی مفهوم درخت جستجوی دودویی (BST)
  • توابع درج و حذف در BST
  • مرتب‌سازی درختی
  • معرفی درخت دودویی AVL  
  • معرفی مفهوم جنگل
۲۳ گراف
  • مفاهیم بنیادی گراف‌ها
  • ماتریس مجاورتی
  • نمایش گراف با لیست مجاورتی
  • لیست مجاورتی معکوس
۲۴  مرتب‌سازی
  • پیچیدگی زمان و حافظه در مرتب‌سازی
  • معرفی الگوریتم‌های مرتب‌سازی حبابی، حبابی بهبودیافته، انتخابی و درجی
  • بررسی پیچیدگی زمانی و حافظه مرتب‌سازی حبابی، انتخابی و درجی
۲۵ روش‌های بهینه‌تر مرتب سازی
  • معرفی الگوریتم‌های مرتب‌سازی ادغامی و سریع
  • مقایسه پیچیدگی زمان و حافظه روش‌های مهم مرتب‌سازی با یکدیگر