Yazılım Mühendisliği
Lisans TYYÇ: 6. Düzey QF-EHEA: 1. Düzey EQF-LLL: 6. Düzey

Ders Genel Tanıtım Bilgileri

Ders Kodu: SWE202
Ders İsmi: Yazılım Mimarisi
Ders Yarıyılı: Bahar
Ders Kredileri:
Teorik Pratik Laboratuvar AKTS
3 2 0 5
Öğretim Dili: Turkish
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ü: Dr. Öğr. Üyesi SUAT UĞURLU
Dersi Veren(ler): Dr. Öğr. Üyesi SUAT UĞURLU
Dersin Yardımcıları:

Dersin Amaç ve İçeriği

Dersin Amacı: Bu ders, büyük yazılım sistemleri ve programlarının mühendisliğinin ilke ve kavramlarıyla ilgilidir. Yazılım mimarisi, yazılım sistemleri geliştirmenin doğal karmaşıklığını yönetmeye yardımcı olan sistem ayrıntılarının bir soyutlamasıdır. Yazılım mimarisi, kullanıcı ihtiyaçlarının erken değerlendirilmesi, gereksinimlerin ve tasarımın analizi ve sistem özelliklerinin tahmin edilmesi için öngörü sağlar. Mimari stiller, görünümler, gösterimler ve tanımlama dilleri, mühendislik kararları ve tasarım uygulamaları için sistematik çerçeveler sağlar. Dersin odak noktası, yazılım mimarisi uygulamaları, teknolojileri ve yapıları ile ilgili ileri düzey konulardır. Öğrenciler, yazılım sistemlerinin mimari temsillerini geliştirmeye ilişkin bireysel veya grup projelerine katılırlar.
Dersin İçeriği: Yazılım Mimari Tasarımı, UML ile Mimari Çizimi, Tasarım Desenleri, Nesneye Yönelik Programlama, Yazılım Mimari Modelleri, Yazılım Geliştirme Modelleri, Yazılım Geliştirme Yaşam Döngüsü

Öğrenme Çıktıları

Bu dersi başarıyla tamamlayabilen öğrenciler;
Öğrenme Çıktıları
1 - Bilgi
Kuramsal - Olgusal
1) Bir yazılımın mimari analizinin tanımlama
2) Karmaşık ve büyük bir yazılımın mimarisini oluşturabilme
3) Yazılım yaşam döngüsü süreçlerini açıklayabilme
4) Bir yazılımın gereksinimlerini ve kalite niteliklerini analiz edebilme
5) Farklı yazılım modellerini karşılaştırabilme
2 - Beceriler
Bilişsel - Uygulamalı
1) Yazılım mimarisi tanımlama için görsel teknikler ve UML kullanabilme
2) Yazılım mimarisinden program koduna geçişi farklı teknikler ile uygulayabilme
3) Kabul görmüş en iyi yazılım kodlama tekniklerini uygulayabilme
3 - Yetkinlikler
İletişim ve Sosyal Yetkinlik
Öğrenme Yetkinliği
Alana Özgü Yetkinlik
1) Yazılım geliştirme araçlarını kullanabilme
Bağımsız Çalışabilme ve Sorumluluk Alabilme Yetkinliği

Ders Akış Planı

Hafta Konu Ön Hazırlık
1) Giriş - Yazılım Mimarisi Kavramları
2) Gereksinimler ve Mimari Tasarım
3) Kalite Nitelikleri – SOLID Prensipleri
4) Mimari Dökümantasyonu- UML'e Giriş
5) Bütünleşik Modelleme Dili (UML)
6) Mimarinin Koda Dönüşümü - Tasarım Desenlerine Giriş
7) Yaratımsal Tasarım Desenleri
8) Ara sınav
9) Yapısal Tasarım Desenleri
10) Davranışsal Tasarım Desenleri-1
11) Davranışsal Tasarım Desenleri-2
12) Yazılım Mimari Modelleri
13) Yazılım Geliştirme Modelleri
14) Yazılım Geliştirme Yaşam Döngüsü
15) Final sınavı

Kaynaklar

Ders Notları / Kitaplar: Software Systems Architecture, by Nick Rozanski, Eoin Woods - 2011
Publisher(s): Addison-Wesley Professional
ISBN: 9780132906135
Diğer Kaynaklar: Software Systems Architecture: Working with Stakeholders
Publisher ‏ : ‎ Addison-Wesley Professional; 1st edition (April 15, 2005)
ISBN ‏ : ‎ 9780321112293

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

Ders Öğrenme Kazanımları

1

2

5

6

7

3

4

8

9

