Design Patterns in Practice

 

 

 

مقدمه:

الگوها (Patterns) به عنوان موضوعی مستقل در مهندسی نرم­افزار از جمله بخشهای بسیار جذاب این حوزه از مهندسی به شمار می­آید. تولید نرم­افزار و به خصوص طراحی، چیزی نیست جز حل مسئله. اما «کسی قبلاً مسئله شما را حل کرده است.»(شعار الگوهای نرم­افزاری)، از این حیث، الگوها یکی از مهم­ترین اجزای مهندسی نرم­افزار هستند که هر مهندس نرم­افزار، نه به اختیار که به اجبار باید آنها را فرا گیرد.

 

هدف دوره:

هدف دوره، ارائه الگوهای نرم­افزاری و به ویژه الگوهای طراحی و معماری به صورت کاربردی با اهداف زیر می­باشد:

·        کمک به بهبود طراحی سیستمهای نرم­افزاری در پروسه ساخت و تولید آن

·        کمک به بازمهندسی و بازسازی سیستمهای نرم­افزاری موجود

 

محتوای دوره:

در این دوره ابتدا به معرفی الگوها و کاربرد آن در تولید نرم­افزار پرداخته خواهد شد. در ادامه، انواع الگوها از الگوهای تحلیل، طراحی، معماری و پیاده­سازی معرفی گردیده و دسته­بندی هر یک از آنها تشریح خواهد گردید.

از آن پس، معرفی الگوها همراه با مثالهای کاربردی آغاز و ادامه پیدا خواهد کرد. نحوه ارائه الگوها به شکل زیر خواهد بود:

·        ارائه یک مسئله از حوزه­های کاربردی

·        حل مسئله به کمک دانشجویان و نمایش طراحی آن به کمک UML

·        معرفی اولیه الگو و بازطراحی مسئله به کمک الگو

·        معرفی ساختار، مزایا، معایب، الگوهای مشابه و کاربردهای دیگر الگو

·        بررسی کدهای نمونه که در اختیار دانشجویان قرار داده شده و بحث و بررسی در مورد آنها

·        ارائه طراحی به کمک CASE Tool و پیاده­سازی بعضی از طراحی­های انجام شده

 

 

 

شرايط حضور در دوره:

شرایط لازم برای دانشجویان جهت شرکت در کلاس عبارت است از:

·        تجربه عملی در طراحی و پیاده­سازی سیستمهای نرم­افزاری

·        آشنایی به مفاهیم و تحلیل و طراحی شیءگرا

·        آشنایی به UML (Unified Modeling Language) به عنوان زبان ارائه مدلهای مورد نیاز در تولید نرم­افزار

·        ترجیحاً آشنا به یک زبان برنامه­سازی مانند Java، C#.NET یا VB.NET

 

 

مواد آموزشی:

 

Agenda:

Topic

Schedule

Introduction to Patterns

0.5 Session

Kinds of Patterns (Analysis, Design, Architecture, Idiom, Anti, Organization, and so on)

0.5 Session

Design Pattern Classification

1 Session

Factory Method Pattern

1 Session

Template Method Pattern

1 Session

Abstract Factory Pattern

1 Session

Builder Pattern

1 Session

Observer Pattern

1 Session

Singleton Pattern

1 Session

Adapter Pattern

1 Session

Façade Pattern

1 Session

 

 

Total:

30 hours