Ders Adı Yazılım Mimarileri ve Tasarım Desenleri
Ders Kodu BPR-3283
Dersin Türü Zorunlu
Ders Biriminin Seviyesi Ön Lisans
Yıl 2
Dönem 3.Yarıyıl
AKTS 3
Dersi Veren(ler) Öğr. Gör. Ziya DİRLİK
Dersin Yardımcıları
Ders İşleme Biçimi Yüz Yüze
Önkoşul Dersleri
Dersin İçeriği Yazılım Tasarımı ve Mimarisine giriş. Yazılım Süreç Modelleri, Nesne Yönelimli Tasarım Prensipleri (SOLID),Tasarım Modelinin Oluşturulması ve Tasarım Kalıpları, Senaryoların Gerçeklenmesi, Tasarımdan Kodlamaya Geçiş, Yapısal Tasarım Desenleri, Oluşturucu Tasarım Desenleri, Davranışsal tasarım Desenleri.
Dersin Verildiği Diller Türkçe
Dersin Amacı Bu dersin amacı, yazılım projelerinin yazılım mühendisliği disipliniyle modellenmesini, tasarlanmasını ve geliştirilmesini sağlamaktır. Bu amaçla yazılım mühendisliğinin temel prensiplerini, yazılım sürecinin adımlarını, yazılım tasarımının standartlarını ve standart haline gelmiş tasarım kalıplarını öğretmektir.
Ders Yapısı
Temel/Alana Özgü Mesleki Dersler 60
Uzmanlık/Program Dersi 40
Destek Dersi 0
Beceri,İletişim ve Yönetim Becerileri Dersi 0
Aktarılabilir Beceri Dersi 0
Matematik ve Temel Bilimler 0
Temel Eğitim 0
Ders İşleme Şekli
Sınıf Dersi 0
Sınıf Dersi açıklama 0
Problem Saati 0
Problem Saati Açıklama 0
Laboratuvar 100
Laboratuvar Açıklama 1
Diğer 0
Diğer Açıklama 0
No Dersin Kazanımları  
1 Yazılım mimarilerini ihtiyaçlara göre kullanır
2 Yazılım tasarım desenlerini uygulamalarda etkili olarak kullanır
3 Nesne yönelimli programlama prensiplerini programlamada kullanır
4 Tasarım desenlerini farklı yazılım mimarilerinde kullanır
5 Yazılım mühendisliği standartlarına uygun yazılımlar geliştirir
DERSİN KAZANIMLARI / PROGRAM YETERLİKLERİ İLİŞKİ MATRİSİ
DKPÇ1PÇ2PÇ3PÇ4PÇ5PÇ6PÇ7PÇ8PÇ9PÇ10PÇ11PÇ12PÇ13PÇ14PÇ15
1
2
3
4
5
5-Çok Yüksek İlişkili 4- Yüksek İlişkili 3-Orta İlişkili 2- Zayıf İlişkili 1-İlişkisiz
Hafta Konular  
1 Yazılım mimarisi ve tasarımı temel kavramları
2 Yazılım süreç modelleri
3 Yazılım mimarisi çeşitleri, Monolitik Mimari
4 Katmanlı Mimari
5 Mikroservisler
6 Olay Tabanlı Mimari
7 Model-View-Controller (MVC)
8 Nesne yönelimli tasarım prensipleri
9 SOLID prensipleri
10 Tasarım desenlerine giriş, tasarım desenleri çeşitleri, Gang of Four (GoF)
11 Oluşturucu Tasarım Desenleri; Singleton, Factory Method, Abstract Factory, Builder, Prototype
12 Yapısal Tasarım Desenleri; Adapter, Composite, Proxy, Flyweight, Façade, Bridge, Decorator
13 Davranışsal Tasarım Desenleri; Template Method, Mediator, Chain of Responsibility, Observer, Strategy, Command, State, Visitor, Interpreter, Iterator, Memento
14 Proje Sunumları ve Genel Değerlendirme
No Program Çıktısı Katkı Düzeyi
1 Mesleği ile ilgili temel, güncel ve uygulamalı bilgilere sahip olur. 4
2 İş sağlığı ve güvenliği, çevre bilinci ve kalite süreçleri hakkında bilgi sahibi olur. 3
3 Mesleği için güncel gelişmeleri ve uygulamaları takip eder, etkin şekilde kullanır. 4
4 Mesleği ile ilgili bilişim teknolojilerini (yazılım, program, animasyon vb.) etkin kullanır. 4
5 Mesleki problemleri ve konuları bağımsız olarak analitik ve eleştirel bir yaklaşımla değerlendirme ve çözüm önerisini sunabilme becerisine sahiptir. 4
6 Bilgi ve beceriler düzeyinde düşüncelerini yazılı ve sözlü iletişim yolu ile etkin biçimde sunabilir, anlaşılır biçimde ifade eder. 3
7 Alanı ile ilgili uygulamalarda karşılaşılan ve öngörülemeyen karmaşık sorunları çözmek için ekip üyesi olarak sorumluluk alır. 3
8 Kariyer yönetimi ve yaşam boyu öğrenme konularında farkındalığa sahiptir. 3
9 Alanı ile ilgili verilerin toplanması, uygulanması ve sonuçlarının duyurulması aşamalarında toplumsal, bilimsel, kültürel ve etik değerlere sahiptir. 3
10 Bir yabancı dili kullanarak alanındaki bilgileri takip eder ve meslektaşları ile iletişim kurar. 4
11 Algoritma ve veri yapılarını oluşturur ve matematiksel hesapları yapar. 5
12 Web programlama teknolojilerini açıklar ve uygular. 3
13 Veri tabanı tasarımı ve yönetimini gerçekleştirir. 4
14 Yazılımları test eder ve hataları giderir. 4
15 Veri yönetimi, veri işleme ve analiz etme becerisine sahiptir. 5
Yarıyıl İçi Çalışmaları Sayısı Katkı Payı
Ara Sınav 1 50
Kısa Sınav 0 0
Ödev 0 0
Devam 0 0
Uygulama 0 0
Labaratuvar 0 0
Proje 1 50
Atölye 0 0
Seminer 0 0
Arazi Çalışması 0 0
Sözlü sınav 0 0
Portfolyo 0 0
Doküman İncelemesi 0 0
Performans değerlendirme 0 0
Sunum 0 0
Alan Çalışması 0 0
Vaka Çalışması 0 0
Video Kaydı 0 0
Öz değerlendirme 0 0
Akran Değerlendirme 0 0
Eşleştirme Testleri 0 0
Çoktan seçmeli test 0 0
Kısa Cevaplı test 0 0
Kontrol listeleri 0 0
Dereceleme Ölçekleri 0 0
Zihin Haritalama 0 0
Araştırma yazısı 0 0
Çevrimiçi anket 0 0
Çevrimiçi Kısa sınav 0 0
TOPLAM 100
Yıliçinin Başarıya Oranı 40
Finalin Başarıya Oranı 60
TOPLAM 100
AKTS kredilerinin belirlenmesinde öğrenci işyükü anketlerinden faydalanılmaktadır.
Etkinlik Sayısı Süresi Toplam
Ders Süresi (Sınav Haftaları Hariç) 14 3 42
Sınıf Dışı Ders Çalışma Süresi 14 2 28
Ödevler 0 0 0
Sunum/Seminer 0 0 0
Proje 1 20 20
Laboratuar Çalışması 0 0 0
Arazi ya da Alan Çalışması 0 0 0
Kısa Sınav 0 0 0
Araştırma 0 0 0
Rapor Yazma/Rapor sunumu 0 0 0
Vaka İncelemesi 0 0 0
Staj 0 0 0
Uygulama/Materyal Hazırlama 0 0 0
Tez Çalışması 0 0 0
Ara Sınavlar 1 1 1
Yarıyıl Sonu Sınavı 1 1 1
İşyükü Saati (30) 0
Toplam İşyükü / Saat 92    
Dersin Akts Kredisi 3    
Ders Notu OBS'deki ders dokümanları
Diğer Kaynaklar OBS'deki ders dokümanları
Materyal
Dökümanlar OBS'deki ders dokümanları
Ödevler
Sınavlar
Materyal Diğer
Planlanmış Öğrenme Faaliyetleri ve Öğretim Yöntemleri











