درباره دوره:
یکی از اهداف اصلی تعیین شده برای فارغ التحصیلان رشته مهندسی کامپیوتر، تسلط به مراحل توسعه سیستمهای نرمافزاری بزرگ و پیچیده میباشد. به همین دلیل، دروس طراحی سیستمهای شئگرا، مهندسی نرم افزار 1 (در سرفصل جدید بنام تحلیل و طراحی سیستم)، پایگاه دادهها و مهندسی نرمافزار 2 (در سرفصل جدید بنام مهندسی نرم افزار) و چند درس مرتبط دیگر در این رشته قرار داده شدهاند.
درس تحلیل و طراحی سیستم یا همان مهندسی نرم افزار 1 اساسیترین درس برای شروع یادگیری مراحل توسعه سیستمهای نرم افزاری است و مهمترین پیشنیاز آن درس برنامهنویسی شئگرا میباشد. در این دوره آموزشی، مفاهیم اساسی و اصول اولیه تحلیل و طراحی سیستمهای نرم افزاری با رویکرد شئ گرا و بر مبنای متدولوژی RUP تشرح شده است. در جلسات اول مفاهیم اساسی تحلیل و طراحی سیستمها بیان شده است. در ادامه مراحل توسعه نرمافزارها بر اساس متدولوژی RUP تدریس شده و برای تسلط کامل دانشجو بر مفاهیم طراحی، ابتدا ابتکارات طراحی شئگرا و در ادامه اصول اساسی SOLID و در نهایت الگوهای طراحی به تفصیل بیان شده است و در نهایت قسمتهایی از مراحل تحلیل و طراحی یک سیستم نمونه آورده شده است.
امروزه مسائل کامپیوتری از شکل ساده و پیش پا افتاده اولیه خارج شده و به سمت پیچیدگی پیش میروند. حل این مسائل نرمافزاری پیچیده نیازمند داشتن دانش کافی درباره نحوه تحلیل مسئله و پیدا کردن شیوههای مناسب برای آن است. درست مانند مسائل ریاضی، حل مسائل کامپیوتری و نرمافزاری هم نیازمند شناخت درست از ابعاد و پیچیدگیهای آنها است که میتواند به طور موثری روند یافتن جواب را کوتاهتر کند. اما این به شرطی است که شما از ابزارهای درستی برای این کار استفاده کنید؛ این همان چیزی است که درس طراحی و تحلیل سیستم ها به شما خواهد داد.
یکی از درسهای اصلی برای دانشجویان رشته مهندسی کامپیوتر درس تحلیل و طراحی سیستم ها است. این درس در واقع یکی از مراحل آمادهسازی مهندسان کامپیوتر برای برخورد با مسائل پیچیده و حل آنها است. در درس تحلیل و طراحی سیستم ها رشته کامپیوتر تلاش میشود تا فرایند حل مسئله به دانشجویان آموزش داده شود.
به این ترتیب هر دانشجو میتواند قبل از اینکه اقدام به پیادهسازی یک سیستم کند؛ همه چالشهای پیش روی آن را شناسایی کرده و با آگاهی کامل برای قدم گذاشتن در این مسیر اقدام کند. در چارت درسی مهندسی کامپیوتر که به تازگی ارائه شده است؛ این درس به عنوان مهندسی نرم افزار 1 هم شناخته میشود. اما نکته مهم اینجا است که تنها مهندسان نرم افزار به آن نیاز ندارند و هرکسی که به نوعی با کامپیوتر درگیر باشد؛ میتواند از مباحث مطرحشده در این درس استفاده کند. این دوره آموزشی توسط دکتر غلامعلی نژاد حاجعلی ایرانی تدریس شده که در حال حاضر عضو هیات علمی دانشگاه بناب است.
هدف از یادگیری درس تحلیل و طراحی سیستم ها این است که مهندسان کامپیوتر بتوانند پس از فارغ التحصیلی، به راحتی یک سیستم کامپیوتری را پیادهسازی کنند. به عبارت بهتر میتوان گفت که هدف اصلی این درس، آمادهسازی دانشجویان از نظر فکری و عملی برای مواجهه با مسائل پیچیده کامپیوتری است. درس طراحی و تحلیل سیستم ها را به نوعی میتوان الفبای حل مسائل نرمافزاری کامپیوتری دانست که میتواند مسیر رسیدن به جواب را تا حد زیادی آسان کند.
هدف دیگری که در درس تحلیل و طراحی سیستم ها رشته کامپیوتر دنبال میشود این است که دانشجویان به صورت عملی هم این مواجهه با مسئله را یاد بگیرند. به عبارت بهتر در طی این درس پروژههایی پیادهسازی میشوند که شما میتوانید با استفاده از آنها، به خوبی چالشهای پیش روی توسعه نرم افزار را بشناسید. به این ترتیب دانشجویان برای ورود به بازار کار آماده شده و میتوانند پروژههای مستقلی را کار کنند.
در ابتدای درس تحلیل و طراحی سیستم ها ابتدا با تئوری سیستمها آشنا خواهید شد؛ در نتیجه میتوانید شیوههای مواجهه با مسائل را درک کرده و مدلهای پردازشی را بیشتر بشناسید. به عبارت بهتر پس از گذشت جلسههای ابتدایی این درس، ذهن شما برای حل یک مسئله آماده خواهد شد و میدانید که پیادهسازی یک ایده بزرگ نرمافزاری، چه ابزارهایی در اختیار خواهید داشت.
از سوی دیگر در انتهای این درس شما با مدلسازی مسائل مختلف آشنا خواهید بود. برای مثال میدانید که پروژههای فروشگاهی را چگونه باید راهاندازی کنید و چه ساختار نرمافزاری برای آنها نیاز است. همچنین میتوانید قبل از هر اقدامی به خوبی نیازمندیهای نرم افزار و سیستم را بشناسید و بهترین مسیر را بر این اساس انتخاب کنید.
در انتهای یک ترم تحصیلی از درس تحلیل و طراحی سیستم ها رشته کامپیوتر، شما مفاهیم اصلی و اصول اولیه تحلیل سیستمهای نرمافزاری و طراحی آنها را خواهید شناخت. به علاوه به خوبی با رویکرد شی گرا برای حل این مسائل آشنا هستید و میتوانید با استفاده از یک متدولوژی خاص به نام RUP، مسائل خود را پیادهسازی کنید. به این ترتیب یک الگوی طراحی بینقص در اختیار خواهید داشت که میتوانید برای حل بیشتر مسائل از آن استفاده کنید.
هرچند درس تحلیل و طراحی سیستم ها برای دانشجویان مهندسی نرم افزار تعریف شده است؛ اما این درس مناسب همه افرادی است که به دنبال یک راه ساده و عملی برای پیادهسازی پروژههای نرمافزاری میگردند. حتی افراد باتجربهای که مدت زیادی است در این حوزه فعالیت دارند؛ میتوانند با استفاده از مباحث مطرحشده در این درس، به خوبی نیازسنجی کرده و با تکنیکهای جدید حل مسئله در مهندسی کامپیوتر آشنا شوند.
یکی از ویژگیهایی که درس تحلیل و طراحی سیستم ها را از سایر دورههای مشابه متمایز میکند این است که شما را به وادی عمل خواهد کشاند. به عبارت بهتر برای اینکه بتوانید مباحث این درس را به خوبی یاد بگیرید؛ باید خودتان دست به کار شده و پروژههایی را پیادهسازی کنید. به این ترتیب میتوانید به خوبی با چالشهای عملی توسعه نرم افزار آشنا شده و بهترین راهحلها را برای آنها پیدا کنید.
با توجه به چارت درسی رشته مهندسی کامپیوتر و مباحث مطرحشده در این دوره، مهمترین پیشنیاز درس تحلیل و طراحی سیستم ها، درس برنامهنویسی شی گرا است. با این حال همه مباحث مربوط به پیادهسازی مسائل پیچیده نرمافزاری در این درس پوشش داده نمیشوند؛ به همین دلیل برای تکمیل دانش خود در این زمینه نیاز به مطالعه درسهای پایگاه داده و مهندسی نرم افزار 2 هم خواهید داشت.
درس تحلیل و طراحی سیستم ها رشته کامپیوتر حدود 45 ساعت محتوای آموزشی را پوشش داده است که در سی جلسه ارائه شدهاند. در جلسههای ابتدایی این درس شما با مراحل کلی طراحی و تحلیل سیستمهای پیچیده نرمافزاری بر مبنای RUP و با رویکرد شی گرا آشنا خواهید شد. پس از آن روشهای مدلسازی برای شما معرفی میشوند و ساختار نرم افزار را خواهید شناخت.
پس از یادگیری این مباحث اولیه وارد حوزه طراحی نرم افزار خواهید شد. در این مورد استاد درس تلاش کرده تا با استفاده از انجام پروژههای عملی، شما را به خوبی با چالشها و مشکلات پیش رو آشنا کند.
به علاوه اصول SOLID را برای پیادهسازی به شما معرفی خواهد کرد. در کنار این موارد شما با انواع کلاسهای تحلیلی آشنا میشوید و الگوهای طراحی را خواهید شناخت. در دو جلسه انتهایی، سیستم جامع آژانس مورد بررسی و تحلیل قرار گرفته و طراحی میشود تا شما مهارتهای عملی خود را در این حوزه تست کنید.
فیلم های آموزشی:
1 – جلسه اول: قوانین کلاسی، سرفصل ها، منابع درس، پروژه ها و بارم بندی
2 – جلسه دوم: Introduction to System Theory
3 – جلسه سوم: مفاهیم SDLC, Process Model, Methodology
4 – جلسه چهارم: جزئیات SDLC, Methodology
5 – جلسه پنجم: Analysis and Design Paradigms
6 – جلسه ششم: Object Oriented Paradigm, Principles
7 – جلسه هفتم: Information Systems, ERP
8 – جلسه هشتم: مراحل کلی تحلیل و طراحی سیستم (بر مبنای RUP)
9 – جلسه نهم: Business Modeling
10 – جلسه دهم: مفهوم و انواع Software Requirements
11 – جلسه یازدهم: Domain Modeling
12 – جلسه دوازدهم: Use Case Modeling
13 – جلسه سیزدهم: Software Architecture
14 – جلسه چهاردهم: Modularity
15 – جلسه پانزدهم: Layered Architecture
16 – جلسه شانزدهم: مفاهیم اولیه Software Design
17 – جلسه هفدهم: بخش اول Object Oriented Design Heuristics
18 – جلسه هجدهم: بخش دوم Object Oriented Design Heuristics
19 – جلسه نوزدهم: بخش اول طراحی لایه Data Access
20 – جلسه بیستم: بخش سوم Object Oriented Design Heuristics
21 – جلسه بیست و یکم: بخش دوم طراحی لایه Data Access
22 – جلسه بیست و دوم: کلاسهای تحلیل Boundary, Control (Service), Entity
23 – جلسه بیست و سوم: بخش اول اصول SOLID
24 – جلسه بیست و چهارم: بخش دوم اصول SOLID
25 – جلسه بیست و پنجم: مفاهیم مقدماتی Design Patterns
26 – جلسه بیست و ششم: بخش اول Creational Design Patterns
27 – جلسه بیست و هفتم: بخش دوم Structural Design Patterns
28 – جلسه بیست و هشتم: بخش سوم Behavioral Design Patterns
29 – جلسه بیست و نهم: بخش اول تحلیل و طراحی سیستم جامع آژانس
30 – جلسه سیام: بخش دوم تحلیل و طراحی سیستم جامع آژانس