Bu ders, öğrencilere yazılım tasarım kalıplarının temel prensiplerini öğretmek için tasarlanmıştır. Katılımcılar, yazılım mimarisini güçlendirmek, kod kullanılabilirliğini artırmak ve sürdürülebilirliği sağlamak amacıyla yaygın tasarım kalıplarını öğrenme, uygulama ve kullanma becerisi kazanacaktır. Yaratımsal, yapısal ve davranışsal tasarım desenlerini kapsayan bu ders, ölçeklenebilir ve verimli yazılım çözümleri geliştirme konusunda uygulamalı deneyim sunar. Pratik alıştırmalar aracılığıyla öğrenciler, yazılım tasarım kararlarını değerlendirme becerilerini geliştirecektir.
Dersin İçeriği
Bu ders; Yazılım Tasarım Kalıplarına Giriş,Nesne Yönelimli Tasarım İlkeleri,Tasarım Kalıplarınin Sınıflandırılması,Singleton ve Fabrika (Factory) Kalıpları,Soyut Fabrika (Abstract Factory) ve Kurucu (Builder) Kalıpları,Prototip (Prototype) Kalıbı,Adaptör (Adapter) ve Köprü (Bridge) Kalıpları,Bileşik (Composite) ve Dekoratör (Decorator) Kalıpları,Cephe (Facade) ve Vekil (Proxy) Kalıpları,Strateji (Strategy) ve Gözlemci (Observer) Kalıpları,Komut (Command) ve Durum (State) Kalıpları,Şablon Yöntemi (Template Method) ve Yineleyici (Iterator) Kalıpları,Sorumluluk Zinciri (Chain of Responsibility) ve Arabulucu (Mediator) Kalıpları,Memento ve Ziyaretçi (Visitor) Kalıpları; konularını içermektedir.
Dersin Öğrenme Kazanımları
Öğretim Yöntemleri
Ölçme Yöntemleri
Yazılım Tasarım Kalıplarını Anlama
12, 2, 9
A, E, F
Uygun Tasarım Kalıplarını Belirleme
12, 2, 9
A, E, F
Tasarım Kalıplarını Uygulama
12, 2, 9
A, E, F
Yazılım Sürdürülebilirliği ve Tekrar Kullanılabilirliğini Artırma
12, 2, 9
A, E, F
Yazılım Tasarım Kararlarını Değerlendirme
12, 2, 9
A, E, F
Öğretim Yöntemleri:
12: Problem Çözme Yöntemi, 2: Proje Temelli Öğrenme Modeli, 9: Anlatım Yöntemi
Ölçme Yöntemleri:
A: Klasik Yazılı Sınav, E: Ödev, F: Proje Görevi
Ders Akışı
Sıra
Konular
Ön Hazırlık
1
Yazılım Tasarım Kalıplarına Giriş
2
Nesne Yönelimli Tasarım İlkeleri
3
Tasarım Kalıplarınin Sınıflandırılması
4
Singleton ve Fabrika (Factory) Kalıpları
5
Soyut Fabrika (Abstract Factory) ve Kurucu (Builder) Kalıpları
6
Prototip (Prototype) Kalıbı
7
Adaptör (Adapter) ve Köprü (Bridge) Kalıpları
8
Bileşik (Composite) ve Dekoratör (Decorator) Kalıpları
9
Cephe (Facade) ve Vekil (Proxy) Kalıpları
10
Strateji (Strategy) ve Gözlemci (Observer) Kalıpları
11
Komut (Command) ve Durum (State) Kalıpları
12
Şablon Yöntemi (Template Method) ve Yineleyici (Iterator) Kalıpları
13
Sorumluluk Zinciri (Chain of Responsibility) ve Arabulucu (Mediator) Kalıpları
14
Memento ve Ziyaretçi (Visitor) Kalıpları
Kaynak
Design Patterns: Elements of Reusable Object-Oriented Software, Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides, 1995
Dersin Program Yeterliliklerine Katkısı
Dersin Program Yeterliliklerine Katkısı
No
Program Yeterliliği
Katkı Düzeyi
1
2
3
4
5
1
Mühendislik alanında bilimsel araştırma yaparak bilgiye genişlemesine ve derinlemesine ulaşır, bilgiyi değerlendirir, yorumlar ve uygular.
2
Mühendislikte uygulanan güncel teknik ve yöntemler ile bunların kısıtları hakkında kapsamlı bilgi sahibidir ve mühendisliğin ilişki kurduğu disiplinler arası etkileşimi kavrayabilir.
3
Analitik, modelleme ve deneysel esaslı araştırmaları tasarlar ve uygular; bu süreçte karşılaşılan karmaşık durumları yorumlar, yeni ve özgün fikirler geliştirerek çözümler.
4
Sınırlı ya da eksik verileri kullanarak bilimsel yöntemlerle bilgiyi tamamlar ve uygular; değişik disiplinlere ait bilgileri bütünleştirir.
5
Mühendislik ile ilgili uzmanlık gerektiren bir çalışmayı bağımsız olarak yürütebilir.
6
Çok disiplinli takımlarda liderlik yapar, çözüm yaklaşımları geliştirir ve sorumluluk alır.
7
Mesleğinin yeni ve gelişmekte olan uygulamalarının farkındadır; gerektiğinde bunları inceler ve öğrenir.
8
Bilimsel bilgi birikimini yazılı ve sözlü olarak etkin bir şekilde ifade eder, en az bir yabancı dilde Avrupa Dil Portföyü B2 Genel Düzeyinde iletişim kurar ve iletişim teknolojilerini ileri düzeyde kullanır.
9
Mühendislik uygulamalarının sosyal ve çevresel boyutlarını betimler.
10
Verilerin toplanması, yorumlanması, duyurulması aşamalarında ve mesleki tüm etkinliklerde toplumsal, bilimsel ve etik değerleri gözetir.
Değerlendirme Sistemi
Katkı Düzeyi
Mutlak Değerlendirme
Ara Sınavın Başarıya Oranı
50
Genel Sınavın Başarıya Oranı
50
Toplam
100
AKTS / İşyükü Tablosu
Etkinlik
Sayı
Süresi (Saat)
Toplam İş Yükü (Saat)
Ders Saati
0
0
0
Rehberli Problem Çözme
0
0
0
Problem Çözümü / Ödev / Proje / Rapor Tanzimi
0
0
0
Okul Dışı Diğer Faaliyetler
0
0
0
Proje Sunumu / Seminer
0
0
0
Kısa Sınav (QUİZ) ve Hazırlığı
0
0
0
Ara Sınav ve Hazırlığı
0
0
0
Genel Sınav ve Hazırlığı
0
0
0
Performans Görevi, Bakım Planı
0
0
0
Toplam İş Yükü (Saat)
0
Dersin AKTS Kredisi = Toplam İş Yükü (Saat)/30*=(0/30)
0
Dersin AKTS Kredisi: *30 saatlik çalışma 1 AKTS kredisi sayılmaktadır.
Dersin Detaylı Bilgileri
Ders Tanımı
Ders
Kodu
Yarıyıl
T+U Saat
Kredi
AKTS
YAZILIM TASARIM KALIPLARI
COEY1215699
Bahar Dönemi
3+0
3
8
Ders Programı
Ön Koşul Dersleri
Önerilen Seçmeli Dersler
Dersin Dili
İngilizce
Dersin Seviyesi
Yüksek Lisans
Dersin Türü
Programa Bağlı Seçmeli
Dersin Koordinatörü
Dr.Öğr.Üye. İbrahim KARLIAĞA
Dersi Verenler
Dr.Öğr.Üye. İbrahim KARLIAĞA
Dersin Yardımcıları
Dersin Amacı
Bu ders, öğrencilere yazılım tasarım kalıplarının temel prensiplerini öğretmek için tasarlanmıştır. Katılımcılar, yazılım mimarisini güçlendirmek, kod kullanılabilirliğini artırmak ve sürdürülebilirliği sağlamak amacıyla yaygın tasarım kalıplarını öğrenme, uygulama ve kullanma becerisi kazanacaktır. Yaratımsal, yapısal ve davranışsal tasarım desenlerini kapsayan bu ders, ölçeklenebilir ve verimli yazılım çözümleri geliştirme konusunda uygulamalı deneyim sunar. Pratik alıştırmalar aracılığıyla öğrenciler, yazılım tasarım kararlarını değerlendirme becerilerini geliştirecektir.
Dersin İçeriği
Bu ders; Yazılım Tasarım Kalıplarına Giriş,Nesne Yönelimli Tasarım İlkeleri,Tasarım Kalıplarınin Sınıflandırılması,Singleton ve Fabrika (Factory) Kalıpları,Soyut Fabrika (Abstract Factory) ve Kurucu (Builder) Kalıpları,Prototip (Prototype) Kalıbı,Adaptör (Adapter) ve Köprü (Bridge) Kalıpları,Bileşik (Composite) ve Dekoratör (Decorator) Kalıpları,Cephe (Facade) ve Vekil (Proxy) Kalıpları,Strateji (Strategy) ve Gözlemci (Observer) Kalıpları,Komut (Command) ve Durum (State) Kalıpları,Şablon Yöntemi (Template Method) ve Yineleyici (Iterator) Kalıpları,Sorumluluk Zinciri (Chain of Responsibility) ve Arabulucu (Mediator) Kalıpları,Memento ve Ziyaretçi (Visitor) Kalıpları; konularını içermektedir.
Dersin Öğrenme Kazanımları
Öğretim Yöntemleri
Ölçme Yöntemleri
Yazılım Tasarım Kalıplarını Anlama
12, 2, 9
A, E, F
Uygun Tasarım Kalıplarını Belirleme
12, 2, 9
A, E, F
Tasarım Kalıplarını Uygulama
12, 2, 9
A, E, F
Yazılım Sürdürülebilirliği ve Tekrar Kullanılabilirliğini Artırma
12, 2, 9
A, E, F
Yazılım Tasarım Kararlarını Değerlendirme
12, 2, 9
A, E, F
Öğretim Yöntemleri:
12: Problem Çözme Yöntemi, 2: Proje Temelli Öğrenme Modeli, 9: Anlatım Yöntemi
Ölçme Yöntemleri:
A: Klasik Yazılı Sınav, E: Ödev, F: Proje Görevi
Ders Akışı
Sıra
Konular
Ön Hazırlık
1
Yazılım Tasarım Kalıplarına Giriş
2
Nesne Yönelimli Tasarım İlkeleri
3
Tasarım Kalıplarınin Sınıflandırılması
4
Singleton ve Fabrika (Factory) Kalıpları
5
Soyut Fabrika (Abstract Factory) ve Kurucu (Builder) Kalıpları
6
Prototip (Prototype) Kalıbı
7
Adaptör (Adapter) ve Köprü (Bridge) Kalıpları
8
Bileşik (Composite) ve Dekoratör (Decorator) Kalıpları
9
Cephe (Facade) ve Vekil (Proxy) Kalıpları
10
Strateji (Strategy) ve Gözlemci (Observer) Kalıpları
11
Komut (Command) ve Durum (State) Kalıpları
12
Şablon Yöntemi (Template Method) ve Yineleyici (Iterator) Kalıpları
13
Sorumluluk Zinciri (Chain of Responsibility) ve Arabulucu (Mediator) Kalıpları
14
Memento ve Ziyaretçi (Visitor) Kalıpları
Kaynak
Design Patterns: Elements of Reusable Object-Oriented Software, Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides, 1995
Dersin Program Yeterliliklerine Katkısı
Dersin Program Yeterliliklerine Katkısı
No
Program Yeterliliği
Katkı Düzeyi
1
2
3
4
5
1
Mühendislik alanında bilimsel araştırma yaparak bilgiye genişlemesine ve derinlemesine ulaşır, bilgiyi değerlendirir, yorumlar ve uygular.
2
Mühendislikte uygulanan güncel teknik ve yöntemler ile bunların kısıtları hakkında kapsamlı bilgi sahibidir ve mühendisliğin ilişki kurduğu disiplinler arası etkileşimi kavrayabilir.
3
Analitik, modelleme ve deneysel esaslı araştırmaları tasarlar ve uygular; bu süreçte karşılaşılan karmaşık durumları yorumlar, yeni ve özgün fikirler geliştirerek çözümler.
4
Sınırlı ya da eksik verileri kullanarak bilimsel yöntemlerle bilgiyi tamamlar ve uygular; değişik disiplinlere ait bilgileri bütünleştirir.
5
Mühendislik ile ilgili uzmanlık gerektiren bir çalışmayı bağımsız olarak yürütebilir.
6
Çok disiplinli takımlarda liderlik yapar, çözüm yaklaşımları geliştirir ve sorumluluk alır.
7
Mesleğinin yeni ve gelişmekte olan uygulamalarının farkındadır; gerektiğinde bunları inceler ve öğrenir.
8
Bilimsel bilgi birikimini yazılı ve sözlü olarak etkin bir şekilde ifade eder, en az bir yabancı dilde Avrupa Dil Portföyü B2 Genel Düzeyinde iletişim kurar ve iletişim teknolojilerini ileri düzeyde kullanır.
9
Mühendislik uygulamalarının sosyal ve çevresel boyutlarını betimler.
10
Verilerin toplanması, yorumlanması, duyurulması aşamalarında ve mesleki tüm etkinliklerde toplumsal, bilimsel ve etik değerleri gözetir.