Nesneye Dayalı Analiz ve Tasarım (SE 321) Ders Detayları Ders Adı Ders Kodu Dönemi Ders Saati Uygulama Saati Laboratuar Saati Kredi AKTS Nesneye Dayalı Analiz ve Tasarım SE 321 Bahar 3 0 0 3 4.0 Ön Koşul Ders(ler)i COMPE 225 Dersin Dili Dersin Türü Dersin Seviyesi Ders Verilme Şekli Dersin Öğrenme ve Öğretme Teknikleri İngilizce Zorunlu Bölüm Dersleri 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ı öğrencilere nesneye yönelik yazılım analizi ve tasarımı bilgi ve becerisini kazandırmaktır. Bu dersi başarıyla tamamlayabilen öğrenciler; Profesyonel sistem çözümleme yükümlülüğünü ve yöntemlerini anlayabilmek ve diğer mühendislik dalları ile yazılım mühendisliği arasında benzerlik kurabilmek Yazılım sistemine ait amaç ve hedefleri insan faaliyetli sistem bağlamında tanımlayabilme Nesneye dayalı çözümleme ve tasarım tekniklerini kullanarak mevcut bilgi sistemlerini belgelemek, alternatif yeni sistemler önerebilmek, ve gerekli bilgi sistemlerini belirleyebilmek Kalite güvencesi için ihtiyaçların farkında olabilmek ve yazılım endüstrisinde mühendislik standartlarını nasıl uygulayacağını bilmek Sisteme özel ihtiyaçları karşılayabilmek için çözümleme ve tasarım tekniklerini anlayabilmek Nesneye-yönelik temel kavramlar. UML ile nesneye dayalı modelleme. Nesneye-dayalı çözümleme: gereksinim ve nesne tanımlama. Nesneya-dayalı tasarlama için deney yürütme: sınıf sıradüzeni. Nesneye-yönelik programlama ile gerçekleştirim. Tasarım desenlerine giriş. Temel kavramları güçlendirmek için uygulama. Not: Derste belli bir yazılım geliştirme süreci ileri sürülmemiştir. Temel iş faaliyetleri tanımlamak için birleştirilmiş yazılım geliştirme süreçleri (USDP) takip edilmiştir.
Haftalık Konular ve İlgili Ön Hazırlık Çalışmaları HaftaKonular Ön Hazırlık 1 Bilgi Sistemleri Bölüm 1 2 Bilgi Sistemlerinin zorlukları ve başetme yöntemleri Bölüm 2 Bölüm 3 3 Nesneye-yönelik temel kavramlar Bölüm 4. (ders kitabı) 4 Modelleme kavramları Bölüm 5. Bölüm A1. 5 Gereksinim belirleme Bölüm 6 Bölüm A2 6 Gereksinim modelleme Bölüm 7 Bölüm A3 7 Gereksinim modellemesinde ayrıştırma Bölüm 8 8 Nesne etkileşimi Bölüm 9 9 İşlemlerin belirtilmesi, Kontrolün belirtilmesi 10 Sistem mimarisi Bölüm 12 Bölüm 10, 11, Bölüm A4 11 Sistem tasarımı Bölüm 13, Bölüm A5 12 Detaylı tasarım Bölüm 14 13 Tasarım desenleri Bölüm 15 14 Problem çözme Bölüm tekrarı 15 Dönem Sonu Sınav çalışmaları Dönem için konuların tekrarı 16 Dönem Sonu Sınav çalışmaları Dönem için konuların tekrarı Kaynaklar Ders Kitabı: 1. Object Oriented Systems Analysis and Design using UML, Simon Bennett, Steve McRobb, Ray Farmer, 3/e, MacGraw Hill, 2005
Diğer Kaynaklar: 1. Object Oriented Systems Analysis and Design With UML, Robert V. Stumpf, Lavette C. Teague, 1/e, Prentice Hall, 2005 2. Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development, Craig Larman, 3rdEdition, Prentice Hall, 2005 3. UML and C++: A Practical Guide to Object-Oriented Development, Richard C. Lee, William M. Tepfenhart. 2nd Edition, Prentice Hall, 2001. UML Distilled: A Brief Guide to the Standard Object Modeling Language, Martin Fowler. 3rd Edition, Addison Wesley, 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 - - Sunum - - Projeler 1 30 Seminer - - Ara Sınavlar/Ara Juri 1 25 Genel Sınav/Final Juri 1 40 Toplam 4 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 16 3 48 16 2 32 Projeler 1 20 20 Ödevler 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ü 125