Ana içeriğe atla

YAM 220 - Yazılım Tasarımı ve Mimarisi

Mühendislik ve Doğa Bilimleri Fakültesi · Yazılım Mühendisliği (%30 İngilizce) · Lisans

AKTS: 5 T+U+L: 1+0+2 Zorunlu
Koordinatör: Dr. Öğr. Üyesi Ayşenur TOPBAŞ

Dersin Amacı

Bu dersin amacı, öğrencilere nesne tabanlı programlama ve tasarım ilkelerini öğretmek; UML ve yazılım tasarım desenlerini kullanarak sürdürülebilir, esnek ve yeniden kullanılabilir yazılım çözümleri geliştirme becerisi kazandırmaktır.

 

Ders İçeriği

Nesne tabanlı tasarıma giriş ve SOLID tasarım ilkeleri

Nesne tabanlı programlama kavramları: sınıf, nesne ve erişim belirteçleri

Arayüzler (Interface) ve soyut sınıflar (Abstract Class)

UML modelleme ve sınıf şemalarının oluşturulması

UML sınıf şemalarına uygun kod geliştirme

Yaratıcı (Creational) tasarım desenleri ve uygulamaları

Yapısal (Structural) tasarım desenleri ve uygulamaları

Davranışsal (Behavioral) tasarım desenleri ve uygulamaları

 

Zorunlu Kaynaklar

-Ders Notları

-Software Architecture in Practice – Len Bass, Paul Clements, Rick Kazman (Carnegie Mellon / SEI)

 

Önerilen Kaynaklar

Fundamentals of Software Architecture – Mark Richards, Neal Ford

 

Açıklamalar

Ders kapsamında bir ara sınav bir final sınavı olmak üzere iki dönem içi sınav ve kapsamlı bir dönem sonu proje uygulaması olacaktır. 

  1. Laboratuvar uygulamaları derslerde değerlendirilecektir. Aksi belirtilmediği müddetçe ders sonrası uygulama toplanmayacaktır. 

  2. E-posta ile gönderilen uygulamalar değerlendirmeye alınmayacaktır.

  3. Sınav tarihleri tabloda ilan edildiği gibidir. Sınavların konuları makul bir süre öncesinde ilan edilecektir. İZÜ yönetmeliklerine göre kabul edilen mazeretler çerçevesinde girilmeyen sınavlar için telafi sınavı verilecektir. 

  4. Ara sınav ve final sınav günü, saati ve yeri Dekanlık tarafından ilan edilecektir.

  5. Sınavlar sırasında yapay zekadan destek almak, whatsapp, vs. kullanmak kesinlikle yasaktır. Tespit edildiği takdirde sınav geçersiz sayılacak ve “sıfır” - “0” puan verilecektir.

Kurallar

  1. Devam: Yönetmeliğe göre bir öğrenci toplam ders saatinin % 30’na devam etmemesi halinde dersten devamsızlık alır (DZ) ve başarısız olur.

  2. Geç Gelme: Sınıfa sadece gelmeniz değil vakitlice saatinde ders katılmanız beklenmektedir. Derse geç katılım gösterilmesi durumunda, dersin o saati devamsız kabul edilecektir.

  3. Yardım Almak: Ders esnasında ya da görüşme saatlerinde dersle ilgili sorularınızı sorup konuyu vaktinde öğrenmeniz eğitiminiz için önemlidir. 

  4. Akademik dürüstlük: Dersin notuna konu olacak çalışmalarda tamamen kendi gayret ve eseriniz olması beklenmektedir.  İntihal, kopyalama gibi gayri ahlaki durumlarda İZÜ’nün ilgili yönetmeliği gereği disiplin soruşturması açılıp gerekli cezai müeyyideler uygulanacaktır. 

  5. Bu izlencede belirtilen değerlendirmeler sabit olup, not yükseltme amaçlı herhangi bir ekstra telafi ölçme yapılmayacaktır.

