UML ve Tasarım Kalıpları (C# ve Java Kod Örnekleriyle)


Modül 1 : UML (Unified Modelling Language)

• 1.1 : Modelleme Olgusu

• 1.2 : Modelleme Dilleri

• 1.3 : UML (Unified Modelling Language)

o 1.3.1 : UML Standardizasyonu ve UML Versiyonları

o 1.3.2 : UML Kullanımının Getirileri

• 1.4 : UML Modelleri ve İlişkili Diyagramlar

• 1.5 : UML Destekli Tasarım Araçları

• 1.6 : Constraint, TaggedValue ve Stereotype Kavramları

• 1.7 : Use Case (Kullanım Senaryosu) Diyagramları

• 1.8 : Activity (Faaliyet) Diyagramları

• 1.9 : Nesne Yönelimli Modellemeye İlişkin Temel Kavramlar

• 1.10 : Sınıf ve Nesne Diyagramları

• 1.11 : Nesneler Arasındaki İlişkiler

o 1.11.1 : Association (Referans)

o 1.11.2 : Aggregation (Barındırma, İçerme)

o 1.11.3 : Composition (Bağımlı İyelik)

o 1.11.4 : Generalization (Genelleme)

o 1.11.5 : Realization (Gerçekleme)

o 1.11.6 : Dependency (Bağımlılık)

o 1.11.7 : Use (Kullanma)

• 1.12 : State (Durum) Diyagramları

• 1.13 : Sequence (Etkileşim) Diyagramları

• 1.14 : Communication (İletişim) Diyagramları

• 1.15 : Component (Bileşen) Diyagramları

• 1.16 : Package (Paket) Diyagramları

• 1.17 : Deployment (Dağıtım) Diyagramları

Modül 2 : Dizayn ve Paketleme Prensipleri

• 2.1 : Dizayn Prensipleri

o 2.1.1 : Ayrıştırma (Decomposition)

o 2.1.2 : Kohezyon (Yapışıklık)

o 2.1.3 : SRP : Tek Sorumluluk (Single Responsibility) Prensibi

o 2.1.4 : LCP : Zayıf Bağlaşım (Low Coupling) Prensibi

o 2.1.5 : Yeniden Kullanılabilirlik (Reusability) Prensibi

o 2.1.6 : OCP : Açık/Kapalı Prensibi (Open/Closed Principle)

o 2.1.7 : LSP : Liskov Yerine Geçme Prensibi (Liskov Substitution Principle)

o 2.1.8 : DIP : Bağımlılığı Ters Çevirme Prensibi (Dependency Inversion Principle)

o 2.1.9 : ISP : Arayüz Ayırma Prensibi (Interface Segregation Principle)

o 2.1.10 : Polimorfizm Nedir

• 2.2 : Granülarite ve Paket Kavramı

• 2.3 : Paketlemeye İlişkin Prensipler

o 2.3.1 : REP : Yeniden Kullanılabilir Sürüm Eşdeğerliği Prensibi (Release Reuse Equivalence Principle)

o 2.3.2 : CCP : Ortak Kapatma Prensibi (Common Closure Principle)

o 2.3.3 : CRP : Ortak Yeniden Kullanım Prensibi (Common Reuse Principle)

o 2.3.4 : ADP : Çevrimsiz Bağımlılık Prensibi (Acyclic Dependencies Principle)

o 2.3.5 : SDP : Kararlı Bağımlılıklar Prensibi (Stable Dependencies Principle)

o 2.3.6 : SAP : Kararlı Soyutlamalar Prensibi (Stable Abstractions Principle)

Modül 3 : Dizayn Paternlere Giriş ve Temel Kavramlar

• 3.1 : Giriş

• 3.2 : Patern Kümeleri (Pattern Cluster)

• 3.3 : Idiom (Deyim) Kavramı ve Örnekleri

• 3.4 : Anti-Patern (Karşıt Kalıp) Olgusu

• 3.5 : GOF Sistematiği

Modül 4 : Nesne Oluşturulmasına/Yaratılmasına Ait (Creational) Paternler

• 4.1 : Singleton

• 4.2 : Factory Method / Virtual Constructor

• 4.3 : Prototype

• 4.4 : Object Pool

• 4.5 : Builder

• 4.6 : Abstract Factory

Modül 5 : Davranışsal (Behavioral) Paternler

• 5.1 : Iterator / Cursor

• 5.2 : Observer / Publish Subscribe

• 5.3 : Mediator

• 5.4 : Chain of Responsibility

• 5.5 : Command

• 5.6 : Visitor

• 5.7 : Strategy/Policy

• 5.8 : State

• 5.9 : Template Metot

• 5.10 : Interpreter

• 5.11 : Memento

Modül 6 : Yapısal (Structural) Paternler

• 6.1 : Decorator

• 6.2 : Adapter / Wrapper

• 6.3 : Facade

• 6.4 : Proxy / Surrogate

• 6.5 : Bridge

• 6.6 : Compozite

• 6.7 : Flyweight

Modül 7 : Yazılım Mimarisi ve Mimari Paternler

• 7.1 : Dependency Injection ve (IoC) Inversion of Control

• 7.2 : UI (User Interface) Patern’leri

• 7.3 : MVC (Model View Controller) Patern’i

• 7.4 : Model2 Patern’i (FrontController ve HTTP Interceptor)

• 7.5 : MVP (Model View Presenter) Patern’i

• 7.6 : PM (Presentation Model) ve MVVM (Model-View-ViewModel) Patern’leri

• 7.7 : İş Katmanı (Business Layer) Paternleri

• 7.8 : Transaction Script Patern’i

• 7.9 : Table Module Patern’i

• 7.10 : Active Record Patern’i

• 7.11 : Domain Model Patern’i

• 7.12 : Repository Patern’i

• 7.13 : Special Case Patern’i

• 7.14 : Seperated Interface ve Plugin Patern’leri

• 7.15 : APM Patern’i

• 7.16 : Service Locator Patern’i

• 7.17 : Diğer mimari paternler

Modül 8 : Yazılım Geliştirme Sürecinin Modellenmesi

• 8.1 : Proje Yönetiminin Temel Kavramları

• 8.2 : Şelale (Waterfall) Yöntemi

• 8.3 : Spiral Yöntemi

• 8.4 : XP Sıra dışı (Extreme) Programlama ve Scrum

• 8.5 : RUP (Rational Unified Process)

• 8.6 : CRC (Class, Responsibilities, Collaborators)

• 8.7 : MSF (Microsoft Solutions Framework)

• Ve diğerleri …

Önkoşul : C# ve/veya Java programlama dilleri konusunda temel bilgilere sahip olmak ya derneğimizin açmış olduğu C# – Java ile Nesne Yönelimli Programlama kurslarına katılmış olmak.

* Ücreti sorunuz.

UML ile Nesne Yönelimli Çözümleme, Tasarım ve Modelleme


Kurs konularından bazıları:
Nesne Yönelimli Programlamanın Temel İlkeleri

Sınıflar, Nesneler ve İlişkiler
Soyutlama ve Veri Gizleme
Yordamlar ve İletiler
Arayüz Oluşturma
Türetme ve Çokbiçimlilik
Erişim denetimi
Liskov Yerine Geçme İlkesi
LSP (Liskov Substitution Principle)
Açık Kapalı İlkesi
OCP (Open-Closed Principle)
Bağımlılık Ters Çevirme İlkesi
DIP (Dependency Inversion Principle)
Nesne Yönelimli Program Geliştirme Yöntembilimleri ve Süreçleri

Yinelemeli ve Arttırımlı Geliştirme
RUP (Rational Unified Process)
XP (Extreme programming)
Nesne Yönelimli Çözümleme ve tasarım

Sistem İsterlerinin Kullanım Durumlarıyla Belirlenmesi
Aktörlerin Belirlenmesi
Temel Kullanım Durumlarının Belirlenmesi
Kullanım Durumu Senaryolarının Yazılması
Kullanım Durumu Modelinin (Use Case Model) Oluşturulması
Nesnelerin ve Sınıfların Belirlenmesi
Nesne İlişkilerinin Belirlenmesi
Nesne Modelinin (Object Model) Oluşturulması
Etkileşim Modellemesi
Durum (State) Modellemesi
Alt Sistem (Subsystem)Tasarımı
Arttırımlı (Incremental) Geliştirme
UML 2.0 (Unified Modelling Language)

UML Notasyonunun Kullanımı
Temel Model yönetim Birimleri
Paketler(Packages)
Alt Sistemler(Subsystems)
Modeller(Models)
Yapısal Modelleme
Kullanım Durumu (use case) Diyagramları
Sınıf (Class) Diyagramları
Nesne (Object) diyagramları
Dinamik Modelleme
Durum Makinaları (State Machines)
Etkinlik (Activity) Diyagramları
İletişim (Interaction) Diyagramları
Sekans (Sequence) Diyagramları
İletişim (Communication) Diyagramları
Etkileşim Değerlendirme (Interaction Overview) Diyagramları
Zamanlama (Timing) Diyagramları

Case (Computer Aided Software Engineering)

“Enterprise Architect” Yazılımı ve Kullanımı

Önkoşul: Nesne Yönelimli Programlamanın temel kavramlarına hakim olmak. C++, Java ya da C# dillerinden birini iyi derecede bilmek.

* Ücreti sorunuz.

UML ve Tasarım Kalıpları (C++ Kod Örnekleriyle)


Nesne Yönelimli Programlamanın Temel İlkeleri
Veri Gizleme
Sınıf ve Nesne
Yordamlar ve İletiler
Çokbiçimlilik
Arayüz Oluşturma
Türetme ve Çokbiçimlilik
Erişim denetimi
Liskov Yerine Geçme İlkesi – LSP (Liskov Substitution Principle)
Açık Kapalı İlkesi – OCP (Open-Closed Principle)
Bağımlılık Ters Çevirme İlkesi – DIP (Dependency Inversion Principle)
Arayüz Ayırma İlkesi – ISP (The Interface Segregation Principle)
Sürüm Yeniden Kullanımı Eşdeğerlik İlkesi – REP (The Release Reuse Equivalency Principle)
Ortak Kapatma İlkesi – CCP (The Common Closure Principle)
Ortak Yeniden Kullanım İlkesi – CRP (The Common Reuse Principle)
Çevrimsiz Bağımlılık İlkesi – (ADP) (The Acyclic Dependencies Principle)
Kararlı Soyutlamalar İlkesi – SAP (The Stable Abstractions Principle)
Kararlı Bağımlılıklar İlkesi – (SDP) (The Stable Dependencies Principle)
UML 2.0 Notasyonu
Nesne Yönelimli Modelleme
Temel UML Diyagramları ve Kullanımları
UML 2.0 Notasyonunun Kullanımı
Temel Model Yönetim Birimleri
Paketler(Packages)
Alt Sistemler(Subsystems)
Modeller(Models)
Yapısal Modelleme
Kullanım Durumu (use case) Diyagramları
Sınıf (Class) Diyagramları
Nesne (Object) diyagramları
Dinamik Modelleme
Durum Makinaları (State Machines)
Etkinlik (Activity) Diyagramları
İletişim (Interaction) Diyagramları
Sekans (Sequence) Diyagramları
İletişim (Communication) Diyagramları
Etkileşim Değerlendirme (Interaction Overview) Diyagramları
Zamanlama (Timing) Diyagramları
C++ ile Gof Tasarım kalıpları (Design Patterns)
Tasarım Kalıplarının Ana Fikirleri
Nesne Yaratan Kalıplar (Creational Patterns)
Yapısal Kalıplar (Structural Patterns)
Davranışa İlişkin Kalıplar (Behavioral Patterns)
GOF dışı kalıplar

Önkoşul: C++, Java ya da C# kursunu başarıyla tamamlamış olmak.

* Ücreti sorunuz.