Course Weekly Schedules
Hafta 1 .Hafta
Konu
Haftalık Kapsam ve Hedefler Yazılım mimarisi ve tasarımı hakkında temel bilgileri aktarmak.
Haftalık Öğrenme Etkinlikleri/Kaynakları/Videolar OBS'deki ders dokümanları
Haftalık Öğrenme Etkinlikleri Açıklama Öğrencilere anlatılan konular hakkında sorular sorularak konu pekiştirmesi yapılacak.
Haftalık Ölçme-Değerlendirme Etkinlikleri Uygulama,
Haftalık Ölçme-Değerlendirme Notlandırması/Ödev Teslim Süreleri
Hafta 2 .Hafta
Konu
Haftalık Kapsam ve Hedefler Yazılım süreç modellerinin anlatılması ve hangi projelerde hangi süreçlerin uygun olduğunun belirtilmesi
Haftalık Öğrenme Etkinlikleri/Kaynakları/Videolar OBS'deki ders dokümanları
Haftalık Öğrenme Etkinlikleri Açıklama Öğrencilere yazılım süreç modelleri hakkında sorular sorularak pekiştirme yapılacak
Haftalık Ölçme-Değerlendirme Etkinlikleri Uygulama,
Haftalık Ölçme-Değerlendirme Notlandırması/Ödev Teslim Süreleri
Hafta 3 .Hafta
Konu
Haftalık Kapsam ve Hedefler Sık kullanılan yazılım mimarilerini anlatmak
Haftalık Öğrenme Etkinlikleri/Kaynakları/Videolar OBS'deki ders dokümanları
Haftalık Öğrenme Etkinlikleri Açıklama Yazılım mimarileri örnekleri anlatılarak öğrencilere soru cevap yapılacak.
Haftalık Ölçme-Değerlendirme Etkinlikleri Uygulama,
Haftalık Ölçme-Değerlendirme Notlandırması/Ödev Teslim Süreleri
Hafta 4 .Hafta
Konu
Haftalık Kapsam ve Hedefler Çok katmanlı yazılım mimarisi yapısını anlatmak
Haftalık Öğrenme Etkinlikleri/Kaynakları/Videolar OBS'deki ders dokümanları
Haftalık Öğrenme Etkinlikleri Açıklama Çok katmanlı yazılım mimarisi örnekleri gösterilecek ve öğrencilerden örnek katmanlı mimari kodlamaları istenecek
Haftalık Ölçme-Değerlendirme Etkinlikleri Uygulama,
Haftalık Ölçme-Değerlendirme Notlandırması/Ödev Teslim Süreleri
Hafta 5 .Hafta
Konu
Haftalık Kapsam ve Hedefler Mikroservis yapısının anlatılması
Haftalık Öğrenme Etkinlikleri/Kaynakları/Videolar OBS'deki ders dokümanları
Haftalık Öğrenme Etkinlikleri Açıklama Mikroservis örnekleri gösterilecek ve öğrencilerden örnek mikroservis kodlamaları istenecek
Haftalık Ölçme-Değerlendirme Etkinlikleri Uygulama,
Haftalık Ölçme-Değerlendirme Notlandırması/Ödev Teslim Süreleri
Hafta 6 .Hafta
Konu
Haftalık Kapsam ve Hedefler Olay Tabanlı Mimari yapılarının gösterilmesi
Haftalık Öğrenme Etkinlikleri/Kaynakları/Videolar OBS'deki ders dokümanları
Haftalık Öğrenme Etkinlikleri Açıklama Olay Tabanlı Mimari örnekleri gösterilecek. Öğrencilerden örnek kodlama yapılması istenecek.
Haftalık Ölçme-Değerlendirme Etkinlikleri Uygulama,
Haftalık Ölçme-Değerlendirme Notlandırması/Ödev Teslim Süreleri
Hafta 7 .Hafta
Konu
Haftalık Kapsam ve Hedefler Model-View-Controller yapısı anlatılacak.
Haftalık Öğrenme Etkinlikleri/Kaynakları/Videolar OBS'deki ders dokümanları
Haftalık Öğrenme Etkinlikleri Açıklama Model-View-Controlleri örnekleri gösterilecek. Öğrencilerden örnek kodlama yapılması istenecek.
Haftalık Ölçme-Değerlendirme Etkinlikleri Uygulama,
Haftalık Ölçme-Değerlendirme Notlandırması/Ödev Teslim Süreleri
Hafta 8 .Hafta
Konu
Haftalık Kapsam ve Hedefler Sınıf yapıları, arayüzler, kalıtım gibi nesne tabanlı programlama temelleri anlatılacak
Haftalık Öğrenme Etkinlikleri/Kaynakları/Videolar OBS'deki ders dokümanları
Haftalık Öğrenme Etkinlikleri Açıklama Öğrencilerin örnek sınıflar oluşturması ve bunları kullanmaları istenecek
Haftalık Ölçme-Değerlendirme Etkinlikleri Uygulama, Proje,
Haftalık Ölçme-Değerlendirme Notlandırması/Ödev Teslim Süreleri Öğrencilerin istedikleri bir otomasyonu seçtikleri bir mimari ile kodlamaları istenecek. Proje 13. hafta ders den önce Obs sistemine yüklenecek. 14. hafta sunumlar yapılacak.
Hafta 9 .Hafta
Konu
Haftalık Kapsam ve Hedefler Single-responsibility principle,Open-closed principle Liskov substitution principle, Interface segregation principle,Dependency Inversion Principle gibi tasarım prensiplerininin öğrenilmesi
Haftalık Öğrenme Etkinlikleri/Kaynakları/Videolar OBS'deki ders dokümanları
Haftalık Öğrenme Etkinlikleri Açıklama Öğrencilere SOLID prensipleri hakkında soru cevap yapılarak konu pekiştirmesi yapılacak
Haftalık Ölçme-Değerlendirme Etkinlikleri Uygulama,
Haftalık Ölçme-Değerlendirme Notlandırması/Ödev Teslim Süreleri
Hafta 10 .Hafta
Konu
Haftalık Kapsam ve Hedefler Yazılım tasarım desenlerinin anlatılarak öğrenilmesi
Haftalık Öğrenme Etkinlikleri/Kaynakları/Videolar OBS'deki ders dokümanları
Haftalık Öğrenme Etkinlikleri Açıklama Tasarım desenleri anlatılacak ve öğrencilerle soru cevap şeklinde konu pekiştirmesi yapılacak
Haftalık Ölçme-Değerlendirme Etkinlikleri Uygulama,
Haftalık Ölçme-Değerlendirme Notlandırması/Ödev Teslim Süreleri
Hafta 11 .Hafta
Konu
Haftalık Kapsam ve Hedefler Oluşturucu tasarım desenlerinin öğrenilmesi ve kodlanması
Haftalık Öğrenme Etkinlikleri/Kaynakları/Videolar OBS'deki ders dokümanları
Haftalık Öğrenme Etkinlikleri Açıklama Örnek sorular üzerinden öğrencilerin oluşturucu tasarım desenlerini kodlamaları istenecek
Haftalık Ölçme-Değerlendirme Etkinlikleri Uygulama,
Haftalık Ölçme-Değerlendirme Notlandırması/Ödev Teslim Süreleri
Hafta 12 .Hafta
Konu
Haftalık Kapsam ve Hedefler Yapısal tasarım desenlerinin öğrenilmesi ve kodlanması
Haftalık Öğrenme Etkinlikleri/Kaynakları/Videolar OBS'deki ders dokümanları
Haftalık Öğrenme Etkinlikleri Açıklama Örnek sorular üzerinden öğrencilerin yapısal tasarım desenlerini kodlamaları istenecek
Haftalık Ölçme-Değerlendirme Etkinlikleri Uygulama,
Haftalık Ölçme-Değerlendirme Notlandırması/Ödev Teslim Süreleri
Hafta 13 .Hafta
Konu
Haftalık Kapsam ve Hedefler Davranışsal tasarım desenlerinin öğrenilmesi ve kodlanması
Haftalık Öğrenme Etkinlikleri/Kaynakları/Videolar OBS'deki ders dokümanları
Haftalık Öğrenme Etkinlikleri Açıklama Örnek sorular üzerinden öğrencilerin davranışsal tasarım desenlerini kodlamaları istenecek
Haftalık Ölçme-Değerlendirme Etkinlikleri Uygulama,
Haftalık Ölçme-Değerlendirme Notlandırması/Ödev Teslim Süreleri
Hafta 14 .Hafta
Konu
Haftalık Kapsam ve Hedefler Proje sunumları üzerinden konuların pekiştirilmesi
Haftalık Öğrenme Etkinlikleri/Kaynakları/Videolar OBS'deki ders dokümanları
Haftalık Öğrenme Etkinlikleri Açıklama Öğrencilerin proje sunumları üzerinden farklı örnekleri görmesi sağlacak
Haftalık Ölçme-Değerlendirme Etkinlikleri Sunum,
Haftalık Ölçme-Değerlendirme Notlandırması/Ödev Teslim Süreleri