Program Kazanımları
1) Matematik, fen bilimleri ve ilgili mühendislik disiplinine özgü konularda yeterli bilgi birikimi; bu alanlardaki kuramsal ve uygulamalı bilgileri, karmaşık mühendislik problemlerinde kullanabilme becerisi
2) Karmaşık mühendislik problemlerini saptama, tanımlama, formüle etme ve çözme becerisi; bu amaçla uygun analiz ve modelleme yöntemlerini seçme ve uygulama becerisi
3) Karmaşık bir sistemi, süreci, cihazı veya ürünü, gerçekçi kısıtlar ve koşullar altında, belirli gereksinimleri karşılayacak şekilde tasarlama becerisi; bu amaçla modern tasarım yöntemlerini uygulama becerisi
4) Mühendislik uygulamalarında karşılaşılan karmaşık problemlerin analizi ve çözümü için gerekli olan modern teknik ve araçları geliştirme, seçme ve kullanma becerisi; bilişim teknolojilerini etkin bir şekilde kullanma becerisi
5) Karmaşık mühendislik problemlerinin veya disipline özgü araştırma konularının incelenmesi için deney tasarlama, deney yapma, veri toplama, sonuçları analiz etme ve yorumlama becerisi
6) Disiplin içi ve çok disiplinli takımlarda etkin biçimde çalışabilme becerisi; bireysel çalışabilme becerisi
7) Türkçe sözlü ve yazılı etkin iletişim kurma becerisi; en az bir yabancı dil bilgisi; etkin rapor yazma ve yazılı raporları anlama, tasarım ve üretim raporları hazırlayabilme, etkin sunum yapabilme, açık ve anlaşılır talimat verme ve alma becerisi
8) Yaşam boyu öğrenmenin gerekliliği bilinci; bilgiye erişebilme, bilim ve teknolojideki gelişmeleri izleme ve kendini sürekli yenileme becerisi
9) Etik ilkelerine uygun davranma, mesleki ve etik sorumluluk bilinci; mühendislik uygulamalarında kullanılan standartlar hakkında bilgi
10) Proje yönetimi, risk yönetimi ve değişiklik yönetimi gibi iş hayatı uygulamaları hakkında bilgi; girişimcilik, yenilikçilik hakkında farkındalık; sürdürülebilir kalkınma hakkında bilgi
11) Mühendislik uygulamalarının evrensel ve toplumsal boyutlarda sağlık, çevre ve güvenlik üzerindeki etkileri hakkında bilgi ve çağın mühendislik alanına yansıyan sorunları hakkında bilgi; mühendislik çözümlerinin hukuksal sonuçları konusunda farkındalık

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

Etkisi Yok 1 En Düşük 2 Düşük 3 Orta 4 Yüksek 5 En Yüksek
           
Dersin Program Kazanımlarına Etkisi Katkı Payı
1) Matematik, fen bilimleri ve ilgili mühendislik disiplinine özgü konularda yeterli bilgi birikimi; bu alanlardaki kuramsal ve uygulamalı bilgileri, karmaşık mühendislik problemlerinde kullanabilme becerisi 5
2) Karmaşık mühendislik problemlerini saptama, tanımlama, formüle etme ve çözme becerisi; bu amaçla uygun analiz ve modelleme yöntemlerini seçme ve uygulama becerisi 5
3) Karmaşık bir sistemi, süreci, cihazı veya ürünü, gerçekçi kısıtlar ve koşullar altında, belirli gereksinimleri karşılayacak şekilde tasarlama becerisi; bu amaçla modern tasarım yöntemlerini uygulama becerisi 5
4) Mühendislik uygulamalarında karşılaşılan karmaşık problemlerin analizi ve çözümü için gerekli olan modern teknik ve araçları geliştirme, seçme ve kullanma becerisi; bilişim teknolojilerini etkin bir şekilde kullanma becerisi 5
5) Karmaşık mühendislik problemlerinin veya disipline özgü araştırma konularının incelenmesi için deney tasarlama, deney yapma, veri toplama, sonuçları analiz etme ve yorumlama becerisi 5
6) Disiplin içi ve çok disiplinli takımlarda etkin biçimde çalışabilme becerisi; bireysel çalışabilme becerisi 4
7) Türkçe sözlü ve yazılı etkin iletişim kurma becerisi; en az bir yabancı dil bilgisi; etkin rapor yazma ve yazılı raporları anlama, tasarım ve üretim raporları hazırlayabilme, etkin sunum yapabilme, açık ve anlaşılır talimat verme ve alma becerisi 4
8) Yaşam boyu öğrenmenin gerekliliği bilinci; bilgiye erişebilme, bilim ve teknolojideki gelişmeleri izleme ve kendini sürekli yenileme becerisi
9) Etik ilkelerine uygun davranma, mesleki ve etik sorumluluk bilinci; mühendislik uygulamalarında kullanılan standartlar hakkında bilgi
10) Proje yönetimi, risk yönetimi ve değişiklik yönetimi gibi iş hayatı uygulamaları hakkında bilgi; girişimcilik, yenilikçilik hakkında farkındalık; sürdürülebilir kalkınma hakkında bilgi
11) Mühendislik uygulamalarının evrensel ve toplumsal boyutlarda sağlık, çevre ve güvenlik üzerindeki etkileri hakkında bilgi ve çağın mühendislik alanına yansıyan sorunları hakkında bilgi; mühendislik çözümlerinin hukuksal sonuçları konusunda farkındalık

Ölçme ve Değerlendirme

Yarıyıl İçi Çalışmaları Aktivite Sayısı Katkı Payı
Ödev 1 % 10
Projeler 1 % 20
Ara Sınavlar 1 % 25
Final 1 % 45
Toplam % 100
YARIYIL İÇİ ÇALIŞMALARININ BAŞARI NOTU KATKISI % 55
YARIYIL SONU ÇALIŞMALARININ BAŞARI NOTUNA KATKISI % 45
Toplam % 100