Ders Genel Tanıtım Bilgileri

Ders Kodu: SWE312
Ders İsmi: Yazılım Mimarisi
Ders Yarıyılı: Güz
Ders Kredileri:
AKTS
7
Öğretim Dili: İngilizce
Ders Koşulu:
Ders İş Deneyimini Gerektiriyor mu?: Hayır
Dersin Türü: Zorunlu
Dersin Seviyesi:
Lisans TYYÇ:6. Düzey QF-EHEA:1. Düzey EQF-LLL:6. Düzey
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 Amaç ve İçeriği

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.

Öğrenme Kazanımları

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.

Ders Akış Planı

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

Kaynaklar

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 - Program Öğrenme Kazanım İlişkisi

Ders Öğrenme Kazanımları

1

2

3

4

5

Program Kazanımları

Ders - Öğrenme Kazanımı İlişkisi

Etkisi Yok 1 En Düşük 2 Orta 3 En Yüksek
       
Dersin Program Kazanımlarına Etkisi Katkı Payı

Ölçme ve Değerlendirme

Değerlendirme Yöntemleri ve Kriterleri Aktivite Sayısı Katkı Payı
Projeler 1 % 25
Ara Sınavlar 1 % 30
Final 1 % 45
Toplam % 100

İş Yükü ve AKTS Kredisi Hesaplaması

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