آموزشگاه برنامه نویسی تحلیل داده
آموزشگاه برنامه نویسی تحلیل داده

اصول و الگوهای طراحی شی گرا - Object Oriented Design Principles & Patterns

پیشنیاز : دوره #C پیشرفته همراه با شی گرایی
تاریخ شروع طول دوره ساعت برگزاری نام استاد هزینه (تومان) وضعیت
1397/10/04 40 ساعت سه شنبه ها ساعت 16:30 تا 20:30 مهندس هادی احمدی 1,200,000 ثبت نام

توجه: از دانشجویان عزیز تقاضا میگردد جهت قطعی کردن ثبت نام با آموزشگاه تماس بگیرند.

مقدمه :

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

مخاطبین این دوره :
  • برنامه نویسانی که قصد دارند با یادگیری اصول و الگوهای طراحی، نرم افزار با کیفیت، قابل توسعه و کارآمد طراحی کنند.
اهداف دوره:

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

پیشنیاز
  • حداقل 2 سال سابقه برنامه نویسی با زبان C#
  • آشنایی با UML
سرفصلهای دوره:

آشنایی با طراحی نرم افزار

  • طراحی نرم افزار چیست؟
  • چالش های رایج طراحی نرم افزار
  • سطوح مختلف در طراحی نرم افزار (Detailed Design, Architectural Design و ... )
  • نقش ها و وظایف مختلف در فرآیند طراحی نرم افزار (معمار نرم افزار، طراح نرم افزار، توسعه دهنده و ...)

مبانی طراحی نرم افزار

  • Modularization
  • Abstraction
  • Encapsulation
  • Cohesion
  • Coupling

آشنایی با Design Smell ها

  • Design Smell چیست؟
  • آشنایی با Design Smell های رایج
    • Rigidity
    • Fragility
    • Immobility
    • Viscosity
    • Needless Complexity
    • Needless Repetition
    • Opacity

اصول SOLID

  • Single Responsibility Principle (SRP)
  • Open-Closed Principle (OCP)
  • Liskov Substitution Principle (LSP)
  • Interface Segregation Principle (ISP)
  • Dependency Inversion Principle (DIP)

اصول Component Cohesion

  • The Reuse/Release Equivalency Principle (REP)
  • Common-Reuse Principle (CRP)
  • Common-Closure Principle (CCP)

اصول Component Coupling

  • Acyclic Dependencies Principle (ADP)
  • Stable-Dependencies Principle (SDP)
  • Stable-Abstractions Principle (SAP)

اصول و قواعد دیگر

  • KISS
  • YAGNI
  • DRY
  • Composition over inheritance
  • Law of Demeter (Principle of least knowledge)

الگوهای طراحی GOF

Creational Patterns

  • Abstract Factory
  • Builder
  • Factory Method
  • Prototype
  • Singleton

Behavioral Patterns

  • Chain of responsibility
  • Command
  • Interpreter
  • Iterator
  • Mediator
  • Memento
  • Observer
  • State
  • Strategy
  • Template method
  • Visitor

Structural Patterns

  • Adapter
  • Bridge
  • Composite
  • Decorator
  • Facade
  • Flyweight
  • Proxy

الگوهای دیگر

  • Specification
  • Composite Specification
  • Object Pool
  • Private Class Data

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

ارسال
آموزشگاه برنامه نویسی تحلیل داده
آموزشگاه برنامه نویسی تحلیل داده

تمامی حقوق این سایت متعلق به آموزشگاه تحلیل داده می باشد .