| Ders Kodu: | SWE312 | ||||
| Ders İsmi: | Yazılım Mimarisi | ||||
| Ders Yarıyılı: | Güz | ||||
| Ders Kredileri: |
|
||||
| Öğretim Dili: | İngilizce | ||||
| Ders Koşulu: | |||||
| Ders İş Deneyimini Gerektiriyor mu?: | Hayır | ||||
| Dersin Türü: | Zorunlu | ||||
| Dersin Seviyesi: |
|
||||
| Dersin Veriliş Şekli: | Yüz yüze | ||||
| Dersin Koordinatörü: | Doç. Dr. BAHMAN ARASTEH ABBASABAD | ||||
| Dersi Veren(ler): | Doç. Dr. Öğr. Üyesi Bahman Arasteh | ||||
| Dersin Yardımcıları: |
| Dersin Amacı: | Bu dersin amacı, öğrencilere yazılım geliştirme yaşam döngüsü kapsamında yazılım mimarisinin temel prensiplerini ve uygulamalarını kapsamlı bir şekilde kazandırmaktır. Ders, öğrencilerin UML, Mimari Tanımlama Dilleri (ADL) ve 4+1 mimari modeli gibi standart teknikleri kullanarak yazılım mimarilerini modelleme ve dokümante etme becerilerini geliştirmeyi hedefler. Ayrıca katmanlı, istemci-sunucu, bileşen tabanlı ve servis yönelimli mimariler gibi farklı mimari yaklaşımların analiz edilmesi ve uygun olanın seçilmesi üzerinde durulur. Bunun yanı sıra, RESTful API’ler, mikroservisler ve konteyner teknolojileri destekli dağıtık bulut tabanlı sistemlerin tasarlanması ele alınır. Ders kapsamında ayrıca DevOps uygulamalarının mimariye entegrasyonu ile ölçeklenebilirlik, performans ve sürdürülebilirlik gibi temel kalite özelliklerinin dikkate alınması sağlanarak, öğrencilerin güçlü ve modern yazılım mimarileri geliştirmeleri amaçlanır. |
| Dersin İçeriği: | Dersin içeriği; Yazılım Mimarisinin Anlamı ve Tarihçesi, Proje Yönetimi, Metrikler, Proje Planlama, Analiz Kavramları, Analiz Modelleme, Yazılım Projelerinde Risk Yönetimi, Çevik Mimari, Yazılım Mimarilerini Belgeleme – UML, Programlama Paradigmaları, SOLID Tasarım İlkeleri 1, SOLID Tasarım İlkeleri 2, Yazılım Mimarisinde Bağımsızlık Kavramı, Servis Odaklı Mimari, Sunucusuz Mimari ve Bulutta Yerel Uygulamalar Güvenlik ve DevOps başlıklarından oluşmaktadır. |
|
Bu dersi başarıyla tamamlayabilen öğrenciler;
1) Yazılım mimarisinin temel kavramlarını, mimari aktiviteleri, yazılım geliştirme yaşam döngüsünü ve mimarinin yazılım sistemlerindeki rolünü açıklar 2) Yazılım mimarilerini Mimari Tanımlama Dilleri (ADL), UML ve 4+1 mimari görünüm modeli kullanarak modeller ve dokümante eder 3) Katmanlı, istemci-sunucu, bileşen tabanlı ve servis yönelimli mimariler dahil olmak üzere farklı mimari stilleri ve tasarım kalıplarını analiz eder ve karşılaştırır. 4) RESTful API’ler, mikroservisler ve konteyner teknolojileri ile desteklenen dağıtık/bulut tabanlı mimarileri kullanarak modern yazılım sistemleri tasarlar. 5) Mimari tasarım sürecinde DevOps uygulamalarını entegre eder ve ölçeklenebilirlik, performans ve sürdürülebilirlik gibi işlevsel olmayan gereksinimleri dikkate alır. |
| Hafta | Konu | Ön Hazırlık |
| 1) | Yazılım Mimarisi’ne Giriş (Yazılım Mimarisinin Tanımı ve Tarihçesi) | |
| 2) | Yazılım Mimarisi Aktiviteleri ve Yazılım Geliştirme Yaşam Döngüsü | |
| 3) | Yazılım Mimari Tanımlama Dilleri (ADL) | |
| 4) | 4+1 Mimari Model | |
| 5) | Mimari Stillerin Genel İncelemesi | |
| 6) | Bileşen Tabanlı Yazılım Mimarisi | |
| 7) | Ara Sınav | |
| 8) | Katmanlı Mimari ve İstemci-Sunucu Mimarisi | |
| 9) | Servis Yönelimli Mimari (SOA) | |
| 10) | REST API Mimarisi - 1 | |
| 11) | REST API Mimarisi - 2 | |
| 12) | Mikroservis Mimarisi | |
| 13) | Dağıtık Sistem Mimarisi (Bulut Tabanlı Mimari, Docker ve Kubernetes Temelleri) | |
| 14) | DevOps ve Mimari Entegrasyonu |
| Ders Notları / Kitaplar: | L. Bass, P. Clements, R. Kazman. Software Architecture in Practice, Third Edition (or Fourth Edition). Addison-Wesley, 2013. |
| Diğer Kaynaklar: | Robert Martin. Clean Architecture: A Craftsman`s Guide to Software Structure and Design, 1st Edition. Addison-Wesley, 2018. |
| Ders Öğrenme Kazanımları | 1 |
2 |
3 |
4 |
5 |
|---|---|---|---|---|---|
| Program Kazanımları |
| Etkisi Yok | 1 En Düşük | 2 Orta | 3 En Yüksek |
| Dersin Program Kazanımlarına Etkisi | Katkı Payı |
| Değerlendirme Yöntemleri ve Kriterleri | Aktivite Sayısı | Katkı Payı |
| Projeler | 1 | % 25 |
| Ara Sınavlar | 1 | % 30 |
| Final | 1 | % 45 |
| Toplam | % 100 | |
| Aktiviteler | Aktivite Sayısı | İş Yükü |
| Ders Saati | 13 | 39 |
| Sınıf Dışı Ders Çalışması | 13 | 26 |
| Proje | 7 | 35 |
| Ara Sınavlar | 3 | 30 |
| Final | 5 | 55 |
| Toplam İş Yükü | 185 | |