Ders Adı Kodu Yarıyıl T+U Saat Kredi AKTS
Yazılım Mimarisi SWE 312 6 3 + 0 3 5
Ön Koşul Dersleri
Önerilen Seçmeli Dersler
Dersin Dili Türkçe
Dersin Seviyesi Lisans
Dersin Türü Zorunlu
Dersin Koordinatörü Prof.Dr. DEVRİM AKGÜN
Dersi Verenler
Dersin Yardımcıları
Dersin Kategorisi Alanına Uygun Öğretim
Dersin Amacı

Bu dersin amacı, öğrencilere yazılım mimarilerini tasarlama, belgeleme, değerlendirme ve geliştirme süreçleri için gerekli temel bilgi ve pratik becerileri kazandırmaktır. Ders; mimariyi, paydaş beklentileri, sistem kısıtları ve performans, ölçeklenebilirlik, güvenlik, erişilebilirlik, değiştirilebilirlik, güvenilirlik ve sürdürülebilirlik gibi kalite nitelikleri doğrultusunda alınan önemli tasarım kararları bütünü olarak ele alır. Öğrenciler, mimari alternatifleri karşılaştırmayı ve tercihlerini ölçülebilir gereksinimler ile ödünleşimlere (trade-offs) dayandırarak gerekçelendirmeyi öğrenirler. Ayrıca ders; dağıtık mimariler, mikro hizmetler, olay güdümlü sistemler, veri mimarisi, güvenlik, DevOps, evrimsel mimari ve yapay zeka destekli sistemleri tanıtarak öğrencileri güncel yazılım sistemlerine hazırlamayı amaçlar.

Dersin İçeriği

Bu ders, yazılım mimarisinin temellerini, mimari etkenleri, paydaş endişelerini, kalite özelliklerini, modülerliği, soyutlamayı, bağlantıyı, uyumu ve bağımlılık yönetimini kapsamaktadır. Katmanlı, istemci-sunucu, n-katmanlı, modüler monolit, boru ve filtre, olay odaklı, yayınla-abone ol, hizmet odaklı ve mikro hizmet mimarileri de dahil olmak üzere başlıca mimari stiller ve kalıplar incelenmektedir. Performans, kullanılabilirlik, ölçeklenebilirlik, güvenlik ve dayanıklılık için mimari taktikler, çoğaltma, bölümleme, tutarlılık, idempotansiyel, yeniden denemeler, devre kesiciler ve kademeli bozulma gibi dağıtık sistem kavramlarıyla birlikte tanıtılmaktadır. C4 modeli, mimari görünümler ve Mimari Karar Kayıtları da dahil olmak üzere mimari dokümantasyon teknikleri de ele alınmaktadır. Ders ayrıca veri mimarisi, kalıcılık stratejileri, önbellekleme, olay kaynaklama, CQRS, güvenlik ve gizlilik, tehdit modellemesi, dağıtım mimarisi, konteynerler, CI/CD, gözlemlenebilirlik, evrimsel mimari, mimari uygunluk fonksiyonları ve teknik borç konularını da ele almaktadır. Modern yapay zeka destekli sistemler, büyük dil modelleri, bilgi edinimiyle zenginleştirilmiş üretim, yapay zeka ajanları, model geçitleri, değerlendirme, izleme, maliyet, gizlilik ve hata yönetimi de dahil olmak üzere mimari bir perspektiften ele alınmaktadır.

Özel Koşullar
Sektör Desteği
Destekleyen Firma
Destekleyen Eğitmen
# Ders Öğrenme Çıktıları Öğretim Yöntemleri Ölçme Yöntemleri
1 Analyze software requirements, stakeholder concerns, constraints, and quality attributes to identify the main architectural drivers of a software system.
2 Design and justify suitable software architectures by applying appropriate architectural styles, patterns, tactics, modularity principles, and distributed-system concepts.
3 Document architectural structures and decisions effectively using architectural views, C4 diagrams, and Architecture Decision Records.
4 Evaluate software architectures systematically in terms of performance, scalability, reliability, security, maintainability, data management, deployment, and architectural trade-offs.
5 Develop and defend architectures for modern software systems that can evolve over time and may include cloud, distributed, event-driven, and AI-enabled components.
Hafta Ders Konuları Ön Hazırlık
1 Foundations of Software Architecture
2 Quality Attributes and Architectural Drivers
3 Modularity, Dependencies, Coupling, and Cohesion
4 Architectural Patterns, Tactics, and Core Structural Styles
5 Dataflow, Event-Driven, and Messaging Architectures
6 Monoliths, Microservices, and Service-Oriented Architecture
7 Distributed Systems Fundamentals for Architects
8 Architecture Documentation
9 Data Architecture and Persistence Strategies
10 Architecting AI-Enabled Systems
11 AI Agents, Evaluation, and MLOps Architecture
12 Security, Privacy, and Responsible Architecture
13 Deployment, DevOps, Observability, and Evolutionary Architecture
14 Architecture Evaluation, Trade-Off Analysis, and Technical Debt
Kaynaklar
Ders Notu
Ders Kaynakları

