Yazılım Örüntüleri (SE 461) Ders Detayları Ders Adı Ders Kodu Dönemi Ders Saati Uygulama Saati Laboratuar Saati Kredi AKTS Yazılım Örüntüleri SE 461 Bahar 3 0 0 3 5 Ön Koşul Ders(ler)i Dersin Dili Dersin Türü Dersin Seviyesi Ders Verilme Şekli Dersin Öğrenme ve Öğretme Teknikleri İngilizce Teknik Seçmeli Dersler Lisans Yüz Yüze Anlatım Dersin Koordinatörü Dersin Öğretmen(ler)i
Dersin Asistanı Dersin Amacı Dersin Eğitim Çıktıları Dersin İçeriği Bu dersin amacı, yüksek kalitede yazılım geliştirmeye yönelik tasarım örüntülerinin tanıtımı ve bu örüntüleri uygulama metotlarının anlatımıdır. Bu ders kapsamında ayrıca var olan bir yazılım yeniden yapılandırılması kavram ve metotları da anlatılmaktadır. Bu dersi başarıyla tamamlayabilen öğrenciler; Belli başlı tasarım örüntüleri tanımlama ve tanıma Tasarım problemeri için uygun tasarım örüntülerini belirleme Tasarım örüntülerini kullanarak, kötü tasarlanmış bir yazılımı tekrar yapılandırma Tasarım örüntülerini uygulama Tasarım örüntülerini karşılaştırma ve hangi durumda hangi tasarım örüntüsünün kullanılması gerektiğini örnekleriyle anlatma Tasarım örüntülerine giriş. Yapısal örüntüler. Davranışsal örüntüler. Analiz örüntüleri. Mimari örüntüler. Test hazırlama. Yeniden yapılandırma. Haftalık Konular ve İlgili Ön Hazırlık Çalışmaları HaftaKonular Ön Hazırlık 1 Tasarım Örüntülerine Giril Bölüm 1 (ders kitabı) 2 Gözcü Örüntüsü Bölüm 2 3 Dekoratör Örüntüsü Bölüm 3 4 Fabrika Metot ve Soyut Fabrika Metod Örüntüsü 5 Teklik Örüntüsü ve Komut Örüntüsü Bölüm 4 Bölüm 5-6
6 Adaptör and Cephe Örüntüsü Bölüm 7 7 Şablon Metod Örüntüsü Bölüm 8 8 Dürüm Örüntüsü ve Karma Örüntüsü Bölüm 9 9 Durum Örüntüsü Bölüm 10 10 Vekil Örüntüsü Bölüm 11 11 Analiz Örüntüleri Bölüm 1-2-3 (diğer kaynaklar 2) 12 Mimari Örüntüler: MVC Bölüm 5 (diğer kaynaklar 3) 13 Mimari Örüntüler: MVC Bölüm 5 (diğer kaynaklar 3) 14 Test Hazırlama ve Yeniden Yapılandırma Bölüm 1 (diğer kaynaklar 5) 15 Yeniden Yapılandırma Bölüm 5 (diğer kaynaklar 5) 16 Dönem Sonu Sınav çalışmaları Dönem için konuların tekrarı Kaynaklar Ders Kitabı: Diğer Kaynaklar: 1. Head First Design Patterns, O Reilly, Eric Freeman, Elisabeth Freeman, Kathy Sierra, Bert Bates, First Edition October 2004 1. Design Patterns: Elements of Reusable Object Oriented Software, E. Gamma, R. Helm, R. Johnson, and J. Vlissides, Addison -Wesley Professional, 1995 2. Analysis Patterns: Reusable Object Models, Martin Fowler, (1996-11-27). Addison-Wesley 3. Pattern-Oriented Software Architecture: A System of Patterns, Buschmann F., Meunier R., Rohnert H. & Sommerlad P. & Stal M. (1996), John Wiley & Sons 4. Applying UML and Patterns : An Introduction to Object-Oriented Analysis and Design and Iterative Development, Craig Larman, 3rd Edition, Prentice Hall, 2005
5. Joshua Kerievsky, Refactoring to Patterns, Addison-Weslay Professional, 2004. Değerlendirme Sistemi Çalışmalar Sayı Katkı Payı Devam/Katılım 1 5 Laboratuar - - Uygulama - - Alan Çalışması - - Derse Özgü Staj - - Küçük Sınavlar/Stüdyo Kritiği - - Ödevler 7 35 Sunum - - Projeler - - Seminer - - Ara Sınavlar/Ara Juri 1 20 Genel Sınav/Final Juri 1 40 Toplam 10 100 Yarıyıl İçi Çalışmalarının Başarı Notu Katkısı Yarıyıl Sonu Çalışmalarının Başarı Notuna Katkısı 60 40
Toplam 100 Ders Kategorisi Temel Meslek Dersleri Uzmanlık/Alan Dersleri Destek Dersleri İletişim ve Yönetim Becerileri Dersleri Aktarılabilir Beceri Dersleri Dersin Öğrenim Çıktılarının Program Yeterlilikleri ile İlişkisi # Program Yeterlilikleri / Çıktıları Katkı Düzeyi 1 2 3 4 5 1 Matematik, fen bilimleri ve hesaplama alanlarındaki bilgi birikimini yazılım mühendisliği problemlerinin çözümüne uygulama becerisi. 2 Alana özgü sorunları analiz etme ve modelleme, çözümleri için uygun yazılım gereksinimlerini belirleme ve tanımlama becerisi.
3 Belirlenen gereksinimleri karşılayacak bir yazılım sistemini, sistem parçasını, işlemi veya programı tasarlama, geliştirme ve değerlendirme becerisi. 4 Yazılım mühendislik uygulamaları için modern teknik ve mühendislik araçlarını kullanma becerisi. 5 Yazılım ihtiyaçlarını anlamak için veri toplama, analiz etme ve yorumlama becerisi. 6 Disiplin içi ve disiplinler arası takımlarda veya bireysel olarak etkin biçimde çalışabilmek için gerekli organizasyonel ve iş yeteneklerini ortaya koyabilme becerisi. 7 Türkçe ve İngilizce dillerinde etkin iletişim kurabilme becerisi. 8 Yaşam boyu öğrenmenin gerekliliği bilinci ve bilgiye erişebilme, bilim ve teknolojideki son gelişmeleri takip edebilme ve kendini sürekli yenileme becerisi. 9 Mesleki, hukuksal, etik ve sosyal sorunlar hakkında farkındalık ve sorumluluk bilinci. 10 Proje ve risk yönetim becerisi; girişimciliğin, yenilikçilik ve sürdürülebilir kalkınmanın önemi hakkında farkındalık; uluslararası standartların ve yöntemlerin bilinmesi. 11 Yazılım mühendisliği uygulamalarının evrensel, sosyal ve hukuksal sonuçları konusunda farkındalık. 12 Yazılım alternatiflerini irdeleyerek bilgisayar tabanlı sistemlerin modellenmesi ve tasarımında, algoritma prensiplerini, matematiksel temelleri ve bilgisayar bilimleri teorisini uygulama becerisi. 13 Yazılım sistemlerinin analiz, tasarım, uygulama, doğrulama, geçerleme ve bakım süreçlerini uygulayarak geliştirilmesinde mühendislik yaklaşımlarını uygulama becerisi.
ECTS/İş Yükü Tablosu Aktiviteler Sayı Süresi (Saat) Toplam İş Yükü Ders saati (Sınav haftası dahildir: 16 x toplam ders saati) Laboratuar Uygulama Derse Özgü Staj Alan Çalışması Sınıf Dışı Ders Çalışma Süresi Sunum/Seminer Hazırlama Projeler 16 3 48 16 3 48 Ödevler 7 4 28 Küçük Sınavlar/Stüdyo Kritiği Ara Sınavlara/Ara Juriye Hazırlanma Süresi Genel Sınava/Genel Juriye Hazırlanma Süresi 1 10 10 1 15 15 Toplam İş Yükü 149