Dersin Öğrenme Çıktıları

  1. Nesne tabanlı programlamanın temel kavramlarını ve SOLID tasarım ilkelerini açıklar.
  2. Sınıf, nesne, arayüz ve soyut sınıf yapılarını uygun senaryolarda kullanır.
  3. UML sınıf şemalarını yorumlar ve oluşturur.
  4. UML sınıf şemalarına uygun nesne tabanlı kod geliştirir.
  5. Yaratıcı (Creational) tasarım desenlerinin amaçlarını ve kullanım alanlarını ayırt eder.
  6. Yapısal (Structural) tasarım desenlerini problem gereksinimlerine uygun şekilde uygular.
  7. Davranışsal (Behavioral) tasarım desenlerini yazılım problemlerinde kullanır.
  8. Yazılım tasarımında uygun tasarım desenini seçerek esnek ve sürdürülebilir çözümler geliştirir.
  9. Nesne tabanlı tasarım prensiplerini kullanarak bakım ve genişletilebilirliği yüksek yazılımlar tasarlar.

Temel Alan Dağılımı

(48) Bilgisayar%40 (52) Mühendislik%60

Öğretim Yöntem ve Teknikleri

AnlatımAlıştırma ve UygulamaDeney / Laboratuvar / Atölye / Alan Uygulaması

Ölçme ve Değerlendirme

Performans Görevi (Uygulama / Laboratuvar / Atölye / Arazi Çalışması / Seminer / Sunum / Bitirme Çalışması / Tez)Sınav (Yazılı Sınav / Test: Doğru-Yanlış Testi, Çoktan Seçmeli Testi, Kısa Cevaplı Test, Eşleştirmeli Test)

AKTS / İş Yükü

EtkinlikSayıSüre (saat)Toplam İş Yükü
Ders Süresi (Sınav Haftası Dahil)16348
Sınıf Dışı Ders Çalışma Süresi14114
Ara Sınav122
Kısa Sınav000
Ödev000
Uygulama14228
Final122

Ders Akışı

HaftaKonuÖn Hazırlık
1Nesne Tabanlı Tasarım İlkeleri-SOLIDDers Notları
2Nesne Tabanlı Programlama (Sınıf, Nesne, Erişim Belirteçleri)Ders Notları
3Nesne Tabanlı Programlama (Interface-Arayüz, Abstract Class-Soyut Sınıf)Ders Notları
4UML Tasarımı (Sınıf Şemaları)Ders Notları
5UML Uygulamaları (Sınıf Şemalarına göre kod yazılması)Ders Notları
6Yaratıcı Desenler (Yegane Tasarım Deseni (Singleton Pattern), Fabrika Tasarım Deseni (Factory Pattern)Ders Notları
7Yaratıcı Desenler (Fabrika Yöntemi, Soyut Fabrika Tasarım Desen)Ders Notları
8Vize HaftasıDers Notları
9Yaratıcı Desenler (Bina Tasarım Deseni, Prototip Tasarım Deseni, Nesne Havuzu Tasarım DeseniDers Notları
10Yapısal Desenler (Cephe Tasarım Deseni, Adaptör Tasarım Deseni)Ders Notları
11Yapısal Desenler (Köprü Tasarım Deseni)Ders Notları
12Yapısal Desenler (Dekoratör Tasarım Deseni, Bileşik Tasarım Deseni)Ders Notları
13Yapısal Desenler (Sinek siklet Tasarım Deseni, Strateji Tasarım Deseni, Şablon Metod Tasarım Deseni)Ders Notları
14Davranışsal Desenler (Arabulucu Tasarım Deseni Gözlemci Tasarım Deseni)Ders Notları
15Davranışsal Desenler (Sorumluluk Zinciri Tasarım Deseni Ziyaretçi Tasarım Deseni)Ders Notları
16Final HaftasıDers Notları