Richards, M., & Ford, N. (2025). Fundamentals of software architecture: a modern engineering approach. " O'Reilly Media, Inc.".

Ford, N., Parsons, R., Kua, P., & Sadalage, P. (2022). Building evolutionary architectures: automated software governance. " O'Reilly Media, Inc.".

 

Sıra Program Çıktıları Katkı Düzeyi
1 2 3 4 5
1 Mühendislik Bilgisi: Matematik, fen bilimleri, temel mühendislik, bilgisayarla hesaplama ve ilgili mühendislik disiplinine özgü konularda bilgi; bu bilgileri, karmaşık mühendislik problemlerinin çözümünde kullanabilme becerisi.
2 Problem Analizi: Karmaşık mühendislik problemlerini, temel bilim, matematik ve mühendislik bilgilerini kullanarak ve ele alınan problemle ilgili BM Sürdürülebilir Kalkınma Amaçlarını gözeterek tanımlama, formüle etme ve analiz becerisi.
3 Mühendislik Tasarımı: Karmaşık mühendislik problemlerine yaratıcı çözümler tasarlama becerisi; karmaşık sistemleri, süreçleri, cihazları veya ürünleri gerçekçi kısıtları ve koşulları gözeterek, mevcut ve gelecekteki gereksinimleri karşılayacak biçimde tasarlama becerisi.
4 Teknik ve Araçların Kullanımı: Karmaşık mühendislik problemlerinin analizi ve çözümüne yönelik, tahmin ve modelleme de dahil olmak üzere, uygun teknikleri, kaynakları ve modern mühendislik ve bilişim araçlarını, sınırlamalarının da farkında olarak seçme ve kullanma becerisi.
5 Araştırma ve İnceleme: Karmaşık mühendislik problemlerinin incelenmesi için literatür araştırması, deney tasarlama, deney yapma, veri toplama, sonuçları analiz etme ve yorumlama dahil, araştırma yöntemlerini kullanma becerisi.
6 Mühendislik Uygulamalarının Küresel Etkisi: Mühendislik uygulamalarının BM Sürdürülebilir Kalkınma Amaçları kapsamında, topluma, sağlık ve güvenliğe, ekonomiye, sürdürülebilirlik ve çevreye etkileri hakkında bilgi; mühendislik çözümlerinin hukuksal sonuçları konusunda farkındalık.
7 Mühendislik Etiği: Mühendislik meslek ilkelerine uygun davranma, etik sorumluluk hakkında bilgi; hiçbir konuda ayrımcılık yapmadan, tarafsız davranma ve çeşitliliği kapsayıcı olma konularında farkındalık.
8 Bireysel ve Takım Çalışması: Bireysel olarak ve disiplin içi ve çok disiplinli takımlarda (yüz yüze, uzaktan veya karma) takım üyesi veya lideri olarak etkin biçimde çalışabilme becerisi.
9 Sözlü ve Yazılı İletişim: Hedef kitlenin çeşitli farklılıklarını (eğitim, dil, meslek gibi) dikkate alarak, teknik konularda sözlü, yazılı etkin iletişim kurma becerisi.
10 Proje Yönetimi: Proje yönetimi ve ekonomik yapılabilirlik analizi gibi iş hayatındaki uygulamalar hakkında bilgi; girişimcilik ve yenilikçilik hakkında farkındalık.
11 Yaşam Boyu Öğrenme: Bağımsız ve sürekli öğrenebilme, yeni ve gelişmekte olan teknolojilere uyum sağlayabilme ve teknolojik değişimlerle ilgili sorgulayıcı düşünebilmeyi kapsayan yaşam boyu öğrenme becerisi.
# Ders Öğrenme Çıktılarının Program Çıktılarına Katkısı PÇ 1 PÇ 2 PÇ 3 PÇ 4 PÇ 5 PÇ 6 PÇ 7 PÇ 8 PÇ 9 PÇ 10 PÇ 11
1 Analyze software requirements, stakeholder concerns, constraints, and quality attributes to identify the main architectural drivers of a software system.
2 Design and justify suitable software architectures by applying appropriate architectural styles, patterns, tactics, modularity principles, and distributed-system concepts.
3 Document architectural structures and decisions effectively using architectural views, C4 diagrams, and Architecture Decision Records.
4 Evaluate software architectures systematically in terms of performance, scalability, reliability, security, maintainability, data management, deployment, and architectural trade-offs.
5 Develop and defend architectures for modern software systems that can evolve over time and may include cloud, distributed, event-driven, and AI-enabled components.
Değerlendirme Sistemi
Yarıyıl Çalışmaları Katkı Oranı
Toplam 0
Toplam 0
AKTS - İş Yükü Etkinlik Sayı Süre (Saat) Toplam İş Yükü (Saat)
Ders Süresi (Sınav haftası dahildir: 16x toplam ders saati) 16 3 48
Sınıf Dışı Ders Çalışma Süresi(Ön çalışma, pekiştirme) 16 3 48
Ara Sınav 1 9 9
Ödev 1 5 5
Kısa Sınav 1 5 5
Final 1 10 10
Toplam İş Yükü 125
Toplam İş Yükü / 25 (Saat) 5
dersAKTSKredisi 5